[pyferret] 63/110: upstream pyferret 7.0

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


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

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

commit 71e4478d18b0cbed147781450c6bb7fba1ba393a
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Fri Aug 12 16:25:50 2016 +0100

    upstream pyferret 7.0
---
 LICENSE                                            |    19 +
 Makefile                                           |   129 +-
 README.md                                          |     5 +
 README_build_ferret                                |    66 -
 README_build_pyferret_mac.txt                      |   159 +
 bench/Makefile                                     |    40 +
 bench/RUN_TESTS.sh                                 |   141 +-
 bench/TEST_SCRIPTS                                 |    40 +-
 bench/TRASH_FILES                                  |    58 +-
 ...cial.linux_err => ansley_official.rhel5_32_err} |   767 +-
 ...cial.linux_log => ansley_official.rhel5_32_log} | 17207 ++++++++++++----
 bench/ansley_official.rhel6-64_err                 |   771 +-
 bench/ansley_official.rhel6-64_log                 | 17928 +++++++++++-----
 bench/ansley_official.x86_64-linux_err             |   464 +-
 bench/axes_subspan.nc                              |   Bin 0 -> 1060 bytes
 bench/bn696_bug_fixes.jnl                          |     3 +
 bench/bn697_bug_fixes.jnl                          |    95 +
 bench/bn_aggregate_e.jnl                           |   100 +-
 bench/bn_aggregate_f.jnl                           |   174 +
 bench/bn_aggregate_f.sub                           |    34 +
 bench/bn_aggregate_t.jnl                           |   326 +
 bench/bn_aggregate_tef.jnl                         |   256 +
 bench/bn_all.jnl                                   |    86 +-
 bench/bn_append_dsg.jnl                            |     8 +-
 bench/bn_auto_tprec.jnl                            |    56 +
 bench/bn_climatology_attr.jnl                      |    58 +
 bench/bn_contourcolor.jnl                          |     8 +
 bench/bn_coordvars_atts.jnl                        |    31 +
 bench/bn_dataset_qualifier.jnl                     |    96 +
 bench/bn_deg_min.jnl                               |    16 +
 bench/bn_dynamic_grids.jnl                         |     6 +-
 bench/bn_floatstr_extended.jnl                     |     9 +
 bench/bn_fmrc.jnl                                  |     6 +-
 bench/bn_gif.jnl                                   |    29 +-
 bench/bn_global_atts.jnl                           |     9 +-
 bench/bn_hovmuller_overlays.jnl                    |    77 +
 bench/bn_internal_external_functions.jnl           |     5 +
 bench/bn_interpolate_6d.jnl                        |     4 +
 bench/bn_labels_on_taxis.jnl                       |   114 +
 bench/bn_let_remote.jnl                            |    90 +
 bench/bn_letd_attributes.jnl                       |    82 +
 bench/bn_list_clim_axes.jnl                        |    12 +
 bench/bn_long_lists.jnl                            |   133 +
 bench/bn_netcdf4.jnl                               |    21 +-
 bench/bn_nocoords.jnl                              |    39 -
 bench/bn_plot_along.jnl                            |    54 +
 bench/bn_plot_decimate.jnl                         |    60 +
 bench/bn_ps.jnl                                    |    10 +-
 bench/bn_regrid_6d.jnl                             |     8 +
 bench/bn_regrid_transforms_6d.jnl                  |     3 +
 bench/bn_samplexy_sampleij.jnl                     |    13 +
 bench/bn_sho_att_longnames.jnl                     |    29 +
 bench/bn_show_commands.jnl                         |   130 +
 bench/bn_show_noupcase.jnl                         |    98 +
 bench/bn_show_uvar_grid.jnl                        |   126 +
 bench/bn_show_xml_file.jnl                         |     7 +-
 bench/bn_speedtest.jnl                             |    18 +
 bench/bn_syntax.jnl                                |    12 +-
 bench/bn_unquoted_args.jnl                         |   134 +
 bench/bn_vtree.jnl                                 |     5 +-
 bench/bn_vtree_outfile.jnl                         |     5 +-
 bench/bn_warn_subspan.jnl                          |    15 +
 bench/bn_xml_output.jnl                            |    62 +-
 bench/bn_xml_repl.jnl                              |    14 +-
 bench/bug1845.nc                                   |   Bin 0 -> 2020 bytes
 bench/coads_slice.nc                               |   Bin 0 -> 3348 bytes
 bench/ens1.nc                                      |   Bin 10048 -> 10112 bytes
 bench/err581_subspanx_fill_bug.jnl                 |     7 +-
 bench/err607_show_var_xml.jnl                      |    13 +-
 bench/err611_return_precision.jnl                  |     1 +
 bench/err62_thick_tic_time_axis.jnl                |     2 +
 bench/err65_read_epic_cdf.jnl                      |    13 +
 bench/err667_mode_desperate.jnl                    |     2 +
 bench/err686_show_xml_letd.jnl                     |    16 +
 bench/err693_std4d.jnl                             |     0
 bench/err693_upcase_quoted_name.jnl                |     1 +
 bench/err695_grave_prec.jnl                        |    18 +
 bench/err696_2d_time_overlay.jnl                   |    45 +
 bench/err696_annotate_numeric.jnl                  |    27 +
 bench/err696_argument_blanks.jnl                   |    17 +
 bench/err696_argument_blanks_sub.jnl               |     3 +
 bench/err696_centerlab_restore.jnl                 |    56 +
 bench/err696_contour_conset.jnl                    |    27 +
 bench/err696_def_att.jnl                           |    28 +
 bench/err696_def_ax_edges.jnl                      |    28 +
 bench/err696_def_ax_f.jnl                          |    19 +
 bench/err696_e_component_mem_crptn.jnl             |    33 +
 bench/err696_ft_calendars.jnl                      |    17 +
 bench/err696_hovmuller_mod_fill.jnl                |     8 +
 bench/err696_mem_err_report.jnl                    |    39 +
 bench/err696_mod_sub_fln.jnl                       |    16 +
 bench/err696_mode_cal_f.jnl                        |    39 +
 bench/err696_multiple_slashes.jnl                  |    56 +
 bench/err696_only_inf_lev.jnl                      |    23 +
 bench/err696_plot_ax_ppl.jnl                       |    79 +
 bench/err696_poly_over_label.jnl                   |    27 +
 bench/err696_red_keylab.jnl                        |    10 +
 bench/err696_repeat_escapes.jnl                    |    14 +
 bench/err696_return_prec.jnl                       |    36 +
 bench/err696_return_type.jnl                       |    27 +
 bench/err696_save_noupcase.jnl                     |    27 +
 bench/err696_shade_subspan_clim.jnl                |    30 +
 bench/err696_singlevec_over.jnl                    |    34 +
 bench/err696_subspan_mod_in_expr.jnl               |    23 +
 bench/err696_subspan_mod_strides.jnl               |    21 +
 bench/err696_subspan_transforms.jnl                |    43 +
 bench/err696_time_overlay.jnl                      |    16 +
 bench/err696_write_no_dim.jnl                      |    13 +
 bench/err69_levels_v.jnl                           |     1 +
 bench/ft_cal_mixed.nc                              |   Bin 0 -> 1164 bytes
 bench/ft_cal_one.nc                                |   Bin 0 -> 1124 bytes
 bench/nodim.nc                                     |   Bin 0 -> 1272 bytes
 bench/run1.nc                                      |   Bin 5384 -> 5424 bytes
 bench/run_all                                      |    52 +-
 bench/stream10by5.unf                              |   Bin 400 -> 0 bytes
 bench/stream10by5_aix.unf                          |   Bin 200 -> 0 bytes
 bench/stream10by5_alp.unf                          |   Bin 200 -> 0 bytes
 bench/stream10by5_dec.unf                          |   Bin 200 -> 0 bytes
 bench/stream10by5_i386-apple-darwin.unf            |   Bin 400 -> 0 bytes
 bench/stream10by5_sgi.unf                          |   Bin 200 -> 0 bytes
 bench/stream10by5_sol.unf                          |   Bin 200 -> 0 bytes
 bench/stream10by5_sun.unf                          |   Bin 200 -> 0 bytes
 bench/stream10by5_x86_64-darwin.unf                |   Bin 0 -> 400 bytes
 bench/test_results/bn_contour_conset.gif           |   Bin 0 -> 17361 bytes
 bench/test_results/bn_contour_conset.png           |   Bin 0 -> 148655 bytes
 bench/test_results/bn_hovmuller_overlays.gif       |   Bin 0 -> 51773 bytes
 bench/test_results/bn_hovmuller_overlays.pdf       |   Bin 0 -> 114913 bytes
 bench/test_results/bn_labels_on_taxis.gif          |   Bin 0 -> 34740 bytes
 bench/test_results/bn_labels_on_taxis.pdf          |   Bin 0 -> 69827 bytes
 bench/test_results/bn_subspan_mod_strides.gif      |   Bin 0 -> 24039 bytes
 bench/test_results/bn_subspan_mod_strides.png      |   Bin 0 -> 65121 bytes
 bench/test_results/bnplot.pdf                      |   Bin 171732 -> 171724 bytes
 bench/test_results/bnplot.png                      |   Bin 0 -> 128925 bytes
 bench/test_results/bnplot_1.gif                    |   Bin 0 -> 32276 bytes
 bench/test_results/bnplot_1.png                    |   Bin 0 -> 290307 bytes
 bench/test_results/bnplot_2.gif                    |   Bin 0 -> 55964 bytes
 bench/test_results/bnplot_2.png                    |   Bin 0 -> 558523 bytes
 bench/test_results/bnplot_3.gif                    |   Bin 0 -> 27755 bytes
 bench/test_results/bnplot_3.png                    |   Bin 0 -> 229820 bytes
 bench/test_results/bnplot_4.pdf                    |   Bin 0 -> 327451 bytes
 bench/test_results/bnplot_4.ps                     | 20384 +++++++++++++++++++
 bench/test_results/closed_lev.pdf                  |   Bin 36893 -> 36870 bytes
 bench/test_results/contourcolor_blue.pdf           |   Bin 0 -> 22745 bytes
 bench/test_results/contourcolor_green.pdf          |   Bin 0 -> 22502 bytes
 bench/test_results/contourcolor_puce.pdf           |   Bin 0 -> 22554 bytes
 bench/test_results/dashbug.gif                     |   Bin 0 -> 7161 bytes
 bench/test_results/dashbug.pdf                     |   Bin 10056 -> 10065 bytes
 bench/test_results/dots.pdf                        |   Bin 5215 -> 5210 bytes
 bench/test_results/ferret_run_tests_err            |  1401 +-
 bench/test_results/ferret_run_tests_log            | 16860 +++++++++++----
 bench/test_results/ferret_run_tests_ncdump         |   945 +-
 bench/test_results/flowlines.pdf                   |   Bin 54060 -> 54090 bytes
 bench/test_results/gif_dashbug.gif                 |   Bin 0 -> 1621 bytes
 bench/test_results/gif_dashbug.png                 |   Bin 0 -> 6690 bytes
 bench/test_results/linecolors.pdf                  |   Bin 16412 -> 16519 bytes
 bench/test_results/multi_line_labels.pdf           |   Bin 31257 -> 31263 bytes
 bench/test_results/outline_poly.pdf                |   Bin 8601 -> 8606 bytes
 bench/test_results/polygon_plot.pdf                |   Bin 12323 -> 12271 bytes
 bench/test_results/pyferret_run_tests_err          |  1443 +-
 bench/test_results/pyferret_run_tests_log          | 18799 +++++++++++++----
 bench/test_results/pyferret_run_tests_ncdump       |   956 +-
 bench/test_results/startup_tests2.pdf              |   Bin 8921 -> 8923 bytes
 bench/test_results/testbackground.gif              |   Bin 0 -> 46738 bytes
 bench/test_results/testbackground.png              |   Bin 0 -> 52303 bytes
 bench/test_results/testfermethods_contour.pdf      |   Bin 0 -> 26777 bytes
 bench/test_results/testfermethods_fill.pdf         |   Bin 0 -> 75925 bytes
 bench/test_results/testfermethods_lineplot.pdf     |   Bin 0 -> 18652 bytes
 bench/test_results/testfermethods_pointplot.pdf    |   Bin 0 -> 18990 bytes
 bench/test_results/testfermethods_shade.pdf        |   Bin 0 -> 20431 bytes
 bench/test_results/testferpyvar.pdf                |   Bin 0 -> 24189 bytes
 bench/test_results/timetics2.pdf                   |   Bin 27634 -> 27680 bytes
 bench/test_results/vec_curv.pdf                    |   Bin 14648 -> 14773 bytes
 bench/test_results/vec_curv2.pdf                   |   Bin 28938 -> 28940 bytes
 bench/testferaggdset.py                            |    38 +
 bench/testferaxis.py                               |   152 +
 bench/testferdset.py                               |    74 +
 bench/testfergrid.py                               |    79 +
 bench/testfermethods.py                            |    47 +
 bench/testferpyvar.py                              |    46 +
 bench/testferregion.py                             |    39 +
 bench/testfervar.py                                |   129 +
 bench/testgetstrdata.py                            |    29 +
 bin/Finstall                                       |   180 +-
 bin/Fpurge                                         |     2 +-
 bin/build_fonts/unix/.gitignore                    |    34 +
 bin/ferret_paths_template.csh                      |     2 +-
 bin/ferret_paths_template.sh                       |     2 +-
 bin/make_dist_tar                                  |   202 +
 bin/make_environment_tar                           |   163 -
 bin/make_executable_tar                            |   184 -
 bin/make_source_tar                                |    20 +-
 bin/pyferret_template                              |     9 +-
 efmem/Makefile                                     |    44 -
 external_functions/Makefile                        |     9 +-
 .../cflib/curv_to_lonlat_from_weights.c            |     1 +
 external_functions/cflib/curv_to_lonlat_regrid.c   |     1 +
 external_functions/cflib/fcn_curv_to_lonlat.c      |     1 +
 external_functions/contributed/pco2.F              |    21 -
 external_functions/date_and_time/date_decode.c     |     9 +-
 external_functions/date_and_time/time_decode.c     |     1 +
 external_functions/ef_utility/Makefile             |    37 +
 .../ef_utility}/copy_ferret_ef_mem_subsc.F         |    20 +-
 .../platform_specific.mk.i386-apple-darwin         |    37 -
 .../ef_utility/platform_specific.mk.i386-linux     |    26 +-
 .../ef_utility/platform_specific.mk.i386-linux-gnu |    26 +-
 .../ef_utility/platform_specific.mk.intel-mac      |    35 +-
 .../ef_utility/platform_specific.mk.x86_64-linux   |    28 +-
 .../platform_specific.mk.x86_64-linux-gnu          |    28 +-
 external_functions/ef_utility/site_specific.mk     |     4 +-
 external_functions/extrema/maxminmax.F             |     1 -
 external_functions/extrema/minminmax.F             |     1 -
 external_functions/gridding/scat2grid_minmax_xyt.F |   101 +-
 external_functions/gridding/scat2grid_nobs_xy.F    |   445 -
 external_functions/gridding/scat2grid_std_xyt.F    |   143 +-
 external_functions/gridding/scat2grid_t.F          |   381 -
 .../gridding/tracks2grid_mask_ave_xyt.F            |    74 +-
 external_functions/gridding/tracks2grid_std_xyt.F  |    63 +-
 external_functions/las/Makefile                    |     4 +-
 external_functions/matlab/matlab_func_link.c       |     1 +
 external_functions/matlab/matlab_link.c            |     1 +
 external_functions/v5d/binio.c                     |     1 +
 external_functions/v5d/v5d.c                       |     1 +
 external_functions/zaxr/Makefile                   |     2 +-
 fer/AIX_MODIFICATIONS.LOG                          |   347 -
 fer/AIX_MODIFICATIONS_SCHMIDT.LOG                  |   330 -
 fer/Makefile                                       |    15 +-
 fer/ccr/EF_InternalUtil.c                          |   329 +-
 fer/ccr/SOURCE_FILES                               |     1 +
 fer/ccr/binaryRead.c                               |     3 -
 fer/ccr/binaryRead.h                               |     2 -
 fer/ccr/cache_full_array.c                         |     1 +
 fer/ccr/free_cached_full_array.c                   |     1 +
 ...ull_array.c => recover_cached_2d_array_point.c} |    24 +-
 fer/ccr/recover_cached_full_array.c                |     1 +
 fer/ccr/save_arg_pointers.c                        |     1 +
 fer/ccr/set_null_c_string_array.c                  |     1 +
 fer/ccr/sizeof_pointer.c                           |     1 +
 fer/cferbind/Makefile                              |     2 +-
 fer/cferbind/cairoCFerBind_drawPoints.c            |     2 +-
 fer/common/ferret.parm                             |    25 +-
 fer/common/fgrdel.cmn                              |     4 +-
 fer/common/interp_stack.parm                       |     4 +-
 fer/common/plot_setup.parm                         |     6 +-
 fer/common/slash.parm                              |    38 +-
 fer/common/xbox_bounds.cmn                         |     7 +-
 fer/common/xcalc_vars.cmn                          |    85 -
 fer/common/xcommand.cmn                            |    44 +-
 fer/common/xcontrol.cmn                            |    13 +-
 fer/common/xcontrol.equiv                          |    10 +
 fer/common/xdset_parms.cmn                         |    55 -
 fer/common/xplot_setup.cmn                         |     5 +
 fer/common/xplot_state.cmn                         |    15 +-
 fer/common/xprog_state.cmn                         |     9 +-
 fer/common/xrevision.cmn                           |     2 +-
 fer/common/xrevision_type.cmn                      |     2 +-
 fer/common/xrisc.cmn                               |     4 +-
 fer/common/xtext_info.cmn                          |     5 +-
 fer/common/xtra_compute_attr.cmn                   |    13 +
 fer/ctx/complete_missing_limits.F                  |     9 +-
 fer/ctx/get_auto_aux_vars.F                        |    19 +-
 fer/ctx/get_context_bad_flag.F                     |     6 +-
 fer/ctx/get_context_grid.F                         |    36 +-
 fer/ctx/known_data_type.F                          |    19 +-
 fer/ctx/parse_var_name.F                           |    15 +-
 fer/dat/SOURCE_FILES                               |     2 -
 fer/dat/netcdf4_settings_data.F                    |     8 +
 fer/dat/xalgebra_data.F                            |     1 +
 fer/dat/xcalc_vars_data.F                          |  2472 ---
 fer/dat/xcommand_data.F                            |   125 +-
 fer/dat/xdset_parms_data.F                         |    77 -
 fer/dat/xplot_setup_data.F                         |     3 +-
 fer/dat/xprog_state_data.F                         |     3 +-
 fer/dat/xrevision_data.F                           |    14 +-
 fer/dat/xtext_info_data.F                          |     5 +-
 fer/doo/do_aux_var_regrid_2d_tf.F                  |    23 +-
 fer/doo/do_fill_interp.F                           |    14 +-
 fer/doo/do_internal_gc_fcn.F                       |     4 +-
 fer/doo/regrid_comments.F                          |    11 +-
 fer/efi/SOURCE_FILES                               |     6 +
 fer/efi/{is_element_of.F => bcompressi.F}          |   158 +-
 fer/efi/bxcat.F                                    |   326 +
 fer/efi/bxsequence.F                               |   241 +
 fer/efi/bxsequence_str.F                           |   245 +
 fer/efi/curv_to_rect_subs.F                        |     0
 fer/efi/element_index.F                            |     3 +
 fer/efi/floatstr.F                                 |    10 +-
 fer/efi/is_element_of.F                            |     3 +
 fer/efi/maxminmax.F                                |     1 -
 fer/efi/minminmax.F                                |     1 -
 fer/efi/rect_to_curv.F                             |     3 +-
 fer/efi/sample_fast_i.F                            |     3 +
 fer/efi/sampleij.F                                 |    17 +-
 .../{scat2grid_nbin_xyt.F => scat2grid_bin_xyz.F}  |   216 +-
 .../{scat2grid_nbin_xyt.F => scat2grid_bin_xyzt.F} |   303 +-
 fer/efi/scat2grid_nbin_xyt.F                       |    16 +-
 fer/efi/scat2grid_subs.F                           |    23 +-
 fer/efi/separate.F                                 |     3 +
 fer/fmt/ascii_limits.F                             |    37 +-
 fer/fmt/aux_var_units.F                            |    15 +-
 fer/fmt/cx_dim_str.F                               |    38 +-
 fer/fmt/full_uvar_name.F                           |    24 +
 fer/fmt/full_uvar_name_xml.F                       |    18 +
 fer/fmt/lohi_world.F                               |    71 +-
 fer/fmt/var_title.F                                |    15 +-
 fer/fmt/var_title_mod.F                            |   125 +-
 fer/fmt/var_units.F                                |    14 +-
 fer/gnl/SOURCE_FILES                               |    21 +-
 fer/gnl/add_attribute.F                            |    16 +-
 fer/gnl/agg_clean_grids.F                          |   148 +
 fer/gnl/build_t_agg_axis.F                         |   583 +
 fer/gnl/cancel_data_set.F                          |   231 +-
 fer/gnl/cancel_one_data_set.F                      |   140 +
 fer/gnl/cdf_list.F                                 |    38 +-
 fer/gnl/check_member_sets.F                        |   100 +-
 .../full_uvar_name.F => gnl/choose_line_name.F}    |    79 +-
 fer/gnl/coached_str_sub.F                          |    22 +-
 fer/gnl/create_agg_axis.F                          |    66 +-
 fer/gnl/create_agg_dset.F                          |    61 +-
 fer/gnl/define_aggregate_grid.F                    |   421 -
 fer/gnl/define_ef_aggregate_grid.F                 |   638 +
 fer/gnl/define_special_grids.F                     |     6 +-
 fer/gnl/define_t_agg_mc_dset.F                     |   177 +
 fer/gnl/define_t_aggregation.F                     |   132 +
 fer/gnl/dollar_arg.F                               |    12 +-
 fer/gnl/errmsg.F                                   |    54 +-
 fer/gnl/fill_fmrc_time_gaps.F                      |   123 +
 fer/gnl/get_context_mods.F                         |    29 +-
 fer/gnl/get_fer_command.F                          |     7 +
 fer/gnl/get_mode_arg.F                             |     3 +-
 .../its_gksm.c => fer/gnl/get_upcase_flag.F        |    26 +-
 fer/gnl/init_aggregate_dset.F                      |   426 -
 fer/gnl/init_ef_aggregate_dset.F                   |   395 +
 fer/gnl/init_t_agg_mc_dset.F                       |   190 +
 fer/gnl/init_t_aggregate_dset.F                    |   136 +
 fer/gnl/initialize.F                               |    68 +-
 fer/gnl/{show_data_set_xml.F => is_agg_member.F}   |   129 +-
 fer/gnl/{create_agg_dset.F => its_fmrc_2dtime.F}   |    90 +-
 fer/gnl/line_facts.F                               |   147 +-
 fer/gnl/line_facts_xml.F                           |    13 +-
 fer/gnl/netcdf4_show_list_settings.F               |    17 +
 fer/gnl/ok_as_agg_var.F                            |   210 +
 fer/gnl/parse_command.F                            |   344 +-
 fer/gnl/pop_cs.F                                   |    18 +-
 fer/gnl/redefine_ax_att.F                          |     2 +-
 fer/gnl/repl_exprns.F                              |    25 +-
 fer/gnl/reset_ax_att.F                             |     2 +-
 fer/{mem/purge_dset.F => gnl/scalar_grid_line.F}   |    61 +-
 fer/gnl/set_agg_var_atts.F                         |   220 +
 fer/gnl/set_var.F                                  |    25 +-
 fer/gnl/show_1_mr.F                                |     5 +-
 fer/gnl/show_1_uvar_xml.F                          |    11 +-
 fer/gnl/show_data.F                                |     5 +-
 fer/gnl/show_data_files.F                          |    33 +-
 fer/gnl/show_data_set_attrs.F                      |   209 +-
 fer/gnl/show_data_set_params.F                     |    55 +-
 fer/gnl/show_data_set_vars.F                       |    25 +-
 fer/gnl/show_data_set_vars_xml.F                   |    87 +-
 fer/gnl/show_data_set_xml.F                        |    38 +-
 fer/gnl/show_diag_vars.F                           |   132 -
 fer/gnl/show_dyn_grids.F                           |    35 +-
 fer/gnl/show_grid.F                                |    25 +-
 fer/gnl/show_grid_string_xml.F                     |    15 +-
 fer/gnl/show_grid_xml.F                            |    20 +-
 fer/gnl/show_line.F                                |     9 +-
 fer/gnl/sort_fmrc_dsets.F                          |   233 +
 fer/gnl/sort_tseries_dsets.F                       |   146 +
 fer/grdel/fgd_gqpen.F                              |    53 +
 fer/ino/SOURCE_FILES                               |     2 -
 fer/ino/get_dset_parms.F                           |   323 -
 fer/ino/init_ez_dset.F                             |     2 +-
 fer/ino/make_cvar_grids.F                          |   116 -
 fer/ino/var_ss_lims.F                              |    31 +-
 fer/link.ppc64.sh                                  |    27 -
 fer/mem/SOURCE_FILES                               |     1 +
 fer/mem/create_full_range_context.F                |     7 +-
 fer/mem/deallo_uvar_grids.F                        |    62 +-
 fer/mem/delete_old_expr.F                          |     8 +-
 fer/mem/delete_user_var.F                          |    24 +-
 fer/mem/delete_user_var_sub.F                      |    48 +-
 fer/mem/erase_dset.F                               |    24 +-
 fer/mem/find_mem_var_incl_c_cache.F                |     3 +-
 fer/mem/find_var_name.F                            |    24 +-
 fer/mem/get_memory.F                               |     4 +-
 fer/mem/purge_dset.F                               |    37 +-
 fer/mem/purge_mr_grid.F                            |    15 +-
 fer/mem/{purge_dset.F => purge_one_dset.F}         |     3 +-
 fer/mem/var_code.F                                 |    16 +-
 fer/ocn/LIB_NAME                                   |     1 -
 fer/ocn/Makefile                                   |    37 -
 fer/ocn/SOURCE_FILES                               |    34 -
 fer/ocn/air_temp.F                                 |   132 -
 fer/ocn/calc_cvar.F                                |   740 -
 fer/ocn/conv_adj_mask.F                            |   160 -
 fer/ocn/cvar_context.F                             |   243 -
 fer/ocn/ew_hadvec.F                                |   140 -
 fer/ocn/expl_coriolis.F                            |   163 -
 fer/ocn/fuw.F                                      |   150 -
 fer/ocn/fvn.F                                      |   152 -
 fer/ocn/gfdl_terms.F                               |   233 -
 fer/ocn/grad_p_clinic.F                            |   215 -
 fer/ocn/hflux.F                                    |   176 -
 fer/ocn/hradiation.F                               |   162 -
 fer/ocn/knudsen.F                                  |   162 -
 fer/ocn/prof.F                                     |   175 -
 fer/ocn/sn_hadvec.F                                |   150 -
 fer/ocn/state.F                                    |   238 -
 fer/ocn/u_from_psi.F                               |   133 -
 fer/ocn/vel_adv_ew.F                               |   161 -
 fer/ocn/vel_adv_ns.F                               |   153 -
 fer/ocn/vel_adv_z.F                                |   168 -
 fer/ocn/vel_by_grad_p.F                            |   115 -
 fer/ocn/vel_by_wind.F                              |   140 -
 fer/ocn/vel_dif_xy.F                               |   236 -
 fer/ocn/vel_dif_z.F                                |   186 -
 fer/ocn/w_on_ts.F                                  |   216 -
 fer/ocn/w_on_uv.F                                  |   170 -
 fer/ocn/wind_stress.F                              |   182 -
 fer/ocn/xy_hdiffus.F                               |   145 -
 fer/ocn/z_hadvec.F                                 |   178 -
 fer/ocn/z_hdiffus.F                                |   174 -
 fer/plt/SOURCE_FILES                               |     2 +
 fer/plt/axis_format.F                              |    11 +
 fer/plt/box_label.F                                |    76 +-
 fer/plt/choose_cx_ww.F                             |    32 +-
 fer/plt/disp_data_set_up.F                         |     8 +
 fer/plt/disp_init.F                                |    13 +-
 fer/plt/disp_labels.F                              |     3 +-
 fer/plt/disp_prep.F                                |    22 +-
 fer/plt/disp_reset.F                               |     4 +-
 fer/plt/disp_set_up.F                              |    88 +-
 fer/plt/line_style.F                               |    15 +-
 .../lon_lat_fmt.F}                                 |    63 +-
 fer/plt/plot_along_data_set_up.F                   |   224 +
 fer/plt/plot_set_up.F                              |    55 +-
 fer/plt/polygon_set_up.F                           |    33 +-
 fer/plt/setup_keys.F                               |    15 +-
 fer/plt/taxis_style.F                              |    11 +-
 fer/pyf/SOURCE_FILES                               |     1 +
 fer/pyf/get_str_data_array_params.F                |   169 +
 fer/rpn/break_varattname.F                         |     6 +
 fer/rpn/break_varname.F                            |     9 +-
 fer/rpn/init_uvar.F                                |    20 +-
 fer/rpn/init_uvar_sub.F                            |    51 +-
 fer/special/.gitignore                             |     3 +
 fer/special/ferret_dispatch.F                      |     2 -
 fer/stk/SOURCE_FILES                               |     3 +-
 .../aux_var_units.F => stk/conformable_agg_grid.F} |   113 +-
 fer/stk/get_axis_speed.F                           |     2 +
 fer/stk/get_prot_cmnd_data.F                       |    66 +-
 fer/stk/get_uvar_grid.F                            |     9 +-
 fer/stk/interp_stack.F                             |    95 +-
 fer/stk/is_aggregate_gather.F                      |   253 +-
 fer/stk/is_aggregate_grid.F                        |     6 +-
 fer/stk/is_algebra.F                               |    37 +-
 fer/stk/is_attrib_val.F                            |    45 +-
 fer/stk/is_auxvar_regrid.F                         |    23 +-
 fer/stk/is_calc.F                                  |   191 -
 fer/{ocn/hourly_data.F => stk/is_dummy.F}          |    63 +-
 fer/stk/is_regrid.F                                |     9 +-
 fer/stk/is_strip.F                                 |   188 +-
 fer/stk/is_uvar_grid.F                             |   241 +-
 fer/stk/known_grid.F                               |    18 +-
 fer/utl/SOURCE_FILES                               |    13 +
 .../its_gksm.c => fer/utl/acts_like_fvar.F         |    26 +-
 fer/utl/axis_intervals.F                           |    26 +-
 fer/utl/cal_factr.F                                |    25 +-
 fer/utl/copy_agg_into.F                            |    20 +-
 fer/utl/{make_step_axis.F => define_climat_att.F}  |    78 +-
 fer/utl/display_dependency_sub.F                   |     4 +-
 .../ensemble_member_dset.F}                        |    64 +-
 fer/{ocn/mesh.F => utl/free_uvar_grids.F}          |    57 +-
 fer/utl/gcf_impose_axes.F                          |     9 +
 .../get_saved_uvar_aux_info.F}                     |    73 +-
 .../get_saved_uvar_grid.F}                         |    62 +-
 .../get_saved_uvar_grid_list_len.F}                |    62 +-
 .../purge_dset.F => utl/get_string_element_1d_x.F} |    48 +-
 fer/utl/igrid.F                                    |     8 +-
 fer/utl/inherit_attrs.F                            |    13 +-
 fer/utl/make_step_axis.F                           |    26 +-
 fer/utl/report_dependency.F                        |    17 +-
 .../its_gksm.c => fer/utl/reset_climat_att.F       |    29 +-
 .../save_uvar_aux_info.F}                          |    73 +-
 .../utl/save_uvar_grid.F                           |    66 +-
 fer/utl/secs_to_date_out.F                         |    15 +-
 fer/{ocn/hourly_data.F => utl/t0_adjust.F}         |    61 +-
 fer/{ocn/hourly_data.F => utl/t0_adjust_init.F}    |    75 +-
 fer/utl/transfer_axis.F                            |     1 -
 fer/utl/transfer_cx_axis_to_uv.F                   |     1 -
 fer/utl/transfer_uv_axis_to_uv.F                   |     1 -
 fer/utl/tstep_to_date.F                            |    15 +-
 fer/utl/update_attributes.F                        |    30 +-
 fer/xeq/xeq_annotate.F                             |    18 +-
 fer/xeq/xeq_cancel.F                               |    56 +-
 fer/xeq/xeq_contour.F                              |    40 +-
 fer/xeq/xeq_define.F                               |   291 +-
 fer/xeq/xeq_go.F                                   |    20 +-
 fer/xeq/xeq_plot.F                                 |    80 +-
 fer/xeq/xeq_polygon.F                              |    13 +-
 fer/xeq/xeq_pplus.F                                |    18 +-
 fer/xeq/xeq_set.F                                  |    73 +-
 fer/xeq/xeq_shade.F                                |    42 +-
 fer/xeq/xeq_show.F                                 |   108 +-
 fer/xeq/xeq_vector.F                               |     3 +-
 fmt/cmn/NCF_Util.h                                 |    39 +-
 fmt/cmn/gt_lib.parm                                |    44 +-
 fmt/cmn/tmap_dims.parm                             |    17 +-
 fmt/cmn/tmap_errors.parm                           |    17 +-
 fmt/cmn/xdset_info.cmn_text                        |    47 +-
 fmt/cmn/xrisc_buff.cmn                             |     2 +
 fmt/cmn/xunits.cmn_text                            |     7 +
 fmt/src/NCF_Util.c                                 |   558 +-
 fmt/src/SOURCE_FILES                               |    12 +-
 fmt/src/cd_1d_line_from_2d.F                       |   105 +-
 fmt/src/cd_add_var.F                               |     4 +
 fmt/src/cd_axis_name.F                             |    18 +-
 fmt/src/cd_clean_grids.F                           |    20 +-
 fmt/src/cd_consistent_axis_orient.F                |    18 +-
 fmt/src/cd_get_1_axis.F                            |    21 +-
 fmt/src/cd_get_1_dep_var.F                         |     6 +-
 fmt/src/cd_get_agg_var_info.F                      |     5 +
 fmt/src/cd_get_calendar_name.F                     |     0
 fmt/src/cd_get_generic_bounds.F                    |    11 +-
 fmt/src/cd_get_generic_grids.F                     |    65 +-
 fmt/src/cd_get_t0.F                                |   181 +
 fmt/src/cd_get_var_att_id.F                        |     7 +
 fmt/src/cd_get_var_id.F                            |    81 +-
 fmt/src/cd_get_var_info.F                          |     3 +
 fer/ocn/cmesh.F => fmt/src/cd_get_var_uvflag.F     |    56 +-
 fmt/src/cd_init_dset.F                             |    31 +-
 fmt/src/cd_isit_recdim.F                           |     4 +-
 fmt/src/cd_load_dset_attrs.F                       |    10 +-
 fmt/src/cd_make_fmrc_axes.F                        |    26 +-
 fmt/src/cd_make_fmrc_fcal_axis.F                   |     4 +-
 fmt/src/cd_make_var.F                              |    16 +-
 fmt/src/cd_ncclose.F                               |    20 +-
 fmt/src/cd_quik_ncopen.F                           |   204 +
 fmt/src/cd_rd_r8_as_r4.c                           |     1 +
 fmt/src/cd_read.F                                  |     7 +
 fmt/src/cd_scan_aux_coords.F                       |    11 +-
 fmt/src/cd_set_compress.F                          |    21 +-
 fmt/src/cd_write_attrib.F                          |     7 +-
 fmt/src/cd_write_axis.F                            |    49 +-
 fmt/src/deleted_list_clear.c                       |     3 +-
 fmt/src/deleted_list_get_del.c                     |     1 +
 fmt/src/deleted_list_get_undel.c                   |     1 +
 fmt/src/deleted_list_init.c                        |     1 +
 fmt/src/deleted_list_modify.c                      |     1 +
 fmt/src/ez_delimited_read.c                        |     1 -
 fmt/src/fbits.h                                    |     1 -
 fmt/src/mc_init_dset.F                             |    24 +-
 fmt/src/mc_read.F                                  |     3 +-
 fmt/src/nc.h                                       |     1 -
 fmt/src/nc_get_attrib.F                            |     4 +-
 fmt/src/nc_get_attrib_string.F                     |     4 +-
 fmt/src/ncconfig.h                                 |     1 -
 fmt/src/ncio.h                                     |     3 +-
 fmt/src/str_case_blind_compare_sub.c               |     1 +
 fmt/src/str_dncase_sub.c                           |     1 +
 fmt/src/str_upcase_sub.c                           |     1 +
 fmt/src/string_array_clear.c                       |     1 +
 fmt/src/string_array_find.c                        |     1 +
 fmt/src/string_array_find_caseblind.c              |     1 +
 fmt/src/string_array_find_exact.c                  |     1 +
 fmt/src/string_array_find_quoted.c                 |     1 +
 fmt/src/string_array_get_strlen.c                  |     1 +
 fmt/src/string_array_get_strlen1.c                 |     1 +
 fmt/src/string_array_hash.c                        |     1 +
 fmt/src/string_array_init.c                        |     1 +
 fmt/src/string_array_modify.c                      |     1 +
 fmt/src/string_array_modify_upcase.c               |     1 +
 fmt/src/tm_allo_tmp_line.F                         |     3 +-
 fmt/src/{cd_ncclose.F => tm_bad_epic.F}            |    45 +-
 fmt/src/tm_blockify_ferret_strings.c               |     2 +
 fmt/src/tm_check_bnds_attrib.F                     |     9 +-
 ...k_bnds_attrib.F => tm_check_fmrc_bnds_attrib.F} |    43 +-
 fmt/src/tm_close_set.F                             |   202 +-
 .../{tm_close_set.F => tm_close_set_cond_deallo.F} |    27 +-
 fmt/src/tm_copy_line.F                             |     2 +
 fmt/src/tm_fmt_user.F                              |   405 +
 fmt/src/tm_get_like_dyn_line.F                     |     2 +
 fmt/src/tm_get_linematch.F                         |    29 +-
 fmt/src/tm_get_linematch_sub.F                     |     2 +
 fmt/src/tm_get_strlen.c                            |     1 +
 fmt/src/tm_init_dset.F                             |    67 +-
 .../its_gksm.c => fmt/src/tm_its_index_axis.F      |    34 +-
 fmt/src/tm_make_basic_axis.F                       |     5 +-
 fmt/src/tm_make_dyn_line.F                         |     2 +
 fmt/src/tm_match_capital_name.c                    |     1 +
 fmt/src/tm_purge_tmp_grids.F                       |    54 +-
 fmt/src/{cd_ncclose.F => tm_rm_tmp_grid.F}         |    49 +-
 fmt/src/{cd_ncclose.F => tm_rm_tmp_line.F}         |    51 +-
 fmt/src/tm_set_free_event.c                        |     2 +
 fmt/src/tm_unix_versions.c                         |     1 -
 .../{cd_get_calendar_name.F => tm_warn_subspan.F}  |    77 +-
 fmt/src/tm_world_recur.c                           |    46 +
 fmt/src/xdset_info_data.F                          |    67 +-
 fmt/src/xerror_text_data.F                         |     4 +
 fmt/src/xgt_grid_data.F                            |   413 +-
 jnls/contrib/def_monthaxis_days.jnl                |     3 -
 jnls/contrib/ratio_set.jnl                         |     3 -
 jnls/contrib/taylor_agraticule.jnl                 |     3 -
 jnls/contrib/taylor_example1.jnl                   |     3 -
 jnls/contrib/taylor_frame.jnl                      |     3 -
 jnls/contrib/taylor_frame_accurate.jnl             |     3 -
 jnls/contrib/taylor_label.jnl                      |     3 -
 jnls/contrib/taylor_plot.jnl                       |     3 -
 jnls/contrib/taylor_polymark.jnl                   |     3 -
 jnls/contrib/taylor_rgraticule.jnl                 |     3 -
 jnls/contrib/taylor_rmscircles.jnl                 |     3 -
 jnls/contrib/taylor_wtarea.jnl                     |     3 -
 jnls/examples/annotate_demo.jnl                    |    88 +
 jnls/examples/ccbar_demo.jnl                       |     8 +
 jnls/examples/constant_array_demo.jnl              |    14 -
 jnls/examples/dods_demo.jnl                        |    36 +-
 jnls/examples/ef_fft_demo.jnl                      |    30 +-
 jnls/examples/ef_sort_demo.jnl                     |    20 +-
 jnls/examples/graticules_demo.jnl                  |    24 +-
 jnls/examples/land_detail_demo.jnl                 |     8 +-
 jnls/examples/objective_analysis_demo.jnl          |    84 +-
 jnls/examples/opendap_demo.jnl                     |     9 +
 jnls/examples/palette_demo.jnl                     |     9 +-
 jnls/examples/topo_palette_demo.jnl                |     2 +-
 jnls/examples/trackplot_demo.jnl                   |    14 +-
 jnls/go/define_12_colors.jnl                       |    20 +
 palettes/QC_V3_by_level.spk                        |     4 +-
 palettes/blue_gold.spk                             |     0
 palettes/mpl_PSU_inferno.spk                       |   104 +
 palettes/mpl_PSU_magma.spk                         |   104 +
 palettes/mpl_PSU_plasma.spk                        |   104 +
 palettes/mpl_PSU_viridis.spk                       |   105 +
 palettes/parula.spk                                |    67 +
 palettes/rainbow3.spk                              |     8 +
 platform_specific.mk.i386-apple-darwin             |   171 -
 platform_specific.mk.i386-linux                    |    23 +-
 platform_specific.mk.i386-linux-gnu                |    25 +-
 platform_specific.mk.intel-mac                     |    62 +-
 platform_specific.mk.x86_64-linux                  |    24 +-
 platform_specific.mk.x86_64-linux-gnu              |    32 +-
 ppl/Makefile                                       |     6 -
 ppl/complot/Makefile                               |     6 -
 ppl/include/AXIS.INC                               |     7 +-
 ppl/include/CONT.INC                               |     4 +-
 ppl/include/LINES.INC                              |     3 +-
 ppl/include/TAXIS.INC                              |     7 +-
 ppl/ourlib/Makefile                                |     6 -
 ppl/plot/Makefile                                  |     6 -
 ppl/plot/daxis.F                                   |    11 +-
 ppl/plot/labdrw.F                                  |     8 +-
 ppl/plot/lev.F                                     |    11 +-
 ppl/plot/plotxy.F                                  |    18 +-
 ppl/plot/plotxy_ribbon.F                           |    14 +-
 ppl/plot/plotz.F                                   |    50 +-
 ppl/plot/pltit.F                                   |    25 +-
 ppl/plot/pplcmd_f.F                                |    79 +-
 ppl/plot/ppldata.F                                 |     3 +-
 ppl/plot/pplldx.F                                  |     7 +
 ppl/plot/prmtiv.F                                  |     8 +-
 ppl/plot/setax.F                                   |     3 +
 ppl/plot/vecfld.F                                  |    19 +-
 ppl/plotlib/Makefile                               |     6 -
 ppl/plotlib/SOURCE_FILES                           |     2 +
 ppl/plotlib/contur.F                               |    16 +
 ppl/plotlib/numcde.F                               |    86 +-
 ppl/plotlib/numcde_off.F                           |    87 +-
 ppl/plotlib/taxis.F                                |    17 +-
 ppl/plotlib/taxis0.F                               |   224 +-
 ppl/plotlib/{taxis0.F => taxis4.F}                 |    47 +-
 ppl/plotlib/tayis.F                                |    21 +-
 ppl/plotlib/tayis0.F                               |   230 +-
 ppl/plotlib/tayis3.F                               |    15 +-
 ppl/plotlib/{tayis0.F => tayis4.F}                 |    51 +-
 ppl/plotlib/xaxis1.F                               |    44 +-
 ppl/plotlib/yaxis1.F                               |    80 +-
 ppl/pplepic/Makefile                               |     6 -
 ppl/pplusr/Makefile                                |     6 -
 ppl/symlib/Makefile                                |     6 -
 ppl/tmap_inc/axis_inc.decl                         |     8 +
 ppl/tmap_inc/cont_inc.decl                         |     2 +
 ppl/tmap_inc/lines_inc.decl                        |     2 +
 ppl/tmap_inc/taxis_inc.decl                        |     4 +
 ppl/tmapadds/Makefile                              |     6 -
 ppl/tmapadds/SOURCE_FILES                          |     1 +
 ppl/tmapadds/compute_mnstd.F                       |    34 +-
 ppl/tmapadds/fillpoly.F                            |   108 +-
 ppl/tmapadds/get_ndx.F                             |     3 +-
 ppl/tmapadds/its_gksm.c                            |     2 +
 ppl/tmapadds/key.F                                 |   137 +-
 ppl/tmapadds/reallo_envelope.c                     |     1 +
 ppl/tmapadds/set_levels_shade_fill.F               |    39 +-
 ppl/tmapadds/{its_gksm.c => set_t1_date.F}         |    30 +-
 ppl/tmapadds/setlab_syms.F                         |    26 +-
 pviewmod/cmndhelperpq.py                           |     2 +-
 pyfermod/__init__.py                               |  1398 +-
 pyfermod/datamethods.py                            |   990 +
 pyfermod/feraggdset.py                             |   162 +
 pyfermod/feraxis.py                                |   486 +
 pyfermod/ferdset.py                                |   348 +
 pyfermod/fergrid.py                                |   197 +
 pyfermod/fermethods.py                             |   569 +
 pyfermod/ferpyvar.py                               |   173 +
 pyfermod/ferrdataset.py                            |    24 -
 pyfermod/ferrdatavar.py                            |    22 -
 pyfermod/ferregion.py                              |   247 +
 pyfermod/ferrvar.py                                |    22 -
 pyfermod/fervar.py                                 |  1038 +
 pyfermod/libpyferret.c                             |   396 +-
 pyfermod/pyefmethods.py                            |   346 +
 pyfermod/pyferret.h                                |    15 +
 setup.py                                           |    70 +-
 site_specific.mk                                   |    28 +-
 threddsBrowser/.gitignore                          |     2 +
 threddsBrowser/Makefile                            |     5 +-
 712 files changed, 103662 insertions(+), 38227 deletions(-)

diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..d13cc4b
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,19 @@
+The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/Makefile b/Makefile
index 6fde475..ae87863 100644
--- a/Makefile
+++ b/Makefile
@@ -17,11 +17,19 @@ optimized :
 	mkdir -p $(DIR_PREFIX)/lib
 	$(MAKE) -C $(DIR_PREFIX)/fer optimized
 	$(MAKE) -C $(DIR_PREFIX)/threddsBrowser
-	$(MAKE) "CFLAGS = $(CFLAGS) -O" pymod_optimized
-	if [ "$(BUILDTYPE)" != "intel-mac" ] ; then \
-            $(MAKE) "FFLAGS = $(FFLAGS) -O" -C $(DIR_PREFIX)/efmem ; \
-            $(MAKE) "INSTALL_FER_DIR = $(DIR_PREFIX)/pyferret_install" -C $(DIR_PREFIX)/external_functions optimized ; \
-        fi
+	$(MAKE) pymod_optimized_build
+	$(MAKE) pymod_optimized_install
+	$(MAKE) externals_optimized
+	$(MAKE) -C $(DIR_PREFIX)/bin/build_fonts/unix
+
+.PHONY : beta
+beta :
+	mkdir -p $(DIR_PREFIX)/lib
+	$(MAKE) -C $(DIR_PREFIX)/fer beta
+	$(MAKE) -C $(DIR_PREFIX)/threddsBrowser
+	$(MAKE) pymod_optimized_build
+	$(MAKE) pymod_optimized_install
+	$(MAKE) externals_optimized
 	$(MAKE) -C $(DIR_PREFIX)/bin/build_fonts/unix
 
 .PHONY : debug
@@ -29,60 +37,84 @@ debug :
 	mkdir -p $(DIR_PREFIX)/lib
 	$(MAKE) -C $(DIR_PREFIX)/fer debug
 	$(MAKE) -C $(DIR_PREFIX)/threddsBrowser
-	$(MAKE) "CFLAGS = $(CFLAGS) -O0 -g" pymod_debug
-	if [ "$(BUILDTYPE)" != "intel-mac" ] ; then \
-            $(MAKE) "FFLAGS = $(FFLAGS) -O0 -g" -C $(DIR_PREFIX)/efmem ; \
-            $(MAKE) "INSTALL_FER_DIR = $(DIR_PREFIX)/pyferret_install" -C $(DIR_PREFIX)/external_functions debug ; \
-        fi
+	$(MAKE) pymod_debug_build
+	$(MAKE) pymod_debug_install
+	$(MAKE) externals_debug
 	$(MAKE) -C $(DIR_PREFIX)/bin/build_fonts/unix
 
-## The following builds libpyferret.so, then installs that shared-object
-## library and all the python scripts into $(DIR_PREFIX)/pyferret_install.
-## This install directory can then be used for the <pyferret_install_dir>
-## argument to make_executables_tar.
-.PHONY : pymod_optimized
-pymod_optimized :
-	rm -fr $(DIR_PREFIX)/build $(DIR_PREFIX)/pyferret_install
+## The following does an optimized build of libpyferret.so
+.PHONY : pymod_optimized_build
+pymod_optimized_build :
+	rm -fr $(DIR_PREFIX)/build $(DIR_PREFIX)/install
 	( cd $(DIR_PREFIX) ; \
+	  export CC=$(CC) ; \
+	  export CFLAGS="$(CFLAGS) -O" ; \
+	  export BUILDTYPE=$(BUILDTYPE) ; \
 	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
 	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
 	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
 	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
-	  export PYFERRET_VERSION=$(PYFERRET_VERSION) ; \
 	  $(PYTHON_EXE) setup.py --quiet build )
+
+## The following installs libpyferret.so and optimized 
+## versions of all the python scripts into $(DIR_PREFIX)/install.
+.PHONY : pymod_optimized_install
+pymod_optimized_install :
+	rm -fr $(DIR_PREFIX)/install
 	( cd $(DIR_PREFIX) ; \
+	  export CC=$(CC) ; \
+	  export CFLAGS="$(CFLAGS) -O" ; \
+	  export BUILDTYPE=$(BUILDTYPE) ; \
 	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
 	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
 	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
 	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
-	  export PYFERRET_VERSION=$(PYFERRET_VERSION) ; \
-	  $(PYTHON_EXE) setup.py --quiet install -O2 --prefix=$(DIR_PREFIX)/pyferret_install )
+	  $(PYTHON_EXE) setup.py --quiet install -O2 --prefix=$(DIR_PREFIX)/install )
+
+.PHONY : externals_optimized
+externals_optimized :
+	$(MAKE) "FER_DIR = $(DIR_PREFIX)/install" -C $(DIR_PREFIX)/external_functions optimized
 
-.PHONY : pymod_debug
-pymod_debug :
-	rm -fr $(DIR_PREFIX)/build $(DIR_PREFIX)/pyferret_install
+## The following does a debug build of libpyferret.so
+.PHONY : pymod_debug_build
+pymod_debug_build :
+	rm -fr $(DIR_PREFIX)/build $(DIR_PREFIX)/install
 	( cd $(DIR_PREFIX) ; \
+	  export CC=$(CC) ; \
+	  export CFLAGS="$(CFLAGS) -O0 -g" ; \
+	  export BUILDTYPE=$(BUILDTYPE) ; \
 	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
 	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
 	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
 	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
-	  export PYFERRET_VERSION=$(PYFERRET_VERSION) ; \
-	  $(PYTHON_EXE) setup.py --quiet build -g )
+	  $(PYTHON_EXE) setup.py build -g )
+
+## The following installs libpyferret.so and unoptimized
+## versions of all the python scripts into $(DIR_PREFIX)/install.
+.PHONY : pymod_debug_install
+pymod_debug_install :
+	rm -fr $(DIR_PREFIX)/install
 	( cd $(DIR_PREFIX) ; \
+	  export CC=$(CC) ; \
+	  export CFLAGS="$(CFLAGS) -O0 -g" ; \
+	  export BUILDTYPE=$(BUILDTYPE) ; \
 	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
 	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
 	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
 	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
-	  export PYFERRET_VERSION=$(PYFERRET_VERSION) ; \
-	  $(PYTHON_EXE) setup.py --quiet install -O0 --prefix=$(DIR_PREFIX)/pyferret_install )
+	  $(PYTHON_EXE) setup.py install -O0 --prefix=$(DIR_PREFIX)/install )
+
+.PHONY : externals_debug
+externals_debug :
+	$(MAKE) "FER_DIR = $(DIR_PREFIX)/install" -C $(DIR_PREFIX)/external_functions debug
 
 ## Remove everything that was built
 .PHONY : clean
 clean :
+	$(MAKE) -C $(DIR_PREFIX)/bench clean
 	$(MAKE) -C $(DIR_PREFIX)/bin/build_fonts/unix clean
 	$(MAKE) -C $(DIR_PREFIX)/external_functions clean
-	$(MAKE) -C $(DIR_PREFIX)/efmem clean
-	rm -fr $(DIR_PREFIX)/pyferret_install $(DIR_PREFIX)/build ferret.jnl*
+	rm -fr $(DIR_PREFIX)/install $(DIR_PREFIX)/build ferret.jnl*
 	find $(DIR_PREFIX)/pviewmod -name '*.py[co]' -exec rm -f {} ';'
 	find $(DIR_PREFIX)/pyfermod -name '*.py[co]' -exec rm -f {} ';'
 	$(MAKE) -C $(DIR_PREFIX)/threddsBrowser clean
@@ -91,44 +123,35 @@ clean :
 
 ## Install Ferret binaries, scripts, and other files into $(INSTALL_FER_DIR)
 .PHONY : install
-install : install_env install_exes
-
-## Create the fer_environment.tar.gz files and then extract it into $(INSTALL_FER_DIR)
-.PHONY :  install_env
-install_env :
-	rm -f fer_environment.tar.gz
-	bin/make_environment_tar . . -y
+install :
+	rm -f pyferret-latest-local.tar.gz
+	bin/make_dist_tar . latest local . -y
 	mkdir -p $(INSTALL_FER_DIR)
-	mv -f fer_environment.tar.gz $(INSTALL_FER_DIR)
-	( cd $(INSTALL_FER_DIR) ; tar xzf fer_environment.tar.gz )
-
-## Create the fer_executables.tar.gz files and then extract it into $(INSTALL_FER_DIR)
-.PHONY : install_exes
-install_exes :
-	rm -f fer_executables.tar.gz
-	bin/make_executable_tar . . -y
-	mkdir -p $(INSTALL_FER_DIR)
-	mv -f fer_executables.tar.gz $(INSTALL_FER_DIR)
-	( cd $(INSTALL_FER_DIR) ; tar xzf fer_executables.tar.gz )
-	cp -f threddsBrowser/toolsUI/toolsUI-4.1.jar $(INSTALL_FER_DIR)/lib/
+	mv -f pyferret-latest-local.tar.gz $(INSTALL_FER_DIR)
+	( cd $(INSTALL_FER_DIR) ; tar xz --strip-components=1 -f pyferret-latest-local.tar.gz )
 
 ## The following is for installing the updated threddsBrowser.jar, ferret_ef_meme_subsc.so,
 ## libpyferret.so, and PyFerret python scripts into $(INSTALL_FER_DIR)/lib without having 
-## to go through the make_executables_tar script.  Also copies all the PyFerret Fortran 
-## external function to the $(INSTALL_FER_DIR)/ext_func/pylibs directory.
+## to use the distribution tar file.  Also copies all the PyFerret Fortran external function 
+## to the $(INSTALL_FER_DIR)/ext_func/pylibs directory.
 .PHONY : update
 update :
 	mkdir -p $(INSTALL_FER_DIR)/lib
 	cp -f $(DIR_PREFIX)/threddsBrowser/threddsBrowser.jar $(INSTALL_FER_DIR)/lib
-	cp -f $(DIR_PREFIX)/efmem/ferret_ef_mem_subsc.so $(INSTALL_FER_DIR)/lib
 	find $(DIR_PREFIX)/external_functions -type f -perm -100 -name \*.so -exec cp {} $(INSTALL_FER_DIR)/ext_func/pylibs \;
 	( cd $(DIR_PREFIX) ; \
+	  export CC=$(CC) ; \
+	  export CFLAGS="$(CFLAGS) -O" ; \
+	  export BUILDTYPE=$(BUILDTYPE) ; \
 	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
 	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
 	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
 	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
-	  export PYFERRET_VERSION=$(PYFERRET_VERSION) ; \
 	  $(PYTHON_EXE) setup.py --quiet install -O2 --prefix=$(INSTALL_FER_DIR) )
-#	$(MAKE) "FER_LOCAL_EXTFCNS = $(INSTALL_FER_DIR)/ext_func/libs" -C $(DIR_PREFIX)/external_functions install
+
+## Execute the RUN_TESTS.sh tests
+.PHONY : run_tests
+run_tests :
+	$(MAKE) -C $(DIR_PREFIX)/bench run_tests
 
 ##
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..07f5580
--- /dev/null
+++ b/README.md
@@ -0,0 +1,5 @@
+# PyFerret
+The PyFerret Python module from NOAA/PMEL.
+This repository is regularly synchronized with PyFerret repository at PMEL
+(the pyferret branch of the ferret project in the TMAP SVN repository at PMEL)
+using git-svn.
diff --git a/README_build_ferret b/README_build_ferret
deleted file mode 100644
index 424643b..0000000
--- a/README_build_ferret
+++ /dev/null
@@ -1,66 +0,0 @@
-As of August 2011 we now have a single make procedure for compiling, linking, and 
-installing Ferret. 
-
-
-NetCDF4.1 or higher is required for building Ferret. The library NetCDF4.2 or higher
-is recommended. We recommend building NetCDF and HDF libraries yourself, so that these
-libraries and Ferret are all built with the same compiler. This takes a little time, but
-is not difficult. For building the libraries and Ferret, we have used gfortran. The 
-NetCDF downloads can be found here: http://www.unidata.ucar.edu/software/NetCDF/. Build 
-NetCDF4.+ with the appropriate version of hdf5 given in the NetCDF instructions; and make
-sure to build it with fortran (Starting with NetCDF4.1.3 there is a separate NetCDF fortran
-library). Specify the hdf5 libraries, --enable-NetCDF-4 --enable-dap for NetCDF-4 features 
-and OPeNDAP dataset access.
-
-The current official release of Ferret is linked with NetCDF4.2 and has syntax for 
-writing NetCDF4 datasets (hdf5 chunking and compression.)  See the release notes 
-for Ferret v6.6 at http://porter.pmel.noaa.gov/Ferret/home/documentation/v6-6-release-notes
-
-
-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".
-
-  * 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
-  FERRET/fer/ferret_c
-
-  * The build process creates the fonts files that will be needed for Ferret.
-
-  * In the site_specific.mk file, you will see a section about the variable INSTALL_FER_DIR.
-  It is defined there as INSTALL_FER_DIR = $(FER_DIR). If you leave it set that way, then run 
-  "make install" to install Ferret and the environment under that directory. It will also
-  create the tar files fer_environment.tar.gz and fer_executables.tar.gz in directory $(FER_DIR).
-  
-  Alternatively you may want to set INSTALL_FER_DIR to some local directory. Now run "make 
-  install". This will install Ferret under the directory you defined and also create 
-  fer_environment.tar.gz and fer_executables.tar.gz as if they came from the Ferret 
-  distribution. Now you can get the Datasets tar file from 
-  ftp://ftp.pmel.noaa.gov/ferret/pub/data/fer_dsets.tar.gz 
-  and follow the installation instructions
-  http://ferret.pmel.noaa.gov/static/Downloads/ferret_installation_and_update_guide_v600.html
-
-  * Once you have installed Ferret, you'll want to test it. Running some simple scripts, 
-  such as "yes? go ptest" is a good place to start. If you wish, go into the FERRET/bench 
-  directory to run the suite of benchmark tests. There is a simple README file which will 
-  get you started with running the Ferret benchmark scripts. You will run a shell script 
-  called "run_all" which starts the benchmark job. It tests a wide variety of Ferret's 
-  capabilities and makes a number of plots. If it runs successfully you will see these lines:
-
-about to run test of .ferret script
-Display no longer set, about to run batch gif test
-Display still not set, about to run batch ps test
-Display still not set, about to run batch metafile test
-Ended at Tue Nov 8 13:08:13 PST 2011
-Checking PLT, GIF and PS files.......
-
-  In all likelihood this will be followed by a number of messages starting with "plt files
-  differ". The script checks the size of the image files, and it's to be expected that that
-  will differ a bit from one system to another.
-
-  Running all the way through the benchmark suite is a good test of Ferret and the Ferret
-  installation. If you have questions about the results you are welcome to write us at the 
-  contact-Ferret email address, see http://ferret.pmel.noaa.gov/Ferret/support.
diff --git a/README_build_pyferret_mac.txt b/README_build_pyferret_mac.txt
new file mode 100644
index 0000000..9cda130
--- /dev/null
+++ b/README_build_pyferret_mac.txt
@@ -0,0 +1,159 @@
+Instructions for build PyFerret on Mac OSX using homebrew.
+If you do not have homebrew install, run the following at a command prompt (terminal window).
+    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
+See http://brew.sh/ for more information on using homebrew.
+
+You will want to have the bin subdirectory of the homebrew package installation directory 
+(/usr/local/bin is the default) at the start of your path :
+
+export PATH="/usr/local/bin:$PATH"
+
+Install the gcc package using homebrew in order to get a gfortran compiler :
+
+brew install gcc
+
+Assign some environment variables specifying the compilers from the gcc install :
+( for C-shell users, use 'setenv SYM "VAL"' instead of 'export SYM="VAL"' )
+
+export CC="/usr/local/bin/gcc-6"
+export FC="/usr/local/bin/gfortran-6"
+export F77="/usr/local/bin/gfortran-6"
+export CXX="/usr/local/bin/g++-6"
+
+Install some more packages using homebrew :
+
+brew install cairo
+brew install pango
+brew install python
+brew install pyqt
+
+Install packages using pip (which was installed as part of the python package) :
+
+pip install numpy
+pip install scipy
+pip install pyshp
+
+We typically build and install the latest HDF5 and NetCDF4 static libraries
+for linking into Ferret and PyFerret.  However, if you can find packages
+that install these for you that you are happy using, skip down to 
+"Get the PyFerret source code from github"
+
+Assign some compiler flags environment variables for compiling HDF5 :
+
+export CPPFLAGS="-fPIC -I/usr/local/include"
+export CFLAGS="-fPIC -I/usr/local/include"
+export FCFLAGS="-fPIC -I/usr/local/include"
+export LDFLAGS="-fPIC -L/usr/local/lib"
+
+Download, then build and install the latest release of HDF5 from http://www.hdfgroup.org/ftp/HDF5/current/src/ :
+
+tar xzf Downloads/hdf5-1.8.16.tar.gz
+cd hdf5-1.8.16
+./configure --prefix=/usr/local/hdf5-1.8.16 --disable-shared
+make
+make check
+make install
+cd ..
+rm -fr hdf5-1.8.16
+
+Assign some compiler flags enviroment variables for compiling NetCDF C :
+
+export CPPFLAGS="-fPIC -I/usr/local/include -I/usr/local/hdf5-1.8.16/include"
+export CFLAGS="-fPIC -I/usr/local/include -I/usr/local/hdf5-1.8.16/include"
+export FCFLAGS="-fPIC -I/usr/local/include -I/usr/local/hdf5-1.8.16/include"
+export LDFLAGS="-fPIC -L/usr/local/lib -L/usr/local/hdf5-1.8.16/lib"
+
+Download, then build and install the latest release of NetCDF C library from http://www.unidata.ucar.edu/downloads/netcdf/ :
+
+tar xzf Downloads/netcdf-4.4.0.tar.gz
+cd netcdf-4.4.0
+./configure --prefix=/usr/local/netcdf-4.4.0 --disable-shared --disable-dap-remote-tests
+make
+make check
+make install
+cd ..
+rm -fr netcdf-4.4.0
+
+Assign some compiler flags enviroment variables for compiling NetCDF Fortran :
+
+export CPPFLAGS="-fPIC -I/usr/local/include -I/usr/local/hdf5-1.8.16/include -I/usr/local/netcdf-4.4.0/include"
+export CFLAGS="-fPIC -I/usr/local/include -I/usr/local/hdf5-1.8.16/include -I/usr/local/netcdf-4.4.0/include"
+export FCFLAGS="-fPIC -I/usr/local/include -I/usr/local/hdf5-1.8.16/include -I/usr/local/netcdf-4.4.0/include"
+export LDFLAGS="-fPIC -L/usr/local/lib -L/usr/local/hdf5-1.8.16/lib -L/usr/local/netcdf-4.4.0/lib"
+export LIBS="-lnetcdf -lhdf5_hl -lhdf5 -ldl -lm -lz -lcurl"
+
+Download, then build and install the latest release of NetCDF Fortran library from http://www.unidata.ucar.edu/downloads/netcdf/ :
+
+tar xzf Downloads/netcdff-4.4.3.tar.gz
+cd netcdff-4.4.3
+./configure --prefix=/usr/local/netcdf-4.4.0 --disable-shared --disable-f03
+make
+make check
+make install
+cd ..
+rm -fr netcdff-4.4.3
+
+Clear compiler flags environment variables before building PyFerret :
+( for C-shell users, use 'unsetenv SYM' instead of 'export SYM=""' )
+
+export CPPFLAGS=""
+export CFLAGS=""
+export FCFLAGS=""
+export LDFLAGS=""
+export LIBS=""
+
+Get the PyFerret source code from github :
+
+git clone https://github.com/NOAA-PMEL/PyFerret.git pyferret_src
+cd pyferret_src
+
+Or if you wish to help with PyFerret development, fork NOAA-PMEL/PyFerret under your own github account 
+and then clone the repo under your account to your local system.
+
+Edit site_specific.mk appropriately for your system :
+
+DIR_PREFIX = /your/path/to/pyferret_src
+BUILDTYPE = intel-mac
+PYTHON_EXE = python2.7
+INSTALL_FER_DIR = /your/path/to/where/to/install/PyFerret
+CAIRO_DIR = /usr/local
+PIXMAN_DIR = /usr/local
+HDF5_DIR = /usr/local/hdf5-1.8.16
+NETCDF4_DIR = /usr/local/netcdf-4.4.0
+JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
+
+(JAVA_HOME will need to match whatever version number is on your system.)
+
+Edit external_functions/ef_utility/site_specific.mk similarily :
+
+BUILDTYPE = intel-mac
+PYTHON_EXE = python2.7
+INSTALL_FER_DIR = /your/path/to/where/to/install/PyFerret
+
+Build PyFerret and install in the location given by INSTALL_FER_DIR :
+
+make
+make install
+cd ..
+
+At this point you are now where one would be if you had downloaded and 
+extracted a prebuilt PyFerret tar file to the PyFerret installation 
+directory.
+
+Run the Finstall script under the PyFerret installation directory 
+and assign the ferret_paths environment variables for running PyFerret :
+( for C-shell users, use 'source path/to/ferret_paths.csh' instead of '. path/to/ferret_paths.sh' )
+
+cd /your/path/to/where/to/install/PyFerret
+bin/Finstall
+. path/to/ferret_paths.sh
+
+The benchmark tests are found in the bench subdirectory of the pyferret_src directory.
+You can use RUN_TESTS.sh to run through the suite of tests and examine the results
+in the all_... files that are generated as well as the PDF files that are created,
+and compare them to the files in the test_results subdirectory in bench.
+
+cd /your/path/to/pyferret_src
+cd bench
+./RUN_TESTS.sh `which pyferret` "$PYFER_EXTERNAL_FUNCTIONS" <Any comment you wish to make>
+
diff --git a/bench/Makefile b/bench/Makefile
new file mode 100644
index 0000000..88e8351
--- /dev/null
+++ b/bench/Makefile
@@ -0,0 +1,40 @@
+#
+# Makefile for the PyFerret source bench subdirectory
+#
+
+# include platform specific macro definitions for make_stream_file
+include ../site_specific.mk
+include ../platform_specific.mk.$(BUILDTYPE)
+
+## Execute the RUN_TESTS.sh test suite
+.PHONY: run_tests
+run_tests:
+	@if [ `which pyferret` = "" -o "$(FER_DIR)" = "" ]; then \
+	    echo "*** PyFerret must be installed and the ferret_paths script must have sourced for these tests ***" ; \
+	    exit 1 ; \
+	fi
+	./RUN_TESTS.sh `which pyferret` "$(PYFER_EXTERNAL_FUNCTIONS)" "RUN_TESTS.sh test results for PyFerret"
+	@echo 'Differences in the generated bench PDF and PNG files versus against those in test_results'
+	@for img in *.pdf *.png ; \
+	do \
+	    diff -q $$img test_results/$$img ; \
+	done
+	@echo ''
+	@echo 'Inspect the bench/all_*_ncdump, bench/all_*_err, and bench/all_*_log files just created '
+	@echo 'against bench/test_results/pyferret_run_tests_ncdump, bench/test_results/pyferret_run_test_err, '
+	@echo 'and bench/test_results/pyferret_run_tests_log'
+
+.PHONY: clean
+clean:
+	rm -f all_*_ncdump all_*_err all_*_log
+	rm -f *.plt* *.gif* *.ps* *.png* *.pdf* ferret.jnl*
+	rm -f `cat TRASH_FILES`
+	rm -f all_ncdump.out fort.41 make_stream_file
+	rm -fr subdir tmp
+
+make_stream_file: make_stream_file.F
+	$(FC) $(FFLAGS) make_stream_file.F -o make_stream_file
+
+#
+# End of Makefile
+#
diff --git a/bench/RUN_TESTS.sh b/bench/RUN_TESTS.sh
index 7e3772e..9aec8ee 100755
--- a/bench/RUN_TESTS.sh
+++ b/bench/RUN_TESTS.sh
@@ -26,10 +26,11 @@ export PS1
 # allow tests to be commented out by beginning with the line with a '!'
 # remove bn_all_ef.jnl from the list if $efdir is "."
 if [ "$efdir" = "." ]; then
-   test_scripts=`grep -v '^!' TEST_SCRIPTS | grep -v "bn_all_ef\.jnl"`
+   jnl_scripts=`grep -v '^!' TEST_SCRIPTS | grep '\.jnl$' | grep -v "bn_all_ef\.jnl"`
 else
-   test_scripts=`grep -v '^!' TEST_SCRIPTS`
+   jnl_scripts=`grep -v '^!' TEST_SCRIPTS | grep '\.jnl$'`
 fi
+py_scripts=`grep -v '^!' TEST_SCRIPTS | grep '\.py$'`
 
 umask 002
 
@@ -38,6 +39,8 @@ if [ `uname -s` = "Linux" -a `uname -m` = "x86_64" ]; then
     machine="x86_64-linux"
 elif [ `uname -s` = "Linux" -a `uname -m` = "i686" ]; then
     machine="linux"
+elif [ `uname -s` = "Darwin" -a `uname -m` = "x86_64" ]; then
+    machine="x86_64-darwin"
 else
     echo "Unknown machine type"
     exit 1
@@ -47,8 +50,14 @@ date_stamp=`date +'%d%h%yAT%H%M'|tr '[A-Z]' '[a-z]'`
 log_file="all_${date_stamp}.${machine}_log"
 err_file="all_${date_stamp}.${machine}_err"
 ncdump_file="all_${date_stamp}.${machine}_ncdump"
+
+# Make sure things are clean for this run
 rm -f $log_file $err_file $ncdump_file
+rm -f ferret.jnl* bat.plt* `cat TRASH_FILES`
+rm -fr subdir tmp
+
 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"
@@ -59,6 +68,7 @@ else
    echo "File $machine_stream does not exist." >> $log_file
    echo "Benchmark bn420_stream will fail." >> $log_file
    echo "To create $machine_stream compile make_stream_file.F and run the executable" >> $log_file
+   echo "(You may need to use the compile flag -Dreclen_in_bytes)" >> $log_file
    echo "Then rename stream10by5.unf to $machine_stream" >> $log_file
    echo "File $machine_stream does not exist."
    echo "Benchmark bn420_stream will fail."
@@ -66,14 +76,11 @@ else
    echo "Then rename stream10by5.unf to $machine_stream"
 fi
 
-#set up proper stream testing jnl file - depends on endianness
+# set up proper stream testing jnl file - depends on endianness
+# pretty much everything is little endian now
 rm -f bn_test_stream.jnl
-if [ $machine = "linux" -o $machine = "alp" -o \
-     $machine = "x86_64-linux" -o $machine = "ia64-linux" ]; then
-    ln -s bn_test_stream_little.jnl bn_test_stream.jnl
-else
-    ln -s bn_test_stream_big.jnl bn_test_stream.jnl
-fi
+ln -s bn_test_stream_little.jnl bn_test_stream.jnl
+# ln -s bn_test_stream_big.jnl bn_test_stream.jnl
 
 echo "Testing log output in $log_file"
 echo "Testing errors in $err_file" 
@@ -84,10 +91,22 @@ ls -l $fver >> $log_file
 echo "Using external functions from $efdir" >> $log_file
 echo "Benchmark run by $bmarker" >> $log_file
 echo "Note: $bcomment" >> $log_file
-echo "Benchmark scripts that will be run:" >> $log_file
-for jnl in $test_scripts; do
-   echo "   $jnl" >> $log_file
-done
+
+if ! echo "$fver" | grep -q "pyferret"; then
+   ispyferret=0
+#  command-line options for ferret
+   feropts="-nojnl -gif -noverify"
+#  external functions search path
+   FER_EXTERNAL_FUNCTIONS="$efdir"
+   export FER_EXTERNAL_FUNCTIONS
+else
+   ispyferret=1
+#  command-line options for pyferret
+   feropts="-nojnl -quiet -nodisplay -noverify -linebuffer"
+#  external functions search path
+   PYFER_EXTERNAL_FUNCTIONS="$efdir"
+   export PYFER_EXTERNAL_FUNCTIONS
+fi
 
 #set up a generic data environment
 echo "****** Restricting Ferret paths to bench directory ******" >> $log_file
@@ -105,66 +124,57 @@ FER_DIR="."
 export FER_DIR
 Fenv >> $log_file
 
-# Make sure things are clean for this run
-rm -f ferret.jnl* bat.plt* `cat TRASH_FILES`
-rm -fr subdir
-touch F.cdf snoopy.dat
-
-now=`date`
-echo "Beginning at $now" >> $log_file
-cp $log_file $err_file
-echo "Beginning at $now"
-
 # always replace $HOME/.ferret with default.ferret so results are consistent
 rm -f keep.ferret
 if [ -f $HOME/.ferret ]; then 
-   echo "****** Temporarily moving $HOME/.ferret to keep.ferret ******"
-   mv -f $HOME/.ferret keep.ferret
+   echo "****** Temporarily moving $HOME/.ferret to ./keep.ferret ******"
+   mv -f $HOME/.ferret ./keep.ferret
 fi
 cp ./default.ferret $HOME/.ferret
 
-if ! echo "$fver" | grep -q "pyferret"; then
-#  command-line options for ferret
-   feropts="-noverify"
-#  external functions search path
-   FER_EXTERNAL_FUNCTIONS="$efdir"
-   export FER_EXTERNAL_FUNCTIONS
-else
-#  command-line options for pyferret
-   feropts="-quiet -nodisplay -noverify"
-#  external functions search path
-   PYFER_EXTERNAL_FUNCTIONS="$efdir"
-   export PYFER_EXTERNAL_FUNCTIONS
+echo "Benchmark scripts that will be run:" >> $log_file
+for script in $jnl_scripts; do
+   echo "   $script" >> $log_file
+done
+if [ "$ispyferret" -ne 0 ]; then
+   for script in $py_scripts; do
+      echo "   $script" >> $log_file
+   done
 fi
 
+now=`date`
+echo "Beginning at $now" >> $log_file
+cp $log_file $err_file
+echo "Beginning at $now"
+
 # run each of the scripts in the list
 rm -f all_ncdump.out
-for jnl in $test_scripts; do
+for script in $jnl_scripts; do
 
-   echo "*** Running test: $jnl" >> $log_file
-   echo "*** Running test: $jnl" >> $err_file
-   echo "*** Running test: $jnl" > all_ncdump.out
-   echo "Running test: $jnl"
+   echo "*** Running ferret script: $script" >> $log_file
+   echo "*** Running ferret script: $script" >> $err_file
+   echo "*** Running ferret script: $script" > all_ncdump.out
+   echo "Running ferret script: $script"
 
-   if [ $jnl = "bn_startupfile.jnl" ]; then
+   if [ $script = "bn_startupfile.jnl" ]; then
 #     bn_startupfile.jnl needs ferret_startup as $HOME/.ferret
       rm -f $HOME/.ferret
       cp -f ferret_startup $HOME/.ferret
    fi
 
-   if [ $jnl = "bn_dollar.jnl" ]; then
-      $fver $feropts -script $jnl hello 1>> $log_file 2>> $err_file
+   if [ $script = "bn_dollar.jnl" ]; then
+      $fver $feropts -script $script hello 1>> $log_file 2>> $err_file
    else
-      $fver $feropts -script $jnl 1>> $log_file 2>> $err_file
+      $fver $feropts -script $script 1>> $log_file 2>> $err_file
    fi
    if [ $? -ne 0 ]; then
-      echo "****** FERRET error: $jnl failed ******" >> $log_file
-      echo "****** FERRET error: $jnl failed ******" >> $err_file
-      echo "****** FERRET error: $jnl failed ******" >> all_ncdump.out
-      echo "****** FERRET error: $jnl failed ******"
+      echo "****** FERRET error: $script failed ******" >> $log_file
+      echo "****** FERRET error: $script failed ******" >> $err_file
+      echo "****** FERRET error: $script failed ******" >> all_ncdump.out
+      echo "****** FERRET error: $script failed ******"
    fi
 
-   if [ $jnl = "bn_startupfile.jnl" ]; then
+   if [ $script = "bn_startupfile.jnl" ]; then
 #     remove the $HOME/.ferret created for bn_startupfile.jnl
       rm -f $HOME/.ferret
       cp -f default.ferret $HOME/.ferret
@@ -173,9 +183,28 @@ for jnl in $test_scripts; do
 #  add the contents of all_ncdump.out to $ncdump_file
    cat all_ncdump.out >> $ncdump_file
    rm -f all_ncdump.out
-
+   rm -f ferret.gif
+   rm -f ferret.png
 done
 
+if [ "$ispyferret" -ne 0 ]; then
+   for script in $py_scripts; do
+      echo "*** Running python script: $script" >> $log_file
+      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
+      if [ $? -ne 0 ]; then
+         echo "****** PYFERRET error: $script failed ******" >> $log_file
+         echo "****** PYFERRET error: $script failed ******" >> $err_file
+         echo "****** PYFERRET error: $script failed ******" >> all_ncdump.out
+         echo "****** PYFERRET error: $script failed ******"
+      fi
+      cat all_ncdump.out >> $ncdump_file
+      rm -f all_ncdump.out
+   done
+fi
+
 # Replace $HOME/.ferret if it was removed
 rm -f $HOME/.ferret
 if [ -f keep.ferret ]; then
@@ -184,12 +213,8 @@ if [ -f keep.ferret ]; then
 fi
 
 # Clean-up
-rm -f ferret.jnl* bat.plt* `cat TRASH_FILES`
-# Remove temporary subdirectory
-rm -fr subdir
-# Remove links made by this script (not in TRASH_FILES)
-rm -f bn_test_stream.jnl
-rm -f stream_data_link.unf
+rm -f `cat TRASH_FILES`
+rm -fr subdir tmp
 
 now=`date`
 echo  "Ended at $now" >> $err_file
diff --git a/bench/TEST_SCRIPTS b/bench/TEST_SCRIPTS
index 2ea99c1..9baf004 100644
--- a/bench/TEST_SCRIPTS
+++ b/bench/TEST_SCRIPTS
@@ -1,3 +1,4 @@
+! Ferret scripts must have the .jnl extension
 bn_syntax.jnl
 bn_dollar.jnl
 bn_grave.jnl
@@ -211,6 +212,7 @@ bn_bad_axis_bounds.jnl
 bn_enter_exit_GO.jnl
 bn_stddev.jnl
 bn_set_axis_name.jnl
+bn_let_remote.jnl
 bn691_bug_fixes.jnl
 bn_append_dsg.jnl
 bn_global_atts.jnl
@@ -238,9 +240,41 @@ bn_auxiliary.jnl
 bn_plot_ribbon_gaploc.jnl
 bn_time_short_axes.jnl
 bn_floatstr_extended.jnl
-bn696_bug_fixes
-bn_bin_regrid
+bn696_bug_fixes.jnl
+bn_bin_regrid.jnl
+bn697_bug_fixes.jnl
+bn_aggregate_t.jnl
+bn_unquoted_args.jnl
+bn_long_lists.jnl
+bn_show_uvar_grid.jnl
+bn_aggregate_f.jnl
+bn_aggregate_tef.jnl
+bn_dataset_qualifier.jnl
+bn_speedtest.jnl
+bn_show_noupcase.jnl
+bn_letd_attributes.jnl
+bn_list_clim_axes.jnl
+bn_climatology_attr.jnl
+bn_plot_along.jnl
+bn_show_commands.jnl
+bn_plot_decimate.jnl
+bn_auto_tprec.jnl
+bn_coordvars_atts.jnl
+! bn_gif, bn_all_ef, and bn_startupfile at end
+bn_gif.jnl
+bn_ps.jnl
 bn_all_ef.jnl
 bn_startupfile.jnl
-! PyFerret-only tests
+! PyFerret-only Ferret scripts
 bn_outline_poly.jnl
+bn_contourcolor.jnl
+! PyFerret-only Python scripts
+testgetstrdata.py
+testferregion.py
+testferdset.py
+testfervar.py
+testferaggdset.py
+testferaxis.py
+testfergrid.py
+testferpyvar.py
+testfermethods.py
diff --git a/bench/TRASH_FILES b/bench/TRASH_FILES
index 6c3ba74..f3d4e47 100644
--- a/bench/TRASH_FILES
+++ b/bench/TRASH_FILES
@@ -10,45 +10,24 @@ a1.nc
 a2.nc
 aa.nc
 abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif
+abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.png
 a.gif
 a.jnl
 a.nc
-a.png
-a.txt
 anew_global.nc
 another_file_vars.nc
-anothername.gif
+a.png
 append_to_this.nc
 asc.nc
-axticlabel.plt
+a.txt
 b1566.jnl
-bat.plt_1
-bat.plt_2
-bat.plt_3
-bat.plt_4
-bat.plt_5
-bat.plt_6
-bat.plt_7
-bat.plt_8
-bat.plt_9
-benchmark_history.log
-bench.mgm 
 b.jnl
 b.nc
-bnplot-1.gif
-bnplot-1.plt
-bnplot-2.gif
-bnplot-2.plt
-bnplot-3.plt
-bnplot-4.plt
-bnplot.gif
-bnplot.plt
-bnplot.ps
+bn_test_stream.jnl
 c1.nc
 c2.nc
 cc.nc
 clim.nc
-closed_lev.plt
 c.nc
 confuse_xz.nc
 confuse_yt.nc
@@ -56,13 +35,7 @@ confuse_yz.nc
 confuse_yzt.nc
 conventions_history.nc
 d2.nc
-dashbug.gif
-dashbug.plt
-dashbug.png
 dat.dat
-degC_axlab.plt
-dots.plt
-dsg_nocoord.nc
 dummy1.string_tst
 dummy1.str_test
 dummy2.string_tst
@@ -89,23 +62,17 @@ f2.nc
 F.cdf
 ferret.jnl
 ferret.jnl.~1~
-ferret.png
 FI.cdf
 FL.cdf
-flowlines.plt
 f.nc
 foo.bar1
 foo.bar2
 foo.bar3
 foo.cdf
-fort.41
 FTLON.cdf
 gh.nc
-.gif
-gif_dashbug.gif
 global_copy.nc
 g.nc
-graticules.plt
 h.nc
 input.txt
 irrxzt.nc
@@ -113,21 +80,20 @@ junk.dat
 justg.nc
 justh.nc
 layerz_test_data.txt
-linecolors.plt
 list_of_numbers.dat
 longax.dat
 longtitle.nc
 longvname.nc
 lonlat.dat
 lonlat.nc
-metafile.plt
-multi_line_labels.plt
+myfile.nc
 my_file_vars.nc
 mypack.nc
 mytype.nc
 names
 nc
 nc4_deflate4bigchunk.nc
+nc4_deflate4chunktoobig.nc
 nc4_deflate4_defaultchunk.nc
 nc4_deflate4.nc
 nc4_deflate4_t1.nc
@@ -143,10 +109,7 @@ other_file_vars.nc
 out.cdf
 out.nc
 out.xml
-pattern_plot1.plt
-pattern_plot2.plt
 permutedBinaryTest.dat
-polygon_plot.plt
 ppllist.out
 redirect_journal.txt
 redirect_stderr.txt
@@ -155,9 +118,8 @@ redirect.txt
 revision.nc
 snoopy.dat
 sst_new.nc
-startup_tests2.plt
 startup_tests.jnl
-startup_tests.plt
+stream_data_link.unf
 string4d.nc
 t12.nc
 t2.nc
@@ -182,7 +144,6 @@ test0p.cdf
 test_100x100.nc
 test2.cdf
 test_abs.cdf
-testbackground.gif
 test.cdf
 test.dat
 test_fil0.cdf
@@ -193,17 +154,12 @@ test_nomod.cdf
 test_save_dsg.nc
 test_string.cdf
 test_subspan_modulo.nc
-test.txt
 test.unf
 the_xml_file.xml
-timetics2.plt
-timetics.plt
 tval.nc
 unf.dat
 v12file.nc
 v1file.nc
-vec_curv2.plt
-vec_curv.plt
 WV.J34K56L7
 xml_out_string.xml
 xml_out.xml
diff --git a/bench/ansley_official.linux_err b/bench/ansley_official.rhel5_32_err
similarity index 85%
rename from bench/ansley_official.linux_err
rename to bench/ansley_official.rhel5_32_err
index 8d51c0c..b79efea 100644
--- a/bench/ansley_official.linux_err
+++ b/bench/ansley_official.rhel5_32_err
@@ -1,10 +1,10 @@
 Procedure run_all to run all FERRET benchmarks
 Running FERRET version /home/users/ansley/build/linux/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 86078089 Nov 17 09:24 /home/users/ansley/build/linux/FERRET/fer/ferret_c
+-rwxr-xr-x 1 ansley tmap 121894588 May 11 15:36 /home/users/ansley/build/linux/FERRET/fer/ferret_c
 Using external functions from /home/users/ansley/build/linux/FERRET/external_functions/ext_func
 Running the tests of external functions y
 Benchmark run by ansley
-Note: testing declaration of model str in match4.F as *(*)
+Note: updates including subspan modulo fixes
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -20,12 +20,12 @@ FER_LIBS=/home/users/tmap/ferret/linux/lib
 FER_PALETTE=. /home/users/tmap/ferret/linux/ppl
 PWD=/home/users/ansley/build/linux/FERRET/bench
 PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/linux/ext_func/pylibs
-Beginning at Tue Nov 17 09:25:34 PST 2015
+Beginning at Wed May 11 16:10:59 PDT 2016
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
         SET EXPRESSION has not been given or implied
- **ERROR: unknown command qualifier: help
-MESSAGE/CONTINUE /help
+ **ERROR: unknown command qualifier: notaqualifier
+MESSAGE/CONTINUE/notaqualifier
  **ERROR: unknown command: that
 that
  **ERROR: command syntax: \!
@@ -41,11 +41,13 @@ message/cont $3"<my error message"
 message/cont $1"|xxxxx|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $1
 message/cont $1"greetings|xxxxx|goodbye"
+           *** NOTE: Argument $1 received was: hello
            *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
  **ERROR: my error message
 message/cont $3"|hello|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3">greetings|hello|goodbye"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: hello|goodbye
  **ERROR: my error message
 message/cont $3">greetings|hello|goodbye<my error message"
@@ -57,9 +59,11 @@ message/cont $3""
 message/cont $3"<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"||"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: |
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>|"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: >|
  **ERROR: command syntax: empty text string provided with ">": >|
 message/cont $3">|"
@@ -67,6 +71,7 @@ message/cont $3">|"
 message/cont $3"|<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: >
  **ERROR: command syntax: arg number not in 1-99 range: $100
 say $100
@@ -285,11 +290,13 @@ define symbol t$5 = hi
 message/continue ($test2"<error message")
  **ERROR: invalid command: Valid value needed for symbol test2
 message/continue ($test2"|hello|bye|")
+           *** NOTE: symbol test2 was missing or empty.
            *** NOTE: Valid symbol test2 choices are: hello|bye|
  **ERROR: error message
 message/continue ($test2"|hello|bye|<error message")
  **ERROR: invalid command: Valid value needed for symbol t2
 message/continue ($t2"|solong>really hello|bye|")
+           *** NOTE: symbol t2 received was: hello
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -338,7 +345,7 @@ list tu
  **ERROR: regridding: Axis orientation not matching request:GX=PSYU
 list tu
  Cached data cleared from memory
- **ERROR: request exceeds memory setting: 25 Mwords were requested.
+ **ERROR: request exceeds memory setting: 50 Mwords were requested.
 list temp[gz=z999999,z=5:15]
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
@@ -587,14 +594,14 @@ Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: 24000 Mwords were requested.
+ **ERROR: request exceeds memory setting: 48000 Mwords were requested.
 load num
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: 1000 Mwords were requested.
+ **ERROR: request exceeds memory setting: 2000 Mwords were requested.
 load num
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
@@ -812,16 +819,6 @@ Replacing definition of grid TGRID
  **ERROR: command syntax: dash=(1., 2.)
           DASH[=(dn1,up1,dn2,up2)] takes 4 arguments or no argument
 plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
- **ERROR: value out of legal range: dash=(-1., 2., 3., 4.)
-          DASH arguments must be positive
-plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Using every   2th vector in the Y direction
- Using every   2th vector in the Y direction
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- Using every   2th vector in the X direction
 
 Bailing out of external function "ffta":
 	 Time axis must be a regular axis
@@ -834,6 +831,16 @@ Bailing out of external function "eof_stat":
 
 Bailing out of external function "eof_tfunc":
 	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: value out of legal range: dash=(-1., 2., 3., 4.)
+          DASH arguments must be positive
+plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ Using every   2th vector in the Y direction
+ Using every   2th vector in the Y direction
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ Using every   2th vector in the X direction
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -927,6 +934,8 @@ list strcat ("All work and no play")
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
  LISTing to file test_modulo.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1200,30 +1209,40 @@ Replacing definition of axis TAX2
            *** NOTE: Axis is in use by grid JGRID
            *** NOTE: Not deleted: MONTHT
            *** NOTE: Axis is in use by grid TGRID
-           *** NOTE: Not deleted: X10
+           *** NOTE: Not deleted: x10
            *** NOTE: Axis is in use by grid G10X5
            *** NOTE: Not deleted: YAX
            *** NOTE: Axis is in use by grid GFORMAT
            *** NOTE: Not deleted: XAX
            *** NOTE: Axis is in use by grid GFORMAT
-           *** NOTE: Not deleted: XAXLEVITR1_160
-           *** NOTE: Axis is in use by grid GG1
            *** NOTE: Not deleted: TIME5
            *** NOTE: Axis is in use by grid GLB1
-           *** NOTE: Not deleted: TIME4
-           *** NOTE: Axis is in use by grid GXYT
            *** NOTE: Not deleted: COADSX
            *** NOTE: Axis is in use by grid GG
+           *** NOTE: Not deleted: YAXLEVITR1_90
+           *** NOTE: Axis is in use by grid GG2
+           *** NOTE: Not deleted: XAXLEVITR1_160
+           *** NOTE: Axis is in use by grid GG1
+           *** NOTE: Not deleted: PSYT
+           *** NOTE: Axis is in use by grid GY
+           *** NOTE: Not deleted: PSXU
+           *** NOTE: Axis is in use by grid G5DAY
            *** NOTE: Not deleted: COADSY
            *** NOTE: Axis is in use by grid GG1
+           *** NOTE: Not deleted: (AX009)
+           *** NOTE: Axis is in use by grid GG3
+           *** NOTE: Not deleted: PSZT
+           *** 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: Axis is in use by grid GXYT
            *** NOTE: Not deleted: TEST_IRREG
            *** NOTE: Axis is in use by grid (G023)
-           *** NOTE: Not deleted: YAXLEVITR1_90
-           *** NOTE: Axis is in use by grid GG2
+           *** NOTE: Not deleted: PSZW
+           *** NOTE: Axis is in use by grid G5_10
            *** NOTE: Not deleted: ZAXLEVITR1_1
            *** NOTE: Axis is in use by grid GG2
-           *** NOTE: Not deleted: (AX020)
-           *** NOTE: Axis is in use by grid GG3
            *** NOTE: Not deleted: XEVEN
            *** NOTE: Axis is in use by grid EVEN
            *** NOTE: Not deleted: XODD
@@ -1320,28 +1339,38 @@ Replacing definition of axis TAX2
            *** NOTE: Axis is in use by grid JGRID
            *** NOTE: Not deleted: MONTHT
            *** NOTE: Axis is in use by grid TGRID
-           *** NOTE: Not deleted: X10
+           *** NOTE: Not deleted: x10
            *** NOTE: Axis is in use by grid G10X5
            *** NOTE: Not deleted: YAX
            *** NOTE: Axis is in use by grid GFORMAT
            *** NOTE: Not deleted: XAX
            *** NOTE: Axis is in use by grid GFORMAT
-           *** NOTE: Not deleted: XAXLEVITR1_160
-           *** NOTE: Axis is in use by grid GG1
            *** NOTE: Not deleted: TIME5
            *** NOTE: Axis is in use by grid GLB1
-           *** NOTE: Not deleted: TIME4
-           *** NOTE: Axis is in use by grid GXYT
            *** NOTE: Not deleted: COADSX
            *** NOTE: Axis is in use by grid GG
-           *** NOTE: Not deleted: COADSY
-           *** NOTE: Axis is in use by grid GG1
            *** NOTE: Not deleted: YAXLEVITR1_90
            *** NOTE: Axis is in use by grid GG2
+           *** NOTE: Not deleted: XAXLEVITR1_160
+           *** NOTE: Axis is in use by grid GG1
+           *** NOTE: Not deleted: PSYT
+           *** NOTE: Axis is in use by grid GY
+           *** NOTE: Not deleted: PSXU
+           *** NOTE: Axis is in use by grid G5DAY
+           *** NOTE: Not deleted: COADSY
+           *** NOTE: Axis is in use by grid GG1
+           *** NOTE: Not deleted: (AX009)
+           *** NOTE: Axis is in use by grid GG3
+           *** NOTE: Not deleted: PSZT
+           *** 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: Axis is in use by grid GXYT
+           *** NOTE: Not deleted: PSZW
+           *** NOTE: Axis is in use by grid G5_10
            *** NOTE: Not deleted: ZAXLEVITR1_1
            *** NOTE: Axis is in use by grid GG2
-           *** NOTE: Not deleted: (AX020)
-           *** NOTE: Axis is in use by grid GG3
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1514,12 +1543,19 @@ Replacing definition of axis TAX
 Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file b.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
 SHOW VAR/XML
 SHOW VAR/XML
+SHOW VAR/XML
+ LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1674,7 +1710,7 @@ def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,
  LISTing to file a.nc
 Replacing definition of axis XAX
 Replacing definition of axis ZAX
-Replacing definition of axis TAX
+Replacing definition of axis tax
  LISTing to file irrxzt.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -1800,26 +1836,31 @@ Replacing definition of axis TAX
 query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
  **ERROR: invalid command: Valid value needed for argument $2
 query/ignore $2%|a|b|c|d|%
+           *** NOTE: Argument $2 was missing or empty.
            *** NOTE: Valid argument $2 choices are: a|b|c|d|
  **ERROR: my error message
 message/cont $1"|xxxxx|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $1
 message/cont $1"greetings|xxxxx|goodbye"
+           *** NOTE: Argument $1 received was: hello
            *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
  **ERROR: my error message
 message/cont $3"|hello|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3">greetings|hello|goodbye"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: hello|goodbye
  **ERROR: my error message
 message/continue ($test2"<my error message")
  **ERROR: invalid command: Valid value needed for symbol test2
 message/continue ($test2"|hello|bye|")
+           *** NOTE: symbol test2 was missing or empty.
            *** NOTE: Valid symbol test2 choices are: hello|bye|
  **ERROR: my error message
 message/continue ($test2"|hello|bye|<my error message")
  **ERROR: invalid command: Valid value needed for symbol t2
 message/continue ($t2"|solong>really hello|bye|")
+           *** NOTE: symbol t2 was missing or empty.
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2102,10 +2143,10 @@ set var/outtype=char broiled
 set var/outtype=garbage broiled
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Changing the value of attribute (PSXT1).units
+           *** NOTE: Changing the value of attribute (PSXT).units
  LISTing to file a.nc
  LISTing to file a.nc
-           *** NOTE: Changing the value of attribute (PSXT1).units
+           *** NOTE: Changing the value of attribute (PSXT).units
            *** NOTE: Changing the value of attribute (PSYT1).units
  LISTing to file a.nc
  PERMANENT data cleared from memory
@@ -2216,7 +2257,7 @@ Replacing definition of axis TAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-Replacing definition of axis TAX
+Replacing definition of axis tax
            *** NOTE: Invalid I axis limits ignored: TEMP
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
@@ -2258,6 +2299,9 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
  LISTing to file b.nc
  LISTing to file b.nc
+NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
+ TAX3_bnds not found. Attempt to append irregular coordinates to NetCDF axis which has no bounds attribute. Write data originally with the /BOUNDS qualifier.
+LIST/FORMAT=CDF/CLOBBER/FILE=b.nc v
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2286,7 +2330,7 @@ Replacing definition of axis TIME
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: invalid command: it is a child axis already
-set axis/stride=2/offset=1 (AX047)
+set axis/stride=2/offset=1 (AX052)
  **ERROR: invalid command: not a strided axis: COADSX
 cancel axis/stride COADSX
  **ERROR: invalid command: offset must be less than stride value
@@ -2318,6 +2362,7 @@ set axis/stride=2 NORMAL
  LISTing to file tripolar_missing_lon.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+curl error details: 
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2350,7 +2395,6 @@ set axis/stride=2 NORMAL
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
-curl error details: 
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2378,6 +2422,8 @@ curl error details:
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
@@ -2874,7 +2920,7 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Changing the value of attribute sst.history
+ LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2922,6 +2968,7 @@ Re-defining viewport V7
 Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ LISTing to file b.nc
  LISTing to file dummy.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2934,9 +2981,6 @@ Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file nc4_deflate4.nc
-
-Bailing out of external function "tax_year":
-	 Function not valid for modulo time axis
            *** NOTE: NetCDF Classic style cannot set compression, ignoring /DEFLATE
            *** NOTE: NetCDF Classic style cannot set chunking, ignoring /*CHUNK
  LISTing to file nc4_nodeflate3.nc
@@ -2960,17 +3004,17 @@ Bailing out of external function "tax_year":
  **TMAP ERR: syntax error in string
              If ChunkSize is set for any dimension of var, must set for all its dimensions
 LIST/FORMAT=CDF/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchunk=1  sst
- LISTing to file nc4_deflate4bigchunk.nc
+ LISTing to file nc4_deflate4chunktoobig.nc
  **TMAP ERR: error specifying chunk sizes
              TChunkSize 0 is larger than dimension length 3
-LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
+LIST/FORMAT=CDF/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Not deleted: X10
+           *** NOTE: Not deleted: x10
            *** NOTE: Axis is in use by grid G10X5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3061,6 +3105,8 @@ show grid garbage
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TAX
@@ -3070,6 +3116,9 @@ Replacing definition of axis TAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+
+Bailing out of external function "tax_year":
+	 Function not valid for modulo time axis
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XAX
@@ -3087,7 +3136,7 @@ Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
-set mode desperate 1.E+10
+set mode desperate   9999999999.000000
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
 set mode desperate 1234567890123456789
  PERMANENT data cleared from memory
@@ -3305,32 +3354,27 @@ Replacing definition of grid G5DAY
 Replacing definition of axis FAX4DAY
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- **ERROR: unknown data set: dset 3 unknown or is already an aggregate dataset
-define data/agg windy = 1,2,3
-           *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
-           *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+ **ERROR: unknown data set: dset 3
+DEFINE DATA/AGGREGAT/E windy = 1,2,3
+           *** NOTE: Variable "UWND" excluded from aggregate: T axis differs among members
+           *** NOTE: Variable "VWND" excluded from aggregate: T axis differs among members
+           *** NOTE: Variable "SPEH" excluded from aggregate: Not found in all member datasets
  **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
-define data/agg windy = 1,2
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
+DEFINE DATA/AGGREGAT/E windy = 1,2
+           *** NOTE: Variable "SPEH" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "UIN" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "VIN" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, my_ens
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, fourfiles
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, some
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, more
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3349,10 +3393,6 @@ define data/agg windy = 1,2
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **netCDF error
-             NetCDF: Unknown file format (OPeNDAP/netCDF Error code -51)
-             Data set: ./.
-SET DAT/FORM=CDF ./z1.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3526,9 +3566,9 @@ plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis ZAX
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+           *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3662,6 +3702,8 @@ set axis/name=.fr x_in_meters
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
  **ERROR: invalid command: string/numeric data type mix-up. Argument 3 : TAX_DATESTRING
 list tax_datestring (tt[L=3], tt, 5)
  **ERROR: invalid command: string/numeric data type mix-up. Argument 2 : TAX_DATESTRING
@@ -3712,12 +3754,12 @@ Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XAXIS
- **ERROR: request exceeds memory setting: 2369 Mwords were requested.
+ **ERROR: request exceeds memory setting: 4739 Mwords were requested.
 load bigvar
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis LONGTIME
- **ERROR: request exceeds memory setting: 4735 Mwords were requested.
+ **ERROR: request exceeds memory setting: 9472 Mwords were requested.
 load bigvar
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
@@ -3786,9 +3828,9 @@ Replacing definition of axis Y2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis ZAX
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+           *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3893,8 +3935,6 @@ Replacing definition of axis EAXIS
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Could not compute Std Dev. Data too large or or not within 3 std of computed mean.
-           *** NOTE: Using linear levels instead.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3952,7 +3992,6 @@ Replacing definition of axis FSEC
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -4002,7 +4041,7 @@ SET VAR/layerz=depth noexist
            *** NOTE: Ambiguous coordinates on Z axis: TEMP6D-TEMPZ6D
  **ERROR: invalid command: auxiliary variable DEPTH6D has a T axis not found on variable TEMP
 LIST/PREC=7 tempz6d_unmatch
-Replacing definition of axis XAX
+Replacing definition of axis xax
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -4032,6 +4071,8 @@ SHOW DATA 2
 SHOW DATA/ATT noexist
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
 Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
 Replacing definition of axis DCOARSE
@@ -4046,6 +4087,531 @@ Replacing definition of axis IRR
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **TMAP ERR: error in axis attributes
+             Calendar definitions on T and F axes must match
+             Data file: ./ft_cal_one.nc
+SET DAT/FORM=CDF ft_cal_mixed.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis tday
+Replacing definition of axis xax
+ LISTing to file myfile.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ Cached data cleared from memory
+Replacing definition of axis LONGTIME
+ **ERROR: request exceeds memory setting: 13 Mwords were requested.
+load/l=1:5 bigvar
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ Cached data cleared from memory
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+           *** NOTE: Not deleted: XAX
+           *** NOTE: Axis is in use by grid GFORMAT
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX1
+Replacing definition of axis TAX2
+Replacing definition of axis TAX2
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ Using every   4th vector in the Y direction
+Replacing definition of axis xax
+Replacing definition of axis yax
+ Using every   4th vector in the Y direction
+ Using every   4th vector in the Y direction
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis F_AX
+Replacing definition of axis AAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis T_AXIS
+Replacing definition of axis T_AXIS
+Replacing definition of axis F_AXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAXIS
+ LISTing to file a.nc
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX
+ LISTing to file a.nc
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid TGRID
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TDAY
+ LISTing to file tmp/tagg_reg_1.nc
+ LISTing to file tmp/tagg_reg_2.nc
+ LISTing to file tmp/tagg_reg_3.nc
+ LISTing to file tmp/tagg_reg_4.nc
+ LISTing to file tmp/tagg_reg_5.nc
+ LISTing to file tmp/tagg_reg_6.nc
+ LISTing to file tmp/tagg_reg_7.nc
+ LISTing to file tmp/tagg_reg_8.nc
+ LISTing to file tmp/tagg_reg_9.nc
+ LISTing to file tmp/tagg_reg_10.nc
+ LISTing to file tmp/tagg_reg_1_duplicate.nc
+ LISTing to file tmp/tagg_reg_no_T.nc
+ LISTing to file tmp/tagg_reg_2_overlarge.nc
+           *** NOTE: Not deleted: TDAY
+           *** NOTE: Axis is in use by grid (G092)
+ LISTing to file tmp/tagg_irreg_1.nc
+ LISTing to file tmp/tagg_irreg_2.nc
+ LISTing to file tmp/tagg_irreg_3.nc
+ LISTing to file tmp/tagg_irreg_4.nc
+ LISTing to file tmp/tagg_irreg_5.nc
+ LISTing to file tmp/tagg_irreg_6.nc
+ LISTing to file tmp/tagg_irreg_7.nc
+ LISTing to file tmp/tagg_irreg_8.nc
+ LISTing to file tmp/tagg_irreg_9.nc
+ LISTing to file tmp/tagg_irreg_10.nc
+Replacing definition of axis TDAY_IR
+ LISTing to file tmp/tagg_irreg_2_reg.nc
+           *** NOTE: Not deleted: TDAY_IR
+           *** NOTE: Axis is in use by grid (G092)
+ LISTing to file tmp/tagg_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_2.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_3.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_4.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_5.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_2.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_3.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_4.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_5.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_6.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_7.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_8.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_9.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_10.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_3.nc
+ LISTing to file tmp/tagg_disjoint_T0varying_4_wrong.nc
+           *** NOTE: Not deleted: TDAY_WRONG
+           *** NOTE: Axis is in use by grid (G092)
+ LISTing to file tmp/tagg_single_1.nc
+ LISTing to file tmp/tagg_single_2.nc
+ LISTing to file tmp/tagg_single_3.nc
+ LISTing to file tmp/tagg_single_4.nc
+ LISTing to file tmp/tagg_single_5.nc
+ LISTing to file tmp/tagg_single_6.nc
+           *** NOTE: Not deleted: tday
+           *** NOTE: Axis is in use by grid (G092)
+ **ERROR: invalid command: given aggregation dataset name already in use: myagg2
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc, tmp/tagg_reg_2.nc
+ **TMAP ERR: non-existent or not on line
+             tmp/tagg_no_exist.nc
+define data/agg/t myaggbad = tmp/tagg_no_exist.nc, tmp/tagg_reg_2.nc
+ **TMAP ERR: non-existent or not on line
+             tmp/tagg_no_exist.nc
+define data/agg/t myaggbad = tmp/tagg_reg_1.nc, tmp/tagg_no_exist.nc
+ **ERROR: improper grid or axis definition: first file of aggregation has no time axis tmp/tagg_reg_no_T.nc
+DEFINE DATA/AGGREGAT/T myTindepagg = tmp/tagg_reg_no_T.nc
+ **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_reg_3.nc
+define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
+ **TMAP ERR: Unknown variable code
+             in file tmp/tagg_disjoint_T0varying_4_wrong.nc time axis variable is missing: TDAY_TVAR
+define data/agg/t myagg5_bad = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4_wrong.nc,tmp/tagg_disjoint_T0varying_5.nc
+ **ERROR: unknown command: garbage
+garbage command syntax
+ **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_single_1.nc
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+ **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_single_5.nc
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc, tmp/tagg_single_5.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file tmp/test1.nc
+ LISTing to file tmp/test2.nc
+ LISTing to file tmp/test3.nc
+ **ERROR: unknown command qualifier: erroneous
+set data/erroneous tmp/test1.nc
+ **ERROR: unknown command qualifier: erroneous
+set data /erroneous tmp/test1.nc
+ **TMAP ERR: non-existent or not on line
+             /erroneous(.nc ,.cdf,.nc)
+set data /erroneous, tmp/test1.nc
+ **ERROR: unknown command qualifier: garbage
+go/garbage tmp/testMe
+ **ERROR: unknown command qualifier: garbage
+go/garbage "tmp/testMe"
+ **ERROR: unknown command qualifier: garbage
+go/garbage /home/users/ansley/build/linux/FERRET/bench/tmp/testMe.jnl
+ **ERROR: unknown command qualifier: garbage
+go/garbage "/home/users/ansley/build/linux/FERRET/bench/tmp/testMe.jnl"
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: command line too long -- exceeds 2048
+DEFINE VARIABLE a={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7 [...]
+ **ERROR: variable unknown or not in data set: A
+load a
+ **ERROR: command syntax: command line too long -- exceeds 2048
+"/arch
+ **ERROR: command syntax: "/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf...
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0022.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0023.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr [...]
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis DAYT
+Replacing definition of axis ZAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis YAX
+ LISTing to file tmp/fcst_1.nc
+ LISTing to file tmp/fcst_2.nc
+ LISTing to file tmp/fcst_3.nc
+ LISTing to file tmp/fcst_4.nc
+ LISTing to file tmp/fcst_5.nc
+ LISTing to file tmp/fcst_6.nc
+ LISTing to file tmp/fcst_7.nc
+ LISTing to file tmp/fcst_8.nc
+ LISTing to file tmp/fcst_9.nc
+ LISTing to file tmp/fcst_10.nc
+ LISTing to file tmp/fcst_11.nc
+ LISTing to file tmp/long_fcst_1.nc
+ LISTing to file tmp/long_fcst_6.nc
+ LISTing to file tmp/one_var_fcst_1.nc
+ LISTing to file tmp/one_var_fcst_6.nc
+ LISTing to file tmp/consecutive_month_fcst.nc
+Replacing definition of axis TRUEMONTH
+ LISTing to file tmp/irregular_start_time_fcst.nc
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, bn_aggregate_f.jnl
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, my_fmrc
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Ambiguous coordinates on T axis: FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC_LETD_1]
+ **ERROR: error defining aggregate dataset: some files have duplicate forecast start times
+DEFINE DATA/AGGREGAT/F my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc,tmp/fcst_2.nc,tmp/fcst_3.nc
+ **TMAP ERR: non-existent or not on line
+             tmp/no_exist.nc
+DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/no_exist.nc")
+ **ERROR: error defining aggregate dataset: forecast start times are irregular or too gappy
+DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/consecutive_month_fcst.nc")
+ **ERROR: error defining aggregate dataset: forecast start times are irregular or too gappy
+DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/irregular_start_time_fcst.nc")
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis YAX
+Replacing definition of axis ZAX
+Replacing definition of axis TRUEMONTH
+ LISTing to file tmp/f01_e1_t1.nc
+ LISTing to file tmp/f01_e1_t2.nc
+ LISTing to file tmp/f01_e1_t3.nc
+ LISTing to file tmp/f01_e2_t1.nc
+ LISTing to file tmp/f01_e2_t2.nc
+ LISTing to file tmp/f01_e2_t3.nc
+ LISTing to file tmp/f01_e3_t1.nc
+ LISTing to file tmp/f01_e3_t2.nc
+ LISTing to file tmp/f01_e3_t3.nc
+ LISTing to file tmp/f01_e4_t1.nc
+ LISTing to file tmp/f01_e4_t2.nc
+ LISTing to file tmp/f01_e4_t3.nc
+ LISTing to file tmp/f01_e5_t1.nc
+ LISTing to file tmp/f01_e5_t2.nc
+ LISTing to file tmp/f01_e5_t3.nc
+ LISTing to file tmp/f02_e1_t1.nc
+ LISTing to file tmp/f02_e1_t2.nc
+ LISTing to file tmp/f02_e1_t3.nc
+ LISTing to file tmp/f02_e2_t1.nc
+ LISTing to file tmp/f02_e2_t2.nc
+ LISTing to file tmp/f02_e2_t3.nc
+ LISTing to file tmp/f02_e3_t1.nc
+ LISTing to file tmp/f02_e3_t2.nc
+ LISTing to file tmp/f02_e3_t3.nc
+ LISTing to file tmp/f02_e4_t1.nc
+ LISTing to file tmp/f02_e4_t2.nc
+ LISTing to file tmp/f02_e4_t3.nc
+ LISTing to file tmp/f02_e5_t1.nc
+ LISTing to file tmp/f02_e5_t2.nc
+ LISTing to file tmp/f02_e5_t3.nc
+ LISTing to file tmp/f03_e1_t1.nc
+ LISTing to file tmp/f03_e1_t2.nc
+ LISTing to file tmp/f03_e1_t3.nc
+ LISTing to file tmp/f03_e2_t1.nc
+ LISTing to file tmp/f03_e2_t2.nc
+ LISTing to file tmp/f03_e2_t3.nc
+ LISTing to file tmp/f03_e3_t1.nc
+ LISTing to file tmp/f03_e3_t2.nc
+ LISTing to file tmp/f03_e3_t3.nc
+ LISTing to file tmp/f03_e4_t1.nc
+ LISTing to file tmp/f03_e4_t2.nc
+ LISTing to file tmp/f03_e4_t3.nc
+ LISTing to file tmp/f03_e5_t1.nc
+ LISTing to file tmp/f03_e5_t2.nc
+ LISTing to file tmp/f03_e5_t3.nc
+ LISTing to file tmp/f04_e1_t1.nc
+ LISTing to file tmp/f04_e1_t2.nc
+ LISTing to file tmp/f04_e1_t3.nc
+ LISTing to file tmp/f04_e2_t1.nc
+ LISTing to file tmp/f04_e2_t2.nc
+ LISTing to file tmp/f04_e2_t3.nc
+ LISTing to file tmp/f04_e3_t1.nc
+ LISTing to file tmp/f04_e3_t2.nc
+ LISTing to file tmp/f04_e3_t3.nc
+ LISTing to file tmp/f04_e4_t1.nc
+ LISTing to file tmp/f04_e4_t2.nc
+ LISTing to file tmp/f04_e4_t3.nc
+ LISTing to file tmp/f04_e5_t1.nc
+ LISTing to file tmp/f04_e5_t2.nc
+ LISTing to file tmp/f04_e5_t3.nc
+ LISTing to file tmp/f05_e1_t1.nc
+ LISTing to file tmp/f05_e1_t2.nc
+ LISTing to file tmp/f05_e1_t3.nc
+ LISTing to file tmp/f05_e2_t1.nc
+ LISTing to file tmp/f05_e2_t2.nc
+ LISTing to file tmp/f05_e2_t3.nc
+ LISTing to file tmp/f05_e3_t1.nc
+ LISTing to file tmp/f05_e3_t2.nc
+ LISTing to file tmp/f05_e3_t3.nc
+ LISTing to file tmp/f05_e4_t1.nc
+ LISTing to file tmp/f05_e4_t2.nc
+ LISTing to file tmp/f05_e4_t3.nc
+ LISTing to file tmp/f05_e5_t1.nc
+ LISTing to file tmp/f05_e5_t2.nc
+ LISTing to file tmp/f05_e5_t3.nc
+ LISTing to file tmp/f06_e1_t1.nc
+ LISTing to file tmp/f06_e1_t2.nc
+ LISTing to file tmp/f06_e1_t3.nc
+ LISTing to file tmp/f06_e2_t1.nc
+ LISTing to file tmp/f06_e2_t2.nc
+ LISTing to file tmp/f06_e2_t3.nc
+ LISTing to file tmp/f06_e3_t1.nc
+ LISTing to file tmp/f06_e3_t2.nc
+ LISTing to file tmp/f06_e3_t3.nc
+ LISTing to file tmp/f06_e4_t1.nc
+ LISTing to file tmp/f06_e4_t2.nc
+ LISTing to file tmp/f06_e4_t3.nc
+ LISTing to file tmp/f06_e5_t1.nc
+ LISTing to file tmp/f06_e5_t2.nc
+ LISTing to file tmp/f06_e5_t3.nc
+ LISTing to file tmp/f07_e1_t1.nc
+ LISTing to file tmp/f07_e1_t2.nc
+ LISTing to file tmp/f07_e1_t3.nc
+ LISTing to file tmp/f07_e2_t1.nc
+ LISTing to file tmp/f07_e2_t2.nc
+ LISTing to file tmp/f07_e2_t3.nc
+ LISTing to file tmp/f07_e3_t1.nc
+ LISTing to file tmp/f07_e3_t2.nc
+ LISTing to file tmp/f07_e3_t3.nc
+ LISTing to file tmp/f07_e4_t1.nc
+ LISTing to file tmp/f07_e4_t2.nc
+ LISTing to file tmp/f07_e4_t3.nc
+ LISTing to file tmp/f07_e5_t1.nc
+ LISTing to file tmp/f07_e5_t2.nc
+ LISTing to file tmp/f07_e5_t3.nc
+ LISTing to file tmp/f08_e1_t1.nc
+ LISTing to file tmp/f08_e1_t2.nc
+ LISTing to file tmp/f08_e1_t3.nc
+ LISTing to file tmp/f08_e2_t1.nc
+ LISTing to file tmp/f08_e2_t2.nc
+ LISTing to file tmp/f08_e2_t3.nc
+ LISTing to file tmp/f08_e3_t1.nc
+ LISTing to file tmp/f08_e3_t2.nc
+ LISTing to file tmp/f08_e3_t3.nc
+ LISTing to file tmp/f08_e4_t1.nc
+ LISTing to file tmp/f08_e4_t2.nc
+ LISTing to file tmp/f08_e4_t3.nc
+ LISTing to file tmp/f08_e5_t1.nc
+ LISTing to file tmp/f08_e5_t2.nc
+ LISTing to file tmp/f08_e5_t3.nc
+ LISTing to file tmp/f09_e1_t1.nc
+ LISTing to file tmp/f09_e1_t2.nc
+ LISTing to file tmp/f09_e1_t3.nc
+ LISTing to file tmp/f09_e2_t1.nc
+ LISTing to file tmp/f09_e2_t2.nc
+ LISTing to file tmp/f09_e2_t3.nc
+ LISTing to file tmp/f09_e3_t1.nc
+ LISTing to file tmp/f09_e3_t2.nc
+ LISTing to file tmp/f09_e3_t3.nc
+ LISTing to file tmp/f09_e4_t1.nc
+ LISTing to file tmp/f09_e4_t2.nc
+ LISTing to file tmp/f09_e4_t3.nc
+ LISTing to file tmp/f09_e5_t1.nc
+ LISTing to file tmp/f09_e5_t2.nc
+ LISTing to file tmp/f09_e5_t3.nc
+ LISTing to file tmp/f10_e1_t1.nc
+ LISTing to file tmp/f10_e1_t2.nc
+ LISTing to file tmp/f10_e1_t3.nc
+ LISTing to file tmp/f10_e2_t1.nc
+ LISTing to file tmp/f10_e2_t2.nc
+ LISTing to file tmp/f10_e2_t3.nc
+ LISTing to file tmp/f10_e3_t1.nc
+ LISTing to file tmp/f10_e3_t2.nc
+ LISTing to file tmp/f10_e3_t3.nc
+ LISTing to file tmp/f10_e4_t1.nc
+ LISTing to file tmp/f10_e4_t2.nc
+ LISTing to file tmp/f10_e4_t3.nc
+ LISTing to file tmp/f10_e5_t1.nc
+ LISTing to file tmp/f10_e5_t2.nc
+ LISTing to file tmp/f10_e5_t3.nc
+ LISTing to file tmp/f11_e1_t1.nc
+ LISTing to file tmp/f11_e1_t2.nc
+ LISTing to file tmp/f11_e1_t3.nc
+ LISTing to file tmp/f11_e2_t1.nc
+ LISTing to file tmp/f11_e2_t2.nc
+ LISTing to file tmp/f11_e2_t3.nc
+ LISTing to file tmp/f11_e3_t1.nc
+ LISTing to file tmp/f11_e3_t2.nc
+ LISTing to file tmp/f11_e3_t3.nc
+ LISTing to file tmp/f11_e4_t1.nc
+ LISTing to file tmp/f11_e4_t2.nc
+ LISTing to file tmp/f11_e4_t3.nc
+ LISTing to file tmp/f11_e5_t1.nc
+ LISTing to file tmp/f11_e5_t2.nc
+ LISTing to file tmp/f11_e5_t3.nc
+ LISTing to file tmp/f04_e3_t1_1v.nc
+ LISTing to file tmp/f04_e3_t2_1v.nc
+ LISTing to file tmp/f04_e3_t3_1v.nc
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+ **ERROR: error defining aggregate dataset: grid definition of FCST_2 has changed on axis X of agg member 3
+list/x=150E/y=15n/L=10 fcst_2
+ **ERROR: error defining aggregate dataset: grid definition of FCST_2 has changed on axis T of agg member 3
+list/x=150E/y=15n/L=10 fcst_2
+ **ERROR: error defining aggregate dataset: grid definition of FCST_2 has changed on axis X of agg member 3
+list/x=150E/y=15n/L=10 fcst_2
+           *** NOTE: Variable "FCST" excluded from aggregate: E axis differs among members
+           *** NOTE: Variable "FCST_2" excluded from aggregate: E axis differs among members
+ **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
+DEFINE DATA/AGGREGAT/F tef_short = te_f01, te_f02_short, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+           *** NOTE: Variable "FCST" excluded from aggregate: F axis differs among members
+           *** NOTE: Variable "TF_TIMES" excluded from aggregate: F axis differs among members
+           *** NOTE: Variable "FCST_2" excluded from aggregate: F axis differs among members
+ **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
+DEFINE DATA/AGGREGAT/E tfe_short = tf_e1, tf_e2_short, tf_e3, tf_e4, tf_e5
+           *** NOTE: Variable "FCST" excluded from aggregate: Already has E axis
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Already has E axis
+           *** NOTE: Variable "REALIZATION" excluded from aggregate: Already has E axis
+ **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
+DEFINE DATA/AGGREGAT/E bad_ens = te_f01, te_f03, te_f04
+ **ERROR: error defining aggregate dataset: some files have duplicate forecast start times
+DEFINE DATA/AGGREGAT/F bad_fmrc = tf_e1, tf_e3, tf_e4
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
+Replacing definition of axis XAX10
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis tday
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+SHO VAR/XML
+SHO VAR/XML
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis tax
+ LISTing to file a.nc
+ LISTing to file a.nc
+Replacing definition of axis TAX
+ LISTing to file a.nc
+ LISTing to file a.nc
+Replacing definition of axis TAX
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX
+Replacing definition of axis TAX
+Replacing definition of axis TAX
+Replacing definition of axis TAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
  **ERROR: command syntax: unknown region name: @w
 set region/@w
  PERMANENT data cleared from memory
@@ -4102,6 +4668,23 @@ Re-defining viewport UM6
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Re-defining viewport UL6
+Re-defining viewport UM6
+Re-defining viewport UR6
+Re-defining viewport LL6
+Re-defining viewport LR6
+Replacing definition of axis TDAYS
+ Using every   4th vector in the X direction
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
 plot/i=1:10/j=1:20/nolabel i+j
@@ -4133,4 +4716,4 @@ vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
 Re-defining viewport LM6
 Re-defining viewport UM6
            *** NOTE: Cannot create new windows when batch mode set
-Ended at Tue Nov 17 09:28:13 PST 2015
+Ended at Wed May 11 16:14:42 PDT 2016
diff --git a/bench/ansley_official.linux_log b/bench/ansley_official.rhel5_32_log
similarity index 85%
rename from bench/ansley_official.linux_log
rename to bench/ansley_official.rhel5_32_log
index d0b862f..41b576c 100644
--- a/bench/ansley_official.linux_log
+++ b/bench/ansley_official.rhel5_32_log
@@ -1,10 +1,10 @@
 Procedure run_all to run all FERRET benchmarks
 Running FERRET version /home/users/ansley/build/linux/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 86078089 Nov 17 09:24 /home/users/ansley/build/linux/FERRET/fer/ferret_c
+-rwxr-xr-x 1 ansley tmap 121894588 May 11 15:36 /home/users/ansley/build/linux/FERRET/fer/ferret_c
 Using external functions from /home/users/ansley/build/linux/FERRET/external_functions/ext_func
 Running the tests of external functions y
 Benchmark run by ansley
-Note: testing declaration of model str in match4.F as *(*)
+Note: updates including subspan modulo fixes
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -20,7 +20,7 @@ FER_LIBS=/home/users/tmap/ferret/linux/lib
 FER_PALETTE=. /home/users/tmap/ferret/linux/ppl
 PWD=/home/users/ansley/build/linux/FERRET/bench
 PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/linux/ext_func/pylibs
-Beginning at Tue Nov 17 09:25:34 PST 2015
+Beginning at Wed May 11 16:10:59 PDT 2016
 ! BN500_ALL.JNL
 ! - run all the benchmark tests
 ! - ordered (more or less) from least to most complex
@@ -123,9 +123,19 @@ Beginning at Tue Nov 17 09:25:34 PST 2015
 !             on a system in order for it to pass the benchmarks.
 !
 ! 11/06 *acm* New bn602_bug_fixes for version 6.02
-* V610  *acm* 3/08 - add new MODE NLEVELS
-* V685  *sh* 11/13 - added bn_vtree to test SHOW VAR/TREE
-* V698+ *sh* 06/15 - added bn_auxiliary
+! V610  *acm* 3/08 - add new MODE NLEVELS
+! V685  *sh* 11/13 - added bn_vtree to test SHOW VAR/TREE
+! V698+ *sh* 06/15 - added bn_auxiliary
+! V698+ *sh* 11/15 - added bn_aggregate_t and bn_unquoted_args.jnl
+! V698+ *sh* 1/16 - added bn_aggregate_f
+!            2/16 - added bn_aggregate_tef
+! V698+ *acm*2/16 - add bn_speedtest: simple speed test, parsing.
+!                   2/16/24 do fewer # repetitions.
+! V698+ *acm*2/16 - add bn_show_noupcase: output of SHOW responds to MODE UPCASE
+! V698+ *acm*2/16 - add bn_letd_attributes: attribute/list handling of LET/D variables
+!       *sh* 3/16 - added bn_plot_along.jnl
+!       *acm*4/16 - added bn_show_commands.jnl
+!       *acm*4/16 - added bn_plot_decimate.jnl
  
 ! Include this statement to compare the outupt of 6D Ferret with
 ! previous 4D benchmark logs.
@@ -145,6 +155,9 @@ GO bn_syntax
 ! for V4.20 added blanks surrounding colons
 !	and tests of "escapes" using back slashes
 ! for V531 test continuation lines and long input lines
+! for v698 interpretation of unknown qualifiers changed -- e.g. say /notaqual
+! V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables,
+! pre-defined axes and grids.
  
 ! SET - SHOW - CANCEL DATA
 USE gtbc011
@@ -424,7 +437,7 @@ SHOW MODES
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -459,7 +472,7 @@ SHOW MODES
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -494,7 +507,7 @@ SHOW MODES
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -637,8 +650,8 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid XABSTRACT
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -662,11 +675,11 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid PS3DT2
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
 SET GRID/SAVE
@@ -675,20 +688,20 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid PS3DT2
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
 SHOW GRID/X=180:165W SALT
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
  
@@ -715,83 +728,6 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  
 ! SHOW VARIABLES
-SHOW VARIABLES/DIAGNOSTIC	! alphabetical list
-Diagnostic variables:
-name         title
-AIR       AIR TEMPERATURE
-CAIR      CLIMATOLOGICAL AIR TEMPERATURE
-CMSK      CONVECTIVE ADJUSTMENT MASK
-DENS      (DENSITY-1)*1000
-DPDX      d/dX( BAROCLINIC PRESSURE )
-DPDY      d/dY( BAROCLINIC PRESSURE )
-DTDT      d/dt(TEMPERATURE)
-DUDT      d/dt(U)
-DVDT      d/dt(V)
-DWDT      d/dt(W)
-FUW       ZONAL ADVECTIVE COEFFICIENT, FUW
-FVN       MERIDIONAL ADVECTIVE COEFFICIENT, FVN
-PCDZ      VERTICAL MOMENTUM DIFFUSION COEFFICIENT
-QAD       TOTAL HEAT ADVECTION
-QADX      ZONAL HEAT ADVECTION
-QADY      MERIDIONAL HEAT ADVECTION
-QADZ      VERTICAL HEAT ADVECTION
-QCDZ      VERTICAL HEAT DIFFUSION COEFFICIENT
-QDF       TOTAL HEAT DIFFUSION
-QDFH      HORIZONTAL HEAT DIFFUSION
-QDFZ      VERTICAL HEAT DIFFUSION
-QEVA      EVAPORATIVE HEAT
-QFLX      SURFACE HEAT FLUX
-QRAD      RADIATIVE HEAT
-QSEN      SENSIBLE HEAT
-RHO       NORMALIZED DENSITY
-RHO0      DENSITY REFERENCED TO SURFACE
-SALI      SALINITY
-TAU       MAGNITUDE OF WIND STRESS
-UAD       TOTAL ADVECTION OF U
-UADX      ZONAL ADVECTION OF U
-UADY      MERIDIONAL ADVECTION OF U
-UADZ      VERTICAL ADVECTION OF U
-UAVZ      VERTICALLY AVERAGED ZONAL VELOCITY
-UBP       U DUE TO TOTAL PRESSURE
-UBPI      U DUE TO BAROCLINIC PRESSURE EFFECTS
-UBPS      U DUE TO SURFACE PRESSURE EFFECTS
-UBWI      U DUE TO WIND STRESS EFFECTS
-UCOE      U DUE TO EXPLICIT CORIOLIS CALCULATION
-UCOI      U DUE TO IMPLICIT CORIOLIS CORRECTION
-UDF       TOTAL DIFFUSION OF U
-UDFH      HORIZONTAL DIFFUSION OF U
-UDFZ      VERTICAL DIFFUSION OF U
-VAD       TOTAL ADVECTION OF V
-VADX      ZONAL ADVECTION OF V
-VADY      MERIDIONAL ADVECTION OF V
-VADZ      VERTICAL ADVECTION OF V
-VAVZ      VERTICALLY AVERAGED MERIDIONAL VELOCITY
-VBP       V DUE TO TOTAL PRESSURE
-VBPI      V DUE TO BAROCLINIC PRESSURE EFFECTS
-VBPS      V DUE TO SURFACE PRESSURE EFFECTS
-VBWI      V DUE TO WIND STRESS EFFECTS
-VCOE      V DUE TO EXPLICIT CORIOLIS CALCULATION
-VCOI      V DUE TO IMPLICIT CORIOLIS CORRECTION
-VDF       TOTAL DIFFUSION OF V
-VDFH      HORIZONTAL DIFFUSION OF V
-VDFZ      VERTICAL DIFFUSION OF V
-W_T       VERTICAL VELOCITY COMPUTED ON TS GRID
-W_U       VERTICAL VELOCITY COMPUTED ON UV GRID
-SHOW VARIABLES/DIAGNOSTIC  Q
-Diagnostic variables:
-name         title
-QAD       TOTAL HEAT ADVECTION
-QADX      ZONAL HEAT ADVECTION
-QADY      MERIDIONAL HEAT ADVECTION
-QADZ      VERTICAL HEAT ADVECTION
-QCDZ      VERTICAL HEAT DIFFUSION COEFFICIENT
-QDF       TOTAL HEAT DIFFUSION
-QDFH      HORIZONTAL HEAT DIFFUSION
-QDFZ      VERTICAL HEAT DIFFUSION
-QEVA      EVAPORATIVE HEAT
-QFLX      SURFACE HEAT FLUX
-QRAD      RADIATIVE HEAT
-QSEN      SENSIBLE HEAT
 LET A=i
 SHOW VARIABLES
  Created by DEFINE VARIABLE:
@@ -1041,10 +977,14 @@ list/nohead/i=1 : 3 i
 ! test escapes using back slashes (bn420 - 11/95)
 ! (moved to bn420_grave)
  
-say \/help	! "/" should pass through
-/help
+say \/notaqualifier	! "/" should pass through
+/notaqualifier
+! starting 12/2015 a space preceding a unrecognized qualifier turns that
+! qualifier into an argument
+say /notaqualifier
+/notaqualifier
 set mode ignore
-say /help
+say/notaqualifier
 canc mode ignore
  
 say this\;that	! ";" should pass through
@@ -1586,20 +1526,20 @@ say `a,return=isize`          ! full evaluation occurs
  getgrid (C11,V08 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  pass #2 (C11,V08 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- -DELETE X        M:  3 dset:   0 I:  160  160  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE X        M:  2 dset:   0 I:  160  160  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  eval    (C01,V08 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  eval    (C11,V08 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M:  3 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  J        M:  2 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 5
 5
 say `a[i=2:3],return=isize`   ! full evaluation is bypassed
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- -DELETE J        M:  3 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE J        M:  2 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -10475,18 +10415,18 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.951"
-FERRET_PLATFORM = "Linux 2.6.18-407.el5PAE 32-bit"
+FERRET_VERSION = "6.97"
+FERRET_PLATFORM = "Linux 2.6.18-409.el5PAE 32-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Nov-15"
-SESSION_TIME = "09:25"
-SESSION_PID = "6311"
-DELTA_CPU = "7.78282"
-CLOCK_SECS = "11.89"
-CURRENT_DATE = "17-Nov-15"
-CURRENT_TIME = "09:25:46"
+SESSION_DATE = "11-May-16"
+SESSION_TIME = "16:10"
+SESSION_PID = "27699"
+DELTA_CPU = "8.85265"
+CLOCK_SECS = "11.667"
+CURRENT_DATE = "11-May-16"
+CURRENT_TIME = "16:11:11"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -10504,18 +10444,18 @@ show symbol/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.951"
-FERRET_PLATFORM = "Linux 2.6.18-407.el5PAE 32-bit"
+FERRET_VERSION = "6.97"
+FERRET_PLATFORM = "Linux 2.6.18-409.el5PAE 32-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Nov-15"
-SESSION_TIME = "09:25"
-SESSION_PID = "6311"
-DELTA_CPU = "0.001"
-CLOCK_SECS = "11.891"
-CURRENT_DATE = "17-Nov-15"
-CURRENT_TIME = "09:25:46"
+SESSION_DATE = "11-May-16"
+SESSION_TIME = "16:10"
+SESSION_PID = "27699"
+DELTA_CPU = "0.002"
+CLOCK_SECS = "11.669"
+CURRENT_DATE = "11-May-16"
+CURRENT_TIME = "16:11:11"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 S1 = "hello"
@@ -10525,9 +10465,9 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = "17-Nov-15"
-SESSION_TIME = "09:25"
-SESSION_PID = "6311"
+SESSION_DATE = "11-May-16"
+SESSION_TIME = "16:10"
+SESSION_PID = "27699"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10537,15 +10477,15 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = "17-Nov-15"
-SESSION_TIME = "09:25"
-SESSION_PID = "6311"
+SESSION_DATE = "11-May-16"
+SESSION_TIME = "16:10"
+SESSION_PID = "27699"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = "17-Nov-15"
-SESSION_TIME = "09:25"
-SESSION_PID = "6311"
+SESSION_DATE = "11-May-16"
+SESSION_TIME = "16:10"
+SESSION_PID = "27699"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10579,9 +10519,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) Ver.6.951"
+LAB1 = "FERRET (beta/dbg) Ver.6.97"
 LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "17-NOV-2015 09:25:46"
+LAB3 = "11-MAY-2016 16:11:11"
 LABX = "X"
 LAB4 = "Y : 10"
 LABNUM_Y = "4"
@@ -10676,18 +10616,18 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.951"
-FERRET_PLATFORM = "Linux 2.6.18-407.el5PAE 32-bit"
+FERRET_VERSION = "6.97"
+FERRET_PLATFORM = "Linux 2.6.18-409.el5PAE 32-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Nov-15"
-SESSION_TIME = "09:25"
-SESSION_PID = "6311"
-DELTA_CPU = "0.014998"
-CLOCK_SECS = "11.905"
-CURRENT_DATE = "17-Nov-15"
-CURRENT_TIME = "09:25:46"
+SESSION_DATE = "11-May-16"
+SESSION_TIME = "16:10"
+SESSION_PID = "27699"
+DELTA_CPU = "0.015997"
+CLOCK_SECS = "11.685"
+CURRENT_DATE = "11-May-16"
+CURRENT_TIME = "16:11:11"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -12298,8 +12238,8 @@ LIST/FORMAT=comma/precision=9 randu(i)*temp*1e7
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    135.5W   ,134.5W   
-1.5S,1.6675084E+08,2.0208841E+08
-1.167S,1.6616283E+08,2.0136658E+08
+1.5S,  166750845.,  202088412.
+1.167S,  166162833.,  201366579.
  
 ! small number formatting test
 set region/i=95:96/j=41:42/k=2/l=5
@@ -12369,6 +12309,8 @@ GO bn_dynamic_grids	! added 9/27/95, V420 ->V491 4/98
 !			      numericals results found here are verified to be correct
 ! V550 11/02 *sh* - documentation change only reflecting new modulo behavior
 ! V603  5/07 *acm*  documentation changew - some of the context errors have gone away.
+! V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables,
+! pre-defined axes and grids.
  
 ! deliberate dynamic grid errors
  
@@ -12750,11 +12692,11 @@ Dynamic axes:
     no implicit axes
 show grid tu
     GRID (G004)
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
+ name       axis              # pts   start                end                 subset
+ PSXU      LONGITUDE          160mr   131E                 70W                 full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00   full
  normal    E
  normal    F
  
@@ -12866,8 +12808,10 @@ Dynamic axes:
  
 ! regridding between grids with mutually exclusive axes
 cancel region
-define grid/y=ps3dt gy
-define grid/x=ps3dt gx
+define grid/y=`temp,return=grid` gy
+ !-> define grid/y=PS3DT2 gy
+define grid/x=`temp,return=grid` gx
+ !-> define grid/x=PS3DT2 gx
 LET/QUIET a = x[g=gx]
 list/i=1:4 a,a[g=gy]   ! nothing to regrid - both are same
              LONGITUDE: 130E to 134E
@@ -12964,7 +12908,7 @@ Dynamic axes:
 ! * * * dynamic generation of pseudo-variables * * *
 list x[x=.1:1:.1]			! dynamic abstract
              VARIABLE : X
-                        axis (AX005)
+                        axis (AX004)
              SUBSET   : 10 points (X)
  0.1  /  1:  0.10000
  0.2  /  2:  0.20000
@@ -12978,7 +12922,7 @@ list x[x=.1:1:.1]			! dynamic abstract
  1    / 10:  1.00000
 list x[gx=psxu,x=130:150:2.5]		! dynamic based on named axis
              VARIABLE : X
-                        axis (AX003)
+                        axis (AX002)
              SUBSET   : 9 points (LONGITUDE)
  130E   / 1:  130.000
  132.5E / 2:  132.500
@@ -13065,24 +13009,24 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX004)   X                    7 r   0.1                  9.1
- (AX003)   Y                    3 r   95                   109
+ (AX009)   X                    7 r   0.1                  9.1
+ (AX002)   Y                    3 r   95                   109
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX004)   X                    7 r   0.1                  9.1
- (AX005)   Y                   10 r   101                  110
+ (AX009)   X                    7 r   0.1                  9.1
+ (AX004)   Y                   10 r   101                  110
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX003)                         use count:   1
-    AXIS (AX004)                         use count:   2
-    AXIS (AX005)                         use count:   1
+    AXIS (AX002)                         use count:   1
+    AXIS (AX009)                         use count:   2
+    AXIS (AX004)                         use count:   1
  
 ! ambiguous coordinate tests
 list/order=x  x[x=0.1:10:1.5] +  x[x=1.1:11:1.5]
@@ -13102,14 +13046,14 @@ show grid/dyn
 Dynamic grids:
     GRID (G004)                          use count:   2
  name       axis              # pts   start                end
- (AX003)   X                    7 r   0.1                  9.1
+ (AX002)   X                    7 r   0.1                  9.1
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX003)                         use count:   1
+    AXIS (AX002)                         use count:   1
  
 ! box size on dynamic axes
 cancel region
@@ -13135,8 +13079,8 @@ show grid/x
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G004)
     GRID (G004)
- name       axis              # pts   start                end
- (AX004)   X                    5 i   1                    6561
+ name       axis              # pts   start                end                 subset
+ (AX009)   X                    5 i   1                    6561                4 pts
  normal    Y
  normal    Z
  normal    T
@@ -13168,7 +13112,7 @@ list/i=1:10 x[gx=temp]			! from named variable
  139.5E / 10:  139.500
 list x[g=temp,x=150w:130w:2.5]		! dynamic based on named variable
              VARIABLE : X
-                        axis (AX001)
+                        axis (AX012)
              FILENAME : gtsa056_1.cdf
              SUBSET   : 9 points (LONGITUDE)
  150W   / 1:  210.000
@@ -13182,7 +13126,7 @@ list x[g=temp,x=150w:130w:2.5]		! dynamic based on named variable
  130W   / 9:  230.000
 list x[gx=temp,x=150w:130w:2.5]		! dynamic based on named variable
              VARIABLE : X
-                        axis (AX005)
+                        axis (AX004)
              FILENAME : gtsa056_1.cdf
              SUBSET   : 9 points (LONGITUDE)
  150W   / 1:  210.000
@@ -13212,14 +13156,14 @@ show grid/dyn
 Dynamic grids:
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX004)   X                    5 i   1                    6561
+ (AX009)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX004)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! this expression does NOT inherit the X axis -- the result is
 !	i) ambiguous X axis coordinates
@@ -13241,7 +13185,7 @@ show grid/dynamic
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   LONGITUDE            5 r   129.5W               113.5W
+ (AX002)   LONGITUDE            5 r   129.5W               113.5W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13249,15 +13193,15 @@ Dynamic grids:
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX004)   X                    5 i   1                    6561
+ (AX009)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX003)                         use count:   1
-    AXIS (AX004)                         use count:   1
+    AXIS (AX002)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[g=temp,i=101:120:4]
              VARIABLE : TEMP[I=101:120:4]+X[G=TEMP,I=101:120:4]
@@ -13280,7 +13224,7 @@ SET REGION/I=101:105/J=46:50/l=1/k=1
 ! deliberate errors:  ****
 list x[i=5:1:1]		! not an error: inverted order
              VARIABLE : X
-                        axis (AX003)
+                        axis (AX002)
              SUBSET   : 5 points (X)
  1   / 1:  1.00000
  2   / 2:  2.00000
@@ -13325,7 +13269,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   LONGITUDE            6 i   108.5W(-468.5)       98.5W(-458.5)
+ (AX002)   LONGITUDE            6 i   108.5W(-468.5)       98.5W(-458.5)
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13333,15 +13277,15 @@ Dynamic grids:
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX004)   X                    5 i   1                    6561
+ (AX009)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX003)                         use count:   1
-    AXIS (AX004)                         use count:   1
+    AXIS (AX002)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! regular dynamic axis
 ! ... by subscript
@@ -13409,22 +13353,22 @@ Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
  PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX003)   LATITUDE             4 r   0.5S                 4N
+ (AX002)   LATITUDE             4 r   0.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX004)   X                    5 i   1                    6561
+ (AX009)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX003)                         use count:   1
-    AXIS (AX004)                         use count:   1
+    AXIS (AX002)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! ========
 ! 2/96: repeat the very same commands using GX=lo:hi:delta notation
@@ -13586,24 +13530,24 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX001)   LONGITUDE            4 r   130W                 121W
- (AX005)   LATITUDE             4 r   0.5S                 4N
+ (AX012)   LONGITUDE            4 r   130W                 121W
+ (AX004)   LATITUDE             4 r   0.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX004)   X                    5 i   1                    6561
+ (AX009)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX005)                         use count:   1
-    AXIS (AX001)                         use count:   1
     AXIS (AX004)                         use count:   1
+    AXIS (AX012)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! the same tests but now on a nested definition
 ! regular dynamic axis
@@ -13771,7 +13715,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX005)   LONGITUDE            6 r   138W                 113W
+ (AX004)   LONGITUDE            6 r   138W                 113W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13779,15 +13723,15 @@ Dynamic grids:
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX001)   LONGITUDE            4 r   130W                 121W
+ (AX012)   LONGITUDE            4 r   130W                 121W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX005)                         use count:   1
-    AXIS (AX001)                         use count:   1
+    AXIS (AX004)                         use count:   1
+    AXIS (AX012)                         use count:   1
  
 ! irregular dynamic axis
 ! ... by subscript
@@ -13925,7 +13869,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX001)   LONGITUDE            8 r   90W                  62W
+ (AX012)   LONGITUDE            8 r   90W                  62W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13934,14 +13878,14 @@ Dynamic grids:
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
  PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX004)   LATITUDE             6 r   3.5S                 4N
+ (AX009)   LATITUDE             6 r   3.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
-    AXIS (AX004)                         use count:   1
+    AXIS (AX012)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! nested modulo (the dynamic axis is **NOT** modulo)
 ! ... by subscript
@@ -14123,7 +14067,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX004)   LONGITUDE            9 r   101W                 53W
+ (AX009)   LONGITUDE            9 r   101W                 53W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -14131,15 +14075,15 @@ Dynamic grids:
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX005)   LONGITUDE            8 r   90W                  62W
+ (AX004)   LONGITUDE            8 r   90W                  62W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
 Dynamic axes:
+    AXIS (AX009)                         use count:   1
     AXIS (AX004)                         use count:   1
-    AXIS (AX005)                         use count:   1
  
 ! calendar axes
 list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]   ! 6-day ave
@@ -14171,7 +14115,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
 list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`]			! pseudo-var
  !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
              VARIABLE : T
-                        axis (AX003)
+                        axis (AX002)
              SUBSET   : 3 points (TIME)
  15-JAN-1982 00 / 1:  723925.
  17-JAN-1982 00 / 2:  723927.
@@ -14473,11 +14417,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX1_10   X                   10 r   1                    10
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1_10   X                   10 r   1                    10                  full
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -14569,11 +14513,11 @@ show data/full
  
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX1_10   X                   10 r   1                    10
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1_10   X                   10 r   1                    10                  full
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
  
@@ -14604,43 +14548,43 @@ cancel variables/all
 set data/format=cdf test_abs
 show grid j1 jkl jkl2 iavejkl ijkl
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
+ YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
+ YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU14
- name       axis              # pts   start                end
- XAX1_10   X                   10 r   1                    10
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1_10   X                   10 r   1                    10                  full
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -14826,11 +14770,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID PS3DU1
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYU      LATITUDE           100 i   27.672S              50N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXU      LONGITUDE          160mr   131E                 70W                 full
+ PSYU      LATITUDE           100 i   27.672S              50N                 full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
  normal    E
  normal    F
 cancel data test_fil0
@@ -15016,11 +14960,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID GLZ14
- name       axis              # pts   start                end
- PSXU69_72 LONGITUDE            4mr   161W                 158W
- PSYU      LATITUDE           100 i   27.672S              50N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXU69_72 LONGITUDE            4mr   161W                 158W                full
+ PSYU      LATITUDE           100 i   27.672S              50N                 full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
  normal    E
  normal    F
 cancel data test_fil
@@ -15180,7 +15124,7 @@ load temp[g=u]
  strip regrid on X: TEMP --> PS3DU2           @LIN
  reading TEMP     M: 43 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 39 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 40 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
 load temp[g=u at lin]
  dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -15406,7 +15350,7 @@ LIST temp[g=u,gy=u at ave]	! V4.20 mod
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  reading TEMP     M: 48 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  regrid  TEMP     M:  6 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 40 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 39 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  -DELETE TEMP     M:  6 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
              VARIABLE : TEMPERATURE (deg. C)
@@ -18261,11 +18205,11 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G011)
     GRID (G011)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
  normal    E
  normal    F
 list atime[gt=thour at max]
@@ -18296,11 +18240,11 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- THOUR     TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ THOUR     TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
  normal    E
  normal    F
  
@@ -19633,11 +19577,11 @@ CAN MODE VERIFY
   time range: 366 to 4018.4
  
     GRID GHB1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME1     T (hour)             6 r   366                  4018.4
+ TIME1     T (hour)             6 r   366                  4018.4              full
  normal    E
  normal    F
  
@@ -19711,11 +19655,11 @@ CAN MODE VERIFY
   time range: 366 to 3287.9
  
     GRID GJR1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME2     T (hour)             3 i   366                  3287.9
+ TIME2     T (hour)             3 i   366                  3287.9              full
  normal    E
  normal    F
  
@@ -23468,11 +23412,11 @@ GO err490_neg_time_show_grid.jnl
 set data gtsa056_2
 show grid/t=15-JAN-1982:15-JAN-1983 temp
     GRID PS3DT1
- name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME4     TIME               168mr   15-JAN-1982 14:00    07-JUN-1983 13:00
+ name       axis              # pts   start                end                 subset
+ 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
  normal    E
  normal    F
  
@@ -25603,10 +25547,10 @@ show grid
  Default grid for DEFINE VARIABLE is (G012)
  Last successful data access was on grid (G012)
     GRID (G012)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
- Z10       Z                   10 r   1                    10
+ Z10       Z                   10 r   1                    10                  full
  normal    T
  normal    E
  normal    F
@@ -25683,7 +25627,7 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Tue Nov 17 09:25:57 PST 2015
+Wed May 11 16:11:23 PDT 2016
  
 GO bn_reset
 cancel mode verify
@@ -25840,12 +25784,12 @@ list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50})	! only I=2 from result
  const_v {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
  eval    (C09,V02 C: 11 dset:   1 I:   30   30  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 31 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 29 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    (C09,V02 C: 11 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 26 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 25 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    (C09,V02 C: 11 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 23 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 32 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 31 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
  -DELETE (C01,V02 M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE tpry     M: 27 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -25860,12 +25804,12 @@ list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50})	! only I=2 from result
  1S   / 45:  28.5607
  -DELETE (C01,V02 M: 34 dset:   1 I:    2    2  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 cancel memory/all
- -DELETE (C09,V02 M: 22 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C09,V02 M: 21 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 23 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C09,V02 M: 25 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C09,V02 M: 24 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE (C09,V02 M: 28 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 31 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 29 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE (C01,V02 M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
@@ -25877,12 +25821,12 @@ list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  const_v {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 26 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 25 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 23 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 22 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE          M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 31 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 25 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 29 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 24 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
@@ -25893,10 +25837,10 @@ list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  1N   / 46:  28.2222  28.1992  28.4514
  1S   / 45:  28.1514  28.5607  28.8326
 cancel memory/all
- -DELETE SST      M: 22 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 21 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 23 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 31 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M: 29 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
  dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -25905,18 +25849,18 @@ list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
  allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 31 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ const_v {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
  eval    A        C:  9 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 22 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  9 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 28 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  9 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 27 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 23 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 25 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 31 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 24 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(A  ,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25928,11 +25872,11 @@ list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
  
 ! these should NOT break up the access into chunks
 cancel memory/all
- -DELETE SST      M: 22 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 26 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 21 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M: 25 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 27 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 28 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 32 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 31 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE A        M: 33 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE A        M: 34 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
@@ -25950,9 +25894,9 @@ list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
  doing sampling tpry on I axis:     1     3 dset:   1
  eval    (C09,V02 C: 11 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 32 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ -DELETE A        M: 31 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
  -DELETE A        M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 26 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 25 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST[I=30:40],{30,40,50})
              FILENAME : coads_climatology.cdf
@@ -25984,7 +25928,7 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  reading SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE          M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
  -DELETE          M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 32 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 31 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(A,{30,40,50})
              FILENAME : coads_climatology.cdf
@@ -25995,7 +25939,7 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  1N   / 46:  28.2222  28.1992     ....
  1S   / 45:  28.1514  28.5607     ....
 cancel memory/all
- -DELETE A        M: 26 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 25 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
@@ -26008,7 +25952,7 @@ list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
  doing sampling tpry on I axis:     1     1 dset:   1
  eval    A        C:  9 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 26 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 25 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 33 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE tpry     M: 27 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {30}     M: 34 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -26023,7 +25967,7 @@ list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
  1S   / 45:  28.1514
 cancel memory/all
  -DELETE SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 32 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 31 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 33 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
  dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
@@ -26043,7 +25987,7 @@ list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
  reading SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 28 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE cnst     M: 33 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 26 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 25 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(A,30)
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (LATITUDE)
@@ -26055,7 +25999,7 @@ list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
  1S   / 45:  28.1514
 cancel memory/all
  -DELETE A        M: 27 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C11,V02 M: 32 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE (C11,V02 M: 31 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE (C01,V02 M: 33 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 let/quiet fsst = sst[x=@fln] 		! fill holes to allow @iin to work
@@ -26084,7 +26028,7 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  doing moduloing SST on X axis:     1   180 dset:   1
  doing --> SST[I=1:180 at FLN:1,D=1]
  doing --> FSST[X=20E:20E(380)@IIN,D=1]
- -DELETE          M: 32 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ -DELETE          M: 31 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
  -DELETE          M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE tpry     M: 23 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -26097,12 +26041,12 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  1N   / 46:  182881720.  245818833.  306844239.
  1S   / 45:  183667676.  246892478.  309487473.
 cancel memory/all
- -DELETE FSST     M: 22 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 25 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:    0  181  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE FSST     M: 21 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 24 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:    0  181  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 27 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 28 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE FSST     M: 31 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE FSST     M: 29 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  
 ! now test optimization that uses large memory chunks if available
@@ -26120,15 +26064,15 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 31 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ const_v {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 26 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 22 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 25 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 34 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
  -DELETE SST      M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 25 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 31 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 24 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -26140,8 +26084,8 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.5607
  3   / 3:  28.8326
 cancel memory/all
- -DELETE SST      M: 22 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 21 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 28 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 33 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -26160,12 +26104,12 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  const_v {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 22 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 25 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 24 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 27 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 31 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 29 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
@@ -26178,8 +26122,8 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.5607
  3   / 3:  28.8326
 cancel memory/all
- -DELETE SST      M: 22 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 24 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 27 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 28 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -26198,10 +26142,10 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  const_v {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 22 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 31 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 26 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 29 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 25 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 24 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
  -DELETE SST      M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE tpry     M: 33 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -26216,10 +26160,10 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.5607
  3   / 3:  28.8326
 cancel memory/all
- -DELETE SST      M: 22 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 27 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 31 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 29 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 load/l=1/y=0 sst[I=30:41]
  dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
@@ -26234,15 +26178,15 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 31 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ const_v {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 22 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 33 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 25 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ reading SST      M: 24 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE tpry     M: 28 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 31 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -26307,7 +26251,7 @@ Dynamic grids:
     GRID (G017)                          use count:   2
  name       axis              # pts   start                end
  ABSTRACT  X             99999999 r   1                    1.E+08
- (AX002)   LATITUDE             5 r   1S                   1N
+ (AX004)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
@@ -26315,13 +26259,13 @@ Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX002)   LATITUDE             5 r   1S                   1N
+ (AX004)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX002)                         use count:   2
+    AXIS (AX004)                         use count:   2
 cancel memory/all
 let/quiet a = sst[l=1,y=1s:1n:.5]
 list SAMPLEI(a,{30,40,50})
@@ -26341,7 +26285,7 @@ Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
  ABSTRACT  X             99999999 r   1                    1.E+08
- (AX001)   LATITUDE             5 r   1S                   1N
+ (AX012)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
@@ -26349,13 +26293,13 @@ Dynamic grids:
     GRID (G017)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE             5 r   1S                   1N
+ (AX012)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   2
+    AXIS (AX012)                         use count:   2
  
 ! sampling a pseudo-variable
 list SAMPLEI(X[x=1:12],{3,4,7,15})
@@ -26512,9 +26456,9 @@ list SAMPLEI(Y[y=110:200:10],{3,4,7})
 cancel memory/all
 set mode diagnostic
 list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
- dealloc  dynamic grid (G017)          NORMAL    (AX002)   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  (AX002)   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  (AX002)   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G017)          NORMAL    (AX004)   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  (AX004)   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  (AX004)   NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid (C01,V02 C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid (C09,V02 C: 10 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -26528,12 +26472,12 @@ list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
  eval    (C09,V02 C: 10 dset:   1 I:   31   35  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  reading SST      M: 29 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    (C09,V02 C: 10 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 25 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 24 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    (C09,V02 C: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 20 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
  -DELETE SST      M: 32 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 26 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 25 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
              FILENAME : coads_climatology.cdf
@@ -26563,7 +26507,7 @@ list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48}) !   <-- CACHE HIT FAILS!!!
  eval    (C09,V02 C: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 16 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 26 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 25 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE tpry     M: 28 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
@@ -26946,11 +26890,11 @@ set region/i=1:4/j=1:3/l=1:2
 use bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- XLON      LONGITUDE           40mr   141E                 180E
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ XLON      LONGITUDE           40mr   141E                 180E                full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar
@@ -26972,11 +26916,11 @@ canc data/all
 use/order=yx bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- YLAT      X (degrees_north)   30 r   1                    30
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ YLAT      X (degrees_north)   30 r   1                    30                  full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar
@@ -26998,11 +26942,11 @@ canc data/all
 use/order=tyx bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- XLON      T (degrees_east)    40mr   141                  180
+ XLON      T (degrees_east)    40mr   141                  180                 full
  normal    E
  normal    F
 list xytvar
@@ -27024,11 +26968,11 @@ canc data/all
 use/order=txy bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 list xytvar
@@ -27051,10 +26995,10 @@ canc data/all
 use/order=zxy bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
- YLAT      Z (degrees_north)   30 r   1                    30
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
+ YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
  normal    E
  normal    F
@@ -27078,11 +27022,11 @@ canc data/all
 use/order=tx bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 list xytvar
@@ -27105,20 +27049,20 @@ canc data/all
 use/order=txyz bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 show grid var
     GRID GPC1
- name       axis              # pts   start                end
- TAX1_1    X                    1 r   1                    1
- XAX1_4    Y                    4 r   1                    4
- YAX1_3    Z                    3 r   1                    3
- ZAX1_2    T                    2 r   1                    2
+ name       axis              # pts   start                end                 subset
+ TAX1_1    X                    1 r   1                    1                   full
+ XAX1_4    Y                    4 r   1                    4                   full
+ YAX1_3    Z                    3 r   1                    3                   full
+ ZAX1_2    T                    2 r   1                    2                   full
  normal    E
  normal    F
 canc data/all
@@ -27143,16 +27087,16 @@ SHOW DATA
 ! basic strides
 LIST VAR[i=2:4:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 44 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27172,12 +27116,12 @@ LIST VAR[i=2:4:2]
 ! cache hit after changes to COMPLETE_MISSING_LIMS and FLESH_OUT_AXIS
 LIST VAR[i=2:4:2]
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 27 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27197,23 +27141,23 @@ LIST VAR[i=2:4:2]
 ! cache hit through non-file variable
 let a = VAR[i=2:4:2]
 list a
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 27 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 44 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  6 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 27 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 47 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 44 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -27231,12 +27175,12 @@ list a
 list a		! from cache ...
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  6 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 54 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 40 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -27254,29 +27198,29 @@ list a		! from cache ...
  
 ! cache hit from full region cache -- bypass use of strides
 cancel memory/all
- -DELETE VAR      M: 27 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 54 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 55 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 40 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 44 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 52 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 load var
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ reading VAR      M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 LIST VAR[i=2:4:2]
  dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 54 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 44 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27293,18 +27237,18 @@ LIST VAR[i=2:4:2]
  2   / 2:  1222.00  1224.00
  3   / 3:  1232.00  1234.00
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G010)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 27 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 54 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 44 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27319,26 +27263,26 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.00  1214.00
  3   / 2:  1232.00  1234.00
 CANC MEM/ALL
- -DELETE VAR      M: 27 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XAX1_4
 LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G010)           @XACT
  strip moduloing VAR on X axis:     1    10 dset:   1
- reading VAR      M: 55 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ reading VAR      M: 52 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  doing moduloing VAR on X axis:     1     4 dset:   1
- regrid  VAR      M: 27 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ regrid  VAR      M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -27353,24 +27297,24 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
  7    / 3:  1113.00
  10   / 4:  1112.00
 cancel axis/modulo XAX1_4
- -DELETE VAR      M: 27 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 47 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 43 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 52 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G010)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 47 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27385,19 +27329,19 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.00  1214.00
  3   / 2:  1232.00  1234.00
 LIST VAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 47 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G010)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 47 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 43 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27414,8 +27358,8 @@ LIST VAR[i=2:6:2,j=1:5:2]
  
 ! deliberate error
 set mode ignore; LIST/i=2:4:2 VAR; cancel mode ignore
- dealloc  dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  
@@ -27423,15 +27367,15 @@ set mode ignore; LIST/i=2:4:2 VAR; cancel mode ignore
 LIST VAR[i=2:4:2 at ave]
  dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @AVE
- reading VAR      M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- regrid  VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ reading VAR      M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X at AVE
              FILENAME : bn_strides.cdf
@@ -27450,25 +27394,25 @@ LIST VAR[i=2:4:2 at ave]
  
 ! test sub-region selection on strides axis
 let a = bigvar[i=1:40:5]
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 list/j=1/k=1/l=1 a[i=3:5]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 27 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 47 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 40 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 43 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -27480,26 +27424,26 @@ list/j=1/k=1/l=1 a[i=3:5]
  11   / 3:  1121.00
  16   / 4:  1126.00
  21   / 5:  1131.00
- -DELETE A        M: 54 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 44 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
 list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: A --> (G010)           @XACT
  eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 52 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M: 49 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 39 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 44 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ regrid  A        M: 38 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27516,13 +27460,13 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
 ! ****** unequally spaced points on parent axis
 ! reference data
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR
- dealloc  dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- -DELETE A        M: 49 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ -DELETE A        M: 38 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading UNE-NVAR M: 49 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ reading UNE-NVAR M: 38 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
              FILENAME : bn_strides.cdf
              SUBSET   : 4 points (X)
@@ -27533,28 +27477,28 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR
              1        2        3        4
           1111.00  1112.00  1113.00  1114.00
 cancel mem/all
- -DELETE BIGVAR   M: 27 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 47 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 49 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 54 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 38 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 39 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 40 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 43 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 44 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 54 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ nulrgd  UNE-NVAR M: 44 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27570,12 +27514,12 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27589,26 +27533,26 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  
 ! cache hit through non-file variable
 let a = UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 54 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ -DELETE UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 44 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
 list/order=x/j=1/k=1/l=1 a
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  7 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G018)           @XACT
  rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 54 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 44 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27622,12 +27566,12 @@ list/order=x/j=1/k=1/l=1 a		! from cache ...
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  7 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G018)           @XACT
  rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 49 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ nulrgd  UNE-NVAR M: 40 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27640,31 +27584,31 @@ list/order=x/j=1/k=1/l=1 a		! from cache ...
  
 ! cache hit from full region cache -- bypass use of strides
 cancel memory/all
- -DELETE UNE-NVAR M: 49 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 54 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 55 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 40 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 44 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
 load/k=1/l=1 UNEVENVAR
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading UNE-NVAR M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ reading UNE-NVAR M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G018)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 54 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 44 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27677,19 +27621,19 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  0.3  / 1:  1112.00
  0.6  / 2:  1114.00
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 49 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 54 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ nulrgd  UNE-NVAR M: 40 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 44 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  doing limits reconciliation on Y axis: UNEVENVAR
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
@@ -27702,28 +27646,28 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
                1
  0.3  / 1:  1112.00
  0.6  / 2:  1114.00
- -DELETE UNE-NVAR M: 54 dset:   1 I:    1    1  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 44 dset:   1 I:    1    1  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
 CANC MEM/ALL
- -DELETE UNE-NVAR M: 49 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 40 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XUNEVEN
 LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1]    ! 1, 8, 15(5), 22(2)
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  strip moduloing UNEVENVAR on X axis:     1    29 dset:   1
- reading UNE-NVAR M: 55 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ reading UNE-NVAR M: 52 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  doing moduloing UNEVENVAR on X axis:     1    10 dset:   1
- regrid  UNE-NVAR M: 49 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ regrid  UNE-NVAR M: 40 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27735,25 +27679,25 @@ LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1]    ! 1, 8, 15(5), 22(2)
              1        2        3        4        5
           1111.00  1118.00  1115.00  1112.00  1119.00
 cancel axis/modulo XUNEVEN
- -DELETE UNE-NVAR M: 49 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1   29  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 40 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 43 dset:   1 I:    1   29  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27765,20 +27709,20 @@ LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
  0    / 1:  1112.00  1114.00
  0.95 / 2:  1132.00  1134.00
 LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ -DELETE UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 55 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 43 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27793,19 +27737,19 @@ LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
  
 ! averaging causes bypass of strides
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
- dealloc  dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 55 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ -DELETE UNE-NVAR M: 52 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @AVE
- reading UNE-NVAR M: 55 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M: 52 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ reading UNE-NVAR M: 52 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  UNE-NVAR M: 43 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27820,20 +27764,20 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
  0.78 / 3:  1115.87072
  0.9  / 4:  1117.90449
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2]		! for comparison
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ -DELETE UNE-NVAR M: 43 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 49 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ nulrgd  UNE-NVAR M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 43 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27850,19 +27794,19 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2]		! for comparison
  
 ! test special logic in tm_world_recur for endpoints of strides on irreg axis
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=1:10:2 at ave]
- dealloc  dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 49 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ -DELETE UNE-NVAR M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @AVE
- reading UNE-NVAR M: 49 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M: 52 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ reading UNE-NVAR M: 40 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  UNE-NVAR M: 43 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27885,19 +27829,19 @@ set region/i=3:6/j=2:4/k=1:2/l=1
  
 use/order=yx bn_strides
 list bigvar[i=3:9:2]
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ -DELETE UNE-NVAR M: 43 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G010)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 44 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 43 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27914,19 +27858,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1233.00  1235.00  1237.00  1239.00
  4   / 4:  1243.00  1245.00  1247.00  1249.00
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 54 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 44 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: BIGVAR --> (G010)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 43 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 44 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27943,19 +27887,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1243.00  1244.00  1245.00  1246.00
  6   / 3:  1263.00  1264.00  1265.00  1266.00
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 43 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G010)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 43 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27972,25 +27916,26 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1345.00  1347.00  1349.00
  6   / 3:  1363.00  1365.00  1367.00  1369.00
 canc data/all
- -DELETE UNE-NVAR M: 49 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
+ -DELETE UNE-NVAR M: 40 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 52 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  
 use/order=zyx bn_strides
 list bigvar[i=3:9:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 40 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -28007,19 +27952,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1332.00  1532.00  1732.00  1932.00
  4   / 4:  1342.00  1542.00  1742.00  1942.00
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 54 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 40 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 55 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 40 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -28036,19 +27981,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1342.00  1442.00  1542.00  1642.00
  6   / 3:  1362.00  1462.00  1562.00  1662.00
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28065,22 +28010,23 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1543.00  1743.00  1943.00
  6   / 3:  1363.00  1563.00  1763.00  1963.00
 canc data/all
- -DELETE BIGVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=zxy bn_strides
 list bigvar[i=3:9:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 55 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 52 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 40 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -28097,19 +28043,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1323.00  1523.00  1723.00  1923.00
  4   / 4:  1324.00  1524.00  1724.00  1924.00
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 55 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 52 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 40 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 52 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -28126,19 +28072,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1324.00  1424.00  1524.00  1624.00
  6   / 3:  1326.00  1426.00  1526.00  1626.00
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 40 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 40 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28155,8 +28101,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1334.00  1534.00  1734.00  1934.00
  6   / 3:  1336.00  1536.00  1736.00  1936.00
 canc data/all
- -DELETE BIGVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! now with xytvar
 cancel region
@@ -28166,26 +28113,26 @@ show grid xytvar
  getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- XLON      LONGITUDE           40mr   141E                 180E
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ XLON      LONGITUDE           40mr   141E                 180E                full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -28201,19 +28148,19 @@ list xytvar[i=1:7:2]
  2N   / 2:  2021.00  2023.00  2025.00  2027.00
  1N   / 1:  2011.00  2013.00  2015.00  2017.00
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28229,19 +28176,19 @@ list xytvar[j=2:6:2]
  4N   / 2:  2041.00  2042.00  2043.00  2044.00
  2N   / 1:  2021.00  2022.00  2023.00  2024.00
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -28257,34 +28204,35 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.00  5043.00  5045.00  5047.00
  2N   / 1:  5021.00  5023.00  5025.00  5027.00
 canc data/all
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=yx bn_strides
 show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME     NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- YLAT      X (degrees_north)   30 r   1                    30
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ YLAT      X (degrees_north)   30 r   1                    30                  full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -28300,19 +28248,19 @@ list xytvar[i=1:7:2]
  142   / 2:  2012.00  2032.00  2052.00  2072.00
  143   / 3:  2013.00  2033.00  2053.00  2073.00
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28328,19 +28276,19 @@ list xytvar[j=2:6:2]
  144   / 2:  2014.00  2024.00  2034.00  2044.00
  146   / 3:  2016.00  2026.00  2036.00  2046.00
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -28356,34 +28304,35 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  5014.00  5034.00  5054.00  5074.00
  146   / 3:  5016.00  5036.00  5056.00  5076.00
 canc data/all
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=tyx bn_strides
 show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON      NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- XLON      T (degrees_east)    40mr   141                  180
+ XLON      T (degrees_east)    40mr   141                  180                 full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON      NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28399,19 +28348,19 @@ list xytvar[i=1:7:2]
  2N   / 2:  1022.00  3022.00  5022.00  7022.00
  1N   / 1:  1012.00  3012.00  5012.00  7012.00
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28427,19 +28376,19 @@ list xytvar[j=2:6:2]
  4N   / 2:  1042.00  2042.00  3042.00  4042.00
  2N   / 1:  1022.00  2022.00  3022.00  4022.00
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28455,34 +28404,35 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  1045.00  3045.00  5045.00  7045.00
  2N   / 1:  1025.00  3025.00  5025.00  7025.00
 canc data/all
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=txy bn_strides
 show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT      NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT      NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28498,19 +28448,19 @@ list xytvar[i=1:7:2]
  142   / 2:  1022.00  3022.00  5022.00  7022.00
  143   / 3:  1023.00  3023.00  5023.00  7023.00
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28526,19 +28476,19 @@ list xytvar[j=2:6:2]
  144   / 2:  1024.00  2024.00  3024.00  4024.00
  146   / 3:  1026.00  2026.00  3026.00  4026.00
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28554,8 +28504,9 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  1054.00  3054.00  5054.00  7054.00
  146   / 3:  1056.00  3056.00  5056.00  7056.00
 canc data/all
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -28563,27 +28514,27 @@ show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
- YLAT      Z (degrees_north)   30 r   1                    30
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
+ YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
  normal    E
  normal    F
 list/k=1:2 xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28599,20 +28550,20 @@ list/k=1:2 xytvar[i=1:7:2]
  142   / 2:  1022.00  3022.00  5022.00  7022.00
  143   / 3:  1023.00  3023.00  5023.00  7023.00
 list/k=1:2 xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28628,19 +28579,19 @@ list/k=1:2 xytvar[j=2:6:2]
  144   / 2:  1024.00  2024.00  3024.00  4024.00
  146   / 3:  1026.00  2026.00  3026.00  4026.00
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
- dealloc  dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -28656,8 +28607,9 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.00  3054.00  5054.00  7054.00
  146   / 3:  1056.00  3056.00  5056.00  7056.00
 canc data/all
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
  
 ! * * * * * MIXED STRIDES, PERMUTATIONS and REVERSALS * * * * *
@@ -28680,16 +28632,16 @@ cancel region; set region/l=1
 use/order=yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28704,25 +28656,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.00  1552.00
  5   / 2:  1515.00  1555.00
 canc data/all
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  strip reversing MIDVAR on Y axis:     2     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    1    5  J:    5    8  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28737,25 +28690,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.00  1558.00
  5   / 2:  1515.00  1555.00
 canc data/all
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  strip reversing MIDVAR on X axis:     1     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    4    8  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28770,23 +28724,24 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1582.00  1542.00
  5   / 2:  1585.00  1545.00
 canc data/all
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=tyx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 54 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ nulrgd  MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28801,26 +28756,27 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.00  5125.00
  5   / 2:  1155.00  5155.00
 canc data/all
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 use/order=-t-y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  strip reversing MIDVAR on X axis:     1     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    4    7  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 54 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28835,23 +28791,24 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.00  2775.00
  5   / 2:  6745.00  2745.00
 canc data/all
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=txy bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28866,25 +28823,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.00  5152.00
  5   / 2:  1155.00  5155.00
 canc data/all
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  strip reversing MIDVAR on Y axis:     2     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    5    8  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28899,8 +28857,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.00  2758.00
  5   / 2:  6755.00  2755.00
 canc data/all
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 GO bn_reset
 cancel mode verify
@@ -28944,8 +28903,8 @@ show data
  
 show grid/x HAS_NO_AXIS
     GRID GAB7
- name       axis              # pts   start                end
- NO_AXIS   X                    5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ NO_AXIS   X                    5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -28960,8 +28919,8 @@ show grid/x HAS_NO_AXIS
        5>  5                     1          4.5
 show grid/x HAS_UNORDERED_AXIS
     GRID GAB1
- name       axis              # pts   start                end
- UNORDERED_AXIS X               5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ UNORDERED_AXIS X               5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -28976,8 +28935,8 @@ show grid/x HAS_UNORDERED_AXIS
        5>  5                     1          4.5
 show grid/x HAS_GAPPY_AXIS
     GRID GAB2
- name       axis              # pts   start                end
- GAPPY_AXIS X                   5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ GAPPY_AXIS X                   5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -28992,8 +28951,8 @@ show grid/x HAS_GAPPY_AXIS
        5>  5                     1          4.5
 show grid/x HAS_BACKWARDS_AXIS
     GRID GAB8
- name       axis              # pts   start                end
- BACKWARDS_AXIS X               5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ BACKWARDS_AXIS X               5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -29008,8 +28967,8 @@ show grid/x HAS_BACKWARDS_AXIS
        5>  5                     1          4.5
 show grid/x SCALAR_VAR
     GRID GAB3
- name       axis              # pts   start                end
- SCALAR    X                    1 r   1                    1
+ name       axis              # pts   start                end                 subset
+ SCALAR    X                    1 r   1                    1                   full
  normal    Y
  normal    Z
  normal    T
@@ -29021,37 +28980,37 @@ show grid/x SCALAR_VAR
  
 show grid/i=1:5 USES_BIG_IRREG
     GRID GAB9
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- BIG_IRREG T (hours)       200000 i   1                    200000
+ BIG_IRREG T (hours)       200000 i   1                    200000              full
  normal    E
  normal    F
  
 show grid MASKED_SST
     GRID GAB5
- name       axis              # pts   start                end
- COADSX1   LONGITUDE          180 r   1E                   180E
- COADSY1   LATITUDE            90 r   1N                   90N
+ name       axis              # pts   start                end                 subset
+ 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
+ TIME4     TIME                 1mr   16-JAN 06:00         16-JAN 06:00        full
  normal    E
  normal    F
 show grid COADSX
     GRID GAB6
- name       axis              # pts   start                end
- COADSX1   LONGITUDE          180 r   1E                   180E
- COADSY1   LATITUDE            90 r   1N                   90N
+ name       axis              # pts   start                end                 subset
+ COADSX1   LONGITUDE          180 r   1E                   180E                full
+ COADSY1   LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
  normal    E
  normal    F
 show grid COADSY
     GRID GAB6
- name       axis              # pts   start                end
- COADSX1   LONGITUDE          180 r   1E                   180E
- COADSY1   LATITUDE            90 r   1N                   90N
+ name       axis              # pts   start                end                 subset
+ COADSX1   LONGITUDE          180 r   1E                   180E                full
+ COADSY1   LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
  normal    E
@@ -29157,7 +29116,7 @@ stat $1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 55 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 52 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380)
@@ -29181,15 +29140,15 @@ CONFUSE
  pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 54 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 44 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1
  !-> stat sst
- -DELETE I        M: 54 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 44 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 54 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 44 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380)
@@ -29218,8 +29177,8 @@ stat $1[gx=xtrop]
  eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
  strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 52 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 49 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 43 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 40 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
  
              SEA SURFACE TEMPERATURE
@@ -29240,16 +29199,16 @@ stat $1[gx=xtrop]
  Standard deviation: 9.8848
 CONFUSE
  dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 49 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 40 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  dealloc  dynamic grid 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
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 49 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 40 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1[gx=xtrop]
  !-> stat sst[gx=xtrop]
- -DELETE I        M: 49 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 40 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
@@ -29258,8 +29217,8 @@ stat $1[gx=xtrop]
  eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
  strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 49 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 27 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 40 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 38 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
  
              SEA SURFACE TEMPERATURE
@@ -29284,7 +29243,7 @@ let $1x = $1[gx=xtrop]
 stat $1x
  !-> stat sstx
  dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 27 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 38 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid SSTX     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
@@ -29295,8 +29254,8 @@ stat $1x
  eval    SSTX     C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
  strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 27 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 47 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 38 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 39 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
  
              SST[GX=XTROP]
@@ -29321,10 +29280,10 @@ CONFUSE
  pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 44 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 35 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1x
  !-> stat sstx
- -DELETE I        M: 44 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 35 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
@@ -29332,8 +29291,8 @@ stat $1x
  eval    SSTX     C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
  strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 44 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 43 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 35 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 34 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
  
              SST[GX=XTROP]
@@ -29354,11 +29313,11 @@ stat $1x
  
 define grid/x=xtrop gx
  dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTX     M: 40 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTX     M: 46 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SSTX     M: 33 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SSTX     M: 36 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 43 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 47 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 34 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 39 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 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
@@ -29368,8 +29327,8 @@ stat $1[g=gx]
  eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
  strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 47 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 43 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 39 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 34 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
  
              SEA SURFACE TEMPERATURE
@@ -29390,16 +29349,16 @@ stat $1[g=gx]
  Standard deviation: 9.8848
 CONFUSE
  dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 43 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 34 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  dealloc  dynamic grid 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
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 43 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 34 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1[g=gx]
  !-> stat sst[g=gx]
- -DELETE I        M: 43 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 34 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
@@ -29408,8 +29367,8 @@ stat $1[g=gx]
  eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
  strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 43 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 46 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 34 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 36 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
  
              SEA SURFACE TEMPERATURE
@@ -29433,7 +29392,7 @@ define axis/y=20s:20n:1 ytrop
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst[gx=xtrop,gy=ytrop]
  dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 46 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 36 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
  dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
@@ -29441,9 +29400,9 @@ stat $1[gx=xtrop,gy=ytrop]
  eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
  strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 46 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 36 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  regrid XY
- regrid  SST      M: 40 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 33 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
  
              SEA SURFACE TEMPERATURE
@@ -29464,16 +29423,16 @@ stat $1[gx=xtrop,gy=ytrop]
  Standard deviation: 1.778
 CONFUSE
  dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 40 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 33 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  dealloc  dynamic grid 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
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 40 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 33 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst[gx=xtrop,gy=ytrop]
- -DELETE I        M: 40 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 33 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
@@ -29482,9 +29441,9 @@ stat $1[gx=xtrop,gy=ytrop]
  eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
  strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 40 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 33 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  regrid XY
- regrid  SST      M: 39 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 30 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
  
              SEA SURFACE TEMPERATURE
@@ -29507,7 +29466,7 @@ stat $1[gx=xtrop,gy=ytrop]
 define grid/like=$1/x=xtrop/y=ytrop gxyt
  !-> define grid/like=sst/x=xtrop/y=ytrop gxyt
  dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 39 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 30 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
 stat $1[g=gxyt]
@@ -29516,9 +29475,9 @@ stat $1[g=gxyt]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 39 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 30 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  regrid XY
- regrid  SST      M: 38 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 29 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  
              SEA SURFACE TEMPERATURE
              regrid: GXYT
@@ -29543,17 +29502,17 @@ CONFUSE
  pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 37 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 26 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1[g=gxyt]
  !-> stat sst[g=gxyt]
- -DELETE I        M: 37 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 26 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 37 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 26 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  regrid XY
- regrid  SST      M: 36 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 25 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  
              SEA SURFACE TEMPERATURE
              regrid: GXYT
@@ -29582,9 +29541,9 @@ stat $1xyt
  eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 35 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 24 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  regrid XY
- regrid  SST      M: 34 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 23 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29608,18 +29567,18 @@ CONFUSE
  pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 32 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 21 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1xyt
  !-> stat sstxyt
- -DELETE I        M: 32 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 21 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 32 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  regrid XY
- regrid  SST      M: 30 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 20 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29640,8 +29599,8 @@ stat $1xyt
 let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
  dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTXYT   M: 29 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTXYT   M: 33 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SSTXYT   M: 19 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SSTXYT   M: 22 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
 stat $1xyt
  !-> stat sstxyt
@@ -29650,9 +29609,9 @@ stat $1xyt
  eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 33 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 22 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  regrid XY
- regrid  SST      M: 29 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 19 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29676,18 +29635,18 @@ CONFUSE
  pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 26 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 17 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1xyt
  !-> stat sstxyt
- -DELETE I        M: 26 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 17 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 26 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 17 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  regrid XY
- regrid  SST      M: 25 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 16 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29712,7 +29671,7 @@ stat $1[x=@ave]
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST      M: 23 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 14 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[X=20E:20E(380)@AVE,D=1]
  
              SEA SURFACE TEMPERATURE
@@ -29737,16 +29696,16 @@ CONFUSE
  pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 21 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1[x=@ave]
  !-> stat sst[x=@ave]
- -DELETE I        M: 21 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST      M: 21 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 12 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[X=20E:20E(380)@AVE,D=1]
  
              SEA SURFACE TEMPERATURE
@@ -29777,7 +29736,7 @@ stat $1xave
  eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    SSTXAVE  C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST      M: 19 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[X=20E:20E(380)@AVE,D=1]
  
              SST[X=@AVE]
@@ -29802,17 +29761,17 @@ CONFUSE
  pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 16 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M:  5 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1xave
  !-> stat sstxave
- -DELETE I        M: 16 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M:  5 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    SSTXAVE  C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST      M: 16 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:  5 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[X=20E:20E(380)@AVE,D=1]
  
              SST[X=@AVE]
@@ -29839,7 +29798,7 @@ stat $1[x=@sbx]
  eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[X=20E:20E(380)@SBX:3,D=1]
  strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M: 13 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:  2 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing moduloing SST on X axis:     1   180 dset:   1
  doing --> SST[X=20E:20E(380)@SBX:3,D=1]
  
@@ -29866,17 +29825,17 @@ CONFUSE
  pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 10 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 46 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1[x=@sbx]
  !-> stat sst[x=@sbx]
- -DELETE I        M: 10 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 46 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[X=20E:20E(380)@SBX:3,D=1]
  strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 46 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing moduloing SST on X axis:     1   180 dset:   1
  doing --> SST[X=20E:20E(380)@SBX:3,D=1]
  
@@ -29910,7 +29869,7 @@ stat $1sbx
  eval    SSTSBX   C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[X=20E:20E(380)@SBX:3,D=1]
  strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 27 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing moduloing SST on X axis:     1   180 dset:   1
  doing --> SST[X=20E:20E(380)@SBX:3,D=1]
  
@@ -29936,10 +29895,10 @@ CONFUSE
  pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  3 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 55 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1sbx
  !-> stat sstsbx
- -DELETE I        M:  3 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 55 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
@@ -29947,7 +29906,7 @@ stat $1sbx
  eval    SSTSBX   C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[X=20E:20E(380)@SBX:3,D=1]
  strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M:  3 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 55 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing moduloing SST on X axis:     1   180 dset:   1
  doing --> SST[X=20E:20E(380)@SBX:3,D=1]
  
@@ -30520,14 +30479,14 @@ let $1xyt = $1[g=gxyt]
  -DELETE SST5     M: 88 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5     M: 89 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTSBX   M:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SSTSBX   M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SSTSBX   M: 56 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTXAVE  M: 14 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTXAVE  M: 17 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SSTXAVE  M:  3 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SSTXAVE  M:  7 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTXYT   M: 24 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTXYT   M: 28 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SSTXYT   M: 15 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SSTXYT   M: 18 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
 stat $1xyt
  !-> stat sst5xyt
@@ -30539,11 +30498,11 @@ stat $1xyt
  eval    SST5XYT  C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip regrid on X: SST5 --> GXYT             @LIN
  eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 28 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 24 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 24 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading SST      M: 18 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ constan cnst     M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  regrid XY
- regrid  SST5     M: 24 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST5     M: 15 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -30578,10 +30537,10 @@ stat $1xyt
  strip regrid on X: SST5 --> GXYT             @LIN
  eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 56 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:  4 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  4 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M:  1 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  1 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  regrid XY
- regrid  SST5     M:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST5     M:  1 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -30940,12 +30899,12 @@ let a = XSEQUENCE(j[j=1:5])
  -DELETE SST5XAVE M: 59 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5XAVE M: 72 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5XYT  M: 14 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST5XYT  M:  3 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5XYT  M: 88 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 17 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 24 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST5     M:  1 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST5     M:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST5     M: 15 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5     M: 31 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5     M: 41 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5     M: 51 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -31154,53 +31113,68 @@ EXIT/SCRIPT
  
 GO bn_reset
 cancel mode verify
- -DELETE SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  2 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  3 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE (C31,V11 M: 78 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE (C31,V11 M: 95 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE (C09,V11 M: 79 dset:   0 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE (C09,V11 M: 90 dset:   0 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          ABSTRACT  ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE (C01,V11 M: 84 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE (C01,V11 M: 93 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE A        M: 75 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M: 82 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE I        M: 94 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ canceling dset ./coads_climatology.cdf
+ -DELETE SST      M:  2 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  4 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M:  5 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  6 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  8 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  9 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  8 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  9 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 11 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 12 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 13 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 15 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 16 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 18 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 19 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 20 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 21 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 22 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 23 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 11 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 12 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 13 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 14 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 16 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 17 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 18 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 19 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 20 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 21 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 22 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 23 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 24 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 25 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 26 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 27 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 28 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 29 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 30 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 32 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 30 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 32 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 33 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 35 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 36 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 37 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 38 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 39 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 40 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 34 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 35 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 36 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 37 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 38 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 39 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 40 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 42 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 43 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 44 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 44 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 45 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 46 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 47 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 46 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 47 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 48 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 49 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 49 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 50 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 52 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 52 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 53 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 54 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 54 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 55 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 56 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 57 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -31220,20 +31194,6 @@ cancel mode verify
  -DELETE SST      M: 85 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 87 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 92 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C31,V11 M: 78 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C31,V11 M: 95 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C09,V11 M: 79 dset:   0 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C09,V11 M: 90 dset:   0 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          ABSTRACT  ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C01,V11 M: 84 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 93 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 75 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 82 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE I        M: 94 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE str      M: 86 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE str      M: 89 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 GO bn_regrid_to_user		! G=user_var and related
@@ -31278,10 +31238,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -31309,10 +31269,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -31338,10 +31298,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -31393,7 +31353,7 @@ show grid gg2
     GRID GG2
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX020)   LATITUDE           401 r   20S                  20N
+ (AX009)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
@@ -31402,7 +31362,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX020)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! demonstrate proper management of dynamic axes
 DEFINE GRID/LIKE=gg2 gg3
@@ -31410,7 +31370,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX020)                         use count:   2
+    AXIS (AX009)                         use count:   2
 DEFINE GRID/like=temp[d=levitus_climatology] gg2
 show grid gg2
     GRID GG2
@@ -31425,7 +31385,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX020)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! SET GRID using a user-defined variable
 let g = sst[x=0:30:.1,d=coads_climatology]
@@ -31434,11 +31394,11 @@ show grid
  Default grid for DEFINE VARIABLE is (G006)
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- (AX012)   LONGITUDE          301 r   0E                   30E
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ (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
+ TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  normal    E
  normal    F
  
@@ -31448,11 +31408,11 @@ show grid
  Default grid for DEFINE VARIABLE is (G006)
  Last successful data access was on grid (G012)
     GRID (G012)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE           201 r   10S                  10N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX018)   LATITUDE           201 r   10S                  10N                 200 pts
  normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  normal    E
  normal    F
 show grid/dynamic
@@ -31460,23 +31420,23 @@ Dynamic grids:
     GRID (G012)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE           201 r   10S                  10N
+ (AX018)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX012)   LONGITUDE          301 r   0E                   30E
+ (AX026)   LONGITUDE          301 r   0E                   30E
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
-    AXIS (AX012)                         use count:   1
-    AXIS (AX020)                         use count:   1
+    AXIS (AX018)                         use count:   1
+    AXIS (AX026)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! deliberate errors
 set mode ignore
@@ -31592,62 +31552,62 @@ list a1[gxz=a2]
 ! test use of expressions in dynamic grid commands
 SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2]             ! implicit Y axis
     GRID (G018)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX004)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
     GRID (G018)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX018)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
 SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
     GRID (G011)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX004)   LATITUDE            41 r   10S                  2S
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
+ (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
  normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
+ (AX012)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
  normal    E
  normal    F
 SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])      ! abstract X axis
     GRID (G018)
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
- (AX004)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]),SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])
     GRID (G018)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX011)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX012)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
     GRID (G011)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX004)   LATITUDE            41 r   10S                  2S
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
+ (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
  normal    Z
- (AX001)   T (CYC/hour)         2 r   0.00034224           0.00068448
+ (AX018)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
  normal    E
  normal    F
     GRID (G018)
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
- (AX004)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
@@ -31657,10 +31617,10 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is (G006)
  Last successful data access was on grid (G018)
     GRID (G018)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX018)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
@@ -31669,16 +31629,16 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is (G011)
  Last successful data access was on grid (G011)
     GRID (G011)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX004)   LATITUDE            41 r   10S                  2S
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
+ (AX025)   LATITUDE            41 r   10S                  2S                  full
  normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
+ (AX012)   T (CYC/hour)         2 r   0.00034224           0.00068448          full
  normal    E
  normal    F
 list/j=1:5 j
              VARIABLE : J
-                        axis (AX004)
+                        axis (AX025)
              SUBSET   : 5 points (LATITUDE)
  9.2S   / 5:  5.00000
  9.4S   / 4:  4.00000
@@ -31690,7 +31650,7 @@ SHOW GRID MYGRID
     GRID MYGRID
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX004)   LATITUDE            41 r   10S                  2S
+ (AX025)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
@@ -31700,15 +31660,15 @@ Dynamic grids:
     GRID (G011)                          use count:   1
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX004)   LATITUDE            41 r   10S                  2S
+ (AX025)   LATITUDE            41 r   10S                  2S
  normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
+ (AX012)   T (CYC/hour)         2 r   0.00034224           0.00068448
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX011)                         use count:   1
-    AXIS (AX004)                         use count:   2
-    AXIS (AX020)                         use count:   1
+    AXIS (AX012)                         use count:   1
+    AXIS (AX025)                         use count:   2
+    AXIS (AX009)                         use count:   1
  
  
 ! ******** V53 Additions below ***********
@@ -31861,11 +31821,11 @@ sh data
  
 sh grid ndata
     GRID GSH1
- name       axis              # pts   start                end
- PSXT191_100 LONGITUDE         10mr   139.5W               130.5W
- PSYT39_51 LATITUDE            13 i   2.167S               1.833N
- PSZT1_1   DEPTH (m)            1 r-  5                    5
- TWEEKS1   TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00
+ name       axis              # pts   start                end                 subset
+ PSXT91_100 LONGITUDE          10mr   139.5W               130.5W              full
+ PSYT39_51 LATITUDE            13 i   2.167S               1.833N              full
+ PSZT1_1   DEPTH (m)            1 r-  5                    5                   full
+ TWEEKS1   TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00   full
  normal    E
  normal    F
 sh axis tweeks
@@ -32540,9 +32500,9 @@ can mem/all
 let xy_laplace_gridded = scat2gridlaplace_xy(xax,yax,O2_umol_kg,x[gx=x_20],y[gy=y_20],2,2)
 show grid xy_laplace_gridded
     GRID (G010)
- name       axis              # pts   start                end
- X_20      LONGITUDE           20mr   50E                  70E
- Y_20      LATITUDE            20 r   10N                  20N
+ name       axis              # pts   start                end                 subset
+ X_20      LONGITUDE           20mr   50E                  70E                 full
+ Y_20      LATITUDE            20 r   10N                  20N                 full
  normal    Z
  normal    T
  normal    E
@@ -33171,9 +33131,9 @@ let wgtl = scat2gridlaplace_xy(xln,ylt, wgt, x[gx=xlonef], y[gy=ylatef], 2., 1)
  
 show grid wgtl
     GRID (G017)
- name       axis              # pts   start                end
- XLONEF    LONGITUDE          133mr   12.5W                119.5E(479.5)
- YLATEF    LATITUDE            73 r   47.25N               83.25N
+ name       axis              # pts   start                end                 subset
+ XLONEF    LONGITUDE          133mr   12.5W                119.5E(479.5)       full
+ YLATEF    LATITUDE            73 r   47.25N               83.25N              full
  normal    Z
  normal    T
  normal    E
@@ -34156,10 +34116,10 @@ SAMPLEN(TO_BE_SAMPLED,F_INDICES)
     TO_BE_SAMPLED: data to sample at list of F indices supplied
     F_INDICES: list of F indices at which to sample
 SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
-    Returns data sampled at a subset of its grid points, defined by (XPTS, YPTS)
+    Returns data sampled by matching coordinates at a subset of grid points, defined by (XPTS, YPTS)
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
-    XPTS: X indices of grid points
-    YPTS: Y indices of grid points
+    XPTS: X coordinates of grid points
+    YPTS: Y coordinates of grid points
 SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
     Returns data sampled according to I indices which may vary in JKL
     I_INDICES: indices upon which to sample
@@ -35494,6 +35454,44 @@ let mask = 0*x[gx=sst] + y[gy=sst]  + 1
 shade fill_xy(sst[l=1], mask[l=1], 1)
 shade fill_xy(sst[l=1], mask[l=1], 4)
  
+! Compare SAMPLEXY and SAMPLEIJ
+GO bn_reset
+cancel mode verify
+GO bn_samplexy_sampleij
+! bn_samplexy_sampleij
+ 
+! Simple tests of SAMPLEXY and SAMPLEIJ
+ 
+sh func samplexy, sampleij
+SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
+    Returns data sampled at a set of (X,Y) points, using linear interpolation
+    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
+    XPTS: X values of sample points
+    YPTS: Y values of sample points
+SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
+    Returns data sampled by matching coordinates at a subset of grid points, defined by (XPTS, YPTS)
+    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
+    XPTS: X coordinates of grid points
+    YPTS: Y coordinates of grid points
+use coads_climatology
+ 
+! Both functions take world coordinate values
+! as arguements for the points at which to sample.
+!
+! 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
+             X: 0.5 to 3.5
+             TIME: JAN
+ Column  1: EX#1 is SAMPLEXY(SST,{321,323.5,325}, {1,1,1})
+ Column  2: EX#2 is SAMPLEIJ(SST,{321,323,324.5}, {1,1,1})
+            EX#1    EX#2
+1   / 1:  27.4849  27.4849
+2   / 2:  27.4030  27.4655
+3   / 3:  27.2157     ....
+ 
+ 
  
 GO bn_reset
 cancel mode verify
@@ -35518,41 +35516,41 @@ let b =  a[i=18:23:2]
 list/nohead b            ! using rdstride
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid B        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  eval    B        C:  6 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G022)           @XACT
  strip moduloing A on X axis:    18    22 dset:   1
  rdstride A        C: 11 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:    18    20 dset:   1
- -DELETE A        M:322 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M:339 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  rdstride A        C: 11 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:     2     2 dset:   1
- -DELETE A        M:322 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:322 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:319 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE A        M:339 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ nulrgd  A        M:339 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M:332 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  18   / 1:  18.0000
  20   / 2:  20.0000
  22   / 3:   2.0000
 list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G023)           @XACT
  strip moduloing A on X axis:     1    25 dset:   1
- reading A        M:325 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading A        M:327 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:     1    20 dset:   1
- regrid  A        M:341 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ regrid  A        M:334 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  1    / 1:   1.0000
  4    / 2:   4.0000
  7    / 3:   7.0000
@@ -35563,24 +35561,24 @@ list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
  22   / 8:   2.0000
  25   / 9:   5.0000
 list/nohead b            ! reuse of cached result
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M:341 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE A        M:334 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  eval    B        C:  6 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G022)           @XACT
  strip moduloing A on X axis:    18    22 dset:   1
  rdstride A        C: 11 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:    18    20 dset:   1
- -DELETE A        M:341 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M:334 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  rdstride A        C: 11 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:     2     2 dset:   1
- -DELETE A        M:341 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:341 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:339 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE A        M:334 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ nulrgd  A        M:334 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M:330 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  18   / 1:  18.0000
  20   / 2:  20.0000
  22   / 3:   2.0000
@@ -35781,42 +35779,42 @@ list/nohead a[i=106:145:5]
 !  ***** STRING TESTS *****
 set mode diag
 list/nohead str[i=18:23:2] ! using rdstride
- dealloc  dynamic grid (G023)          (AX010)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M:335 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G023)          (AX028)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE A        M:337 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: STR --> (G022)           @XACT
  strip moduloing STR on X axis:    18    22 dset:   1
  rdstride STR      C:  9 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing STR on X axis:    18    20 dset:   1
- -DELETE STR      M:335 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE STR      M:337 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  rdstride STR      C:  9 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing STR on X axis:     2     2 dset:   1
- -DELETE STR      M:335 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  STR      M:335 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE STR      M:334 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE STR      M:337 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ nulrgd  STR      M:337 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE STR      M:325 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  18   / 1:"r"
  20   / 2:"t"
  22   / 3:"b"
 list/nohead str[i=1:25:3]  ! no strides --> reads full region without strides
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: STR --> (G023)           @XACT
  strip moduloing STR on X axis:     1    25 dset:   1
- reading STR      M:334 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading STR      M:325 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing STR on X axis:     1    20 dset:   1
- regrid  STR      M:318 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ regrid  STR      M:322 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  1    / 1:"a"
  4    / 2:"d"
  7    / 3:"g"
@@ -36524,8 +36522,8 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid XABSTRACT
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -36541,9 +36539,9 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid YABSTRACT
     GRID YABSTRACT
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- ABSTRACT  Y             99999999 r   1                    1.E+08
+ ABSTRACT  Y             99999999 r   1                    1.E+08              full
  normal    Z
  normal    T
  normal    E
@@ -36558,10 +36556,10 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid ZABSTRACT
     GRID ZABSTRACT
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
- ABSTRACT  Z             99999999 r   1                    1.E+08
+ ABSTRACT  Z             99999999 r   1                    1.E+08              full
  normal    T
  normal    E
  normal    F
@@ -36575,11 +36573,11 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid TABSTRACT
     GRID TABSTRACT
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- ABSTRACT  T             99999999 r   1                    1.E+08
+ ABSTRACT  T             99999999 r   1                    1.E+08              full
  normal    E
  normal    F
 let a = TSEQUENCE({"a","b","c","d","e"})
@@ -38433,11 +38431,11 @@ show mem/free
 use/ord=x-y test_100x100.nc
 list/prec=1 a[i=1:100:10] !  this looks just right!!
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1  100  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G005)           @XACT
  strip reversing A on Y axis:     1   100 dset:   1
  rdstride A        C:  8 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -38445,7 +38443,7 @@ list/prec=1 a[i=1:100:10] !  this looks just right!!
  -DELETE A        M:  1 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  nulrgd  A        M:  1 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
              VARIABLE : IF I EQ J THEN 1 ELSE A0
                         regrid: 10 delta on X
              FILENAME : test_100x100.nc
@@ -38556,9 +38554,9 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G005)
     GRID (G005)
- name       axis              # pts   start                end
- (AX017)   X                   10 r   1                    91
- YAX1_100  Y                  100 r   1                    100
+ name       axis              # pts   start                end                 subset
+ (AX015)   X                   10 r   1                    91                  9 pts
+ YAX1_100  Y                  100 r   1                    100                 full
  normal    Z
  normal    T
  normal    E
@@ -38567,7 +38565,7 @@ show grid
 ! should be a diagonal path of steps all the way across the plot
 shade a[i=1:100:10]
  eval    EX#1     C:  4 dset:   1 I:    1  100  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G005)           @XACT
  strip reversing A on Y axis:     1   100 dset:   1
  rdstride A        C:  8 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -38575,7 +38573,7 @@ shade a[i=1:100:10]
  -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  nulrgd  A        M:  2 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE A        M:  3 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
 setting up 2D plot
  -DELETE A        M:  3 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 PPL plot 279  complete
@@ -39725,7 +39723,7 @@ lsx $1  ! default avoids void points
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GFJ1            XAX_SUBSPANORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VREG     M:  8 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VREG     M:  2 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : X[GX=XAX_SUBSPAN] -40 + 10
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 6 points (X)
@@ -39735,9 +39733,9 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    7    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VREG on X axis:     7     7 dset:   1
- reading VREG     M: 11 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VREG     M:  5 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VREG on X axis:     6     6 dset:   1
         ....
 lsxn/x=0 $1 ! void point below, alone (via modulo)
@@ -39745,24 +39743,26 @@ lsxn/x=0 $1 ! void point below, alone (via modulo)
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  strip moduloing VREG on X axis:     0     0 dset:   1
- reading VREG     M:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VREG     M:  8 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing VREG on X axis:     6     6 dset:   1
         ....
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    5    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VREG on X axis:     5     7 dset:   1
- reading VREG     M:  5 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VREG     M:  3 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VREG on X axis:     5     6 dset:   1
           15.0000  16.0000     ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VREG on X axis:     0     7 dset:   1
- reading VREG     M: 17 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip moduloing VREG on X axis:     0     6 dset:   1
+ reading VREG     M:  9 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing VREG on X axis:     1     6 dset:   1
+ doing modulo-void-filling VREG on X axis:     0     6 dset:   1
              ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -39998,16 +39998,16 @@ l200n/l=12:21/i=-19:-9 $2_void[x=@fnr,t=@fnr]
 ! test shift
 l200n/l=12:21/i=-19:-9 $2[x=@shf:2,t=@shf:-2]
  !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_reg[x=@shf:2,t=@shf:-2]
- 14-SEP      / 12:  104.000  105.000  106.000     ....  101.000  102.000  103.000  104.000  105.000  106.000     ....
- 15-JAN-0002 / 13:  134.000  135.000  136.000     ....  131.000  132.000  133.000  134.000  135.000  136.000     ....
+ 14-SEP      / 12:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
+ 15-JAN-0002 / 13:  134.000  135.000  136.000     ....  131.000     ....  133.000  134.000  135.000  136.000     ....
  14-FEB-0002 / 14:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 16-MAR-0002 / 15:   14.000   15.000   16.000     ....   11.000   12.000   13.000   14.000   15.000   16.000     ....
- 15-APR-0002 / 16:   44.000   45.000   46.000     ....   41.000   42.000   43.000   44.000   45.000   46.000     ....
- 15-MAY-0002 / 17:   74.000   75.000   76.000     ....   71.000   72.000   73.000   74.000   75.000   76.000     ....
- 15-SEP-0002 / 18:  104.000  105.000  106.000     ....  101.000  102.000  103.000  104.000  105.000  106.000     ....
- 15-JAN-0003 / 19:  134.000  135.000  136.000     ....  131.000  132.000  133.000  134.000  135.000  136.000     ....
+ 16-MAR-0002 / 15:   14.000   15.000   16.000     ....   11.000     ....   13.000   14.000   15.000   16.000     ....
+ 15-APR-0002 / 16:   44.000   45.000   46.000     ....   41.000     ....   43.000   44.000   45.000   46.000     ....
+ 15-MAY-0002 / 17:   74.000   75.000   76.000     ....   71.000     ....   73.000   74.000   75.000   76.000     ....
+ 15-SEP-0002 / 18:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
+ 15-JAN-0003 / 19:  134.000  135.000  136.000     ....  131.000     ....  133.000  134.000  135.000  136.000     ....
  14-FEB-0003 / 20:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 16-MAR-0003 / 21:   14.000   15.000   16.000     ....   11.000   12.000   13.000   14.000   15.000   16.000     ....
+ 16-MAR-0003 / 21:   14.000   15.000   16.000     ....   11.000     ....   13.000   14.000   15.000   16.000     ....
  
 ! test strides
 l200n/order=x $2[l=1,i=0:14]
@@ -40017,37 +40017,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
  !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:2]
  dealloc  dynamic grid GFJ3            XAX_SUBSPANORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          (AX004)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX004)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- allocate dynamic grid (G002)          (AX004)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ allocate dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ dealloc  dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ allocate dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          (AX004)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ allocate dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
  strip regrid on X: V2D_REG --> (G002)           @XACT
- found   V2D_REG  M: 69 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_REG  M: 70 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          (AX004)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ found   V2D_REG  M: 71 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  V2D_REG  M: 72 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
              ....  12.0000  14.0000  16.0000  11.0000  13.0000  15.0000     ....
 l200n/order=x $2[l=1,i=0:14:7]
  !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:7]
         ............
 set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  !-> list/width=200/nohead v2d_reg[i=1,l=1:15:2]
- dealloc  dynamic grid (G002)          (AX014)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- -DELETE V2D_REG  M: 71 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          (AX017)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ -DELETE V2D_REG  M: 73 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX004)   NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX004)   NORMAL    NORMAL
- allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX004)   NORMAL    NORMAL
+ allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
+ allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX004)   NORMAL    NORMAL
+ allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
  strip regrid on T: V2D_REG --> (G002)           @XACT
  strip moduloing V2D_REG on T axis:     1    15 dset:   1
  rdstride V2D_REG  C:  9 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
  doing moduloing V2D_REG on T axis:     1     5 dset:   1
- -DELETE V2D_REG  M: 71 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- nulrgd  V2D_REG  M: 71 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_REG  M: 72 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX004)   NORMAL    NORMAL
+ -DELETE V2D_REG  M: 73 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
+ nulrgd  V2D_REG  M: 73 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ -DELETE V2D_REG  M: 74 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
  16-JAN-0000 / 1:   11.000
  16-MAR-0000 / 2:   71.000
  15-MAY-0000 / 3:  131.000
@@ -40254,7 +40254,7 @@ lsx $1  ! default avoids void points
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GFJ2            XIRREG_SUBNORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 78 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 80 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : X[GX=XIRREG_SUBSPAN] -40 + 10
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 6 points (X)
@@ -40264,9 +40264,9 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    7    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VIRR on X axis:     7     7 dset:   1
- reading VIRR     M: 79 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 81 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VIRR on X axis:     6     6 dset:   1
         ....
 lsxn/x=0 $1 ! void point below, alone (via modulo)
@@ -40274,24 +40274,26 @@ lsxn/x=0 $1 ! void point below, alone (via modulo)
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  strip moduloing VIRR on X axis:     0     0 dset:   1
- reading VIRR     M: 81 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 83 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing VIRR on X axis:     6     6 dset:   1
         ....
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    5    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VIRR on X axis:     5     7 dset:   1
- reading VIRR     M: 83 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 85 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VIRR on X axis:     5     6 dset:   1
           15.0000  16.0000     ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VIRR on X axis:     0     7 dset:   1
- reading VIRR     M: 85 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip moduloing VIRR on X axis:     0     6 dset:   1
+ reading VIRR     M: 87 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing VIRR on X axis:     1     6 dset:   1
+ doing modulo-void-filling VIRR on X axis:     0     6 dset:   1
              ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -40527,16 +40529,16 @@ l200n/l=12:21/i=-19:-9 $2_void[x=@fnr,t=@fnr]
 ! test shift
 l200n/l=12:21/i=-19:-9 $2[x=@shf:2,t=@shf:-2]
  !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_irr[x=@shf:2,t=@shf:-2]
- 14-SEP 23      / 12:  104.249  105.249  106.249     ....  101.249  102.249  102.349  104.249  105.249  106.249     ....
- 15-JAN-0002 23 / 13:  134.249  135.249  136.249     ....  131.249  132.249  132.349  134.249  135.249  136.249     ....
+ 14-SEP 23      / 12:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
+ 15-JAN-0002 23 / 13:  134.249  135.249  136.249     ....  131.249     ....  132.349  134.249  135.249  136.249     ....
  14-FEB-0002 14 / 14:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 16-MAR-0002 05 / 15:   14.000   15.000   16.000     ....   11.000   12.000   12.100   14.000   15.000   16.000     ....
- 15-APR-0002 17 / 16:   45.000   46.000   47.000     ....   42.000   43.000   43.100   45.000   46.000   47.000     ....
- 15-MAY-0002 17 / 17:   73.249   74.249   75.249     ....   70.249   71.249   71.349   73.249   74.249   75.249     ....
- 15-SEP-0002 05 / 18:  104.249  105.249  106.249     ....  101.249  102.249  102.349  104.249  105.249  106.249     ....
- 16-JAN-0003 05 / 19:  134.249  135.249  136.249     ....  131.249  132.249  132.349  134.249  135.249  136.249     ....
+ 16-MAR-0002 05 / 15:   14.000   15.000   16.000     ....   11.000     ....   12.100   14.000   15.000   16.000     ....
+ 15-APR-0002 17 / 16:   45.000   46.000   47.000     ....   42.000     ....   43.100   45.000   46.000   47.000     ....
+ 15-MAY-0002 17 / 17:   73.249   74.249   75.249     ....   70.249     ....   71.349   73.249   74.249   75.249     ....
+ 15-SEP-0002 05 / 18:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
+ 16-JAN-0003 05 / 19:  134.249  135.249  136.249     ....  131.249     ....  132.349  134.249  135.249  136.249     ....
  14-FEB-0003 20 / 20:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 16-MAR-0003 11 / 21:   14.000   15.000   16.000     ....   11.000   12.000   12.100   14.000   15.000   16.000     ....
+ 16-MAR-0003 11 / 21:   14.000   15.000   16.000     ....   11.000     ....   12.100   14.000   15.000   16.000     ....
  
 ! test strides
 l200n/order=x $2[l=1,i=0:14]
@@ -40546,37 +40548,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
  !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:2]
  dealloc  dynamic grid GFJ4            XIRREG_SUBNORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- allocate dynamic grid (G018)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
  strip regrid on X: V2D_IRR --> (G018)           @XACT
- found   V2D_IRR  M:146 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_IRR  M:147 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ found   V2D_IRR  M:150 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  V2D_IRR  M:151 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
              ....  12.0000  14.0000  16.0000  11.0000  12.1000  15.0000     ....
 l200n/order=x $2[l=1,i=0:14:7]
  !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:7]
         ............
 set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  !-> list/width=200/nohead v2d_irr[i=1,l=1:15:2]
- dealloc  dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- -DELETE V2D_IRR  M:148 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX015)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ -DELETE V2D_IRR  M:152 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
  strip regrid on T: V2D_IRR --> (G018)           @XACT
  strip moduloing V2D_IRR on T axis:     1    15 dset:   1
  rdstride V2D_IRR  C:  9 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
  doing moduloing V2D_IRR on T axis:     1     5 dset:   1
- -DELETE V2D_IRR  M:148 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- nulrgd  V2D_IRR  M:148 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_IRR  M:149 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
+ -DELETE V2D_IRR  M:152 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
+ nulrgd  V2D_IRR  M:152 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ -DELETE V2D_IRR  M:153 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
  16-JAN-0000 / 1:   11.000
  15-MAR-0000 / 2:   70.249
  15-MAY-0000 / 3:  131.249
@@ -40744,7 +40746,7 @@ LEV_TEXT = "(0,80,3),(56),DARK(56)"
 LEV_MIN = "0"
 LEV_MAX = "81"
 LEV_NUM = "28"
-LEV_DEL = "3"
+LEV_DEL = "irregular"
  
 contour/over/i=1:15/j=1:5/lev=50 i*j
 sho sym lev*
@@ -40810,7 +40812,7 @@ show modes
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         months
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         months
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -41595,10 +41597,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G005)
     GRID (G005)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -41901,8 +41903,8 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is XABSTRACT
  Last successful data access was on grid XABSTRACT
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -42194,7 +42196,6 @@ set view ul
 plot eofti[i=1,k=1], eofti[i=2,k=1], eofti[i=3,k=1]
 list eofti[l=1:5,i=1,k=1]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=AUG-1982:JAN-1983
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -42210,7 +42211,6 @@ set view ur
 plot eofti[i=1,k=5], eofti[i=2,k=5], eofti[i=3,k=5]
 list eofti[l=1:5,i=1,k=5]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=AUG-1982:JAN-1983
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -42227,7 +42227,6 @@ set view ll
 plot eofti[i=1,k=8], eofti[i=2,k=8], eofti[i=3,k=8]
 list eofti[l=1:5,i=1,k=8]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=AUG-1982:JAN-1983
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -42243,7 +42242,6 @@ set view lr
 plot eofti[i=1,k=4], eofti[i=2,k=10], eofti[i=3,k=10]
 list eofti[l=1:5,i=1,k=10]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=AUG-1982:JAN-1983
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -42369,10 +42367,10 @@ cancel axis long
 use confuse_xz.nc
 sh grid r
     GRID GAP1
- name       axis              # pts   start                end
- HORIZ     X                   10 r   1                    10
+ name       axis              # pts   start                end                 subset
+ HORIZ     X                   10 r   1                    10                  full
  normal    Y
- XXX       Z                    6 r   -4                   1
+ XXX       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -42381,10 +42379,10 @@ can data 1
 use confuse_yz.nc
 sh grid s
     GRID GBA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- THE       Y                    8 r   10                   80
- XXX       Z                    6 r   -4                   1
+ THE       Y                    8 r   10                   80                  full
+ XXX       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -42393,11 +42391,11 @@ can data 1
 use confuse_yt.nc
 sh grid u
     GRID GGY1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- THE       Y                    8 r   10                   80
+ THE       Y                    8 r   10                   80                  full
  normal    Z
- LONG      T                    7 r   1                    13
+ LONG      T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
@@ -42405,11 +42403,11 @@ can data 1
 use confuse_yzt.nc
 sh grid v
     GRID GFA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- THE       Y                    8 r   10                   80
- XXX       Z                    6 r   -4                   1
- LONG      T                    7 r   1                    13
+ THE       Y                    8 r   10                   80                  full
+ XXX       Z                    6 r   -4                   1                   full
+ LONG      T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
@@ -42465,10 +42463,10 @@ cancel axis ddd
 use confuse_xz.nc
 sh grid r
     GRID GAP1
- name       axis              # pts   start                end
- AAA       X                   10 r   1                    10
+ name       axis              # pts   start                end                 subset
+ AAA       X                   10 r   1                    10                  full
  normal    Y
- CCC       Z                    6 r   -4                   1
+ CCC       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -42477,10 +42475,10 @@ can data 1
 use confuse_yz.nc
 sh grid s
     GRID GBA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- BBB       Y                    8 r   10                   80
- CCC       Z                    6 r   -4                   1
+ BBB       Y                    8 r   10                   80                  full
+ CCC       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -42489,11 +42487,11 @@ can data 1
 use confuse_yt.nc
 sh grid u
     GRID GGY1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- BBB       Y                    8 r   10                   80
+ BBB       Y                    8 r   10                   80                  full
  normal    Z
- DDD       T                    7 r   1                    13
+ DDD       T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
@@ -42501,11 +42499,11 @@ can data 1
 use confuse_yzt.nc
 sh grid v
     GRID GFA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- BBB       Y                    8 r   10                   80
- CCC       Z                    6 r   -4                   1
- DDD       T                    7 r   1                    13
+ BBB       Y                    8 r   10                   80                  full
+ CCC       Z                    6 r   -4                   1                   full
+ DDD       T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
@@ -42578,89 +42576,110 @@ GO bn_xml_output.jnl
 ! Illustrate the SHOW commands with /XML xml-style output
 ! V5.80 11/04 new tests for SHOW VAR/XML; global variables.
  
-! 22-Feb-2005 use SHO AXIS/XML `temp,return=taxis` instead
+! 22-Feb-2005 USE SHO AXIS/XML `temp,return=taxis` instead
 ! of naming the axes; other axes of the same name (e.g. TIME)
 ! may have been defined in other benchmark scrips.
  
-USE gtsa056_2.cdf
+USE levitus_climatology.cdf
  
 SHO DATA/XML
 <datasets>
-<dataset name="./gtsa056_2.cdf" default="true">
+<dataset name="./levitus_climatology.cdf" default="true">
 <title> </title>
 <var name="TEMP" />
-<var name="U" />
-<var name="W" />
-<var name="TAUX" />
 </dataset>
 </datasets>
  
-SHO DATA/VAR/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="true">
-<title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
-   <value><![CDATA[deg. C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DT1">
+SHO GRID/XML `temp,return=grid`
+ !-> SHO GRID/XML GG2
+<grid name="GG2">
 <axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
+<xaxis>XAXLEVITR1_160</xaxis>
+<yaxis>YAXLEVITR1_90</yaxis>
+<zaxis>ZAXLEVITR1_1</zaxis>
 </axes>
 </grid>
-</var>
-<var name="U">
+ 
+SHO AXIS/XML `temp,return=zaxis`
+ !-> SHO AXIS/XML ZAXLEVITR1_1
+<axes>
+<axis name="ZAXLEVITR1_1">
+<attribute name="direction" type="char">
+   <value><![CDATA[K]]></value>
+</attribute>
 <attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
+   <value><![CDATA[METERS]]></value>
 </attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL VELOCITY]]></value>
+<attribute name="length" type="short">
+   <value>1</value>
 </attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
+<attribute name="start" type="double">
+   <value>0</value>
 </attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
+<attribute name="end" type="double">
+   <value>0</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+<attribute name="positive" type="char">
+   <value><![CDATA[down]]></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>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="PS3DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[ZAXLEVITR1_1]]></value>
+</attribute>
+</axis>
 </axes>
-</grid>
-</var>
-<var name="W">
+SHO AXIS/XML `temp,return=taxis`
+ !-> SHO AXIS/XML NORMAL
+ 
+can dat/all
+ 
+! make some short files
+let/units="meters" myvar = 7
+save/clobber/file=a.nc myvar
+ 
+LET ddat = ZSEQUENCE({1126,1136,1146,1156,1166})
+save/clobber/file=b.nc ddat
+can var/all
+go bn_reset
+cancel mode verify
+ 
+USE a.nc
+USE b.nc
+ 
+! Define a dataset variable
+! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
+LET/D=a temp_av = ddat[d=2,X=@AVE]
+ 
+SHOW DATA/XML
+<datasets>
+<dataset name="./a.nc" default="false">
+<title> </title>
+<var name="MYVAR" />
+<var name="temp_av" />
+</dataset>
+<dataset name="./b.nc" default="true">
+<title> </title>
+<var name="DDAT" />
+</dataset>
+</datasets>
+SHO DATA/VAR/XML 1
+<datasets>
+<dataset name="./a.nc" default="false">
+<title> </title>
+<var name="MYVAR">
 <attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
+   <value><![CDATA[meters]]></value>
 </attribute>
 <attribute name="long_name" type="char">
-   <value><![CDATA[VERTICAL VELOCITY]]></value>
+   <value><![CDATA[7]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
    <value>-1.E+34</value>
@@ -42672,23 +42691,16 @@ SHO DATA/VAR/XML
    <value><![CDATA[FLOAT]]></value>
 </attribute>
 <attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="PS3DW1">
+<grid name="GSI1">
 <axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZW</zaxis>
-<taxis>TIME6</taxis>
 </axes>
 </grid>
 </var>
-<var name="TAUX">
-<attribute name="units" type="char">
-   <value><![CDATA[dynes/cm**2]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL WIND STRESS]]></value>
+<var name="temp_av">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[D=2,X=@AVE]]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
    <value>-1.E+34</value>
@@ -42699,172 +42711,33 @@ SHO DATA/VAR/XML
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+<attribute name="long_name" type="char">
+   <value><![CDATA[DDAT[D=2,X=@AVE]]]></value>
 </attribute>
-<grid name="PS2DU1">
+<grid name="GRR1">
 <axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<taxis>TIME6</taxis>
+<zaxis>ZAX1_5</zaxis>
 </axes>
 </grid>
 </var>
 </dataset>
 </datasets>
 <axes>
-<axis name="PSXU">
-<attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LONGITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>131</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>290</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSXU]]></value>
-</attribute>
-</axis>
-<axis name="PSYT">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-28.83607</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>48.56797</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYT]]></value>
-</attribute>
-</axis>
-<axis name="PSYU">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-27.67214</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>50.00005</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYU_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYU]]></value>
-</attribute>
-</axis>
-<axis name="PSZT">
+<axis name="ZAX1_5">
 <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>27</value>
-</attribute>
-<attribute name="start" type="double">
    <value>5</value>
 </attribute>
-<attribute name="end" type="double">
-   <value>3824</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-<axis name="PSZW">
-<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>27</value>
-</attribute>
 <attribute name="start" type="double">
-   <value>10</value>
+   <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>4149</value>
-</attribute>
-<attribute name="positive" type="char">
-   <value><![CDATA[down]]></value>
+   <value>5</value>
 </attribute>
 <attribute name="point_spacing" type="char">
-   <value>uneven</value>
+   <value><![CDATA[even]]></value>
 </attribute>
 <attribute name="modulo" type="char">
    <value>no</value>
@@ -42872,903 +42745,170 @@ SHO DATA/VAR/XML
 <attribute name="infile_datatype" type="char">
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZW_bnds]]></value>
+<attribute name="axis" type="char">
+   <value><![CDATA[Z]]></value>
 </attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZW]]></value>
-</attribute>
-</axis>
-<axis name="PSXT1">
-<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>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>130.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>289.5</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-</axis>
-<axis name="TIME6">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>168</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>1983-06-07 13: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[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
+   <value><![CDATA[ZAX1_5]]></value>
 </attribute>
 </axis>
 </axes>
  
-SHO GRID/XML ps3du1
-<grid name="PS3DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
+CAN DAT/ALL
  
-SHO AXIS/XML `temp,return=xaxis`
- !-> SHO AXIS/XML PSXT1
-<axes>
-<axis name="PSXT1">
-<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>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>130.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>289.5</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=yaxis`
- !-> SHO AXIS/XML PSYT
-<axes>
-<axis name="PSYT">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-28.83607</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>48.56797</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYT]]></value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=zaxis`
- !-> SHO AXIS/XML PSZT
-<axes>
-<axis name="PSZT">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>3824</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=taxis`
- !-> SHO AXIS/XML TIME6
-<axes>
-<axis name="TIME6">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>168</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>1983-06-07 13: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[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-</axis>
-</axes>
+! tests of SHOW VAR/XML for global variables.
+CAN DATA/ALL
+CAN VAR/ALL
+ 
+USE a
+USE b
  
 ! Define a dataset variable
-! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
-LET/D=gtsa056_2 temp_180 = temp[X=160E:160W at AVE]
+LET/D=b temp_20 ddat[x=1:2 at SUM]
  
-USE coads_climatology
+! Define a global variable
+LET t30 = ddat[x=1:3 at SUM]
  
-SHOW DATA/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="false">
-<title> </title>
-<var name="TEMP" />
-<var name="U" />
-<var name="W" />
-<var name="TAUX" />
-<var name="TEMP_180" />
-</dataset>
-<dataset name="./coads_climatology.cdf" default="true">
-<title> </title>
-<var name="SST" />
-</dataset>
-</datasets>
-SHO DATA/VAR/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="false">
-<title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
-   <value><![CDATA[deg. C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
+! Another variable, setting title, units, bad flag.
+LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral" salty = temp[x=@iin]
+ 
+! Define a constant
+LET pi = 3.14
+ 
+! Another variable, irrelevant in the current context
+LET my_a = a*12
+ 
+! This lists all the variables except my_a
+ 
+SHO VAR/XML
+<global>
+<var name="TEMP_20[D=./b.nc]">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[X=1:2 at SUM]]]></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[FLOAT]]></value>
-</attribute>
-<grid name="PS3DT1">
+<grid name="GRR1">
 <axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
+<zaxis>ZAX1_5</zaxis>
 </axes>
 </grid>
 </var>
-<var name="U">
-<attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL VELOCITY]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
+<var name="PI">
+<attribute name="definition" type="char">
+   <value><![CDATA[3.14]]></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[FLOAT]]></value>
-</attribute>
-<grid name="PS3DU1">
+<grid name="ABSTRACT">
 <axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
 </axes>
 </grid>
 </var>
-<var name="W">
-<attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[VERTICAL VELOCITY]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
+<var name="T30">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[X=1:3 at SUM]]]></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[FLOAT]]></value>
-</attribute>
-<grid name="PS3DW1">
+<grid name="GRR1">
 <axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZW</zaxis>
-<taxis>TIME6</taxis>
+<zaxis>ZAX1_5</zaxis>
 </axes>
 </grid>
 </var>
-<var name="TAUX">
-<attribute name="units" type="char">
-   <value><![CDATA[dynes/cm**2]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL WIND STRESS]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
+</global>
+ 
+! Now change datasets, so my_a has a context, but t30
+! does not. temp_20 is listed becaUSE it is defined on a dataset
+ 
+SET DATA a
+SHO VAR/XML
+<global>
+<var name="TEMP_20[D=./b.nc]">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[X=1:2 at SUM]]]></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[FLOAT]]></value>
-</attribute>
-<grid name="PS2DU1">
+<grid name="GRR1">
 <axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<taxis>TIME6</taxis>
+<zaxis>ZAX1_5</zaxis>
 </axes>
 </grid>
 </var>
-<var name="temp_180">
+<var name="PI">
 <attribute name="definition" type="char">
-   <value><![CDATA[TEMP[X=160E:160W at AVE]]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
+   <value><![CDATA[3.14]]></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="long_name" type="char">
-   <value><![CDATA[TEMP[X=160E:160W at AVE]]]></value>
-</attribute>
-<grid name="PS3DT1">
+<grid name="ABSTRACT">
 <axes>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
 </axes>
 </grid>
 </var>
-</dataset>
-</datasets>
-<axes>
-<axis name="PSXU">
-<attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LONGITUDE]]></value>
+</global>
+ 
+! Change default dataset. Now we should just see pi and my_a
+ 
+CAN DATA b
+SHOW VAR/XML
+<global>
+<var name="PI">
+<attribute name="definition" type="char">
+   <value><![CDATA[3.14]]></value>
 </attribute>
-<attribute name="length" type="short">
-   <value>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>131</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>290</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSXU]]></value>
-</attribute>
-</axis>
-<axis name="PSYT">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-28.83607</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>48.56797</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYT]]></value>
-</attribute>
-</axis>
-<axis name="PSYU">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-27.67214</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>50.00005</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYU_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYU]]></value>
-</attribute>
-</axis>
-<axis name="PSZT">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>3824</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-<axis name="PSZW">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>10</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>4149</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZW_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZW]]></value>
-</attribute>
-</axis>
-<axis name="PSXT1">
-<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>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>130.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>289.5</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-</axis>
-<axis name="TIME6">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>168</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>1983-06-07 13: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[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-</axis>
-</axes>
-<dataset name="./coads_climatology.cdf" default="true">
-<title> </title>
-<var name="SST">
-<attribute name="units" type="char">
-   <value><![CDATA[Deg C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[SEA SURFACE TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME4</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="TIME4">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>3</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>0000-01-16 06:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>0000-03-17 02:58:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
-   <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
-   <value><![CDATA[0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
-   <value>8765.82</value>
-</attribute>
-</axis>
-<axis name="COADSX">
-<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>180</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>21</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>379</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="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSX]]></value>
-</attribute>
-</axis>
-<axis name="COADSY">
-<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>90</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-89</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>89</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[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSY]]></value>
-</attribute>
-</axis>
-</axes>
- 
- 
-! tests of SHOW VAR/XML for global variables.
-CAN DATA/ALL
-CAN VAR/ALL
- 
-USE coads_climatology
-USE gtsa056_2
- 
-! Define a dataset variable
-LET/D=gtsa056_2 temp_20 temp[Z=0:20 at SUM]
- 
-! Define a global variable
-LET t30 = temp[Z=0:30 at SUM]
- 
-! Another variable, setting title, units, bad flag.
-LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral of SALT" salty = salt[Z=@IIN]
- 
-! Define a constant
-LET pi = 3.14
- 
-! Another variable, irrelevant in the current context
-LET my_sst = sst*12
- 
-! This lists all the variables except my_sst
- 
-SHO VAR/XML
-<global>
-<var name="TEMP_20[D=./gtsa056_2.cdf]">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=0:20 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="PI">
-<attribute name="definition" type="char">
-   <value><![CDATA[3.14]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
 <grid name="ABSTRACT">
 <axes>
 </axes>
 </grid>
 </var>
-<var name="T30">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=0:30 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
 </global>
  
-! Now change datasets, so my_sst has a context, but t30
-! does not temp_20 is listed because it is defined on a dataset
- 
-SET DATA coads_climatology
-SHO VAR/XML
-<global>
-<var name="TEMP_20[D=./gtsa056_2.cdf]">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=0:20 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="MY_SST">
-<attribute name="definition" type="char">
-   <value><![CDATA[SST*12]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME4</taxis>
-</axes>
-</grid>
-</var>
-<var name="PI">
-<attribute name="definition" type="char">
-   <value><![CDATA[3.14]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="ABSTRACT">
-<axes>
-</axes>
-</grid>
-</var>
-</global>
+! 8/7/2007
+! new form for output of a var whose definition contains quotes
+CANCEL DATA/ALL
+CANCEL VAR/ALL
  
-! Change default dataset. Now we should just see pi and my_sst
+let tvar = t[gt=month_reg]
+save/clobber/file=a.nc tvar
  
-CAN DATA gtsa056_2
+USE a
+LET t3 = tvar[t="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]
 SHOW VAR/XML
 <global>
-<var name="MY_SST">
-<attribute name="definition" type="char">
-   <value><![CDATA[SST*12]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME4</taxis>
-</axes>
-</grid>
-</var>
-<var name="PI">
+<var name="T3">
 <attribute name="definition" type="char">
-   <value><![CDATA[3.14]]></value>
+   <value><![CDATA[TVAR[T="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]]]></value>
 </attribute>
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="ABSTRACT">
+<grid name="GSI1">
 <axes>
+<taxis>TIME6</taxis>
 </axes>
 </grid>
 </var>
-</global>
- 
-! 8/7/2007
-! new form for output of a var whose definition contains quotes
-CANCEL DATA/ALL
-CANCEL VAR/ALL
- 
-USE coads_climatology
-LET t3 = sst[x=180,y=1,t="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]
-SHOW VAR/XML
-<global>
-<var name="T3">
+<var name="TVAR">
 <attribute name="definition" type="char">
-   <value><![CDATA[SST[X=180,Y=1,T="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]]]></value>
+   <value><![CDATA[T[GT=MONTH_REG]]]></value>
 </attribute>
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="GSQ1">
+<grid name="GSI1">
 <axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
+<taxis>MONTH_REG</taxis>
 </axes>
 </grid>
 </var>
@@ -44414,16 +43554,16 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
 !-> REPEAT: M:300
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:153 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:148 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M:157 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:152 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:300 at ave,y=@ave]
- -DELETE cnst     M:153 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:157 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:153 dset:   1 I:  131  140  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:157 dset:   1 I:  131  140  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -44435,16 +43575,16 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:143 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:141 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M:147 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:144 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:330 at ave,y=@ave]
- -DELETE cnst     M:143 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:147 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:143 dset:   1 I:  131  155  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:147 dset:   1 I:  131  155  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -44456,16 +43596,16 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:130 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M:138 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:133 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:360 at ave,y=@ave]
- -DELETE cnst     M:130 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:138 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:130 dset:   1 I:  131  170  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:138 dset:   1 I:  131  170  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -44916,52 +44056,53 @@ let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
 load a
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
- strip regrid on X: TAUX --> (G022)           @XACT
+ allocate dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
+ strip regrid on X: TAUX --> (G023)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:151 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:146 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
+ nulrgd  TAUX     M:153 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M:141 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
 can mem/all
- -DELETE A        M:146 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:151 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE A        M:141 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M:153 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  
 def grid/like=taux agrid
- dealloc  dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
  getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME6     NORMAL    NORMAL
 set mode diag
 let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
  dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME6     NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
 load a
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- strip regrid on X: TAUX --> (G022)           @XACT
+ allocate dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ strip regrid on X: TAUX --> (G023)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:146 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:151 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
+ nulrgd  TAUX     M:141 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M:153 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
  
 can mem/all
- -DELETE TAUX     M:146 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE A        M:151 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M:141 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE A        M:153 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
 can data/all
- dealloc  dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ canceling dset ./gtsa056_2.cdf
  
 ! Some tests taken from  bn_strides_revs_perms.jnl but with
 ! DEFINE GRID/LIKE= testing permuting and reversing axes
@@ -44990,6 +44131,7 @@ define grid/like=xytvar egrid
  allocate dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
 canc data/all
  dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
  
 ! cache hit from full region cache -- bypass use of strides
@@ -44998,20 +44140,20 @@ use bn_strides
 load var
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M:151 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ reading VAR      M:153 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 LIST VAR[i=2:4:2]
  dealloc  dynamic grid AGRID           XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G014)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:147 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:146 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M:148 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:141 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -45026,19 +44168,19 @@ LIST VAR[i=2:4:2]
  2   / 2:  1222.00  1224.00
  3   / 3:  1232.00  1234.00
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:147 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M:148 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G014)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:146 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:147 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M:141 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:148 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -45053,25 +44195,25 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.00  1214.00
  3   / 2:  1232.00  1234.00
 CANC MEM/ALL
- -DELETE VAR      M:146 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:151 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:141 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:153 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XAX1_4
 LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
- dealloc  dynamic grid (G014)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G014)           @XACT
  strip moduloing VAR on X axis:     1    10 dset:   1
- reading VAR      M:151 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ reading VAR      M:153 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  doing moduloing VAR on X axis:     1     4 dset:   1
- regrid  VAR      M:147 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ regrid  VAR      M:148 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -45086,24 +44228,24 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
  7    / 3:  1113.00
  10   / 4:  1112.00
 cancel axis/modulo XAX1_4
- -DELETE VAR      M:146 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:147 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:151 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:141 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:148 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:153 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G014)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:151 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M:148 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:153 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -45118,19 +44260,19 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.00  1214.00
  3   / 2:  1232.00  1234.00
 LIST VAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M:148 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G014)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:147 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:148 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -45147,24 +44289,24 @@ LIST VAR[i=2:6:2,j=1:5:2]
  
 ! test sub-region selection on strides axis
 let a = bigvar[i=1:40:5]
- dealloc  dynamic grid (G014)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 list/j=1/k=1/l=1 a[i=3:5]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G014)           @XACT
  rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:147 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:151 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M:148 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:153 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -45176,26 +44318,26 @@ list/j=1/k=1/l=1 a[i=3:5]
  11   / 3:  1121.00
  16   / 4:  1126.00
  21   / 5:  1131.00
- -DELETE A        M:146 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:141 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
 list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    2    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: A --> (G001)           @XACT
  eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G014)           @XACT
  rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 74 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:146 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M:139 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M:140 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:141 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ regrid  A        M:152 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -45212,27 +44354,27 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
 ! ****** unequally spaced points on parent axis
  
 cancel mem/all
- -DELETE BIGVAR   M: 74 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:139 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:146 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:147 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:151 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:140 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:141 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:148 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:152 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:153 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G001)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:147 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:151 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ nulrgd  UNE-NVAR M:152 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:153 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -45250,19 +44392,19 @@ set region/i=3:6/j=2:4/k=1:2/l=1
  
 use/order=yx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M:147 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ -DELETE UNE-NVAR M:152 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G001)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:151 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:147 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:152 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45279,23 +44421,24 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1345.00  1347.00  1349.00
  6   / 3:  1363.00  1365.00  1367.00  1369.00
 canc data/all
- -DELETE BIGVAR   M:151 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
 use/order=zyx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G014)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:147 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:151 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M:152 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:153 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45312,8 +44455,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1543.00  1743.00  1943.00
  6   / 3:  1363.00  1563.00  1763.00  1963.00
 canc data/all
- -DELETE BIGVAR   M:147 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M:152 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! now with xytvar
 cancel region
@@ -45322,16 +44466,16 @@ use bn_strides
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G014)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:151 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:147 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
+ nulrgd  XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:152 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -45349,31 +44493,31 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  
 use/order=tyx bn_strides
 show grid xytvar
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- -DELETE XYTVAR   M:151 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
     GRID EGRID
- name       axis              # pts   start                end
- XLON      LONGITUDE           40mr   141E                 180E
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ XLON      LONGITUDE           40mr   141E                 180E                full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  dealloc  dynamic grid EGRID           XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G014)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:147 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:151 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
+ nulrgd  XYTVAR   M:152 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:153 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -45389,8 +44533,9 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.00  5043.00  5045.00  5047.00
  2N   / 1:  5021.00  5023.00  5025.00  5027.00
 canc data/all
- -DELETE XYTVAR   M:147 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:152 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -45398,10 +44543,10 @@ show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
- YLAT      Z (degrees_north)   30 r   1                    30
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
+ YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
  normal    E
  normal    F
@@ -45409,16 +44554,16 @@ show grid xytvar
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G014)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:151 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:147 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
+ nulrgd  XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:152 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -45434,8 +44579,9 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.00  3054.00  5054.00  7054.00
  146   / 3:  1056.00  3056.00  5056.00  7056.00
 canc data/all
- -DELETE XYTVAR   M:151 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
  
 cancel region; set region/l=1
@@ -45444,16 +44590,16 @@ cancel region; set region/l=1
 use/order=yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G014)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
+ nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45468,25 +44614,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.00  1552.00
  5   / 2:  1515.00  1555.00
 canc data/all
- -DELETE MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G014)           @XACT
  strip reversing MIDVAR on Y axis:     2     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    1    5  J:    5    8  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M:147 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45501,23 +44648,24 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.00  1558.00
  5   / 2:  1515.00  1555.00
 canc data/all
- -DELETE MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=tyx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G014)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:147 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ nulrgd  MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45532,26 +44680,27 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.00  5125.00
  5   / 2:  1155.00  5155.00
 canc data/all
- -DELETE MIDVAR   M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 use/order=-t-y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G014)           @XACT
  strip reversing MIDVAR on X axis:     1     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    4    7  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:147 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45566,23 +44715,24 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.00  2775.00
  5   / 2:  6745.00  2745.00
 canc data/all
- -DELETE MIDVAR   M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=txy bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G014)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45597,25 +44747,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.00  5152.00
  5   / 2:  1155.00  5155.00
 canc data/all
- -DELETE MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G014)           @XACT
  strip reversing MIDVAR on Y axis:     2     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    5    8  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M:147 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45630,8 +44781,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.00  2758.00
  5   / 2:  6755.00  2755.00
 canc data/all
- -DELETE MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! DEFINE AXIS can get the axis too long (bug 673)
 GO bn_reset
@@ -45842,7 +44994,7 @@ LEV_TEXT = "C"
 LEV_MIN = "1"
 LEV_MAX = "10.2"
 LEV_NUM = "46"
-LEV_DEL = "0.2"
+LEV_DEL = "irregular"
  
 can sym lev*
 ! Now with /LEV=(min,max,del)
@@ -46619,37 +45771,37 @@ show axis `temp,return=zaxis`
  
 ! unrecognized units
 set axis/units="something" `temp,return=xaxis`
- !-> set axis/units="something" PSXT1
+ !-> set axis/units="something" PSXT
 show axis `temp,return=xaxis`
- !-> show axis PSXT1
+ !-> show axis PSXT
  name       axis              # pts   start                end
- PSXT1     X (something)      160mr   130.5                289.5
+ PSXT      X (something)      160mr   130.5                289.5
    Axis span (to cell edges) = 160 (modulo length = 360)
  
 ! restore lon
 set axis/units=lon `temp,return=xaxis`
- !-> set axis/units=lon PSXT1
+ !-> set axis/units=lon PSXT
 show axis `temp,return=xaxis`
- !-> show axis PSXT1
+ !-> show axis PSXT
  name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
+ PSXT      LONGITUDE          160mr   130.5E               70.5W
    Axis span (to cell edges) = 160 (modulo length = 360)
  
 set axis/units=something `temp,return=xaxis`
- !-> set axis/units=something PSXT1
+ !-> set axis/units=something PSXT
 show axis `temp,return=xaxis`
- !-> show axis PSXT1
+ !-> show axis PSXT
  name       axis              # pts   start                end
- PSXT1     X (something)      160mr   130.5                289.5
+ PSXT      X (something)      160mr   130.5                289.5
    Axis span (to cell edges) = 160 (modulo length = 360)
  
 ! restore lon using word DEG
 set axis/units=deg `temp,return=xaxis`
- !-> set axis/units=deg PSXT1
+ !-> set axis/units=deg PSXT
 show axis `temp,return=xaxis`
- !-> show axis PSXT1
+ !-> show axis PSXT
  name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
+ PSXT      LONGITUDE          160mr   130.5E               70.5W
    Axis span (to cell edges) = 160 (modulo length = 360)
  
 set axis/units=zorro  `temp,r=zaxis`
@@ -46729,11 +45881,11 @@ set axis/units=seconds  `temp,r=yaxis`
  !-> set axis/units=seconds  PSYT
 show grid temp
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
- PSYT      Y (seconds)        100 i   -28.836              48.568
- PSZT      Z (zorro)           27 i-  5                    3824
- TIME11    T (meters)          25 r   22702                26206
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      Y (seconds)        100 i   -28.836              48.568              full
+ PSZT      Z (zorro)           27 i-  5                    3824                full
+ TIME11    T (meters)          25 r   22702                26206               full
  normal    E
  normal    F
  
@@ -48382,11 +47534,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) Ver.6.951
+ LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET (beta/dbg) Ver.6.97
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
  LAB 2  8.000E+00  7.100E+00 0.060    0  SYSTEM  @ASNOAA/PMEL TMAP
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- LAB 3  8.000E+00  7.000E+00 0.060    0  SYSTEM  @AS17-NOV-2015 09:26:42
+ LAB 3  8.000E+00  7.000E+00 0.060    0  SYSTEM  @AS11-MAY-2016 16:12:13
  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
@@ -48396,7 +47548,7 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB 7  4.000E+00  6.330E+00 0.120    0  SYSTEM  @A
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- LAB 8  8.000E+00  6.750E+00 0.073    0  SYSTEM  @ASOPeNDAP URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+ LAB 8  8.000E+00  6.790E+00 0.064    0  SYSTEM  @ASOPeNDAP <NL>URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  
  
@@ -48471,7 +47623,7 @@ LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
 LEV_MIN = "-2.8"
 LEV_MAX = "32"
 LEV_NUM = "50"
-LEV_DEL = "6.8"
+LEV_DEL = "irregular"
  
 set view right
 shade/lev=(-inf),(4,28,0.5)(inf)/key=cont sst[l=1]
@@ -48480,7 +47632,7 @@ LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
 LEV_MIN = "-2.8"
 LEV_MAX = "32"
 LEV_NUM = "50"
-LEV_DEL = "6.8"
+LEV_DEL = "irregular"
  
  
 can view
@@ -48752,9 +47904,9 @@ list/i=1:5 x[gx=sst]
 set view lower; shade sst
 sh grid sst
     GRID GEX1
- name       axis              # pts   start                end
- 'COADSX.ILLEGAL' LONGITUDE    21mr   21E                  61E
- 'COADSY.ILLEGAL' LATITUDE     16 r   35N                  65N
+ name       axis              # pts   start                end                 subset
+ 'COADSX.ILLEGAL' LONGITUDE    21mr   21E                  61E                 full
+ 'COADSY.ILLEGAL' LATITUDE     16 r   35N                  65N                 full
  normal    Z
  normal    T
  normal    E
@@ -49019,11 +48171,11 @@ def ax/t/edge time = {0,1,3}
 let a = t[gt=time]
 show grid/t a
     GRID (G011)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TIME      T                    2 i   0.5                  2
+ TIME      T                    2 i   0.5                  2                   full
  normal    E
  normal    F
  
@@ -49043,11 +48195,11 @@ can mem
 use a.nc
 show grid/t a
     GRID GSI1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TIME7     T                    2 i   0.5                  2
+ TIME7     T                    2 i   0.5                  2                   full
  normal    E
  normal    F
  
@@ -49068,11 +48220,11 @@ GO err580_cartesian_depth.jnl
 use a_cartesian_bug1179.nc
 sh grid temp
     GRID GHU1
- name       axis              # pts   start                end
- GRID_X_T  LONGITUDE            1 r   79E                  79E
- GRID_Y_T  LATITUDE             1 r   0.25S                0.25S
- ZT        DEPTH (m)           10 i-  22.5                 158
- TIME7     TIME                 1mr   15-FEB-1900 03:00    15-FEB-1900 03:00
+ name       axis              # pts   start                end                 subset
+ 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
  normal    E
  normal    F
  
@@ -49663,7 +48815,7 @@ GO bn_long_revision_num.jnl
  
 ! ferret version
 sh sym FERRET_VERSION
-FERRET_VERSION = "6.951"
+FERRET_VERSION = "6.97"
  
 ! history attribute
 let a = 12
@@ -49681,7 +48833,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) version6.951:
+ Commands in Program FERRET (beta/dbg) version6.97:
  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
@@ -49693,8 +48845,8 @@ sho command
       /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
  SET MODE/LAST
  SET MOVI/FILE/COMPRESS/LASER/START
- SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE/LAYERZ
-      /CURVILIN
+ SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
+      /LAYERZ/CURVILIN
  SET GRID/SAVE/RESTORE
  SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
  SET MEMORY/SIZE
@@ -49712,9 +48864,8 @@ sho command
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
-       /CURVILIN
- SHOW COMMANDS/ALL
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+ SHOW COMMANDS/ALL/BRIEF
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
@@ -49739,65 +48890,66 @@ sho command
  CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
  CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
  CANCEL GRID
- CANCEL ATTRIBUT/OUTPUT/DATA
+ CANCEL ATTRIBUT/OUTPUT/DATASET
  CANCEL REDIRECT
  CANCEL ALIAS/ALL
  CANCEL SYMBOL/ALL
  CANCEL NCCACHE
- CONTOUR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/FILL/LINE
-          /NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/COLOR
+ CONTOUR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/FILL
+          /LINE/NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/COLOR
           /NOAXES/PATTERN/SIZE/SPACING/SIGDIG/PEN/HLIMITS/VLIMITS/AXES/HGRATICU
           /VGRATICU/GRATICUL/MODULO
- LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/D/HEADING/NOHEAD/SINGLE/FILE/APPEND/ORDER
-       /FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS/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
- PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/VS/SYMBOL
-       /NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE/NOAXES/STEP
-       /DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG/GRATICUL/NOKEY
-       /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
+ LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/HEADING/NOHEAD/SINGLY/FILE/APPEND
+       /ORDER/FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS
+       /MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
+       /CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
+       /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
+       /OUTTYPE/CURVILIN/LAYERZ
+ 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
+       /GRATICUL/NOKEY/NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
+       /SKIPSYM
  GO/HELP
  HELP
- LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
+ LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/NAME
  DEFINE
  DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
          /DL/DM/DN
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
- DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
  EXIT/COMMAND/LOOP/SCRIPT/PROMPT/PROGRAM/CYCLE/TOPYTHON
  MESSAGE/CONTINUE/QUIET/JOURNAL/ERROR/OUTFILE/APPEND/CLOBBER
- VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/ASPECT/NOLABEL
-         /LENGTH/XSKIP/YSKIP/THICK/XLIMITS/YLIMITS/TITLE/COLOR/NOAXES/NOKEY
-         /FLOWLINE/DENSITY/AXES/PEN/HLIMITS/VLIMITS/HGRATICU/VGRATICU/GRATICUL
-         /KEY/MODULO
+ VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/ASPECT
+         /NOLABEL/LENGTH/XSKIP/YSKIP/THICK/XLIMITS/YLIMITS/TITLE/COLOR/NOAXES
+         /NOKEY/FLOWLINE/DENSITY/AXES/PEN/HLIMITS/VLIMITS/HGRATICU/VGRATICU
+         /GRATICUL/KEY/MODULO
  PPLUS/RESET
  FRAME/FORMAT/FILE/TRANSPAR
  REPEAT/I/J/K/L/M/N/X/Y/Z/T/E/F/ANIMATE/LOOP/RANGE/NAME
- STAT/BRIEF/I/J/K/L/M/N/X/Y/Z/T/E/F/D
- SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/TRIM/LINE
-        /NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/AXES/NOAXES
-        /PATTERN/HGRATICU/VGRATICU/GRATICUL/MODULO/HLIMITS/VLIMITS
+ STAT/BRIEF/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET
+ SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/TRIM
+        /LINE/NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/AXES
+        /NOAXES/PATTERN/HGRATICU/VGRATICU/GRATICUL/MODULO/HLIMITS/VLIMITS
  SPAWN
- USER/OPT1/OPT2/COMMAND/I/J/K/L/X/Y/Z/T/D/FILE/FORMAT
- WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/VIEWPOIN/ZLIMITS/TRANPOSE
-       /NOLABEL/ZSCALE/TITLE
+ USER/OPT1/OPT2/COMMAND/I/J/K/L/X/Y/Z/T/DATASET/FILE/FORMAT
+ WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/VIEWPOIN/ZLIMITS
+       /TRANPOSE/NOLABEL/ZSCALE/TITLE
  QUERY/ALL/FILE/IGNORE
  IF
  ELSE
  ELIF
  ENDIF
- POLYGON/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/COORD_AX
+ POLYGON/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/COORD_AX
           /NOLABEL/LEVELS/LINE/COLOR/PALETTE/XLIMITS/YLIMITS/TITLE/THICKNES
           /NOAXES/PATTERN/FILL/KEY/NOKEY/AXES/HLIMITS/VLIMITS/HLOG/VLOG
           /HGRATICU/VGRATICU/GRATICUL/MODULO
@@ -49819,7 +48971,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "17-Nov-15:09:25"
+WIN_TITLE = "11-May-16:16:10"
  
 set win/title="set the title"
 sho sym win_title
@@ -49837,7 +48989,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title="17-Nov-15:09:25"
+ !-> set win/title="11-May-16:16:10"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -49846,16 +48998,16 @@ set win/title="($session_date):($session_time)"
 ! If so substitute another string.
  
 DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 17-Nov-15
+ !-> DEFINE SYMBOL the_date = 11-May-16
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 09:25
+ !-> DEFINE SYMBOL the_time = 16:10
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="17-Nov-15:09:25"
+ !-> SET WIN/TITLE="11-May-16:16:10"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "17-Nov-15:09:25"
+WIN_TITLE = "11-May-16:16:10"
  
 GO bn_reset
 cancel mode verify
@@ -50348,20 +49500,24 @@ sho data/att
 (XAX_LEV9421_380)      DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        15   F       XAX_LEV9421_380
+                                 orig_file_axname
+                                                 CHAR        15   F       XAX_LEV9421_380
   
 (YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
+                                 orig_file_axname
+                                                 CHAR        9    F       YAX_LEV94
   
 (ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        13   F       ZAXLEVIT191_1
+                                 orig_file_axname
+                                                 CHAR        13   F       ZAXLEVIT191_1
   
 (TIME3)                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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -50383,44 +49539,53 @@ sh data/att gt4d011
   
  PS3DT2                CHAR      axes            CHAR        20   F       PSXT PSYT PSZT TIME1
   
-(PSXT1)                DOUBLE    units           CHAR        12   T       degrees_east
+(PSXT)                 DOUBLE    units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        4    F       PSXT
+                                 orig_file_axname
+                                                 CHAR        4    F       PSXT
   
 (PSYT1)                DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSYTedges
-                                 orig_file_axnameCHAR        4    F       PSYT
+                                 orig_file_axname
+                                                 CHAR        4    F       PSYT
   
 (PSYTedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSYTedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYTedges
   
 (PSZT1)                DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSZTedges
-                                 orig_file_axnameCHAR        4    F       PSZT
+                                 orig_file_axname
+                                                 CHAR        4    F       PSZT
   
 (PSZTedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSZTedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSZTedges
   
 (TIME11)               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_axnameCHAR        5    F       TIME1
+                                 orig_file_axname
+                                                 CHAR        5    F       TIME1
   
 (PSXT91_108)           DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        10   F       PSXT91_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXT91_108
   
 (PSYT35_56)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYT35_56
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT35_56
   
 (PSZT1_10)             DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        8    F       PSZT1_10
+                                 orig_file_axname
+                                                 CHAR        8    F       PSZT1_10
   
  TEMP                  FLOAT     parent_grid     CHAR        6    F       PS3DT2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -50433,7 +49598,8 @@ sh data/att gt4d011
   
 (PSYT35_55)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYT35_55
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT35_55
   
  SALT                  FLOAT     parent_grid     CHAR        6    F       PS3DT2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -50448,24 +49614,29 @@ sh data/att gt4d011
   
 (PSXU)                 DOUBLE    units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        4    F       PSXU
+                                 orig_file_axname
+                                                 CHAR        4    F       PSXU
   
 (PSYU)                 DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSYUedges
-                                 orig_file_axnameCHAR        4    F       PSYU
+                                 orig_file_axname
+                                                 CHAR        4    F       PSYU
   
 (PSYUedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSYUedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYUedges
   
 (PSXU91_108)           DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        10   F       PSXU91_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXU91_108
   
 (PSYU35_55)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYU35_55
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYU35_55
   
  U                     FLOAT     parent_grid     CHAR        6    F       PS3DU2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -50491,19 +49662,23 @@ sh data/att gt4d011
                                  positive        CHAR        4    T       down
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSZWedges
-                                 orig_file_axnameCHAR        4    F       PSZW
+                                 orig_file_axname
+                                                 CHAR        4    F       PSZW
   
 (PSZWedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSZWedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSZWedges
   
 (PSYT36_55)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYT36_55
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT36_55
   
 (PSZW1_10)             DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        8    F       PSZW1_10
+                                 orig_file_axname
+                                                 CHAR        8    F       PSZW1_10
   
  W                     FLOAT     parent_grid     CHAR        6    F       PS3DW2
                                  slab_min_index  INT         4    F       91 36 1 0
@@ -50536,7 +49711,8 @@ sh data/att gt4d011
   
 (PSYU35_56)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYU35_56
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYU35_56
   
  PSI                   FLOAT     parent_grid     CHAR        6    F       PS2DU2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -50786,7 +49962,7 @@ list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
              SUBSET   : 21 points (X)
  1    /  1:"grid_definition"
- 2    /  2:"PSXT1"          
+ 2    /  2:"PSXT"           
  3    /  3:"PSYT1"          
  4    /  4:"PSYTedges"      
  5    /  5:"PSZT1"          
@@ -50991,11 +50167,14 @@ sh data/att
   
  dnodata               DOUBLE
   
-(i)                    INT       orig_file_axnameCHAR        1    F       i
+(i)                    INT       orig_file_axname
+                                                 CHAR        1    F       i
   
-(j)                    FLOAT     orig_file_axnameCHAR        1    F       j
+(j)                    FLOAT     orig_file_axname
+                                                 CHAR        1    F       j
   
-(l)                    BYTE      orig_file_axnameCHAR        1    F       l
+(l)                    BYTE      orig_file_axname
+                                                 CHAR        1    F       l
   
  
 let a= broiled.acl
@@ -51115,7 +50294,7 @@ list/d=1 ..dimnames
              FILENAME : gt4d011.cdf
              SUBSET   : 21 points (X)
  1    /  1:"grid_definition"
- 2    /  2:"PSXT1"          
+ 2    /  2:"PSXT"           
  3    /  3:"PSYT1"          
  4    /  4:"PSYTedges"      
  5    /  5:"PSZT1"          
@@ -51479,7 +50658,7 @@ sh att/all temp3
  
 can var temp2
 let/units="degrees C"/title="my new TEMP"/bad=`temp,return=bad` temp2 = temp*2
- !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad=-9.9999998E+33 temp2 = temp*2
+ !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad= -9.999999790214768E+33 temp2 = temp*2
 sh att/all temp2
      attributes for user-defined variables
  temp2.long_name = my new TEMP 
@@ -52046,29 +51225,29 @@ use gt4d011.cdf
  
 let t2 = t*temp
 set att (`t2,return=xaxis`).units = "degrees"
- !-> set att (PSXT1).units = "degrees"
+ !-> set att (PSXT).units = "degrees"
 sh att/all (`t2,return=xaxis`)
- !-> sh att/all (PSXT1)
+ !-> sh att/all (PSXT)
      attributes for dataset: ./gt4d011.cdf
- (PSXT1).units = degrees 
- (PSXT1).point_spacing = even 
- (PSXT1).orig_file_axname = PSXT 
+ (PSXT).units = degrees 
+ (PSXT).point_spacing = even 
+ (PSXT).orig_file_axname = PSXT 
 set att/output (`t2,return=xaxis`).point_spacing
- !-> set att/output (PSXT1).point_spacing
+ !-> set att/output (PSXT).point_spacing
 save/file=a.nc/clobber/L=1 t2
  
 sp echo "bn_attributes.jnl --- 26 attributes of axes" >> all_ncdump.out
  
 sp ncdump -h a.nc >> all_ncdump.out
 define att/out (`t2,return=xaxis`).new_att = "something"
- !-> define att/out (PSXT1).new_att = "something"
+ !-> define att/out (PSXT).new_att = "something"
 save/file=a.nc/clobber/L=1 t2
 sp ncdump -h a.nc >> all_ncdump.out
  
 ! A file variable is used to refer to the axes
  
 set att (`temp,return=xaxis`).units="meters"
- !-> set att (PSXT1).units="meters"
+ !-> set att (PSXT).units="meters"
 set att (`temp,return=yaxis`).units="meters"
  !-> set att (PSYT1).units="meters"
 sho att/all (`temp,return=yaxis`)
@@ -52089,24 +51268,24 @@ cancel mode verify
 def axis/x=1:200:1  x2ax
 sh att/all (x2ax)
      attributes for coordinate axis
- (X2AX).point_spacing = even 
- (X2AX).axis = X 
+ (x2ax).point_spacing = even 
+ (x2ax).axis = X 
 ! SET AXIS command changes attributes
 set axis/modulo x2ax
 sh att/all (x2ax)
      attributes for coordinate axis
- (X2AX).point_spacing = even 
- (X2AX).axis = X 
- (X2AX).modulo =   
+ (x2ax).point_spacing = even 
+ (x2ax).axis = X 
+ (x2ax).modulo =   
  
 ! DEFINE ATTRIBUTE command changes attributes
 define attribute (x2ax).units = "degrees_east"
 sh att/all (x2ax)
      attributes for coordinate axis
- (X2AX).point_spacing = even 
- (X2AX).axis = X 
- (X2AX).modulo =   
- (X2AX).units = degrees_east 
+ (x2ax).point_spacing = even 
+ (x2ax).axis = X 
+ (x2ax).modulo =   
+ (x2ax).units = degrees_east 
  
 ! Define new attribute on an axis.
 ! Save file var, and a user var defined from the file var
@@ -52128,16 +51307,19 @@ sh dat/att
 (XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        14   F       XAXLEVITR1_160
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
                                  new_att         CHAR        9    T       something
   
 (YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        13   F       YAXLEVITR1_90
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
   
 (ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        12   F       ZAXLEVITR1_1
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
                                  _FillValue      FLOAT       1    T       -1.E+10
@@ -52175,9 +51357,9 @@ let axy = reshape (a,rvar)
  
 show att/all (z4ax)
      attributes for coordinate axis
- (Z4AX).point_spacing = even 
- (Z4AX).axis = Z 
- (Z4AX).positive = down 
+ (z4ax).point_spacing = even 
+ (z4ax).axis = Z 
+ (z4ax).positive = down 
 set att (z4ax).positive = "up"
  
 sp echo "bn_attributes.jnl --- 27 attributes of  user-defined axes" >> all_ncdump.out
@@ -52352,20 +51534,24 @@ sho att ocean_atlas_temp
 (XAX_LEV9421_380)      DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        15   F       XAX_LEV9421_380
+                                 orig_file_axname
+                                                 CHAR        15   F       XAX_LEV9421_380
   
 (YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
+                                 orig_file_axname
+                                                 CHAR        9    F       YAX_LEV94
   
 (ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        13   F       ZAXLEVIT191_1
+                                 orig_file_axname
+                                                 CHAR        13   F       ZAXLEVIT191_1
   
 (TIME3)                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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -52393,20 +51579,24 @@ sho att 1
 (XAX_LEV9421_380)      DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        15   F       XAX_LEV9421_380
+                                 orig_file_axname
+                                                 CHAR        15   F       XAX_LEV9421_380
   
 (YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
+                                 orig_file_axname
+                                                 CHAR        9    F       YAX_LEV94
   
 (ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        13   F       ZAXLEVIT191_1
+                                 orig_file_axname
+                                                 CHAR        13   F       ZAXLEVIT191_1
   
 (TIME3)                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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -52425,15 +51615,18 @@ sho att 2
 (XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        14   F       XAXLEVITR1_160
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
   
 (YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        13   F       YAXLEVITR1_90
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
   
 (ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        12   F       ZAXLEVITR1_1
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
                                  _FillValue      FLOAT       1    T       -1.E+10
@@ -52496,7 +51689,7 @@ list/L=1/prec=7 sst[x=100:120 at din,y=10:30 at din]
              LONGITUDE: 100E to 120E (XY integ.)
              LATITUDE : 10N to 30N (XY integ.)
              TIME     : JAN
-          6.008341E+13
+          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
@@ -52963,6 +52156,9 @@ cancel mode verify
 GO err581_subspanx_fill_bug.jnl
 ! err581_subspanx_fill_bug.jnl
 ! bug 900: subspan longitude axis and hlimits gets wrong data
+!
+! Further fixes 5/2016, with other subspan modulo work.
+! Don't list ppl$xlow, ppl$xhigh.
  
 use coads_climatology
 save/clobber/y=0/x=130e:80w/file=err581_subspanx_fill_bug.nc sst
@@ -52972,12 +52168,10 @@ set view left; shade/x=120e:80w sst  ! works correctly
  
 set view right; fill/x=120e:80w sst
  
+! look at axis coord. range 5/9/2016
 sh sym ppl$xmin, ppl$xmax    ! should be 131, 279
-PPL$XMIN = "131.0000"
-PPL$XMAX = "281.0000"
-sh sym ppl$xlow, ppl$xhigh   ! should be 165, 259
-PPL$XHIGH = "165.0000"
-PPL$XLOW = "259.0000"
+PPL$XMIN = "25.00000"
+PPL$XMAX = "279.0000"
  
 sp rm -f err581_subspanx_fill_bug.nc
  
@@ -53323,11 +52517,11 @@ can axis t360
 set data t3file
 sho grid t3
     GRID GCG1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- T360      TIME                61 r   01-JAN-2000 00:00    01-JAN-2005 00:00
+ T360      TIME                61 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
  normal    E
  normal    F
  
@@ -53955,8 +53149,9 @@ list ..dimnames
 list ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : levitus_climatology.cdf
-             X        : 1
-        "TEMP"
+             SUBSET   : 2 points (X)
+ 1   / 1:"TEMP"   
+ 2   / 2:"temp_20"
  
 ! err600_nc_des_order.jnl
 ! Bug 1459 order of multiple descriptor file opening causes netCDF error
@@ -54177,16 +53372,19 @@ sh dat/att
 (COADSX)               DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        6    F       COADSX
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSX
   
 (COADSY)               DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        6    F       COADSY
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSY
   
 (TIME10)               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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -54210,22 +53408,24 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
-(PSXT191_108)          DOUBLE    units           CHAR        12   T       degrees_east
+(PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
                                  modulo          DOUBLE      1    T       360
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        11   F       PSXT191_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXT91_108
   
 (PSYT135_56)           DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
                                  bounds          CHAR        15   T       PSYT135_56_bnds
-                                 orig_file_axnameCHAR        10   F       PSYT135_56
+                                 orig_file_axname
+                                                 CHAR        10   F       PSYT135_56
   
  PSYT135_56_bnds       DOUBLE
   
@@ -54235,7 +53435,8 @@ sho dat/att
                                  axis            CHAR        1    T       Z
                                  standard_name   CHAR        5    F       depth
                                  bounds          CHAR        14   T       PSZT11_10_bnds
-                                 orig_file_axnameCHAR        9    F       PSZT11_10
+                                 orig_file_axname
+                                                 CHAR        9    F       PSZT11_10
   
  PSZT11_10_bnds        DOUBLE
   
@@ -54243,7 +53444,8 @@ sho dat/att
                                  time_origin     CHAR        20   T       14-JAN-1980 14:00:00
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME11
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME11
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -54255,22 +53457,24 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
-(PSXT191_108)          DOUBLE    units           CHAR        12   T       degrees_east
+(PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
                                  modulo          DOUBLE      1    T       360
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        11   F       PSXT191_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXT91_108
   
 (PSYT135_56)           DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
                                  bounds          CHAR        15   T       PSYT135_56_bnds
-                                 orig_file_axnameCHAR        10   F       PSYT135_56
+                                 orig_file_axname
+                                                 CHAR        10   F       PSYT135_56
   
  PSYT135_56_bnds       DOUBLE
   
@@ -54280,7 +53484,8 @@ sho dat/att
                                  axis            CHAR        1    T       Z
                                  standard_name   CHAR        5    F       depth
                                  bounds          CHAR        14   T       PSZT11_10_bnds
-                                 orig_file_axnameCHAR        9    F       PSZT11_10
+                                 orig_file_axname
+                                                 CHAR        9    F       PSZT11_10
   
  PSZT11_10_bnds        DOUBLE
   
@@ -54288,7 +53493,8 @@ sho dat/att
                                  time_origin     CHAR        20   T       14-JAN-1980 14:00:00
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME11
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME11
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -54517,17 +53723,17 @@ use coads_climatology
 set axis/stride=2/offset=1 `sst, return=xaxis`
  !-> set axis/stride=2/offset=1 COADSX
 show axis `sst,return=xaxis`
- !-> show axis (AX047)
+ !-> show axis (AX052)
  name       axis              # pts   start                end
- (AX047)   LONGITUDE           90mr   23E                  19E(379)
+ (AX052)   LONGITUDE           90mr   23E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 !can't stride it again
 set axis/stride=2/offset=1 `sst, return=xaxis`
- !-> set axis/stride=2/offset=1 (AX047)
+ !-> set axis/stride=2/offset=1 (AX052)
 show axis `sst,return=xaxis`
- !-> show axis (AX047)
+ !-> show axis (AX052)
  name       axis              # pts   start                end
- (AX047)   LONGITUDE           90mr   23E                  19E(379)
+ (AX052)   LONGITUDE           90mr   23E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 cancel data/all
  
@@ -54576,7 +53782,7 @@ list sst[i=11:15,j=50,k=1,l=50]
  
 ! --- after cancel striding
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX042)
+ !-> cancel axis/stride (AX047)
 list sst[i=21:30,j=50,k=1,l=50]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -54627,9 +53833,9 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX049)                         use count:   1
-    AXIS (AX047)                         use count:  13
-    AXIS (AX020)                         use count:   1
+    AXIS (AX054)                         use count:   1
+    AXIS (AX052)                         use count:  13
+    AXIS (AX009)                         use count:   1
 cancel data/all
  
 !.............7. cancel stride on a non-strided axis
@@ -54647,24 +53853,24 @@ use coads_climatology
 set axis/stride=6/offset=5 `sst,return=xaxis`
  !-> set axis/stride=6/offset=5 COADSX
 show axis `sst,return=xaxis`
- !-> show axis (AX009)
+ !-> show axis (AX018)
  name       axis              # pts   start                end
- (AX009)   LONGITUDE           30mr   31E                  19E(379)
+ (AX018)   LONGITUDE           30mr   31E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX009)
+ !-> cancel axis/stride (AX018)
  
 !--- 8.2 stride value is not an integer factor of the axis length
 ! warning: it may lose modulo property
 set axis/stride=7/offset=5 `sst,return=xaxis`
  !-> set axis/stride=7/offset=5 COADSX
 show axis `sst,return=xaxis`
- !-> show axis (AX042)
+ !-> show axis (AX047)
  name       axis              # pts   start                end
- (AX042)   LONGITUDE           25 r   31E                  7E(367)
+ (AX047)   LONGITUDE           25 r   31E                  7E(367)
    Axis span (to cell edges) = 350
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX042)
+ !-> cancel axis/stride (AX047)
 cancel data/all
  
 ! --- 8.3 testing strided modulo axis
@@ -54673,7 +53879,7 @@ set axis/stride=2/offset=1 `sst,return=xaxis`
  !-> set axis/stride=2/offset=1 COADSX
 shade/x=-180:180/y=-30:70/L=2 sst
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX042)
+ !-> cancel axis/stride (AX047)
 cancel data/all
  
 !.............9. two datasets share the same grid
@@ -54768,9 +53974,9 @@ show data/all
 set axis/stride=5 `sst,return=yaxis`
  !-> set axis/stride=5 COADSX
 show axis `sst,return=yaxis`
- !-> show axis (AX049)
+ !-> show axis (AX054)
  name       axis              # pts   start                end
- (AX049)   LONGITUDE           36mr   21E                  11E(371)
+ (AX054)   LONGITUDE           36mr   21E                  11E(371)
    Axis span (to cell edges) = 360 (modulo length = axis span)
  
 can data/all
@@ -54871,19 +54077,19 @@ set axis/stride=2 `sst, return=taxis`
  !-> set axis/stride=2 TIME10
  
 show axis `sst,return=xaxis`
- !-> show axis (AX051)
+ !-> show axis (AX056)
  name       axis              # pts   start                end
- (AX051)   LONGITUDE           90mr   21E                  17E(377)
+ (AX056)   LONGITUDE           90mr   21E                  17E(377)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 show axis `sst,return=yaxis`
- !-> show axis (AX009)
+ !-> show axis (AX018)
  name       axis              # pts   start                end
- (AX009)   LATITUDE            45 r   89S                  87N
+ (AX018)   LATITUDE            45 r   89S                  87N
    Axis span (to cell edges) = 180
 show axis `sst,return=taxis`
- !-> show axis (AX048)
+ !-> show axis (AX053)
  name       axis              # pts   start                end
- (AX048)   TIME                 2 r   16-JAN-0000 06:00    17-MAR-0000 02:58
+ (AX053)   TIME                 2 r   16-JAN-0000 06:00    17-MAR-0000 02:58
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 2921.94
  
@@ -54958,11 +54164,11 @@ GO bn_return_xmod_tmod.jnl
 use ocean_atlas_temp
 sh grid temp
     GRID GBS1
- name       axis              # pts   start                end
- XAX_LEV9421_380 LONGITUDE    360mr   20.5E                19.5E(379.5)
- YAX_LEV94 LATITUDE           180 r   89.5S                89.5N
- ZAXLEVIT191_1 DEPTH (m)        1 r-  0                    0
- TIME3     TIME                 2mr   16-JAN 06:00         15-FEB 16:29
+ name       axis              # pts   start                end                 subset
+ 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
  normal    E
  normal    F
 sh axis XAX_LEV9421_380
@@ -55009,11 +54215,11 @@ say `a,return=xmod`
 use string4d
 sh grid axy
     GRID GMS2
- name       axis              # pts   start                end
- X2AX1     X                    2mr   1                    2
- Y3AX      Y                    3 r   1                    3
- Z4AX      Z                    4 r   1                    4
- T2AX1     T                    2 r   1                    2
+ name       axis              # pts   start                end                 subset
+ X2AX1     X                    2mr   1                    2                   full
+ Y3AX      Y                    3 r   1                    3                   full
+ Z4AX      Z                    4 r   1                    4                   full
+ T2AX1     T                    2 r   1                    2                   full
  normal    E
  normal    F
 show axis x2ax
@@ -55124,20 +54330,20 @@ GO err601_irregular_axis.jnl
 USE z_wide_variation.nc
 SHOW GRID/Z atmos
     GRID GOR1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
- ALTITUDE  Z (Pa)              50 i   6.791595619E-10      1400
- TIME11    TIME                 1mr   01-JAN 04:00         01-JAN 04:00
+ ALTITUDE  Z (Pa)              50 i   6.791595619E-10      1400                full
+ TIME11    TIME                 1mr   01-JAN 04:00         01-JAN 04:00        full
  normal    E
  normal    F
  
        K     Z                   ZBOX      ZBOXLO
-       1>  6.7915956192266E-10   6.885E-10  3.3490923923019E-10
-       2>  0.00000000136766      1.037E-09  0.00000000102341
-       3>  0.000000002754131     2.089E-09  0.000000002060896
-       4>  0.000000005546143     4.207E-09  0.000000004150137
-       5>  0.00000001116856      8.472E-09  0.000000008357353
+       1>  6.791595619227E-10    6.885E-10  3.349092392302E-10
+       2>  1.367660207308E-09    1.037E-09  1.023409884615E-09
+       3>  2.754131145366E-09    2.089E-09  2.060895676337E-09
+       4>  5.546143100332E-09    4.207E-09  4.150137122849E-09
+       5>  0.00000001116856      8.472E-09  8.357352587751E-09
        6>  0.00000002249072      1.706E-08  0.00000001682964
        7>  0.00000004529075      3.436E-08  0.00000003389074
        8>  0.00000009120437      6.919E-08  0.00000006824756
@@ -55334,6 +54540,9 @@ list var[gt=month_reg at MODNGD], var[gt=month_reg at MODNBD], var[gt=month_reg at MODNGD
              TIME: JAN to DEC
              LONGITUDE: 139.5E
              LATITUDE: 0.833N
+Internal overflow expressing 500000.0 Mwords as words (1783793664) 
+Unable to allocate the requested 500000.0 Mwords of memory.
+Memory remaining at 0.2 Mwords.
              DEPTH (m): 5
  Column  1: VAR[G=730 hour on T at MODNGD] is IF TEMP GT 29.5 THEN TEMP (# of points)(regrid: 730 hour on T at MODNGD)
  Column  2: VAR[G=730 hour on T at MODNBD] is IF TEMP GT 29.5 THEN TEMP (# of points)(regrid: 730 hour on T at MODNBD)
@@ -55574,9 +54783,6 @@ LIST/X=179:183/Y=40/L=3 sst
              VARIABLE : 3*MY_SST
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (LONGITUDE)
-Internal overflow expressing 500000.0 Mwords as words (1783793664) 
-Unable to allocate the requested 500000.0 Mwords of memory.
-Memory remaining at 0.2 Mwords.
              LATITUDE : 39N
              TIME     : MAR
                  39N     
@@ -55802,6 +55008,7 @@ SAMPLEYZ(DAT_TO_SAMPLE,YPTS,ZPTS)
 SCAT2DDUPS(coord 1,coord 2,epsilon 1,epsilon 2)
 SCAT2GRID_BIN_XY(XPTS,YPTS,F,XAXPTS,YAXPTS)
 SCAT2GRID_BIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
+SCAT2GRID_BIN_XYZ(XPTS,YPTS,ZPTS,F,XAXPTS,YAXPTS,ZAXPTS)
 SCAT2GRIDGAUSS_XT(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
 SCAT2GRIDGAUSS_XT_V0(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
 SCAT2GRIDGAUSS_XY(XPTS,YPTS,F,XAXPTS,YAXPTS,XSCALE,YSCALE,CUTOFF,0)
@@ -55895,6 +55102,11 @@ SAMPLE_FAST_I(V,Indices)
 SAMPLE_FAST_I_STR(S,Indices)
 SEPARATE_STR(A,Rowsize,FixLongitudes)
 WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
+BXCAT(A,B)
+BXSEQUENCE(A)
+BXSEQUENCE_STR(A)
+BCOMPRESSI(DAT)
+SCAT2GRID_BIN_XYZT(XPTS,YPTS,ZPTS,TPTS,F,XAXPTS,YAXPTS,ZAXPTS,TAXPTS)
 ADD_9(A,B,C,D,E,F,G,H,I)
 APPENDE(ENS,VAR)
 AVET(A)
@@ -55905,7 +55117,6 @@ FFT_AMP(A)
 FFTA_SAMPLE(A)
 FFT_PHAS(A)
 LENGTH_OF_STRINGS(--)
-LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
 MAXSTRLEN(A)
 PASS_THRU(A)
 PASS_THRU_STRING(A)
@@ -55923,7 +55134,6 @@ STRINGS_AS_ARGS(S1,S2,NCHAR)
 STR_MISSING(MASK,STR,REPL)
 STUDENT_T_CUTOFF(P,nf)
 SUBTRACT(A,B)
-WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
  
  
 GO bn_reset
@@ -55940,8 +55150,17 @@ GO err607_show_var_xml
 ! Bug 1539 SHOW VAR/XML didnt show all vars.
  
  
-use gt4d011.cdf
-use coads_climatology
+ 
+! make some short files
+let/units="meters" temp = z[z=1:100:5]
+save/clobber/file=a.nc temp
+ 
+LET sst = x[x=1:15] + y[y=1:5] + t[gt=month_irreg]
+save/clobber/file=b.nc sst
+can var/all
+ 
+use a
+use b
  
 let temp_1_regrid=temp[d=1,z=5.00:75.00 at ave]
 let sst_2_regrid=sst[d=2,t="15-Feb":"15-Mar"@ave]
@@ -55965,10 +55184,10 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="(G104)">
+<grid name="GRR1">
 <axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT1</yaxis>
+<xaxis>XAX1_15</xaxis>
+<yaxis>YAX1_5</yaxis>
 </axes>
 </grid>
 </var>
@@ -55979,10 +55198,10 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="GSQ1">
+<grid name="GRR1">
 <axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
+<xaxis>XAX1_15</xaxis>
+<yaxis>YAX1_5</yaxis>
 </axes>
 </grid>
 </var>
@@ -55993,11 +55212,9 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="PS3DT2">
+<grid name="GSI1">
 <axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT1</yaxis>
-<taxis>TIME11</taxis>
+<zaxis>TIME10</zaxis>
 </axes>
 </grid>
 </var>
@@ -56575,7 +55792,7 @@ list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
              SUBSET   : 21 points (X)
  1    /  1:"grid_definition"
- 2    /  2:"PSXT1"          
+ 2    /  2:"PSXT"           
  3    /  3:"PSYT1"          
  4    /  4:"PSYTedges"      
  5    /  5:"PSZT1"          
@@ -57020,7 +56237,7 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB 4  4.000E+00  6.330E+00 0.120    0  SYSTEM  @A
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- LAB 5 -3.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASSST[Y=39N] No Valid Data
+ LAB 5 -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
@@ -57037,11 +56254,11 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB 3  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 4  2.530E+00 -7.900E-01 0.120    0  SYSTEM  @ASSST[Y=9N]
+ LAB 4  1.750E+00 -8.100E-01 0.120    0  SYSTEM  @ASSST[Y=9N]
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 5  5.780E+00 -7.900E-01 0.119    0  SYSTEM  @ASSST[Y=49N] No Valid Data
+ LAB 5  5.370E+00 -8.100E-01 0.120    0  SYSTEM  @ASSST[Y=49N] No Valid Data
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 6  2.530E+00 -1.050E+00 0.120    0  SYSTEM  @ASSST[Y=19N]
+ LAB 6  1.750E+00 -1.060E+00 0.120    0  SYSTEM  @ASSST[Y=19N]
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  
 ! For 2D plots create a new MODE NODATA_LAB which if on, puts
@@ -57278,11 +56495,11 @@ GO err611_wrong_fineaxis_range
 use fine_x_axis
 sh grid sst
     GRID GPY1
- name       axis              # pts   start                end
- LON       LONGITUDE         7200mr   179.97W(-179.97)     179.97E(179.97)
- LAT1800_1800 LATITUDE          1 r   0.025S               0.025S
- ENS       Z (count)            1 r   1                    1
- TIME11    TIME                 1 r   01-APR-2006 00:00    01-APR-2006 00:00
+ name       axis              # pts   start                end                 subset
+ LON       LONGITUDE         7200mr   179.97W(-179.97)     179.97E(179.97)     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
  normal    E
  normal    F
  
@@ -57894,11 +57111,11 @@ GO err611_irregular_axis
 use cc_irreg.nc
 sh grid cc
     GRID GCZ1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TAX3      TIME               142 i   30-DEC-2007 00:00    30-DEC-2007 00:02
+ TAX3      TIME               142 i   30-DEC-2007 00:00    30-DEC-2007 00:02   full
  normal    E
  normal    F
  
@@ -59048,11 +58265,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX1      X                   10 r   1                    10
- YAX1      Y                   20 r   1                    20
- ZAX1      Z                  100 r   1                    100
- TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1      X                   10 r   1                    10                  full
+ YAX1      Y                   20 r   1                    20                  full
+ ZAX1      Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -59144,11 +58361,11 @@ show data/full
  
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX1      X                   10 r   1                    10
- YAX1      Y                   20 r   1                    20
- ZAX1      Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1      X                   10 r   1                    10                  full
+ YAX1      Y                   20 r   1                    20                  full
+ ZAX1      Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
  
@@ -59178,43 +58395,43 @@ cancel variables/all
 set data/format=cdf test_abs
 show grid j1 jkl jkl2 iavejkl ijkl
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1      Y                   20 r   1                    20
+ YAX1      Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1      Y                   20 r   1                    20
- ZAX1      Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX1      Y                   20 r   1                    20                  full
+ ZAX1      Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1      Y                   20 r   1                    20
+ YAX1      Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1      Y                   20 r   1                    20
- ZAX1      Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX1      Y                   20 r   1                    20                  full
+ ZAX1      Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU14
- name       axis              # pts   start                end
- XAX1      X                   10 r   1                    10
- YAX1      Y                   20 r   1                    20
- ZAX1      Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1      X                   10 r   1                    10                  full
+ YAX1      Y                   20 r   1                    20                  full
+ ZAX1      Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -59400,11 +58617,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID PS3DU1
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYU      LATITUDE           100 i   27.672S              50N
- PSZT1     DEPTH (m)           27 i-  5                    3824
- TIME12    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
+ name       axis              # pts   start                end                 subset
+ 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
  normal    E
  normal    F
 cancel data test_fil0
@@ -59646,12 +58863,12 @@ GO bn_keep_axisnames.jnl
 ! axis name when a subset is written.
  
 sh command list
- LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/D/HEADING/NOHEAD/SINGLE/FILE/APPEND/ORDER
-       /FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS/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
+ LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/HEADING/NOHEAD/SINGLY/FILE/APPEND
+       /ORDER/FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS
+       /MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
+       /CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
+       /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
+       /OUTTYPE/CURVILIN/LAYERZ
 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]
@@ -60106,10 +59323,10 @@ SHOW DATA
 ! Ferret uses it as Z only because of the order in which it comes in
 SH GRID am
     GRID GMY1
- name       axis              # pts   start                end
- AAXIS     X (METERS)          10 r   1                    10
- BAXIS     Y (METERS)           5 r   1                    9
- CAXIS     Z (METERS)           5 r   2                    10
+ name       axis              # pts   start                end                 subset
+ AAXIS     X (METERS)          10 r   1                    10                  full
+ BAXIS     Y (METERS)           5 r   1                    9                   full
+ CAXIS     Z (METERS)           5 r   2                    10                  full
  normal    T
  normal    E
  normal    F
@@ -60118,10 +59335,10 @@ SH GRID am
 ! Previously it was not.
 SH GRID ar
     GRID GMY2
- name       axis              # pts   start                end
- AAXIS     X (METERS)          10 r   1                    10
- BAXIS     Y (METERS)           5 r   1                    9
- DAXIS     DEPTH (m)            6 i-  0                    8
+ name       axis              # pts   start                end                 subset
+ AAXIS     X (METERS)          10 r   1                    10                  full
+ BAXIS     Y (METERS)           5 r   1                    9                   full
+ DAXIS     DEPTH (m)            6 i-  0                    8                   full
  normal    T
  normal    E
  normal    F
@@ -60134,20 +59351,20 @@ DEFINE AXIS/Z/UNITS="`am,RETURN=zunits`"/DEPTH ($zname) = Z[GZ=am]
  !-> DEFINE AXIS/Z/UNITS="METERS"/DEPTH CAXIS = Z[GZ=am]
 SH GRID am
     GRID GMY1
- name       axis              # pts   start                end
- AAXIS     X (METERS)          10 r   1                    10
- BAXIS     Y (METERS)           5 r   1                    9
- CAXIS     DEPTH (m)            5 r-  2                    10
+ name       axis              # pts   start                end                 subset
+ AAXIS     X (METERS)          10 r   1                    10                  full
+ BAXIS     Y (METERS)           5 r   1                    9                   full
+ CAXIS     DEPTH (m)            5 r-  2                    10                  full
  normal    T
  normal    E
  normal    F
  
 GO bn_clock_syms
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "59.8629"
-CLOCK_SECS = "102.35"
-CURRENT_DATE = "17-Nov-15"
-CURRENT_TIME = "09:27:16"
+DELTA_CPU = "75.7495"
+CLOCK_SECS = "111.886"
+CURRENT_DATE = "11-May-16"
+CURRENT_TIME = "16:12:51"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60156,8 +59373,8 @@ CURRENT_TIME = "09:27:16"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.057991"
-CLOCK_SECS = "102.547"
+DELTA_CPU = "0.058991"
+CLOCK_SECS = "112.012"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -60171,60 +59388,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.308953
+ !-> DEFINE VARIABLE ten_plots = 0.297955
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0"
-CLOCK_SECS = "103.891"
+DELTA_CPU = "0.001"
+CLOCK_SECS = "113.278"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "103.892"
+CLOCK_SECS = "113.279"
 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.029995
- !-> DEFINE VARIABLE sumcpu =0.029995
+ !-> DEFINE VARIABLE dt = 0.032994
+ !-> DEFINE VARIABLE sumcpu =0.032994
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.031995
- !-> DEFINE VARIABLE sumcpu =0.06199
+ !-> DEFINE VARIABLE dt = 0.031996
+ !-> DEFINE VARIABLE sumcpu =0.06499
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.094985
+ !-> DEFINE VARIABLE dt = 0.032994
+ !-> DEFINE VARIABLE sumcpu =0.097984
 !-> REPEAT: K=4
  !-> DEFINE VARIABLE dt = 0.034995
- !-> DEFINE VARIABLE sumcpu =0.12998
+ !-> DEFINE VARIABLE sumcpu =0.132979
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.034994
- !-> DEFINE VARIABLE sumcpu =0.164974
+ !-> DEFINE VARIABLE dt = 0.033995
+ !-> DEFINE VARIABLE sumcpu =0.166974
 !-> REPEAT: K=6
  !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.197969
+ !-> DEFINE VARIABLE sumcpu =0.199969
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.034995
- !-> DEFINE VARIABLE sumcpu =0.232964
+ !-> DEFINE VARIABLE dt = 0.035994
+ !-> DEFINE VARIABLE sumcpu =0.235963
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.035995
- !-> DEFINE VARIABLE sumcpu =0.268959
+ !-> DEFINE VARIABLE dt = 0.033995
+ !-> DEFINE VARIABLE sumcpu =0.269958
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.036994
- !-> DEFINE VARIABLE sumcpu =0.305953
+ !-> DEFINE VARIABLE dt = 0.033995
+ !-> DEFINE VARIABLE sumcpu =0.303953
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.338948
+ !-> DEFINE VARIABLE dt = 0.033994
+ !-> DEFINE VARIABLE sumcpu =0.337947
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.338948
-0.338948
+ !-> MESSAGE/CONTINUE 0.337947
+0.337947
 sh sym CLOCK_SECS
-CLOCK_SECS = "106.205"
+CLOCK_SECS = "115.472"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "17-Nov-15"
-SESSION_TIME = "09:25"
-CURRENT_DATE = "17-Nov-15"
-CURRENT_TIME = "09:27:20"
+SESSION_DATE = "11-May-16"
+SESSION_TIME = "16:10"
+CURRENT_DATE = "11-May-16"
+CURRENT_TIME = "16:12:55"
  
  
 ! ******** V6.3 Additions below ***********
@@ -60338,6 +59555,8 @@ GO err62_thick_tic_time_axis
 ! disappeared due to pixel aliasing. Fixed by setting
 ! the thick-line for these tics.
  
+! restore default setting
+ppl axlabp,-1,-1
  
 define axis/t=1-jan-1990:1-jan-2010:1/units=months tax
  
@@ -60865,7 +60084,7 @@ LIST var
  16-JAN-1969 / 20:  0.6617913
  
 CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX139)
+ !-> CAN AXIS/STRIDE (AX144)
 SET AXIS/STRIDE=12/OFFSET=11 truemonth ! every December
 LIST var
              VARIABLE : COS(T[GT=TRUEMONTH]/100)
@@ -60894,7 +60113,7 @@ LIST var
 SET MODE IGNORE_ERRROR
 ! Previously didnt check for negative offset value
 CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX130)
+ !-> CAN AXIS/STRIDE (AX135)
 SET AXIS/STRIDE=12/OFFSET=-1 truemonth
  
 ! Previously didnt give err msg; just ignored non-positive stride value
@@ -61079,7 +60298,7 @@ LEV_TEXT = "50V"
 LEV_MIN = "-2"
 LEV_MAX = "30.74"
 LEV_NUM = "56"
-LEV_DEL = "0.5"
+LEV_DEL = "irregular"
 LEV_OPNLEVS = "(-2,3.05,0.505)(3.5,25.5,0.5)(25.5,25.5,0.505)(inf)"
  
 shade/line/lev=50v,5min/title="/LEV=50v,5min" temp[K=1]
@@ -61440,7 +60659,7 @@ define grid/like=u/x=xax10/z=w/t=tax5day g5_10g00abcdefghijklmnopqrstuvwxyz12345
  allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  getgrid EX#1     C:  9 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DW11         PSXT1     PSYT1     PSZW      TIME14    NORMAL    NORMAL
+ allocate dynamic grid PS3DW11         PSXT      PSYT1     PSZW      TIME14    NORMAL    NORMAL
  
 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
@@ -61448,7 +60667,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         PSXT1     PSYT1     PSZW      TIME14    NORMAL    NORMAL
+ dealloc  dynamic grid PS3DW11         PSXT      PSYT1     PSZW      TIME14    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
@@ -61529,21 +60748,21 @@ set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
 load temp[i=50:51,j=45:56,k=1:2,l=1:172]  ! preload to save time
  dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT1          PSXT1     PSYT1     PSZT2     TIME14    NORMAL    NORMAL
+ allocate dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  strip moduloing TEMP on T axis:     1   172 dset:   2
  reading TEMP     M: 29 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
  doing moduloing TEMP on T axis:     1   168 dset:   2
 plot temp
- dealloc  dynamic grid PS3DT1          PSXT1     PSYT1     PSZT2     TIME14    NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT1          PSXT1     PSYT1     PSZT2     TIME14    NORMAL    NORMAL
+ allocate dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
  found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 753  complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT1          PSXT1     PSYT1     PSZT2     TIME14    NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
@@ -61556,7 +60775,7 @@ plot/over temp[g=u]
  strip regrid on X: TEMP --> PS3DU1           @LIN
  found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 27 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 20 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
  doing moduloing TEMP on T axis:     1     2 dset:   2
 setting up plot
 PPL plot 754  complete
@@ -61567,27 +60786,27 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
  found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 26 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 22 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 26 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 15 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 755  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
  dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 22 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 15 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
  found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 22 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 26 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 22 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 15 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 15 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 22 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 26 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 15 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 756  complete
 plot/over temp[g=u at ave]
@@ -61599,12 +60818,12 @@ plot/over temp[g=u at ave]
  strip regrid on X: TEMP --> PS3DU1           @AAV
  found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 26 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 18 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
  doing moduloing TEMP on T axis:     3   168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
  found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 19 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 13 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
  doing moduloing TEMP on T axis:     1     2 dset:   2
 setting up plot
 PPL plot 757  complete
@@ -61615,29 +60834,29 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
  found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 12 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 17 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 11 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 12 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 758  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
  dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 17 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 11 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
  strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M: 17 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ reading TEMP     M: 11 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
  doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M: 15 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 15 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  9 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 23 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M:  9 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 15 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  9 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 23 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 759  complete
 plot/over temp[g=u at asn]
@@ -61648,17 +60867,17 @@ plot/over temp[g=u at asn]
  strip moduloing TEMP on T axis:     3   170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 18 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 13 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 12 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
+ found   TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 23 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 26 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 23 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
  doing moduloing TEMP on T axis:     3   168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 17 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 14 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 11 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 14 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
+ found   TEMP     M: 11 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 27 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 22 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 27 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
  doing moduloing TEMP on T axis:     1     2 dset:   2
 setting up plot
 PPL plot 760  complete
@@ -61670,14 +60889,14 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M: 14 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ reading TEMP     M: 27 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  regrid  TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  9 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  -DELETE TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  regrid  TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  9 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  9 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 761  complete
 plot/over temp[g=u,gt=u at ave]
@@ -61688,7 +60907,7 @@ plot/over temp[g=u,gt=u at ave]
  allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
  allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- found   TEMP     M: 24 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
+ found   TEMP     M: 17 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
  dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
 setting up plot
 PPL plot 762  complete
@@ -61698,11 +60917,11 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5da
  eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 18 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 19 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
  regrid  TEMP     M: 25 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 19 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 763  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
@@ -61712,12 +60931,12 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefg
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- found   TEMP     M: 18 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 19 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
  regrid  TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 19 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  -DELETE TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 764  complete
@@ -61727,7 +60946,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5da
  eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 18 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
+ found   TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
  regrid  TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
  regrid  TEMP     M:  8 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
@@ -61775,10 +60994,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G106)
     GRID (G106)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -61806,10 +61025,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G106)
     GRID (G106)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -61835,10 +61054,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G106)
     GRID (G106)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -61890,7 +61109,7 @@ show grid gg123456789012345678902
     GRID GG123456789012345678902
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX020)   LATITUDE           401 r   20S                  20N
+ (AX009)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
@@ -61899,9 +61118,9 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX049)                         use count:  13
-    AXIS (AX047)                         use count:  13
-    AXIS (AX020)                         use count:   2
+    AXIS (AX054)                         use count:  13
+    AXIS (AX052)                         use count:  13
+    AXIS (AX009)                         use count:   2
  
 ! demonstrate proper management of dynamic axes
 DEFINE GRID/LIKE=gg123456789012345678902 gg123456789012345678903
@@ -61909,9 +61128,9 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX049)                         use count:  13
-    AXIS (AX047)                         use count:  13
-    AXIS (AX020)                         use count:   3
+    AXIS (AX054)                         use count:  13
+    AXIS (AX052)                         use count:  13
+    AXIS (AX009)                         use count:   3
 DEFINE GRID/like=temp[d=levitus_climatology] gg123456789012345678902
 show grid gg123456789012345678902
     GRID GG123456789012345678902
@@ -61926,9 +61145,9 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX049)                         use count:  13
-    AXIS (AX047)                         use count:  13
-    AXIS (AX020)                         use count:   2
+    AXIS (AX054)                         use count:  13
+    AXIS (AX052)                         use count:  13
+    AXIS (AX009)                         use count:   2
  
 ! SET GRID using a user-defined variable
 let g = sst[x=0:30:.1,d=coads_climatology]
@@ -61937,10 +61156,10 @@ show grid
  Default grid for DEFINE VARIABLE is G
  Last successful data access was on grid GG2
     GRID GG2
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- YAXLEVITR1_90 LATITUDE        90 r   89.5S                0.5S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
+ YAXLEVITR1_90 LATITUDE        90 r   89.5S                0.5S                full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
@@ -61951,11 +61170,11 @@ show grid
  Default grid for DEFINE VARIABLE is G
  Last successful data access was on grid (G106)
     GRID (G106)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX116)   LATITUDE           201 r   10S                  10N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX121)   LATITUDE           201 r   10S                  10N                 200 pts
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  normal    E
  normal    F
 show grid/dynamic
@@ -61963,16 +61182,16 @@ Dynamic grids:
     GRID (G106)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX116)   LATITUDE           201 r   10S                  10N
+ (AX121)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX116)                         use count:   1
-    AXIS (AX049)                         use count:  13
-    AXIS (AX047)                         use count:  13
-    AXIS (AX020)                         use count:   2
+    AXIS (AX121)                         use count:   1
+    AXIS (AX054)                         use count:  13
+    AXIS (AX052)                         use count:  13
+    AXIS (AX009)                         use count:   2
  
 ! deliberate errors
 set mode ignore
@@ -61993,7 +61212,7 @@ SHOW GRID mygrid_123456789012345678901234567890
     GRID MYGRID_123456789012345678901234567890
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX127)   LATITUDE            41 r   10S                  2S
+ (AX132)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
@@ -62005,15 +61224,20 @@ GO bn_xml_repl
 ! bn_xml_repl.jnl
 ! replace > and < and & with their html equivalents.
  
-use coads_climatology
-set var/title="a title with & and > and < characters" sst
-set var/units="<<" sst
-set att sst.history = "Adding some ampersands.& & to the history"
+! make a short file
+let/units="meters" myvar = 7
+save/clobber/file=a.nc myvar
+can var/all
+use a.nc
+ 
+set var/title="a title with & and > and < characters" myvar
+set var/units="<<" myvar
+define att myvar.history = "Adding some ampersands.& & to the history"
 sh dat/xml/var
 <datasets>
-<dataset name="./coads_climatology.cdf" default="true">
+<dataset name="./a.nc" default="true">
 <title> </title>
-<var name="SST">
+<var name="MYVAR">
 <attribute name="units" type="char">
    <value><![CDATA[<<]]></value>
 </attribute>
@@ -62030,111 +61254,17 @@ sh dat/xml/var
    <value><![CDATA[FLOAT]]></value>
 </attribute>
 <attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="GSQ1">
+<grid name="GSI1">
 <axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME10</taxis>
 </axes>
 </grid>
 </var>
 </dataset>
 </datasets>
 <axes>
-<axis name="COADSX">
-<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>180</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>21</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>379</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="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSX]]></value>
-</attribute>
-</axis>
-<axis name="COADSY">
-<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>90</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-89</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>89</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[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSY]]></value>
-</attribute>
-</axis>
-<axis name="TIME10">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>3</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>0000-01-16 06:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>0000-03-17 02:58:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
-   <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
-   <value><![CDATA[0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
-   <value>8765.82</value>
-</attribute>
-</axis>
 </axes>
-shade/l=1 sst
  
 ! ******** V6.5 Additions below ***********
  
@@ -62652,7 +61782,12 @@ GO bn_show_xml_file
 ! Dont do show axis/all. Just the axes for one variable is a lot of output.
 ! Ferret v685, show/data/var/xml includes the output of show axis, so remove that.
  
-USE ocean_atlas_temp.cdf
+! create a short file
+LET sst = x[x=1:15] + y[y=1:5] + t[gt=month_irreg]
+save/clobber/file=b.nc sst
+can var/all
+ 
+use b
  
 DEFINE SYMBOL output_xml_file = the_xml_file.xml
  
@@ -62679,14 +61814,11 @@ sp cat the_xml_file.xml
 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
 <data>
 <datasets>
-<dataset name="./ocean_atlas_temp.cdf" default="true">
+<dataset name="./b.nc" default="true">
 <title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
-   <value><![CDATA[Deg C]]></value>
-</attribute>
+<var name="SST">
 <attribute name="long_name" type="char">
-   <value><![CDATA[Temperature]]></value>
+   <value><![CDATA[X[X=1:15] + Y[Y=1:5] + T[GT=MONTH_IRREG]]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
    <value>-1.E+34</value>
@@ -62698,38 +61830,37 @@ sp cat the_xml_file.xml
    <value><![CDATA[FLOAT]]></value>
 </attribute>
 <attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="GBS1">
+<grid name="GRR1">
 <axes>
-<xaxis>XAX_LEV9421_380</xaxis>
-<yaxis>YAX_LEV94</yaxis>
-<zaxis>ZAXLEVIT191_1</zaxis>
-<taxis>TIME3</taxis>
+<xaxis>XAX1_15</xaxis>
+<yaxis>YAX1_5</yaxis>
+<taxis>MONTH_IRREG</taxis>
 </axes>
 </grid>
 </var>
 </dataset>
 </datasets>
 <axes>
-<axis name="TIME3">
+<axis name="MONTH_IRREG">
 <attribute name="direction" type="char">
    <value><![CDATA[L]]></value>
 </attribute>
 <attribute name="units" type="char">
-   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
+   <value><![CDATA[DAYS since 0000-01-01 00:00:00]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>2</value>
+   <value>12</value>
 </attribute>
 <attribute name="start" type="double">
-   <value>0000-01-16 06:00:00</value>
+   <value>0000-01-16 12:00:00</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>0000-02-15 16:29:00</value>
+   <value>0000-12-15 17:49:00</value>
 </attribute>
 <attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
+   <value>uneven</value>
 </attribute>
 <attribute name="modulo" type="char">
    <value><![CDATA[yes]]></value>
@@ -62740,57 +61871,34 @@ sp cat the_xml_file.xml
 <attribute name="calendar" type="char">
    <value><![CDATA[GREGORIAN]]></value>
 </attribute>
-<attribute name="modulo_length" type="short">
-   <value>8765.82</value>
-</attribute>
-</axis>
-<axis name="XAX_LEV9421_380">
-<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>360</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>20.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>379.5</value>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
+<attribute name="axis" type="char">
+   <value><![CDATA[T]]></value>
 </attribute>
-<attribute name="modulo" type="char">
-   <value><![CDATA[yes]]></value>
+<attribute name="standard_name" type="char">
+   <value><![CDATA[time]]></value>
 </attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
+<attribute name="bounds" type="char">
+   <value><![CDATA[MONTH_IRREG_bnds]]></value>
 </attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[XAX_LEV9421_380]]></value>
+   <value><![CDATA[MONTH_IRREG]]></value>
 </attribute>
 </axis>
-<axis name="ZAXLEVIT191_1">
+<axis name="XAX1_15">
 <attribute name="direction" type="char">
-   <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[METERS]]></value>
+   <value><![CDATA[I]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>1</value>
+   <value>15</value>
 </attribute>
 <attribute name="start" type="double">
-   <value>0</value>
+   <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>0</value>
-</attribute>
-<attribute name="positive" type="char">
-   <value><![CDATA[down]]></value>
+   <value>15</value>
 </attribute>
 <attribute name="point_spacing" type="char">
    <value><![CDATA[even]]></value>
@@ -62801,25 +61909,25 @@ sp cat the_xml_file.xml
 <attribute name="infile_datatype" type="char">
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[X]]></value>
+</attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[ZAXLEVIT191_1]]></value>
+   <value><![CDATA[XAX1_15]]></value>
 </attribute>
 </axis>
-<axis name="YAX_LEV94">
+<axis name="YAX1_5">
 <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>180</value>
+   <value>5</value>
 </attribute>
 <attribute name="start" type="double">
-   <value>-89.5</value>
+   <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>89.5</value>
+   <value>5</value>
 </attribute>
 <attribute name="point_spacing" type="char">
    <value><![CDATA[even]]></value>
@@ -62830,8 +61938,11 @@ sp cat the_xml_file.xml
 <attribute name="infile_datatype" type="char">
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[Y]]></value>
+</attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[YAX_LEV94]]></value>
+   <value><![CDATA[YAX1_5]]></value>
 </attribute>
 </axis>
 </axes>
@@ -62948,8 +62059,8 @@ cancel mode verify
 GO bn_netcdf4
 ! bn_netcdf4.jnl
 ! test syntax for controling NetCDF-4 intput and output.
- 
- 
+! 2/2016 change file name in second intentinal-error case
+!        Also list the file sizes for compressed data
  
 show nccache
 Current NCDF Chunk Cache size 4.1943 MB, n_elems = 1009, preemption = 75
@@ -62995,6 +62106,15 @@ save/file=nc4_nodeflate3.nc/clobber/ncformat=3 sst
 save/file=nc4_deflate4_xyt.nc/clobber/ncformat=4/deflate/shuffle/tchunk=2/xchunk=30/ychunk=20  sst
 save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
  
+! get the file sizes
+sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
+Bytes: 197528
+sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
+Bytes: 4315435
+sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
+Bytes: 4314795
+sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
+Bytes: 4309088
  
 ! Write variable as INT
 CAN DAT/all; can var/all; can mem/all
@@ -63007,6 +62127,14 @@ save/clobber/file=nc4_inttemp_set_list_deflate_chunk.nc temp
  
 save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
  
+! get the file sizes
+sp stat nc4_inttemp_classic.nc --printf="Bytes: %s\n"
+Bytes: 60560
+sp stat nc4_inttemp_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
+Bytes: 32174
+sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
+Bytes: 32330
+ 
 cancel list/all
 set list/ncformat=classic
 save/clobber/file=nc4_inttemp_set_classic.nc temp
@@ -63057,7 +62185,7 @@ set mode ignore
 save/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchunk=1  sst
  
 ! Chunk sizes bigger than dim sizes
-save/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
+save/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
 can mode ignore
  
  
@@ -63074,11 +62202,11 @@ define axis/t=1-jan-2010:30-mar-2010:10/units=days tout
 let tt = t[gt=tout,L=1:10]
 sh grid tt
     GRID (G091)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   9 pts
  normal    E
  normal    F
  
@@ -63281,11 +62409,11 @@ list/x=2:3 sgrid
 let tpts = 39798 + 87*RANDU(I)
 show grid tt
     GRID (G089)
- name       axis              # pts   start                end
- X10       X                  201 r   0                    10
- Y10       Y                  201 r   0                    10
+ name       axis              # pts   start                end                 subset
+ x10       X                  201 r   0                    10                  full
+ Y10       Y                  201 r   0                    10                  full
  normal    Z
- TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   9 pts
  normal    E
  normal    F
  
@@ -63546,9 +62674,9 @@ show grid
  Default grid for DEFINE VARIABLE is MYGRID
  Last successful data access was on grid MYGRID
     GRID MYGRID
- name       axis              # pts   start                end
- MYX       X                   10 i   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX       X                   10 i   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -63607,9 +62735,9 @@ show grid
  Default grid for DEFINE VARIABLE is MYGRID
  Last successful data access was on grid MYGRID
     GRID MYGRID
- name       axis              # pts   start                end
- MYX       X                   10 r   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX       X                   10 r   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -63668,9 +62796,9 @@ show grid
  Default grid for DEFINE VARIABLE is MYGRID
  Last successful data access was on grid MYGRID
     GRID MYGRID
- name       axis              # pts   start                end
- MYX       X                   10 r   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX       X                   10 r   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -63709,9 +62837,9 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GOZ1
     GRID GOZ1
- name       axis              # pts   start                end
- MYX1      X                   10 i   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX1      X                   10 i   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -63740,9 +62868,9 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GOZ1
     GRID GOZ1
- name       axis              # pts   start                end
- MYX1      X                   10 r   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX1      X                   10 r   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -64200,9 +63328,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 47 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v6.951 (beta)"                                                    
- 3    /  3:" ! Linux 2.6.18-407.el5PAE 32-bit - 11/17/15"                               
- 4    /  4:" ! 17-Nov-15 09:25     "                                                    
+ 2    /  2:" ! FERRET v6.97 (beta/dbg)"                                                 
+ 3    /  3:" ! Linux 2.6.18-409.el5PAE 32-bit - 05/11/16"                               
+ 4    /  4:" ! 11-May-16 16:10     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -64287,14 +63415,14 @@ regridding transforms e.g.SST[GX=x5deg at AVE]
    code        description                  code        description
    ----        -----------                  ----        -----------
    @LIN        lin. interp.                 @MODVAR     modulo var
-   @AVE        box avgd                     @MODNGD     # gd mod pts
+   @AVE        area-wgtd avgd               @MODNGD     # gd mod pts
    @XACT       exact match                  @MODNBD     #bad mod pts
    @ASN        index assn                   @MODSUM     modulo sum
    @VAR        variance                     @MODMIN     modulo min
    @MIN        minimum                      @MODMAX     modulo max
    @MAX        maximum                      @NRST       nearst coord
-   @SUM        sum                          @BIN        binning
-   @NGD        # gd pts                     @NBIN       #good in bin
+   @SUM        area-wgtd sum                @BIN        unwgtd avg
+   @NGD        #gd pts, area wgtd           @NBIN       #good in bin
    @MOD        modulo ave
  
 auxiliary varible regridding transforms e.g.TEMP[GZ(depth)=zax at AVE]
@@ -64943,6 +64071,27 @@ list/prec=7 t[gt=t_28]
              TIME     : 04-MAY-2007 05:02
           38825.21
  
+! 1/2016 additional tests, reading and saving data,
+! getting attribute information.
+ 
+set att/output=all .
+save/file=a.nc/clobber/k=1:5 t_28
+sp ncdump -h a.nc | grep INST_TYPE
+		:INST_TYPE = "Sea-Bird CTD SBE 9" ;
+ 
+let evar = T_28.generic_name
+save/append/file=a.nc evar
+ 
+list ..dimnames
+             VARIABLE : ..DIMNAMES
+             FILENAME : epic_formatted_file.nc
+             SUBSET   : 4 points (X)
+ 1   / 1:"TIME13"
+ 2   / 2:"dep"   
+ 3   / 3:"lat"   
+ 4   / 4:"lon"   
+ 
+ 
  
 GO bn_reset
 cancel mode verify
@@ -65307,27 +64456,32 @@ sh dat/att
   
  .                               history         CHAR        28   T       FERRET V6.7 (beta) 25-Mar-11
                                  Conventions     CHAR        6    F       CF-1.0
-                                 nco_input_file_nINT         1    F       1000
-                                 nco_input_file_lCHAR        2760 F       b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.00 [...]
+                                 nco_input_file_number
+                                                 INT         1    F       1000
+                                 nco_input_file_list
+                                                 CHAR        2760 F       b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.00 [...]
   
 (LON273_289)           DOUBLE    long_name       CHAR        9    T       longitude
                                  units           CHAR        12   T       degrees_east
                                  modulo          DOUBLE      1    T       360
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        10   F       LON273_289
+                                 orig_file_axname
+                                                 CHAR        10   F       LON273_289
   
 (LAT54_54)             DOUBLE    long_name       CHAR        8    T       latitude
                                  units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
-                                 orig_file_axnameCHAR        8    F       LAT54_54
+                                 orig_file_axname
+                                                 CHAR        8    F       LAT54_54
   
 (TIME13)               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
-                                 orig_file_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SFCO2                 FLOAT     units           CHAR        7    T       kg/m2/s
                                  long_name       CHAR        16   T       CO2 surface flux
@@ -65349,7 +64503,7 @@ set mode ignore
  
 ! setting too large
 set mode desperate `9999999999`
- !-> set mode desperate 1.E+10
+ !-> set mode desperate   9999999999.000000
 show mode desperate
       MODE            STATE        ARGUMENT
       DESPERATE     CANCELLED      2560000
@@ -65364,12 +64518,14 @@ show mode desperate
 ! Previously couldnt handle a floating point
 ! input. Now we can.
 set mode desperate `96 * 1024 * 1024`
- !-> set mode desperate 1.006633E+08
+ !-> set mode desperate   100663296.0000000
 show mode desperate
       MODE            STATE        ARGUMENT
-      DESPERATE        SET           100663300
+      DESPERATE        SET           100663296
 can mode ignore
  
+cancel mode desperate
+ 
 GO bn_reset
 cancel mode verify
 GO err667_dup_axnames
@@ -66421,8 +65577,8 @@ GO err672_dset_cx
 let a = x[gx=0:2:1]; save/clob/file=a1.nc a
 sho grid/x a
     GRID (G101)
- name       axis              # pts   start                end
- (AX129)   X                    3 r   0                    2
+ name       axis              # pts   start                end                 subset
+ (AX137)   X                    3 r   0                    2                   2 pts
  normal    Y
  normal    Z
  normal    T
@@ -66437,8 +65593,8 @@ sho grid/x a
 let a = x[gx=1:3:1]; save/clob/file=a2.nc a
 sho grid/x a
     GRID (G101)
- name       axis              # pts   start                end
- (AX116)   X                    3 r   1                    3
+ name       axis              # pts   start                end                 subset
+ (AX121)   X                    3 r   1                    3                   2 pts
  normal    Y
  normal    Z
  normal    T
@@ -66459,14 +65615,14 @@ can var/all; can dat/all
 use a1
 list x[gx=a[d=1]]
              VARIABLE : X
-                        axis AX129
+                        axis AX137
              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 AX129
+                        axis AX137
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -66481,7 +65637,7 @@ use a2
  
 list x[gx=a[d=1]]
              VARIABLE : X
-                        axis AX129
+                        axis AX137
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -66490,7 +65646,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 AX129
+                        axis AX137
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -66506,7 +65662,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 AX129
+                        axis AX137
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -66669,40 +65825,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.657
-randu2_randn2       0.258
-randu2_randn2       0.241
-randu2_randn2       0.151
-randu2_randn2       0.091
+randu2_randn2       0.761
+randu2_randn2       0.260
+randu2_randn2       0.018
+randu2_randn2       0.791
+randu2_randn2       0.605
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.029
-randu2_randn2       0.111
-randu2_randn2       0.779
-randu2_randn2       0.535
-randu2_randn2       0.321
+randu2_randn2       0.134
+randu2_randn2       0.174
+randu2_randn2       0.678
+randu2_randn2       0.982
+randu2_randn2       0.364
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.931
-randu2_randn2       0.491
-randu2_randn2       0.178
-randu2_randn2       0.721
-randu2_randn2       0.379
-randu2_randn2       0.967
+randu2_randn2       0.297
+randu2_randn2       0.071
+randu2_randn2       0.334
+randu2_randn2       0.414
+randu2_randn2       0.085
+randu2_randn2       0.067
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.317
-randu2_randn2       0.024
-randu2_randn2       0.269
-randu2_randn2       0.754
-randu2_randn2       0.162
-randu2_randn2       0.916
+randu2_randn2       0.841
+randu2_randn2       0.798
+randu2_randn2       0.390
+randu2_randn2       0.966
+randu2_randn2       0.010
+randu2_randn2       0.816
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66727,40 +65883,40 @@ randu2_randn2       0.900
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.126
-randu2_randn2      -0.560
-randu2_randn2       1.056
-randu2_randn2       0.714
-randu2_randn2      -0.473
+randu2_randn2       1.214
+randu2_randn2      -0.229
+randu2_randn2       1.328
+randu2_randn2       1.812
+randu2_randn2      -0.436
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -0.507
-randu2_randn2      -1.944
-randu2_randn2      -1.216
-randu2_randn2       1.740
-randu2_randn2      -0.925
+randu2_randn2      -0.650
+randu2_randn2      -0.218
+randu2_randn2      -2.103
+randu2_randn2      -0.366
+randu2_randn2      -0.879
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.633
-randu2_randn2      -1.911
-randu2_randn2      -0.524
-randu2_randn2      -0.330
-randu2_randn2      -0.074
-randu2_randn2       0.092
+randu2_randn2       0.945
+randu2_randn2      -0.179
+randu2_randn2      -0.654
+randu2_randn2      -2.107
+randu2_randn2       0.242
+randu2_randn2      -0.314
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.763
-randu2_randn2      -1.013
-randu2_randn2       0.357
-randu2_randn2       0.689
-randu2_randn2      -0.471
-randu2_randn2       0.817
+randu2_randn2       0.403
+randu2_randn2      -0.031
+randu2_randn2      -0.787
+randu2_randn2       0.835
+randu2_randn2       0.285
+randu2_randn2       2.272
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66785,14 +65941,14 @@ randu2_randn2      -0.124
  Column  1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
  Column  2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
  Column  3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2       1.186       1.557       0.541
-randu2_randn2       1.557       1.186       0.541
-randu2_randn2       0.541       0.541       0.015
-randu2_randn2      -0.093      -0.027       0.541
-randu2_randn2      -0.027      -0.031       0.541
-randu2_randn2      -0.031      -0.027       0.541
-randu2_randn2       0.015       0.015       0.541
-randu2_randn2       0.859       0.859       0.859
+randu2_randn2       1.105       1.158       0.915
+randu2_randn2       1.158       1.105       0.915
+randu2_randn2       0.915       0.915       0.108
+randu2_randn2       0.108       0.108       0.380
+randu2_randn2      -0.300      -0.221       0.380
+randu2_randn2      -0.221      -0.221       0.380
+randu2_randn2      -0.151      -0.151       0.380
+randu2_randn2       0.380       0.380       0.380
  
 GO bn_reset
 cancel mode verify
@@ -66875,11 +66031,11 @@ GO bn_repeated_coords
 use repeat_t_coord.nc
 show grid a
     GRID GKT1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10
+ TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10   full
  normal    E
  normal    F
 show axis tmin
@@ -66908,11 +66064,11 @@ can dat/all
 use/strict repeat_t_coord.nc
 show grid a
     GRID GKT1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TMIN      T                   71 r   1                    71
+ TMIN      T                   71 r   1                    71                  full
  normal    E
  normal    F
 show axis tmin
@@ -67185,11 +66341,11 @@ let sinT = sin(T * 3.141592653589793 / 6.0)
 let spacetime = if (i eq 1) then cosT else sinT + 1
 show grid spacetime
     GRID XYTGRID
- name       axis              # pts   start                end
- XAXIS     X                    2 r   1                    2
- YAXIS     Y                    1 r   1                    1
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   full
+ YAXIS     Y                    1 r   1                    1                   full
  normal    Z
- TAXIS     T                  240 r   0                    59.75
+ TAXIS     T                  240 r   0                    59.75               full
  normal    E
  normal    F
  
@@ -67810,11 +66966,11 @@ let spacetime123 = if (i eq 2) and (j eq 1) then cost * sint + 2 else spacetime1
 let spacetime = if (i eq 2) and (j eq 2) then sint * sint + 3 else spacetime123
 show grid spacetime
     GRID XYTGRID
- name       axis              # pts   start                end
- XAXIS     X                    2 r   1                    2
- YAXIS     Y                    2 r   1                    2
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   full
+ YAXIS     Y                    2 r   1                    2                   full
  normal    Z
- TAXIS     T                  240 r   0                    23.9
+ TAXIS     T                  240 r   0                    23.9                full
  normal    E
  normal    F
  
@@ -68152,9 +67308,11 @@ GO bn_interpolate_6d
 ! bn_interpolate_6d.JNL
 ! benchmark interpolation along various axes
 ! including the E and F axis
+! note with fix to ticket 2399 mode calendar applies to F axis
  
 SET LIST/PRECISION=6
 SET MODE LATITUDE:4
+set mode calendar:years
  
 LET v = x + 10*y + 100*_e + 1000*_f
 SET REGION/X=1:3/Y=1:3/E=1:3/F=1:3
@@ -68545,14 +67703,18 @@ LIST v[@xpt, at ypt, at ept, at fpt]
              F        : 1 (interpolated)
           1113.00
  
+set mode/last calendar
+ 
 GO bn_reset
 cancel mode verify
 GO bn_regrid_6d
 ! bn_regrid_6d.jnl
 ! version of bn_regrid, using E and F directions.
+! note with fix to ticket 2399 mode calendar applies to F axis
  
 set mode latit_label -4
 set mode long_label -4
+set mode calendar:years
  
 define axis/x=2:20:2 xeven
 define axis/x=1:19:2 xodd
@@ -69923,6 +69085,12 @@ list a24[g=g48]-a48
  07-JAN-1980 00 / 4: -438312.
  
  
+ 
+set mode/last latit_label
+set mode/last long_label
+set mode/last calendar
+ 
+ 
 GO bn_reset
 cancel mode verify
 GO bn_syntax_6d
@@ -69938,18 +69106,18 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid G48
     GRID G48
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
  normal    E
- FAX48     FORECAST           367 r   01-JAN-1980 00:00    02-JAN-1982 00:00
+ FAX48     FORECAST           367 r   01-JAN-1980 00:00    02-JAN-1982 00:00   full
 LIST/I=1:2/J=50/K=1/L=2/M=3/N=4 SALT
              VARIABLE : (SALINITY(ppt) - 35) /1000 (frac. by wt. less .035)
              FILENAME : 6dfile.nc
              SUBSET   : 2 points (LONGITUDE)
-             LATITUDE : 6.167N
+             LATITUDE : 6.1667N
              DEPTH (m): 5
              TIME     : 15-MAR-1983 11:00
              E        : 3
@@ -69962,35 +69130,35 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GNJ2
     GRID GNJ2
- name       axis              # pts   start                end
- PSXT70_71 LONGITUDE            2mr   160.5W               159.5W
- PSYT15_75 LATITUDE            61 i   10.169S              9.833N
- PSZT2     DEPTH (m)           27 i-  5                    3824
- TIME13    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
- EAXIS     E                    5 r   1                    5
- FAXIS     F                    4 r   1                    7
+ name       axis              # pts   start                end                 subset
+ 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
+ EAXIS     E                    5 r   1                    5                   full
+ FAXIS     F                    4 r   1                    7                   full
 SET GRID/SAVE
 SET GRID ABSTRACT
 SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GNJ2
     GRID GNJ2
- name       axis              # pts   start                end
- PSXT70_71 LONGITUDE            2mr   160.5W               159.5W
- PSYT15_75 LATITUDE            61 i   10.169S              9.833N
- PSZT2     DEPTH (m)           27 i-  5                    3824
- TIME13    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
- EAXIS     E                    5 r   1                    5
- FAXIS     F                    4 r   1                    7
+ name       axis              # pts   start                end                 subset
+ 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
+ EAXIS     E                    5 r   1                    5                   full
+ FAXIS     F                    4 r   1                    7                   full
 SHOW GRID/X=180:165W SALT
     GRID GNJ2
- name       axis              # pts   start                end
- PSXT70_71 LONGITUDE            2mr   160.5W               159.5W
- PSYT15_75 LATITUDE            61 i   10.169S              9.833N
- PSZT2     DEPTH (m)           27 i-  5                    3824
- TIME13    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
- EAXIS     E                    5 r   1                    5
- FAXIS     F                    4 r   1                    7
+ name       axis              # pts   start                end                 subset
+ 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
+ EAXIS     E                    5 r   1                    5                   full
+ FAXIS     F                    4 r   1                    7                   full
  
        I     X                   XBOX      XBOXLO
        0>  20E                   358        159W(-159)
@@ -70006,7 +69174,7 @@ stat/k=1/l=1/j=40/i=3/M=3/N=4/d=2 temp[d=1]
  
              TEMPERATURE
              LONGITUDE: 158.5W
-             LATITUDE: 2.833N
+             LATITUDE: 2.8333N
              DEPTH (m): 5
              TIME: 15-MAR-1983 10:00
              E: 3
@@ -70762,16 +69930,18 @@ GO bn_regrid_transforms_6d
 ! bn_regrid_transforms_6d.jnl
 ! benchmark to test regridding transformations and syntax
 ! version of bn_regrid_transforms, using E and F directions.
+! note with fix to ticket 2399 mode calendar applies to F axis
  
 use gtsa056_1_ef
 set mode diag
+set mode calendar:years
  
 define axis/f=23-jan-1982:30-jan-1982:20/unit=hour fax20
 define axis/x=120e:60w:10/unit=degrees xax10
 define grid/like=temp/f=fax20 g5day
  getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GGR1            PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
- dealloc  dynamic grid GGR1            PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    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
  
@@ -70779,7 +69949,7 @@ use gtsa056_1_ef    	!kob 4/99
  
 stat temp[g=g5day] - temp[g=g5day at ave]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=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
  reading TEMP     M:120 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
@@ -70787,13 +69957,13 @@ stat temp[g=g5day] - temp[g=g5day at ave]
  strip regrid on F: TEMP --> G5DAY            @AVE
  reading TEMP     M:114 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  regrid  TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- doing --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> EX#1[T=1982 at ITP,D=1]
  
              TEMP[G=G5DAY] - TEMP[G=G5DAY at AVE]
              LONGITUDE: 130W to 125W
              LATITUDE: 0 to 1.5N
              DEPTH (m): 5
-             TIME: 21-JAN-1982 00:00 (interpolated)
+             TIME: 1982 (interpolated)
              E: 1 to 2
              FORECAST: 1982 to 1982
              DATA SET: ./gtsa056_1_ef.nc
@@ -70807,24 +69977,24 @@ stat temp[g=g5day] - temp[g=g5day at ave]
  
 ! basic regrid tests
 LIST temp[g=g5day at ave]
- -DELETE EX#1     M:102 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    1    2
+ -DELETE EX#1     M: 94 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    1    2
  -DELETE EX#1     M:112 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- dealloc  dynamic grid G5DAY           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
  -DELETE TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  -DELETE TEMP     M:118 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=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
  reading TEMP     M:118 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  regrid  TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on F at AVE
              FILENAME : gtsa056_1_ef.nc
              SUBSET   : 5 by 6 by 2 by 2 points (LONGITUDE-LATITUDE-E-FORECAST)
              DEPTH (m): 5
-             TIME     : 21-JAN-1982 00:00 (interpolated)
+             TIME     : 1982 (interpolated)
                129.5W   128.5W   127.5W   126.5W   125.5W  
                101      102      103      104      105
  ---- N:1 F:   1982
@@ -70858,22 +70028,22 @@ 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           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
  -DELETE TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  -DELETE TEMP     M:112 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    1    2
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=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
  reading TEMP     M:112 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  regrid  TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1_ef.nc
              SUBSET   : 5 by 6 by 2 by 2 points (LONGITUDE-LATITUDE-E-FORECAST)
              DEPTH (m): 5
-             TIME     : 21-JAN-1982 00:00 (interpolated)
+             TIME     : 1982 (interpolated)
                129.5W   128.5W   127.5W   126.5W   125.5W  
                101      102      103      104      105
  ---- N:1 F:   1982
@@ -70926,142 +70096,142 @@ 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           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M:102 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: 94 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    1    2
  -DELETE TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GGR1            PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
+ strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
  eval    EX#1     C:  8 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  reading TEMP     M:104 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 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 863  complete
+PPL plot 862  complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid GGR1            PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @LIN
- reading TEMP     M: 90 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ reading TEMP     M: 86 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  regrid  TEMP     M: 58 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 864  complete
+PPL plot 863  complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
  -DELETE TEMP     M: 58 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M: 80 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 88 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 88 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 96 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @AVE
- reading TEMP     M: 88 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- regrid  TEMP     M: 80 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ reading TEMP     M: 96 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ regrid  TEMP     M: 88 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 865  complete
+PPL plot 864  complete
 plot/over temp[g=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
  -DELETE TEMP     M: 58 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 80 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 94 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 80 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 88 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @ASN
- reading TEMP     M: 94 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ reading TEMP     M: 88 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  regrid  TEMP     M: 80 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 866  complete
+PPL plot 865  complete
  
 ! F axis
 set region/x=180/y=20s:20n/e=2/t=21-JAN-1982/z=5
 plot temp
- dealloc  dynamic grid G5DAY           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
  -DELETE TEMP     M: 58 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  -DELETE TEMP     M: 78 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
  -DELETE TEMP     M: 80 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GGR1            PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
+ strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
  eval    EX#1     C:  7 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  reading TEMP     M: 80 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 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 867  complete
+PPL plot 866  complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid GGR1            PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @LIN
  reading TEMP     M:106 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  regrid  TEMP     M: 98 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 868  complete
+PPL plot 867  complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
  -DELETE TEMP     M: 74 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
  -DELETE TEMP     M: 82 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  -DELETE TEMP     M: 98 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @AVE
  reading TEMP     M: 98 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  regrid  TEMP     M: 82 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 869  complete
+PPL plot 868  complete
 plot/over temp[g=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
  -DELETE TEMP     M: 70 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
  -DELETE TEMP     M: 74 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  -DELETE TEMP     M: 82 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @ASN
  reading TEMP     M: 82 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  regrid  TEMP     M: 74 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 870  complete
+PPL plot 869  complete
  
 set mode/last interp
 cancel region
@@ -71082,7 +70252,7 @@ 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           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
  -DELETE TEMP     M: 66 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
  -DELETE TEMP     M: 70 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  -DELETE TEMP     M: 74 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
@@ -71533,13 +70703,13 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G096)
     GRID (G096)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
  normal    E
- EDAY      FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ EDAY      FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
 list afcst[gf=ehour at max]
  -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
@@ -71568,15 +70738,16 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G103)
     GRID (G103)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
  normal    E
- EHOUR     FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ EHOUR     FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
  
 set mode/last diag
+set mode/last calendar
  
 GO bn_reset
 cancel mode verify
@@ -71585,15 +70756,20 @@ GO bn_aggregate_e
 ! using the DEFINE DATA/AGGREGATE/E command
 ! Datasets share sst, but only ens1 has airt.
  
+! v6.95+ 11/15 *sh* -- /T is now the default orientation
+! v6.98 12/15 *sh -- modified so that the sequence number of each
+!   dataset in the aggregation is not also its Ferret dataset number
+!   Allowing them to be the same was hiding bugs
+ 
 set mode diag
  
 use ens1, ens2, ens3, ens4
-define data/agg/title fourfiles = ens1, ens3, ens2, ens4
+define data/agg/E fourfiles = ens1, ens3, ens2, ens4
  
 ! The grid of SST is known.
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
+    5> fourfiles  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  
@@ -71605,18 +70781,23 @@ list/i=3 sst[T=@ave]
  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: 64 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:120 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     1     1 dset:   1
- reading SST      M: 62 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ -DELETE SST      M:120 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:120 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     2     2 dset:   3
- reading SST      M: 56 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ -DELETE SST      M:120 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     3     3 dset:   2
- reading SST      M: 54 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ -DELETE SST      M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:120 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     4     4 dset:   4
+ -DELETE SST      M:120 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
              VARIABLE : SST_IN (Deg C)
-             FILENAME : FOURFILES
-             SUBSET   : 9 by 4 points (LATITUDE-E)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
              LONGITUDE: 105W
              TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
              13N      15N      17N      19N      21N      23N      25N      27N      29N    
@@ -71625,60 +70806,111 @@ list/i=3 sst[T=@ave]
  2   / 2:   85.539   85.323   83.676   82.370   80.177   76.683     ....     ....     ....
  3   / 3:   57.026   56.882   55.784   54.913   53.452   51.122     ....     ....     ....
  4   / 4:  114.051  113.765  111.568  109.826  106.903  102.245     ....     ....     ....
+ 
+show memory/all  ! show memory-resident variables before canceling dataset
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+all data in memory:
+ SST[D=fourfiles]                  YE    mr:120  blk1:1  nblk:1
+    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+                                                              AVE
+ SST[D=fourfiles]                  YTE   mr:118  blk1:2  nblk:1
+    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ 
 cancel data fourfiles
- -DELETE SST      M: 66 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
- -DELETE SST      M: 74 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L: -999 -999  M:    1    4  N: -999 -999
  dealloc  dynamic grid (G103)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ canceling dset fourfiles
+ -DELETE SST      M:118 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
+ -DELETE SST      M:120 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L: -999 -999  M:    1    4  N: -999 -999
+show memory/all  ! show memory-resident variables after  canceling dataset
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+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
+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
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+    6> fourfiles  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ 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 fourfiles
+show data/brief/all/hidden
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
  
 ! Create airt in the other datasets by LET/D definitions.
+use ens1, ens2, ens3, ens4
 let/d=ens2 airt = sst + 1
 let/d=ens3 airt = sst + 1
 let/d=ens4 airt = sst + 1
  
-define data/agg fourfiles = ens1, ens3, ens2, ens4
- getgrid AIRT     C:  5 dset:   3 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
+ getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
- getgrid AIRT     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid AIRT     C:  5 dset:   3 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
- getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid AIRT     C:  5 dset:   5 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
+    6> fourfiles  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
  
  
 list/i=3 airt[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 (G109)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ getgrid EX#1     C:  5 dset:   6 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (G092)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
- strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
- strip aggregate gathering AIRT on E axis:     1     4 dset:   5
- reading AIRT     M: 74 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     1     1 dset:   1
- eval    AIRT     C:  9 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M: 70 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     2     2 dset:   3
- eval    AIRT     C:  9 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M: 50 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:120 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:120 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     3     3 dset:   2
+ eval    EX#1     C:  5 dset:   6 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
+ strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
+ strip aggregate gathering AIRT on E axis:     1     4 dset:   6
+ reading AIRT     M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     1     1 dset:   2
+ -DELETE AIRT     M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  reading SST      M:120 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  constan cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     4     4 dset:   4
- doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
+ doing aggregate gathering AIRT on E axis:     2     2 dset:   4
+ -DELETE AIRT     M:112 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:112 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     3     3 dset:   3
+ -DELETE AIRT     M:110 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:110 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     4     4 dset:   5
+ -DELETE AIRT     M:106 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
              VARIABLE : AIR TEMPERATURE (DEG C)
-             DATA SET : Ensemble
-             FILENAME : FOURFILES
-             SUBSET   : 9 by 4 points (LATITUDE-E)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
              LONGITUDE: 105W
              TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
              13N      15N      17N      19N      21N      23N      25N      27N      29N    
@@ -71688,6 +70920,63 @@ list/i=3 airt[T=@ave]
  3   / 3:   58.026   57.882   56.784   55.913   54.452   52.122     ....     ....     ....
  4   / 4:  115.051  114.765  112.568  110.826  107.903  103.245     ....     ....     ....
  
+! create an ensemble where one member is missing
+ENSEMBLE fourfiles_gap = ens1, -, ens3, ens4
+ getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   5 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
+show data/files fourfiles_gap
+     currently SET data sets:
+    7> fourfiles_gap  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
+ AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
+ 
+          Aggregated datasets:
+      1: ./ens1.nc
+      2: (dummy)
+      3: ./ens3.nc
+      4: ./ens4.nc
+list/i=3 airt[T=@ave]
+ getgrid EX#1     C:  5 dset:   7 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (G092)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ 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:114 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     1     1 dset:   2
+ -DELETE AIRT     M:114 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ dummy AIRT     M:114 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     2     2 dset: 401
+ -DELETE AIRT     M:114 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:114 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     3     3 dset:   4
+ -DELETE AIRT     M: 98 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M: 98 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     4     4 dset:   5
+ -DELETE AIRT     M: 96 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
+             VARIABLE : AIR TEMPERATURE (DEG C)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles_gap
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
+             LONGITUDE: 105W
+             TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
+             13N      15N      17N      19N      21N      23N      25N      27N      29N    
+              1        2        3        4        5        6        7        8        9
+ 1   / 1:   27.675   27.570   27.061   26.673   25.793   25.207     ....     ....     ....
+ 2   / 2:     ....     ....     ....     ....     ....     ....     ....     ....     ....
+ 3   / 3:   86.539   86.323   84.676   83.370   81.177   77.683     ....     ....     ....
+ 4   / 4:  115.051  114.765  112.568  110.826  107.903  103.245     ....     ....     ....
+ 
 cancel mode diag
 cancel data/all
 cancel var/all
@@ -71704,10 +70993,10 @@ use navy_uw
 set mode ignore
  
 ! Use dataset thats not open.
-define data/agg windy = 1,2,3
+ensemble windy = 1,2,3
  
 ! No variables on comparable grids.
-define data/agg windy = 1,2
+ensemble windy = 1,2
  
 set mode/last ignore
  
@@ -71745,12 +71034,12 @@ show data
  
  
 ! Define the ensemble dataset
-define data/agg windy = 1,2
+ensemble windy = 1,2
  
 ! The grid of the aggregate variables with LET/D is known.
 show data windy
      currently SET data sets:
-    3> WINDY  (default)  Ferret-defined Ensemble aggregation
+    3> windy  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
  UWND     ZONAL WIND                       1:30      1:30      ...       1:12      1:2       ...
  VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      1:2       ...
@@ -71763,10 +71052,10 @@ 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
              TIME: 17-MAR 02:58
  Column  1: UWND[D=coads_uw] is ZONAL WIND (M/S)
  Column  2: UWND[D=navy_uw] is ZONAL WIND (M/S)
- Column  3: UWND[D=WINDY,E=1] is ZONAL WIND (M/S)
- Column  4: VWND[D=WINDY,E=2] is MERIDIONAL WIND (M/S)
- Column  5: UWND[D=WINDY,E=0.5:2.5 at AVE] is ZONAL WIND (M/S)
-                 UWND     UWND     UWND      VWND     UWND
+ Column  3: UWND[D=windy,E=1 (coads_uw)] is ZONAL WIND (M/S)
+ Column  4: UWND[D=windy,E=2 (navy_uw)] is ZONAL WIND (M/S)
+ Column  5: UWND[D=windy,E=1:2 at AVE] is ZONAL WIND (M/S)
+                 UWND     UWND     UWND      UWND     UWND
 59W    / -30:  2.20244  0.934329  2.20244  0.934329  1.56839
 57W    / -29:  2.26128  0.812758  2.26128  0.812758  1.53702
 55W    / -28:  1.99826  0.681776  1.99826  0.681776  1.34002
@@ -71774,19 +71063,27 @@ 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
 51W    / -26:  1.64932  0.330430  1.64932  0.330430  0.98987
  
 ! 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
+    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
  
 ! Define the ensemble dataset
-define data/agg windy = 2,1
+ensemble windy = 2,1
  
 ! The grid of the aggregate variables with LET/D is known.
 show data windy
      currently SET data sets:
-    3> WINDY  (default)  Ferret-defined Ensemble aggregation
+    3> windy  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      1:2       ...
  VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      1:2       ...
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12      1:2       ...
  
  
 ! Use variable from the new dataset
@@ -71796,18 +71093,18 @@ 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
              TIME: 17-MAR 02:58
  Column  1: UWND[D=coads_uw] is ZONAL WIND (M/S)
  Column  2: UWND[D=navy_uw] is ZONAL WIND (M/S)
- Column  3: VWND[D=WINDY,E=1] is MERIDIONAL WIND (M/S)
- Column  4: UWND[D=WINDY,E=2] is ZONAL WIND (M/S)
- Column  5: VWND[D=WINDY,E=0.5:2.5 at AVE] is MERIDIONAL WIND (M/S)
-                 UWND     UWND      VWND     UWND     VWND
+ Column  3: UWND[D=windy,E=1 (navy_uw)] is ZONAL WIND (M/S)
+ Column  4: UWND[D=windy,E=2 (coads_uw)] is ZONAL WIND (M/S)
+ Column  5: UWND[D=windy,E=1:2 at AVE] is ZONAL WIND (M/S)
+                 UWND     UWND      UWND     UWND     UWND
 59W    / -30:  2.20244  0.934329  0.934329  2.20244  1.56839
 57W    / -29:  2.26128  0.812758  0.812758  2.26128  1.53702
 55W    / -28:  1.99826  0.681776  0.681776  1.99826  1.34002
 53W    / -27:  1.93361  0.507158  0.507158  1.93361  1.22038
 51W    / -26:  1.64932  0.330430  0.330430  1.64932  0.98987
  
-can data/all
-can var/all
+cancel data/all
+cancel variable/all
  
 ! DEFINE DATA/HIDE
 ! SHOW DATA/HIDDEN
@@ -71817,22 +71114,22 @@ can var/all
 ! member datasets and show only the ensemble.
 ! show dat/hidden forces showing all
  
-sh command define
+show command define
  DEFINE
  DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
          /DL/DM/DN
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
- DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
-sh command show
+show command show
  SHOW/ALL
  SHOW WINDOW/ALL
  SHOW REGION/ALL
@@ -71843,9 +71140,8 @@ sh command show
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
-       /CURVILIN
- SHOW COMMANDS/ALL
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+ SHOW COMMANDS/ALL/BRIEF
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
@@ -71858,149 +71154,76 @@ sh command show
  SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
  SHOW QUERIES/ALL
  
+use coads_climatology ! to offset indices so they arent equal to Ferret dset #s
+ 
 use ens1, ens2, ens3, ens4
 ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
  
-! should just show the ensemble set
-sh dat
+! should just show the ensemble set.  Members are hidden.
+show data/brief
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
+    1> ./coads_climatology.cdf
+    6> fourfiles  (default)  Ensemble aggregation
  
 ! If ask for a member set by name or number, do show it
-sh dat 2
+show data/brief 2
      currently SET data sets:
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-sh dat ens3
+    2> ./ens1.nc
+show data/brief ens3
      currently SET data sets:
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    4> ./ens3.nc
  
 ! should show all members plus ensemble
-sh dat/hidden
+show data/brief/hidden
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
+    1> ./coads_climatology.cdf
+    2> ./ens1.nc
+    3> ./ens2.nc
+    4> ./ens3.nc
+    5> ./ens4.nc
+    6> fourfiles  (default)  Ensemble aggregation
  
-! Should show original member datasets
-can dat fourfiles
-sh dat
+! Since the members were hidden, they get deleted with the aggregation
+cancel data fourfiles
+show data/brief
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-can dat/all
+    1> ./coads_climatology.cdf  (default)
+cancel data/all
  
 ! Cancel a member, then the ensemble gets canceled.
-! The hidden members should show up.
- 
+! The hidden members get canceled along with the parent (1/16)
+use coads_climatology ! to offset indices so they arent equal to Ferret dset #s
 use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2
-sh dat
+ensemble/HIDE/title="uvars in dset 2"  my_ens = 2,3
+show data/brief
      currently SET data sets:
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    5> MY_ENS  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:2       ...
- 
-can dat  2
-sh dat
+    1> ./coads_climatology.cdf
+    4> ./ens3.nc
+    5> ./ens4.nc
+    6> my_ens  (default)  Ensemble aggregation
+cancel data  ens2
+show data/brief
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    1> ./coads_climatology.cdf
+    4> ./ens3.nc
+    5> ./ens4.nc
  
-! Cancel the ensemble, then hidden members get un-hidden.
+! Cancel the ensemble, then hidden members get canceled too
  
 use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2,3,4
+ensemble/HIDE/title="uvars in dset 2"  my_ens = 2,3,4,5
  
 ! members hidden, showing only ensemble.
-sh dat
+show data/brief
      currently SET data sets:
-    5> MY_ENS  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
-can dat my_ens
+    1> ./coads_climatology.cdf
+    6> my_ens  (default)  Ensemble aggregation
+cancel data my_ens
  
-! Cancel ensemble dataset: members un-hidden
-sh dat
+! Cancel ensemble dataset: hidden members deleted
+show data/brief
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    1> ./coads_climatology.cdf  (default)
  
 ! Define several ensembles with /HIDE
 ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
@@ -72008,39 +71231,30 @@ ensemble/HIDE/title="ensemble with hidden members" some = ens1, ens2
 ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
  
 ! Shows all the ensembles
-sh dat
+show data/brief/files
      currently SET data sets:
-    5> FOURFILES     Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
-    6> SOME     Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:2       ...
- 
-    7> MORE  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:3       ...
- 
- 
-! Cancel a member of all the ensembles.
-! Cancels dataset 2 and also the ensemble sets.
-can dat 2
-sh dat
+    1> ./coads_climatology.cdf
+    6> fourfiles     Ensemble aggregation
+          Aggregated datasets:
+      1: ./ens1.nc
+      2: ./ens2.nc
+      3: ./ens3.nc
+      4: ./ens4.nc
+    7> some     Ensemble aggregation
+          Aggregated datasets:
+      1: ./ens1.nc
+      2: ./ens2.nc
+    8> more  (default)  Ensemble aggregation
+          Aggregated datasets:
+      1: ./ens2.nc
+      2: ./ens3.nc
+      3: ./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> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    1> ./coads_climatology.cdf  (default)
  
  
 GO bn_reset
@@ -72088,21 +71302,21 @@ show data
 set mode 6d_lab
 show grid temp
     GRID PS3DT21
- name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
- PSYT1     LATITUDE           100 i   28.836S              48.568N
- PSZT2     DEPTH (m)           27 i-  5                    3824
- TIME13    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ 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
  normal    E
  normal    F
 cancel mode 6d_lab
 show grid temp
     GRID PS3DT21
- name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
- PSYT1     LATITUDE           100 i   28.836S              48.568N
- PSZT2     DEPTH (m)           27 i-  5                    3824
- TIME13    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ 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
  
 ! Mode affects output of STAT
  
@@ -72111,7 +71325,7 @@ stat temp
  
              TEMPERATURE
              LONGITUDE: 140W to 122W
-             LATITUDE: 3.667S to 3.667N
+             LATITUDE: 3.6667S to 3.6667N
              DEPTH (m): 0 to 100
              TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
              E:  N/A
@@ -72129,7 +71343,7 @@ stat temp
  
              TEMPERATURE
              LONGITUDE: 140W to 122W
-             LATITUDE: 3.667S to 3.667N
+             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
@@ -72146,13 +71360,13 @@ stat temp
 set mode diag
 set mode 6d_lab
 list/L=1:8 taux[x=@ave,y=@ave]
- dealloc  dynamic grid PS3DT21         PSXT1     PSYT1     PSZT2     TIME13    NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT21         PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME13    NORMAL    NORMAL
+ allocate dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME14    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1  160  J:    1  100  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- strip --> TAUX[Y=28.84S:51.43N at AV4,D=1]
- reading TAUX     M:106 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ strip --> TAUX[Y=28.8361S:51.4321N at AV4,D=1]
+ reading TAUX     M:104 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
  doing --> TAUX[Y=3.5S:3.5N at AV4,D=1]
              VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
              FILENAME : gt4d011.cdf
@@ -72169,12 +71383,12 @@ 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    TIME13
+ dealloc  dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME14
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1
- allocate dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME13
+ allocate dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME14
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1  160  J:    1  100  K: -999 -999  L:    1    8
- strip --> TAUX[Y=28.84S:51.43N at SM4,D=1]
+ strip --> TAUX[Y=28.8361S:51.4321N at SM4,D=1]
  reading TAUX     M: 94 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8
  doing --> TAUX[Y=3.5S:3.5N at SM4,D=1]
              VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
@@ -72240,9 +71454,9 @@ sh dat
  
 sho grid lon_c
     GRID GOS2
- name       axis              # pts   start                end
- ETA       X                    4 r   1                    4
- TAU1      Y                    7 r   1                    7
+ name       axis              # pts   start                end                 subset
+ ETA       X                    4 r   1                    4                   full
+ TAU1      Y                    7 r   1                    7                   full
  normal    Z
  normal    T
  normal    E
@@ -72575,21 +71789,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -72626,28 +71842,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST                   DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
                                  long_name_mod   CHAR        9    F       X=60W at ITP
   
  SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
@@ -72665,28 +71884,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
                                  long_name_mod   CHAR        9    F       X=60W at ITP
   
  SST2                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
@@ -72704,21 +71926,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST3                  INT       missing_value   INT         1    T       -999
                                  _FillValue      INT         1    T       -999
@@ -72735,21 +71959,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST3                  SHORT     missing_value   SHORT       1    T       -999
                                  _FillValue      SHORT       1    T       -999
@@ -72767,21 +71993,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST4                  BYTE      missing_value   BYTE        1    T       -99
                                  _FillValue      BYTE        1    T       -99
@@ -72828,28 +72056,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
                                  long_name_mod   CHAR        9    F       X=60W at ITP
   
  SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
@@ -72873,21 +72104,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST3                  INT       missing_value   INT         1    T       -999
                                  _FillValue      INT         1    T       -999
@@ -72928,21 +72161,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -72964,21 +72199,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST2                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -73000,21 +72237,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST4                  INT       missing_value   INT         1    T       -99
                                  _FillValue      INT         1    T       -99
@@ -73036,21 +72275,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST4                  BYTE      missing_value   BYTE        1    T       -99
                                  _FillValue      BYTE        1    T       -99
@@ -73068,21 +72309,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST4                  INT       missing_value   INT         1    T       -99
                                  _FillValue      INT         1    T       -99
@@ -73298,21 +72541,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME101)              FLOAT     units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          FLOAT       1    T       8765.82
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -73330,28 +72575,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME101)              FLOAT     units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          FLOAT       1    T       8765.82
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST                   DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
                                  long_name_mod   CHAR        9    F       X=60W at ITP
   
  
@@ -73371,28 +72619,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          DOUBLE      1    T       8765.82
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
                                  long_name_mod   CHAR        9    F       X=60W at ITP
   
  
@@ -73409,7 +72660,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73417,7 +72668,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  calendar        CHAR        9    T       GREGORIAN
                                  time_origin     CHAR        11   T       15-JAN-1901
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
+                                 orig_file_axname
+                                                 CHAR        7    F       MYHOURS
   
  TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -73434,7 +72686,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73442,7 +72694,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  calendar        CHAR        9    T       GREGORIAN
                                  time_origin     CHAR        11   T       15-JAN-1901
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
+                                 orig_file_axname
+                                                 CHAR        7    F       MYHOURS
   
  TT                    INT       missing_value   INT         1    T       -9999
                                  _FillValue      INT         1    T       -9999
@@ -73459,7 +72712,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73467,7 +72720,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  calendar        CHAR        9    T       GREGORIAN
                                  time_origin     CHAR        11   T       15-JAN-1901
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
+                                 orig_file_axname
+                                                 CHAR        7    F       MYHOURS
   
  TT                    DOUBLE    missing_value   DOUBLE      1    T       -9999
                                  _FillValue      DOUBLE      1    T       -9999
@@ -73899,7 +73153,7 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73928,7 +73182,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73979,7 +73233,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74080,7 +73334,7 @@ sh dat/var/xml
    <value><![CDATA[Number of O2 Utilization Observations]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
-   <value>     -2147483647</value>
+   <value> -2147483647.</value>
 </attribute>
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
@@ -74432,17 +73686,17 @@ sh att profile
  profile.history = From FINAL_verification_data_all_PacOOS_NHL_OCNMS_CCCC_03072013.txt 
 sh grid rowsize
     GRID GEN1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
- PROF      E                    3 r   1                    3
+ PROF      E                    3 r   1                    3                   full
  normal    F
 sh grid sal
     GRID GEN2
- name       axis              # pts   start                end
- OBS       X                   34 r   1                    34
+ name       axis              # pts   start                end                 subset
+ OBS       X                   34 r   1                    34                  full
  normal    Y
  normal    Z
  normal    T
@@ -74480,17 +73734,17 @@ sh att (profile)
  (profile).orig_file_axname = profile 
 sh grid rowsize
     GRID GSS1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
- PROFILE   E                   21 r   70                   90
+ PROFILE   E                   21 r   70                   90                  full
  normal    F
 sh grid pco2
     GRID GSS2
- name       axis              # pts   start                end
- OBS1      X                  373 r   1                    373
+ name       axis              # pts   start                end                 subset
+ OBS1      X                  373 r   1                    373                 full
  normal    Y
  normal    Z
  normal    T
@@ -74548,8 +73802,8 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Tue Nov 17 09:27:47 2015: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "Wed May 11 16:13:26 2016: ncks -h -A -h z1.nc append_to_this.nc\n",
+			"FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 		:NCO = "4.4.6" ;
 }
@@ -74583,7 +73837,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74614,7 +73868,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74646,7 +73900,8 @@ sh dat/att
                                  time_origin     CHAR        20   T       01-JAN-1990 00:00:00
                                  axis            CHAR        1    T       T
                                  bounds          CHAR        9    T       TGAP_bnds
-                                 orig_file_axnameCHAR        4    F       TGAP
+                                 orig_file_axname
+                                                 CHAR        4    F       TGAP
   
  TGAP_bnds             DOUBLE
   
@@ -74676,7 +73931,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74704,7 +73959,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74866,6 +74121,7 @@ GO bn_vtree
  
 ! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
 ! 12/14 update to test regridding output using bn_vtree_regrid.jnl
+! 11/15 - DEFINE DATA/AGG has become /T instead of /E
  
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -75160,16 +74416,16 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 ************************
  
 ! aggregate (ensemble) dataset of file variables
-define data/agg my_agg = my_file_vars, other_file_vars, another_file_vars
+ENSEMBLE my_agg = my_file_vars, other_file_vars, another_file_vars
 go bn_vtree.sub fv1
 /TREE=ALL
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
      FV1[d=my_file_vars]
      FV1[d=other_file_vars]
      FV1[d=another_file_vars]
 /TREE=USER
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
 /TREE=FILE
  
@@ -75182,10 +74438,10 @@ fv1 is ready and AVAILABLE
 ! aggregation in which some members are uvars
 let/d=other_file_vars   fvx = fv1 + x[gx=fvx[d=1],i=1:3]
 let/d=another_file_vars fvx = 2*fv1 + x[gx=fvx[d=1],i=1:3]
-define data/agg my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
+ENSEMBLE my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
 go bn_vtree.sub fvx
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=my_file_vars]
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
@@ -75193,7 +74449,7 @@ go bn_vtree.sub fvx
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
        FV1[d=another_file_vars]
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
@@ -75213,7 +74469,7 @@ let p2 = s3 + p3
 let p3 = p1 + S3
 go bn_vtree.sub p0    ! recursion
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -75224,7 +74480,7 @@ go bn_vtree.sub p0    ! recursion
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
            S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -75244,7 +74500,7 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
 let p3 = s1 + S3
 go bn_vtree.sub p0    ! ok
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -75255,7 +74511,7 @@ go bn_vtree.sub p0    ! ok
            S1 ??			<== UNKNOWN VARIABLE ******
            S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -75281,7 +74537,7 @@ show var/tree/d=my_file_vars    fv
    in default dataset my_file_vars
    FV = FV1 + FV1 + FV1
 show var/tree/d=my_uvar_agg     fv
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FV = FV1 + FV1 + FV1
      FV1   (aggregate variable)
 show var/tree/d=other_file_vars uv
@@ -75289,7 +74545,7 @@ show var/tree/d=other_file_vars uv
    UV = FVX + FVX + FVX
      FVX = FV1 + X[GX=FVX[D=1],I=1:3]
 show var/tree/d=my_uvar_agg     uv
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
        FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
@@ -75304,7 +74560,7 @@ let v2 = v1 + b + a + a        ! a appears after v1
 let v3 = a + v1 + b + a + a    ! a appears before v1
 go bn_vtree.sub v2
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -75315,7 +74571,7 @@ go bn_vtree.sub v2
      B =  (defined above)
      A =  (defined above)
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -75330,7 +74586,7 @@ v2 is ready and AVAILABLE
 ************************
 go bn_vtree.sub v3
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
        FV1[d=my_file_vars]
@@ -75341,7 +74597,7 @@ go bn_vtree.sub v3
          C = 1
      B =  (defined above)
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
      V1 = A  + B + B^2
@@ -75365,7 +74621,7 @@ let d = b + c
 let e = 1
 go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
        FV1[d=my_file_vars]
@@ -75376,7 +74632,7 @@ go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
    E = 1
    FVX[d=my_file_vars]
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
@@ -75400,12 +74656,12 @@ the problem is UNKNOWN VARIABLE: F
   let b = a[g=noexist]
   go bn_vtree.sub b
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
@@ -75419,11 +74675,11 @@ the problem is UNKNOWN GRID: NOEXIST
   let c = a[x=45s]
   go bn_vtree.sub c
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
@@ -75436,11 +74692,11 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
   let d = a[i=1,,j=2]
   go bn_vtree.sub d
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
@@ -75453,11 +74709,11 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
   let e = a[p=1]
   go bn_vtree.sub e
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
@@ -75470,11 +74726,11 @@ the problem is ERROR IN EXPRESSION: A[P=1]
   let f = a[i=10]
   go bn_vtree.sub f
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
 /TREE=FILE
@@ -75487,11 +74743,11 @@ f is ready and AVAILABLE
 ! dependency through attribute sharing (not yet implemented)
 let a = fvz.long_name[d=1]
 show var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = FVZ.LONG_NAME[D=1]
 let a = ..history[d=1]
 show var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = ..HISTORY[D=1]
  
 ! *****
@@ -75509,7 +74765,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR = 1
        regrid to GVAR = X[X=1:5]
@@ -75524,7 +74780,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
        regrid to GVAR = X[X=1:5]
@@ -75539,7 +74795,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR = 1
        regrid to GVAR ??		<== UNKNOWN GRID ******
@@ -75554,7 +74810,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
        regrid to GVAR ??		<== UNKNOWN GRID ******
@@ -76162,22 +75418,22 @@ T0 = 1-JAN-2001
    Axis span (to cell edges) = 8
 show grid bb
     GRID GHC2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- UPPERCASETIME TIME             8 r   02-JAN-2001 00:00    09-JAN-2001 00:00
+ UPPERCASETIME TIME             8 r   02-JAN-2001 00:00    09-JAN-2001 00:00   full
  normal    E
  normal    F
  
 ! This variable has axis time, lowercase in the file
 sh grid aa
     GRID GHC1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TIME16    T                   15 r   1                    15
+ TIME17    T                   15 r   1                    15                  full
  normal    E
  normal    F
 set axis/t0=1-jan-2001/units=days time
@@ -76407,19 +75663,19 @@ save/file=a.nc/clobber labels
 sp ncdump -h a.nc
 netcdf a {
 dimensions:
-	ENSEMBLE1 = 3 ;
+	ENSEMBLE = 3 ;
 	maxStrlen64 = 64 ;
 variables:
-	double ENSEMBLE1(ENSEMBLE1) ;
-		ENSEMBLE1:long_name = "Ensemble of Realizations" ;
-		ENSEMBLE1:axis = "E" ;
-		ENSEMBLE1:point_spacing = "even" ;
-	char LABELS(ENSEMBLE1, maxStrlen64) ;
+	double ENSEMBLE(ENSEMBLE) ;
+		ENSEMBLE:long_name = "Ensemble of Realizations" ;
+		ENSEMBLE:axis = "E" ;
+		ENSEMBLE:point_spacing = "even" ;
+	char LABELS(ENSEMBLE, maxStrlen64) ;
 		LABELS:long_name = "Realizations" ;
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76442,7 +75698,7 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76594,7 +75850,7 @@ shade/n=3/L=6 bath_tf
 ! If so its label will show Julian too.
 sh sym lab($labnum_f)
  !-> sh sym lab5
-LAB5 = "FORECAST : 2000 JULIAN"
+LAB5 = "FORECAST : 03-JAN-2000 00:00 JULIAN"
  
 GO bn_reset
 cancel mode verify
@@ -76627,8 +75883,8 @@ sh dat
  
 sh grid a[d=1]
     GRID GSI1
- name       axis              # pts   start                end
- XAXIS_TEST1 X                  4 r   1                    4
+ name       axis              # pts   start                end                 subset
+ XAXIS_TEST1 X                  4 r   1                    4                   full
  normal    Y
  normal    Z
  normal    T
@@ -76636,8 +75892,8 @@ sh grid a[d=1]
  normal    F
 sh grid b[d=2]
     GRID GRR1
- name       axis              # pts   start                end
- XAXIS_TEST X                   4 r   11                   14
+ name       axis              # pts   start                end                 subset
+ XAXIS_TEST X                   4 r   11                   14                  full
  normal    Y
  normal    Z
  normal    T
@@ -76670,7 +75926,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76700,7 +75956,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76721,7 +75977,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76742,7 +75998,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76764,7 +76020,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76975,7 +76231,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
@@ -76996,8 +76252,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
@@ -77013,7 +76269,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
@@ -77022,7 +76278,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
@@ -77127,11 +76383,11 @@ set axis/name=daysaxis `a,return=taxis`
  !-> set axis/name=daysaxis DAYSAXIS1
 sh grid a
     GRID GSI1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- daysaxis  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00
+ daysaxis  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00   full
  normal    E
  normal    F
  
@@ -77185,13 +76441,14 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        7    F       X13AXIS
+                                 orig_file_axname
+                                                 CHAR        7    F       X13AXIS
   
  A                     DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -77201,13 +76458,14 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        7    F       X13AXIS
+                                 orig_file_axname
+                                                 CHAR        7    F       X13AXIS
   
  B                     DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -77217,13 +76475,14 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta) 17-Nov-15
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        7    F       X13AXIS
+                                 orig_file_axname
+                                                 CHAR        7    F       X13AXIS
   
  C                     DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -77243,6 +76502,14 @@ set axis/name=.fr x_in_meters
  
 set mode/last ignore
  
+GO bn_reset
+cancel mode verify
+GO bn_let_remote
+! bn_let_remote.jnl
+! Tests of the F-TDS LET/REMOTE
+ 
+exit/script  ! ?? F-TDS broken on our thredds server?
+ 
 ! *********** v6.93 Additions ***********
 GO bn_reset
 cancel mode verify
@@ -77477,11 +76744,11 @@ ensemble ens = 1,2,3
 list/y=29.25  MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3],  MAIZE_YIELD[m=@ngd]
              LONGITUDE: 8W(-8) to 6W(-6)
              LATITUDE: 29.25N
-             E: 0.5 to 3.5 (number of valid)
+             E (realization): 0.5 to 3.5 (number of valid)
  Column  1: MAIZE_YIELD[D=maize_1] is  Maize harvest (kgC.m-2.yr-1)
  Column  2: MAIZE_YIELD[D=maize_2] is  Maize harvest (kgC.m-2.yr-1)
  Column  3: MAIZE_YIELD[D=maize_3] is  Maize harvest (kgC.m-2.yr-1)
- Column  4: MAIZE_YIELD[D=ENS,E=@NGD] is  Maize harvest (# of points)
+ Column  4: MAIZE_YIELD[D=ens,E=@NGD] is  Maize harvest (# of points)
         MAIZE_YIELD  MAIZE_YI MAIZE_Y MAIZE_YIELD
 7.75W  / 1:     ....  0.05247  0.1022   2.000
 7.25W  / 2:  0.01818  0.03588  0.0049   3.000
@@ -77628,6 +76895,7 @@ GO err69_levels_v
 ! based levels returned useless levels. Changes
 ! made to throw out data outside 3 std when
 ! computing the mean and std dev for color levels.
+! Note: fixes to LEV=V 2/2016
  
 use "lev_v_bug.nc"
 shade/lev=v var2d
@@ -77635,11 +76903,11 @@ shade/lev=v var2d
 ! previously the computed levels spanned -8000 to 16000.
 sh sym *lev*
 LEV_TEXT = "V"
-LEV_HISTO_LEVELS = "1.1,1.2,1.6,1.9,2.4,2.5,3.8,5.4,10.2,13.6,14.9"
-LEV_MIN = "-1.E+34"
-LEV_NUM = "51"
-LEV_DEL = "2.0000E+32"
-LEV_MAX = "2.0000E+32"
+LEV_OPNLEVS = "(290,330,10)(332,402,2)(400,450,10)(inf)"
+LEV_MIN = "290"
+LEV_NUM = "45"
+LEV_DEL = "irregular"
+LEV_MAX = "114930.72"
  
  
 GO bn_reset
@@ -77746,12 +77014,12 @@ def axis/z=1:20:1 zaxis
 define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
 let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
 sh grid bigvar
-    GRID (G103)
- name       axis              # pts   start                end
- XAXIS     X                  360 r   1                    360
- YAXIS     Y                  180 r   1                    180
- ZAXIS     Z                   20 r   1                    20
- LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                  360 r   1                    360                 full
+ YAXIS     Y                  180 r   1                    180                 full
+ ZAXIS     Z                   20 r   1                    20                  full
+ LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
  normal    E
  normal    F
 load bigvar
@@ -77759,12 +77027,12 @@ load bigvar
 ! also was an incorrect size.
 define axis/t=1-jan-2000:1-jan-2010:1/units=days  longtime
 sh grid bigvar
-    GRID (G103)
- name       axis              # pts   start                end
- XAXIS     X                  360 r   1                    360
- YAXIS     Y                  180 r   1                    180
- ZAXIS     Z                   20 r   1                    20
- LONGTIME  TIME              3654 r   01-JAN-2000 00:00    01-JAN-2010 00:00
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                  360 r   1                    360                 full
+ YAXIS     Y                  180 r   1                    180                 full
+ ZAXIS     Z                   20 r   1                    20                  full
+ LONGTIME  TIME              3654 r   01-JAN-2000 00:00    01-JAN-2010 00:00   full
  normal    E
  normal    F
 load bigvar
@@ -77780,11 +77048,11 @@ GO err69_write_attribute
 use gt4d011.cdf
 sh grid temp
     GRID PS3DT21
- name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
- PSYT1     LATITUDE           100 i   28.836S              48.568N
- PSZT2     DEPTH (m)           27 i-  5                    3824
- TIME16    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ 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
  normal    E
  normal    F
 let a = temp[x=@ave,y=@ave,L=1]
@@ -77802,7 +77070,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(TIME16, PSZT21_10) ;
+	double A(TIME17, PSZT21_10) ;
  
 ! But it was being written for this one. It should not.
 let b =  temp[x=@ave,y=@ave,L=1,d=1]
@@ -77816,7 +77084,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(TIME16, PSZT21_10) ;
+	double B(TIME17, PSZT21_10) ;
  
 ! A variable that depends on more than one dataset.
 use coads_climatology
@@ -78122,10 +77390,10 @@ show grid/dynamic             ! look for "err: grid over-allocated" messages
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX127)                         use count:   1
-    AXIS (AX049)                         use count:  13
-    AXIS (AX047)                         use count:  13
-    AXIS (AX020)                         use count:   2
+    AXIS (AX132)                         use count:   1
+    AXIS (AX054)                         use count:  13
+    AXIS (AX052)                         use count:  13
+    AXIS (AX009)                         use count:   2
 show axis xax_isready_1, xax_isready_2   ! did they both get canceled?
  name       axis              # pts   start                end
  
@@ -78172,12 +77440,15 @@ GO bn_append_dsg
 !  Argument is a file name; the single-cruise dsg file from the data entry
 !
 ! We append more variables to the file, using the same obs dimension.
+! 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
  
 use test_save_dsg.nc
  
+cancel mode upcase
+ 
 ! Lon in 0-360
 let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
 define attribute/output lon360.ioos_category = "Location"
@@ -78214,14 +77485,14 @@ variables:
 		longitude:long_name = "longitude" ;
 		longitude:standard_name = "longitude" ;
 		longitude:ioos_category = "Location" ;
-	double LON360(obs) ;
-		LON360:missing_value = -1.e+34 ;
-		LON360:_FillValue = -1.e+34 ;
-		LON360:long_name = "longitude" ;
-		LON360:units = "degrees_east" ;
-		LON360:ioos_category = "Location" ;
-		LON360:standard_name = "Longitude" ;
-		LON360:history = "added to test_save_dsg.nc" ;
+	double lon360(obs) ;
+		lon360:missing_value = -1.e+34 ;
+		lon360:_FillValue = -1.e+34 ;
+		lon360:long_name = "longitude" ;
+		lon360:units = "degrees_east" ;
+		lon360:ioos_category = "Location" ;
+		lon360:standard_name = "Longitude" ;
+		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
 		:History = "CruiseDsgNcFile 1.0" ;
@@ -78233,16 +77504,19 @@ variables:
 		:geospatial_lat_max = 29.07 ;
 		:time_coverage_start = "2006-06-10T23:48:00Z" ;
 		:time_converage_end = "2006-06-11T00:12:00Z" ;
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 }
  
+set mode/last upcase
+ 
+ 
 GO bn_reset
 cancel mode verify
 GO bn_global_atts
- ! NOAA/PMEL TMAP
- ! FERRET v6.91 (beta)
- ! Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 04/07/14
- !  7-Apr-14 16:41
+! bn_global_atts
+! NOTE With the fix for ticket 2241, we need to add CANCEL MODE UPCASE.
+ 
+cancel mode upcase
  
 sp cp global.nc  global_copy.nc
 use global_copy.nc
@@ -78316,17 +77590,17 @@ variables:
 		longitude:long_name = "longitude" ;
 		longitude:standard_name = "longitude" ;
 		longitude:ioos_category = "Location" ;
-	double LON360(obs) ;
-		LON360:missing_value = -1.e+34 ;
-		LON360:_FillValue = -1.e+34 ;
-		LON360:long_name = "longitude" ;
-		LON360:units = "degrees_east" ;
-		LON360:ioos_category = "Location" ;
-		LON360:standard_name = "Longitude" ;
-		LON360:history = "added to test_save_dsg.nc" ;
+	double lon360(obs) ;
+		lon360:missing_value = -1.e+34 ;
+		lon360:_FillValue = -1.e+34 ;
+		lon360:long_name = "longitude" ;
+		lon360:units = "degrees_east" ;
+		lon360:ioos_category = "Location" ;
+		lon360:standard_name = "Longitude" ;
+		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -78353,10 +77627,11 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V6.951 (beta) 17-Nov-15 
+ FERRET V6.97 (beta/dbg) 11-May-16 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
+set mode/last upcase
  
  
 GO bn_reset
@@ -78385,7 +77660,7 @@ can dat/all; use conventions_history
 ! The new attibutes
 sh att .
      attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V6.951 (beta) 17-Nov-15 
+ ..history = The history of the fileFERRET V6.97 (beta/dbg) 11-May-16 
  ..Conventions = Conventions for variables named V2CF-1.6 
  
 GO bn_reset
@@ -78580,30 +77855,26 @@ sp cat a.txt
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 365.2425 (modulo length = axis span)
  name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
-   Axis span (to cell edges) = 160 (modulo length = axis span)
- PSXU      LONGITUDE          160mr   131E                 70W
-   Axis span (to cell edges) = 160 (modulo length = 360)
- PSYT      Y (seconds)        100 i   -28.836              48.568
-   Axis span (to cell edges) = 80.00004
- PSYU      LATITUDE           100 i   27.672S              50N
-   Axis span (to cell edges) = 80.2682
- PSZT      Z (zorro)           27 i-  5                    3824
-   Axis span (to cell edges) = 4149
- PSZW      DEPTH (m)           27 i-  10                   4149
-   Axis span (to cell edges) = 4144
  PSYT5_89  LATITUDE            85 i   20.151S              21.613N
    Axis span (to cell edges) = 43.60417
  PSZT1_2   DEPTH (m)            2 r-  5                    15
    Axis span (to cell edges) = 20
  PSZT2     DEPTH (m)           27 i-  5                    3824
    Axis span (to cell edges) = 4149
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
+ PSXT      LONGITUDE          160mr   130.5E               70.5W
    Axis span (to cell edges) = 160 (modulo length = 360)
  PSYT1     LATITUDE           100 i   28.836S              48.568N
    Axis span (to cell edges) = 80.00004
  PSZT1     Z (METERS)          27 i   5                    3824
    Axis span (to cell edges) = 4149
+ PSXU      LONGITUDE          160mr   131E                 70W
+   Axis span (to cell edges) = 160 (modulo length = 360)
+ PSYU      LATITUDE           100 i   27.672S              50N
+   Axis span (to cell edges) = 80.2682
+ PSZW      DEPTH (m)           27 i-  10                   4149
+   Axis span (to cell edges) = 4144
+ PSYT      Y (seconds)        100 i   -28.836              48.568
+   Axis span (to cell edges) = 80.00004
  
 ! show grid/outfile
  
@@ -78614,11 +77885,11 @@ SAY ---------------- Just the grid of sst
 ---------------- Just the grid of sst
 sp cat a.txt
     GRID GSQ1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ 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
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  normal    E
  normal    F
  
@@ -78671,11 +77942,11 @@ SAY ---------------- Just grid of sst
 ---------------- Just grid of sst
 sp cat a.txt
     GRID GSQ1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ 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
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  normal    E
  normal    F
  
@@ -78713,9 +77984,6 @@ show grid/clobber/outfile=a.txt PS3*
 SAY ---------------- only showing all grids starting with PS3
 ---------------- only showing all grids starting with PS3
 sp cat a.txt
-      PS3DT
-      PS3DU
-      PS3DW
       PS3DT2
  
 SAY ---------------- tests sending output of vtree to a file
@@ -78724,6 +77992,7 @@ GO bn_vtree_outfile
 ! bn_tree_outfile.jnl
  
 ! 8/2014 -- demonstrate SHOW VARIABLE/TREE/OUTFILE
+! 11/15 -- default for DEFINE DATA/AGG has become /T instead of /E
  
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -78970,12 +78239,12 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 /TREE=FILE
 fv1 is ready and AVAILABLE
 ************************
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
      FV1[d=my_file_vars]
      FV1[d=other_file_vars]
      FV1[d=another_file_vars]
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
  
    FV1[d=my_file_vars]
@@ -78986,14 +78255,14 @@ fv1 is ready and AVAILABLE
 /TREE=FILE
 fvx is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=my_file_vars]
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
        FV1[d=other_file_vars]
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
        FV1[d=another_file_vars]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
@@ -79006,7 +78275,7 @@ fvx is ready and AVAILABLE
 /TREE=FILE
 the problem is ILLEGAL RECURSIVE VARIABLES: P1
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -79016,7 +78285,7 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
            S3 ??			<== UNKNOWN VARIABLE ******
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -79035,7 +78304,7 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
 /TREE=FILE
 the problem is UNKNOWN VARIABLE: S1
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -79045,7 +78314,7 @@ the problem is UNKNOWN VARIABLE: S1
          P3 = S1 + S3
            S1 ??			<== UNKNOWN VARIABLE ******
            S3 ??			<== UNKNOWN VARIABLE ******
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -79062,13 +78331,13 @@ the problem is UNKNOWN VARIABLE: S1
    *unknown variable: S3
    in default dataset my_file_vars
    FV = FV1 + FV1 + FV1
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FV = FV1 + FV1 + FV1
      FV1   (aggregate variable)
    in default dataset other_file_vars
    UV = FVX + FVX + FVX
      FVX = FV1 + X[GX=FVX[D=1],I=1:3]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
        FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
@@ -79079,7 +78348,7 @@ the problem is UNKNOWN VARIABLE: S1
 /TREE=FILE
 v2 is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -79089,7 +78358,7 @@ v2 is ready and AVAILABLE
          C = 1
      B =  (defined above)
      A =  (defined above)
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -79104,7 +78373,7 @@ v2 is ready and AVAILABLE
 /TREE=FILE
 v3 is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
        FV1[d=my_file_vars]
@@ -79114,7 +78383,7 @@ v3 is ready and AVAILABLE
        B = C
          C = 1
      B =  (defined above)
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
      V1 = A  + B + B^2
@@ -79129,7 +78398,7 @@ v3 is ready and AVAILABLE
 /TREE=FILE
 the problem is UNKNOWN VARIABLE: F
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
        FV1[d=my_file_vars]
@@ -79139,7 +78408,7 @@ the problem is UNKNOWN VARIABLE: F
    NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
    FVX[d=my_file_vars]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
@@ -79156,11 +78425,11 @@ the problem is UNKNOWN VARIABLE: F
 /TREE=FILE
 the problem is UNKNOWN GRID: NOEXIST
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
@@ -79170,10 +78439,10 @@ the problem is UNKNOWN GRID: NOEXIST
 /TREE=FILE
 the problem is ERROR IN EXPRESSION: A[X=45S]
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
       *WARNING: syntax error: A[X=45S]
@@ -79182,10 +78451,10 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
 /TREE=FILE
 the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
       *WARNING: syntax error: A[I=1,,J=2]
@@ -79194,10 +78463,10 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
 /TREE=FILE
 the problem is ERROR IN EXPRESSION: A[P=1]
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
       *WARNING: syntax error: A[P=1]
@@ -79206,15 +78475,15 @@ the problem is ERROR IN EXPRESSION: A[P=1]
 /TREE=FILE
 f is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = FVZ.LONG_NAME[D=1]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = ..HISTORY[D=1]
  
  
@@ -79318,8 +78587,8 @@ list {spawn:"ls xml*.jnl"}
  
 LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
 say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 908
-908
+ !-> MESSAGE/CONTINUE 973
+973
  
 let files = {spawn:"ls *cdf*.jnl"}
 let name_len = strindex(files, ".sub")
@@ -79397,6 +78666,7 @@ list 'abc'
              FILENAME : aa.nc
           12.00
  
+set mode/last upcase
  
 GO bn_reset
 cancel mode verify
@@ -79812,11 +79082,13 @@ say `a[x=@min]`
  allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  strip --> A[X=25E:25E(385)@MIN,D=2]
- strip moduloing A on X axis:     0    83 dset:   2
- reading A        M: 48 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling A on X axis:     0    83 dset:   2
+ strip moduloing A on X axis:     0    82 dset:   2
+ reading A        M: 74 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:     1    82 dset:   2
+ doing modulo-void-filling A on X axis:     0    82 dset:   2
  doing --> A[X=25E:25E(385)@MIN,D=2]
- -DELETE A        M: 78 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M: 66 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 25.27740573883057
 25.27740573883057
  
@@ -79830,11 +79102,13 @@ say `b`
  eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  eval    B        C:  6 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  strip --> A[X=25E:25E(385)@MIN,D=2]
- strip moduloing A on X axis:     0    83 dset:   2
- reading A        M: 78 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling A on X axis:     0    83 dset:   2
+ strip moduloing A on X axis:     0    82 dset:   2
+ reading A        M: 66 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:     1    82 dset:   2
+ doing modulo-void-filling A on X axis:     0    82 dset:   2
  doing --> A[X=25E:25E(385)@MIN,D=2]
- -DELETE B        M: 80 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE B        M: 39 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 25.27740573883057
 25.27740573883057
  
@@ -79911,7 +79185,7 @@ list/x=135.402W:135.321W/y=58.609 elev
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
              SUBSET   : 7 points (LONGITUDE)
-             LATITUDE : 58.61N (interpolated)
+             LATITUDE : 58.609N (interpolated)
              T (day)  : 1.7837
  135.402W / 45:   ....
  135.389W / 46:   ....
@@ -79943,7 +79217,7 @@ list/x=135.402W:135.321W/y=58.609 elev
              VARIABLE : Surface elevation (meter)
              FILENAME : a.nc
              SUBSET   : 7 points (LONGITUDE)
-             LATITUDE : 58.61N (interpolated)
+             LATITUDE : 58.609N (interpolated)
              T (day)  : 1.7837
  135.402W / 45:   ....
  135.389W / 46:   ....
@@ -80052,7 +79326,7 @@ set view lower; plot/m=2 efvar
 list/n=3 efvar
              VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
              SUBSET   : 4 points (E)
-             F        : 0.2
+             F        : 0.234
  1001.1 / 1:  4.000
  1234   / 2:  5.000
  2112.3 / 3:  6.000
@@ -80171,8 +79445,8 @@ GO err693_isize_and_gcfcn
 can mode verify
 8
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              7 pts
  normal    Y
  normal    Z
  normal    T
@@ -80196,8 +79470,8 @@ can mode verify
 8 h
 8
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -80840,13 +80114,6 @@ LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
     time: numeric times
     time_axis: Varible with a time axis to use to convert time to time strings
     string to prepend: A label to start the strings (STRING)
-LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
-    Generate names based on longitude,latitude,time,and a string
-    longitude: Station longitude
-    latitude: Station latitude
-    time: numeric times
-    time_axis: Varible with a time axis to use to convert time to time strings
-    string to prepend: A label to start the names with (STRING)
  
 ! Longitudes are translated to 0:360 range
 let lon = {-172.44, 210.01, -19.5}
@@ -81898,57 +81165,63 @@ GO bn_fmrc
 ! bn_fmrc.jnl
 ! initial test of DEFINE DATA/F
  
+! *sh* 11/15 MUCH MORE DETAILED BENCHMARK NEEDED!
+ 
 use "run1.nc"
 use "run2.nc"
 use "run3.nc"
 use "run4.nc"
  
-define data/hide/F/agg/title fourfiles = 1,2,3,4
+define data/hide/F/agg fourfiles = 1,2,3,4
  
 sh grid sst
-    GRID (G087)
- name       axis              # pts   start                end
- LON1      LONGITUDE           10mr   109W                 91W
- LAT       LATITUDE             9 r   13N                  29N
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ LON1      LONGITUDE           10mr   109W                 91W                 full
+ LAT       LATITUDE             9 r   13N                  29N                 full
  normal    Z
- TF_LAG_T  MODEL ELAPSED TIME (12 r   0                    11
+ TF_LAG_T  MODEL ELAPSED TIME (12 r   0.5                  11.5                full
  normal    E
- TF_CAL_F  FORECAST             4 r   02-JAN-2010 00:00    08-JAN-2010 00:00
+ TF_CAL_F  FORECAST             4 r   01-JAN-2010 12:00    07-JAN-2010 12:00   full
 list/i=1/j=1/L=1:6/n=1:4 sst
              VARIABLE : SST_IN (Deg C)
-             FILENAME : FOURFILES
+             DATA SET : Forecast series of 4 datasets patterned on run1
+             FILENAME : fourfiles
              SUBSET   : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
              LONGITUDE: 109W
              LATITUDE : 13N
              Verification time increases across row.  Initialization time increases down page. 
-                         0         1         2         3         4         5      
+                         0.5       1.5       2.5       3.5       4.5       5.5    
                           1         2         3         4         5         6
- 02-JAN-2010 00 / 1:   27.3789   27.4378   27.5751   28.1351   28.8653   28.7771
- 04-JAN-2010 00 / 2:   54.7577   54.8756   55.1503   56.2703   57.7306   57.5541
- 06-JAN-2010 00 / 3:   82.1366   82.3133   82.7254   84.4054   86.5959   86.3312
- 08-JAN-2010 00 / 4:  109.5154  109.7511  110.3006  112.5405  115.4613  115.1082
+ 01-JAN-2010 12 / 1:   27.3789   27.4378   27.5751   28.1351   28.8653   28.7771
+ 03-JAN-2010 12 / 2:   54.7577   54.8756   55.1503   56.2703   57.7306   57.5541
+ 05-JAN-2010 12 / 3:   82.1366   82.3133   82.7254   84.4054   86.5959   86.3312
+ 07-JAN-2010 12 / 4:  109.5154  109.7511  110.3006  112.5405  115.4613  115.1082
  
 show att sst
-     attributes for dataset: FOURFILES
+     attributes for dataset: fourfiles
  SST.long_name = SST_IN 
  SST.units = Deg C 
  SST.missing_value = -1.E+34
- SST.coordinates = FORECAST TIME15 TF_TIMES TIME15 LAT LON1 
- SST._ftime2dRef = TF_TIMES 
+ SST.coordinates = RUN TIME16 TF_TIMES TIME16 LAT LON1 
+ SST._ftime2d = TF_TIMES 
+ SST._cal_t_ax = TF_CAL_T 
+ SST._lag_f_ax = TF_LAG_F 
  
 ! Attribute _ftime2dRef pointe to the 2D time variable
-list/L=1:6/n=1:4 `sst._ftime2dRef`
+list/L=1:6/n=1:4 `sst._ftime2d`
  !-> list/L=1:6/n=1:4 TF_TIMES
              VARIABLE : Forecast time step matrix (day since 01-JAN-2010 00:00:00)
-             FILENAME : FOURFILES
+             DATA SET : Forecast series of 4 datasets patterned on run1
+             FILENAME : fourfiles
              SUBSET   : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
              Verification time increases across row.  Initialization time increases down page. 
-                         0         1         2         3         4         5      
+                         0.5       1.5       2.5       3.5       4.5       5.5    
                           1         2         3         4         5         6
- 02-JAN-2010 00 / 1:   1.00000   2.00000   3.00000   4.00000   5.00000   6.00000
- 04-JAN-2010 00 / 2:   3.00000   4.00000   5.00000   6.00000   7.00000   8.00000
- 06-JAN-2010 00 / 3:   5.00000   6.00000   7.00000   8.00000   9.00000  10.00000
- 08-JAN-2010 00 / 4:   7.00000   8.00000   9.00000  10.00000  11.00000  12.00000
+ 01-JAN-2010 12 / 1:   1.00000   2.00000   3.00000   4.00000   5.00000   6.00000
+ 03-JAN-2010 12 / 2:   3.00000   4.00000   5.00000   6.00000   7.00000   8.00000
+ 05-JAN-2010 12 / 3:   5.00000   6.00000   7.00000   8.00000   9.00000  10.00000
+ 07-JAN-2010 12 / 4:   7.00000   8.00000   9.00000  10.00000  11.00000  12.00000
  
  
 GO bn_reset
@@ -82253,8 +81526,8 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  LAB14 -1.542E+00 -1.059E+00 0.500   45  USER    M
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB15 -3.972E+00  4.958E-08 0.500   45  USER    M
- LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
+ LAB15 -3.972E+00 -1.059E+00 0.500   45  USER    4.9578946316E-,1, M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  LAB16 -2.514E+00 -3.178E+00 0.500   45  USER    M
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB17 -1.301E+00 -2.654E+00 0.500   45  USER    M
@@ -82466,10 +81739,10 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GAO1
     GRID GAO1
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAXLEVITR DEPTH (m)           20 i-  0                    5000
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                10 pts
  normal    T
  normal    E
  normal    F
@@ -82488,9 +81761,9 @@ 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    NORMAL    NORMAL
  getgrid ZPTS     C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G108)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G108)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G108)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G094)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G094)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
  allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
  dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
  allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
@@ -82500,14 +81773,14 @@ LIST/PREC=7 tempz
  allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
  strip regrid on Z: TEMP --> (G086)           @LIN
  eval    DEPTH    C:  9 dset:   1 I:    1    2  J:    1    2  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  Z        M:112 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M:104 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading TEMP     M: 98 dset:   1 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:104 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 96 dset:   0 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Z        M:112 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- reading TEMP     M:112 dset:   1 I:    1    2  J:    1    2  K:    7   12  L: -999 -999  M: -999 -999  N: -999 -999
- auxgrd  TEMP     M: 96 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  Z        M: 86 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M: 82 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading TEMP     M: 80 dset:   1 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 82 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 74 dset:   0 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE Z        M: 86 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
+ reading TEMP     M: 86 dset:   1 I:    1    2  J:    1    2  K:    7   12  L: -999 -999  M: -999 -999  N: -999 -999
+ auxgrd  TEMP     M: 74 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
              VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
              FILENAME : levitus_3d_subset.nc
@@ -82534,10 +81807,10 @@ SHOW GRID tempz
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
     GRID (G086)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- (AX113)   Z                    5 r   100                  500
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX113)   Z                    5 r   100                  500                 full
  normal    T
  normal    E
  normal    F
@@ -82583,11 +81856,11 @@ LIST tempzax
  48.5S / 2:  5.835500  6.045001
  49.5S / 1:  4.879000  5.102500
 SHOW GRID tempzax
-    GRID (G106)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAX       Z (METERS)           5 r   100                  500
+    GRID (G109)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 full
  normal    T
  normal    E
  normal    F
@@ -82619,11 +81892,11 @@ LIST/PREC=7 tempz_alt
  48.5S / 2:  7.726000  7.917999
  49.5S / 1:  6.843000  7.021999
 SHOW GRID tempz_alt
-    GRID (G103)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- (AX129)   Z                    5 r   2                    10
+    GRID (G096)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX122)   Z                    5 r   2                    10                  4 pts
  normal    T
  normal    E
  normal    F
@@ -82646,11 +81919,11 @@ LIST/PREC=7 tempz_1pt
  48.5S / 2:  7.725600  7.917999
  49.5S / 1:  6.836600  7.016000
 SHOW GRID/z tempz_1pt
-    GRID (G087)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- (AX114)   Z                    1 r   6                    6
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX125)   Z                    1 r   6                    6                   1 pt
  normal    T
  normal    E
  normal    F
@@ -82672,10 +81945,10 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GAO1
     GRID GAO1
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAXLEVITR DEPTH (m)           20 i-  0                    5000
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                1 pt
  normal    T
  normal    E
  normal    F
@@ -82713,11 +81986,11 @@ LIST/PREC=7 rvtempzax - tempz
  48.5S / 2:  0.0000000  0.0000000
  49.5S / 1:  0.0000000  0.0000000
 SHOW GRID rvtempzax
-    GRID (G106)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAX       Z (METERS)           5 r   100                  500
+    GRID (G109)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
  normal    E
  normal    F
@@ -83908,11 +83181,11 @@ LIST/PREC=7 rvtempzaxave - tempz
  48.5S / 2:  0.00000000  0.00000000
  49.5S / 1:  0.00000000  0.00000000
 SHOW GRID/z rvtempzaxave
-    GRID (G106)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAX       Z (METERS)           5 r   100                  500
+    GRID (G109)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
  normal    E
  normal    F
@@ -86364,6 +85637,42 @@ LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
 17S   / 19: "  8.1" "008.1"
 13S   / 20: "  9.7" "009.7"
  
+! Now test (F0.0) and (I0) formats which return the
+! shortest possible value without the fractional part.
+! Per marco.van-hulten at lsce.ipsl.fr - this is legal in
+! gfortran, so allow it.
+ 
+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
+             LATITUDE: 91S to 11S
+             LONGITUDE: 165W
+             TIME: 16-JAN 06:00
+ Column  1: VAR1[G=4 deg on Y] is FLOATSTR(SST-20,"(f0.0)") (regrid: 4 deg on Y)
+ Column  2: VAR2[G=4 deg on Y] is FLOATSTR(SST-20,"(I0)") (regrid: 4 deg on Y)
+             VAR1   VAR2
+89S   /  1: ""     ""   
+85S   /  2: ""     ""   
+81S   /  3: ""     ""   
+77S   /  4: "-20." "-20"
+73S   /  5: "-21." "-21"
+69S   /  6: "-20." "-19"
+65S   /  7: "-20." "-20"
+61S   /  8: "-17." "-17"
+57S   /  9: "-14." "-13"
+53S   / 10: "-11." "-11"
+49S   / 11: "-7."  "-7" 
+45S   / 12: "-6."  "-5" 
+41S   / 13: "-4."  "-3" 
+37S   / 14: "-1."  "-1" 
+33S   / 15: "1."   "0"  
+29S   / 16: "3."   "2"  
+25S   / 17: "5."   "5"  
+21S   / 18: "8."   "7"  
+17S   / 19: "8."   "8"  
+13S   / 20: "10."  "9"  
+ 
 ! *********** v6.96 Additions ***********
  
 GO bn_reset
@@ -86388,11 +85697,11 @@ use shorttemp.nc
 ! Previously showed tbox=0 for every second pt.
 sh grid/l=1:4444 temp
     GRID GSL1
- name       axis              # pts   start                end
- LON1      LONGITUDE            1 r   97.45W               97.45W
- LAT       LATITUDE             1 r   36.65N               36.65N
- PFULL1_1  Z (hpa)              1 r-  3.3236               3.3236
- TIME16    TIME                 4 i   19-JUN-1997 00:00    19-JUN-1997 01:30
+ name       axis              # pts   start                end                 subset
+ 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
  normal    E
  normal    F
  
@@ -86436,6 +85745,42 @@ SET MODE/LAST ignore
  
 GO bn_reset
 cancel mode verify
+GO err695_grave_prec
+! err695_grave_prec
+! Bug 2323. Large numbers had incorrect results on grave-accent
+! evaluations, returning only 8 digits of precision
+ 
+list/nohead/p=16 1234567890123456, `1234567890123456`
+ !-> list/nohead/p=16 1234567890123456,   1234567890123456.
+I / *:     1234567890123456.  1234567890123456.
+list/nohead/p=16 -1234567890123.456, `-1234567890123.456`
+ !-> list/nohead/p=16 -1234567890123.456,  -1234567890123.456
+I / *:    -1234567890123.456 -1234567890123.456
+ 
+! this was ok
+list/nohead/p=16 1.234567890123456, `1.1234567890123456`
+ !-> list/nohead/p=16 1.234567890123456, 1.123456789012346
+I / *:     1.234567890123456  1.123456789012346
+ 
+! check output when asking for lower precision
+list/nohead/p=9 1234567890123456, `1234567890123456`
+ !-> list/nohead/p=9 1234567890123456,   1234567890123456.
+I / *:     1.23456789E+15  1.23456789E+15
+list/nohead/p=6 1234567890123456, `1234567890123456`
+ !-> list/nohead/p=6 1234567890123456,   1234567890123456.
+I / *:     1.23457E+15  1.23457E+15
+ 
+let var = 1.23456e+34
+say `var`
+ !-> MESSAGE/CONTINUE 1.23456E+34
+1.23456E+34
+ 
+say `var,prec=4`
+ !-> MESSAGE/CONTINUE 1.235E+34
+1.235E+34
+ 
+GO bn_reset
+cancel mode verify
 GO bn_bin_regrid
 ! bin regridding tests
  
@@ -86628,195 +85973,9038 @@ LIST dest, var[G$1=dcoarse]
 4   / 4:  4.000000      ....
 5   / 5:  5.000000  5.000000
  
-go bn_bin_regrid.sub T
-! Tests of @BIN and @NBIN regridding transforms
+go bn_bin_regrid.sub T
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/T=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/T irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _T[GT=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+             T: 0.5 to 5.5
+ Column  1: DEST is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T at AVE] is _T[GT=IRR] (regrid: 1 delta on T at AVE)
+ Column  3: VAR[G=1 delta on T at BIN] is _T[GT=IRR] (regrid: 1 delta on T at BIN)
+ Column  4: VAR[G=1 delta on T at NBIN] is _T[GT=IRR] (regrid: 1 delta on T at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.177778  1.150000  2.000000
+2   / 2:  2.000000  1.545000      ....  0.000000
+3   / 3:  3.000000  3.500000      ....  0.000000
+4   / 4:  4.000000  3.980000  3.500000  1.000000
+5   / 5:  5.000000  4.838462  4.850000  2.000000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _T[gT=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+             T: 0.5 to 5.5
+ Column  1: DEST is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T at AVE] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at AVE)
+ Column  3: VAR[G=1 delta on T at BIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at BIN)
+ Column  4: VAR[G=1 delta on T at NBIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.955556  1.650000  2.000000
+2   / 2:  2.000000  2.200000      ....  0.000000
+3   / 3:  3.000000      ....      ....  0.000000
+4   / 4:  4.000000      ....      ....  0.000000
+5   / 5:  5.000000  5.000000  5.000000  1.000000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GT=dcoarse]
+             T: 0.5 to 5.5
+ Column  1: DEST is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
+             DEST     VAR
+1   / 1:  1.000000      ....
+2   / 2:  2.000000      ....
+3   / 3:  3.000000      ....
+4   / 4:  4.000000      ....
+5   / 5:  5.000000  5.000000
+ 
+go bn_bin_regrid.sub E
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/E=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/E irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _E[GE=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+             E: 0.5 to 5.5
+ Column  1: DEST is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E at AVE] is _E[GE=IRR] (regrid: 1 delta on E at AVE)
+ Column  3: VAR[G=1 delta on E at BIN] is _E[GE=IRR] (regrid: 1 delta on E at BIN)
+ Column  4: VAR[G=1 delta on E at NBIN] is _E[GE=IRR] (regrid: 1 delta on E at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.177778  1.150000  2.000000
+2   / 2:  2.000000  1.545000      ....  0.000000
+3   / 3:  3.000000  3.500000      ....  0.000000
+4   / 4:  4.000000  3.980000  3.500000  1.000000
+5   / 5:  5.000000  4.838462  4.850000  2.000000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _E[gE=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+             E: 0.5 to 5.5
+ Column  1: DEST is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E at AVE] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at AVE)
+ Column  3: VAR[G=1 delta on E at BIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at BIN)
+ Column  4: VAR[G=1 delta on E at NBIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.955556  1.650000  2.000000
+2   / 2:  2.000000  2.200000      ....  0.000000
+3   / 3:  3.000000      ....      ....  0.000000
+4   / 4:  4.000000      ....      ....  0.000000
+5   / 5:  5.000000  5.000000  5.000000  1.000000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GE=dcoarse]
+             E: 0.5 to 5.5
+ Column  1: DEST is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
+             DEST     VAR
+1   / 1:  1.000000      ....
+2   / 2:  2.000000      ....
+3   / 3:  3.000000      ....
+4   / 4:  4.000000      ....
+5   / 5:  5.000000  5.000000
+ 
+go bn_bin_regrid.sub F
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/F=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/F irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _F[GF=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+             F: 0.5 to 5.5
+ Column  1: DEST is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F at AVE] is _F[GF=IRR] (regrid: 1 delta on F at AVE)
+ Column  3: VAR[G=1 delta on F at BIN] is _F[GF=IRR] (regrid: 1 delta on F at BIN)
+ Column  4: VAR[G=1 delta on F at NBIN] is _F[GF=IRR] (regrid: 1 delta on F at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.177778  1.150000  2.000000
+2   / 2:  2.000000  1.545000      ....  0.000000
+3   / 3:  3.000000  3.500000      ....  0.000000
+4   / 4:  4.000000  3.980000  3.500000  1.000000
+5   / 5:  5.000000  4.838462  4.850000  2.000000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _F[gF=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+             F: 0.5 to 5.5
+ Column  1: DEST is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F at AVE] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at AVE)
+ Column  3: VAR[G=1 delta on F at BIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at BIN)
+ Column  4: VAR[G=1 delta on F at NBIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.955556  1.650000  2.000000
+2   / 2:  2.000000  2.200000      ....  0.000000
+3   / 3:  3.000000      ....      ....  0.000000
+4   / 4:  4.000000      ....      ....  0.000000
+5   / 5:  5.000000  5.000000  5.000000  1.000000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GF=dcoarse]
+             F: 0.5 to 5.5
+ Column  1: DEST is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
+             DEST     VAR
+1   / 1:  1.000000      ....
+2   / 2:  2.000000      ....
+3   / 3:  3.000000      ....
+4   / 4:  4.000000      ....
+5   / 5:  5.000000  5.000000
+ 
+ 
+! *********** v6.97 Additions ***********
+ 
+GO bn_reset
+cancel mode verify
+GO bn697_bug_fixes
+! bn697_bug_fixes
+! test various fixes that went into version 6.97
+ 
+GO bn_reset
+cancel mode verify
+GO err696_only_inf_lev
+! Bug 2326: levels with only a value and (inf) or (-inf)
+! should show values less-equal or greater-equal to that level.
+ 
+use coads_climatology; set reg/l=1
+ 
+! The plots should be the same left to right; just a triangle key
+! on the right
+set view ul; shade/lev=(20)(50) sst
+set view ur; shade/lev=(20)(inf) sst
+set view ll; shade/lev=(-50)(20) sst
+set view lr; shade/lev=(-inf)(20) sst
+ 
+! Horizontal keys
+can view
+set view ul; fill/lev=(20)(50) sst
+set view ur; fill/lev=(20)(inf) sst
+set view ll; fill/lev=(-50)(20) sst
+set view lr; fill/lev=(-inf)(20) sst
+ 
+! silly degenerate case, two-sided inf's
+can view
+set view ul; shade/lev=(-inf)(22)(inf) sst
+set view ur; shade/key=horiz/lev=(-inf)(22)(inf) sst
+ 
+GO bn_reset
+cancel mode verify
+GO err696_plot_ax_ppl
+! err696_plot_ax_ppl.jnl
+! ticket 2327
+!
+! restore settings properly after a PLOT/axes=
+! if there is a ppl axis-setting command before next plot
+ 
+plot/vs/noax 0,0
+ set view upper
+ppl axlabp 0 -1
+plot/nolab/vs 0,0
+ 
+ set view lower
+ppl axlabp 0 -1
+plot/nolab/vs 0,0
+ 
+can view
+vector/i=1:40/j=1:30/nolab/noax  j-20+(i-i),i-20+(j-j)
+ 
+set view upper
+ppl axlabp 0 -1
+vector/i=1:40/j=1:30/nolab j-20+(i-i),i-20+(j-j)
+ 
+ set view lower
+ppl axlabp 0 -1
+vector/i=1:40/j=1:30/nolab j-20+(i-i),i-20+(j-j)
+ 
+can view
+let var2d = i+j
+ 
+shade/i=1:40/j=1:30/nolab/noax var2d
+ set view upper
+ppl axlabp 0 -1
+shade/i=1:40/j=1:30/nolab var2d
+ 
+ set view lower
+ppl axlabp 0 -1
+shade/i=1:40/j=1:30/nolab var2d
+ 
+can view
+ 
+contour/i=1:40/j=1:30/nolab/noax var2d
+ set view upper
+ppl axlabp 0 -1
+contour/i=1:40/j=1:30/nolab var2d
+ 
+ set view lower
+ppl axlabp 0 -1
+contour/i=1:40/j=1:30/nolab var2d
+ 
+can view
+ 
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+let ypts = x/10
+let xpts = cos(x/10)
+ 
+polygon/trans/i=1:100/nolab/noax xpts+xsqr, ypts+ysqr, x*x/10
+ 
+ set view upper
+ppl axlabp 0 -1
+polygon/trans/i=1:100/nolab  xpts+xsqr, ypts+ysqr, x*x/10
+ 
+ set view lower
+ppl axlabp 0 -1
+polygon/trans/i=1:100/nolab  xpts+xsqr, ypts+ysqr, x*x/10
+can view
+ 
+! restore axis settings after a plot/set with/axes=
+ 
+set view upper
+plot/i=1:100/axes=1,0,0,1/set/title="labels" i*cos(i/8)
+ppl xlab "a label"
+ppl labset, , , 0.08
+ppl ylab "a multi line y label<NL>here"
+ppl plot
+ 
+set view lower
+plot/i=1:199 i*cos(i/10)
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_ft_calendars
+! err696_ft_calendars.jnl
+! see ticket 2332: check for matching calendars when
+! there are T and F axes in a file.
+ 
+! If the T or F calnedar is specified, use it for both axes
+! e.g. reference time has a calendar, forecast time does not list a calendar.
+ 
+use ft_cal_one.nc
+sh dat
+     currently SET data sets:
+    1> ./ft_cal_one.nc  (default)
+ name     title                             I         J         K         L         M         N
+ TIMEVAR  GRIB forecast or observation ti  ...       ...       ...       1:2       ...       1:3
+ 
+ 
+! Intentional error: two time axes with different calendars
+set mode ignore
+use ft_cal_mixed.nc
+ 
+can mode ignore
+ 
+can data/all
+ 
+GO bn_reset
+cancel mode verify
+GO err696_centerlab_restore
+! err696_centerlab_restore
+! Ticket 2331.
+! When a plot is made with
+!   shade/SET/key=centerlab; ppl shade
+! Then the nextsubsequent plot still had the centered key labeling.
+ 
+ 
+use coads_climatology
+set view left
+shade/SET/l=1/key=centerlab sst
+ppl shade
+ 
+set view right
+shade/l=1 sst
+ 
+! ...although the next one does restore the default.
+shade/l=1 sst
+ 
+! Horizontal plots with the same behavior.
+cancel view
+set view upper
+shade/SET/l=1/key=centerlab,horiz sst
+ppl shade
+ 
+set view lower
+shade/l=1/key=horiz sst
+ 
+! FILL plots
+cancel view
+set view left
+fill/SET/l=1/key=centerlab sst
+ppl shade
+ 
+! This plot still had the labels centered
+set view right
+fill/l=1 sst
+ 
+! Ribbon plots
+cancel view
+set view left; plot/ribbon/vs/line/thick/key=cent/SET {1,2,3,4}, {1,2,3,4}, {1,2,3,4}
+ppl ribbon
+set view right; plot/ribbon/vs/line/thick  {1,2,3,4}, {1,2,3,4}, {1,2,3,4}
+ 
+! Polygon plots
+cancel view
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+ 
+let ypts = x/10
+let xpts = cos(x/10)
+ 
+set view upper
+polygon/trans/i=1:20/nolab/key=horiz,center/SET xpts+xsqr, ypts+ysqr, x*x/10
+ppl polygon
+set view lower
+polygon/trans/i=1:20/nolab/key=horiz  xpts+xsqr, ypts+ysqr, x*x/10
+ 
+GO bn_reset
+cancel mode verify
+GO err696_time_overlay
+! err696_time_overlay
+! bug 2334, first plot/over takes too long and the line is incorrect.
+ 
+def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=noleap tax_nlp
+def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=julian tax_jul
+sp date
+Wed May 11 16:13:54 PDT 2016
+set view upper
+plot t[gt=tax_nlp]
+plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
+sp date
+Wed May 11 16:13:54 PDT 2016
+ 
+sp date
+Wed May 11 16:13:54 PDT 2016
+set view lower
+plot t[gt=tax_jul]
+plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
+sp date
+Wed May 11 16:13:54 PDT 2016
+ 
+GO bn_reset
+cancel mode verify
+GO err696_save_noupcase
+! err696_save_noupcase
+! Ticket 2336: When UPCASE canceled an extra upcase axis
+!  was written to a file - only when user-defined axis.
+!
+! Note as part of this fix, if MODE UPCASE is canceled,
+! then it also works as if SAVE/KEEP_AXISNAMES was given.
+! If keeping the original names then also don't write the
+! Ferret-added additions, e.g. TIME1 if there was already
+! a time axis; or a subset addition.
+ 
+ 
+! Tell Ferret to write everything in the original case
+cancel mode upcase
+ 
+! Define some axes and variables
+define axis/t=1-jan-2001:31-dec-2001:1/unit=days tday
+define axis/x=10:150:10/units=degrees_east xax
+ 
+let tt = t[gt=tday]
+let var  = 0*tt + x[gx=xax]
+ 
+save/clobber/file=myfile.nc tt, var
+ 
+! An extra TDAY axis was written out
+sp ncdump -h myfile.nc
+netcdf myfile {
+dimensions:
+	tday = UNLIMITED ; // (365 currently)
+	xax = 15 ;
+variables:
+	double tday(tday) ;
+		tday:units = "days since 1901-01-15 00:00:00" ;
+		tday:axis = "T" ;
+		tday:time_origin = "15-JAN-1901" ;
+		tday:standard_name = "time" ;
+	double tt(tday) ;
+		tt:missing_value = -1.e+34 ;
+		tt:_FillValue = -1.e+34 ;
+		tt:long_name = "T[GT=TDAY]" ;
+	double xax(xax) ;
+		xax:point_spacing = "even" ;
+		xax:axis = "X" ;
+		xax:modulo = 360. ;
+		xax:units = "degrees_east" ;
+		xax:standard_name = "longitude" ;
+	double var(tday, xax) ;
+		var:missing_value = -1.e+34 ;
+		var:_FillValue = -1.e+34 ;
+		var:long_name = "0*TT + X[GX=XAX]" ;
+
+// global attributes:
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+set mode/last upcase
+ 
+GO bn_reset
+cancel mode verify
+GO err696_argument_blanks
+! err696_argument_blanks.jnl
+! Ticket 2343: quoted argument with a blank at the end.
+ 
+ 
+! argument with a blank at the end
+go err696_argument_blanks_sub "hello "
+! for bug2343
+ 
+say ($1)there($2%.%)
+ !-> MESSAGE/CONTINUE hello there.
+hello there.
+ 
+! Preserve multiple blanks at the end
+go err696_argument_blanks_sub "hello     "
+! for bug2343
+ 
+say ($1)there($2%.%)
+ !-> MESSAGE/CONTINUE hello     there.
+hello     there.
+ 
+! 2 arguments; one with a blank at the end, next with a blank at the start.
+! Note the blanks at the start of Arg 1 are not preserved.  The command is
+! translated to  MESSAGE/CONTINUE   Hi Hi there my friend
+! and the blanks after MESSAGE/CONTINUE are just treated as a delimiter.
+ 
+go err696_argument_blanks_sub "  Hi Hi "  " my friend"
+! for bug2343
+ 
+say ($1)there($2%.%)
+ !-> MESSAGE/CONTINUE   Hi Hi there my friend
+Hi Hi there my friend
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_annotate_numeric
+! err696_annotate_numeric
+! 1/7/2016
+! ticket 2350: a purely numeric string
+! didn't appear on the plot.
+ 
+use coads_climatology
+shade/l=1/nokey/pal=white sst
+ 
+! text including non-numeric has worked fine
+annotate/user/xpos=180/ypos=30 "30 with text"
+ 
+! numeric only, with and witbhout quotes
+ 
+annotate/user/xpos=180/ypos=20/halign=-1 "20"
+annotate/user/xpos=180/ypos=10/halign=-1 10
+ 
+! tests with /NOUSER
+annotate/nouser/xpos=1/ypos=2.5 40
+ 
+! strings or purely numeric, without quotes works ok
+annotate/nouser/xpos=1/ypos=2.0 1.3+7.89
+annotate/nouser/xpos=1/ypos=1.5 `1.3+7.89-154,prec=6`
+ !-> annotate/nouser/xpos=1/ypos=1.5 -144.81
+ 
+! commas, just write the whole thing
+annotate/nouser/xpos=1/ypos=1.0 "40,30,20"
+ 
+annotate/nouser/xpos=1/ypos=0.5 1,2,3,4,5
+ 
+GO bn_reset
+cancel mode verify
+GO err696_e_component_mem_crptn
+! canceling of an E aggregation dataset is leaving
+! corrupted variables in memory as seen by the variable names "%%"
+ 
+use ens1, ens2, ens3, ens4
+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
+    5> fourfiles  (default)  Ensemble aggregation
+ 
+list/i=3 sst[T=@ave]
+             VARIABLE : SST_IN (Deg C)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
+             LONGITUDE: 105W
+             TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
+             13N       15N       17N       19N       21N       23N       25N       27N       29N     
+               1         2         3         4         5         6         7         8         9
+ 1   / 1:   28.5129   28.4412   27.8921   27.4565   26.7258   25.5612      ....      ....      ....
+ 2   / 2:   85.5386   85.3235   83.6763   82.3696   80.1774   76.6835      ....      ....      ....
+ 3   / 3:   57.0257   56.8823   55.7842   54.9131   53.4516   51.1223      ....      ....      ....
+ 4   / 4:  114.0514  113.7646  111.5685  109.8262  106.9033  102.2446      ....      ....      ....
+ 
+show mem/all
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+all data in memory:
+ SST[D=fourfiles]                  YE    mr:188  blk1:1  nblk:1
+    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+                                                              AVE
+ SST[D=fourfiles]                  YTE   mr:187  blk1:2  nblk:1
+    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ 
+cancel data fourfiles
+show mem/all
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+all data in memory:
+ 
+exit
+ 
+GO bn_reset
+cancel mode verify
+GO err696_mem_err_report
+! err696_mem_err_report.jnl
+! 1/21/2016 *acm*
+! Ticket 2354: The error message shows the wrong number for memory needed.
+!
+! Try to load some data larger than the default amount of memory
+ 
+let memsize = ($ferret_memory)
+ !-> DEFINE VARIABLE memsize = 25.6
+set mem/siz=2
+ 
+ 
+def axis/x=1:360:1 xaxis
+def axis/y=1:180:1 yaxis
+def axis/z=1:20:1 zaxis
+define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
+ 
+let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
+sh grid bigvar
+    GRID (G092)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                  360 r   1                    360                 full
+ YAXIS     Y                  180 r   1                    180                 full
+ ZAXIS     Z                   20 r   1                    20                  full
+ LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
+ normal    E
+ normal    F
+ 
+ 
+set mode ignore
+load/l=1:5 bigvar
+ 
+! Previously the number Mwords shown was too low
+show sym fer_last_error
+FER_LAST_ERROR = "**ERROR: request exceeds memory setting: 13 Mwords were requested. "
+cancel mode ignore
+ 
+! Get the number Ferret says it needs
+let ms1 = `strrindex("($fer_last_error)", ":")`
+ !-> DEFINE VARIABLE ms1 = 40
+let ms2 = `strindex("($fer_last_error)", "Mword")`
+ !-> DEFINE VARIABLE ms2 = 45
+let siz = substring("($fer_last_error)", `ms1+1`, `ms2-ms1-1`)
+ !-> DEFINE VARIABLE siz = substring("**ERROR: request exceeds memory setting: 13 Mwords were requested. ", 41, 4)
+ 
+! Increase memory accordingly
+ 
+set mem/siz=`siz`
+ !-> set mem/siz= 13
+load/l=1:5 bigvar
+ 
+! restore default
+set mem/siz=`memsize`
+ !-> set mem/siz=25.6
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_multiple_slashes
+! err696_multiple_slashes.jnl
+! 1/25/2016 *acm*
+!
+! For ticket 2356
+! Change parsing to allow multiple slashes in a row.
+! simplifies DEFINE SYMBOL QUALIFIERS= kinds of definitions
+ 
+def sym qual /x=1:2
+ 
+set reg/($qual)
+ !-> set reg//x=1:2
+show region
+default region:
+        X=1:2
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+cancel region
+ 
+ 
+! Several qualifiers on a command
+set reg//x=1:2///y=4:7
+show region
+default region:
+        X=1:2
+        Y=4:7
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+cancel region
+ 
+! Qualifiers with a command argument
+use coads_climatology
+def sym plotqual = /pal=grayscale/line//key=cont
+def sym regqual = /x=300:360///y=-20:20/L=3
+ 
+fill/($regqual)($plotqual) sst
+ !-> CONTOUR/FILL//x=300:360///y=-20:20/L=3/pal=grayscale/line//key=cont sst
+ 
+! command lines with urls unchanged
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+   set data///format=cdf http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+   let//d=coads_sst myvar = 1
+   sh dat
+     currently SET data sets:
+    1> ./coads_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+    2> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      Sea Surface Temperature          1:180     1:90      ...       1:1680    ...       ...
+ ------------------------------
+ MYVAR[D=coads_sst] = 1
+ 
+   cancel data/all
+ENDIF
+ 
+! Other syntax examples taken from bn_syntax but with extra slashes
+ 
+! Repeat loop
+cancel region
+cancel data/all
+show region;repeat//l=1:2 (show data;sh reg);can reg;show reg
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+!-> REPEAT: L=1
+     currently SET data sets:
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        L=1
+        E/M is unspecified
+        F/N is unspecified
+!-> REPEAT: L=2
+     currently SET data sets:
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        L=2
+        E/M is unspecified
+        F/N is unspecified
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+ 
+! continuation lines
+define axis \ ! comment on the command
+//x=1:10:1 \  ! comment on the qualifier
+xax\          ! comment on the argument
+              ! this line is significant -- completes the command
+show axis xax; cancel axis xax  ! clean up
+ name       axis              # pts   start                end
+ XAX       X                   10 r   1                    10
+   Axis span (to cell edges) = 10
+ 
+! Allow extra slashes at the end of the command line
+set reg/x=1:2/; sho reg
+default region:
+        X=1:2
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+set reg/x=1:4//; sho reg
+default region:
+        X=1:4
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+ 
+can reg
+repeat/l=1:2 (set reg/x=1:4//)
+!-> REPEAT: L=1
+!-> REPEAT: L=2
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_2d_time_overlay
+! err696_2d_time_overlay.jnl
+! ticket 2360: 2-D time overlay plots have never worked.
+ 
+! two different time axes
+ 
+def ax/edge/t=1-jan-1979:1-jan-2016:1/unit=year/t0=1-jan-1979 tax1
+def ax/edge/t=1-jan-1988:1-jan-2010:1/unit=year/t0=1-jan-1988 tax2
+let t1 = t[gt=tax1]
+let t2 = t[gt=tax2]
+let yr1 = tax_year(t1,t1)
+let yr2 = tax_year(t2,t2)
+let f1 = yr1 + 0*z[gz=1:5:1]
+let f2 = yr2 + 0*z[gz=2:3:1]
+ 
+can view
+ 
+! a 1-D overlay works correctly
+set view ul
+plot/step=con yr1
+plot/step=con/ov yr2
+ 
+set view ll
+ 
+! 2-D overlay was mis-located
+shade/lev=12 f1
+shade/ov/pal=grayscale/lev f2
+ 
+ppl shaset reset
+set view ur
+ 
+! Check a vertical time axis
+let fx1 = yr1 + 0*x[gx=1:5:1]
+let fx2 = yr2 + 0*x[gx=2:3:1]
+shade/lev=12/title="X-T plot, vertical time axis" fx1
+shade/ov/pal=grayscale/lev fx2
+ 
+ 
+! Different time units
+set view lr
+def ax/edge/t=1-jan-1988:04-feb-2010:60/unit=day/t0=1-jan-1988 tax2
+ 
+shade/lev=12/title="Underlay units year, Overlay units days" f1
+shade/ov/pal=grayscale/lev f2
+ 
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_singlevec_over
+! err696_singlevec_over.jnl
+! Ticket 2365: overlay a single vector. If
+! /nolab is added it disappears.
+ 
+use gtbc011
+vector/k=1/l=1   u,v
+let xa = 200
+let ya = 10
+let ya=10
+define axis/unit=degrees_east/x/from_data xax=xa
+define axis/unit=degrees_north/y/from_data yax=ya
+define grid/x=xax/y=yax xyg
+let u1 = 10 + 0*(x[gx=xyg]+y[gy=xyg] )
+let v1 = 10 + 0*(x[gx=xyg]+y[gy=xyg] )
+! Now I can plot the vector
+vec/over/len=10 u1,v1
+ 
+! PPL_XSKIP is 1, the single vector
+show sym ppl_vec*skip
+PPL_VEC_XSKIP = "1"
+PPL_VEC_YSKIP = "1"
+ 
+! Try it with /nolab added
+vector/k=1/l=1   u,v
+ vec/over/len=10/nolab u1,v1
+ 
+! PPL_XSKIP should still be 1
+! (with the bug, it was 4 from the vector underlay plot)
+show sym ppl_vec*skip
+PPL_VEC_XSKIP = "1"
+PPL_VEC_YSKIP = "1"
+ 
+! As an aside, now return PPL_VECLEN for VECTOR/NOLABEL plots.
+! previously this wasnt done.
+ 
+use gtbc011
+vector/k=3/l=1/nolab  u,v
+show symbol ppl_veclen
+PPL_VECLEN = "  27.2"
+ 
+GO bn_reset
+cancel mode verify
+GO err696_return_type
+! err696_return_type
+! See ticket #2367
+! incorrect return type when a user var
+! uses an expression involving alternative string versions of
+! a numeric exernal function
+ 
+! this works, explicitly calling xcat_str
+let c = xcat_str({"e","f"},{"g","h"})
+let d = c
+list d
+             VARIABLE : C
+             SUBSET   : 4 points (X)
+ 1   / 1:"e"
+ 2   / 2:"f"
+ 3   / 3:"g"
+ 4   / 4:"h"
+ 
+! returned pointers not strings
+let a = xcat({"a","b"},{"c","d"})
+let b = a
+list b
+             VARIABLE : A
+             SUBSET   : 4 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"c"
+ 4   / 4:"d"
+ 
+! Make more levels of variables, mixing xcat_str and xcat.
+ 
+let p = xcat_str({"1","2"},{"3","4"})
+let q = p
+ 
+let r = xcat({"5","6"},{"7","8"})
+let s = r
+ 
+! previously returned a string/numeric data type mix-up err.
+let allcat = xcat(q,s)
+list allcat
+             VARIABLE : XCAT(Q,S)
+             SUBSET   : 8 points (X)
+ 1   / 1:"1"
+ 2   / 2:"2"
+ 3   / 3:"3"
+ 4   / 4:"4"
+ 5   / 5:"5"
+ 6   / 6:"6"
+ 7   / 7:"7"
+ 8   / 8:"8"
+ 
+GO bn_reset
+cancel mode verify
+GO err696_hovmuller_mod_fill
+! err696_hovmuller_mod_fill.jnl
+! 3/7/2016 ACM
+! Ticket 2374
+! A single color extending across the plot was missing
+ 
+use coads_slice.nc
+fill/lin/t=1-jan-0000:31-dec-0001/hlim=1-jan-0000:1-jan-0001/x=180/lev=8 sst
+ 
+ 
+!GO bn_reset!
+!GO err696_axname_noupcase
+ 
+go bn_reset
+cancel mode verify
+go err696_repeat_escapes.jnl
+! err696_repeat_escapes.jnl
+! Ticket 2376 - parsing error with escaped grave-accent syntax
+ 
+let a = "seq 1 3"
+sp echo \``a`\`
+ !-> sp echo `seq 1 3`
+1 2 3
+ 
+! the escapes were removed on parsing the initial
+! command rather than keeping them until individual
+! commands parsed within the loop
+repeat/i=1:2 (sp echo \``a`\`)
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+ 
+! nested repeats
+repeat/k=1:3 (rep/i=1:2 (sp echo \``a`\`))
+!-> REPEAT: K=1
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: K=2
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: K=3
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_red_keylab.jnl
+! err696_red_keylab.jnl
+! Ticket 2375: outline and labels of color key were
+! drawn in red on an overlay.
+ 
+use levitus_climatology
+contour/lev=(0) temp
+ 
+! Always label the color key in pen0
+fill/over/nolab/key/lev=v,2min temp
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_poly_over_label
+! err696_poly_over_label
+! Tiket 2396: incorrect label in the lower
+! left on a POLY/OVER with just 2 arguments.
+ 
+use levitus_3d_subset.nc
+let allmissing = 0/0 + temp
+shade/nolabel/j=1 allmissing
+ 
+! Previously this plot had an incorrect label of ALLMISSING
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}
+ppl list labels  ! showed allmissing for lab2 now says cnst
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  3.640E+00  3.340E+00 0.200    0  SYSTEM  @ASNo Valid Data
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 2 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @AScnst
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+shade/nolabel/j=1 allmissing
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}, 2
+ 
+ppl list labels  ! shows cnst for lab2
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  3.640E+00  3.340E+00 0.200    0  SYSTEM  @ASNo Valid Data
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 2 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @AScnst
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+shade/nolabel/j=1 allmissing
+let cvar = 2
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}, cvar
+ppl list labels  ! shows cvar for lab2
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  3.640E+00  3.340E+00 0.200    0  SYSTEM  @ASNo Valid Data
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 2 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASCVAR
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+! color var for 2 rectangles with multiple values
+shade/nolabel/j=1 allmissing
+let cvar = {2,3}
+polygon/ov {120.2,121,121,120.2,,120.2,121,121,120.2},{4000,4000,1000,1000,,800,800,200,200}, cvar
+ppl list labels  ! shows cvar for lab2
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  3.640E+00  3.340E+00 0.200    0  SYSTEM  @ASNo Valid Data
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 2 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASCVAR
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+go bn_reset
+cancel mode verify
+go err696_def_ax_f
+! err696_def_ax_f.jnl
+! See ticket 2380
+! *acm* 4/2016
+ 
+! Defining F axis using /F=LO:HI are ok
+define axis/f=1-jan-1980:3-jan-1980:1/t0=1-jan-1980/unit=days f_ax
+list _f[gf=f_ax]
+             VARIABLE : _F
+                        axis F_AX
+             SUBSET   : 3 points (FORECAST)
+ 01-JAN-1980 00 / 1:  0.000000
+ 02-JAN-1980 00 / 2:  1.000000
+ 03-JAN-1980 00 / 3:  2.000000
+define axis/f=1-jan-1980:3-jan-1980/np=3/t0=1-jan-1980/unit=days f_ax
+list _f[gf=f_ax]
+             VARIABLE : _F
+                        axis F_AX
+             SUBSET   : 3 points (FORECAST)
+ 01-JAN-1980 00 / 1:  0.000000
+ 02-JAN-1980 00 / 2:  1.000000
+ 03-JAN-1980 00 / 3:  2.000000
+ 
+! But just /F  with a /T0 was putting the axis in the T direction
+! Previously listing _F resulted in an error
+define axis/f/t0=1-jan-1980/unit=days f_ax = {1,2,3}
+list _f[gf=f_ax]
+             VARIABLE : _F
+                        axis F_AX
+             SUBSET   : 3 points (FORECAST)
+ 02-JAN-1980 00 / 1:  1.000000
+ 03-JAN-1980 00 / 2:  2.000000
+ 04-JAN-1980 00 / 3:  3.000000
+ 
+! This came from code allowing the DEFINE to leave off the /F or /T
+! If there's a T0, its an F axis. Still allow this; it becomes a T axis.
+define axis/t0=1-jan-1980/unit=days aax = {1,2,3}
+list _t[gt=aax]
+             VARIABLE : T
+                        axis AAX
+             SUBSET   : 3 points (TIME)
+ 02-JAN-1980 00 / 1:  1.000000
+ 03-JAN-1980 00 / 2:  2.000000
+ 04-JAN-1980 00 / 3:  3.000000
+ 
+go bn_reset
+cancel mode verify
+go err696_mode_cal_f
+! err696_mode_cal_f.jnl
+! ticket 2399 MODE CALENDAR and F calendar axes
+! The calendar setting should apply to T and F axes
+ 
+show mode calendar
+      MODE            STATE        ARGUMENT
+      CALENDAR         SET         minutes
+ 
+def ax/edges/t=1-jan-2016:1-mar-2016:1/unit=day/t0=1-jan-2016 t_axis
+def ax/edges/f=1-jan-2016:1-mar-2016:1/unit=day/t0=1-jan-2016 f_axis
+let a = _t[gt=t_axis] * {1,2,3}
+let b = _f[gf=f_axis] * {1,2,3}
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "TIME : 01-JAN-2016 12:00"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "FORECAST : 01-JAN-2016 12:00"
+ 
+set mode calendar:days
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "TIME : 01-JAN-2016"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "FORECAST : 01-JAN-2016"
+ 
+set mode/last calendar
+cancel mode calendar
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "T (DAY) : 0.5"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "F (DAY) : 0.5"
+ 
+set mode/last calendar
+show mode calendar
+      MODE            STATE        ARGUMENT
+      CALENDAR         SET         minutes
+ 
+! If they are not calendar axes, it's all fine, just not
+! labeled with dates
+ 
+def ax/edges/t=1:40:1/unit=day t_axis
+def ax/edges/f=1:40:1/unit=day f_axis
+ 
+let a = _t[gt=t_axis] * {1,2,3}
+let b = _f[gf=f_axis] * {1,2,3}
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "T (DAY) : 1.5"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "F (DAY) : 1.5"
+ 
+go bn_reset
+cancel mode verify
+go err696_def_ax_edges
+! err696_def_ax_edges
+! See ticket 2400
+! Incorrect coordinates when using /EDGES
+! Also incorrectly marked axes as irregular
+ 
+let edges = x[gx=0:360:20]
+ 
+! Previuosly these axes were marked as irregular, but with correct coordinates
+def ax/edge/x xax = edges[i=1:17]; sh axis xax
+ name       axis              # pts   start                end
+ XAX       X                   16 r   10                   310
+   Axis span (to cell edges) = 320
+def ax/edge/x xax = x[gx=0:360:20]; sh axis xax
+ name       axis              # pts   start                end
+ XAX       X                   18 r   10                   350
+   Axis span (to cell edges) = 360
+ 
+! This axis incorrectly showed coordinates starting at x=20.
+! It was found to be regular but start pt incorrect
+def ax/edge/x xax = x[gx=20:320:20]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                   15 r   30                   310
+   Axis span (to cell edges) = 300
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 15 points (X)
+ 30    /  1:   30.0000
+ 50    /  2:   50.0000
+ 70    /  3:   70.0000
+ 90    /  4:   90.0000
+ 110   /  5:  110.0000
+ 130   /  6:  130.0000
+ 150   /  7:  150.0000
+ 170   /  8:  170.0000
+ 190   /  9:  190.0000
+ 210   / 10:  210.0000
+ 230   / 11:  230.0000
+ 250   / 12:  250.0000
+ 270   / 13:  270.0000
+ 290   / 14:  290.0000
+ 310   / 15:  310.0000
+ 
+! This was previously irregular, with correct coordinates
+def ax/edge/x xax = x[gx=20:320:20]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                   15 r   30                   310
+   Axis span (to cell edges) = 300
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 15 points (X)
+ 30    /  1:   30.0000
+ 50    /  2:   50.0000
+ 70    /  3:   70.0000
+ 90    /  4:   90.0000
+ 110   /  5:  110.0000
+ 130   /  6:  130.0000
+ 150   /  7:  150.0000
+ 170   /  8:  170.0000
+ 190   /  9:  190.0000
+ 210   / 10:  210.0000
+ 230   / 11:  230.0000
+ 250   / 12:  250.0000
+ 270   / 13:  270.0000
+ 290   / 14:  290.0000
+ 310   / 15:  310.0000
+ 
+! Actually irregular edge locations
+let edges = {0,10,20,30,60,90,150,200,280,360}
+def ax/edge/x xax = edges; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                    9 i   5                    320
+   Axis span (to cell edges) = 360
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 9 points (X)
+ 5     / 1:    5.0000
+ 15    / 2:   15.0000
+ 25    / 3:   25.0000
+ 45    / 4:   45.0000
+ 75    / 5:   75.0000
+ 120   / 6:  120.0000
+ 175   / 7:  175.0000
+ 240   / 8:  240.0000
+ 320   / 9:  320.0000
+ 
+def ax/edge/x xax = edges[i=1:8]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                    7 i   5                    175
+   Axis span (to cell edges) = 200
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 7 points (X)
+ 5     / 1:    5.0000
+ 15    / 2:   15.0000
+ 25    / 3:   25.0000
+ 45    / 4:   45.0000
+ 75    / 5:   75.0000
+ 120   / 6:  120.0000
+ 175   / 7:  175.0000
+ 
+! This one is regular
+def ax/edge/x xax = edges[i=1:4]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                    3 r   5                    25
+   Axis span (to cell edges) = 30
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 3 points (X)
+ 5    / 1:   5.00000
+ 15   / 2:  15.00000
+ 25   / 3:  25.00000
+ 
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_write_no_dim
+! err696_write_no_dim.jnl
+! ticket 2241: save a subset of a variable whose grid
+! contains dimensions that are not coordinate variables
+ 
+use nodim
+sh dat
+     currently SET data sets:
+    1> ./nodim.nc  (default)
+ name     title                             I         J         K         L         M         N
+ EXPOCODE expocode                         ...       ...       ...       ...       1:1       ...
+ NUM_OBS  Number of observations           ...       ...       ...       ...       1:1       ...
+ TEMP     sea surface temperature          1:51      ...       ...       ...       ...       ...
+ 
+ 
+! previously this gave an error
+save/clobber/file=a.nc/i=30:35  expocode, num_obs, temp
+ 
+! file has a coordinate variable with the subset in the OBS dimension
+sp ncdump -c a.nc
+netcdf a {
+dimensions:
+	TRAJECTORY = 1 ;
+	string_length = 64 ;
+	OBS30_35 = 6 ;
+variables:
+	char EXPOCODE(TRAJECTORY, string_length) ;
+		EXPOCODE:long_name = "expocode" ;
+		EXPOCODE:history = "From nodim" ;
+	int NUM_OBS(TRAJECTORY) ;
+		NUM_OBS:missing_value = -99 ;
+		NUM_OBS:_FillValue = -99 ;
+		NUM_OBS:long_name = "Number of observations" ;
+		NUM_OBS:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
+	double OBS30_35(OBS30_35) ;
+		OBS30_35:point_spacing = "even" ;
+		OBS30_35:axis = "X" ;
+	double TEMP(OBS30_35) ;
+		TEMP:missing_value = -1.e+34 ;
+		TEMP:_FillValue = -1.e+34 ;
+		TEMP:units = "degrees C" ;
+		TEMP:long_name = "sea surface temperature" ;
+		TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
+
+// global attributes:
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:Conventions = "CF-1.6" ;
+data:
+
+ OBS30_35 = 30, 31, 32, 33, 34, 35 ;
+}
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_mod_sub_fln
+! err696_mod_sub_fln.jnl
+! Ticket 2366, @FLN on a modulo subspan axis
+! smears results across what should not be filled in.
+ 
+def ax/x=0:180:10/unit=degree_e xax
+let xx = x[gx=xax]
+ 
+let b = IF xx GE 50 OR xx EQ 20 THEN xx
+save/clob/file=a.nc b
+can var/all
+ 
+use a
+ 
+! Do not get data from across the modulo void point at 90W
+list/x=-180:720 b, b[x=@fln]
+             DATA SET: ./a.nc
+             LONGITUDE: 180E(-180) to 0E(720)
+ Column  1: B is IF XX GE 50 OR XX EQ 20 THEN XX
+ Column  2: B[X=@FLN:1] is IF XX GE 50 OR XX EQ 20 THEN XX (linear-filled by 1 pts on X)
+                     B      B
+180E    / -1:  180.0000  180.0000
+90W     /  0:      ....      ....
+0E      /  1:      ....      ....
+10E     /  2:      ....      ....
+20E     /  3:   20.0000   20.0000
+30E     /  4:      ....   30.0000
+40E     /  5:      ....   40.0000
+50E     /  6:   50.0000   50.0000
+60E     /  7:   60.0000   60.0000
+70E     /  8:   70.0000   70.0000
+80E     /  9:   80.0000   80.0000
+90E     / 10:   90.0000   90.0000
+100E    / 11:  100.0000  100.0000
+110E    / 12:  110.0000  110.0000
+120E    / 13:  120.0000  120.0000
+130E    / 14:  130.0000  130.0000
+140E    / 15:  140.0000  140.0000
+150E    / 16:  150.0000  150.0000
+160E    / 17:  160.0000  160.0000
+170E    / 18:  170.0000  170.0000
+180E    / 19:  180.0000  180.0000
+90W     / 20:      ....      ....
+0E(360) / 21:      ....      ....
+10E     / 22:      ....      ....
+20E     / 23:   20.0000   20.0000
+30E     / 24:      ....   30.0000
+40E     / 25:      ....   40.0000
+50E     / 26:   50.0000   50.0000
+60E     / 27:   60.0000   60.0000
+70E     / 28:   70.0000   70.0000
+80E     / 29:   80.0000   80.0000
+90E     / 30:   90.0000   90.0000
+100E    / 31:  100.0000  100.0000
+110E    / 32:  110.0000  110.0000
+120E    / 33:  120.0000  120.0000
+130E    / 34:  130.0000  130.0000
+140E    / 35:  140.0000  140.0000
+150E    / 36:  150.0000  150.0000
+160E    / 37:  160.0000  160.0000
+170E    / 38:  170.0000  170.0000
+180E    / 39:  180.0000  180.0000
+90W     / 40:      ....      ....
+0E(720) / 41:      ....      ....
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_subspan_transforms
+! err696_subspan_transforms.jnl
+! See ticket 2364.  Results previously
+! put results at the modulo void point.
+ 
+def ax/x=0:180:20/unit=degrees_e xaxis
+let a = x[gx=xaxis]
+save/clob/file=a.nc a
+can var a; can ax xaxis; use a.nc
+ list/x=0:720 a, a[x=@ddc]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@DDC] is X[GX=XAXIS] (centered derivative on X)
+                     A        A
+0E      /  1:    0.0000          ....
+20E     /  2:   20.0000  8.993218E-06
+40E     /  3:   40.0000  8.993218E-06
+60E     /  4:   60.0000  8.993218E-06
+80E     /  5:   80.0000  8.993218E-06
+100E    /  6:  100.0000  8.993218E-06
+120E    /  7:  120.0000  8.993218E-06
+140E    /  8:  140.0000  8.993218E-06
+160E    /  9:  160.0000  8.993218E-06
+180E    / 10:  180.0000          ....
+90W     / 11:      ....          ....
+0E(360) / 12:    0.0000          ....
+20E     / 13:   20.0000  8.993218E-06
+40E     / 14:   40.0000  8.993218E-06
+60E     / 15:   60.0000  8.993218E-06
+80E     / 16:   80.0000  8.993218E-06
+100E    / 17:  100.0000  8.993218E-06
+120E    / 18:  120.0000  8.993218E-06
+140E    / 19:  140.0000  8.993218E-06
+160E    / 20:  160.0000  8.993218E-06
+180E    / 21:  180.0000          ....
+90W     / 22:      ....          ....
+0E(720) / 23:    0.0000          ....
+ list/x=0:720 a, a[x=@ddf]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@DDF] is X[GX=XAXIS] (forward derivative on X)
+                     A        A
+0E      /  1:    0.0000  8.993218E-06
+20E     /  2:   20.0000  8.993218E-06
+40E     /  3:   40.0000  8.993218E-06
+60E     /  4:   60.0000  8.993218E-06
+80E     /  5:   80.0000  8.993218E-06
+100E    /  6:  100.0000  8.993218E-06
+120E    /  7:  120.0000  8.993218E-06
+140E    /  8:  140.0000  8.993218E-06
+160E    /  9:  160.0000  8.993218E-06
+180E    / 10:  180.0000          ....
+90W     / 11:      ....          ....
+0E(360) / 12:    0.0000  8.993218E-06
+20E     / 13:   20.0000  8.993218E-06
+40E     / 14:   40.0000  8.993218E-06
+60E     / 15:   60.0000  8.993218E-06
+80E     / 16:   80.0000  8.993218E-06
+100E    / 17:  100.0000  8.993218E-06
+120E    / 18:  120.0000  8.993218E-06
+140E    / 19:  140.0000  8.993218E-06
+160E    / 20:  160.0000  8.993218E-06
+180E    / 21:  180.0000          ....
+90W     / 22:      ....          ....
+0E(720) / 23:    0.0000  8.993218E-06
+ list/x=0:720 a, a[x=@ddb]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@DDB] is X[GX=XAXIS] (backwards derivative on X)
+                     A        A
+0E      /  1:    0.0000          ....
+20E     /  2:   20.0000  8.993218E-06
+40E     /  3:   40.0000  8.993218E-06
+60E     /  4:   60.0000  8.993218E-06
+80E     /  5:   80.0000  8.993218E-06
+100E    /  6:  100.0000  8.993218E-06
+120E    /  7:  120.0000  8.993218E-06
+140E    /  8:  140.0000  8.993218E-06
+160E    /  9:  160.0000  8.993218E-06
+180E    / 10:  180.0000  8.993218E-06
+90W     / 11:      ....          ....
+0E(360) / 12:    0.0000          ....
+20E     / 13:   20.0000  8.993218E-06
+40E     / 14:   40.0000  8.993218E-06
+60E     / 15:   60.0000  8.993218E-06
+80E     / 16:   80.0000  8.993218E-06
+100E    / 17:  100.0000  8.993218E-06
+120E    / 18:  120.0000  8.993218E-06
+140E    / 19:  140.0000  8.993218E-06
+160E    / 20:  160.0000  8.993218E-06
+180E    / 21:  180.0000  8.993218E-06
+90W     / 22:      ....          ....
+0E(720) / 23:    0.0000          ....
+ list/x=0:720 a, a[x=@shf]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SHF:1] is X[GX=XAXIS] (shifted by 1 pts on X)
+                     A      A
+0E      /  1:    0.0000   20.0000
+20E     /  2:   20.0000   40.0000
+40E     /  3:   40.0000   60.0000
+60E     /  4:   60.0000   80.0000
+80E     /  5:   80.0000  100.0000
+100E    /  6:  100.0000  120.0000
+120E    /  7:  120.0000  140.0000
+140E    /  8:  140.0000  160.0000
+160E    /  9:  160.0000  180.0000
+180E    / 10:  180.0000      ....
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000   20.0000
+20E     / 13:   20.0000   40.0000
+40E     / 14:   40.0000   60.0000
+60E     / 15:   60.0000   80.0000
+80E     / 16:   80.0000  100.0000
+100E    / 17:  100.0000  120.0000
+120E    / 18:  120.0000  140.0000
+140E    / 19:  140.0000  160.0000
+160E    / 20:  160.0000  180.0000
+180E    / 21:  180.0000      ....
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000   20.0000
+ list/x=0:720 a, a[x=@sbx]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SBX:3] is X[GX=XAXIS] (box smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000      ....
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   40.0000
+60E     /  4:   60.0000   60.0000
+80E     /  5:   80.0000   80.0000
+100E    /  6:  100.0000  100.0000
+120E    /  7:  120.0000  120.0000
+140E    /  8:  140.0000  140.0000
+160E    /  9:  160.0000  160.0000
+180E    / 10:  180.0000      ....
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000      ....
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   40.0000
+60E     / 15:   60.0000   60.0000
+80E     / 16:   80.0000   80.0000
+100E    / 17:  100.0000  100.0000
+120E    / 18:  120.0000  120.0000
+140E    / 19:  140.0000  140.0000
+160E    / 20:  160.0000  160.0000
+180E    / 21:  180.0000      ....
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000      ....
+ list/x=0:720 a, a[x=@sbn]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SBN:3] is X[GX=XAXIS] (binomial smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000      ....
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   40.0000
+60E     /  4:   60.0000   60.0000
+80E     /  5:   80.0000   80.0000
+100E    /  6:  100.0000  100.0000
+120E    /  7:  120.0000  120.0000
+140E    /  8:  140.0000  140.0000
+160E    /  9:  160.0000  160.0000
+180E    / 10:  180.0000      ....
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000      ....
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   40.0000
+60E     / 15:   60.0000   60.0000
+80E     / 16:   80.0000   80.0000
+100E    / 17:  100.0000  100.0000
+120E    / 18:  120.0000  120.0000
+140E    / 19:  140.0000  140.0000
+160E    / 20:  160.0000  160.0000
+180E    / 21:  180.0000      ....
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000      ....
+ list/x=0:720 a, a[x=@swl]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SWL:3] is X[GX=XAXIS] (Welch smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000      ....
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   40.0000
+60E     /  4:   60.0000   60.0000
+80E     /  5:   80.0000   80.0000
+100E    /  6:  100.0000  100.0000
+120E    /  7:  120.0000  120.0000
+140E    /  8:  140.0000  140.0000
+160E    /  9:  160.0000  160.0000
+180E    / 10:  180.0000      ....
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000      ....
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   40.0000
+60E     / 15:   60.0000   60.0000
+80E     / 16:   80.0000   80.0000
+100E    / 17:  100.0000  100.0000
+120E    / 18:  120.0000  120.0000
+140E    / 19:  140.0000  140.0000
+160E    / 20:  160.0000  160.0000
+180E    / 21:  180.0000      ....
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000      ....
+ list/x=0:720 a, a[x=@shn]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SHN:3] is X[GX=XAXIS] (Hanning smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000      ....
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   40.0000
+60E     /  4:   60.0000   60.0000
+80E     /  5:   80.0000   80.0000
+100E    /  6:  100.0000  100.0000
+120E    /  7:  120.0000  120.0000
+140E    /  8:  140.0000  140.0000
+160E    /  9:  160.0000  160.0000
+180E    / 10:  180.0000      ....
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000      ....
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   40.0000
+60E     / 15:   60.0000   60.0000
+80E     / 16:   80.0000   80.0000
+100E    / 17:  100.0000  100.0000
+120E    / 18:  120.0000  120.0000
+140E    / 19:  140.0000  140.0000
+160E    / 20:  160.0000  160.0000
+180E    / 21:  180.0000      ....
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000      ....
+ list/x=0:720 a, a[x=@spz]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SPZ:3] is X[GX=XAXIS] (Parzen smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000      ....
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   40.0000
+60E     /  4:   60.0000   60.0000
+80E     /  5:   80.0000   80.0000
+100E    /  6:  100.0000  100.0000
+120E    /  7:  120.0000  120.0000
+140E    /  8:  140.0000  140.0000
+160E    /  9:  160.0000  160.0000
+180E    / 10:  180.0000      ....
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000      ....
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   40.0000
+60E     / 15:   60.0000   60.0000
+80E     / 16:   80.0000   80.0000
+100E    / 17:  100.0000  100.0000
+120E    / 18:  120.0000  120.0000
+140E    / 19:  140.0000  140.0000
+160E    / 20:  160.0000  160.0000
+180E    / 21:  180.0000      ....
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000      ....
+ list/x=0:720 a, a[x=@med]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@MED:3] is X[GX=XAXIS] (median smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000   20.0000
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   40.0000
+60E     /  4:   60.0000   60.0000
+80E     /  5:   80.0000   80.0000
+100E    /  6:  100.0000  100.0000
+120E    /  7:  120.0000  120.0000
+140E    /  8:  140.0000  140.0000
+160E    /  9:  160.0000  160.0000
+180E    / 10:  180.0000  180.0000
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000   20.0000
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   40.0000
+60E     / 15:   60.0000   60.0000
+80E     / 16:   80.0000   80.0000
+100E    / 17:  100.0000  100.0000
+120E    / 18:  120.0000  120.0000
+140E    / 19:  140.0000  140.0000
+160E    / 20:  160.0000  160.0000
+180E    / 21:  180.0000  180.0000
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000   20.0000
+ list/x=0:720 a, a[x=@smx]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SMX:3] is X[GX=XAXIS] (maximum smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000   20.0000
+20E     /  2:   20.0000   40.0000
+40E     /  3:   40.0000   60.0000
+60E     /  4:   60.0000   80.0000
+80E     /  5:   80.0000  100.0000
+100E    /  6:  100.0000  120.0000
+120E    /  7:  120.0000  140.0000
+140E    /  8:  140.0000  160.0000
+160E    /  9:  160.0000  180.0000
+180E    / 10:  180.0000  180.0000
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000   20.0000
+20E     / 13:   20.0000   40.0000
+40E     / 14:   40.0000   60.0000
+60E     / 15:   60.0000   80.0000
+80E     / 16:   80.0000  100.0000
+100E    / 17:  100.0000  120.0000
+120E    / 18:  120.0000  140.0000
+140E    / 19:  140.0000  160.0000
+160E    / 20:  160.0000  180.0000
+180E    / 21:  180.0000  180.0000
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000   20.0000
+ list/x=0:720 a, a[x=@smn]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SMN:3] is X[GX=XAXIS] (minimum smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000    0.0000
+20E     /  2:   20.0000    0.0000
+40E     /  3:   40.0000   20.0000
+60E     /  4:   60.0000   40.0000
+80E     /  5:   80.0000   60.0000
+100E    /  6:  100.0000   80.0000
+120E    /  7:  120.0000  100.0000
+140E    /  8:  140.0000  120.0000
+160E    /  9:  160.0000  140.0000
+180E    / 10:  180.0000  160.0000
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000    0.0000
+20E     / 13:   20.0000    0.0000
+40E     / 14:   40.0000   20.0000
+60E     / 15:   60.0000   40.0000
+80E     / 16:   80.0000   60.0000
+100E    / 17:  100.0000   80.0000
+120E    / 18:  120.0000  100.0000
+140E    / 19:  140.0000  120.0000
+160E    / 20:  160.0000  140.0000
+180E    / 21:  180.0000  160.0000
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000    0.0000
+ list/x=0:720 a, a[x=@wgt]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@WGT] is X[GX=XAXIS] (weights for avg,int on X)
+                     A      A
+0E      /  1:    0.0000  2223898.
+20E     /  2:   20.0000  2223898.
+40E     /  3:   40.0000  2223898.
+60E     /  4:   60.0000  2223898.
+80E     /  5:   80.0000  2223898.
+100E    /  6:  100.0000  2223898.
+120E    /  7:  120.0000  2223898.
+140E    /  8:  140.0000  2223898.
+160E    /  9:  160.0000  2223898.
+180E    / 10:  180.0000  2223898.
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000  2223898.
+20E     / 13:   20.0000  2223898.
+40E     / 14:   40.0000  2223898.
+60E     / 15:   60.0000  2223898.
+80E     / 16:   80.0000  2223898.
+100E    / 17:  100.0000  2223898.
+120E    / 18:  120.0000  2223898.
+140E    / 19:  140.0000  2223898.
+160E    / 20:  160.0000  2223898.
+180E    / 21:  180.0000  2223898.
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000  2223898.
+ list/x=0:720 a, a[x=@spx]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SPX:3] is X[GX=XAXIS] (box smooth w/missing by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000      ....
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   40.0000
+60E     /  4:   60.0000   60.0000
+80E     /  5:   80.0000   80.0000
+100E    /  6:  100.0000  100.0000
+120E    /  7:  120.0000  120.0000
+140E    /  8:  140.0000  140.0000
+160E    /  9:  160.0000  160.0000
+180E    / 10:  180.0000  170.0000
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000      ....
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   40.0000
+60E     / 15:   60.0000   60.0000
+80E     / 16:   80.0000   80.0000
+100E    / 17:  100.0000  100.0000
+120E    / 18:  120.0000  120.0000
+140E    / 19:  140.0000  140.0000
+160E    / 20:  160.0000  160.0000
+180E    / 21:  180.0000  170.0000
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000      ....
+ 
+! Note that Running Sum and Indefinite Integral, Event mask
+! now restart in each branch.
+ list/x=0:720 a, a[x=@rsu]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@RSU] is X[GX=XAXIS] (running sum on X)
+                     A      A
+0E      /  1:    0.0000    0.0000
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   60.0000
+60E     /  4:   60.0000  120.0000
+80E     /  5:   80.0000  200.0000
+100E    /  6:  100.0000  300.0000
+120E    /  7:  120.0000  420.0000
+140E    /  8:  140.0000  560.0000
+160E    /  9:  160.0000  720.0000
+180E    / 10:  180.0000  900.0000
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000    0.0000
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   60.0000
+60E     / 15:   60.0000  120.0000
+80E     / 16:   80.0000  200.0000
+100E    / 17:  100.0000  300.0000
+120E    / 18:  120.0000  420.0000
+140E    / 19:  140.0000  560.0000
+160E    / 20:  160.0000  720.0000
+180E    / 21:  180.0000  900.0000
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000    0.0000
+ list/x=0:720 a, a[x=@iin]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@IIN] is X[GX=XAXIS] (indef. integ. on X)
+                     A        A
+0E      /  1:    0.0000           0.
+20E     /  2:   20.0000    44477961.
+40E     /  3:   40.0000   133433884.
+60E     /  4:   60.0000   266867768.
+80E     /  5:   80.0000   444779614.
+100E    /  6:  100.0000   667169421.
+120E    /  7:  120.0000   934037189.
+140E    /  8:  140.0000  1245382919.
+160E    /  9:  160.0000  1601206611.
+180E    / 10:  180.0000  2001508263.
+90W     / 11:      ....         ....
+0E(360) / 12:    0.0000           0.
+20E     / 13:   20.0000    44477961.
+40E     / 14:   40.0000   133433884.
+60E     / 15:   60.0000   266867768.
+80E     / 16:   80.0000   444779614.
+100E    / 17:  100.0000   667169421.
+120E    / 18:  120.0000   934037189.
+140E    / 19:  140.0000  1245382919.
+160E    / 20:  160.0000  1601206611.
+180E    / 21:  180.0000  2001508263.
+90W     / 22:      ....         ....
+0E(720) / 23:    0.0000           0.
+ list/x=0:720 a, a[x=@evnt:80]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@EVN:80] is X[GX=XAXIS] (event mask at 80 on X)
+                     A      A
+0E      /  1:    0.0000  0.000000
+20E     /  2:   20.0000  0.000000
+40E     /  3:   40.0000  0.000000
+60E     /  4:   60.0000  0.000000
+80E     /  5:   80.0000  1.000000
+100E    /  6:  100.0000  1.000000
+120E    /  7:  120.0000  1.000000
+140E    /  8:  140.0000  1.000000
+160E    /  9:  160.0000  1.000000
+180E    / 10:  180.0000  1.000000
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000  0.000000
+20E     / 13:   20.0000  0.000000
+40E     / 14:   40.0000  0.000000
+60E     / 15:   60.0000  0.000000
+80E     / 16:   80.0000  1.000000
+100E    / 17:  100.0000  1.000000
+120E    / 18:  120.0000  1.000000
+140E    / 19:  140.0000  1.000000
+160E    / 20:  160.0000  1.000000
+180E    / 21:  180.0000  1.000000
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000  0.000000
+ 
+ 
+! Transforms that deal with gaps
+can dat/all
+def ax/x=0:180:10/unit=degrees_e xaxis
+let a = if x[gx=xaxis] gt 40 and x[gx=xaxis] le 150 then x[gx=xaxis]
+save/clob/file=a.nc a
+can var a; can ax xaxis; use a.nc
+ list/x=0:720 a, a[x=@fav]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@FAV:3] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (ave-filled by 3 pts on X)
+                     A      A
+0E      /  1:      ....      ....
+10E     /  2:      ....      ....
+20E     /  3:      ....      ....
+30E     /  4:      ....      ....
+40E     /  5:      ....   50.0000
+50E     /  6:   50.0000   50.0000
+60E     /  7:   60.0000   60.0000
+70E     /  8:   70.0000   70.0000
+80E     /  9:   80.0000   80.0000
+90E     / 10:   90.0000   90.0000
+100E    / 11:  100.0000  100.0000
+110E    / 12:  110.0000  110.0000
+120E    / 13:  120.0000  120.0000
+130E    / 14:  130.0000  130.0000
+140E    / 15:  140.0000  140.0000
+150E    / 16:  150.0000  150.0000
+160E    / 17:      ....  150.0000
+170E    / 18:      ....      ....
+180E    / 19:      ....      ....
+90W     / 20:      ....      ....
+0E(360) / 21:      ....      ....
+10E     / 22:      ....      ....
+20E     / 23:      ....      ....
+30E     / 24:      ....      ....
+40E     / 25:      ....   50.0000
+50E     / 26:   50.0000   50.0000
+60E     / 27:   60.0000   60.0000
+70E     / 28:   70.0000   70.0000
+80E     / 29:   80.0000   80.0000
+90E     / 30:   90.0000   90.0000
+100E    / 31:  100.0000  100.0000
+110E    / 32:  110.0000  110.0000
+120E    / 33:  120.0000  120.0000
+130E    / 34:  130.0000  130.0000
+140E    / 35:  140.0000  140.0000
+150E    / 36:  150.0000  150.0000
+160E    / 37:      ....  150.0000
+170E    / 38:      ....      ....
+180E    / 39:      ....      ....
+90W     / 40:      ....      ....
+0E(720) / 41:      ....      ....
+ list/x=0:720 a, a[x=@fnr]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@FNR:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (nearest-filled by 1 pts on X)
+                     A      A
+0E      /  1:      ....   50.0000
+10E     /  2:      ....   50.0000
+20E     /  3:      ....   50.0000
+30E     /  4:      ....   50.0000
+40E     /  5:      ....   50.0000
+50E     /  6:   50.0000   50.0000
+60E     /  7:   60.0000   60.0000
+70E     /  8:   70.0000   70.0000
+80E     /  9:   80.0000   80.0000
+90E     / 10:   90.0000   90.0000
+100E    / 11:  100.0000  100.0000
+110E    / 12:  110.0000  110.0000
+120E    / 13:  120.0000  120.0000
+130E    / 14:  130.0000  130.0000
+140E    / 15:  140.0000  140.0000
+150E    / 16:  150.0000  150.0000
+160E    / 17:      ....  150.0000
+170E    / 18:      ....  150.0000
+180E    / 19:      ....  150.0000
+90W     / 20:      ....      ....
+0E(360) / 21:      ....   50.0000
+10E     / 22:      ....   50.0000
+20E     / 23:      ....   50.0000
+30E     / 24:      ....   50.0000
+40E     / 25:      ....   50.0000
+50E     / 26:   50.0000   50.0000
+60E     / 27:   60.0000   60.0000
+70E     / 28:   70.0000   70.0000
+80E     / 29:   80.0000   80.0000
+90E     / 30:   90.0000   90.0000
+100E    / 31:  100.0000  100.0000
+110E    / 32:  110.0000  110.0000
+120E    / 33:  120.0000  120.0000
+130E    / 34:  130.0000  130.0000
+140E    / 35:  140.0000  140.0000
+150E    / 36:  150.0000  150.0000
+160E    / 37:      ....  150.0000
+170E    / 38:      ....  150.0000
+180E    / 39:      ....  150.0000
+90W     / 40:      ....      ....
+0E(720) / 41:      ....   50.0000
+ list/x=0:720 a, a[x=@cia]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CIA:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest index above on X)
+                     A      A
+0E      /  1:      ....  5.000000
+10E     /  2:      ....  4.000000
+20E     /  3:      ....  3.000000
+30E     /  4:      ....  2.000000
+40E     /  5:      ....  1.000000
+50E     /  6:   50.0000  0.000000
+60E     /  7:   60.0000  0.000000
+70E     /  8:   70.0000  0.000000
+80E     /  9:   80.0000  0.000000
+90E     / 10:   90.0000  0.000000
+100E    / 11:  100.0000  0.000000
+110E    / 12:  110.0000  0.000000
+120E    / 13:  120.0000  0.000000
+130E    / 14:  130.0000  0.000000
+140E    / 15:  140.0000  0.000000
+150E    / 16:  150.0000  0.000000
+160E    / 17:      ....      ....
+170E    / 18:      ....      ....
+180E    / 19:      ....      ....
+90W     / 20:      ....      ....
+0E(360) / 21:      ....  5.000000
+10E     / 22:      ....  4.000000
+20E     / 23:      ....  3.000000
+30E     / 24:      ....  2.000000
+40E     / 25:      ....  1.000000
+50E     / 26:   50.0000  0.000000
+60E     / 27:   60.0000  0.000000
+70E     / 28:   70.0000  0.000000
+80E     / 29:   80.0000  0.000000
+90E     / 30:   90.0000  0.000000
+100E    / 31:  100.0000  0.000000
+110E    / 32:  110.0000  0.000000
+120E    / 33:  120.0000  0.000000
+130E    / 34:  130.0000  0.000000
+140E    / 35:  140.0000  0.000000
+150E    / 36:  150.0000  0.000000
+160E    / 37:      ....      ....
+170E    / 38:      ....      ....
+180E    / 39:      ....      ....
+90W     / 40:      ....      ....
+0E(720) / 41:      ....  5.000000
+ list/x=0:720 a, a[x=@cib]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CIB:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest index below on X)
+                     A      A
+0E      /  1:      ....      ....
+10E     /  2:      ....      ....
+20E     /  3:      ....      ....
+30E     /  4:      ....      ....
+40E     /  5:      ....      ....
+50E     /  6:   50.0000  0.000000
+60E     /  7:   60.0000  0.000000
+70E     /  8:   70.0000  0.000000
+80E     /  9:   80.0000  0.000000
+90E     / 10:   90.0000  0.000000
+100E    / 11:  100.0000  0.000000
+110E    / 12:  110.0000  0.000000
+120E    / 13:  120.0000  0.000000
+130E    / 14:  130.0000  0.000000
+140E    / 15:  140.0000  0.000000
+150E    / 16:  150.0000  0.000000
+160E    / 17:      ....  1.000000
+170E    / 18:      ....  2.000000
+180E    / 19:      ....  3.000000
+90W     / 20:      ....      ....
+0E(360) / 21:      ....      ....
+10E     / 22:      ....      ....
+20E     / 23:      ....      ....
+30E     / 24:      ....      ....
+40E     / 25:      ....      ....
+50E     / 26:   50.0000  0.000000
+60E     / 27:   60.0000  0.000000
+70E     / 28:   70.0000  0.000000
+80E     / 29:   80.0000  0.000000
+90E     / 30:   90.0000  0.000000
+100E    / 31:  100.0000  0.000000
+110E    / 32:  110.0000  0.000000
+120E    / 33:  120.0000  0.000000
+130E    / 34:  130.0000  0.000000
+140E    / 35:  140.0000  0.000000
+150E    / 36:  150.0000  0.000000
+160E    / 37:      ....  1.000000
+170E    / 38:      ....  2.000000
+180E    / 39:      ....  3.000000
+90W     / 40:      ....      ....
+0E(720) / 41:      ....      ....
+ list/x=0:720 a, a[x=@cda]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CDA:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest dist above on X)
+                     A      A
+0E      /  1:      ....  50.00000
+10E     /  2:      ....  40.00000
+20E     /  3:      ....  30.00000
+30E     /  4:      ....  20.00000
+40E     /  5:      ....  10.00000
+50E     /  6:   50.0000   0.00000
+60E     /  7:   60.0000   0.00000
+70E     /  8:   70.0000   0.00000
+80E     /  9:   80.0000   0.00000
+90E     / 10:   90.0000   0.00000
+100E    / 11:  100.0000   0.00000
+110E    / 12:  110.0000   0.00000
+120E    / 13:  120.0000   0.00000
+130E    / 14:  130.0000   0.00000
+140E    / 15:  140.0000   0.00000
+150E    / 16:  150.0000   0.00000
+160E    / 17:      ....      ....
+170E    / 18:      ....      ....
+180E    / 19:      ....      ....
+90W     / 20:      ....      ....
+0E(360) / 21:      ....  50.00000
+10E     / 22:      ....  40.00000
+20E     / 23:      ....  30.00000
+30E     / 24:      ....  20.00000
+40E     / 25:      ....  10.00000
+50E     / 26:   50.0000   0.00000
+60E     / 27:   60.0000   0.00000
+70E     / 28:   70.0000   0.00000
+80E     / 29:   80.0000   0.00000
+90E     / 30:   90.0000   0.00000
+100E    / 31:  100.0000   0.00000
+110E    / 32:  110.0000   0.00000
+120E    / 33:  120.0000   0.00000
+130E    / 34:  130.0000   0.00000
+140E    / 35:  140.0000   0.00000
+150E    / 36:  150.0000   0.00000
+160E    / 37:      ....      ....
+170E    / 38:      ....      ....
+180E    / 39:      ....      ....
+90W     / 40:      ....      ....
+0E(720) / 41:      ....  50.00000
+ list/x=0:720 a, a[x=@cdb]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CDB:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest dist below on X)
+                     A      A
+0E      /  1:      ....      ....
+10E     /  2:      ....      ....
+20E     /  3:      ....      ....
+30E     /  4:      ....      ....
+40E     /  5:      ....      ....
+50E     /  6:   50.0000   0.00000
+60E     /  7:   60.0000   0.00000
+70E     /  8:   70.0000   0.00000
+80E     /  9:   80.0000   0.00000
+90E     / 10:   90.0000   0.00000
+100E    / 11:  100.0000   0.00000
+110E    / 12:  110.0000   0.00000
+120E    / 13:  120.0000   0.00000
+130E    / 14:  130.0000   0.00000
+140E    / 15:  140.0000   0.00000
+150E    / 16:  150.0000   0.00000
+160E    / 17:      ....  10.00000
+170E    / 18:      ....  20.00000
+180E    / 19:      ....  30.00000
+90W     / 20:      ....      ....
+0E(360) / 21:      ....      ....
+10E     / 22:      ....      ....
+20E     / 23:      ....      ....
+30E     / 24:      ....      ....
+40E     / 25:      ....      ....
+50E     / 26:   50.0000   0.00000
+60E     / 27:   60.0000   0.00000
+70E     / 28:   70.0000   0.00000
+80E     / 29:   80.0000   0.00000
+90E     / 30:   90.0000   0.00000
+100E    / 31:  100.0000   0.00000
+110E    / 32:  110.0000   0.00000
+120E    / 33:  120.0000   0.00000
+130E    / 34:  130.0000   0.00000
+140E    / 35:  140.0000   0.00000
+150E    / 36:  150.0000   0.00000
+160E    / 37:      ....  10.00000
+170E    / 38:      ....  20.00000
+180E    / 39:      ....  30.00000
+90W     / 40:      ....      ....
+0E(720) / 41:      ....      ....
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_subspan_mod_in_expr
+! err696_subspan_mod_in_expr.jnl
+! ticket 1845: a subspan modulo due to context info buried
+! in a multi-layer expression isn't applied when setting
+! the time axis limits for the plot.
+! *acm* 5/2016
+ 
+use bug1845.nc
+set v upper
+shade/x=137:146 salinity[l=1] -  salinity[l=2]
+sh sym xaxis_m*
+XAXIS_MIN = "137.000000"
+XAXIS_MAX = "145.345261"
+ 
+ 
+! When the region information is embedded a couple levels down inside
+! the expressions - in the square brackets, and then an expression involving
+! subtraction - the region isn't treated correctly, and the upper limit is
+! the modulo void point.
+ 
+! Previously XAXIS_MAX was 496.4, the x axis too long, and most of the plot was blank
+ 
+set v lower
+shade salinity[x=137:146,T="28-Mar-2011 00:00"] - salinity[x=137:146,T="28-Mar-2011 03:00"]
+sh sym xaxis_m*
+XAXIS_MIN = "136.443619"
+XAXIS_MAX = "145.345261"
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_shade_subspan_clim
+! err696_shade_subspan_clim
+! See ticket 2404
+ 
+def ax/edges/t/unit="day"/t0=1-jan-0001/cal=gregorian/modulo=365.25 \
+tax = {31, 59.2425, 90.2425, 120.2425, 151.2425, 181.2425, 212.2425}
+let a = t[gt=tax]
+save/clob/file=a.nc a
+can var a
+can axis tax
+use a.nc
+can view
+ 
+! The top-left SHADE plot looks fine.
+set view ul; shade a*x[gx=0:10:1]
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "31.0000000"
+YAXIS_MAX = "212.242500"
+ 
+! But the top-right SHADE plot was all messed up; it shifts the data
+! later by a full month, and stretches the last (shifted) cell all
+! the way to the upper limit of the plot domain
+ 
+set view ur; shade/t=1-jan-0001:1-jan-0002 a*x[gx=0:10:1]
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "31.0000000"
+YAXIS_MAX = "212.242500"
+ 
+! In the bottom-right line plot, the actual plotted data look ok.
+! But the plot limits extend all the way from 1-JUL-0000 to 1-MAR-0002,
+! rather than being shrink-wrapped around the data.
+ 
+set view lr; plot/step=con/t=1-jan-0001:1-jan-0002 a
+ 
+sh sym xaxis*
+XAXIS_REVERSED = "0"
+XAXIS_MIN = "31.0000000"
+XAXIS_MAX = "212.242500"
+ 
+go bn_reset
+cancel mode verify
+! go err696_subspan_mod_strides  ! do this test in bn_gif
+ 
+GO bn_reset
+cancel mode verify
+GO bn_aggregate_t
+! bn_aggregate_t.jnl
+! 9/12/2015 *sh* tweak to put all test files into "tmp" subdirectory
+! 1/2016 *sh* added implicit naming of aggregation from script filename
+! 2/2016      and auto-sorting of member files
+ 
+spawn "mkdir -p tmp"     ! tmp directory t store files
+ 
+! *** create test files for T aggregation ***
+ 
+! --- files with regularly-spaced time points ---
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+ 
+! also define a time intependent field to be saved as the second variable
+! but only in the first data set
+let mymap = I[x=0E:0E:5]+ 10*J[Y=80s:80n:5]
+ 
+save/clobber/file="tmp/tagg_reg_1.nc" myvar[l=1:10], mymap
+save/clobber/file="tmp/tagg_reg_2.nc" myvar[l=11:20]
+save/clobber/file="tmp/tagg_reg_3.nc" myvar[l=21:30]
+save/clobber/file="tmp/tagg_reg_4.nc" myvar[l=31:40]
+save/clobber/file="tmp/tagg_reg_5.nc" myvar[l=41:50]
+save/clobber/file="tmp/tagg_reg_6.nc" myvar[l=51:60]
+save/clobber/file="tmp/tagg_reg_7.nc" myvar[l=61:70]
+save/clobber/file="tmp/tagg_reg_8.nc" myvar[l=71:80]
+save/clobber/file="tmp/tagg_reg_9.nc" myvar[l=81:90]
+save/clobber/file="tmp/tagg_reg_10.nc" myvar[l=91:100]
+ 
+! save a duplicate of the first file
+save/clobber/file="tmp/tagg_reg_1_duplicate.nc" myvar[l=1:10], mymap
+ 
+! save a file with no time-dependent variables
+save/clobber/file="tmp/tagg_reg_no_T.nc"  mymap
+ 
+! make a single file that is "too long": 15 time steps instead of 10
+! so that when used in a time series it creates reverse-ordered points
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+save/clobber/file="tmp/tagg_reg_2_overlarge.nc" myvar[l=11:25]
+cancel axis tday
+ 
+! --- files with irregularly-spaced time points ---
+define axis/T0=1-jan-1980/unit=days tday_ir = L[l=1:200]^1.01
+ 
+let myvar = SIN(T[gt=tday_ir]/10) + L[gt=tday_ir]/10
+!plot myvar[l=1:100]
+ 
+save/clobber/file="tmp/tagg_irreg_1.nc" myvar[l=1:10]
+save/clobber/file="tmp/tagg_irreg_2.nc" myvar[l=11:20]
+save/clobber/file="tmp/tagg_irreg_3.nc" myvar[l=21:30]
+save/clobber/file="tmp/tagg_irreg_4.nc" myvar[l=31:40]
+save/clobber/file="tmp/tagg_irreg_5.nc" myvar[l=41:50]
+save/clobber/file="tmp/tagg_irreg_6.nc" myvar[l=51:60]
+save/clobber/file="tmp/tagg_irreg_7.nc" myvar[l=61:70]
+save/clobber/file="tmp/tagg_irreg_8.nc" myvar[l=71:80]
+save/clobber/file="tmp/tagg_irreg_9.nc" myvar[l=81:90]
+save/clobber/file="tmp/tagg_irreg_10.nc" myvar[l=91:100]
+ 
+! create a regular time axis (lacking cell bounds) in the midst of the sequence
+define axis/T0=1-jan-1980/unit=days tday_ir = L[l=11:20]
+save/clobber/file="tmp/tagg_irreg_2_reg.nc" myvar
+cancel axis tday_ir
+ 
+ 
+! --- files in which the T0 origin varies ---
+! create a sequence of files with differing T0 dates, but the very same
+! timestep values (1, 2, 3, 4)
+ 
+let tt = t[gt=tday_tvar]
+ 
+repeat/i=1:5 (\
+define symbol file `i`;\
+define symbol start_day `(i-1)*4+1`;\
+define axis/T0=($start_day)-jan-1980/unit=days tday_Tvar = L[l=1:4];\
+let myvar0 = TAX_JDAY(L[l=1:4], tt);\
+let myvar = myvar0[gt=tday_Tvar at asn];\
+save/clobber/file="tmp/tagg_T0varying_($file).nc" myvar[l=1:4])
+ !-> repeat/i=1:5 (define symbol file `i`;define symbol start_day `(i-1)*4+1`;define axis/T0=($start_day)-jan-1980/unit=days tday_Tvar = L[l=1:4];let myvar0 = TAX_JDAY(L[l=1:4], tt);let myvar = myvar0[gt=tday_Tvar at asn];save/clobber/file="tmp/tagg_T0varying_($file).nc" myvar[l=1:4])
+!-> REPEAT: I=1
+ !-> define symbol file 1
+ !-> define symbol start_day 1
+ !-> define axis/T0=1-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_1.nc" myvar[l=1:4]
+!-> REPEAT: I=2
+ !-> define symbol file 2
+ !-> define symbol start_day 5
+ !-> define axis/T0=5-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_2.nc" myvar[l=1:4]
+!-> REPEAT: I=3
+ !-> define symbol file 3
+ !-> define symbol start_day 9
+ !-> define axis/T0=9-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_3.nc" myvar[l=1:4]
+!-> REPEAT: I=4
+ !-> define symbol file 4
+ !-> define symbol start_day 13
+ !-> define axis/T0=13-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_4.nc" myvar[l=1:4]
+!-> REPEAT: I=5
+ !-> define symbol file 5
+ !-> define symbol start_day 17
+ !-> define axis/T0=17-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_5.nc" myvar[l=1:4]
+ 
+! --- files with T0 varying and date gaps between files ---
+let myvar = L[gt=tday_Tvar]
+ 
+repeat/i=1:10 (\
+define symbol file `i`;\
+define symbol year `i+1980`;\
+define axis/T0=1-jan-($year)/unit=days tday_Tvar = L[l=1:10];\
+save/clobber/file="tmp/tagg_disjoint_T0varying_($file).nc" myvar[l=1:10])
+ !-> repeat/i=1:10 (define symbol file `i`;define symbol year `i+1980`;define axis/T0=1-jan-($year)/unit=days tday_Tvar = L[l=1:10];save/clobber/file="tmp/tagg_disjoint_T0varying_($file).nc" myvar[l=1:10])
+!-> REPEAT: I=1
+ !-> define symbol file 1
+ !-> define symbol year 1981
+ !-> define axis/T0=1-jan-1981/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_1.nc" myvar[l=1:10]
+!-> REPEAT: I=2
+ !-> define symbol file 2
+ !-> define symbol year 1982
+ !-> define axis/T0=1-jan-1982/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_2.nc" myvar[l=1:10]
+!-> REPEAT: I=3
+ !-> define symbol file 3
+ !-> define symbol year 1983
+ !-> define axis/T0=1-jan-1983/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_3.nc" myvar[l=1:10]
+!-> REPEAT: I=4
+ !-> define symbol file 4
+ !-> define symbol year 1984
+ !-> define axis/T0=1-jan-1984/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_4.nc" myvar[l=1:10]
+!-> REPEAT: I=5
+ !-> define symbol file 5
+ !-> define symbol year 1985
+ !-> define axis/T0=1-jan-1985/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_5.nc" myvar[l=1:10]
+!-> REPEAT: I=6
+ !-> define symbol file 6
+ !-> define symbol year 1986
+ !-> define axis/T0=1-jan-1986/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_6.nc" myvar[l=1:10]
+!-> REPEAT: I=7
+ !-> define symbol file 7
+ !-> define symbol year 1987
+ !-> define axis/T0=1-jan-1987/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_7.nc" myvar[l=1:10]
+!-> REPEAT: I=8
+ !-> define symbol file 8
+ !-> define symbol year 1988
+ !-> define axis/T0=1-jan-1988/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_8.nc" myvar[l=1:10]
+!-> REPEAT: I=9
+ !-> define symbol file 9
+ !-> define symbol year 1989
+ !-> define axis/T0=1-jan-1989/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_9.nc" myvar[l=1:10]
+!-> REPEAT: I=10
+ !-> define symbol file 10
+ !-> define symbol year 1990
+ !-> define axis/T0=1-jan-1990/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_10.nc" myvar[l=1:10]
+ 
+! alter first and third files to have only single time step
+define axis/T0=1-jan-1981/unit=days tday_Tvar = L[l=1:10]
+save/clobber/file="tmp/tagg_disjoint_T0varying_1.nc" myvar[l=1:1]
+define axis/T0=1-jan-1983/unit=days tday_Tvar = L[l=1:10]
+save/clobber/file="tmp/tagg_disjoint_T0varying_3.nc" myvar[l=1:1]
+ 
+! make an alternative file 4 that has a different name for the time axis
+define axis/T0=1-jan-1984/unit=days tday_WRONG = L[l=1:10]
+let myvar = L[gt=tday_WRONG]
+save/clobber/file="tmp/tagg_disjoint_T0varying_4_wrong.nc" myvar[l=1:1]
+cancel axis tday_Tvar
+cancel axis tday_WRONG
+ 
+! --- files each containing only a single time step ---
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+ 
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+ 
+! also define a time intependent field to be saved as the second variable
+! but only in the first data set
+let mymap = I[x=0E:0E:5]+ 10*J[Y=80s:80n:5]
+ 
+!save/rigid/keep_axisname/file=...
+ 
+save/clobber/file="tmp/tagg_single_1.nc" myvar[l=1], mymap
+save/clobber/file="tmp/tagg_single_2.nc" myvar[l=2]
+save/clobber/file="tmp/tagg_single_3.nc" myvar[l=3]
+save/clobber/file="tmp/tagg_single_4.nc" myvar[l=4]
+save/clobber/file="tmp/tagg_single_5.nc" myvar[l=5]
+save/clobber/file="tmp/tagg_single_6.nc" myvar[l=6]
+ 
+cancel axis tday
+ 
+cancel var/all
+ 
+ 
+! *****************************************
+! *** test the aggregation capabilities ***
+! --- regularly-spaced axes ---
+! if the first file of the aggregation is already open
+! it must not get disturbed by setting up the aggregation
+use tmp/tagg_reg_1.nc
+ 
+! single dataset aggregation
+tseries myagg1 =  tmp/tagg_reg_1.nc
+show data myagg1
+     currently SET data sets:
+    2> myagg1  (default)
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+show grid myvar
+    GRID GQC1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY1     TIME                10 r   01-JAN-1980 00:00    10-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+! double file aggregation
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show grid myvar
+    GRID GQC3
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY2     TIME                20 r   01-JAN-1980 00:00    20-JAN-1980 00:00   full
+ normal    E
+ normal    F
+stat myvar
+ 
+             SIN(T[GT=TDAY]/10) + L[GT=TDAY]/10
+             X:  N/A
+             Y:  N/A
+             Z:  N/A
+             TIME: 31-DEC-1979 12:00 to 20-JAN-1980 12:00
+             E:  N/A
+             F:  N/A
+             DATA SET: myagg2
+ 
+ Total # of data points: 20 (1*1*1*20*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.11794
+ Maximum value: 2.9403
+ Mean    value: 1.7434 (unweighted average)
+ Standard deviation: 0.90253
+ 
+! show that aggregate name is case-sensitive
+define data/agg/t myAgg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show data myAgg2
+     currently SET data sets:
+    3> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+ 
+! *sh* 1/28/2016 addition
+! same aggregation inheriting its name from the parent script
+define data/agg/t tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/tagg_reg_1.nc
+    2> myagg1
+    3> myagg2
+    4> myAgg2
+    5> ./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
+show data/full  ! all 4 datasets
+     currently SET data sets:
+    1> tmp/tagg_reg_1.nc
+ 
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+               on grid GTR1 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GTR2 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 10-JAN-1980 00:00
+ 
+    2> myagg1
+ 
+     T-aggregation of 1 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+               on grid GQC1 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC2 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 10-JAN-1980 00:00
+ 
+          time-dependent data files:
+01-JAN-1980 00:00 -> 10-JAN-1980 00:00    tmp/tagg_reg_1.nc
+ 
+    3> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+               on grid GQC3 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC4 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-JAN-1980 00:00
+ 
+          time-dependent data files:
+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
+ 
+    4> myAgg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+               on grid GQC5 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC6 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-JAN-1980 00:00
+ 
+          time-dependent data files:
+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
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+               on grid GQC7 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC8 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-JAN-1980 00:00
+ 
+          time-dependent data files:
+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
+ 
+    6> myagg8  (default)
+ 
+     T-aggregation of 8 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:80      ...       ...
+               on grid GQC9 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC10 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-MAR-1980 00:00
+ 
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+ 
+show grid myvar
+    GRID GQC9
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY3     TIME                80 r   01-JAN-1980 00:00    20-MAR-1980 00:00   full
+ normal    E
+ normal    F
+plot/line/sym myvar
+ 
+! read a time-independent field from the first file of the aggregation
+stat mymap
+ 
+             I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]
+             LONGITUDE: 2.5W(-2.5) to 2.5E(362.5)
+             LATITUDE: 82.5S to 82.5N
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: myagg8
+ 
+ Total # of data points: 2409 (73*33*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 11
+ Maximum value: 403
+ Mean    value: 207 (unweighted average)
+ Standard deviation: 97.543
+ 
+! 2/2016 -- reorder deliberately out of order regular files
+define data/agg/t myagg8_disordered1 = tmp/tagg_reg_2.nc, tmp/tagg_reg_1.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
+define data/agg/t myagg8_disordered2 = 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_8.nc, tmp/tagg_reg_7.nc
+show data/files/brief myagg8_disordered1
+     currently SET data sets:
+    7> myagg8_disordered1
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+ 
+show data/files/brief myagg8_disordered2
+     currently SET data sets:
+    8> myagg8_disordered2  (default)
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+ 
+stat/brief T[g=myvar[d=myagg8]] - T[g=myvar[d=myagg8_disordered1]]
+ 
+ Total # of data points: 80 (1*1*1*80*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXLO[g=myvar[d=myagg8]] - TBOXLO[g=myvar[d=myagg8_disordered1]]
+ 
+ Total # of data points: 80 (1*1*1*80*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXHI[g=myvar[d=myagg8]] - TBOXHI[g=myvar[d=myagg8_disordered1]]
+ 
+ Total # of data points: 80 (1*1*1*80*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+cancel data/all
+ 
+! deliberate errors
+set mode ignore
+! try to define the same aggregation again
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+ 
+! try to aggregate with the same file duplicated
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc, tmp/tagg_reg_2.nc
+ 
+! try to aggregate a missing file as first file
+define data/agg/t myaggbad = tmp/tagg_no_exist.nc, tmp/tagg_reg_2.nc
+ 
+! try to aggregate a missing file as subsequent file
+define data/agg/t myaggbad = tmp/tagg_reg_1.nc, tmp/tagg_no_exist.nc
+ 
+! try to define an aggregation where there is no time axis in the first file
+tseries myTindepagg = tmp/tagg_reg_no_T.nc
+ 
+! erroneous file 2 with 15 time steps, goes beyond start of file 3
+define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
+ 
+set mode/last ignore
+canc data/all
+ 
+ 
+! --- irregularly-spaced axes ---
+! aggregation of 2 irregular datasets
+ define data/agg/t myagg2 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc
+ 
+! aggregate a longer collection where all are irregular
+define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irreg_3.nc, tmp/tagg_irreg_4.nc,tmp/tagg_irreg_5.nc, tmp/tagg_irreg_6.nc,tmp/tagg_irreg_7.nc, tmp/tagg_irreg_8.nc
+  show data/full
+     currently SET data sets:
+    1> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+               on grid GCV1 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 21-JAN-1980 14:35
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 11-JAN-1980 05:35    tmp/tagg_irreg_1.nc
+12-JAN-1980 06:24 -> 21-JAN-1980 14:35    tmp/tagg_irreg_2.nc
+ 
+    2> myagg8  (default)
+ 
+     T-aggregation of 8 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:80      ...       ...
+               on grid GCV2 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 24-MAR-1980 14:00
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 11-JAN-1980 05:35    tmp/tagg_irreg_1.nc
+12-JAN-1980 06:24 -> 21-JAN-1980 14:35    tmp/tagg_irreg_2.nc
+22-JAN-1980 15:34 -> 01-FEB-1980 00:54    tmp/tagg_irreg_3.nc
+02-FEB-1980 01:59 -> 11-FEB-1980 12:04    tmp/tagg_irreg_4.nc
+12-FEB-1980 13:13 -> 21-FEB-1980 23:52    tmp/tagg_irreg_5.nc
+23-FEB-1980 01:05 -> 03-MAR-1980 12:10    tmp/tagg_irreg_6.nc
+04-MAR-1980 13:26 -> 14-MAR-1980 00:54    tmp/tagg_irreg_7.nc
+15-MAR-1980 02:12 -> 24-MAR-1980 14:00    tmp/tagg_irreg_8.nc
+ 
+  show data myagg2
+     currently SET data sets:
+    1> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+ 
+  show grid/t myvar[d=1]
+    GRID GCV1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_IR1  TIME                20 i   02-JAN-1980 00:00    21-JAN-1980 14:35   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
+       2>  03-JAN-1980 00:20:01  1.01657    02-JAN-1980 12:10:00    2.013911
+       3>  04-JAN-1980 00:47:43  1.020963   03-JAN-1980 12:33:52    3.03314
+       4>  05-JAN-1980 01:20:24  1.023991   04-JAN-1980 13:04:03    4.055838
+       5>  06-JAN-1980 01:56:49  1.026318   05-JAN-1980 13:38:36    5.081123
+       6>  07-JAN-1980 02:36:12  1.028212   06-JAN-1980 14:16:30    6.108474
+       7>  08-JAN-1980 03:18:04  1.029811   07-JAN-1980 14:57:08    7.137548
+       8>  09-JAN-1980 04:02:03  1.031196   08-JAN-1980 15:40:03    8.168097
+       9>  10-JAN-1980 04:47:54  1.032416   09-JAN-1980 16:24:59    9.199939
+      10>  11-JAN-1980 05:35:25  1.033509   10-JAN-1980 17:11:39    10.23293
+      11>  12-JAN-1980 06:24:25  1.034497   11-JAN-1980 17:59:55    11.26696
+      12>  13-JAN-1980 07:14:46  1.0354     12-JAN-1980 18:49:35    12.30192
+      13>  14-JAN-1980 08:06:22  1.036231   13-JAN-1980 19:40:34    13.33776
+      14>  15-JAN-1980 08:59:06  1.037001   14-JAN-1980 20:32:44    14.37439
+      15>  16-JAN-1980 09:52:55  1.037717   15-JAN-1980 21:26:01    15.41176
+      16>  17-JAN-1980 10:47:44  1.038388   16-JAN-1980 22:20:20    16.44982
+      17>  18-JAN-1980 11:43:29  1.039019   17-JAN-1980 23:15:36    17.48853
+      18>  19-JAN-1980 12:40:06  1.039613   19-JAN-1980 00:11:48    18.52786
+      19>  20-JAN-1980 13:37:34  1.040176   20-JAN-1980 01:08:50    19.56776
+      20>  21-JAN-1980 14:35:49  1.04071    21-JAN-1980 02:06:42    20.60821
+  show grid myvar[d=2]
+    GRID GCV2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_IR2  TIME                80 i   02-JAN-1980 00:00    24-MAR-1980 14:00   full
+ normal    E
+ normal    F
+  plot/line/sym myvar[d=2],myvar[d=1]
+ 
+! aggregate collection that mixes regular (file 2) with irregular
+define data/agg/t myagg4 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2_reg.nc,tmp/tagg_irreg_3.nc, tmp/tagg_irreg_4.nc
+  show grid/t myvar[d=myagg4]
+    GRID GCV3
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_IR3  TIME                40 i   02-JAN-1980 00:00    11-FEB-1980 12:04   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
+       2>  03-JAN-1980 00:20:01  1.01657    02-JAN-1980 12:10:00    2.013911
+       3>  04-JAN-1980 00:47:43  1.020963   03-JAN-1980 12:33:52    3.03314
+       4>  05-JAN-1980 01:20:24  1.023991   04-JAN-1980 13:04:03    4.055838
+       5>  06-JAN-1980 01:56:49  1.026318   05-JAN-1980 13:38:36    5.081123
+       6>  07-JAN-1980 02:36:12  1.028212   06-JAN-1980 14:16:30    6.108474
+       7>  08-JAN-1980 03:18:04  1.029811   07-JAN-1980 14:57:08    7.137548
+       8>  09-JAN-1980 04:02:03  1.031196   08-JAN-1980 15:40:03    8.168097
+       9>  10-JAN-1980 04:47:54  1.032416   09-JAN-1980 16:24:59    9.199939
+      10>  11-JAN-1980 05:35:25  0.9000306  10-JAN-1980 17:11:39    10.23293
+      11>  12-JAN-1980 00:00:00  0.883535   11-JAN-1980 14:47:42    11
+      12>  13-JAN-1980 00:00:00  1          12-JAN-1980 12:00:00    12
+      13>  14-JAN-1980 00:00:00  1          13-JAN-1980 12:00:00    13
+      14>  15-JAN-1980 00:00:00  1          14-JAN-1980 12:00:00    14
+      15>  16-JAN-1980 00:00:00  1          15-JAN-1980 12:00:00    15
+      16>  17-JAN-1980 00:00:00  1          16-JAN-1980 12:00:00    16
+      17>  18-JAN-1980 00:00:00  1          17-JAN-1980 12:00:00    17
+      18>  19-JAN-1980 00:00:00  1          18-JAN-1980 12:00:00    18
+      19>  20-JAN-1980 00:00:00  1          19-JAN-1980 12:00:00    19
+      20>  21-JAN-1980 00:00:00  1.324591   20-JAN-1980 12:00:00    20
+      21>  22-JAN-1980 15:34:49  1.345324   21-JAN-1980 19:47:24    21.64918
+      22>  23-JAN-1980 16:34:32  1.041703   23-JAN-1980 04:04:40    22.69065
+      23>  24-JAN-1980 17:34:55  1.042167   24-JAN-1980 05:04:43    23.73259
+      24>  25-JAN-1980 18:35:58  1.042611   25-JAN-1980 06:05:27    24.77498
+      25>  26-JAN-1980 19:37:38  1.043037   26-JAN-1980 07:06:48    25.81781
+      26>  27-JAN-1980 20:39:55  1.043446   27-JAN-1980 08:08:47    26.86106
+      27>  28-JAN-1980 21:42:46  1.04384    28-JAN-1980 09:11:20    27.9047
+      28>  29-JAN-1980 22:46:10  1.04422    29-JAN-1980 10:14:28    28.94874
+      29>  30-JAN-1980 23:50:07  1.044587   30-JAN-1980 11:18:09    29.99314
+      30>  01-FEB-1980 00:54:35  1.044941   31-JAN-1980 12:22:21    31.03791
+      31>  02-FEB-1980 01:59:33  1.045284   01-FEB-1980 13:27:04    32.08303
+      32>  03-FEB-1980 03:05:00  1.045616   02-FEB-1980 14:32:16    33.12848
+      33>  04-FEB-1980 04:10:55  1.045938   03-FEB-1980 15:37:58    34.17426
+      34>  05-FEB-1980 05:17:18  1.04625    04-FEB-1980 16:44:07    35.22035
+      35>  06-FEB-1980 06:24:07  1.046554   05-FEB-1980 17:50:43    36.26676
+      36>  07-FEB-1980 07:31:22  1.046849   06-FEB-1980 18:57:45    37.31346
+      37>  08-FEB-1980 08:39:03  1.047135   07-FEB-1980 20:05:13    38.36045
+      38>  09-FEB-1980 09:47:07  1.047415   08-FEB-1980 21:13:05    39.40773
+      39>  10-FEB-1980 10:55:36  1.047687   09-FEB-1980 22:21:22    40.45528
+      40>  11-FEB-1980 12:04:28  1.047821   10-FEB-1980 23:30:02    41.50311
+ 
+! deliberate error -- aggregated file out of order
+set mode ignore
+define data/agg/t myagg3 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_3.nc,tmp/tagg_irreg_2.nc
+set mode/last ignore
+canc data/all
+ 
+! --- aggregation from T0-varying files ---
+! aggregate two
+  define data/agg/t myagg2 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc
+ 
+! aggregate several
+define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/tagg_T0varying_3.nc, tmp/tagg_T0varying_4.nc,tmp/tagg_T0varying_5.nc
+  show data/full
+     currently SET data sets:
+    1> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+               on grid GBN1 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 09-JAN-1980 00:00
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_T0varying_1.nc
+06-JAN-1980 00:00 -> 09-JAN-1980 00:00    tmp/tagg_T0varying_2.nc
+ 
+    2> myagg8  (default)
+ 
+     T-aggregation of 5 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:20      ...       ...
+               on grid GBN2 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 21-JAN-1980 00:00
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_T0varying_1.nc
+06-JAN-1980 00:00 -> 09-JAN-1980 00:00    tmp/tagg_T0varying_2.nc
+10-JAN-1980 00:00 -> 13-JAN-1980 00:00    tmp/tagg_T0varying_3.nc
+14-JAN-1980 00:00 -> 17-JAN-1980 00:00    tmp/tagg_T0varying_4.nc
+18-JAN-1980 00:00 -> 21-JAN-1980 00:00    tmp/tagg_T0varying_5.nc
+ 
+  show data myagg2
+     currently SET data sets:
+    1> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+ 
+  show grid/t myvar[d=1]
+    GRID GBN1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR TIME                 8 r   02-JAN-1980 00:00    09-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1980 00:00:00  1          01-JAN-1980 12:00:00    1
+       2>  03-JAN-1980 00:00:00  1          02-JAN-1980 12:00:00    2
+       3>  04-JAN-1980 00:00:00  1          03-JAN-1980 12:00:00    3
+       4>  05-JAN-1980 00:00:00  1          04-JAN-1980 12:00:00    4
+       5>  06-JAN-1980 00:00:00  1          05-JAN-1980 12:00:00    5
+       6>  07-JAN-1980 00:00:00  1          06-JAN-1980 12:00:00    6
+       7>  08-JAN-1980 00:00:00  1          07-JAN-1980 12:00:00    7
+       8>  09-JAN-1980 00:00:00  1          08-JAN-1980 12:00:00    8
+  show grid myvar[d=2]
+    GRID GBN2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR1 TIME               20 r   02-JAN-1980 00:00    21-JAN-1980 00:00   full
+ normal    E
+ normal    F
+  plot/line/sym myvar[d=2],myvar[d=1]
+ 
+canc data/all
+ 
+! --- aggregations of disjoint, irregularly-sized, T0-varying files ---
+! aggregate two
+  define data/agg/t myagg2 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc
+ 
+ 
+! aggregate several
+define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4.nc,tmp/tagg_disjoint_T0varying_5.nc, tmp/tagg_disjoint_T0varying_6.nc,tmp/tagg_disjoint_T0varying_7.nc, tmp/tagg_disjoint_T0varying_8.nc
+  show data/full
+     currently SET data sets:
+    1> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+               on grid GKQ1 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1981 00:00 to 11-JAN-1982 00:00
+ 
+          time-dependent data files:
+02-JAN-1981 00:00 -> 02-JAN-1981 00:00    tmp/tagg_disjoint_T0varying_1.nc
+02-JAN-1982 00:00 -> 11-JAN-1982 00:00    tmp/tagg_disjoint_T0varying_2.nc
+ 
+    2> myagg8  (default)
+ 
+     T-aggregation of 8 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:62      ...       ...
+               on grid GKQ2 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1981 00:00 to 11-JAN-1988 00:00
+ 
+          time-dependent data files:
+02-JAN-1981 00:00 -> 02-JAN-1981 00:00    tmp/tagg_disjoint_T0varying_1.nc
+02-JAN-1982 00:00 -> 11-JAN-1982 00:00    tmp/tagg_disjoint_T0varying_2.nc
+02-JAN-1983 00:00 -> 02-JAN-1983 00:00    tmp/tagg_disjoint_T0varying_3.nc
+02-JAN-1984 00:00 -> 11-JAN-1984 00:00    tmp/tagg_disjoint_T0varying_4.nc
+02-JAN-1985 00:00 -> 11-JAN-1985 00:00    tmp/tagg_disjoint_T0varying_5.nc
+02-JAN-1986 00:00 -> 11-JAN-1986 00:00    tmp/tagg_disjoint_T0varying_6.nc
+02-JAN-1987 00:00 -> 11-JAN-1987 00:00    tmp/tagg_disjoint_T0varying_7.nc
+02-JAN-1988 00:00 -> 11-JAN-1988 00:00    tmp/tagg_disjoint_T0varying_8.nc
+ 
+  show data myagg2
+     currently SET data sets:
+    1> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+ 
+  show grid/t myvar[d=1]
+    GRID GKQ1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR TIME                11 i   02-JAN-1981 00:00    11-JAN-1982 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
+       2>  02-JAN-1982 00:00:00  183        03-JUL-1981 12:00:00    366
+       3>  03-JAN-1982 00:00:00  1          02-JAN-1982 12:00:00    367
+       4>  04-JAN-1982 00:00:00  1          03-JAN-1982 12:00:00    368
+       5>  05-JAN-1982 00:00:00  1          04-JAN-1982 12:00:00    369
+       6>  06-JAN-1982 00:00:00  1          05-JAN-1982 12:00:00    370
+       7>  07-JAN-1982 00:00:00  1          06-JAN-1982 12:00:00    371
+       8>  08-JAN-1982 00:00:00  1          07-JAN-1982 12:00:00    372
+       9>  09-JAN-1982 00:00:00  1          08-JAN-1982 12:00:00    373
+      10>  10-JAN-1982 00:00:00  1          09-JAN-1982 12:00:00    374
+      11>  11-JAN-1982 00:00:00  1          10-JAN-1982 12:00:00    375
+  show grid myvar[d=2]
+    GRID GKQ2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
+ normal    E
+ normal    F
+  plot/line/sym/vlim=0:11 myvar[d=2],myvar[d=1]
+ 
+! a few tests of using Ferret string variables to get the names of files
+define data/agg/t listAgg1 = {"tmp/tagg_reg_1.nc", "tmp/tagg_reg_2.nc"}
+show data/files listAgg1
+     currently SET data sets:
+    3> listAgg1  (default)
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+          time-dependent data files:
+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
+ 
+ 
+! define a long aggregation
+let file_list = SPAWN("ls -1 tmp/tagg_reg_?.nc")
+define data/agg/t listAgg2 = file_list
+show data/files listAgg2
+     currently SET data sets:
+    4> listAgg2  (default)
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:90      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+21-MAR-1980 00:00 -> 30-MAR-1980 00:00    tmp/tagg_reg_9.nc
+ 
+ 
+! reorder deliberately out of order file of differing lengths
+define data/agg/t myagg8_disordered3 = tmp/tagg_disjoint_T0varying_2.nc, tmp/tagg_disjoint_T0varying_1.nc,tmp/tagg_disjoint_T0varying_5.nc, tmp/tagg_disjoint_T0varying_4.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_8.nc,tmp/tagg_disjoint_T0varying_7.nc, tmp/tagg_disjoint_T0varying_6.nc
+show data/files/brief myagg8_disordered3
+     currently SET data sets:
+    5> myagg8_disordered3  (default)
+          time-dependent data files:
+02-JAN-1981 00:00 -> 02-JAN-1981 00:00    tmp/tagg_disjoint_T0varying_1.nc
+02-JAN-1982 00:00 -> 11-JAN-1982 00:00    tmp/tagg_disjoint_T0varying_2.nc
+02-JAN-1983 00:00 -> 02-JAN-1983 00:00    tmp/tagg_disjoint_T0varying_3.nc
+02-JAN-1984 00:00 -> 11-JAN-1984 00:00    tmp/tagg_disjoint_T0varying_4.nc
+02-JAN-1985 00:00 -> 11-JAN-1985 00:00    tmp/tagg_disjoint_T0varying_5.nc
+02-JAN-1986 00:00 -> 11-JAN-1986 00:00    tmp/tagg_disjoint_T0varying_6.nc
+02-JAN-1987 00:00 -> 11-JAN-1987 00:00    tmp/tagg_disjoint_T0varying_7.nc
+02-JAN-1988 00:00 -> 11-JAN-1988 00:00    tmp/tagg_disjoint_T0varying_8.nc
+ 
+! ... the same calendar axis, but encoded with the T0 of the first file
+show grid/l=1:8 myvar[d=myagg8]
+    GRID GKQ2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
+       2>  02-JAN-1982 00:00:00  183        03-JUL-1981 12:00:00    366
+       3>  03-JAN-1982 00:00:00  1          02-JAN-1982 12:00:00    367
+       4>  04-JAN-1982 00:00:00  1          03-JAN-1982 12:00:00    368
+       5>  05-JAN-1982 00:00:00  1          04-JAN-1982 12:00:00    369
+       6>  06-JAN-1982 00:00:00  1          05-JAN-1982 12:00:00    370
+       7>  07-JAN-1982 00:00:00  1          06-JAN-1982 12:00:00    371
+       8>  08-JAN-1982 00:00:00  1          07-JAN-1982 12:00:00    372
+show grid/l=1:8 myvar[d=myagg8_disordered3]
+    GRID GLF1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR2 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    -364
+       2>  02-JAN-1982 00:00:00  183        03-JUL-1981 12:00:00    1
+       3>  03-JAN-1982 00:00:00  1          02-JAN-1982 12:00:00    2
+       4>  04-JAN-1982 00:00:00  1          03-JAN-1982 12:00:00    3
+       5>  05-JAN-1982 00:00:00  1          04-JAN-1982 12:00:00    4
+       6>  06-JAN-1982 00:00:00  1          05-JAN-1982 12:00:00    5
+       7>  07-JAN-1982 00:00:00  1          06-JAN-1982 12:00:00    6
+       8>  08-JAN-1982 00:00:00  1          07-JAN-1982 12:00:00    7
+ 
+cancel data/all
+ 
+! deliberate errors
+set mode ignore
+! deliberate error - try to re-use a name already in use
+  define data/agg/t myagg2 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc
+ 
+! deliberate error - the fourth file (*_4_wrong.nc) changes time axis name
+define data/agg/t myagg5_bad = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4_wrong.nc,tmp/tagg_disjoint_T0varying_5.nc
+set mode/last ignore
+ 
+canc data/all
+ 
+! --- aggregations of single timestep files ---
+! define a regular aggregation
+define data/agg/t MYsing_reg_agg6 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_3.nc, tmp/tagg_single_4.nc,tmp/tagg_single_5.nc, tmp/tagg_single_6.nc
+show data/full  MYsing_reg_agg6
+     currently SET data sets:
+    1> MYsing_reg_agg6  (default)
+ 
+     T-aggregation of 6 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:6       ...       ...
+               on grid GMI1 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GMI2 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 06-JAN-1980 00:00
+ 
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+03-JAN-1980 00:00 -> 03-JAN-1980 00:00    tmp/tagg_single_3.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+06-JAN-1980 00:00 -> 06-JAN-1980 00:00    tmp/tagg_single_6.nc
+ 
+show grid/t myvar
+    GRID GMI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY1     TIME                 6 r   01-JAN-1980 00:00    06-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
+       2>  02-JAN-1980 00:00:00  1          01-JAN-1980 12:00:00    28841
+       3>  03-JAN-1980 00:00:00  1          02-JAN-1980 12:00:00    28842
+       4>  04-JAN-1980 00:00:00  1          03-JAN-1980 12:00:00    28843
+       5>  05-JAN-1980 00:00:00  1          04-JAN-1980 12:00:00    28844
+       6>  06-JAN-1980 00:00:00  1          05-JAN-1980 12:00:00    28845
+ 
+! read a time-independent field from the first file of the aggregation
+stat mymap
+ 
+             I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]
+             LONGITUDE: 2.5W(-2.5) to 2.5E(362.5)
+             LATITUDE: 82.5S to 82.5N
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: MYsing_reg_agg6
+ 
+ Total # of data points: 2409 (73*33*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 11
+ Maximum value: 403
+ Mean    value: 207 (unweighted average)
+ Standard deviation: 97.543
+ 
+! define an irregular aggregation
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+show data/full MYsing_irreg_agg4
+     currently SET data sets:
+    2> MYsing_irreg_agg4  (default)
+ 
+     T-aggregation of 4 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:4       ...       ...
+               on grid GMI3 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GMI4 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 05-JAN-1980 00:00
+ 
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+show grid/t myvar
+    GRID GMI3
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY2     TIME                 4 i   01-JAN-1980 00:00    05-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
+       2>  02-JAN-1980 00:00:00  1.5        01-JAN-1980 12:00:00    28841
+       3>  04-JAN-1980 00:00:00  1.5        03-JAN-1980 00:00:00    28843
+       4>  05-JAN-1980 00:00:00  1          04-JAN-1980 12:00:00    28844
+ 
+! 2/2016 - reorder deliberately out of order aggregation of irregular times
+define data/agg/t MYsing_irreg_agg4_disordered1 = tmp/tagg_single_2.nc, tmp/tagg_single_1.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+define data/agg/t MYsing_irreg_agg4_disordered2 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_5.nc, tmp/tagg_single_4.nc
+show data/files/brief
+     currently SET data sets:
+    1> MYsing_reg_agg6
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+03-JAN-1980 00:00 -> 03-JAN-1980 00:00    tmp/tagg_single_3.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+06-JAN-1980 00:00 -> 06-JAN-1980 00:00    tmp/tagg_single_6.nc
+ 
+    2> MYsing_irreg_agg4
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+    3> MYsing_irreg_agg4_disordered1
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+    4> MYsing_irreg_agg4_disordered2  (default)
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+stat/brief T[g=myvar[d=MYsing_irreg_agg4]] - T[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+ 
+ Total # of data points: 4 (1*1*1*4*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXLO[g=myvar[d=MYsing_irreg_agg4]] - TBOXLO[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+ 
+ Total # of data points: 4 (1*1*1*4*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXHI[g=myvar[d=MYsing_irreg_agg4]] - TBOXHI[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+ 
+ Total # of data points: 4 (1*1*1*4*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+canc data/all
+ 
+! OPeNDAP test
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
+ !-> IF 1 THEN
+   tseries COADS = http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
+show data COADS
+     currently SET data sets:
+    1> COADS  (default)
+ name     title                             I         J         K         L         M         N
+ AIR      Air Temperature Monthly Mean_da  1:180     1:90      ...       1:36      ...       ...
+ 
+show grid/T air
+    GRID GMW1
+ name       axis              # pts   start                end                 subset
+ 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
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN-2012 12:00:00  31         01-JAN-2012 00:00:00    77446.5
+       2>  15-FEB-2012 12:00:00  29         01-FEB-2012 00:00:00    77476.5
+       3>  16-MAR-2012 12:00:00  31         01-MAR-2012 00:00:00    77506.5
+       4>  16-APR-2012 00:00:00  30         01-APR-2012 00:00:00    77537
+       5>  16-MAY-2012 12:00:00  31         01-MAY-2012 00:00:00    77567.5
+       6>  16-JUN-2012 00:00:00  30         01-JUN-2012 00:00:00    77598
+       7>  16-JUL-2012 12:00:00  31         01-JUL-2012 00:00:00    77628.5
+       8>  16-AUG-2012 12:00:00  31         01-AUG-2012 00:00:00    77659.5
+       9>  16-SEP-2012 00:00:00  30         01-SEP-2012 00:00:00    77690
+      10>  16-OCT-2012 12:00:00  31         01-OCT-2012 00:00:00    77720.5
+      11>  16-NOV-2012 00:00:00  30         01-NOV-2012 00:00:00    77751
+      12>  16-DEC-2012 12:00:00  31         01-DEC-2012 00:00:00    77781.5
+      13>  16-JAN-2013 12:00:00  31         01-JAN-2013 00:00:00    77812.5
+      14>  15-FEB-2013 00:00:00  28         01-FEB-2013 00:00:00    77842
+      15>  16-MAR-2013 12:00:00  31         01-MAR-2013 00:00:00    77871.5
+      16>  16-APR-2013 00:00:00  30         01-APR-2013 00:00:00    77902
+      17>  16-MAY-2013 12:00:00  31         01-MAY-2013 00:00:00    77932.5
+      18>  16-JUN-2013 00:00:00  30         01-JUN-2013 00:00:00    77963
+      19>  16-JUL-2013 12:00:00  31         01-JUL-2013 00:00:00    77993.5
+      20>  16-AUG-2013 12:00:00  31         01-AUG-2013 00:00:00    78024.5
+      21>  16-SEP-2013 00:00:00  30         01-SEP-2013 00:00:00    78055
+      22>  16-OCT-2013 12:00:00  31         01-OCT-2013 00:00:00    78085.5
+      23>  16-NOV-2013 00:00:00  30         01-NOV-2013 00:00:00    78116
+      24>  16-DEC-2013 12:00:00  31         01-DEC-2013 00:00:00    78146.5
+      25>  16-JAN-2014 12:00:00  31         01-JAN-2014 00:00:00    78177.5
+      26>  15-FEB-2014 00:00:00  28         01-FEB-2014 00:00:00    78207
+      27>  16-MAR-2014 12:00:00  31         01-MAR-2014 00:00:00    78236.5
+      28>  16-APR-2014 00:00:00  30         01-APR-2014 00:00:00    78267
+      29>  16-MAY-2014 12:00:00  31         01-MAY-2014 00:00:00    78297.5
+      30>  16-JUN-2014 00:00:00  30         01-JUN-2014 00:00:00    78328
+      31>  16-JUL-2014 12:00:00  31         01-JUL-2014 00:00:00    78358.5
+      32>  16-AUG-2014 12:00:00  31         01-AUG-2014 00:00:00    78389.5
+      33>  16-SEP-2014 00:00:00  30         01-SEP-2014 00:00:00    78420
+      34>  16-OCT-2014 12:00:00  31         01-OCT-2014 00:00:00    78450.5
+      35>  16-NOV-2014 00:00:00  30         01-NOV-2014 00:00:00    78481
+      36>  16-DEC-2014 12:00:00  31         01-DEC-2014 00:00:00    78511.5
+canc data/all
+ELSE
+ENDIF
+ 
+! "USE file.agg" test
+! test the hack to XEQ_SET which permits "SET DATA file.agg" to metamorphose
+! into "GO file.agg"
+spawn echo "define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc,tmp/tagg_reg_3.nc" > tmp/good_agg.agg
+spawn echo "garbage command syntax" > tmp/bad_agg.agg
+ 
+! deliberate errorrs
+! bad .agg aggregation file
+set mode ignore
+USE "tmp/bad_agg.agg"
+garbage command syntax
+ 
+! irregular aggregation with first file duplicated
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+ 
+! irregular aggregation with last file duplicated
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc, tmp/tagg_single_5.nc
+ 
+set/last mode ignore
+ 
+! valid syntax to initialize an aggregation
+USE "tmp/good_agg.agg"
+define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc,tmp/tagg_reg_3.nc
+show data/br
+     currently SET data sets:
+    1> myagg3  (default)
+cancel data/all
+ 
+GO bn_reset
+cancel mode verify
+GO bn_unquoted_args
+! bn_unquoted_args.jnl
+! 12/2015 -- a hack change to PPARSE_COMMAND to allow users to omit
+! the quotation marks in the argument(s) of SET DATA, GO and DEFINE SYMBOL
+ 
+! 2/2016 *sh* removed the GO/HELP tests
+ 
+spawn "mkdir -p tmp"
+ 
+! ****** SET DATA TESTS *****
+! make test files
+save/clobber/file="tmp/test1.nc" i[i=1:3] + 1
+save/clobber/file="tmp/test2.nc" i[i=1:3] + 2
+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/linux/FERRET/bench/tmp/test1.nc
+say ($use_abs_path)
+ !-> MESSAGE/CONTINUE /home/users/ansley/build/linux/FERRET/bench/tmp/test1.nc
+/home/users/ansley/build/linux/FERRET/bench/tmp/test1.nc
+ 
+use tmp/test1.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use "tmp/test1.nc"
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use "tmp/test1.nc"
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use tmp/test1.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use "($use_abs_path)"
+ !-> SET DAT/FORM=CDF "/home/users/ansley/build/linux/FERRET/bench/tmp/test1.nc"
+show data/brief
+     currently SET data sets:
+    1> /home/users/ansley/build/linux/FERRET/bench/tmp/test1.nc  (default)
+canc data/all
+ 
+use ($use_abs_path)
+ !-> SET DAT/FORM=CDF /home/users/ansley/build/linux/FERRET/bench/tmp/test1.nc
+show data/brief
+     currently SET data sets:
+    1> /home/users/ansley/build/linux/FERRET/bench/tmp/test1.nc  (default)
+canc data/all
+ 
+use tmp/test1.nc,tmp/test2.nc,tmp/test3.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc
+    2> tmp/test2.nc
+    3> tmp/test3.nc  (default)
+canc data/all
+ 
+use tmp/test1.nc,"tmp/test2.nc", tmp/test3.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc
+    2> tmp/test2.nc
+    3> tmp/test3.nc  (default)
+canc data/all
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+  use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+  show data/brief
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+  canc data/all
+  use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  show data/brief
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+  canc data/all
+  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc
+    2> tmp/test2.nc
+    3> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+  canc data/all
+ELSE
+ENDIF
+ 
+! deliberate errors
+! erroneous qualifier with no white space detected
+set mode ignore
+set data/erroneous tmp/test1.nc
+ 
+! erroneous qualifier with white space detected
+set data /erroneous tmp/test1.nc
+ 
+! erroneous qualifier with comma treated as an invalid filename
+set data /erroneous, tmp/test1.nc
+ 
+can mode ignore
+ 
+canc data/all
+ 
+ 
+! ****** GO script tests *****
+! make a dummy GO file for testing
+spawn rm -f tmp/dummy.jnl
+spawn echo "say hello" >tmp/dummy.jnl
+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" $7"7-n/a" $8"8-n/a"' > tmp/testMe.jnl
+ 
+! generate absolute path
+let dir = SPAWN("pwd")
+define sym abs_path = `DIR+"/tmp/testMe.jnl"`
+ !-> define sym abs_path = /home/users/ansley/build/linux/FERRET/bench/tmp/testMe.jnl
+say ($abs_path)
+ !-> MESSAGE/CONTINUE /home/users/ansley/build/linux/FERRET/bench/tmp/testMe.jnl
+/home/users/ansley/build/linux/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"
+ !-> 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 "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/linux/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/linux/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 tmp/testMe 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 "tmp/testMe" 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/linux/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/linux/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
+ 
+! test GO/HELP
+! 2/2016 - commented these tests out, tho they work fine.   GO/HELP
+!          apparently runs asynchronously with the bench logging (why?)
+!          This results in the placement of the GO/HELP output shifting in
+!          the benchmark output log -- a hassle when comparing benchmarks
+!go/help tmp/testMe
+!go /help tmp/testMe
+!go/help "tmp/testMe"
+!go/help ($abs_path)
+!go/help "($abs_path)"
+ 
+! a few tests the slipped through the first time
+GO tmp/testMe POLYGON/KEY/lev=20 xpts,ypts,sst,star
+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 POLYGON/KEY/lev=20  xpts  ypts  sst star 6-n/a 7-n/a 8-n/a
+POLYGON/KEY/lev=20  xpts  ypts  sst star 6-n/a 7-n/a 8-n/a
+go "tmp/testMe.jnl" /home/users/tmap/ferret/linux/fer_dsets/data/coads_climatology.cdf
+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 /home/users/tmap/ferret/linux/fer_dsets/data/coads_climatology.cdf  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+/home/users/tmap/ferret/linux/fer_dsets/data/coads_climatology.cdf  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+if 1 then let/quiet mytestvar = whatever
+sh var mytestvar
+ MYTESTVAR = WHATEVER
+ 
+ 
+set mode ignore
+go/garbage tmp/testMe
+go/garbage "tmp/testMe"
+go/garbage ($abs_path)
+go/garbage "($abs_path)"
+set mode/last ignore
+ 
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_long_lists
+! bn_long_lists.jnl
+! See ticket 2337
+!
+! Increase command-line buffer by a factor of 10, to accomodate long lists
+! defined in the variable definition.
+! Also allow for more items in the list.
+ 
+! 2/2016, backed off the extra-long buffer, but keep these tests, on shortened variables.
+ 
+! This one gets its Title truncated
+ 
+let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc"}
+ 
+let longlist = {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0}
+ 
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     LONGLIST = {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8 [...]
+     FILE_LIST = {"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmo [...]
+ 
+! do them in repeat loop
+ 
+repeat/range=1:4:1/name=q (let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0012.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0013.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0014.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0015.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0016.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0017.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0018.t_surf.nc",\
+} )
+!-> REPEAT: Q:1
+!-> REPEAT: Q:2
+!-> REPEAT: Q:3
+!-> REPEAT: Q:4
+ 
+! Intentional errors:
+! Make them longer
+ 
+set mode ignore
+ 
+! Line length still under 2048, but more items than 1000,
+! issues a NOTE that they're not all parsed.
+ 
+let a={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0}
+load a
+ 
+! command line too long
+ 
+let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0012.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0013.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0014.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0015.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0016.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0017.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0018.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0019.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0022.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0023.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0024.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0025.t_surf.nc",\}
+ 
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO bn_show_uvar_grid
+! bn_show_uvar_grid.jnl
+! Add notes to the output of SHOW GRID for variables and expressions
+! indicate compressed axes, point subsets and subset ranges.
+! For grid changing functions just mark axis as such
+!
+! 12/17/2015 *acm*
+! 12/18 2015 *acm* Add constant and constant-array variables,
+!                  and modulo axis request on more than full range
+ 
+use coads_climatology
+show grid sst[x=240:320,y=0,t=@ave]
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            39 pts
+ COADSY    LATITUDE            90 r   89S                  89N                 1 pt
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
+ normal    E
+ normal    F
+ 
+! Modulo axes ask for superset
+show grid sst[x=0:540,L=1:15]
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            269 pts
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        14 pts
+ normal    E
+ normal    F
+ 
+! Constant: full abstract grid
+show grid 1
+    GRID ABSTRACT
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
+ ABSTRACT  Y             99999999 r   1                    1.E+08              full
+ ABSTRACT  Z             99999999 r   1                    1.E+08              full
+ ABSTRACT  T             99999999 r   1                    1.E+08              full
+ ABSTRACT  E             99999999 r   1                    1.E+08              full
+ ABSTRACT  F             99999999 r   1                    1.E+08              full
+ 
+! Constant-array
+show grid {1}
+    GRID XABSTRACT
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              1 pt
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+let var = {1,2,4,8}  ! Note that show grid {1,2,4,8} fails: bug
+show grid var
+    GRID XABSTRACT
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              3 pts
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+ 
+! but don't show any user-var grid info if they just ask for the grid by name
+show grid `sst,return=grid`
+ !-> show grid GSQ1
+    GRID GSQ1
+ name       axis              # pts   start                end
+ COADSX    LONGITUDE          180mr   21E                  19E(379)
+ COADSY    LATITUDE            90 r   89S                  89N
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ normal    E
+ normal    F
+ 
+! grid of last variable loaded
+load sst[x=240,y=@iin,t=@ave]
+show grid
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid GSQ1
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ 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
+ normal    E
+ normal    F
+ 
+! Result grid is full grid
+let var = sst[L=@ave] - sst[x=@max] - sst[y=0]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ 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
+ normal    E
+ normal    F
+ 
+! transform on single-point range is equiv. to single-point subset
+ 
+cancel mode interpolate  ! otherwise single-pt range fails
+let var = sst[X=30 at max]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ 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
+ normal    E
+ normal    F
+set mode/last interpolate
+let var = sst[X=30:30.1 at max]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ 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
+ normal    E
+ normal    F
+ 
+! dynamic grid
+let var = sst[y=-10:10:.1,l=1,x=160e]
+show grid var
+    GRID (G084)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX122)   LATITUDE           201 r   10S                  10N                 200 pts
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
+ normal    E
+ normal    F
+ 
+! striding
+show grid sst[i=1:180:3,j=1:90:2]
+    GRID (G088)
+ name       axis              # pts   start                end                 subset
+ (AX120)   LONGITUDE           60 r   21E                  15E(375)            59 pts
+ (AX133)   LATITUDE            45 r   89S                  87N                 44 pts
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+ 
+! regridding
+ 
+use coads_vwnd
+define axis/t=1-jan-1980:31-dec-1982:1/units=days dax
+let vwnd_days = vwnd[gt=dax,t=1-jun-1982:15-jul-1982]
+sh grid vwnd_days
+    GRID (G088)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ DAX       TIME              1096 r   01-JAN-1980 00:00    31-DEC-1982 00:00   44 pts
+ normal    E
+ normal    F
+ 
+let vwnd_clim = vwnd[gt=month_irreg at mod]
+sh grid vwnd_clim[L=4:9]
+    GRID (G104)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49        5 pts
+ normal    E
+ normal    F
+ 
+can dat/all
+use coads_climatology
+ 
+! non-compressing transforms
+ 
+let var = sst[y=@iin]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+ 
+let var = sst[y=-30:30 at iin]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 29 pts
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+ 
+use levitus_3d_subset
+let var = temp[z=@weq:20]
+show grid var
+    GRID GAO1
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                full
+ normal    T
+ normal    E
+ normal    F
+ 
+let var = temp[z=1:120 at weq:20]
+show grid var
+    GRID GAO1
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                6 pts
+ normal    T
+ normal    E
+ normal    F
+ 
+ 
+! grid-changing functions
+can dat/all
+use levitus_3d_subset
+let depth =  Z[G=TEMP]+ 0*TEMP[K=1]
+let depth_rev = zreverse(depth)
+show grid depth_rev
+    GRID (G083)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ABSTRACT  Z             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    T
+ normal    E
+ normal    F
+ 
+DEFINE AXIS/t=1-Jan-1990:31-Dec-1990:24/t0=1-jan-1980 dayt
+let tpts = t[gt=dayt]
+LET sample_function = sin(0.5*tpts - 6.)/2. - cos(0.3*tpts)
+ 
+show grid ffta(sample_function)
+    GRID (G088)
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ (AX113)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
+ normal    E
+ normal    F
+ 
+show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
+    GRID (G088)
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ (AX133)   T (CYC/HOURS)       76 r   0.00027412           0.020833            (axis from grid-changing func)
+ normal    E
+ normal    F
+ 
+show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
+    GRID (G104)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                3 pts
+ (AX113)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
+ normal    E
+ normal    F
+ 
+can dat/all
+ 
+! auxiliary regridding
+ 
+use levitus_3d_subset.nc
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+let  TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
+ 
+sh grid tempz
+    GRID (G084)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX122)   Z                    5 r   100                  500                 full
+ normal    T
+ normal    E
+ normal    F
+sh grid tempz[z=100:400]
+    GRID (G084)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX122)   Z                    5 r   100                  500                 3 pts
+ normal    T
+ normal    E
+ normal    F
+ 
+! and with a grid-changing function thrown in
+ 
+use levitus_3d_subset.nc
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+LET/D=levitus_3d_subset rvdepth  = rvdepth0[gz=temp at asn]
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp  = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+show grid rvtempzax
+    GRID (G109)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
+ normal    T
+ normal    E
+ normal    F
+ 
+! gc func: limits are hidden so a subset not seen
+ 
+LET rvtempzax = rvtemp[gz(rvdepth)=zax]
+show grid rvtempzax[z=100:300]
+    GRID (G109)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
+ normal    T
+ normal    E
+ normal    F
+ 
+GO bn_reset
+cancel mode verify
+GO bn_aggregate_f
+! bn_aggregate_f.F
+! 12/2015 *sh*
+! 1/2016 *sh* added implicit naming of aggregation from script filename
+ 
+! exercise FMRC aggregations
+ 
+spawn "mkdir -p tmp"     ! tmp directory t store files
+ 
+! *** create an artificial forecast model run collection ***
+ 
+! a 20x20 lat-long region
+define axis/x=140e:160e:1 xax
+define axis/y=20n:40n:1 yax
+ 
+! a 20 year monthly axis starting in Jan 1950
+LET start_year = 1950
+LET nyears = 20
+LET indices = L[L=1:`nyears*12`]
+ !-> DEFINE VARIABLE indices = L[L=1:240]
+LET month = MOD(indices-1,12)+1
+LET year = start_year + INT((indices-1)/12)
+DEFINE AXIS/UNITS=days/T0=1-jan-1900/EDGES truemonth = DAYS1900(year,month,1)
+ 
+! define a moving field with errors increasing from a given forecast date
+let vy = 1/500      ! speed that forecast structure deviates from truth
+!let vx = 1/300
+let vx = (1+(T[gt=truemonth]-tstart)/2000)* 1/300
+let xt = x[gx=xax]-vx*T[gt=truemonth]
+let yt = y[gy=yax]-vy*T[gt=truemonth]
+let field = COS((xt-150)/5)*COS((yt-30)/5)
+let fcst = field + fcst_error
+let static_error = SIN((x[gx=xax]-140)/5)*SIN((y[gy=yax]-20)/5) + RANDU(x[gx=xax]+y[gy=yax])
+let structure_drift = (t[gt=truemonth]-tstart)/5000 * static_error
+let random_error = (t[gt=truemonth]-tstart)/2000 * RANDU(t[gt=truemonth]+x[gx=xax]+y[gy=yax])
+let fcst_error = structure_drift + random_error
+let/title="another variable" fcst_2 = fcst + 2
+ 
+! every 3 months another 2-year forecast
+repeat/name=fdate/range=1:31:3 (let tstart = t[gt=truemonth,l=`fdate`];save/clobber/file="tmp/fcst_`(fdate-1)/3+1`.nc"/l=`fdate`:`fdate+23` fcst,  fcst_2)
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_1.nc"/l=1:24 fcst,  fcst_2
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_2.nc"/l=4:27 fcst,  fcst_2
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_3.nc"/l=7:30 fcst,  fcst_2
+!-> REPEAT: FDATE:10
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_4.nc"/l=10:33 fcst,  fcst_2
+!-> REPEAT: FDATE:13
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=13]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_5.nc"/l=13:36 fcst,  fcst_2
+!-> REPEAT: FDATE:16
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=16]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_6.nc"/l=16:39 fcst,  fcst_2
+!-> REPEAT: FDATE:19
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=19]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_7.nc"/l=19:42 fcst,  fcst_2
+!-> REPEAT: FDATE:22
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=22]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_8.nc"/l=22:45 fcst,  fcst_2
+!-> REPEAT: FDATE:25
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=25]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_9.nc"/l=25:48 fcst,  fcst_2
+!-> REPEAT: FDATE:28
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=28]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_10.nc"/l=28:51 fcst,  fcst_2
+!-> REPEAT: FDATE:31
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=31]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_11.nc"/l=31:54 fcst,  fcst_2
+ 
+! a couple of long (3-year) forecasts
+let tstart = t[gt=truemonth,l=1]
+save/clobber/file="tmp/long_fcst_1.nc"/l=1:36 fcst,fcst_2   ! replaces file 1
+let tstart = t[gt=truemonth,l=16]
+save/clobber/file="tmp/long_fcst_6.nc"/l=16:52 fcst,fcst_2  ! replaces file 6
+ 
+! files lacking the second variable
+let tstart = t[gt=truemonth,l=1]
+save/clobber/file="tmp/one_var_fcst_1.nc"/l=1:24 fcst   ! alternative of file 1
+let tstart = t[gt=truemonth,l=16]
+save/clobber/file="tmp/one_var_fcst_6.nc"/l=16:39 fcst  ! alternative of file 6
+ 
+! files that violate the sequence
+save/clobber/file="tmp/consecutive_month_fcst.nc"/l=5:28 fcst, fcst_2
+! shift the time interpretation by 3 days through altered T0
+DEFINE AXIS/UNITS=days/T0=4-jan-1900/EDGES truemonth = DAYS1900(year,month,1)
+save/clobber/file="tmp/irregular_start_time_fcst.nc"/l=6:29 fcst, fcst_2
+ 
+cancel variables/all
+ 
+! ***** end of FMRC file creation ****************
+ 
+! define a complete FMRC aggregation
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+list files  ! notice that they are not properly ordered
+             VARIABLE : SPAWN("ls -1 tmp/fcst_*.nc")
+             SUBSET   : 11 points (X)
+ 1    /  1:"tmp/fcst_10.nc"
+ 2    /  2:"tmp/fcst_11.nc"
+ 3    /  3:"tmp/fcst_1.nc" 
+ 4    /  4:"tmp/fcst_2.nc" 
+ 5    /  5:"tmp/fcst_3.nc" 
+ 6    /  6:"tmp/fcst_4.nc" 
+ 7    /  7:"tmp/fcst_5.nc" 
+ 8    /  8:"tmp/fcst_6.nc" 
+ 9    /  9:"tmp/fcst_7.nc" 
+ 10   / 10:"tmp/fcst_8.nc" 
+ 11   / 11:"tmp/fcst_9.nc" 
+fmrc my_fmrc = files
+show data/brief    ! note that member files are hidden
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+show data/files my_fmrc
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:11
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1 : tmp/fcst_1.nc
+      2 : tmp/fcst_2.nc
+      3 : tmp/fcst_3.nc
+      4 : tmp/fcst_4.nc
+      5 : tmp/fcst_5.nc
+      6 : tmp/fcst_6.nc
+      7 : tmp/fcst_7.nc
+      8 : tmp/fcst_8.nc
+      9 : tmp/fcst_9.nc
+      10: tmp/fcst_10.nc
+      11: tmp/fcst_11.nc
+show data/attr my_fmrc
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        7    F       my_fmrc
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ FCST                  FLOAT     long_name       CHAR        18   T       FIELD + FCST_ERROR
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        34   T       RUN TIME16 TF_TIMES TIME16 YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ TF_TIMES              FLOAT     long_name       CHAR        25   T       Forecast time step matrix
+                                 units           CHAR        31   T       days since 01-JAN-1900 00:00:00
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 _CoordinateAxisType
+                                                 CHAR        4    T       Time
+                                 calendar        CHAR        9    T       GREGORIAN
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        39   T       TF_CAL_F TIME16 TF_TIMES TIME16 YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ 
+! plot and list the aggregation
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                 1950       1950       1950       1950       1951       1951       1951       1951       1952       1952       1952    
+                  1          2          3          4          5          6          7          8          9         10         11
+ 15.2  /  1:  0.3307804  0.3001368  0.2667996  0.2316579  0.1953346  0.1592990  0.1221931  0.0850729  0.0486031  0.0138040 -0.0198611
+ 45.6  /  2:  0.3453357  0.2965006  0.2624068  0.2239956  0.1893625  0.1504392  0.1121185  0.0863392  0.0524927  0.0195915 -0.0166843
+ 76    /  3:  0.3318969  0.3090819  0.2654114  0.2324281  0.1761227  0.1559338  0.1246391  0.0669682  0.0343878  0.0204617 -0.0157341
+ 106.4 /  4:  0.3183579  0.2979229  0.2596174  0.2171432  0.1555353  0.1280383  0.1215401  0.0854115  0.0421308  0.0447082  0.0361125
+ 136.8 /  5:  0.3159946  0.2500561  0.2424190  0.1722981  0.1347216  0.1037913  0.0877940  0.0543137  0.0702755  0.0260318  0.0391997
+ 167.2 /  6:  0.2887657  0.1864551  0.1544172  0.1888522  0.1184325  0.0887549  0.0829604  0.0452587  0.0910047  0.0881113  0.0345233
+ 197.5 /  7:  0.1718194  0.1641019  0.1848208  0.1603616  0.1176353  0.1330176  0.0443733  0.0939627  0.0787333  0.0613053  0.1457809
+ 227.9 /  8:  0.1266464  0.1874913  0.0982521  0.0971044  0.0575506  0.0528148  0.1195784  0.0732442  0.1282877  0.1029190  0.1146841
+ 258.3 /  9:  0.1415998  0.1048240  0.0792315  0.1301761  0.1277610  0.0587752  0.1379869  0.1240748  0.1065039  0.1049544  0.2175765
+ 288.7 / 10:  0.1274963  0.1033718  0.0771790  0.1415754  0.0450438  0.1200644  0.1678881  0.2024079  0.1394861  0.2275361  0.1589930
+ 319.1 / 11:  0.0385435  0.0194263  0.0738935  0.1482454  0.1247132  0.1833492  0.1286853  0.1830374  0.1406289  0.2100128  0.2537251
+ 349.5 / 12: -0.0358659  0.0084504  0.0425990  0.0577887  0.0798972  0.1691094  0.1258339  0.2192876  0.2261482  0.2005469  0.2237650
+ 379.9 / 13: -0.0169571  0.0135070  0.0328663  0.0698305  0.1095749  0.0967198  0.2150333  0.3087425  0.2491530  0.3527058  0.3197353
+ 410.3 / 14:  0.0478629  0.1403229 -0.0087896  0.0596390  0.1559666  0.1084711  0.2104235  0.1929824  0.2230849  0.4186504  0.3650192
+ 440.7 / 15:  0.1227799  0.0949119  0.1626030  0.1480152  0.1623026  0.2006098  0.1533306  0.2937627  0.3674309  0.2956706  0.4215910
+ 471.1 / 16: -0.0072133  0.1917807  0.0258130  0.1213028  0.2666616  0.1603801  0.2374043  0.3572837  0.4413780  0.3069818  0.3765341
+ 501.5 / 17:  0.0518385  0.0510287  0.0654230  0.1734310  0.2131447  0.1813658  0.2729453  0.3550803  0.4522310  0.3878757  0.4448073
+ 531.8 / 18:  0.0006948  0.1033960  0.0886345  0.2905850  0.2991944  0.1942257  0.3881923  0.3758325  0.2891495  0.2431063  0.2604071
+ 562.2 / 19:  0.1838293  0.1825128  0.3119829  0.2455838  0.2395894  0.2520298  0.4346953  0.2801757  0.3323044  0.1988689  0.2438353
+ 592.6 / 20:  0.1725966  0.2160215  0.3391136  0.3763105  0.1956531  0.1832036  0.2019359  0.1743080  0.4185049  0.4028161  0.4223137
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 54 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          1950       1950       1950       1950       1951       1951       1951       1951       1952       1952       1952    
+                           1          2          3          4          5          6          7          8          9         10         11
+ 16-JAN-1950 12 /  1:  0.3307804       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.3453357       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.3318969       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.3183579  0.3001368       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.3159946  0.2965006       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.2887657  0.3090819       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.1718194  0.2979229  0.2667996       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.1266464  0.2500561  0.2624068       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.1415998  0.1864551  0.2654114       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.1274963  0.1641019  0.2596174  0.2316579       ....       ....       ....       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0385435  0.1874913  0.2424190  0.2239956       ....       ....       ....       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12: -0.0358659  0.1048240  0.1544172  0.2324281       ....       ....       ....       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13: -0.0169571  0.1033718  0.1848208  0.2171432  0.1953346       ....       ....       ....       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0478629  0.0194263  0.0982521  0.1722981  0.1893625       ....       ....       ....       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.1227799  0.0084504  0.0792315  0.1888522  0.1761227       ....       ....       ....       ....       ....       ....
+ 16-APR-1951 00 / 16: -0.0072133  0.0135070  0.0771790  0.1603616  0.1555353  0.1592990       ....       ....       ....       ....       ....
+ 16-MAY-1951 12 / 17:  0.0518385  0.1403229  0.0738935  0.0971044  0.1347216  0.1504392       ....       ....       ....       ....       ....
+ 16-JUN-1951 00 / 18:  0.0006948  0.0949119  0.0425990  0.1301761  0.1184325  0.1559338       ....       ....       ....       ....       ....
+ 16-JUL-1951 12 / 19:  0.1838293  0.1917807  0.0328663  0.1415754  0.1176353  0.1280383  0.1221931       ....       ....       ....       ....
+ 16-AUG-1951 12 / 20:  0.1725966  0.0510287 -0.0087896  0.1482454  0.0575506  0.1037913  0.1121185       ....       ....       ....       ....
+ 16-SEP-1951 00 / 21:  0.3654837  0.1033960  0.1626030  0.0577887  0.1277610  0.0887549  0.1246391       ....       ....       ....       ....
+ 16-OCT-1951 12 / 22:  0.3192576  0.1825128  0.0258130  0.0698305  0.0450438  0.1330176  0.1215401  0.0850729       ....       ....       ....
+ 16-NOV-1951 00 / 23:  0.1828542  0.2160215  0.0654230  0.0596390  0.1247132  0.0528148  0.0877940  0.0863392       ....       ....       ....
+ 16-DEC-1951 12 / 24:  0.4272781  0.3927684  0.0886345  0.1480152  0.0798972  0.0587752  0.0829604  0.0669682       ....       ....       ....
+ 16-JAN-1952 12 / 25:       ....  0.2804252  0.3119829  0.1213028  0.1095749  0.1200644  0.0443733  0.0854115  0.0486031       ....       ....
+ 15-FEB-1952 12 / 26:       ....  0.2154990  0.3391136  0.1734310  0.1559666  0.1833492  0.1195784  0.0543137  0.0524927       ....       ....
+ 16-MAR-1952 12 / 27:       ....  0.2245606  0.2519416  0.2905850  0.1623026  0.1691094  0.1379869  0.0452587  0.0343878       ....       ....
+ 16-APR-1952 00 / 28:       ....       ....  0.2020766  0.2455838  0.2666616  0.0967198  0.1678881  0.0939627  0.0421308  0.0138040       ....
+ 16-MAY-1952 12 / 29:       ....       ....  0.3907234  0.3763105  0.2131447  0.1084711  0.1286853  0.0732442  0.0702755  0.0195915       ....
+ 16-JUN-1952 00 / 30:       ....       ....  0.1899071  0.4072766  0.2991944  0.2006098  0.1258339  0.1240748  0.0910047  0.0204617       ....
+ 16-JUL-1952 12 / 31:       ....       ....       ....  0.3233588  0.2395894  0.1603801  0.2150333  0.2024079  0.0787333  0.0447082 -0.0198611
+ 16-AUG-1952 12 / 32:       ....       ....       ....  0.3334134  0.1956531  0.1813658  0.2104235  0.1830374  0.1282877  0.0260318 -0.0166843
+ 16-SEP-1952 00 / 33:       ....       ....       ....  0.2259139  0.2331061  0.1942257  0.1533306  0.2192876  0.1065039  0.0881113 -0.0157341
+ 16-OCT-1952 12 / 34:       ....       ....       ....       ....  0.4350016  0.2520298  0.2374043  0.3087425  0.1394861  0.0613053  0.0361125
+ 16-NOV-1952 00 / 35:       ....       ....       ....       ....  0.4583276  0.1832036  0.2729453  0.1929824  0.1406289  0.1029190  0.0391997
+ 16-DEC-1952 12 / 36:       ....       ....       ....       ....  0.4632503  0.3564805  0.3881923  0.2937627  0.2261482  0.1049544  0.0345233
+ 16-JAN-1953 12 / 37:       ....       ....       ....       ....       ....  0.2654290  0.4346953  0.3572837  0.2491530  0.2275361  0.1457809
+ 15-FEB-1953 00 / 38:       ....       ....       ....       ....       ....  0.3711777  0.2019359  0.3550803  0.2230849  0.2100128  0.1146841
+ 16-MAR-1953 12 / 39:       ....       ....       ....       ....       ....  0.3677070  0.2476939  0.3758325  0.3674309  0.2005469  0.2175765
+ 16-APR-1953 00 / 40:       ....       ....       ....       ....       ....       ....  0.3270105  0.2801757  0.4413780  0.3527058  0.1589930
+ 16-MAY-1953 12 / 41:       ....       ....       ....       ....       ....       ....  0.1942565  0.1743080  0.4522310  0.4186504  0.2537251
+ 16-JUN-1953 00 / 42:       ....       ....       ....       ....       ....       ....  0.3242278  0.1867072  0.2891495  0.2956706  0.2237650
+ 16-JUL-1953 12 / 43:       ....       ....       ....       ....       ....       ....       ....  0.3779086  0.3323044  0.3069818  0.3197353
+ 16-AUG-1953 12 / 44:       ....       ....       ....       ....       ....       ....       ....  0.2492870  0.4185049  0.3878757  0.3650192
+ 16-SEP-1953 00 / 45:       ....       ....       ....       ....       ....       ....       ....  0.0766919  0.1507479  0.2431063  0.4215910
+ 16-OCT-1953 12 / 46:       ....       ....       ....       ....       ....       ....       ....       ....  0.3271551  0.1988689  0.3765341
+ 16-NOV-1953 00 / 47:       ....       ....       ....       ....       ....       ....       ....       ....  0.3699906  0.4028161  0.4448073
+ 16-DEC-1953 12 / 48:       ....       ....       ....       ....       ....       ....       ....       ....  0.1683819  0.3239236  0.2604071
+ 16-JAN-1954 12 / 49:       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.1105060  0.2438353
+ 15-FEB-1954 00 / 50:       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.3000048  0.4223137
+ 16-MAR-1954 12 / 51:       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.1441574  0.3856444
+ 16-APR-1954 00 / 52:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.1979542
+ 16-MAY-1954 12 / 53:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.2112235
+ 16-JUN-1954 00 / 54:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.2042553
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.8      228        319.2      410.4      501.6      592.8      684     
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.0000000  0.0182211       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.0000000  0.0194940       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.0000000 -0.0203161       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.0000000  0.0311233 -0.0949802       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.0000000 -0.0123508 -0.1357605       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.0000000 -0.0789563 -0.1238116       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000  0.0279596 -0.0675560 -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000  0.0184234 -0.0365043 -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000 -0.0780108 -0.1276041 -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086 -0.0105139 -0.0919628 -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644 -0.0911104 -0.1699362 -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295 -0.0968911 -0.1676723 -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626 -0.0821200 -0.1457920 -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348 -0.0765457 -0.0101163 -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577 -0.1133348 -0.0610220 -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823 -0.0893268  0.0695876  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269 -0.1209081 -0.0610898  0.0604781       ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.8      228        319.2      410.4      501.6      592.8      684     
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.0000000  0.0182211       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.0000000  0.0194940       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.0000000 -0.0203161       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.0000000  0.0311233 -0.0949802       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.0000000 -0.0123508 -0.1357605       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.0000000 -0.0789563 -0.1238116       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000  0.0279596 -0.0675560 -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000  0.0184234 -0.0365043 -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000 -0.0780108 -0.1276041 -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086 -0.0105139 -0.0919628 -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644 -0.0911104 -0.1699362 -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295 -0.0968911 -0.1676723 -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626 -0.0821200 -0.1457920 -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348 -0.0765457 -0.0101163 -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577 -0.1133348 -0.0610220 -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823 -0.0893268  0.0695876  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269 -0.1209081 -0.0610898  0.0604781       ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+ 
+cancel data my_fmrc
+show data/hidden   ! note that all member files were canceled, too
+     currently SET data sets:
+ 
+! agg with 2nd, 3rd, 9th and 10th forecasts missing
+use tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_9.nc, tmp/fcst_10.nc, tmp/fcst_11.nc
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc/hide my_fmrc = XCAT(files[I=6:10],{"6","1"})           ! double-wide gaps
+!fmrc my_fmrc = XCAT(files[I=6:10],{"6","1","2","5"})  ! single-wide gaps
+show data/files my_fmrc
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:11
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1 : tmp/fcst_1.nc
+      2 : (dummy)
+      3 : (dummy)
+      4 : tmp/fcst_4.nc
+      5 : tmp/fcst_5.nc
+      6 : tmp/fcst_6.nc
+      7 : tmp/fcst_7.nc
+      8 : tmp/fcst_8.nc
+      9 : (dummy)
+      10: (dummy)
+      11: tmp/fcst_11.nc
+show data/brief
+     currently SET data sets:
+    2> tmp/fcst_2.nc
+    3> tmp/fcst_3.nc
+    4> tmp/fcst_9.nc
+    5> tmp/fcst_10.nc
+   12> my_fmrc  (default)  Forecast aggregation
+LIST tf_times
+             VARIABLE : Forecast time step matrix (days since 01-JAN-1900 00:00:00)
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 24 by 11 points (MODEL ELAPSED TIME (day)-FORECAST)
+             Verification time increases across row.  Initialization time increases down page. 
+      ... listing every   3th point
+                       15.2     106.4     197.5     288.7     379.9     471.1     562.2     653.4   
+                        1         4         7        10        13        16        19        22
+ 01-JAN-1950 /  1:  18277.50  18367.00  18458.50  18550.50  18642.50  18732.00  18823.50  18915.50
+ 01-APR-1950 /  2:  18367.00  18458.50  18550.50  18642.50  18732.00  18823.50  18915.50  19007.50
+ 01-JUL-1950 /  3:  18458.50  18550.50  18642.50  18732.00  18823.50  18915.50  19007.50  19098.00
+ 01-OCT-1950 /  4:  18550.50  18642.50  18732.00  18823.50  18915.50  19007.50  19098.00  19189.50
+ 01-JAN-1951 /  5:  18642.50  18732.00  18823.50  18915.50  19007.50  19098.00  19189.50  19281.50
+ 01-APR-1951 /  6:  18732.00  18823.50  18915.50  19007.50  19098.00  19189.50  19281.50  19373.50
+ 01-JUL-1951 /  7:  18823.50  18915.50  19007.50  19098.00  19189.50  19281.50  19373.50  19463.00
+ 01-OCT-1951 /  8:  18915.50  19007.50  19098.00  19189.50  19281.50  19373.50  19463.00  19554.50
+ 01-JAN-1952 /  9:  19007.50  19098.00  19189.50  19281.50  19373.50  19463.00  19554.50  19646.50
+ 01-APR-1952 / 10:  19098.00  19189.50  19281.50  19373.50  19463.00  19554.50  19646.50  19738.50
+ 01-JUL-1952 / 11:  19189.50  19281.50  19373.50  19463.00  19554.50  19646.50  19738.50  19828.00
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                 1950       1950       1950       1950       1951       1951       1951       1951       1952       1952       1952    
+                  1          2          3          4          5          6          7          8          9         10         11
+ 15.2  /  1:  0.3307804       ....       ....  0.2316579  0.1953346  0.1592990  0.1221931  0.0850729       ....       .... -0.0198611
+ 45.6  /  2:  0.3453357       ....       ....  0.2239956  0.1893625  0.1504392  0.1121185  0.0863392       ....       .... -0.0166843
+ 76    /  3:  0.3318969       ....       ....  0.2324281  0.1761227  0.1559338  0.1246391  0.0669682       ....       .... -0.0157341
+ 106.4 /  4:  0.3183579       ....       ....  0.2171432  0.1555353  0.1280383  0.1215401  0.0854115       ....       ....  0.0361125
+ 136.8 /  5:  0.3159946       ....       ....  0.1722981  0.1347216  0.1037913  0.0877940  0.0543137       ....       ....  0.0391997
+ 167.2 /  6:  0.2887657       ....       ....  0.1888522  0.1184325  0.0887549  0.0829604  0.0452587       ....       ....  0.0345233
+ 197.5 /  7:  0.1718194       ....       ....  0.1603616  0.1176353  0.1330176  0.0443733  0.0939627       ....       ....  0.1457809
+ 227.9 /  8:  0.1266464       ....       ....  0.0971044  0.0575506  0.0528148  0.1195784  0.0732442       ....       ....  0.1146841
+ 258.3 /  9:  0.1415998       ....       ....  0.1301761  0.1277610  0.0587752  0.1379869  0.1240748       ....       ....  0.2175765
+ 288.7 / 10:  0.1274963       ....       ....  0.1415754  0.0450438  0.1200644  0.1678881  0.2024079       ....       ....  0.1589930
+ 319.1 / 11:  0.0385435       ....       ....  0.1482454  0.1247132  0.1833492  0.1286853  0.1830374       ....       ....  0.2537251
+ 349.5 / 12: -0.0358659       ....       ....  0.0577887  0.0798972  0.1691094  0.1258339  0.2192876       ....       ....  0.2237650
+ 379.9 / 13: -0.0169571       ....       ....  0.0698305  0.1095749  0.0967198  0.2150333  0.3087425       ....       ....  0.3197353
+ 410.3 / 14:  0.0478629       ....       ....  0.0596390  0.1559666  0.1084711  0.2104235  0.1929824       ....       ....  0.3650192
+ 440.7 / 15:  0.1227799       ....       ....  0.1480152  0.1623026  0.2006098  0.1533306  0.2937627       ....       ....  0.4215910
+ 471.1 / 16: -0.0072133       ....       ....  0.1213028  0.2666616  0.1603801  0.2374043  0.3572837       ....       ....  0.3765341
+ 501.5 / 17:  0.0518385       ....       ....  0.1734310  0.2131447  0.1813658  0.2729453  0.3550803       ....       ....  0.4448073
+ 531.8 / 18:  0.0006948       ....       ....  0.2905850  0.2991944  0.1942257  0.3881923  0.3758325       ....       ....  0.2604071
+ 562.2 / 19:  0.1838293       ....       ....  0.2455838  0.2395894  0.2520298  0.4346953  0.2801757       ....       ....  0.2438353
+ 592.6 / 20:  0.1725966       ....       ....  0.3763105  0.1956531  0.1832036  0.2019359  0.1743080       ....       ....  0.4223137
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 54 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          1950       1950       1950       1950       1951       1951       1951       1951       1952       1952       1952    
+                           1          2          3          4          5          6          7          8          9         10         11
+ 16-JAN-1950 12 /  1:  0.3307804       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.3453357       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.3318969       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.3183579       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.3159946       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.2887657       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.1718194       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.1266464       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.1415998       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.1274963       ....       ....  0.2316579       ....       ....       ....       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0385435       ....       ....  0.2239956       ....       ....       ....       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12: -0.0358659       ....       ....  0.2324281       ....       ....       ....       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13: -0.0169571       ....       ....  0.2171432  0.1953346       ....       ....       ....       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0478629       ....       ....  0.1722981  0.1893625       ....       ....       ....       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.1227799       ....       ....  0.1888522  0.1761227       ....       ....       ....       ....       ....       ....
+ 16-APR-1951 00 / 16: -0.0072133       ....       ....  0.1603616  0.1555353  0.1592990       ....       ....       ....       ....       ....
+ 16-MAY-1951 12 / 17:  0.0518385       ....       ....  0.0971044  0.1347216  0.1504392       ....       ....       ....       ....       ....
+ 16-JUN-1951 00 / 18:  0.0006948       ....       ....  0.1301761  0.1184325  0.1559338       ....       ....       ....       ....       ....
+ 16-JUL-1951 12 / 19:  0.1838293       ....       ....  0.1415754  0.1176353  0.1280383  0.1221931       ....       ....       ....       ....
+ 16-AUG-1951 12 / 20:  0.1725966       ....       ....  0.1482454  0.0575506  0.1037913  0.1121185       ....       ....       ....       ....
+ 16-SEP-1951 00 / 21:  0.3654837       ....       ....  0.0577887  0.1277610  0.0887549  0.1246391       ....       ....       ....       ....
+ 16-OCT-1951 12 / 22:  0.3192576       ....       ....  0.0698305  0.0450438  0.1330176  0.1215401  0.0850729       ....       ....       ....
+ 16-NOV-1951 00 / 23:  0.1828542       ....       ....  0.0596390  0.1247132  0.0528148  0.0877940  0.0863392       ....       ....       ....
+ 16-DEC-1951 12 / 24:  0.4272781       ....       ....  0.1480152  0.0798972  0.0587752  0.0829604  0.0669682       ....       ....       ....
+ 16-JAN-1952 12 / 25:       ....       ....       ....  0.1213028  0.1095749  0.1200644  0.0443733  0.0854115       ....       ....       ....
+ 15-FEB-1952 12 / 26:       ....       ....       ....  0.1734310  0.1559666  0.1833492  0.1195784  0.0543137       ....       ....       ....
+ 16-MAR-1952 12 / 27:       ....       ....       ....  0.2905850  0.1623026  0.1691094  0.1379869  0.0452587       ....       ....       ....
+ 16-APR-1952 00 / 28:       ....       ....       ....  0.2455838  0.2666616  0.0967198  0.1678881  0.0939627       ....       ....       ....
+ 16-MAY-1952 12 / 29:       ....       ....       ....  0.3763105  0.2131447  0.1084711  0.1286853  0.0732442       ....       ....       ....
+ 16-JUN-1952 00 / 30:       ....       ....       ....  0.4072766  0.2991944  0.2006098  0.1258339  0.1240748       ....       ....       ....
+ 16-JUL-1952 12 / 31:       ....       ....       ....  0.3233588  0.2395894  0.1603801  0.2150333  0.2024079       ....       .... -0.0198611
+ 16-AUG-1952 12 / 32:       ....       ....       ....  0.3334134  0.1956531  0.1813658  0.2104235  0.1830374       ....       .... -0.0166843
+ 16-SEP-1952 00 / 33:       ....       ....       ....  0.2259139  0.2331061  0.1942257  0.1533306  0.2192876       ....       .... -0.0157341
+ 16-OCT-1952 12 / 34:       ....       ....       ....       ....  0.4350016  0.2520298  0.2374043  0.3087425       ....       ....  0.0361125
+ 16-NOV-1952 00 / 35:       ....       ....       ....       ....  0.4583276  0.1832036  0.2729453  0.1929824       ....       ....  0.0391997
+ 16-DEC-1952 12 / 36:       ....       ....       ....       ....  0.4632503  0.3564805  0.3881923  0.2937627       ....       ....  0.0345233
+ 16-JAN-1953 12 / 37:       ....       ....       ....       ....       ....  0.2654290  0.4346953  0.3572837       ....       ....  0.1457809
+ 15-FEB-1953 00 / 38:       ....       ....       ....       ....       ....  0.3711777  0.2019359  0.3550803       ....       ....  0.1146841
+ 16-MAR-1953 12 / 39:       ....       ....       ....       ....       ....  0.3677070  0.2476939  0.3758325       ....       ....  0.2175765
+ 16-APR-1953 00 / 40:       ....       ....       ....       ....       ....       ....  0.3270105  0.2801757       ....       ....  0.1589930
+ 16-MAY-1953 12 / 41:       ....       ....       ....       ....       ....       ....  0.1942565  0.1743080       ....       ....  0.2537251
+ 16-JUN-1953 00 / 42:       ....       ....       ....       ....       ....       ....  0.3242278  0.1867072       ....       ....  0.2237650
+ 16-JUL-1953 12 / 43:       ....       ....       ....       ....       ....       ....       ....  0.3779086       ....       ....  0.3197353
+ 16-AUG-1953 12 / 44:       ....       ....       ....       ....       ....       ....       ....  0.2492870       ....       ....  0.3650192
+ 16-SEP-1953 00 / 45:       ....       ....       ....       ....       ....       ....       ....  0.0766919       ....       ....  0.4215910
+ 16-OCT-1953 12 / 46:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.3765341
+ 16-NOV-1953 00 / 47:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.4448073
+ 16-DEC-1953 12 / 48:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.2604071
+ 16-JAN-1954 12 / 49:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.2438353
+ 15-FEB-1954 00 / 50:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.4223137
+ 16-MAR-1954 12 / 51:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.3856444
+ 16-APR-1954 00 / 52:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.1979542
+ 16-MAY-1954 12 / 53:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.2112235
+ 16-JUN-1954 00 / 54:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.2042553
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.8      228        319.2      410.4      501.6      592.8      684     
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000       ....       .... -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000       ....       .... -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000       ....       .... -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086       ....       .... -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644       ....       .... -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295       ....       .... -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626       ....       .... -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348       ....       .... -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577       ....       .... -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823       ....       ....  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269       ....       ....  0.0604781       ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.8      228        319.2      410.4      501.6      592.8      684     
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000       ....       .... -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000       ....       .... -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000       ....       .... -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086       ....       .... -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644       ....       .... -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295       ....       .... -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626       ....       .... -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348       ....       .... -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577       ....       .... -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823       ....       ....  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269       ....       ....  0.0604781       ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+ 
+cancel data my_fmrc
+show data/brief/hidden
+     currently SET data sets:
+    2> tmp/fcst_2.nc
+    3> tmp/fcst_3.nc
+    4> tmp/fcst_9.nc
+    5> tmp/fcst_10.nc
+    6> tmp/fcst_11.nc
+    7> tmp/fcst_4.nc
+    8> tmp/fcst_5.nc
+    9> tmp/fcst_6.nc
+   10> tmp/fcst_7.nc
+   11> tmp/fcst_8.nc
+   12> my_fmrc  (default)  Forecast aggregation
+cancel data/all
+ 
+! agg with the first forecast of longer time range than the others
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc/hide my_fmrc = XCAT(files[I=4:11],{"tmp/long_fcst_1.nc"}) ! first member is long
+show data/files my_fmrc
+     currently SET data sets:
+   10> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:9
+       (L=1:36)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:9
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:9
+       (L=1:36)
+ 
+          Aggregated datasets:
+      1: tmp/long_fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/fcst_6.nc
+      7: tmp/fcst_7.nc
+      8: tmp/fcst_8.nc
+      9: tmp/fcst_9.nc
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 9 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                 1950       1950       1950       1950       1951       1951       1951       1951       1952    
+                  1          2          3          4          5          6          7          8          9
+ 15.2  /  1:  0.3307804  0.3001368  0.2667996  0.2316579  0.1953346  0.1592990  0.1221931  0.0850729  0.0486031
+ 45.6  /  2:  0.3453357  0.2965006  0.2624068  0.2239956  0.1893625  0.1504392  0.1121185  0.0863392  0.0524927
+ 76    /  3:  0.3318969  0.3090819  0.2654114  0.2324281  0.1761227  0.1559338  0.1246391  0.0669682  0.0343878
+ 106.4 /  4:  0.3183579  0.2979229  0.2596174  0.2171432  0.1555353  0.1280383  0.1215401  0.0854115  0.0421308
+ 136.8 /  5:  0.3159946  0.2500561  0.2424190  0.1722981  0.1347216  0.1037913  0.0877940  0.0543137  0.0702755
+ 167.2 /  6:  0.2887657  0.1864551  0.1544172  0.1888522  0.1184325  0.0887549  0.0829604  0.0452587  0.0910047
+ 197.5 /  7:  0.1718194  0.1641019  0.1848208  0.1603616  0.1176353  0.1330176  0.0443733  0.0939627  0.0787333
+ 227.9 /  8:  0.1266464  0.1874913  0.0982521  0.0971044  0.0575506  0.0528148  0.1195784  0.0732442  0.1282877
+ 258.3 /  9:  0.1415998  0.1048240  0.0792315  0.1301761  0.1277610  0.0587752  0.1379869  0.1240748  0.1065039
+ 288.7 / 10:  0.1274963  0.1033718  0.0771790  0.1415754  0.0450438  0.1200644  0.1678881  0.2024079  0.1394861
+ 319.1 / 11:  0.0385435  0.0194263  0.0738935  0.1482454  0.1247132  0.1833492  0.1286853  0.1830374  0.1406289
+ 349.5 / 12: -0.0358659  0.0084504  0.0425990  0.0577887  0.0798972  0.1691094  0.1258339  0.2192876  0.2261482
+ 379.9 / 13: -0.0169571  0.0135070  0.0328663  0.0698305  0.1095749  0.0967198  0.2150333  0.3087425  0.2491530
+ 410.3 / 14:  0.0478629  0.1403229 -0.0087896  0.0596390  0.1559666  0.1084711  0.2104235  0.1929824  0.2230849
+ 440.7 / 15:  0.1227799  0.0949119  0.1626030  0.1480152  0.1623026  0.2006098  0.1533306  0.2937627  0.3674309
+ 471.1 / 16: -0.0072133  0.1917807  0.0258130  0.1213028  0.2666616  0.1603801  0.2374043  0.3572837  0.4413780
+ 501.5 / 17:  0.0518385  0.0510287  0.0654230  0.1734310  0.2131447  0.1813658  0.2729453  0.3550803  0.4522310
+ 531.8 / 18:  0.0006948  0.1033960  0.0886345  0.2905850  0.2991944  0.1942257  0.3881923  0.3758325  0.2891495
+ 562.2 / 19:  0.1838293  0.1825128  0.3119829  0.2455838  0.2395894  0.2520298  0.4346953  0.2801757  0.3323044
+ 592.6 / 20:  0.1725966  0.2160215  0.3391136  0.3763105  0.1956531  0.1832036  0.2019359  0.1743080  0.4185049
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 9 by 48 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          1950       1950       1950       1950       1951       1951       1951       1951       1952    
+                           1          2          3          4          5          6          7          8          9
+ 16-JAN-1950 12 /  1:  0.3307804       ....       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.3453357       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.3318969       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.3183579  0.3001368       ....       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.3159946  0.2965006       ....       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.2887657  0.3090819       ....       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.1718194  0.2979229  0.2667996       ....       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.1266464  0.2500561  0.2624068       ....       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.1415998  0.1864551  0.2654114       ....       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.1274963  0.1641019  0.2596174  0.2316579       ....       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0385435  0.1874913  0.2424190  0.2239956       ....       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12: -0.0358659  0.1048240  0.1544172  0.2324281       ....       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13: -0.0169571  0.1033718  0.1848208  0.2171432  0.1953346       ....       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0478629  0.0194263  0.0982521  0.1722981  0.1893625       ....       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.1227799  0.0084504  0.0792315  0.1888522  0.1761227       ....       ....       ....       ....
+ 16-APR-1951 00 / 16: -0.0072133  0.0135070  0.0771790  0.1603616  0.1555353  0.1592990       ....       ....       ....
+ 16-MAY-1951 12 / 17:  0.0518385  0.1403229  0.0738935  0.0971044  0.1347216  0.1504392       ....       ....       ....
+ 16-JUN-1951 00 / 18:  0.0006948  0.0949119  0.0425990  0.1301761  0.1184325  0.1559338       ....       ....       ....
+ 16-JUL-1951 12 / 19:  0.1838293  0.1917807  0.0328663  0.1415754  0.1176353  0.1280383  0.1221931       ....       ....
+ 16-AUG-1951 12 / 20:  0.1725966  0.0510287 -0.0087896  0.1482454  0.0575506  0.1037913  0.1121185       ....       ....
+ 16-SEP-1951 00 / 21:  0.3654837  0.1033960  0.1626030  0.0577887  0.1277610  0.0887549  0.1246391       ....       ....
+ 16-OCT-1951 12 / 22:  0.3192576  0.1825128  0.0258130  0.0698305  0.0450438  0.1330176  0.1215401  0.0850729       ....
+ 16-NOV-1951 00 / 23:  0.1828542  0.2160215  0.0654230  0.0596390  0.1247132  0.0528148  0.0877940  0.0863392       ....
+ 16-DEC-1951 12 / 24:  0.4272781  0.3927684  0.0886345  0.1480152  0.0798972  0.0587752  0.0829604  0.0669682       ....
+ 16-JAN-1952 12 / 25:       ....  0.2804252  0.3119829  0.1213028  0.1095749  0.1200644  0.0443733  0.0854115  0.0486031
+ 15-FEB-1952 12 / 26:       ....  0.2154990  0.3391136  0.1734310  0.1559666  0.1833492  0.1195784  0.0543137  0.0524927
+ 16-MAR-1952 12 / 27:       ....  0.2245606  0.2519416  0.2905850  0.1623026  0.1691094  0.1379869  0.0452587  0.0343878
+ 16-APR-1952 00 / 28:       ....       ....  0.2020766  0.2455838  0.2666616  0.0967198  0.1678881  0.0939627  0.0421308
+ 16-MAY-1952 12 / 29:       ....       ....  0.3907234  0.3763105  0.2131447  0.1084711  0.1286853  0.0732442  0.0702755
+ 16-JUN-1952 00 / 30:       ....       ....  0.1899071  0.4072766  0.2991944  0.2006098  0.1258339  0.1240748  0.0910047
+ 16-JUL-1952 12 / 31:       ....       ....       ....  0.3233588  0.2395894  0.1603801  0.2150333  0.2024079  0.0787333
+ 16-AUG-1952 12 / 32:       ....       ....       ....  0.3334134  0.1956531  0.1813658  0.2104235  0.1830374  0.1282877
+ 16-SEP-1952 00 / 33:       ....       ....       ....  0.2259139  0.2331061  0.1942257  0.1533306  0.2192876  0.1065039
+ 16-OCT-1952 12 / 34:       ....       ....       ....       ....  0.4350016  0.2520298  0.2374043  0.3087425  0.1394861
+ 16-NOV-1952 00 / 35:       ....       ....       ....       ....  0.4583276  0.1832036  0.2729453  0.1929824  0.1406289
+ 16-DEC-1952 12 / 36:       ....       ....       ....       ....  0.4632503  0.3564805  0.3881923  0.2937627  0.2261482
+ 16-JAN-1953 12 / 37:       ....       ....       ....       ....       ....  0.2654290  0.4346953  0.3572837  0.2491530
+ 15-FEB-1953 00 / 38:       ....       ....       ....       ....       ....  0.3711777  0.2019359  0.3550803  0.2230849
+ 16-MAR-1953 12 / 39:       ....       ....       ....       ....       ....  0.3677070  0.2476939  0.3758325  0.3674309
+ 16-APR-1953 00 / 40:       ....       ....       ....       ....       ....       ....  0.3270105  0.2801757  0.4413780
+ 16-MAY-1953 12 / 41:       ....       ....       ....       ....       ....       ....  0.1942565  0.1743080  0.4522310
+ 16-JUN-1953 00 / 42:       ....       ....       ....       ....       ....       ....  0.3242278  0.1867072  0.2891495
+ 16-JUL-1953 12 / 43:       ....       ....       ....       ....       ....       ....       ....  0.3779086  0.3323044
+ 16-AUG-1953 12 / 44:       ....       ....       ....       ....       ....       ....       ....  0.2492870  0.4185049
+ 16-SEP-1953 00 / 45:       ....       ....       ....       ....       ....       ....       ....  0.0766919  0.1507479
+ 16-OCT-1953 12 / 46:       ....       ....       ....       ....       ....       ....       ....       ....  0.3271551
+ 16-NOV-1953 00 / 47:       ....       ....       ....       ....       ....       ....       ....       ....  0.3699906
+ 16-DEC-1953 12 / 48:       ....       ....       ....       ....       ....       ....       ....       ....  0.1683819
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.9      228.1      319.4      410.6      501.9      593.1      684.4   
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.0000000  0.0182211       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.0000000  0.0194940       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.0000000 -0.0203161       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.0000000  0.0311233 -0.0949802       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.0000000 -0.0123508 -0.1357605       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.0000000 -0.0789563 -0.1238116       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000  0.0279596 -0.0675560 -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000  0.0184234 -0.0365043 -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000 -0.0780108 -0.1276041 -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086 -0.0105139 -0.0919628 -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644 -0.0911104 -0.1699362 -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295 -0.0968911 -0.1676723 -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626 -0.0821200 -0.1457920 -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348 -0.0765457 -0.0101163 -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577 -0.1133348 -0.0610220 -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823 -0.0893268  0.0695876  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269 -0.1209081 -0.0610898  0.0604781       ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.9      228.1      319.4      410.6      501.9      593.1      684.4   
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.0000000  0.0182211       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.0000000  0.0194940       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.0000000 -0.0203161       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.0000000  0.0311233 -0.0949802       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.0000000 -0.0123508 -0.1357605       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.0000000 -0.0789563 -0.1238116       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000  0.0279596 -0.0675560 -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000  0.0184234 -0.0365043 -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000 -0.0780108 -0.1276041 -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086 -0.0105139 -0.0919628 -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644 -0.0911104 -0.1699362 -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295 -0.0968911 -0.1676723 -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626 -0.0821200 -0.1457920 -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348 -0.0765457 -0.0101163 -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577 -0.1133348 -0.0610220 -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823 -0.0893268  0.0695876  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269 -0.1209081 -0.0610898  0.0604781       ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+cancel data my_fmrc
+ 
+! agg with the sixth forecast of longer time range than the others
+fmrc/hide my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/long_fcst_6.nc, tmp/fcst_7.nc, tmp/fcst_8.nc
+show data/files my_fmrc
+     currently SET data sets:
+    9> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:8
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:8
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:8
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/long_fcst_6.nc
+      7: tmp/fcst_7.nc
+      8: tmp/fcst_8.nc
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                 1950       1950       1950       1950       1951       1951       1951       1951    
+                  1          2          3          4          5          6          7          8
+ 15.2  /  1:  0.3307804  0.3001368  0.2667996  0.2316579  0.1953346  0.1592990  0.1221931  0.0850729
+ 45.6  /  2:  0.3453357  0.2965006  0.2624068  0.2239956  0.1893625  0.1504392  0.1121185  0.0863392
+ 76    /  3:  0.3318969  0.3090819  0.2654114  0.2324281  0.1761227  0.1559338  0.1246391  0.0669682
+ 106.4 /  4:  0.3183579  0.2979229  0.2596174  0.2171432  0.1555353  0.1280383  0.1215401  0.0854115
+ 136.8 /  5:  0.3159946  0.2500561  0.2424190  0.1722981  0.1347216  0.1037913  0.0877940  0.0543137
+ 167.2 /  6:  0.2887657  0.1864551  0.1544172  0.1888522  0.1184325  0.0887549  0.0829604  0.0452587
+ 197.5 /  7:  0.1718194  0.1641019  0.1848208  0.1603616  0.1176353  0.1330176  0.0443733  0.0939627
+ 227.9 /  8:  0.1266464  0.1874913  0.0982521  0.0971044  0.0575506  0.0528148  0.1195784  0.0732442
+ 258.3 /  9:  0.1415998  0.1048240  0.0792315  0.1301761  0.1277610  0.0587752  0.1379869  0.1240748
+ 288.7 / 10:  0.1274963  0.1033718  0.0771790  0.1415754  0.0450438  0.1200644  0.1678881  0.2024079
+ 319.1 / 11:  0.0385435  0.0194263  0.0738935  0.1482454  0.1247132  0.1833492  0.1286853  0.1830374
+ 349.5 / 12: -0.0358659  0.0084504  0.0425990  0.0577887  0.0798972  0.1691094  0.1258339  0.2192876
+ 379.9 / 13: -0.0169571  0.0135070  0.0328663  0.0698305  0.1095749  0.0967198  0.2150333  0.3087425
+ 410.3 / 14:  0.0478629  0.1403229 -0.0087896  0.0596390  0.1559666  0.1084711  0.2104235  0.1929824
+ 440.7 / 15:  0.1227799  0.0949119  0.1626030  0.1480152  0.1623026  0.2006098  0.1533306  0.2937627
+ 471.1 / 16: -0.0072133  0.1917807  0.0258130  0.1213028  0.2666616  0.1603801  0.2374043  0.3572837
+ 501.5 / 17:  0.0518385  0.0510287  0.0654230  0.1734310  0.2131447  0.1813658  0.2729453  0.3550803
+ 531.8 / 18:  0.0006948  0.1033960  0.0886345  0.2905850  0.2991944  0.1942257  0.3881923  0.3758325
+ 562.2 / 19:  0.1838293  0.1825128  0.3119829  0.2455838  0.2395894  0.2520298  0.4346953  0.2801757
+ 592.6 / 20:  0.1725966  0.2160215  0.3391136  0.3763105  0.1956531  0.1832036  0.2019359  0.1743080
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 45 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          1950       1950       1950       1950       1951       1951       1951       1951    
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.3307804       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.3453357       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.3318969       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.3183579  0.3001368       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.3159946  0.2965006       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.2887657  0.3090819       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.1718194  0.2979229  0.2667996       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.1266464  0.2500561  0.2624068       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.1415998  0.1864551  0.2654114       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.1274963  0.1641019  0.2596174  0.2316579       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0385435  0.1874913  0.2424190  0.2239956       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12: -0.0358659  0.1048240  0.1544172  0.2324281       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13: -0.0169571  0.1033718  0.1848208  0.2171432  0.1953346       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0478629  0.0194263  0.0982521  0.1722981  0.1893625       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.1227799  0.0084504  0.0792315  0.1888522  0.1761227       ....       ....       ....
+ 16-APR-1951 00 / 16: -0.0072133  0.0135070  0.0771790  0.1603616  0.1555353  0.1592990       ....       ....
+ 16-MAY-1951 12 / 17:  0.0518385  0.1403229  0.0738935  0.0971044  0.1347216  0.1504392       ....       ....
+ 16-JUN-1951 00 / 18:  0.0006948  0.0949119  0.0425990  0.1301761  0.1184325  0.1559338       ....       ....
+ 16-JUL-1951 12 / 19:  0.1838293  0.1917807  0.0328663  0.1415754  0.1176353  0.1280383  0.1221931       ....
+ 16-AUG-1951 12 / 20:  0.1725966  0.0510287 -0.0087896  0.1482454  0.0575506  0.1037913  0.1121185       ....
+ 16-SEP-1951 00 / 21:  0.3654837  0.1033960  0.1626030  0.0577887  0.1277610  0.0887549  0.1246391       ....
+ 16-OCT-1951 12 / 22:  0.3192576  0.1825128  0.0258130  0.0698305  0.0450438  0.1330176  0.1215401  0.0850729
+ 16-NOV-1951 00 / 23:  0.1828542  0.2160215  0.0654230  0.0596390  0.1247132  0.0528148  0.0877940  0.0863392
+ 16-DEC-1951 12 / 24:  0.4272781  0.3927684  0.0886345  0.1480152  0.0798972  0.0587752  0.0829604  0.0669682
+ 16-JAN-1952 12 / 25:       ....  0.2804252  0.3119829  0.1213028  0.1095749  0.1200644  0.0443733  0.0854115
+ 15-FEB-1952 12 / 26:       ....  0.2154990  0.3391136  0.1734310  0.1559666  0.1833492  0.1195784  0.0543137
+ 16-MAR-1952 12 / 27:       ....  0.2245606  0.2519416  0.2905850  0.1623026  0.1691094  0.1379869  0.0452587
+ 16-APR-1952 00 / 28:       ....       ....  0.2020766  0.2455838  0.2666616  0.0967198  0.1678881  0.0939627
+ 16-MAY-1952 12 / 29:       ....       ....  0.3907234  0.3763105  0.2131447  0.1084711  0.1286853  0.0732442
+ 16-JUN-1952 00 / 30:       ....       ....  0.1899071  0.4072766  0.2991944  0.2006098  0.1258339  0.1240748
+ 16-JUL-1952 12 / 31:       ....       ....       ....  0.3233588  0.2395894  0.1603801  0.2150333  0.2024079
+ 16-AUG-1952 12 / 32:       ....       ....       ....  0.3334134  0.1956531  0.1813658  0.2104235  0.1830374
+ 16-SEP-1952 00 / 33:       ....       ....       ....  0.2259139  0.2331061  0.1942257  0.1533306  0.2192876
+ 16-OCT-1952 12 / 34:       ....       ....       ....       ....  0.4350016  0.2520298  0.2374043  0.3087425
+ 16-NOV-1952 00 / 35:       ....       ....       ....       ....  0.4583276  0.1832036  0.2729453  0.1929824
+ 16-DEC-1952 12 / 36:       ....       ....       ....       ....  0.4632503  0.3564805  0.3881923  0.2937627
+ 16-JAN-1953 12 / 37:       ....       ....       ....       ....       ....  0.2654290  0.4346953  0.3572837
+ 15-FEB-1953 00 / 38:       ....       ....       ....       ....       ....  0.3711777  0.2019359  0.3550803
+ 16-MAR-1953 12 / 39:       ....       ....       ....       ....       ....  0.3677070  0.2476939  0.3758325
+ 16-APR-1953 00 / 40:       ....       ....       ....       ....       ....       ....  0.3270105  0.2801757
+ 16-MAY-1953 12 / 41:       ....       ....       ....       ....       ....       ....  0.1942565  0.1743080
+ 16-JUN-1953 00 / 42:       ....       ....       ....       ....       ....       ....  0.3242278  0.1867072
+ 16-JUL-1953 12 / 43:       ....       ....       ....       ....       ....       ....       ....  0.3779086
+ 16-AUG-1953 12 / 44:       ....       ....       ....       ....       ....       ....       ....  0.2492870
+ 16-SEP-1953 00 / 45:       ....       ....       ....       ....       ....       ....       ....  0.0766919
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.7      227.9      319        410.1      501.3      592.4      683.6   
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.0000000  0.0182211       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.0000000  0.0194940       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.0000000 -0.0203161       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.0000000  0.0311233 -0.0949802       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.0000000 -0.0123508 -0.1357605       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.0000000 -0.0789563 -0.1238116       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000  0.0279596 -0.0675560 -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000  0.0184234 -0.0365043 -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000 -0.0780108 -0.1276041 -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086 -0.0105139 -0.0919628 -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644 -0.0911104 -0.1699362 -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295 -0.0968911 -0.1676723 -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626 -0.0821200 -0.1457920 -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348 -0.0765457 -0.0101163 -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577 -0.1133348 -0.0610220 -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823 -0.0893268  0.0695876  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269 -0.1209081 -0.0610898  0.0604781       ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.7      227.9      319        410.1      501.3      592.4      683.6   
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.0000000  0.0182211       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.0000000  0.0194940       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.0000000 -0.0203161       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.0000000  0.0311233 -0.0949802       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.0000000 -0.0123508 -0.1357605       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.0000000 -0.0789563 -0.1238116       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000  0.0279596 -0.0675560 -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000  0.0184234 -0.0365043 -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000 -0.0780108 -0.1276041 -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086 -0.0105139 -0.0919628 -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644 -0.0911104 -0.1699362 -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295 -0.0968911 -0.1676723 -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626 -0.0821200 -0.1457920 -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348 -0.0765457 -0.0101163 -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577 -0.1133348 -0.0610220 -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823 -0.0893268  0.0695876  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269 -0.1209081 -0.0610898  0.0604781       ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+cancel data my_fmrc
+ 
+! agg where one dataset lacks one of the variables
+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/files
+     currently SET data sets:
+    6> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:5
+       (L=7:30)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
+ 
+          Aggregated datasets:
+      1: tmp/fcst_3.nc
+      2: tmp/fcst_4.nc
+      3: tmp/fcst_5.nc
+      4: tmp/one_var_fcst_6.nc
+      5: tmp/fcst_7.nc
+stat/l=1:20 fcst
+ 
+             FIELD + FCST_ERROR
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             MODEL ELAPSED TIME (day): 0 to 609.13
+             E:  N/A
+             FORECAST: 16-MAY-1950 09:00 to 15-AUG-1951 15:00
+             DATA SET: my_fmrc
+ 
+ Total # of data points: 44100 (21*21*1*20*1*5)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.3839
+ Mean    value: 0.11163 (unweighted average)
+ Standard deviation: 0.54048
+cancel data my_fmrc
+ 
+! ... added 1/28/2016
+! the same agg, but the dataset name pulled implicitly from the script name
+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
+ 
+! 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
+     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
+       (L=7:30)
+               on grid GFN1 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=19.5N:40.5N  F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
+             days since 01-JAN-1900 00:00:00 on grid FTI with -1.E+34 for missing data
+             F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ 
+  time range: 15.228 to 715.73
+ 
+          Aggregated datasets:
+      1: tmp/fcst_3.nc
+      2: tmp/fcst_4.nc
+      3: tmp/fcst_5.nc
+      4: tmp/one_var_fcst_6.nc
+      5: tmp/fcst_7.nc
+    7> my_fmrc  (default)  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
+       (L=7:30)
+               on grid GFN2 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=19.5N:40.5N  F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
+             days since 01-JAN-1900 00:00:00 on grid FTI1 with -1.E+34 for missing data
+             F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ 
+  time range: 15.228 to 715.73
+ 
+          Aggregated datasets:
+      1: tmp/fcst_3.nc
+      2: tmp/fcst_4.nc
+      3: tmp/fcst_5.nc
+      4: tmp/one_var_fcst_6.nc
+      5: tmp/fcst_7.nc
+ 
+! cancel a component dataset -- used in two aggregations
+cancel data tmp/fcst_4.nc
+show data
+     currently SET data sets:
+ 
+! re-define the same aggs again.
+! then cancel one of them only and note that the hidden files remain
+fmrc/hide tmp/fcst_7.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_3.nc
+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
+cancel data my_fmrc
+show data/br/hidden
+     currently SET data sets:
+    1> tmp/fcst_7.nc
+    2> tmp/fcst_4.nc
+    3> tmp/fcst_5.nc
+    4> tmp/one_var_fcst_6.nc
+    5> tmp/fcst_3.nc
+    6> ./bn_aggregate_f.jnl     Forecast aggregation
+cancel data bn_aggregate_f.jnl   ! 3/16 bug fix (was "...sub")
+show data
+     currently SET data sets:
+ 
+! agg where a LET/D variable is used to fill in a missing variable
+use tmp/one_var_fcst_1.nc, tmp/one_var_fcst_6.nc
+let/d=one_var_fcst_1.nc fcst_2 = fcst + 2  ! compute same value as file vars
+let/d=one_var_fcst_6.nc fcst_2 = fcst + 2  ! compute same value as file vars
+FMRC/hide my_fmrc_letd_6 = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_7.nc
+FMRC/hide my_fmrc_letd_1 = tmp/one_var_fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/fcst_6.nc, tmp/fcst_7.nc
+FMRC/hide my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/fcst_6.nc, tmp/fcst_7.nc
+show data/files
+     currently SET data sets:
+    9> my_fmrc_letd_6     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/one_var_fcst_6.nc
+      7: tmp/fcst_7.nc
+   11> my_fmrc_letd_1     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=4:27)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/one_var_fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/fcst_6.nc
+      7: tmp/fcst_7.nc
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/fcst_6.nc
+      7: tmp/fcst_7.nc
+show data
+     currently SET data sets:
+    9> my_fmrc_letd_6     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+   11> my_fmrc_letd_1     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=4:27)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+! should be all 0's:
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst_2[d=my_fmrc_letd_6] - fcst_2[d=my_fmrc]
+             VARIABLE : FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC]
+             SUBSET   : 7 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                 1950       1950       1950       1950       1951       1951       1951    
+                  1          2          3          4          5          6          7
+ 15.2  /  1:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 45.6  /  2:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 76    /  3:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 106.4 /  4:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 136.8 /  5:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 167.2 /  6:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 197.5 /  7:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 227.9 /  8:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 258.3 /  9:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 288.7 / 10:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 319.1 / 11:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 349.5 / 12:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 379.9 / 13:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 410.3 / 14:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 440.7 / 15:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 471.1 / 16:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 501.5 / 17:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 531.8 / 18:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 562.2 / 19:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 592.6 / 20:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+! should be all 0's:
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst_2[d=my_fmrc_letd_6] - fcst_2[d=my_fmrc_letd_1]
+             VARIABLE : FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC_LETD_1]
+             SUBSET   : 7 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                 1950       1950       1950       1950       1951       1951       1951    
+                  1          2          3          4          5          6          7
+ 15.2  /  1:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 45.6  /  2:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 76    /  3:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 106.4 /  4:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 136.8 /  5:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 167.2 /  6:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 197.5 /  7:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 227.9 /  8:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 258.3 /  9:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 288.7 / 10:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 319.1 / 11:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 349.5 / 12:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 379.9 / 13:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 410.3 / 14:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 440.7 / 15:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 471.1 / 16:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 501.5 / 17:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 531.8 / 18:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 562.2 / 19:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 592.6 / 20:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+cancel data my_fmrc
+cancel data my_fmrc_letd_1, my_fmrc_letd_6
+ 
+! files already opened and not hidden remain open after aggregation
+use tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_9.nc, tmp/fcst_10.nc, tmp/fcst_11.nc
+fmrc my_fmrc = XCAT(files[I=6:10],{"6","1"})           ! without /HIDE
+cancel data my_fmrc
+show data/brief
+     currently SET data sets:
+    1> tmp/fcst_1.nc
+    2> tmp/fcst_2.nc
+    3> tmp/fcst_3.nc
+    4> tmp/fcst_9.nc
+    5> tmp/fcst_10.nc
+    6> tmp/fcst_11.nc
+cancel data/all
+ 
+! *************************************
+! deliberate errors
+set mode ignore
+ 
+! error - duplicate file
+fmrc my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc,tmp/fcst_2.nc,tmp/fcst_3.nc
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+! error - unknown dataset
+fmrc my_fmrc = XCAT(files,"tmp/no_exist.nc")
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+! error - inserting forecasts at two consecutive steps implies too many gaps
+fmrc my_fmrc = XCAT(files,"tmp/consecutive_month_fcst.nc")
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+! error - inserting out of sequence forecast
+fmrc my_fmrc = XCAT(files,"tmp/irregular_start_time_fcst.nc")
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO bn_aggregate_tef
+! bn_aggregate_tef.F
+! 2/2016 *sh*
+! 3/2016 - modified to test single point axis aggregations on Z axis
+ 
+! to avoid re-creating the test files include argument "0" as in
+!  yes?  GO bn_aggregate_tef 0
+ 
+ 
+! exercise 6D aggregations: T, E, and F simultaneously
+ 
+! do not bother to echo the creation of files and the definitions of the
+! many time aggregations
+CANCEL MODE VERIFY
+ 
+show data/files/br
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f01_e3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e3_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e3_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e3_t3.nc
+ 
+    4> t_f01_e4
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e4_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e4_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e4_t3.nc
+ 
+    5> t_f01_e5
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e5_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e5_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e5_t3.nc
+ 
+    6> t_f02_e1
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_t3.nc
+ 
+    7> t_f02_e2
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_t3.nc
+ 
+    8> t_f02_e3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e3_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e3_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e3_t3.nc
+ 
+    9> t_f02_e4
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e4_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e4_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e4_t3.nc
+ 
+   10> t_f02_e5
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e5_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e5_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e5_t3.nc
+ 
+   11> t_f03_e1
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_t3.nc
+ 
+   12> t_f03_e2
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_t3.nc
+ 
+   13> t_f03_e3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e3_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e3_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e3_t3.nc
+ 
+   14> t_f03_e4
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e4_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e4_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e4_t3.nc
+ 
+   15> t_f03_e5
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e5_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e5_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e5_t3.nc
+ 
+   16> t_f04_e1
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e1_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e1_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e1_t3.nc
+ 
+   17> t_f04_e2
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e2_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e2_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e2_t3.nc
+ 
+   18> t_f04_e3
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e3_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e3_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3.nc
+ 
+   19> t_f04_e4
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e4_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e4_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e4_t3.nc
+ 
+   20> t_f04_e5
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e5_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e5_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e5_t3.nc
+ 
+   21> t_f05_e1
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e1_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e1_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e1_t3.nc
+ 
+   22> t_f05_e2
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e2_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e2_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e2_t3.nc
+ 
+   23> t_f05_e3
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e3_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e3_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e3_t3.nc
+ 
+   24> t_f05_e4
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e4_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e4_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e4_t3.nc
+ 
+   25> t_f05_e5
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e5_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e5_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e5_t3.nc
+ 
+   26> t_f06_e1
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e1_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e1_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e1_t3.nc
+ 
+   27> t_f06_e2
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e2_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e2_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e2_t3.nc
+ 
+   28> t_f06_e3
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e3_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e3_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e3_t3.nc
+ 
+   29> t_f06_e4
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e4_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e4_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e4_t3.nc
+ 
+   30> t_f06_e5
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e5_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e5_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e5_t3.nc
+ 
+   31> t_f07_e1
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e1_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e1_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e1_t3.nc
+ 
+   32> t_f07_e2
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e2_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e2_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e2_t3.nc
+ 
+   33> t_f07_e3
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e3_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e3_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e3_t3.nc
+ 
+   34> t_f07_e4
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e4_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e4_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e4_t3.nc
+ 
+   35> t_f07_e5
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e5_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e5_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e5_t3.nc
+ 
+   36> t_f08_e1
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e1_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e1_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e1_t3.nc
+ 
+   37> t_f08_e2
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e2_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e2_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e2_t3.nc
+ 
+   38> t_f08_e3
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e3_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e3_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e3_t3.nc
+ 
+   39> t_f08_e4
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e4_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e4_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e4_t3.nc
+ 
+   40> t_f08_e5
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e5_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e5_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e5_t3.nc
+ 
+   41> t_f09_e1
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e1_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e1_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e1_t3.nc
+ 
+   42> t_f09_e2
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e2_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e2_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e2_t3.nc
+ 
+   43> t_f09_e3
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e3_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e3_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e3_t3.nc
+ 
+   44> t_f09_e4
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e4_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e4_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e4_t3.nc
+ 
+   45> t_f09_e5
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e5_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e5_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e5_t3.nc
+ 
+   46> t_f10_e1
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e1_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e1_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e1_t3.nc
+ 
+   47> t_f10_e2
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e2_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e2_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e2_t3.nc
+ 
+   48> t_f10_e3
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e3_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e3_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e3_t3.nc
+ 
+   49> t_f10_e4
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e4_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e4_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e4_t3.nc
+ 
+   50> t_f10_e5
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e5_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e5_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e5_t3.nc
+ 
+   51> t_f11_e1
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e1_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e1_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e1_t3.nc
+ 
+   52> t_f11_e2
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e2_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e2_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e2_t3.nc
+ 
+   53> t_f11_e3
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e3_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e3_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e3_t3.nc
+ 
+   54> t_f11_e4
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e4_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e4_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e4_t3.nc
+ 
+   55> t_f11_e5
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e5_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e5_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e5_t3.nc
+ 
+   56> t_f04_e3_1v  (default)
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e3_t1_1v.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e3_t2_1v.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3_1v.nc
+ 
+ 
+! should share the same time axis
+show grid fcst[d=t_f01_e1]
+    GRID GFA1
+ name       axis              # pts   start                end                 subset
+ XAX       LONGITUDE           21mr   140E                 160E                full
+ YAX       LATITUDE            11 r   10N                  20N                 full
+ ZAX1      Z (m)                1 r   250                  250                 full
+ TRUEMONTH3 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
+ normal    E
+ normal    F
+show grid fcst[d=t_f01_e2]
+    GRID GFA1
+ name       axis              # pts   start                end                 subset
+ XAX       LONGITUDE           21mr   140E                 160E                full
+ YAX       LATITUDE            11 r   10N                  20N                 full
+ ZAX1      Z (m)                1 r   250                  250                 full
+ TRUEMONTH3 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
+ normal    E
+ normal    F
+ 
+! ======== TEST SET 1:  aggregate E first, then F
+ 
+! define te aggregations -- only the first 5 remain unhidden
+ENSEMBLE      te_f01 = t_f01_e1, t_f01_e2, t_f01_e3, t_f01_e4, t_f01_e5
+ENSEMBLE/hide te_f02 = t_f02_e1, t_f02_e2, t_f02_e3, t_f02_e4, t_f02_e5
+ENSEMBLE/hide te_f03 = t_f03_e1, t_f03_e2, t_f03_e3, t_f03_e4, t_f03_e5
+ENSEMBLE/hide te_f04 = t_f04_e1, t_f04_e2, t_f04_e3, t_f04_e4, t_f04_e5
+ENSEMBLE/hide te_f05 = t_f05_e1, t_f05_e2, t_f05_e3, t_f05_e4, t_f05_e5
+ENSEMBLE/hide te_f06 = t_f06_e1, t_f06_e2, t_f06_e3, t_f06_e4, t_f06_e5
+ENSEMBLE/hide te_f07 = t_f07_e1, t_f07_e2, t_f07_e3, t_f07_e4, t_f07_e5
+ENSEMBLE/hide te_f08 = t_f08_e1, t_f08_e2, t_f08_e3, t_f08_e4, t_f08_e5
+ENSEMBLE/hide te_f09 = t_f09_e1, t_f09_e2, t_f09_e3, t_f09_e4, t_f09_e5
+ENSEMBLE/hide te_f10 = t_f10_e1, t_f10_e2, t_f10_e3, t_f10_e4, t_f10_e5
+ENSEMBLE/hide te_f11 = t_f11_e1, t_f11_e2, t_f11_e3, t_f11_e4, t_f11_e5
+SHOW DATA/brief
+     currently SET data sets:
+    1> t_f01_e1
+    2> t_f01_e2
+    3> t_f01_e3
+    4> t_f01_e4
+    5> t_f01_e5
+   56> t_f04_e3_1v
+   57> te_f01     Ensemble aggregation
+   58> te_f02     Ensemble aggregation
+   59> te_f03     Ensemble aggregation
+   60> te_f04     Ensemble aggregation
+   61> te_f05     Ensemble aggregation
+   62> te_f06     Ensemble aggregation
+   63> te_f07     Ensemble aggregation
+   64> te_f08     Ensemble aggregation
+   65> te_f09     Ensemble aggregation
+   66> te_f10     Ensemble aggregation
+   67> te_f11  (default)  Ensemble aggregation
+SHOW DATA/FULL te_f11
+     currently SET data sets:
+   67> te_f11  (default)  Ensemble aggregation
+     Ensemble series of 5 datasets patterned on t_f11_e1
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:5       ...
+       (L=31:42)
+               on grid GEN11 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:5       ...
+       (L=31:42)
+               on grid GEN11 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  
+ REALIZATION
+          1                                ...       ...       ...       ...       1:5       ...
+               on grid GEN with -1.E+34 for missing data
+             E=0.5:5.5  
+ 
+  time range: 16-JUL-1952 12:00 to 16-JUN-1955 00:00
+ 
+          Aggregated datasets:
+      1: t_f11_e1
+      2: t_f11_e2
+      3: t_f11_e3
+      4: t_f11_e4
+      5: t_f11_e5
+SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
+     currently SET data sets:
+   67> te_f11  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        6    F       te_f11
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 im_everywhere   CHAR        13   F       so promote me
+                                 long_name_mod   CHAR        7    F       L=31:42
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 long_name_mod   CHAR        7    F       L=31:42
+  
+ REALIZATION           FLOAT     long_name       CHAR        1    T       1
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+! define tef aggregation
+FMRC/HIDE tef = te_f01, te_f02, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+SHOW DATA/brief/files
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f01_e3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e3_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e3_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e3_t3.nc
+ 
+    4> t_f01_e4
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e4_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e4_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e4_t3.nc
+ 
+    5> t_f01_e5
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e5_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e5_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e5_t3.nc
+ 
+   56> t_f04_e3_1v
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e3_t1_1v.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e3_t2_1v.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3_1v.nc
+ 
+   68> tef  (default)  Forecast aggregation
+          Aggregated datasets:
+      1 : te_f01
+      2 : te_f02
+      3 : te_f03
+      4 : te_f04
+      5 : te_f05
+      6 : te_f06
+      7 : te_f07
+      8 : te_f08
+      9 : te_f09
+      10: te_f10
+      11: te_f11
+show data/full tef
+     currently SET data sets:
+   68> tef  (default)  Forecast aggregation
+     Forecast series of 11 datasets patterned on te_f01
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  F=16-NOV-1949 09:36:15-AUG-1952 14:24  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:11
+             days since 01-JAN-1900 00:00:00 on grid FTI1 with -1.E+34 for missing data
+             F=16-NOV-1949 09:36:15-AUG-1952 14:24  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  F=16-NOV-1949 09:36:15-AUG-1952 14:24  
+ 
+  time range: 15.214 to 1080.2
+ 
+          Aggregated datasets:
+      1 : te_f01
+      2 : te_f02
+      3 : te_f03
+      4 : te_f04
+      5 : te_f05
+      6 : te_f06
+      7 : te_f07
+      8 : te_f08
+      9 : te_f09
+      10: te_f10
+      11: te_f11
+ 
+! simplest acess -- compact form -- just demonstrate it doesn't fail
+stat/brief fcst[i=11:12, j=5:6, l=31:32, m=1:2, n=5:6]
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 224.92
+ Maximum value: 237.87
+ Mean    value: 231.43 (unweighted average)
+ 
+! diagonal forecast view of ensemble mean
+let diag_fcst = fcst[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:5 at ave]
+ 
+! difference between the mean and the middle is zero within computational error
+let epsilon = 1 / 2^50   ! 52 mantissa bits in a double
+say using epsilon = `epsilon`
+ !-> MESSAGE/CONTINUE using epsilon = 8.881784197001E-16
+using epsilon = 8.881784197001E-16
+let rel_err = (diag_fcst[m=1:5 at ave]-diag_fcst[m=3])/diag_fcst[m=3]
+stat/brief/x=150E/y=15n IF ABS(rel_err) LT epsilon THEN 0.0 ELSE rel_err
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ 
+! warning message indicates fcst_2 is missing from a file
+ENSEMBLE te_f04_1v = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+SHOW DATA/ATT t_f04_e3_1v ! note atts im_everwhere vs im_not_everwhere
+     currently SET data sets:
+   56> t_f04_e3_1v
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(XAX)                  DOUBLE    point_spacing   CHAR        4    T       even
+                                 axis            CHAR        1    T       X
+                                 modulo          DOUBLE      1    T       360
+                                 units           CHAR        12   T       degrees_east
+                                 standard_name   CHAR        9    F       longitude
+                                 orig_file_axname
+                                                 CHAR        3    F       XAX
+  
+(YAX)                  DOUBLE    point_spacing   CHAR        4    T       even
+                                 axis            CHAR        1    T       Y
+                                 units           CHAR        13   T       degrees_north
+                                 standard_name   CHAR        8    F       latitude
+                                 orig_file_axname
+                                                 CHAR        3    F       YAX
+  
+(ZAX1)                 DOUBLE    point_spacing   CHAR        4    T       even
+                                 axis            CHAR        1    T       Z
+                                 positive        CHAR        2    T       up
+                                 units           CHAR        1    T       m
+                                 standard_name   CHAR        8    F       altitude
+                                 orig_file_axname
+                                                 CHAR        3    F       ZAX
+  
+(TRUEMONTH14)          DOUBLE    units           CHAR        30   T       days since 1900-01-01 00:00:00
+                                 axis            CHAR        1    T       T
+                                 bounds          CHAR        14   T       TRUEMONTH_bnds
+                                 time_origin     CHAR        10   T       1-JAN-1900
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        9    F       TRUEMONTH
+  
+ TRUEMONTH_bnds        DOUBLE
+  
+ FCST                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        13   T       some variable
+                                 im_everywhere   CHAR        13   F       so promote me
+                                 im_not_everywhere
+                                                 CHAR        19   F       so don't promote me
+                                 long_name_mod   CHAR        7    F       L=10:21
+  
+ REALIZATION           DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        1    T       3
+  
+SHOW DATA/ATT te_f04_1v  ! note atts im_everwhere vs im_not_everwhere
+     currently SET data sets:
+   69> te_f04_1v  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        9    F       te_f04_1v
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 im_everywhere   CHAR        13   F       so promote me
+                                 long_name_mod   CHAR        7    F       L=10:21
+  
+ REALIZATION           FLOAT     long_name       CHAR        1    T       1
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+! define fcst_2 as a LET/D variable and then do same calc
+let/d=t_f04_e3_1v fcst_2 = fcst + 2
+show data/br t_f04_e3_1v
+     currently SET data sets:
+   56> t_f04_e3_1v
+ENSEMBLE te_f04_letd = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+FMRC/hide tef_letd = te_f01, te_f02, te_f03, te_f04_letd, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+let diag_fcst_2 = fcst_2[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+let rel_err_2 = (diag_fcst_2[m=1:5 at ave]-diag_fcst_2[m=3])/diag_fcst_2[m=3]
+ 
+! can run in diagnostic mode and look for "eval FCST_2" to confirm LET/D eval
+set data tef_letd
+stat/brief/x=150E/y=15n diag_fcst_2
+ 
+ Total # of data points: 3960 (1*1*1*66*5*12)
+ # flagged as bad  data: 1980
+ Minimum value: 226.45
+ Maximum value: 277.75
+ Mean    value: 252.12 (unweighted average)
+stat/brief/x=150E/y=15n IF ABS(rel_err_2) LT epsilon THEN 0.0 ELSE rel_err_2
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ 
+! demonstrate redefining the LET/D variable without re-defining the agg
+! Look at the column 3 ("e3"), row 4 ("f04") to see  2.110 => 4.110
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 01-JAN-1950 /  1:  227.0820  239.5866  252.0911  264.5957  277.1002
+ 01-APR-1950 /  2:  227.1276  239.6347  252.1418  264.6489  277.1560
+ 01-JUL-1950 /  3:  227.0372  239.5393  252.0414  264.5435  277.0455
+ 01-OCT-1950 /  4:  227.0986  239.6041  252.1095  264.6150  277.1205
+ 01-JAN-1951 /  5:  227.1470  239.6552  252.1634  264.6715  277.1797
+ 01-APR-1951 /  6:  227.2203  239.7326  252.2448  264.7571  277.2693
+ 01-JUL-1951 /  7:  227.1328  239.6402  252.1475  264.6549  277.1623
+ 01-OCT-1951 /  8:  227.1578  239.6666  252.1753  264.6841  277.1929
+ 01-JAN-1952 /  9:  227.2052  239.7166  252.2280  264.7394  277.2508
+ 01-APR-1952 / 10:  227.1379  239.6456  252.1532  264.6609  277.1686
+ 01-JUL-1952 / 11:  227.1891  239.6996  252.2101  264.7206  277.2311
+let/d=t_f04_e3_1v fcst_2 = fcst + 2 + 2   ! add 2
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 01-JAN-1950 /  1:  227.0820  239.5866  252.0911  264.5957  277.1002
+ 01-APR-1950 /  2:  227.1276  239.6347  252.1418  264.6489  277.1560
+ 01-JUL-1950 /  3:  227.0372  239.5393  252.0414  264.5435  277.0455
+ 01-OCT-1950 /  4:  227.0986  239.6041  254.1095  264.6150  277.1205
+ 01-JAN-1951 /  5:  227.1470  239.6552  252.1634  264.6715  277.1797
+ 01-APR-1951 /  6:  227.2203  239.7326  252.2448  264.7571  277.2693
+ 01-JUL-1951 /  7:  227.1328  239.6402  252.1475  264.6549  277.1623
+ 01-OCT-1951 /  8:  227.1578  239.6666  252.1753  264.6841  277.1929
+ 01-JAN-1952 /  9:  227.2052  239.7166  252.2280  264.7394  277.2508
+ 01-APR-1952 / 10:  227.1379  239.6456  252.1532  264.6609  277.1686
+ 01-JUL-1952 / 11:  227.1891  239.6996  252.2101  264.7206  277.2311
+ 
+! agg members may have unique contexts on scalar axes of the aggregation
+! ... here the LET/D var is normal to Z
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+T[gt=fcst] + 1000
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 01-JAN-1950 /  1:    227.08    239.59    252.09    264.60    277.10
+ 01-APR-1950 /  2:    227.13    239.63    252.14    264.65    277.16
+ 01-JUL-1950 /  3:    227.04    239.54    252.04    264.54    277.05
+ 01-OCT-1950 /  4:    227.10    239.60  19988.50    264.62    277.12
+ 01-JAN-1951 /  5:    227.15    239.66    252.16    264.67    277.18
+ 01-APR-1951 /  6:    227.22    239.73    252.24    264.76    277.27
+ 01-JUL-1951 /  7:    227.13    239.64    252.15    264.65    277.16
+ 01-OCT-1951 /  8:    227.16    239.67    252.18    264.68    277.19
+ 01-JAN-1952 /  9:    227.21    239.72    252.23    264.74    277.25
+ 01-APR-1952 / 10:    227.14    239.65    252.15    264.66    277.17
+ 01-JUL-1952 / 11:    227.19    239.70    252.21    264.72    277.23
+ 
+! ... here the LET/D var is averaged to a point in a pre-existing agg
+LET some_Z_function = Z[Z=0:100:10] + 1000
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+T[gt=fcst]+some_Z_function[Z=10:60 at ave]
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 01-JAN-1950 /  1:    227.08    239.59    252.09    264.60    277.10
+ 01-APR-1950 /  2:    227.13    239.63    252.14    264.65    277.16
+ 01-JUL-1950 /  3:    227.04    239.54    252.04    264.54    277.05
+ 01-OCT-1950 /  4:    227.10    239.60  20023.50    264.62    277.12
+ 01-JAN-1951 /  5:    227.15    239.66    252.16    264.67    277.18
+ 01-APR-1951 /  6:    227.22    239.73    252.24    264.76    277.27
+ 01-JUL-1951 /  7:    227.13    239.64    252.15    264.65    277.16
+ 01-OCT-1951 /  8:    227.16    239.67    252.18    264.68    277.19
+ 01-JAN-1952 /  9:    227.21    239.72    252.23    264.74    277.25
+ 01-APR-1952 / 10:    227.14    239.65    252.15    264.66    277.17
+ 01-JUL-1952 / 11:    227.19    239.70    252.21    264.72    277.23
+ 
+! same as preceding, but the LET/D is included in the agg as defined
+ENSEMBLE te_f04_letd_new = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+FMRC/hide tef_letd_new = te_f01, te_f02, te_f03, te_f04_letd, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd_new
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 01-JAN-1950 /  1:    227.08    239.59    252.09    264.60    277.10
+ 01-APR-1950 /  2:    227.13    239.63    252.14    264.65    277.16
+ 01-JUL-1950 /  3:    227.04    239.54    252.04    264.54    277.05
+ 01-OCT-1950 /  4:    227.10    239.60  20023.50    264.62    277.12
+ 01-JAN-1951 /  5:    227.15    239.66    252.16    264.67    277.18
+ 01-APR-1951 /  6:    227.22    239.73    252.24    264.76    277.27
+ 01-JUL-1951 /  7:    227.13    239.64    252.15    264.65    277.16
+ 01-OCT-1951 /  8:    227.16    239.67    252.18    264.68    277.19
+ 01-JAN-1952 /  9:    227.21    239.72    252.23    264.74    277.25
+ 01-APR-1952 / 10:    227.14    239.65    252.15    264.66    277.17
+ 01-JUL-1952 / 11:    227.19    239.70    252.21    264.72    277.23
+ 
+! deliberate errors:
+SET MODE IGNORE
+set data tef_letd
+! a new LET/D definition that alters the grid of the result is not acceptable
+let/d=t_f04_e3_1v fcst_2 = X[x=1:5]+Y[gy=fcst]+Z[gz=fcst]+T[gt=fcst] ! X ax chg
+list/x=150E/y=15n/L=10 fcst_2
+ 
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+Z[gz=fcst]+T[T=1:36:1] ! T chg
+list/x=150E/y=15n/L=10 fcst_2
+ 
+! LET definition may not compress an axis of N>1
+let/d=t_f04_e3_1v fcst_2 = fcst[i=1:5 at ave]
+list/x=150E/y=15n/L=10 fcst_2
+SET MODE/LAST IGNORE
+ 
+! now restore the original definition and verify it again works
+let/d=t_f04_e3_1v fcst_2 = fcst + 2
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 01-JAN-1950 /  1:  227.0820  239.5866  252.0911  264.5957  277.1002
+ 01-APR-1950 /  2:  227.1276  239.6347  252.1418  264.6489  277.1560
+ 01-JUL-1950 /  3:  227.0372  239.5393  252.0414  264.5435  277.0455
+ 01-OCT-1950 /  4:  227.0986  239.6041  252.1095  264.6150  277.1205
+ 01-JAN-1951 /  5:  227.1470  239.6552  252.1634  264.6715  277.1797
+ 01-APR-1951 /  6:  227.2203  239.7326  252.2448  264.7571  277.2693
+ 01-JUL-1951 /  7:  227.1328  239.6402  252.1475  264.6549  277.1623
+ 01-OCT-1951 /  8:  227.1578  239.6666  252.1753  264.6841  277.1929
+ 01-JAN-1952 /  9:  227.2052  239.7166  252.2280  264.7394  277.2508
+ 01-APR-1952 / 10:  227.1379  239.6456  252.1532  264.6609  277.1686
+ 01-JUL-1952 / 11:  227.1891  239.6996  252.2101  264.7206  277.2311
+ 
+! ======== TEST SET 2:  aggregate F first, then E
+FMRC      tf_e1 = t_f01_e1, t_f02_e1, t_f03_e1, t_f04_e1, t_f05_e1, t_f06_e1, t_f07_e1, t_f08_e1, t_f09_e1, t_f10_e1, t_f11_e1
+FMRC/hide tf_e2 = t_f01_e2, t_f02_e2, t_f03_e2, t_f04_e2, t_f05_e2, t_f06_e2, t_f07_e2, t_f08_e2, t_f09_e2, t_f10_e2, t_f11_e2
+FMRC/hide tf_e3 = t_f01_e3, t_f02_e3, t_f03_e3, t_f04_e3, t_f05_e3, t_f06_e3, t_f07_e3, t_f08_e3, t_f09_e3, t_f10_e3, t_f11_e3
+FMRC/hide tf_e4 = t_f01_e4, t_f02_e4, t_f03_e4, t_f04_e4, t_f05_e4, t_f06_e4, t_f07_e4, t_f08_e4, t_f09_e4, t_f10_e4, t_f11_e4
+FMRC/hide tf_e5 = t_f01_e5, t_f02_e5, t_f03_e5, t_f04_e5, t_f05_e5, t_f06_e5, t_f07_e5, t_f08_e5, t_f09_e5, t_f10_e5, t_f11_e5
+ 
+! aggregate these F-aggs onto an E axis
+ENSEMBLE/HIDE tfe = tf_e1, tf_e2, tf_e3, tf_e4, tf_e5
+ 
+! F-aggregate inherits the TF-auxiliary variable pointers from the members
+SHOW DATA/ATTRIB tfe   ! also notice the promotion of fcst.im_everywhere
+     currently SET data sets:
+   79> tfe  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        3    F       tfe
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        32   T       RUN TIME16 TF_TIMES ZAX1 YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+                                 im_everywhere   CHAR        13   F       so promote me
+  
+ TF_TIMES              FLOAT     long_name       CHAR        25   T       Forecast time step matrix
+                                 units           CHAR        31   T       days since 01-JAN-1900 00:00:00
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 _CoordinateAxisType
+                                                 CHAR        4    T       Time
+                                 calendar        CHAR        9    T       GREGORIAN
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        38   T       TF_CAL_F1 TIME16 TF_TIMES ZAX1 YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ 
+! the 2-D coordinate variable (TF_TIMES) should be 2D, only, in T and F
+SHOW DATA tfe
+     currently SET data sets:
+   79> tfe  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:11
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+ 
+ 
+! confirm that the TF_TIMES variable is accessible in a T-F-E aggregation
+LIST/NOHEAD/L=18:19/N=5:6 tf_times   ! subset access
+ 01-JAN-1951 / 5:  19159.00  19189.50
+ 01-APR-1951 / 6:  19251.00  19281.50
+STAT/BRIEF tf_times
+ 
+ Total # of data points: 396 (1*1*1*36*1*11)
+ # flagged as bad  data: 0
+ Minimum value: 18278
+ Maximum value: 20254
+ Mean    value: 19266 (unweighted average)
+ 
+! confirm that the T-F-E agg and the T-E-F agg get the same results
+! exactlyidentically zero STAT output means correct functioning
+let tfe_tef_ave_diff = (diag_fcst[d=tfe,m=1:5 at ave]-diag_fcst[d=tef,m=1:5 at ave])
+stat/brief/x=150E/y=15n tfe_tef_ave_diff
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+let tfe_tef_diff = (diag_fcst[d=tfe]-diag_fcst[d=tef])
+stat/brief/x=150E/y=15n tfe_tef_diff[m=1:5 at ave]
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ 
+! missing forecast (t_f02_e2) in a T-F-E aggregation
+FMRC tf_e2_gap = t_f01_e2, -, t_f03_e2, t_f04_e2, t_f05_e2, t_f06_e2, t_f07_e2, t_f08_e2, t_f09_e2, t_f10_e2, t_f11_e2
+ENSEMBLE tfe_gap = tf_e1, tf_e2_gap, tf_e3, tf_e4, tf_e5
+LIST/l=10/i=10/j=10/k=1 fcst[d=tfe_gap]
+             VARIABLE : some variable
+             DATA SET : Ensemble series of 5 datasets patterned on tf_e1
+             FILENAME : tfe_gap
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 149E
+             LATITUDE : 19N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 01-JAN-1950 /  1:  225.2225  237.7349  250.2472  262.7596  275.2720
+ 01-APR-1950 /  2:  225.3108      ....  250.3453  262.8625  275.3798
+ 01-JUL-1950 /  3:  225.2944  237.8107  250.3271  262.8434  275.3598
+ 01-OCT-1950 /  4:  225.4116  237.9345  250.4574  262.9802  275.5031
+ 01-JAN-1951 /  5:  225.4585  237.9839  250.5094  263.0349  275.5603
+ 01-APR-1951 /  6:  225.4969  238.0246  250.5522  263.0798  275.6074
+ 01-JUL-1951 /  7:  225.5393  238.0692  250.5992  263.1291  275.6591
+ 01-OCT-1951 /  8:  225.5576  238.0886  250.6196  263.1506  275.6815
+ 01-JAN-1952 /  9:  225.5630  238.0942  250.6255  263.1568  275.6881
+ 01-APR-1952 / 10:  225.5907  238.1235  250.6563  263.1892  275.7220
+ 01-JUL-1952 / 11:  225.6483  238.1843  250.7203  263.2563  275.7923
+ 
+! missing ensemble member (t_f02_e2)in a T-E-F agregation
+ENSEMBLE te_f02_gap = t_f02_e1, -, t_f02_e3, t_f02_e4, t_f02_e5
+FMRC tef_gap = te_f01, te_f02_gap, te_f03, te_f04
+LIST/l=10/i=10/j=10/k=1 fcst[d=tef_gap]
+             VARIABLE : some variable
+             DATA SET : Forecast series of 4 datasets patterned on te_f01
+             FILENAME : tef_gap
+             SUBSET   : 5 by 4 points (E (realization)-FORECAST)
+             LONGITUDE: 149E
+             LATITUDE : 19N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1         2         3         4         5      
+                       1         2         3         4         5
+ 01-JAN-1950 / 1:  225.2225  237.7349  250.2472  262.7596  275.2720
+ 01-APR-1950 / 2:  225.3108      ....  250.3453  262.8625  275.3798
+ 01-JUL-1950 / 3:  225.2944  237.8107  250.3271  262.8434  275.3598
+ 01-OCT-1950 / 4:  225.4116  237.9345  250.4574  262.9802  275.5031
+ 
+! deliberate errors
+set mode ignore
+! unequal ensemble axis lengths
+ENSEMBLE te_f02_short = t_f02_e1, t_f02_e2, t_f02_e3, t_f02_e4   ! shorter than others
+FMRC tef_short = te_f01, te_f02_short, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+ 
+! unequal forecast axis lengths
+FMRC tf_e2_short = t_f01_e2, t_f02_e2, t_f03_e2, t_f04_e2  ! shorter than others
+ENSEMBLE tfe_short = tf_e1, tf_e2_short, tf_e3, tf_e4, tf_e5
+ 
+! ensemble created with already-ensemble components
+ENSEMBLE te_f01 = t_f01_e1, t_f01_e2, t_f01_e3, t_f01_e4, t_f01_e5
+ENSEMBLE te_f03 = t_f03_e1, t_f03_e2, t_f03_e3, t_f03_e4, t_f03_e5
+ENSEMBLE te_f04 = t_f04_e1, t_f04_e2, t_f04_e3, t_f04_e4, t_f04_e5
+ENSEMBLE bad_ens = te_f01, te_f03, te_f04
+ 
+! fmrc created with already-fmrc components
+FMRC tf_e1 = t_f01_e1, t_f02_e1, t_f03_e1, t_f04_e1
+FMRC tf_e3 = t_f01_e3, t_f02_e3, t_f03_e3, t_f04_e3
+FMRC tf_e4 = t_f01_e4, t_f02_e4, t_f03_e4, t_f04_e4
+FMRC bad_fmrc = tf_e1, tf_e3, tf_e4
+ 
+set mode/last ignore
+ 
+CANCEL DATA/ALL
+ 
+GO bn_reset
+cancel mode verify
+! Add this to the gif benchmark tests
+! GO bn_hovmuller_overlays
+ 
+GO bn_reset
+cancel mode verify
+! Add this to the gif benchmark tests
+! GO bn_labels_on_taxis
+ 
+GO bn_reset
+cancel mode verify
+GO bn_dataset_qualifier
+! bn_dataset_qualifier
+! see ticket 2632
+! Test change from /D= to /DATASET= qualifier for LIST, PLOT, LOAD, etc
+! Various commands taken from other scripts.
+ 
+! LIST/DAT=
+use gt4d011
+use coads_climatology
+ 
+let nv = ..nvars
+let nd = ..ndims
+let vnames = ..varnames
+list/DAT=1 nv, nd
+             DATA SET: ./gt4d011.cdf
+             X: 1
+ Column  1: NV is ..NVARS
+ Column  2: ND is ..NDIMS
+                NV      ND
+I / *:     12.00000  21.00000
+list/DAT=1 vnames
+             VARIABLE : ..VARNAMES
+             FILENAME : gt4d011.cdf
+             SUBSET   : 12 points (X)
+ 1    /  1:"PS3DT2"
+ 2    /  2:"TEMP"  
+ 3    /  3:"SALT"  
+ 4    /  4:"PS3DU2"
+ 5    /  5:"U"     
+ 6    /  6:"V"     
+ 7    /  7:"PS3DW2"
+ 8    /  8:"W"     
+ 9    /  9:"PS2DU2"
+ 10   / 10:"TAUX"  
+ 11   / 11:"TAUY"  
+ 12   / 12:"PSI"   
+ 
+list/DAT=coads_climatology nv,nd
+             DATA SET: ./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
+             X: 1
+ Column  1: NV is ..NVARS
+ Column  2: ND is ..NDIMS
+                NV      ND
+I / *:     12.00000  21.00000
+ 
+! SET ATT/OUTPUT/DAT=
+! DEFINE ATT/OUTPUT/DAT=
+! CANCEL ATT/OUTPUT/DAT=
+can data/all
+use err491_attval
+use gt4d011
+set att/output/DATA=1 ..dt_internal
+define attribute/output/DATA=1 elev.newatt = 7
+save/clobber/file=a.nc/outtype=float elev[d=1]
+use a.nc
+sh att .
+     attributes for dataset: ./a.nc
+ ..history = FERRET V6.97 (beta/dbg) 11-May-16 
+ ..Conventions = CF-1.6 
+ ..dt_internal = 15
+sh att elev
+     attributes for dataset: ./a.nc
+ ELEV.missing_value = -32767
+ ELEV._FillValue = -32768
+ ELEV.long_name = Surface elevation 
+ ELEV.units = meter 
+ ELEV.scale_factor = 0.000274675
+ ELEV.add_offset = 0
+ ELEV.newatt = 7
+ ELEV.Ferret_Precision_Note = This variable written using Ferret was converted from SHORT to FLOAT 
+ ELEV.history = From err491_attval 
+can data a
+cancel attribute/output/DATASET=1  ..dt_internal
+cancel attribute/output/DATASET=1  elev.newatt
+save/clobber/file=a.nc/outtype=float elev[d=1]
+use a.nc
+sh att .
+     attributes for dataset: ./a.nc
+ ..history = FERRET V6.97 (beta/dbg) 11-May-16 
+ ..Conventions = CF-1.6 
+sh att elev
+     attributes for dataset: ./a.nc
+ ELEV.missing_value = -32767
+ ELEV._FillValue = -32768
+ ELEV.long_name = Surface elevation 
+ ELEV.units = meter 
+ ELEV.scale_factor = 0.000274675
+ ELEV.add_offset = 0
+ ELEV.Ferret_Precision_Note = This variable written using Ferret was converted from SHORT to FLOAT 
+ ELEV.history = From err491_attval 
+ 
+! LOAD/DAT=
+use coads_climatology
+use levitus_climatology
+ 
+load/DAT=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
+show grid
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid (G200)
+    GRID (G200)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX110)   LATITUDE           201 r   10S                  10N                 200 pts
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
+ normal    E
+ normal    F
+ 
+! LIST/DAT=, LET/DAT=,
+can dat/all
+use err491_attval
+use coads_climatology
+use levitus_climatology
+use ocean_atlas_temp
+use gt4d011
+ 
+let a = temp.units
+list/DAT=3 a
+             VARIABLE : TEMP.UNITS
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+        "DEG C"
+list/DAT=3 temp.history
+             VARIABLE : TEMP.HISTORY
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+        "From levitus_climatology"
+ 
+! PLOT, SHADE, FILL, CONTOUR, VECTOR, STAT
+! various plot and other action commands with /DATA
+ 
+let/DAT=2 temp = sst + 0*z[z=1:5:1]
+sh dat 2
+     currently SET data sets:
+    2> ./coads_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ ------------------------------
+ TEMP[D=coads_climatology] = SST + 0*Z[Z=1:5:1]
+ 
+plot/DATASET=2 sst[L=1,y=0,x=300:360]
+fill/DAT=2 sst[L=1,x=30:150,y=-60:0]
+contour/over/DATA=3 temp[Z=0]
+shade/DATA=2 sst[x=180,y=-10:10]
+vec/DAT=gt4d011/l=3 taux,tauy
+ 
+! STAT, LIST
+stat/DATASET=1 elev
+ 
+             Surface elevation
+             LONGITUDE: 135.5W(-135.5) to 135W(-135)
+             LATITUDE: 58.5912N to 59.4701N
+             Z:  N/A
+             T (day): 1.7837
+             E:  N/A
+             F:  N/A
+             DATA SET: ./err491_attval.cdf
+ 
+ Total # of data points: 4445 (35*127*1*1*1*1)
+ # flagged as bad  data: 3065
+ Minimum value: 2.9225
+ Maximum value: 3.0058
+ Mean    value: 2.9799 (unweighted average)
+ Standard deviation: 0.017437
+shade/DAT=1 elev
+list/DAT=1/x=-135.3/y=58.8 elev
+             VARIABLE : Surface elevation (meter)
+             DATA SET : K-Bay OAR3d model (200m)
+             FILENAME : err491_attval.cdf
+             LONGITUDE: 135.3W(-135.3) (interpolated)
+             LATITUDE : 58.8N (interpolated)
+             T (day)  : 1.7837
+          2.979394
+ 
+! POLYGON/DAT
+define axis/x=330:350:1/units=degrees_east xax10
+define axis/y=-10:10:1/units=degrees_north yax10
+ 
+let fsst = sst[l=3,gx=xax10,gy=yax10]
+let lon = xsequence(x[gx=xax10] + 0*y[gy=yax10])
+let lat = xsequence(0*x[gx=xax10] + y[gy=yax10])
+shade/pal=white/nokey/nolab/DATA=2 sst[l=1,x=300:310,y=-10:10]   ! Set up plot params for polymark.jnl
+go polymark poly/DATA=2/key/title="Polygon test", lon, lat, xsequence(fsst), square, 1.2
+ 
+ 
+! Commands that have another qualifier also starting with /D
+! LIST/DATASET= with /DEFLATE
+cancel data/all
+use levitus_climatology
+use gt4d011
+use coads_climatology
+list/form=cdf/ncformat=4/DEFLATE/file=a.nc/clobber/DATA=1 temp
+ 
+! PLOT/DASH with /DATA=
+plot/dash/x=180/z=0/DATASET=1 temp
+ 
+! VECTOR/FLOW/DATA=/DENSITY
+flow/DAT=2/den=3/L=3 taux,tauy
+ 
+GO bn_reset
+cancel mode verify
+GO bn_speedtest
+! bn_speedtest.jnl
+! issue large numbers of commands, timing with clock time
+can mode verify
+10K LET commands LET a = 0 takes  2.246  seconds
+Second 10K LET commands LET a = 0 takes  5.132  seconds
+5K LOAD with transform takes  6.807  seconds
+ 
+GO bn_reset
+cancel mode verify
+GO bn_show_noupcase
+! bn_show_noupcase.jnl
+! 1/2016 ticket 1796
+ 
+cancel mode upcase
+ 
+ 
+! Previously this mode acted only when saving to netCDf.
+! Now applies to SHOW commands of all sorts, as well as `return=*axis`
+ 
+ 
+ 
+! User variable with lowercase letters in the name
+ 
+DEFINE AXIS/t=1-jan-1999:31-jan-1999:1/units=days/t0=31-dec-1998 tday
+LET MyUpperLowerCaseVar = x[x=1:10] + t[gt=tday]
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     MyUpperLowerCaseVar = X[X=1:10] + T[GT=TDAY]
+show grid MyUpperLowerCaseVar
+    GRID (G204)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              9 pts
+ normal    Y
+ normal    Z
+ tday      TIME                31 r   01-JAN-1999 00:00    31-JAN-1999 00:00   full
+ normal    E
+ normal    F
+ 
+ 
+! Files have variable and axis names in mixed case.
+ 
+USE a1478.nc
+USE a_cartesian_bug1179.nc
+show data
+     currently SET data sets:
+    1> ./a1478.nc
+ name     title                             I         J         K         L         M         N
+ lat1_5_bnds
+                                           1:2       1:5       ...       ...       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+ 
+    2> ./a_cartesian_bug1179.nc  (default)
+ name     title                             I         J         K         L         M         N
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ 
+ 
+! Previously the RETURN= gave the capitalized axis names
+say `temp,return=zaxis`
+ !-> MESSAGE/CONTINUE zt
+zt
+say `temp,return=xaxis`
+ !-> MESSAGE/CONTINUE grid_x_T
+grid_x_T
+ 
+sh axis `temp,return=xaxis`
+ !-> sh axis grid_x_T
+ name       axis              # pts   start                end
+ grid_x_T  LONGITUDE            1 r   79E                  79E
+   Axis span (to cell edges) = 1
+sh axis/x `temp,return=xaxis`
+ !-> sh axis/x grid_x_T
+ name       axis              # pts   start                end
+ grid_x_T  LONGITUDE            1 r   79E                  79E
+   Axis span (to cell edges) = 1
+ 
+       I     X                   XBOX      XBOXLO
+       1>  79E                   1          78.5E
+ 
+! Define an output variable with some axes from each dataset.
+! (the variable definitions have been upcased. Beyond the scope of this fix...)
+ 
+LET/D=1 zvar = 2*temp[d=2]
+LET/D=2 newvar =  0*zvar[d=2] + olr[d=1]
+ 
+show data
+     currently SET data sets:
+    1> ./a1478.nc
+ name     title                             I         J         K         L         M         N
+ lat1_5_bnds
+                                           1:2       1:5       ...       ...       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+ ------------------------------
+ zvar[D=a1478] = 2*TEMP[D=2]
+ 
+    2> ./a_cartesian_bug1179.nc  (default)
+ name     title                             I         J         K         L         M         N
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ ------------------------------
+ newvar[D=a_cartesian_bug1179] = 0*ZVAR[D=2] + OLR[D=1]
+ 
+go bn_reset
+cancel mode verify
+ 
+ 
+! xml output
+ 
+USE a_cartesian_bug1179.nc
+ 
+say/quiet <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
+<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
+say/quiet <data>
+<data>
+ 
+show var/xml
+show 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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</axes>
+SHO AXIS/XML `temp,return=taxis`
+ !-> SHO AXIS/XML TIME17
+<axes>
+<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>
+ 
+! Define a dataset variable
+! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
+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">
+<title> </title>
+<var name="temp" />
+<var name="temp_180" />
+</dataset>
+</datasets>
+ 
+USE a1478.nc
+SHOW DATA/XML
+<datasets>
+<dataset name="./a_cartesian_bug1179.nc" default="false">
+<title> </title>
+<var name="temp" />
+<var name="temp_180" />
+</dataset>
+<dataset name="./a1478.nc" default="true">
+<title> </title>
+<var name="lat1_5_bnds" />
+<var name="olr" />
+</dataset>
+</datasets>
+SHO DATA/VAR/XML
+<datasets>
+<dataset name="./a_cartesian_bug1179.nc" default="false">
+<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>
+<var name="temp_180">
+<attribute name="definition" type="char">
+   <value><![CDATA[TEMP[X=79E:79E at AVE]]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[TEMP[X=79E:79E at AVE]]]></value>
+</attribute>
+<grid name="GHU1">
+<axes>
+<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>
+</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>
+</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>
+</axes>
+<dataset name="./a1478.nc" default="true">
+<title> </title>
+<var name="lat1_5_bnds">
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<grid name="GPY1">
+<axes>
+<xaxis>bnds</xaxis>
+<yaxis>lat1_5</yaxis>
+</axes>
+</grid>
+</var>
+<var name="olr">
+<attribute name="units" type="char">
+   <value><![CDATA[watts/m2]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[outgoing longwave radiation]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-999</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-999</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<grid name="GPY2">
+<axes>
+<xaxis>lon1_5</xaxis>
+<yaxis>lat1_5</yaxis>
+<taxis>time1478</taxis>
+</axes>
+</grid>
+</var>
+</dataset>
+</datasets>
+<axes>
+<axis name="time1478">
+<attribute name="direction" type="char">
+   <value><![CDATA[L]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>3</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>14782.5</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>15512.5</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[DOUBLE]]></value>
+</attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[T]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[time1478]]></value>
+</attribute>
+</axis>
+<axis name="lon1_5">
+<attribute name="direction" type="char">
+   <value><![CDATA[I]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>5</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>1.25</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>11.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[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <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>
+</attribute>
+<attribute name="length" type="short">
+   <value>5</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>-89.49438</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>-81.91011</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[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[lat1_5]]></value>
+</attribute>
+<attribute name="bounds" type="char">
+   <value>lat1_5_bnds</value>
+</attribute>
+</axis>
+</axes>
+ 
+! tests of SHOW VAR/XML for global variables.
+CAN DATA/ALL
+CAN VAR/ALL
+ 
+USE a1478
+USE a_cartesian_bug1179
+ 
+! Define a dataset variable
+LET/D=a1478 temp_20 temp[Z=0:20 at SUM]
+ 
+! Define a global variable
+LET t30 = temp[Z=0:30 at SUM]
+ 
+! Another variable, setting title, units, bad flag.
+LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral of SALT" salty = salt[Z=@IIN]
+ 
+ 
+! list tha variables
+SHO VAR/XML
+<global>
+<var name="t30">
+<attribute name="definition" type="char">
+   <value><![CDATA[TEMP[Z=0:30 at SUM]]]></value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<grid name="GHU1">
+<axes>
+<xaxis>grid_x_T</xaxis>
+<yaxis>grid_y_T</yaxis>
+<taxis>TIME</taxis>
+</axes>
+</grid>
+</var>
+</global>
+ 
+set mode/last upcase
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_letd_attributes
+! bn_letd_attributes.jnl
+! Allow for the same variable name defined with LET/D in multiple datasets.
+! See ticket 2352.  Previously for all user variables the
+! attribute information stored was in fake uvar-dataset = -1.
+! Now if the variable is a LET/D variable, it is stored with
+! the attribute information of the dataset.
+ 
+ 
+! See the variable defined with LET/D in SHOW DAT, SHOW DAT/ATT
+! and with SHOW ATT
+ 
+use coads_climatology
+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)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ ------------------------------
+ MYVAR[D=coads_climatology] = 1
+ 
+ 
+show dat/att 1
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        28   T       FERRET V4.91 (GUI)  1-Mar-99
+  
+(COADSX)               DOUBLE    units           CHAR        12   T       degrees_east
+                                 modulo          CHAR        1    T
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSX
+  
+(COADSY)               DOUBLE    units           CHAR        13   T       degrees_north
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSY
+  
+(TIME10)               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
+                                                 CHAR        4    F       TIME
+  
+ SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
+                                 _FillValue      FLOAT       1    T       -1.E+34
+                                 long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
+                                 history         CHAR        22   T       From coads_climatology
+                                 units           CHAR        5    T       Deg C
+  
+ ------------------------------
+ myvar[D=coads_climatology]      long_name       CHAR        11   T       coads myvar
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+show att myvar
+     attributes for dataset: ./coads_climatology.cdf
+ myvar.long_name = coads myvar 
+ myvar.missing_value = -1.E+34
+ 
+! If there is also a global variable of the same name, SHOW VAR
+! and SHOW ATT list results for both variables
+ 
+let/title="Global myvar" myvar = 0  ! global
+show att myvar
+     attributes for user-defined variables
+ myvar.long_name = Global myvar 
+ myvar.missing_value = -1.E+34
+ 
+! Now a LET/D variable with the same name on a second datset.
+! SHOW ATT lists results for the current datset and any global variables
+ 
+use levitus_climatology
+let/d=2/title="Levitus myvar" myvar = 2
+show dat 2
+     currently SET data sets:
+    2> ./levitus_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ ------------------------------
+ MYVAR[D=levitus_climatology] = 2
+ 
+show dat/att 2
+     currently SET data sets:
+    2> ./levitus_climatology.cdf  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        24   T       FERRET V5.22    5-Apr-01
+  
+(XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
+                                 modulo          CHAR        1    T
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
+  
+(YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
+  
+(ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
+                                 positive        CHAR        4    T       down
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
+  
+ TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
+                                 _FillValue      FLOAT       1    T       -1.E+10
+                                 long_name       CHAR        11   T       TEMPERATURE
+                                 history         CHAR        24   T       From levitus_climatology
+                                 units           CHAR        5    T       DEG C
+  
+ ------------------------------
+ myvar[D=levitus_climatology]    long_name       CHAR        13   T       Levitus myvar
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+show att myvar
+     attributes for user-defined variables
+ myvar.long_name = Global myvar 
+ myvar.missing_value = -1.E+34
+ 
+show att/d=1 myvar
+     attributes for dataset: ./coads_climatology.cdf
+ myvar.long_name = coads myvar 
+ myvar.missing_value = -1.E+34
+ 
+! ..varnames is the list of file variables. Now to include LET/D variables
+ 
+let vnames = ..varnames
+list vnames
+             VARIABLE : ..VARNAMES
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1:"TEMP" 
+ 2   / 2:"myvar"
+ 
+ 
+set data 1
+list vnames
+             VARIABLE : ..VARNAMES
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1:"SST"  
+ 2   / 2:"myvar"
+ 
+ 
+! CANCEL VAR deletes the variables from the linked-list attribute structure.
+cancel var/all
+show dat
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+    2> ./levitus_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ 
+ 
+show dat/att 2
+     currently SET data sets:
+    2> ./levitus_climatology.cdf
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        24   T       FERRET V5.22    5-Apr-01
+  
+(XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
+                                 modulo          CHAR        1    T
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
+  
+(YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
+  
+(ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
+                                 positive        CHAR        4    T       down
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
+  
+ TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
+                                 _FillValue      FLOAT       1    T       -1.E+10
+                                 long_name       CHAR        11   T       TEMPERATURE
+                                 history         CHAR        24   T       From levitus_climatology
+                                 units           CHAR        5    T       DEG C
+  
+ 
+! Redefine our LET/D variables
+ 
+use coads_climatology
+let/d=1/title="coads myvar" myvar = 1
+ 
+use levitus_climatology
+let/d=2/title="Levitus myvar" myvar = 2
+ 
+! Define new attributes on the file variable and LET/D variable
+! in the default dataset
+ 
+define att/output temp.my_new_att="temperature attrib"
+define att/output myvar.units="meters"
+show att temp
+     attributes for dataset: ./levitus_climatology.cdf
+ TEMP.missing_value = -1.E+10
+ TEMP._FillValue = -1.E+10
+ TEMP.long_name = TEMPERATURE 
+ TEMP.history = From levitus_climatology 
+ TEMP.units = DEG C 
+ TEMP.my_new_att = temperature attrib 
+show att myvar
+     attributes for dataset: ./levitus_climatology.cdf
+ myvar.long_name = Levitus myvar 
+ myvar.missing_value = -1.E+34
+ myvar.units = meters 
+ 
+! use /D= to define an attribute for a file-specific var
+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
+ myvar.long_name = coads myvar 
+ myvar.missing_value = -1.E+34
+ myvar.units = feet 
+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
+ myvar.long_name = Levitus myvar 
+ myvar.missing_value = -1.E+34
+ myvar.units = meters 
+ myvar.standard_name = None 
+save/clobber/file=a.nc myvar[d=2]
+sp ncdump -h a.nc >> all_ncdump.out
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_list_clim_axes
+! bn_list_clim_axes.jnl
+! *acm* 3/16
+! Show and list coordinates for climatological axes
+! that are pre-defined in Ferret
+ 
+show axis seasonal_reg
+ name       axis              # pts   start                end
+ SEASONAL_REG TIME              4mr   15-FEB 15:43         15-NOV 14:05
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 8765.82 (modulo length = axis span)
+show axis month*
+ name       axis              # pts   start                end
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ MONTH_REG TIME                12mr   16-JAN 06:00         16-DEC 01:20
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 8765.82 (modulo length = axis span)
+ MONTH_GREGORIAN TIME          12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ MONTH_NOLEAP TIME             12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = NOLEAP
+   Axis span (to cell edges) = 365 (modulo length = axis span)
+ MONTH_360_DAY TIME            12mr   16-JAN 00:00         16-DEC 00:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ MONTH_ALL_LEAP TIME           12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = ALL_LEAP
+   Axis span (to cell edges) = 366 (modulo length = axis span)
+ MONTH_JULIAN TIME             12mi   16-JAN 12:00         15-DEC 18:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 365.25 (modulo length = axis span)
+ MONTHT    TIME                24 r   16-JAN-1949 00:00    17-DEC-1950 01:30
+T0 = 15-JAN-1901
+   Axis span (to cell edges) = 17532
+show axis/t month_irreg
+ name       axis              # pts   start                end
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 02:54:36       28.2425    01-FEB 00:00:00         45.12125
+       3>  15-MAR 17:49:12       31         29-FEB 05:49:12         74.7425
+       4>  15-APR 05:49:12       30         31-MAR 05:49:12         105.2425
+       5>  15-MAY 17:49:12       31         30-APR 05:49:12         135.7425
+       6>  15-JUN 05:49:12       30         31-MAY 05:49:12         166.2425
+       7>  15-JUL 17:49:12       31         30-JUN 05:49:12         196.7425
+       8>  15-AUG 17:49:12       31         31-JUL 05:49:12         227.7425
+       9>  15-SEP 05:49:12       30         31-AUG 05:49:12         258.2425
+      10>  15-OCT 17:49:12       31         30-SEP 05:49:12         288.7425
+      11>  15-NOV 05:49:12       30         31-OCT 05:49:12         319.2425
+      12>  15-DEC 17:49:12       31         30-NOV 05:49:12         349.7425
+show axis/t month_gregorian
+ name       axis              # pts   start                end
+ MONTH_GREGORIAN TIME          12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 02:54:36       28.2425    01-FEB 00:00:00         45.12125
+       3>  15-MAR 17:49:12       31         29-FEB 05:49:12         74.7425
+       4>  15-APR 05:49:12       30         31-MAR 05:49:12         105.2425
+       5>  15-MAY 17:49:12       31         30-APR 05:49:12         135.7425
+       6>  15-JUN 05:49:12       30         31-MAY 05:49:12         166.2425
+       7>  15-JUL 17:49:12       31         30-JUN 05:49:12         196.7425
+       8>  15-AUG 17:49:12       31         31-JUL 05:49:12         227.7425
+       9>  15-SEP 05:49:12       30         31-AUG 05:49:12         258.2425
+      10>  15-OCT 17:49:12       31         30-SEP 05:49:12         288.7425
+      11>  15-NOV 05:49:12       30         31-OCT 05:49:12         319.2425
+      12>  15-DEC 17:49:12       31         30-NOV 05:49:12         349.7425
+show axis/t month_noleap
+ name       axis              # pts   start                end
+ MONTH_NOLEAP TIME             12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = NOLEAP
+   Axis span (to cell edges) = 365 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 00:00:00       28         01-FEB 00:00:00         45
+       3>  16-MAR 12:00:00       31         01-MAR 00:00:00         74.5
+       4>  16-APR 00:00:00       30         01-APR 00:00:00         105
+       5>  16-MAY 12:00:00       31         01-MAY 00:00:00         135.5
+       6>  16-JUN 00:00:00       30         01-JUN 00:00:00         166
+       7>  16-JUL 12:00:00       31         01-JUL 00:00:00         196.5
+       8>  16-AUG 12:00:00       31         01-AUG 00:00:00         227.5
+       9>  16-SEP 00:00:00       30         01-SEP 00:00:00         258
+      10>  16-OCT 12:00:00       31         01-OCT 00:00:00         288.5
+      11>  16-NOV 00:00:00       30         01-NOV 00:00:00         319
+      12>  16-DEC 12:00:00       31         01-DEC 00:00:00         349.5
+show axis/t month_360_day
+ name       axis              # pts   start                end
+ MONTH_360_DAY TIME            12mr   16-JAN 00:00         16-DEC 00:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 00:00:00       30         01-JAN 00:00:00         15
+       2>  16-FEB 00:00:00       30         01-FEB 00:00:00         45
+       3>  16-MAR 00:00:00       30         01-MAR 00:00:00         75
+       4>  16-APR 00:00:00       30         01-APR 00:00:00         105
+       5>  16-MAY 00:00:00       30         01-MAY 00:00:00         135
+       6>  16-JUN 00:00:00       30         01-JUN 00:00:00         165
+       7>  16-JUL 00:00:00       30         01-JUL 00:00:00         195
+       8>  16-AUG 00:00:00       30         01-AUG 00:00:00         225
+       9>  16-SEP 00:00:00       30         01-SEP 00:00:00         255
+      10>  16-OCT 00:00:00       30         01-OCT 00:00:00         285
+      11>  16-NOV 00:00:00       30         01-NOV 00:00:00         315
+      12>  16-DEC 00:00:00       30         01-DEC 00:00:00         345
+show axis/t month_all_leap
+ name       axis              # pts   start                end
+ MONTH_ALL_LEAP TIME           12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = ALL_LEAP
+   Axis span (to cell edges) = 366 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 12:00:00       29         01-FEB 00:00:00         45.5
+       3>  16-MAR 12:00:00       31         01-MAR 00:00:00         75.5
+       4>  16-APR 00:00:00       30         01-APR 00:00:00         106
+       5>  16-MAY 12:00:00       31         01-MAY 00:00:00         136.5
+       6>  16-JUN 00:00:00       30         01-JUN 00:00:00         167
+       7>  16-JUL 12:00:00       31         01-JUL 00:00:00         197.5
+       8>  16-AUG 12:00:00       31         01-AUG 00:00:00         228.5
+       9>  16-SEP 00:00:00       30         01-SEP 00:00:00         259
+      10>  16-OCT 12:00:00       31         01-OCT 00:00:00         289.5
+      11>  16-NOV 00:00:00       30         01-NOV 00:00:00         320
+      12>  16-DEC 12:00:00       31         01-DEC 00:00:00         350.5
+ 
+GO bn_reset
+cancel mode verify
+GO bn_climatology_attr
+! bn_climatology_attr.jnl
+! *acm* 3/16  See ticket 2278
+!
+! Add an attribute climatology_time_range when writing a computed
+! climatology, listing the month/year of the start and end of the
+! data used in computing it.
+ 
+! Define a monthly axis
+def ax/t=1-feb-1980:1-feb-2003/np=276/unit="day"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/T=1:5:1 dcoarse
+! entire input time range used
+let clim1 = tvar[gt=month_irreg at mod]
+save/file=a.nc/clobber clim1
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/T irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _T[GT=irr]
+! a subset of the time range used
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let clim2 = t_subset[gt=month_reg at mod]
+save/append/file=a.nc clim2
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T at AVE] is _T[GT=IRR] (regrid: 1 delta on T at AVE)
- Column  3: VAR[G=1 delta on T at BIN] is _T[GT=IRR] (regrid: 1 delta on T at BIN)
- Column  4: VAR[G=1 delta on T at NBIN] is _T[GT=IRR] (regrid: 1 delta on T at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.177778  1.150000  2.000000
-2   / 2:  2.000000  1.545000      ....  0.000000
-3   / 3:  3.000000  3.500000      ....  0.000000
-4   / 4:  4.000000  3.980000  3.500000  1.000000
-5   / 5:  5.000000  4.838462  4.850000  2.000000
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow clim1.climatology_time_range, clim2.climatology_time_range
+ "FEB-1980:FEB-2003" "FEB-1990:DEC-1999"
+ 
+ 
+! noleap axis
+def ax/edge/t=1-feb-1980:1-feb-2003/np=276/cal=noleap/unit="hour"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_noleap at mod]
+save/file=a.nc/clobber clim1
+ 
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let clim2 = t_subset[gt=month_noleap at mod]
+save/append/file=a.nc clim2
+ 
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow clim1.climatology_time_range, clim2.climatology_time_range
+ "FEB-1980:JAN-2003" "FEB-1990:DEC-1999"
  
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _T[gT=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T at AVE] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at AVE)
- Column  3: VAR[G=1 delta on T at BIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at BIN)
- Column  4: VAR[G=1 delta on T at NBIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.955556  1.650000  2.000000
-2   / 2:  2.000000  2.200000      ....  0.000000
-3   / 3:  3.000000      ....      ....  0.000000
-4   / 4:  4.000000      ....      ....  0.000000
-5   / 5:  5.000000  5.000000  5.000000  1.000000
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GT=dcoarse]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
-             DEST     VAR
-1   / 1:  1.000000      ....
-2   / 2:  2.000000      ....
-3   / 3:  3.000000      ....
-4   / 4:  4.000000      ....
-5   / 5:  5.000000  5.000000
+! If the expression compbines data from multiple ranges, indicate that
+ 
+def ax/t=1-feb-1980:1-feb-2003/np=276/unit="day"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
+let a = tvar[gt=month_reg at mod]
+ 
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let b = t_subset[gt=month_reg at mod]
+let c = a+b
+ 
+save/append/file=a.nc c
+ 
+can dat/all; use a.nc
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow c.climatology_time_range
+ "Multiple time ranges used"
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_plot_along
+! BN_PLOT_ALONG
+ 
+! *sh* 3/2016
+ 
+!  yes? GO bn_plot_along [debug]
+ 
+! exercise breaking up of plot command argument into lones along the
+! indicated direction
+ 
+DEFINE SYMBOL debugme = ($1"SAY continuing|debug>PAUSE")
+ !-> DEFINE SYMBOL debugme = SAY continuing
+ 
+! basic
+LET blocky10 = x[i=1:10]+y[j=1:10]
+PLOT/ALONG=x blocky10
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! degenerate case -- only a single line
+LET blocky1 = x[i=1:10]+y[j=1:1]
+PLOT/ALONG=x blocky1
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! number of lines exceeds key limit  (40 at time of this writing)
+! automatic decimation to keep within key limit
+LET blocky200 = x[i=1:10]+y[j=1:200]
+PLOT/ALONG=x blocky200
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey  - no longer limited to the number of keys that can be drawn
+LET blocky50 = x[i=1:10]+y[j=1:50]
+PLOT/ALONG=x/nokey blocky50
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey -- number of lines exceeds line limit  (200 at time of this writing)
+! automatic decimation to keep within line limit
+LET blocky201 = x[i=1:10]+y[j=1:201]
+PLOT/ALONG=x/nokey blocky201
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
  
-go bn_bin_regrid.sub E
-! Tests of @BIN and @NBIN regridding transforms
+! multi-dimensional
+LET blockxyz        = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:5]+100*z[k=1:30]
+LET blockxyz_little = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:3] +100*z[k=1:4]
+PLOT/ALONG=t blockxyz_little
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+PLOT/ALONG=t blockxyz         ! decimate to key  limit
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+PLOT/ALONG=t/nokey blockxyz   ! decimate to line limit
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/E=1:5:1 dcoarse
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/E irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _E[GE=irr]
+! ensemble application
+LET block = x[i=1:2]+10*y[j=1:3]+100*z[k=1:4]
+LET sin_block = SIN(T[l=1:100]/10)*block
+LET ens_sin_block = sin_block*( (20+_E[m=1:20])/20 )
+PLOT/ALONG=t ens_sin_block[i=1,j=2,k=3]
+ 
+GO bn_reset
+cancel mode verify
+GO bn_show_commands
+! bn_show_commands.jnl
+! Testing results for ticket 2078: SHOW COMMAND cmnd subcmnd
+! Also new SHOW COMMAND/BRIEF
+! 3/2016 *acm*
+!
+! When commands are highly abbreviated, which command/subcommand is
+! executed depends on the order in which they are listed in Ferret
+! internal data structures. Keep this output consistent if new commands
+! added or command list are reordered.
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E at AVE] is _E[GE=IRR] (regrid: 1 delta on E at AVE)
- Column  3: VAR[G=1 delta on E at BIN] is _E[GE=IRR] (regrid: 1 delta on E at BIN)
- Column  4: VAR[G=1 delta on E at NBIN] is _E[GE=IRR] (regrid: 1 delta on E at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.177778  1.150000  2.000000
-2   / 2:  2.000000  1.545000      ....  0.000000
-3   / 3:  3.000000  3.500000      ....  0.000000
-4   / 4:  4.000000  3.980000  3.500000  1.000000
-5   / 5:  5.000000  4.838462  4.850000  2.000000
+! Commands with subcommands
  
+sho command set
+ 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
+ SET VIEWPORT
+ SET EXPRSION
+ 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
+ SET MODE/LAST
+ SET MOVI/FILE/COMPRESS/LASER/START
+ SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
+      /LAYERZ/CURVILIN
+ SET GRID/SAVE/RESTORE
+ SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
+ SET MEMORY/SIZE
+ SET ATTRIBUT/TYPE/DATASET/OUTPUT/LIKE/QUIET
+ SET NCCACHE/SIZE/NELEMS/PREEMPT
+ SET REDIRECT/TEE/JOURNAL/FILE/APPEND/CLOBBER
+ SET GIFFILE
+sho command set w  ! SET WINDOW
+ SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE
+sho command set r  ! SET REGION
+ SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
+sho command set v  ! SET VIEWPORT
+ SET VIEWPORT
+sho command set e  ! SET EXPRSION
+ SET EXPRSION
+sho command set l  ! SET LIST
+ SET LIST/PRECISIO/FILE/FORMAT/APPEND/HEADING/NCFORMAT/ENDIAN/DEFLATE/SHUFFLE
+      /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
+sho command set m  ! SET MODE
+ SET MODE/LAST
+sho command set mov! SET MOVIE
+ SET MOVI/FILE/COMPRESS/LASER/START
+sho command set va ! SET VARIABLE
+ SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
+      /LAYERZ/CURVILIN
+sho command set g  ! SET GRID
+ SET GRID/SAVE/RESTORE
+sho command set a  ! SET AXIS
+ SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
+sho command set me ! SET MEMORY
+ SET MEMORY/SIZE
+sho command set at ! SET ATTRIBUTE
+ SET ATTRIBUT/TYPE/DATASET/OUTPUT/LIKE/QUIET
+sho command set n  ! SET NCCACHE
+ SET NCCACHE/SIZE/NELEMS/PREEMPT
+sho command set red! SET REDIRECT
+ SET REDIRECT/TEE/JOURNAL/FILE/APPEND/CLOBBER
+sho command set gi ! SET GIFFILE
+ SET GIFFILE
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _E[gE=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E at AVE] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at AVE)
- Column  3: VAR[G=1 delta on E at BIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at BIN)
- Column  4: VAR[G=1 delta on E at NBIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.955556  1.650000  2.000000
-2   / 2:  2.000000  2.200000      ....  0.000000
-3   / 3:  3.000000      ....      ....  0.000000
-4   / 4:  4.000000      ....      ....  0.000000
-5   / 5:  5.000000  5.000000  5.000000  1.000000
+sho command sho
+ SHOW/ALL
+ SHOW WINDOW/ALL
+ SHOW REGION/ALL
+ SHOW AXIS/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/XML/OUTFILE/APPEND/CLOBBER
+ SHOW EXPRSION/ALL
+ SHOW LIST/ALL
+ SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
+       /HIDDEN
+ SHOW MODE/ALL
+ SHOW MOVIE/ALL
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+ SHOW COMMANDS/ALL/BRIEF
+ SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
+ SHOW VIEWPORT/ALL
+ SHOW TRANFORM/ALL
+ SHOW ALIAS/ALL
+ SHOW SYMBOL/ALL
+ SHOW ATTRIBUT/ALL/DATASET/OUTPUT
+ SHOW NCCACHE
+ SHOW GIFFILE
+ SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
+ SHOW QUERIES/ALL
+sho command sho w  ! SHOW WINDOW
+ SHOW WINDOW/ALL
+sho command sho r  ! SHOW REGION
+ SHOW REGION/ALL
+sho command sho a  ! SHOW AXIS
+ SHOW AXIS/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/XML/OUTFILE/APPEND/CLOBBER
+sho command sho e  ! SHOW EXPRSTION
+ SHOW EXPRSION/ALL
+sho command sho l  ! SHOW LIST
+ SHOW LIST/ALL
+sho command sho d  ! SHOW DATA
+ SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
+       /HIDDEN
+sho command sho m  ! SHOW MODE
+ SHOW MODE/ALL
+sho command sho mov! SHOW MOVIE
+ SHOW MOVIE/ALL
+sho command sho v  ! SHOW VARIABLE
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+sho command sho c  ! SHOW COMMANDS
+ SHOW COMMANDS/ALL/BRIEF
+sho command sho me ! SHOW MEMORY
+ SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+sho command sho g  ! SHOW GRID
+ SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
+sho command sho vi ! SHOW VIEWPORT
+ SHOW VIEWPORT/ALL
+sho command sho t  ! SHOW TRANSFORM
+ SHOW TRANFORM/ALL
+sho command sho al ! SHOW ALIAS
+ SHOW ALIAS/ALL
+sho command sho s  ! SHOW SYMBOL
+ SHOW SYMBOL/ALL
+sho command sho at ! SHOW ATTRIBUTE
+ SHOW ATTRIBUT/ALL/DATASET/OUTPUT
+sho command sho n  ! SHOW NCCACHE
+ SHOW NCCACHE
+sho command sho gi ! SHOW GIFFILE
+ SHOW GIFFILE
+sho command sho f  ! SHOW FUNCTION
+ SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
+sho command sho q  ! SHOW QUERIES
+ SHOW QUERIES/ALL
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GE=dcoarse]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
-             DEST     VAR
-1   / 1:  1.000000      ....
-2   / 2:  2.000000      ....
-3   / 3:  3.000000      ....
-4   / 4:  4.000000      ....
-5   / 5:  5.000000  5.000000
+sho command can
+ CANCEL
+ CANCEL WIND/ALL
+ CANCEL REGION/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F
+ CANCEL MEMORY/ALL/TEMPORY/PERMANT
+ CANCEL EXPRSION/ALL
+ CANCEL LIST/ALL/PRECISIO/FILE/FORMAT/HEADING/APPEND/OUTTYPE
+ CANCEL DATA/ALL/NOERROR
+ CANCEL MODE
+ CANCEL MOVIE/ALL
+ CANCEL VIEWPORT
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
+ CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
+ CANCEL GRID
+ CANCEL ATTRIBUT/OUTPUT/DATASET
+ CANCEL REDIRECT
+ CANCEL ALIAS/ALL
+ CANCEL SYMBOL/ALL
+ CANCEL NCCACHE
+sho command can w  ! CANCEL WINDOW
+ CANCEL WIND/ALL
+sho command can r  ! CANCEL REGION
+ CANCEL REGION/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F
+sho command can m  ! CANCEL MEMORY
+ CANCEL MEMORY/ALL/TEMPORY/PERMANT
+sho command can e  ! CANCEL EXPRSION
+ CANCEL EXPRSION/ALL
+sho command can l  ! CANCEL LIST
+ CANCEL LIST/ALL/PRECISIO/FILE/FORMAT/HEADING/APPEND/OUTTYPE
+sho command can d  ! CANCEL DATA
+ CANCEL DATA/ALL/NOERROR
+sho command can mo ! CANCEL MODE
+ CANCEL MODE
+sho command can mov! CANCEL MOVIE
+ CANCEL MOVIE/ALL
+sho command can v  ! CANCEL VIEWPORT
+ CANCEL VIEWPORT
+sho command can va ! CANCEL VARIABLE
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
+sho command can a  ! CANCEL AXIS
+ CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
+sho command can g  ! CANCEL GRID
+ CANCEL GRID
+sho command can at ! CANCEL ATTRIBUTE
+ CANCEL ATTRIBUT/OUTPUT/DATASET
+sho command can red! CANCEL REDIRECT
+ CANCEL REDIRECT
+sho command can al ! CANCEL ALIAS
+ CANCEL ALIAS/ALL
+sho command can s  ! CANCEL SYMBOL
+ CANCEL SYMBOL/ALL
+sho command can n  ! CANCEL NCCACHE
+ CANCEL NCCACHE
  
-go bn_bin_regrid.sub F
-! Tests of @BIN and @NBIN regridding transforms
+sho command def
+ DEFINE
+ DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
+         /DL/DM/DN
+ DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
+ DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
+ DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+ DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
+ DEFINE ALIAS
+ DEFINE SYMBOL
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
+ DEFINE PYFUNC/NAME
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
+sho command def r  ! DEFINE REGION
+ DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
+         /DL/DM/DN
+sho command def g  ! DEFINE GRID
+ DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
+sho command def v  ! DEFINE VARIABLE
+ DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
+sho command def a  ! DEFINE AXIS
+ DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+sho command def vi ! DEFINE VIEWPORT
+ DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
+sho command def al ! DEFINE ALIAS
+ DEFINE ALIAS
+sho command def s  ! DEFINE SYMBOL
+ DEFINE SYMBOL
+sho command def at ! DEFINE ATTRIBUTE
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
+sho command def P  ! DEFINE PYFUNC
+ DEFINE PYFUNC/NAME
+sho command def d  ! DEFINE DATA
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+sho command def an ! DEFINE ANNOTATE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/F=1:5:1 dcoarse
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/F irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _F[GF=irr]
+! Also new SHOW COMMAND/BRIEF
+! Single commands, abbreviated.
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F at AVE] is _F[GF=IRR] (regrid: 1 delta on F at AVE)
- Column  3: VAR[G=1 delta on F at BIN] is _F[GF=IRR] (regrid: 1 delta on F at BIN)
- Column  4: VAR[G=1 delta on F at NBIN] is _F[GF=IRR] (regrid: 1 delta on F at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.177778  1.150000  2.000000
-2   / 2:  2.000000  1.545000      ....  0.000000
-3   / 3:  3.000000  3.500000      ....  0.000000
-4   / 4:  4.000000  3.980000  3.500000  1.000000
-5   / 5:  5.000000  4.838462  4.850000  2.000000
+sho command/brief a
+ ANNOTATE
+sho command/brief c
+ CANCEL
+ CANCEL WIND
+ CANCEL REGION
+ CANCEL MEMORY
+ CANCEL EXPRSION
+ CANCEL LIST
+ CANCEL DATA
+ CANCEL MODE
+ CANCEL MOVIE
+ CANCEL VIEWPORT
+ CANCEL VARIABLE
+ CANCEL AXIS
+ CANCEL GRID
+ CANCEL ATTRIBUT
+ CANCEL REDIRECT
+ CANCEL ALIAS
+ CANCEL SYMBOL
+ CANCEL NCCACHE
+sho command/brief ca
+ CANCEL
+ CANCEL WIND
+ CANCEL REGION
+ CANCEL MEMORY
+ CANCEL EXPRSION
+ CANCEL LIST
+ CANCEL DATA
+ CANCEL MODE
+ CANCEL MOVIE
+ CANCEL VIEWPORT
+ CANCEL VARIABLE
+ CANCEL AXIS
+ CANCEL GRID
+ CANCEL ATTRIBUT
+ CANCEL REDIRECT
+ CANCEL ALIAS
+ CANCEL SYMBOL
+ CANCEL NCCACHE
+sho command/brief co
+ CONTOUR
+sho command/brief d
+ DEFINE
+ DEFINE REGION
+ DEFINE GRID
+ DEFINE VARIABLE
+ DEFINE AXIS
+ DEFINE VIEWPORT
+ DEFINE ALIAS
+ DEFINE SYMBOL
+ DEFINE ATTRIBUT
+ DEFINE PYFUNC
+ DEFINE DATA
+ DEFINE ANNOTATI
+sho command/brief e
+ EXIT
+sho command/brief el
+ ELSE
+sho command/brief en
+ ENDIF
+sho command/brief ex
+ EXIT
+sho command/brief f
+ FRAME
+sho command/brief h
+ HELP
+sho command/brief h
+ HELP
+sho command/brief i
+ IF
+sho command/brief l
+ LIST
+sho command/brief li
+ LIST
+sho command/brief lo
+ LOAD
+sho command/brief m
+ MESSAGE
+sho command/brief p
+ PLOT
+sho command/brief pl
+ PLOT
+sho command/brief po
+ POLYGON
+sho command/brief pp
+ PPLUS
+sho command/brief q
+ QUERY
+sho command/brief r
+ REPEAT
+sho command/brief s
+ SET
+ SET WINDOW
+ SET REGION
+ SET VIEWPORT
+ SET EXPRSION
+ SET LIST
+ SET DATA
+ SET MODE
+ SET MOVI
+ SET VARIABLE
+ SET GRID
+ SET AXIS
+ SET MEMORY
+ SET ATTRIBUT
+ SET NCCACHE
+ SET REDIRECT
+ SET GIFFILE
+sho command/brief se
+ SET
+ SET WINDOW
+ SET REGION
+ SET VIEWPORT
+ SET EXPRSION
+ SET LIST
+ SET DATA
+ SET MODE
+ SET MOVI
+ SET VARIABLE
+ SET GRID
+ SET AXIS
+ SET MEMORY
+ SET ATTRIBUT
+ SET NCCACHE
+ SET REDIRECT
+ SET GIFFILE
+sho command/brief sh
+ SHOW
+ SHOW WINDOW
+ SHOW REGION
+ SHOW AXIS
+ SHOW EXPRSION
+ SHOW LIST
+ SHOW DATA
+ SHOW MODE
+ SHOW MOVIE
+ SHOW VARIABLE
+ SHOW COMMANDS
+ SHOW MEMORY
+ SHOW GRID
+ SHOW VIEWPORT
+ SHOW TRANFORM
+ SHOW ALIAS
+ SHOW SYMBOL
+ SHOW ATTRIBUT
+ SHOW NCCACHE
+ SHOW GIFFILE
+ SHOW FUNCTION
+ SHOW QUERIES
+sho command/brief sp
+ SPAWN
+sho command/brief st
+ STAT
+sho command/brief u
+ USER
+sho command/brief v
+ VECTOR
  
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _F[gF=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F at AVE] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at AVE)
- Column  3: VAR[G=1 delta on F at BIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at BIN)
- Column  4: VAR[G=1 delta on F at NBIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.955556  1.650000  2.000000
-2   / 2:  2.000000  2.200000      ....  0.000000
-3   / 3:  3.000000      ....      ....  0.000000
-4   / 4:  4.000000      ....      ....  0.000000
-5   / 5:  5.000000  5.000000  5.000000  1.000000
+! All the commands, no subcommands, no qualifiers
+SHOW COMMAND/BRIEF
+ Commands in Program FERRET (beta/dbg) version6.97:
+ SET
+ SHOW
+ CANCEL
+ CONTOUR
+ LIST
+ PLOT
+ GO
+ HELP
+ LOAD
+ DEFINE
+ EXIT
+ MESSAGE
+ VECTOR
+ PPLUS
+ FRAME
+ REPEAT
+ STAT
+ SHADE
+ SPAWN
+ USER
+ WIRE
+ QUERY
+ IF
+ ELSE
+ ELIF
+ ENDIF
+ POLYGON
+ ANNOTATE
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GF=dcoarse]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
-             DEST     VAR
-1   / 1:  1.000000      ....
-2   / 2:  2.000000      ....
-3   / 3:  3.000000      ....
-4   / 4:  4.000000      ....
-5   / 5:  5.000000  5.000000
+ Use SHOW ALIAS to see alternative command names
+ 
+! With a command, just show subcommands, no qualifiers
+SHOW COMMAND/BRIEF sho
+ SHOW
+ SHOW WINDOW
+ SHOW REGION
+ SHOW AXIS
+ SHOW EXPRSION
+ SHOW LIST
+ SHOW DATA
+ SHOW MODE
+ SHOW MOVIE
+ SHOW VARIABLE
+ SHOW COMMANDS
+ SHOW MEMORY
+ SHOW GRID
+ SHOW VIEWPORT
+ SHOW TRANFORM
+ SHOW ALIAS
+ SHOW SYMBOL
+ SHOW ATTRIBUT
+ SHOW NCCACHE
+ SHOW GIFFILE
+ SHOW FUNCTION
+ SHOW QUERIES
+ 
+! With a command and subcommand, no qualifiers
+SHOW COMMAND/BRIEF sho da
+ SHOW DATA
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_plot_decimate
+! BN_PLOT_SKIP
+ 
+! *acm* 3/2016
+ 
+!  yes? GO bn_plot_skip [debug]
+ 
+! based on PLOT/ALONG tests.
+! PLOT/SKIP=n for /SYMBOL plots makes only every SKIP symbol.
+ 
+DEFINE SYMBOL debugme = ($1"SAY continuing|debug>PAUSE")
+ !-> DEFINE SYMBOL debugme = SAY continuing
+ 
+DEFINE SYMBOL deci = 2
+ 
+! basic
+LET blocky10 = x[i=1:10]+y[j=1:10]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky10
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x blocky10
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! degenerate case -- only a single line
+LET blocky1 = x[i=1:10]+y[j=1:1]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky1
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x blocky1
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! number of lines exceeds key limit  (40 at time of this writing)
+! automatic decimation to keep within key limit
+LET blocky200 = x[i=1:10]+y[j=1:200]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky200
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x blocky200
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey  - no longer limited to the number of keys that can be drawn
+LET blocky50 = x[i=1:10]+y[j=1:50]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x/nokey blocky50
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x/nokey blocky50
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey -- number of lines exceeds line limit  (200 at time of this writing)
+! automatic decimation to keep within line limit
+LET blocky201 = x[i=1:10]+y[j=1:201]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x/nokey blocky201
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x/nokey blocky201
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! multi-dimensional
+LET blockxyz        = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:5]+100*z[k=1:30]
+LET blockxyz_little = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:3] +100*z[k=1:4]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t blockxyz_little
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=t blockxyz_little
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t blockxyz         ! decimate to key  limit
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=t blockxyz
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+define symbol deci = 5
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t/nokey blockxyz   ! decimate to line limit
+ !-> PLOT/SYM/LINE/SKIP=5/ALONG=t/nokey blockxyz
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+ 
+! ensemble application
+! Here the symbols appear on lines automatically for distinguishing
+! large number of lines. /SKIP works without explicitly saying /SYM
+LET block = x[i=1:2]+10*y[j=1:3]+100*z[k=1:4]
+LET sin_block = SIN(T[l=1:100]/10)*block
+LET ens_sin_block = sin_block*( (20+_E[m=1:20])/20 )
+PLOT/SKIP=($deci)/ALONG=t ens_sin_block[i=1,j=2,k=3]
+ !-> PLOT/SKIP=5/ALONG=t ens_sin_block[i=1,j=2,k=3]
+ 
+GO bn_reset
+cancel mode verify
+GO bn_auto_tprec
+! bn_auto_tprec.jnl
+! See ticket 2405
+! Time labels on plots always just get the precision from MODE CALENDAR
+! Instead, use the same logic as is used for text labels, automatically adjust.
+! (later make this the default setting??)
+ 
+set mode calendar:auto
+show mode calendar
+      MODE            STATE        ARGUMENT
+      CALENDAR         SET         auto
+ 
+use levitus_climatology
+let ttim = temp + t[gt=tax]
+ 
+!  Varies in seconds
+define axis/t/units="seconds"/t0="1-jan-2001" tax = {1,12,13,14,16,17,18,19,24}
+ 
+list/k=1/x=60/y=-40 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 9 points (TIME)
+             LONGITUDE: 60E (interpolated)
+             LATITUDE : 40S (interpolated)
+             DEPTH (m): 0
+ 01-JAN-2001 00:00:01 / 1:  15.53125
+ 01-JAN-2001 00:00:12 / 2:  26.53125
+ 01-JAN-2001 00:00:13 / 3:  27.53125
+ 01-JAN-2001 00:00:14 / 4:  28.53125
+ 01-JAN-2001 00:00:16 / 5:  30.53125
+ 01-JAN-2001 00:00:17 / 6:  31.53125
+ 01-JAN-2001 00:00:18 / 7:  32.53125
+ 01-JAN-2001 00:00:19 / 8:  33.53125
+ 01-JAN-2001 00:00:24 / 9:  38.53125
+shade/title="seconds"/l=9/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 00:00:24"
+ 
+!  Varies in minutes, fractions of minutes
+define axis/t/units="minutes"/t0="1-jan-2001" tax = {1,1.1,12,13,14,16,17,18.5,19,24}
+list/k=1/x=60/y=-40 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 10 points (TIME)
+             LONGITUDE: 60E (interpolated)
+             LATITUDE : 40S (interpolated)
+             DEPTH (m): 0
+ 01-JAN-2001 00:01:00 /  1:  15.53125
+ 01-JAN-2001 00:01:06 /  2:  15.63125
+ 01-JAN-2001 00:12:00 /  3:  26.53125
+ 01-JAN-2001 00:13:00 /  4:  27.53125
+ 01-JAN-2001 00:14:00 /  5:  28.53125
+ 01-JAN-2001 00:16:00 /  6:  30.53125
+ 01-JAN-2001 00:17:00 /  7:  31.53125
+ 01-JAN-2001 00:18:30 /  8:  33.03125
+ 01-JAN-2001 00:19:00 /  9:  33.53125
+ 01-JAN-2001 00:24:00 / 10:  38.53125
+shade/title="minutes/fractions of minutes"/l=9/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 00:19:00"
+ 
+! varies in hours, fractions of hours
+define axis/t/units="hour"/t0="1-jan-2001" tax = {1,1.1,12.1,12.2,14,16,17,18.5,19,24}
+list/k=1/x=60/y=-40 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 10 points (TIME)
+             LONGITUDE: 60E (interpolated)
+             LATITUDE : 40S (interpolated)
+             DEPTH (m): 0
+ 01-JAN-2001 01:00:00 /  1:  15.53125
+ 01-JAN-2001 01:06:00 /  2:  15.63125
+ 01-JAN-2001 12:06:00 /  3:  26.63125
+ 01-JAN-2001 12:12:00 /  4:  26.73125
+ 01-JAN-2001 14:00:00 /  5:  28.53125
+ 01-JAN-2001 16:00:00 /  6:  30.53125
+ 01-JAN-2001 17:00:00 /  7:  31.53125
+ 01-JAN-2001 18:30:00 /  8:  33.03125
+ 01-JAN-2001 19:00:00 /  9:  33.53125
+ 02-JAN-2001 00:00:00 / 10:  38.53125
+shade/title="hours/fractions of hours"/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 12:06"
+ 
+! 6-hour even spacing
+define axis/t=1-jan-2001:8-jan-2001:6/units="hour"/t0="1-jan-2001" tax
+list/k=1/x=60/y=-40/L=1:6 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 6 points (TIME)
+             LONGITUDE: 60E (interpolated)
+             LATITUDE : 40S (interpolated)
+             DEPTH (m): 0
+ 01-JAN-2001 00:00 / 1:  14.53125
+ 01-JAN-2001 06:00 / 2:  20.53125
+ 01-JAN-2001 12:00 / 3:  26.53125
+ 01-JAN-2001 18:00 / 4:  32.53125
+ 02-JAN-2001 00:00 / 5:  38.53125
+ 02-JAN-2001 06:00 / 6:  44.53125
+shade/title="hours "/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 12:00"
+ 
+! Reynolds SST weekly, even 7-day spacing
+use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
+list/x=180/y=0/l=20:25 fsst
+             VARIABLE : Filtered Weekly SST Means (deg C)
+             DATA SET : Reynolds Optimum Interpolation Weekly SST Analysis
+             FILENAME : reynolds_sst_wk.nc
+             FILEPATH : http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+             SUBSET   : 6 points (TIME)
+             LONGITUDE: 180E (interpolated)
+             LATITUDE : 0 (interpolated)
+ 18-MAY-1982 00 / 20:  29.77536
+ 25-MAY-1982 00 / 21:  29.79982
+ 01-JUN-1982 00 / 22:  29.82545
+ 08-JUN-1982 00 / 23:  29.95250
+ 15-JUN-1982 00 / 24:  30.14473
+ 22-JUN-1982 00 / 25:  30.27330
+shade/title="7-day axis"/l=30/x=60:70/y=-40:-30 fsst; sh sym  lab($labnum_t)
+ !-> sh sym  lab1
+LAB1 = "TIME : 27-JUL-1982 00"
+ 
+! monthly climatology
+use TAO_SST_clim
+list/x=180/y=0 sst_clim
+             VARIABLE : Climatological TAO SST, 1992-1997 (Degrees C)
+             FILENAME : TAO_SST_clim.cdf
+             SUBSET   : 12 points (TIME)
+             LONGITUDE: 180E
+             LATITUDE : 0
+                      180E    
+                        5
+ 16-JAN      /  1:  28.47123
+ 15-FEB      /  2:  28.02188
+ 17-MAR      /  3:  28.06427
+ 16-APR      /  4:  28.62687
+ 16-MAY      /  5:  28.78929
+ 16-JUN      /  6:  28.88602
+ 16-JUL      /  7:  29.11417
+ 16-AUG      /  8:  29.23706
+ 15-SEP      /  9:  29.15225
+ 16-OCT      / 10:  29.05856
+ 15-NOV      / 11:  28.97187
+ 16-DEC      / 12:  28.88326
+shade/title="monthly climatology"/k=1/l=5 sst_clim; sh sym  lab($labnum_t)
+ !-> sh sym  lab1
+LAB1 = "TIME : 16-MAY"
+ 
+! truemonth
+use truemonth
+list/x=180/y=0/l=20:25 var
+             VARIABLE : COS(T[GT=TRUEMONTH]/100)
+             FILENAME : truemonth.nc
+             SUBSET   : 6 points (TIME)
+ 16-AUG-1951 / 20:  0.9987782
+ 16-SEP-1951 / 21:  0.9378386
+ 16-OCT-1951 / 22:  0.7903357
+ 16-NOV-1951 / 23:  0.5698709
+ 16-DEC-1951 / 24:  0.2968155
+ 16-JAN-1952 / 25: -0.0086413
+ 
+let ttim = temp[d=levitus_climatology] + var
+shade/title="true-month axis"/L=32/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 16-AUG-1952"
+ 
+set mode/last calendar
+ 
+! Is the default precision of minutes restored?
+use truemonth
+let ttim = temp[d=levitus_climatology] + var
+shade/title="true-month axis"/L=32/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 16-AUG-1952 12:00"
  
+!GO bn_reset
+!GO bn_warn_subspan
  
 !  *********** Always do a bn_reset  ***********
 !  *********** make sure things clean up well **
@@ -86831,9 +95019,9 @@ yes? ! run bn_all_ef tests
 yes? 
 yes? GO bn_all_ef
  	NOAA/PMEL TMAP
- 	FERRET v6.951 (beta)
- 	Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
- 	17-Nov-15 09:28     
+ 	FERRET v6.97 (beta/dbg)
+ 	Linux 2.6.18-409.el5PAE 32-bit - 05/11/16
+ 	11-May-16 16:14     
 
 SET MODE VERIFY
 ! bn_all_ef.jnl
@@ -87687,7 +95875,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87712,7 +95900,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87736,7 +95924,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87775,7 +95963,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87810,7 +95998,7 @@ variables:
 		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87851,7 +96039,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87908,7 +96096,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87965,7 +96153,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88020,7 +96208,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88068,7 +96256,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88162,7 +96350,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88232,7 +96420,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88283,7 +96471,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88358,7 +96546,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88385,7 +96573,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
 data:
@@ -88409,7 +96597,7 @@ variables:
 		A:history = "From x" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		: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:
@@ -88436,11 +96624,11 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 bn_bounds_defineax.jnl --- N+1 def of bounds.
 netcdf irrxzt {
 dimensions:
@@ -88471,7 +96659,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88543,7 +96731,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88587,7 +96775,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88629,7 +96817,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88737,38 +96925,38 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
 netcdf a {
 dimensions:
-	Xc3_3 = 1 ;
-	Yc2_4 = 3 ;
+	Xc = 1 ;
+	Yc = 3 ;
 	bnds = 2 ;
 	Ti = UNLIMITED ; // (1 currently)
 variables:
-	double Xc3_3(Xc3_3) ;
-		Xc3_3:long_name = "Longitude" ;
-		Xc3_3:units = "degrees_east" ;
-		Xc3_3:modulo = 360. ;
-		Xc3_3:point_spacing = "even" ;
-		Xc3_3:axis = "X" ;
-		Xc3_3:standard_name = "longitude" ;
-	double Yc2_4(Yc2_4) ;
-		Yc2_4:long_name = "Latitude" ;
-		Yc2_4:units = "degrees_north" ;
-		Yc2_4:point_spacing = "uneven" ;
-		Yc2_4:axis = "Y" ;
-		Yc2_4:standard_name = "latitude" ;
-		Yc2_4:bounds = "Yc2_4_bnds" ;
-	double Yc2_4_bnds(Yc2_4, bnds) ;
+	double Xc(Xc) ;
+		Xc:long_name = "Longitude" ;
+		Xc:units = "degrees_east" ;
+		Xc:modulo = 360. ;
+		Xc:point_spacing = "even" ;
+		Xc:axis = "X" ;
+		Xc:standard_name = "longitude" ;
+	double Yc(Yc) ;
+		Yc:long_name = "Latitude" ;
+		Yc:units = "degrees_north" ;
+		Yc:point_spacing = "uneven" ;
+		Yc:axis = "Y" ;
+		Yc:standard_name = "latitude" ;
+		Yc:bounds = "Yc_bnds" ;
+	double Yc_bnds(Yc, bnds) ;
 	double Ti(Ti) ;
 		Ti:long_name = "Time" ;
 		Ti:units = "day" ;
 		Ti:axis = "T" ;
 		Ti:standard_name = "time" ;
-	short Elev(Ti, Yc2_4, Xc3_3) ;
+	short Elev(Ti, Yc, Xc) ;
 		Elev:missing_value = -32767s ;
 		Elev:_FillValue = -32768s ;
 		Elev:long_name = "Surface elevation" ;
@@ -88778,7 +96966,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -88801,7 +96989,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88827,7 +97015,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88847,7 +97035,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88868,7 +97056,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88911,7 +97099,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -88951,7 +97139,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -88989,40 +97177,40 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
 netcdf a {
 dimensions:
-	AX042 = 5 ;
+	AX047 = 5 ;
 variables:
-	double AX042(AX042) ;
-		AX042:point_spacing = "even" ;
-		AX042:axis = "X" ;
-	float A1(AX042) ;
+	double AX047(AX047) ;
+		AX047:point_spacing = "even" ;
+		AX047:axis = "X" ;
+	float A1(AX047) ;
 		A1:missing_value = -1.e+34f ;
 		A1:_FillValue = -1.e+34f ;
 		A1:long_name = "A1" ;
 		A1:three = 1.f, 2.f, 3.f ;
 		A1:history = "From EZ.DAT" ;
-	float A2(AX042) ;
+	float A2(AX047) ;
 		A2:missing_value = -1.e+34f ;
 		A2:_FillValue = -1.e+34f ;
 		A2:long_name = "A2" ;
 		A2:history = "From EZ.DAT" ;
-	float A3(AX042) ;
+	float A3(AX047) ;
 		A3:missing_value = -1.e+34f ;
 		A3:_FillValue = -1.e+34f ;
 		A3:long_name = "A3" ;
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
- AX042 = 1, 2, 3, 4, 5 ;
+ AX047 = 1, 2, 3, 4, 5 ;
 
  A1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
 
@@ -89033,29 +97221,29 @@ data:
 bn_attributes.jnl --- 15 attributes of data from delimited data.
 netcdf a {
 dimensions:
-	AX009 = 5 ;
+	AX018 = 5 ;
 variables:
-	double AX009(AX009) ;
-		AX009:point_spacing = "even" ;
-		AX009:axis = "X" ;
-	float V1(AX009) ;
+	double AX018(AX018) ;
+		AX018:point_spacing = "even" ;
+		AX018:axis = "X" ;
+	float V1(AX018) ;
 		V1:missing_value = -1.e+34f ;
 		V1:_FillValue = -1.e+34f ;
 		V1:long_name = "V1" ;
 		V1:strval = "2" ;
 		V1:history = "From EZ.DAT" ;
-	float V4(AX009) ;
+	float V4(AX018) ;
 		V4:missing_value = -1.e+34f ;
 		V4:_FillValue = -1.e+34f ;
 		V4:long_name = "V4" ;
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
- AX009 = 1, 2, 3, 4, 5 ;
+ AX018 = 1, 2, 3, 4, 5 ;
 
  V1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
 
@@ -89077,7 +97265,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89123,7 +97311,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -89162,7 +97350,7 @@ dimensions:
 	YC = 127 ;
 	bnds = 2 ;
 	TI = UNLIMITED ; // (1 currently)
-	PSXT1100_100 = 1 ;
+	PSXT100_100 = 1 ;
 	PSYT135_56 = 22 ;
 	PSZT11_1 = 1 ;
 	TIME11 = 25 ;
@@ -89195,12 +97383,12 @@ variables:
 		ELEV:scale_factor = 0.000274674967954587 ;
 		ELEV:add_offset = 0. ;
 		ELEV:history = "From err491_attval" ;
-	double PSXT1100_100(PSXT1100_100) ;
-		PSXT1100_100:units = "degrees_east" ;
-		PSXT1100_100:point_spacing = "even" ;
-		PSXT1100_100:modulo = 360. ;
-		PSXT1100_100:axis = "X" ;
-		PSXT1100_100:standard_name = "longitude" ;
+	double PSXT100_100(PSXT100_100) ;
+		PSXT100_100:units = "degrees_east" ;
+		PSXT100_100:point_spacing = "even" ;
+		PSXT100_100:modulo = 360. ;
+		PSXT100_100:axis = "X" ;
+		PSXT100_100:standard_name = "longitude" ;
 	double PSYT135_56(PSYT135_56) ;
 		PSYT135_56:units = "degrees_north" ;
 		PSYT135_56:point_spacing = "uneven" ;
@@ -89222,7 +97410,7 @@ variables:
 		TIME11:point_spacing = "even" ;
 		TIME11:axis = "T" ;
 		TIME11:standard_name = "time" ;
-	float TEMP(TIME11, PSZT11_1, PSYT135_56, PSXT1100_100) ;
+	float TEMP(TIME11, PSZT11_1, PSYT135_56, PSXT100_100) ;
 		TEMP:missing_value = -1.e+34f ;
 		TEMP:_FillValue = -1.e+34f ;
 		TEMP:long_name = "TEMPERATURE" ;
@@ -89230,7 +97418,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -89272,7 +97460,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89302,7 +97490,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, PSXT191_108) ;
+	int TEMP(TIME11, PSZT11_1, PSYT148_48, PSXT91_108) ;
 		TEMP:missing_value = -1000 ;
 		TEMP:_FillValue = -1000 ;
 		TEMP:long_name = "TEMPERATURE" ;
@@ -89315,7 +97503,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, PSXT191_108) ;
+	double SALT(TIME11, PSZT11_1, PSYT148_48, PSXT91_108) ;
 		SALT:missing_value = 0.00999999977648258 ;
 		SALT:_FillValue = 0.00999999977648258 ;
 		SALT:long_name = "(SALINITY(ppt) - 35) /1000" ;
@@ -89355,7 +97543,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89392,7 +97580,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89432,7 +97620,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89483,7 +97671,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89503,18 +97691,18 @@ data:
 bn_attributes.jnl --- 26 attributes of axes
 netcdf a {
 dimensions:
-	PSXT191_108 = 18 ;
+	PSXT91_108 = 18 ;
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
 	TIME11 = UNLIMITED ; // (1 currently)
 variables:
-	double PSXT191_108(PSXT191_108) ;
-		PSXT191_108:units = "degrees" ;
-		PSXT191_108:point_spacing = "even" ;
-		PSXT191_108:modulo = 360. ;
-		PSXT191_108:axis = "X" ;
-		PSXT191_108:standard_name = "longitude" ;
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees" ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:axis = "X" ;
+		PSXT91_108:standard_name = "longitude" ;
 	double PSYT135_56(PSYT135_56) ;
 		PSYT135_56:units = "degrees_north" ;
 		PSYT135_56:point_spacing = "uneven" ;
@@ -89535,31 +97723,31 @@ variables:
 		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME11:axis = "T" ;
 		TIME11:standard_name = "time" ;
-	double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
+	double T2(TIME11, 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 V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
-	PSXT191_108 = 18 ;
+	PSXT91_108 = 18 ;
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
 	TIME11 = UNLIMITED ; // (1 currently)
 variables:
-	double PSXT191_108(PSXT191_108) ;
-		PSXT191_108:units = "degrees" ;
-		PSXT191_108:point_spacing = "even" ;
-		PSXT191_108:new_att = "something" ;
-		PSXT191_108:modulo = 360. ;
-		PSXT191_108:axis = "X" ;
-		PSXT191_108:standard_name = "longitude" ;
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees" ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:new_att = "something" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:axis = "X" ;
+		PSXT91_108:standard_name = "longitude" ;
 	double PSYT135_56(PSYT135_56) ;
 		PSYT135_56:units = "degrees_north" ;
 		PSYT135_56:point_spacing = "uneven" ;
@@ -89580,30 +97768,30 @@ variables:
 		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME11:axis = "T" ;
 		TIME11:standard_name = "time" ;
-	double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
+	double T2(TIME11, 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 V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
-	PSXT191_108 = 18 ;
+	PSXT91_108 = 18 ;
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
 	TIME11 = UNLIMITED ; // (1 currently)
 variables:
-	double PSXT191_108(PSXT191_108) ;
-		PSXT191_108:units = "meters" ;
-		PSXT191_108:point_spacing = "even" ;
-		PSXT191_108:new_att = "something" ;
-		PSXT191_108:modulo = 360. ;
-		PSXT191_108:axis = "X" ;
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "meters" ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:new_att = "something" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:axis = "X" ;
 	double PSYT135_56(PSYT135_56) ;
 		PSYT135_56:units = "meters" ;
 		PSYT135_56:point_spacing = "uneven" ;
@@ -89623,14 +97811,14 @@ variables:
 		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME11:axis = "T" ;
 		TIME11:standard_name = "time" ;
-	double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
+	double T2(TIME11, 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 V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -89665,7 +97853,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -89699,7 +97887,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 27 attributes of  user-defined axes
@@ -89729,7 +97917,7 @@ variables:
 		AXY:long_name = "RESHAPE (A,RVAR)" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 28 Define a new global attribute
@@ -89758,7 +97946,7 @@ variables:
 		BROILED:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -89779,18 +97967,18 @@ data:
 bn_attributes.jnl --- 29 SET VAR/OUTTYPE for user variable
 netcdf a {
 dimensions:
-	PSXT191_108 = 18 ;
+	PSXT91_108 = 18 ;
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
 	TIME11 = UNLIMITED ; // (25 currently)
 variables:
-	double PSXT191_108(PSXT191_108) ;
-		PSXT191_108:units = "degrees_east" ;
-		PSXT191_108:point_spacing = "even" ;
-		PSXT191_108:modulo = 360. ;
-		PSXT191_108:axis = "X" ;
-		PSXT191_108:standard_name = "longitude" ;
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees_east" ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:axis = "X" ;
+		PSXT91_108:standard_name = "longitude" ;
 	double PSYT135_56(PSYT135_56) ;
 		PSYT135_56:units = "degrees_north" ;
 		PSYT135_56:point_spacing = "uneven" ;
@@ -89811,7 +97999,7 @@ variables:
 		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME11:axis = "T" ;
 		TIME11:standard_name = "time" ;
-	double FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
+	double FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT91_108) ;
 		FAREN:missing_value = -1.e+34 ;
 		FAREN:_FillValue = -1.e+34 ;
 		FAREN:long_name = "TEMP*9/5 + 32" ;
@@ -89819,23 +98007,23 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
-	PSXT191_108 = 18 ;
+	PSXT91_108 = 18 ;
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
 	TIME11 = UNLIMITED ; // (25 currently)
 variables:
-	double PSXT191_108(PSXT191_108) ;
-		PSXT191_108:units = "degrees_east" ;
-		PSXT191_108:point_spacing = "even" ;
-		PSXT191_108:modulo = 360. ;
-		PSXT191_108:axis = "X" ;
-		PSXT191_108:standard_name = "longitude" ;
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees_east" ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:axis = "X" ;
+		PSXT91_108:standard_name = "longitude" ;
 	double PSYT135_56(PSYT135_56) ;
 		PSYT135_56:units = "degrees_north" ;
 		PSYT135_56:point_spacing = "uneven" ;
@@ -89856,7 +98044,7 @@ variables:
 		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME11:axis = "T" ;
 		TIME11:standard_name = "time" ;
-	int FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
+	int FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT91_108) ;
 		FAREN:missing_value = -999 ;
 		FAREN:_FillValue = -999 ;
 		FAREN:long_name = "TEMP*9/5 + 32" ;
@@ -89864,7 +98052,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -89883,7 +98071,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89913,7 +98101,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89943,7 +98131,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89996,7 +98184,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -90038,7 +98226,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -90056,18 +98244,18 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 err611_set_var_ez.jnl --- 
 netcdf a {
 dimensions:
-	AX138 = 3 ;
+	AX139 = 3 ;
 variables:
-	double AX138(AX138) ;
-		AX138:point_spacing = "even" ;
-		AX138:axis = "X" ;
-	float MY_ASC(AX138) ;
+	double AX139(AX139) ;
+		AX139:point_spacing = "even" ;
+		AX139:axis = "X" ;
+	float MY_ASC(AX139) ;
 		MY_ASC:missing_value = 3.f ;
 		MY_ASC:_FillValue = 3.f ;
 		MY_ASC:long_name = "chlorophyll" ;
@@ -90075,17 +98263,17 @@ variables:
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
-	AX138 = 3 ;
+	AX139 = 3 ;
 variables:
-	double AX138(AX138) ;
-		AX138:point_spacing = "even" ;
-		AX138:axis = "X" ;
-	float MY_UNF(AX138) ;
+	double AX139(AX139) ;
+		AX139:point_spacing = "even" ;
+		AX139:axis = "X" ;
+	float MY_UNF(AX139) ;
 		MY_UNF:missing_value = 5.f ;
 		MY_UNF:_FillValue = 5.f ;
 		MY_UNF:long_name = "Some Unformatted input" ;
@@ -90093,7 +98281,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -90110,7 +98298,7 @@ variables:
 		A:long_name = "{1.1,2.2,3.3}" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -90131,7 +98319,7 @@ variables:
 		A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -90141,7 +98329,7 @@ data:
 }
 netcdf a {
 dimensions:
-	XAX1_10 = 10 ;
+	XAX = 10 ;
 	tday = UNLIMITED ; // (31 currently)
 	lon1_5 = 5 ;
 	lat1_5 = 5 ;
@@ -90149,16 +98337,16 @@ dimensions:
 	zt = 10 ;
 	time1478 = 3 ;
 variables:
-	double XAX1_10(XAX1_10) ;
-		XAX1_10:point_spacing = "even" ;
-		XAX1_10:axis = "X" ;
+	double XAX(XAX) ;
+		XAX:point_spacing = "even" ;
+		XAX:axis = "X" ;
 	double tday(tday) ;
 		tday:units = "days since 1998-12-31 00:00:00" ;
 		tday:axis = "T" ;
 		tday:calendar = "GREGORIAN" ;
 		tday:time_origin = "31-DEC-1998" ;
 		tday:standard_name = "time" ;
-	double MyUpperLowerCaseVar(tday, XAX1_10) ;
+	double MyUpperLowerCaseVar(tday, XAX) ;
 		MyUpperLowerCaseVar:missing_value = -1.e+34 ;
 		MyUpperLowerCaseVar:_FillValue = -1.e+34 ;
 		MyUpperLowerCaseVar:long_name = "X[X=1:10] + T[GT=TDAY]" ;
@@ -90194,7 +98382,7 @@ variables:
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
@@ -90221,7 +98409,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -90248,7 +98436,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
@@ -90314,7 +98502,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -90346,7 +98534,7 @@ variables:
 		Y_:long_name_mod = "axis YFIFTEEN" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -90379,43 +98567,43 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
-	TIME16 = 8 ;
-	reftime = 3 ;
+	TIME17 = 8 ;
+	REFTIME = 3 ;
 	bnds = 2 ;
 variables:
-	double reftime(reftime) ;
-		reftime:units = "calendar month since 2014-11-01t00:00:00z" ;
-		reftime:long_name = "GRIB reference time" ;
-		reftime:calendar = "proleptic_gregorian" ;
-		reftime:point_spacing = "uneven" ;
-		reftime:axis = "F" ;
-		reftime:bounds = "reftime_bnds" ;
-	double reftime_bnds(reftime, bnds) ;
-	double time(reftime, TIME16) ;
-		time:units = "calendar Month since 2014-11-01T00:00:00Z" ;
-		time:long_name = "GRIB forecast or observation time" ;
-		time:calendar = "proleptic_gregorian" ;
-		time:bounds = "time_bounds" ;
-		time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
+	double REFTIME(REFTIME) ;
+		REFTIME:units = "calendar month since 2014-11-01t00:00:00z" ;
+		REFTIME:long_name = "GRIB reference time" ;
+		REFTIME:calendar = "proleptic_gregorian" ;
+		REFTIME:point_spacing = "uneven" ;
+		REFTIME:axis = "F" ;
+		REFTIME:bounds = "REFTIME_bnds" ;
+	double REFTIME_bnds(REFTIME, bnds) ;
+	double TIME(REFTIME, TIME17) ;
+		TIME:units = "calendar Month since 2014-11-01T00:00:00Z" ;
+		TIME:long_name = "GRIB forecast or observation time" ;
+		TIME:calendar = "proleptic_gregorian" ;
+		TIME:bounds = "time_bounds" ;
+		TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
- reftime = 0, 1, 2.03333333333333 ;
+ REFTIME = 0, 1, 2.03333333333333 ;
 
- reftime_bnds =
+ REFTIME_bnds =
   -0.5, 0.5,
   0.5, 1.51666666666667,
   1.51666666666667, 2.55 ;
 
- time =
+ TIME =
   1, 2, 3, 4, 5, 6, 7, 8,
   2, 3, 4, 5, 6, 7, 8, 9,
   3, 4, 5, 6, 7, 8, 9, 10 ;
@@ -90442,7 +98630,7 @@ variables:
 		time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta) 17-Nov-15" ;
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -90458,6 +98646,33 @@ data:
   2, 3, 4, 5, 6, 7, 8, 9,
   3, 4, 5, 6, 7, 8, 9, 10 ;
 }
+netcdf a {
+variables:
+	double MYVAR ;
+		MYVAR:missing_value = -1.e+34 ;
+		MYVAR:_FillValue = -1.e+34 ;
+		MYVAR:long_name = "coads myvar" ;
+		MYVAR:units = "feet" ;
+		MYVAR:history = "From coads_climatology" ;
+
+// global attributes:
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:Conventions = "CF-1.6" ;
+}
+netcdf a {
+variables:
+	double MYVAR ;
+		MYVAR:missing_value = -1.e+34 ;
+		MYVAR:_FillValue = -1.e+34 ;
+		MYVAR:long_name = "Levitus myvar" ;
+		MYVAR:units = "meters" ;
+		MYVAR:standard_name = "None" ;
+		MYVAR:history = "From levitus_climatology" ;
+
+// global attributes:
+		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:Conventions = "CF-1.6" ;
+}
 -----
 end of ncdump output
  
@@ -90469,29 +98684,30 @@ yes?
 yes? 
 yes? GO bn_startupfile
  	NOAA/PMEL TMAP
- 	FERRET v6.951 (beta)
- 	Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
- 	17-Nov-15 09:28     
+ 	FERRET v6.97 (beta/dbg)
+ 	Linux 2.6.18-409.el5PAE 32-bit - 05/11/16
+ 	11-May-16 16:14     
 
 CAN MODE VERIFY
  Current size of FERRET memory cache: 31 MegaWords  (1 word = 8 bytes)
 PPL$XPIXEL = "656"
 PPL$YPIXEL = "492"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.951"
-FERRET_PLATFORM = "Linux 2.6.18-407.el5PAE 32-bit"
+FERRET_VERSION = "6.97"
+FERRET_PLATFORM = "Linux 2.6.18-409.el5PAE 32-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.3.2 of Dec 16 2014 12:21:13 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = "17-Nov-15"
-SESSION_TIME = "09:28"
-SESSION_PID = "6820"
-DELTA_CPU = "0.035993"
-CLOCK_SECS = "0.355"
-CURRENT_DATE = "17-Nov-15"
-CURRENT_TIME = "09:28:10"
+SESSION_DATE = "11-May-16"
+SESSION_TIME = "16:14"
+SESSION_PID = "28346"
+DELTA_CPU = "0.040993"
+CLOCK_SECS = "0.334"
+CURRENT_DATE = "11-May-16"
+CURRENT_TIME = "16:14:38"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+GO_FILE = "./bn_startupfile.jnl"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
 PPL$PLTNME = "startup_tests.plt"
@@ -90511,7 +98727,7 @@ PPL$VIEW_X = "0.000"
 PPL$VIEW_Y = "0.000"
 PPL$VIEW_Z = "0.000"
 PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "17-Nov-15:09:28"
+WIN_TITLE = "11-May-16:16:14"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 VP_SCALE = "1"
@@ -90521,7 +98737,6 @@ VP_XLO = "0"
 VP_XHI = "1"
 VP_YLO = "0"
 VP_YHI = "1"
-GO_FILE = "./bn_startupfile.jnl"
       MODE            STATE        ARGUMENT
       DIAGNOSTIC    CANCELLED           99
       VERIFY        CANCELLED      DEFAULT
@@ -90534,7 +98749,7 @@ GO_FILE = "./bn_startupfile.jnl"
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -90575,15 +98790,18 @@ yes?
 yes? 
 yes? GO bn_gif
  	NOAA/PMEL TMAP
- 	FERRET v6.951 (beta)
- 	Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
- 	17-Nov-15 09:28     
+ 	FERRET v6.97 (beta/dbg)
+ 	Linux 2.6.18-409.el5PAE 32-bit - 05/11/16
+ 	11-May-16 16:14     
 
 ! bn450_gif.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of gif file in batch mode using
 ! frame/file=bnplot.gif....will create three gif files
 ! *kob*
  
+ 
+can mode logo
+ 
 ! define a 6 viewport window (modified definitions 11/92)
 def view/text=.4/xlim=0,.333/ylim=0,.5    ll6
 def view/text=.2/xlim=0,.333/ylim=.5,1    ul6
@@ -90676,7 +98894,7 @@ plot/l=1:99000/nolabel sin(200000/(l+10000))
  
 ! reset to normal axis lengths and prepare for a new piccie
 !ppl axlen 8
-frame/file=bnplot.gif
+frame/file=bnplot_1.gif
 set wind/clear
  
 ! draw six frames
@@ -90704,7 +98922,7 @@ set view um6
 shade/i=1:50/j=1:50/nolabel i/(j+20)
 contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
 vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
-frame/file=bnplot.gif
+frame/file=bnplot_2.gif
 ! additions for version 3.01 "/TITLE=" controls
 cancel viewports
 set view ul6
@@ -90730,7 +98948,7 @@ wire/view=0,0,2/i=1:20/j=1:20/title="My Egg Carton"/nolabel sin(i/3)*cos(j/4)
 set view ll6
 plot/vs/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
 plot/vs/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-frame/file=bnplot.gif
+frame/file=bnplot_3.gif
  
 ! Prior to v5.8 could not get the window size in pixels when in gif mode
 show symbol ppl$xpixel
@@ -90785,6 +99003,321 @@ set v ll; plot/dash x[gx=0:20:.05]
 set v lr; plot/dash x[gx=0:20:.01]
 frame/file=gif_dashbug.gif
  
+! Restore size
+set win/siz=1/asp=1
+ 
+! New benchmark gif outputs in v6.97
+go bn_reset
+cancel mode verify
+GO bn_hovmuller_overlays
+! bn_hovmuller_overlays.jnl
+! Previously a time series plot overlaid oon a Hovmuller plot did not
+! work unless the time axis of the original data had units of hours.
+! See ticket 2344
+ 
+! 1/6/2016 ACM
+ 
+! run this in the gif benchmarks.
+ 
+ 
+def view/xlim=0,.333/ylim=.5,1    ul6
+def view/xlim=.333,.666/ylim=.5,1 um6
+def view/xlim=.666,1/ylim=.5,1    ur6
+def view/xlim=0,.333/ylim=0,.5    ll6
+def view/xlim=.333,1/ylim=0,.5    lr6
+ 
+! The example from the FAQ, "Overlaying a time series on a 2D plot"
+set view ul6
+ 
+! Define a 2D field in YT with a time axis in units of DAYS
+DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":5/UNITS=DAYS tdays
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+ 
+LET/TITLE=XY my_var = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+ 
+! make a Hovmoller plot
+ 
+SHADE my_var
+ 
+! This did not work previously.  Needed to re-define the axis in units of hours
+PLOT/OVER my_var[Y=@loc:-4]
+ 
+ 
+! XT variable
+set view um6
+ 
+DEFINE AXIS/X=0:40E:1/UNITS=DEGREES xax
+LET/TITLE="XT" my_var = 10*cos(T[gt=tdays]/20)*EXP((-1)*x[gx=xax]/20)
+SHADE/t=1-jan-1987:1-jan-1989 my_var
+PLOT/OVER/TRANS/THICK my_var[x=@loc:-4]
+ 
+ 
+! Irregular time axis
+set view ur6
+ 
+DEFINE AXIS/T0=1-jan-2001/UNITS=DAYS tdays = {1,2,4,5,6,8,9,10,12,30,35,41,42,44,45,46,48,49,50,58}
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+LET my_var = 10*cos(T[gt=tdays])*EXP((-1)*y[gy=yax]/8)
+ 
+FILL/title="irregular t" my_var
+PLOT/OVER/thick/y=8 my_var+10
+ 
+ 
+! Like the dataset example from the FAQ
+set view ll6
+ 
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
+shade sst
+plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+ 
+can data/all
+can region
+ 
+! vector plots with a time series
+set view lr6
+ 
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
+ 
+vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
+ 
+let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
+plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
+ 
+FRAME/FILE=bn_hovmuller_overlays.gif
+ 
+ 
+Go bn_reset
+cancel mode verify
+GO bn_labels_on_taxis
+! bn_labels_on_taxis.jnl
+! tests of labels and overlays on time axes
+ 
+ 
+set v ul
+DEFINE AXIS/T=1-JAN-1980:31-JAN-1985:30/T0=1-jan-1980/UNIT=days tax
+LET tt = t[gt=tax]
+LET tvar = cos(tt/200)
+plot tvar
+ 
+LET xsqr = {-1,1,1,-1}                ! coordinates of a unit square
+LET ysqr = {-1,-1,1,1}
+LET xcircle = COS(6.3*i[i=1:42]/40)    ! coordinates of unit circle
+LET ycircle = SIN(6.3*i[i=1:42]/40)
+ 
+!   place an "X" at the value exactly at 7-aug-1982
+!   "@ITP" causes interpolation to exact location
+ 
+let t0   = tt[t="7-aug-1982"@itp]
+let val0 = tvar[t="7-aug-1982"@itp]
+plot/vs/over/nolab/sym=2/thick/color=red t0,val0
+ 
+!   put a box around the "X"
+polygon/over/thick/color=red/nolab t0+30*xsqr, 0.05*ysqr+val0
+ 
+!   place an "X" on the data point nearest to 15-may-1984
+!   Note that @ITP is absent, so behavior is set by MODE INTERPOLATE
+let t1   = tt[t="15-may-1984"]
+let val1 = tvar[t="15-may-1984"]
+plot/vs/over/nolab/sym=2/color=blue/thick t1,val1
+ 
+!     put a circle around the "X"
+plot/vs/over/color=blue/thick/nolab t1+30*xcircle,0.05*ycircle+val1
+ 
+set v ur
+! Latitude/time plot
+let ytvar = cos(tt/200) + sin(j/3)
+shade/y=1:50/t=1-jan-1982:31-dec-1982 ytvar
+ 
+let tlo = tt[t="1-jul-1982"@itp]
+let thi = tt[t="1-aug-1982"@itp]
+polygon/over/nolab/thick/pal=gray {`tlo`, `thi`,` thi`, `tlo`},  {20, 20, 25, 25}
+ !-> polygon/over/nolab/thick/pal=gray {912, 943,943, 912},  {20, 20, 25, 25}
+ 
+set v ll
+! Plot the time series.
+!----------------------------------
+ 
+LET tvar = cos(tt/200)* tt/100
+PLOT/vlim=-20:20 tvar
+ 
+!----------------------------------
+! Locate label position on time variable axis: the coordinate at the start of 1985.
+LET datelabelpos=TT[T="01-JAN-1981"@ITP]
+ 
+! Do nothing but set $PPL$XFIRST1 symbol at the time axis plot units
+PLOT/LINE/VS/OVER/NOLAB datelabelpos,-9
+ 
+! Make the label; left-justified
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),-8,-1,0,0.12, at AC Year 81 starts
+ !-> PPL %LABEL 17905.00,-8,-1,0,0.12, at AC Year 81 starts
+ 
+! Draw a vertical red line at the year boundary
+PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {`datelabelpos`,`datelabelpos`},{-20,20}
+ !-> PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {366,366},{-20,20}
+ 
+! Do the same for the start of 1984
+!----------------------------------
+! Locate label position on time var axis
+LET datelabelpos=TT[T="01-JAN-1984"@ITP]
+ 
+! Do nothing but set $PPL$XFIRST1 symbol at the time axis plot units
+plot/line/vs/over/nolab datelabelpos,-9
+ 
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),-8,-1,0,0.12, at AC Year 84 starts
+ !-> PPL %LABEL 44185.00,-8,-1,0,0.12, at AC Year 84 starts
+ 
+! Draw a vertical red line at the year boundary
+PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {`datelabelpos`,`datelabelpos`},{-20,20}
+ !-> PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {1461,1461},{-20,20}
+ 
+!----------------------------------
+! Now lets locate and label the maximum of the variable
+LET vmax = `tvar[T=@MAX]`
+ !-> DEFINE VARIABLE vmax = 12.72093076292341
+LET t_at_max = tvar[T=01-JAN-1980:31-DEC-1985 at LOC:`vmax`]
+ !-> DEFINE VARIABLE t_at_max = tvar[T=01-JAN-1980:31-DEC-1985 at LOC:12.72093076292341]
+ 
+! This will define $PPL$XFIRST1 and also make a mark at the maximum location
+PLOT/VS/OVER/NOLAB/SYM=17/COLOR=red t_at_max, vmax
+ 
+! Use a centered label this time
+! 1.02*vmax moves the label up a bit.
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),`1.02*vmax`,0,0,0.12, at AC MAX = `vmax,prec=3`
+ !-> PPL %LABEL 40081.00,12.97534937818188,0,0,0.12, at AC MAX = 12.7
+ 
+set v lr
+ 
+! Define a dummy track line, position as a function of time.
+DEFINE AXIS/T=1-JAN-1980:31-JAN-1985:30/UNIT=days tax
+LET ypos = 40 *COS(L[GT=tax]/32)
+LET xpos = 220 - 50 *SIN(L[GT=tax]/22)
+! Make the basic track plot
+use ocean_atlas_temp
+shade/pal=blue_light/X=110E:40W/Y=20S:50N/L=1 temp
+ 
+PLOT/VS/NOLAB/OVER XPOS,YPOS
+! Label every 5th date. The labels could be positioned differently, using
+! the 3rd argument of the LABEL command to control centering. Or, to put the
+! labels a bit above the corresponding point location, add a small amount to
+! the y positions, for instance `ypos + 0.04` in the second argument to LABEL.
+LET tt = t[gt=tax]
+! Loop over L; at each L we evaluate TAX_DATESTRING for the time step,
+! and compute the location for the label
+REPEAT/L=5:60:10 (DEFINE SYMBOL tlab = "`TAX_DATESTRING(tt,tt,"day")`"; \
+ LABEL `xpos` `ypos` 1 0 0.09 ($tlab) )
+ !-> REPEAT/L=5:60:10 (DEFINE SYMBOL tlab = "`TAX_DATESTRING(tt,tt,"day")`";  LABEL `xpos` `ypos` 1 0 0.09 ($tlab) )
+!-> REPEAT: L=5
+ !-> DEFINE SYMBOL tlab = "30-APR-1980"
+ !-> PPL %LABEL 208.7339387413628 39.51271135265888 1 0 0.09 "30-APR-1980"
+!-> REPEAT: L=15
+ !-> DEFINE SYMBOL tlab = "24-FEB-1981"
+ !-> PPL %LABEL 188.4897123753973 35.68534797467977 1 0 0.09 "24-FEB-1981"
+!-> REPEAT: L=25
+ !-> DEFINE SYMBOL tlab = "21-DEC-1981"
+ !-> PPL %LABEL 174.6445516747008 28.40135534264319 1 0 0.09 "21-DEC-1981"
+!-> REPEAT: L=35
+ !-> DEFINE SYMBOL tlab = "17-OCT-1982"
+ !-> PPL %LABEL 170.0101127410977 18.36629087569217 1 0 0.09 "17-OCT-1982"
+!-> REPEAT: L=45
+ !-> DEFINE SYMBOL tlab = "13-AUG-1983"
+ !-> PPL %LABEL 175.527551028677 6.552192101033334 1 0 0.09 "13-AUG-1983"
+!-> REPEAT: L=55
+ !-> DEFINE SYMBOL tlab = "08-JUN-1984"
+ !-> PPL %LABEL 190.0763927948022 -5.896578890096701 1 0 0.09 "08-JUN-1984"
+ 
+FRAME/FILE=bn_labels_on_taxis.gif
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_contour_conset
+! err696_contour_conset.jnl
+! Ticket 2351. The PPL CONSET command had stopped working to set
+! the # of digits in contour labels.  See the setting in PPL LIST LEVELS
+ 
+contour/i=1:20/j=1:20/lev=(-10,10,2.125)/set/title="CONTOUR/SET with PPL CONSET,,4"  10*sin(i/3)*cos(j/4)
+ppl conset,,4
+ppl contour
+ 
+! This should show NDIG=3
+ppl list levels
+
+
+         LEVEL       TYPE       NDIG       PEN
+         -1.00E+01     DASH        3        0
+         -7.88E+00     DASH        3        0
+         -5.75E+00     DASH        3        0
+         -3.63E+00     DASH        3        0
+         -1.50E+00     DASH        3        0
+          6.25E-01     LINE        3        0
+          2.75E+00     LINE        3        0
+          4.88E+00     LINE        3        0
+          7.00E+00     LINE        3        0
+          9.13E+00     LINE        3        0
+          1.13E+01     LINE        3        0
+ 
+! Now make the same setting with CONTOUR/SIGDIG=
+contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/sigdig=4/title="CONTOUR/SIGDIG=4"  10*sin(i/3)*cos(j/4)
+ 
+! This should show NDIG=3
+ppl list levels
+
+
+         LEVEL       TYPE       NDIG       PEN
+         -1.00E+01     DASH        3        0
+         -7.88E+00     DASH        3        0
+         -5.75E+00     DASH        3        0
+         -3.63E+00     DASH        3        0
+         -1.50E+00     DASH        3        0
+          0.00E+00     DARK       -1        0
+          6.25E-01     LINE        3        0
+          2.75E+00     LINE        3        0
+          4.88E+00     LINE        3        0
+          7.00E+00     LINE        3        0
+          9.13E+00     LINE        3        0
+          1.13E+01     LINE        3        0
+ 
+! test CONTOUR/SET; CONSET; PPL CONTOUR settings
+contour/i=1:20/j=1:20/lev=(-10,10,2.125)/set/title="CONTOUR/SET with PPL CONSET,,4"  10*sin(i/3)*cos(j/4)
+ppl conset,0.07,4,,,,,,1
+ppl contour
+ 
+! test CONTOUR qualifiers that make CONSET settings. Should exactly overlay the previous plot.
+contour/over/color=red/i=1:20/j=1:20/lev=(-10,10,2.125)\
+/sigdig=4/siz=0.07/spacing=1  10*sin(i/3)*cos(j/4)
+ 
+frame/file=bn_contour_conset.gif
+ 
+GO bn_reset
+cancel mode verify
+GO err696_subspan_mod_strides
+! err696_subspan_mod_strides
+! See ticket 513. Axis is subspan modulo, and strides
+! on a plot with a larger region than the axis span caused the
+! shade plot to smear out beyond the edges.
+ 
+define axis/x/units=degrees_e xax = {-82.96,-81.46,-79.96,-78.47,-76.97,-75.48,-73.98,-72.48,-70.99,-69.49}
+let xx = x[gx=xax]
+let yy = y[y=4:20:2]
+let d10 = randu(xx) - randu(yy)
+ 
+! previously smeared out to the plot edges.
+set view upper
+shade/hlim=-95:-60/vlim=0:25 d10[i=1:10:2,j=1:10]
+ 
+! similar behavior with overlays
+set view lower
+use coads_climatology
+shade/L=3/pal=white/nokey/x=-180:0/y=0:30/title="Overlay Test" sst
+shade/over d10[i=1:10:2,j=1:10]
+ 
+frame/file=bn_subspan_mod_strides.gif
+ 
 exit/command
 yes? ! this "shell" is used because the Unix redirection fails to echo commands
 yes? ! from the top level command file
@@ -90794,9 +99327,9 @@ yes?
 yes? 
 yes? GO bn_ps
  	NOAA/PMEL TMAP
- 	FERRET v6.951 (beta)
- 	Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
- 	17-Nov-15 09:28     
+ 	FERRET v6.97 (beta/dbg)
+ 	Linux 2.6.18-409.el5PAE 32-bit - 05/11/16
+ 	11-May-16 16:14     
 
 ! bn450_ps.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of ps files in batch mode using
@@ -90908,9 +99441,9 @@ yes?
 yes? 
 yes? GO bn_batch_metafile
  	NOAA/PMEL TMAP
- 	FERRET v6.951 (beta)
- 	Linux 2.6.18-407.el5PAE 32-bit - 11/17/15
- 	17-Nov-15 09:28     
+ 	FERRET v6.97 (beta/dbg)
+ 	Linux 2.6.18-409.el5PAE 32-bit - 05/11/16
+ 	11-May-16 16:14     
 
 ! bn_batch_metafile.jnl
 ! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -90994,4 +99527,4 @@ set window/location=0.1,0.1/title="another title"
  
 set mode/last logo
 exit/command
-Ended at Tue Nov 17 09:28:13 PST 2015
+Ended at Wed May 11 16:14:42 PDT 2016
diff --git a/bench/ansley_official.rhel6-64_err b/bench/ansley_official.rhel6-64_err
index 4cde0c8..a02515a 100644
--- a/bench/ansley_official.rhel6-64_err
+++ b/bench/ansley_official.rhel6-64_err
@@ -1,10 +1,10 @@
 Procedure run_all to run all FERRET benchmarks
 Running FERRET version /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
--rwxr-xr-x. 1 ansley oerdnewp 80974676 Nov  9 15:00 /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
+-rwxr-xr-x. 1 ansley oerdnewp 117720321 Jun 15 11:10 /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
 Using external functions from /home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
 Running the tests of external functions y
 Benchmark run by ansley
-Note: ticket 2322: err msgs with SHOW DATA nofile to show the file name
+Note: ticket 2441: LET/D variables in a show data/var/xml
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -14,17 +14,18 @@ FER_DESCR=.
 FER_DIR=.
 FER_DSETS=.
 FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
-FER_GO=. /home/users/tmap/ferret/x86_64-linux/go /home/users/tmap/ferret/x86_64-linux/examples /home/users/tmap/ferret/x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
+FER_GO=. /home/users/tmap/ferret/x86_64-linux/go /home/users/tmap/ferret/x86_64-linux/examples /home/users/tmap/ferret/x86_64-linux/contrib /home/users/tmap/ferret/tmap_go /home/users/ansley/las.v8.4.rc5/JavaSource/resources/iosp/scripts/
 FER_GRIDS=.
 FER_LIBS=/home/users/tmap/ferret/x86_64-linux/lib
 FER_PALETTE=. /home/users/tmap/ferret/x86_64-linux/ppl
 PWD=/home/users/ansley/build/current_trunk/FERRET/bench
-Beginning at Mon Nov 9 15:02:29 PST 2015
+PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/x86_64-linux/ext_func/pylibs
+Beginning at Wed Jun 15 12:05:35 PDT 2016
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
         SET EXPRESSION has not been given or implied
- **ERROR: unknown command qualifier: help
-MESSAGE/CONTINUE /help
+ **ERROR: unknown command qualifier: notaqualifier
+MESSAGE/CONTINUE/notaqualifier
  **ERROR: unknown command: that
 that
  **ERROR: command syntax: \!
@@ -40,11 +41,13 @@ message/cont $3"<my error message"
 message/cont $1"|xxxxx|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $1
 message/cont $1"greetings|xxxxx|goodbye"
+           *** NOTE: Argument $1 received was: hello
            *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
  **ERROR: my error message
 message/cont $3"|hello|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3">greetings|hello|goodbye"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: hello|goodbye
  **ERROR: my error message
 message/cont $3">greetings|hello|goodbye<my error message"
@@ -56,9 +59,11 @@ message/cont $3""
 message/cont $3"<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"||"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: |
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>|"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: >|
  **ERROR: command syntax: empty text string provided with ">": >|
 message/cont $3">|"
@@ -66,6 +71,7 @@ message/cont $3">|"
 message/cont $3"|<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: >
  **ERROR: command syntax: arg number not in 1-99 range: $100
 say $100
@@ -284,11 +290,13 @@ define symbol t$5 = hi
 message/continue ($test2"<error message")
  **ERROR: invalid command: Valid value needed for symbol test2
 message/continue ($test2"|hello|bye|")
+           *** NOTE: symbol test2 was missing or empty.
            *** NOTE: Valid symbol test2 choices are: hello|bye|
  **ERROR: error message
 message/continue ($test2"|hello|bye|<error message")
  **ERROR: invalid command: Valid value needed for symbol t2
 message/continue ($t2"|solong>really hello|bye|")
+           *** NOTE: symbol t2 received was: hello
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -337,7 +345,7 @@ list tu
  **ERROR: regridding: Axis orientation not matching request:GX=PSYU
 list tu
  Cached data cleared from memory
- **ERROR: request exceeds memory setting: 25 Mwords were requested.
+ **ERROR: request exceeds memory setting: 50 Mwords were requested.
 list temp[gz=z999999,z=5:15]
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
@@ -586,14 +594,14 @@ Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: 24000 Mwords were requested.
+ **ERROR: request exceeds memory setting: 48000 Mwords were requested.
 load num
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: 1000 Mwords were requested.
+ **ERROR: request exceeds memory setting: 2000 Mwords were requested.
 load num
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
@@ -926,6 +934,8 @@ list strcat ("All work and no play")
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
  LISTing to file test_modulo.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1199,30 +1209,40 @@ Replacing definition of axis TAX2
            *** NOTE: Axis is in use by grid JGRID
            *** NOTE: Not deleted: MONTHT
            *** NOTE: Axis is in use by grid TGRID
-           *** NOTE: Not deleted: X10
+           *** NOTE: Not deleted: x10
            *** NOTE: Axis is in use by grid G10X5
            *** NOTE: Not deleted: YAX
            *** NOTE: Axis is in use by grid GFORMAT
            *** NOTE: Not deleted: XAX
            *** NOTE: Axis is in use by grid GFORMAT
-           *** NOTE: Not deleted: XAXLEVITR1_160
-           *** NOTE: Axis is in use by grid GG1
-           *** NOTE: Not deleted: TIME4
-           *** NOTE: Axis is in use by grid GXYT
            *** NOTE: Not deleted: TIME5
            *** NOTE: Axis is in use by grid GLB1
            *** NOTE: Not deleted: COADSX
            *** NOTE: Axis is in use by grid GG
+           *** NOTE: Not deleted: YAXLEVITR1_90
+           *** NOTE: Axis is in use by grid GG2
+           *** NOTE: Not deleted: XAXLEVITR1_160
+           *** NOTE: Axis is in use by grid GG1
+           *** NOTE: Not deleted: PSYT
+           *** NOTE: Axis is in use by grid GY
+           *** NOTE: Not deleted: PSXU
+           *** NOTE: Axis is in use by grid G5DAY
            *** NOTE: Not deleted: COADSY
            *** NOTE: Axis is in use by grid GG1
+           *** NOTE: Not deleted: (AX009)
+           *** NOTE: Axis is in use by grid GG3
+           *** NOTE: Not deleted: PSZT
+           *** 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: Axis is in use by grid GXYT
            *** NOTE: Not deleted: TEST_IRREG
            *** NOTE: Axis is in use by grid (G023)
-           *** NOTE: Not deleted: YAXLEVITR1_90
-           *** NOTE: Axis is in use by grid GG2
+           *** NOTE: Not deleted: PSZW
+           *** NOTE: Axis is in use by grid G5_10
            *** NOTE: Not deleted: ZAXLEVITR1_1
            *** NOTE: Axis is in use by grid GG2
-           *** NOTE: Not deleted: (AX020)
-           *** NOTE: Axis is in use by grid GG3
            *** NOTE: Not deleted: XEVEN
            *** NOTE: Axis is in use by grid EVEN
            *** NOTE: Not deleted: XODD
@@ -1319,28 +1339,38 @@ Replacing definition of axis TAX2
            *** NOTE: Axis is in use by grid JGRID
            *** NOTE: Not deleted: MONTHT
            *** NOTE: Axis is in use by grid TGRID
-           *** NOTE: Not deleted: X10
+           *** NOTE: Not deleted: x10
            *** NOTE: Axis is in use by grid G10X5
            *** NOTE: Not deleted: YAX
            *** NOTE: Axis is in use by grid GFORMAT
            *** NOTE: Not deleted: XAX
            *** NOTE: Axis is in use by grid GFORMAT
-           *** NOTE: Not deleted: XAXLEVITR1_160
-           *** NOTE: Axis is in use by grid GG1
-           *** NOTE: Not deleted: TIME4
-           *** NOTE: Axis is in use by grid GXYT
            *** NOTE: Not deleted: TIME5
            *** NOTE: Axis is in use by grid GLB1
            *** NOTE: Not deleted: COADSX
            *** NOTE: Axis is in use by grid GG
-           *** NOTE: Not deleted: COADSY
-           *** NOTE: Axis is in use by grid GG1
            *** NOTE: Not deleted: YAXLEVITR1_90
            *** NOTE: Axis is in use by grid GG2
+           *** NOTE: Not deleted: XAXLEVITR1_160
+           *** NOTE: Axis is in use by grid GG1
+           *** NOTE: Not deleted: PSYT
+           *** NOTE: Axis is in use by grid GY
+           *** NOTE: Not deleted: PSXU
+           *** NOTE: Axis is in use by grid G5DAY
+           *** NOTE: Not deleted: COADSY
+           *** NOTE: Axis is in use by grid GG1
+           *** NOTE: Not deleted: (AX009)
+           *** NOTE: Axis is in use by grid GG3
+           *** NOTE: Not deleted: PSZT
+           *** 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: Axis is in use by grid GXYT
+           *** NOTE: Not deleted: PSZW
+           *** NOTE: Axis is in use by grid G5_10
            *** NOTE: Not deleted: ZAXLEVITR1_1
            *** NOTE: Axis is in use by grid GG2
-           *** NOTE: Not deleted: (AX020)
-           *** NOTE: Axis is in use by grid GG3
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1513,12 +1543,19 @@ Replacing definition of axis TAX
 Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file b.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
 SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
+SHO VAR/XML
+SHOW VAR/XML
 SHOW VAR/XML
 SHOW VAR/XML
+ LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1673,7 +1710,7 @@ def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,
  LISTing to file a.nc
 Replacing definition of axis XAX
 Replacing definition of axis ZAX
-Replacing definition of axis TAX
+Replacing definition of axis tax
  LISTing to file irrxzt.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -1799,26 +1836,31 @@ Replacing definition of axis TAX
 query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
  **ERROR: invalid command: Valid value needed for argument $2
 query/ignore $2%|a|b|c|d|%
+           *** NOTE: Argument $2 was missing or empty.
            *** NOTE: Valid argument $2 choices are: a|b|c|d|
  **ERROR: my error message
 message/cont $1"|xxxxx|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $1
 message/cont $1"greetings|xxxxx|goodbye"
+           *** NOTE: Argument $1 received was: hello
            *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
  **ERROR: my error message
 message/cont $3"|hello|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3">greetings|hello|goodbye"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: hello|goodbye
  **ERROR: my error message
 message/continue ($test2"<my error message")
  **ERROR: invalid command: Valid value needed for symbol test2
 message/continue ($test2"|hello|bye|")
+           *** NOTE: symbol test2 was missing or empty.
            *** NOTE: Valid symbol test2 choices are: hello|bye|
  **ERROR: my error message
 message/continue ($test2"|hello|bye|<my error message")
  **ERROR: invalid command: Valid value needed for symbol t2
 message/continue ($t2"|solong>really hello|bye|")
+           *** NOTE: symbol t2 was missing or empty.
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1856,15 +1898,15 @@ Replacing definition of axis TIME1
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis COADSX.ILLEGAL
-           *** NOTE: grid GEX1 used by data set illeg_axname
-           *** NOTE: Redefinition may alter apparent contents of data set
            *** NOTE: grid GEX2 used by data set illeg_axname
            *** NOTE: Redefinition may alter apparent contents of data set
-Replacing definition of axis COADSY.ILLEGAL
            *** NOTE: grid GEX1 used by data set illeg_axname
            *** NOTE: Redefinition may alter apparent contents of data set
+Replacing definition of axis COADSY.ILLEGAL
            *** NOTE: grid GEX3 used by data set illeg_axname
            *** NOTE: Redefinition may alter apparent contents of data set
+           *** NOTE: grid GEX1 used by data set illeg_axname
+           *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2101,10 +2143,10 @@ set var/outtype=char broiled
 set var/outtype=garbage broiled
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Changing the value of attribute (PSXT1).units
+           *** NOTE: Changing the value of attribute (PSXT).units
  LISTing to file a.nc
  LISTing to file a.nc
-           *** NOTE: Changing the value of attribute (PSXT1).units
+           *** NOTE: Changing the value of attribute (PSXT).units
            *** NOTE: Changing the value of attribute (PSYT1).units
  LISTing to file a.nc
  PERMANENT data cleared from memory
@@ -2216,7 +2258,7 @@ Replacing definition of axis TAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-Replacing definition of axis TAX
+Replacing definition of axis tax
            *** NOTE: Invalid I axis limits ignored: TEMP
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=100/k=1 temp[x=122.5W]"
@@ -2258,6 +2300,9 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
  LISTing to file b.nc
  LISTing to file b.nc
+NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
+ TAX3_bnds not found. Attempt to append irregular coordinates to NetCDF axis which has no bounds attribute. Write data originally with the /BOUNDS qualifier.
+LIST/FORMAT=CDF/CLOBBER/FILE=b.nc v
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2286,7 +2331,7 @@ Replacing definition of axis TIME
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: invalid command: it is a child axis already
-set axis/stride=2/offset=1 (AX047)
+set axis/stride=2/offset=1 (AX052)
  **ERROR: invalid command: not a strided axis: COADSX
 cancel axis/stride COADSX
  **ERROR: invalid command: offset must be less than stride value
@@ -2379,6 +2424,8 @@ curl error details:
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
@@ -2875,7 +2922,7 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Changing the value of attribute sst.history
+ LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2923,6 +2970,7 @@ Re-defining viewport V7
 Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ LISTing to file b.nc
  LISTing to file dummy.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2958,17 +3006,17 @@ Re-defining viewport V8
  **TMAP ERR: syntax error in string
              If ChunkSize is set for any dimension of var, must set for all its dimensions
 LIST/FORMAT=CDF/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchunk=1  sst
- LISTing to file nc4_deflate4bigchunk.nc
+ LISTing to file nc4_deflate4chunktoobig.nc
  **TMAP ERR: error specifying chunk sizes
              TChunkSize 0 is larger than dimension length 3
-LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
+LIST/FORMAT=CDF/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Not deleted: X10
+           *** NOTE: Not deleted: x10
            *** NOTE: Axis is in use by grid G10X5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3059,6 +3107,11 @@ show grid garbage
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ LISTing to file a.nc
+
+Bailing out of external function "tax_year":
+	 Function not valid for modulo time axis
+ LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TAX
@@ -3085,7 +3138,7 @@ Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
-set mode desperate 1.E+10
+set mode desperate   9999999999.000000
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
 set mode desperate 1234567890123456789
  PERMANENT data cleared from memory
@@ -3114,9 +3167,6 @@ Replacing definition of axis YAX_DUP_AXNAMES
            *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
-
-Bailing out of external function "tax_year":
-	 Function not valid for modulo time axis
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3306,32 +3356,27 @@ Replacing definition of grid G5DAY
 Replacing definition of axis FAX4DAY
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- **ERROR: unknown data set: dset 3 unknown or is already an aggregate dataset
-define data/agg windy = 1,2,3
-           *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
-           *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+ **ERROR: unknown data set: dset 3
+DEFINE DATA/AGGREGAT/E windy = 1,2,3
+           *** NOTE: Variable "UWND" excluded from aggregate: T axis differs among members
+           *** NOTE: Variable "VWND" excluded from aggregate: T axis differs among members
+           *** NOTE: Variable "SPEH" excluded from aggregate: Not found in all member datasets
  **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
-define data/agg windy = 1,2
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
+DEFINE DATA/AGGREGAT/E windy = 1,2
+           *** NOTE: Variable "SPEH" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "UIN" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "VIN" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, my_ens
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, fourfiles
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, some
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, more
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3350,10 +3395,6 @@ define data/agg windy = 1,2
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **netCDF error
-             NetCDF: Unknown file format (OPeNDAP/netCDF Error code -51)
-             Data set: ./.
-SET DAT/FORM=CDF ./z1.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3527,9 +3568,9 @@ plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis ZAX
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+           *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3556,6 +3597,7 @@ Replacing definition of axis ZAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+           *** NOTE: Changing the type of attribute a.ival
            *** NOTE: Changing the value of attribute a.ival
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3605,6 +3647,10 @@ Replacing definition of axis XAXIS_TEST
  LISTing to file c.nc
  LISTing to file c.nc
  LISTing to file c.nc
+syntax error, unexpected WORD_STRING, expecting WORD_WORD
+context: Error { code = 500; message = "java.io.IOException: java.lang.Exception: Could not parse Ferret config file: java.util.MissingResourceException: Could not load any resource bundle by com.sun.org.apache.xerces.internal.impl.msg.SAXMessages"^;};
+syntax error, unexpected WORD_STRING, expecting WORD_WORD
+context: Error { code = 500; message = "java.io.IOException: java.lang.Exception: Could not parse Ferret config file: java.util.MissingResourceException: Could not load any resource bundle by com.sun.org.apache.xerces.internal.impl.msg.SAXMessages"^;};
  LISTing to file nc
  **TMAP ERR: error in line definition
              file coords dont match variable coords on axis XAXIS_TEST
@@ -3663,6 +3709,8 @@ set axis/name=.fr x_in_meters
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
  **ERROR: invalid command: string/numeric data type mix-up. Argument 3 : TAX_DATESTRING
 list tax_datestring (tt[L=3], tt, 5)
  **ERROR: invalid command: string/numeric data type mix-up. Argument 2 : TAX_DATESTRING
@@ -3713,12 +3761,12 @@ Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XAXIS
- **ERROR: request exceeds memory setting: 2369 Mwords were requested.
+ **ERROR: request exceeds memory setting: 4739 Mwords were requested.
 load bigvar
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis LONGTIME
- **ERROR: request exceeds memory setting: 4735 Mwords were requested.
+ **ERROR: request exceeds memory setting: 9472 Mwords were requested.
 load bigvar
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
@@ -3787,9 +3835,9 @@ Replacing definition of axis Y2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis ZAX
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+           *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3894,8 +3942,6 @@ Replacing definition of axis EAXIS
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Could not compute Std Dev. Data too large or or not within 3 std of computed mean.
-           *** NOTE: Using linear levels instead.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3953,7 +3999,6 @@ Replacing definition of axis FSEC
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -4003,7 +4048,7 @@ SET VAR/layerz=depth noexist
            *** NOTE: Ambiguous coordinates on Z axis: TEMP6D-TEMPZ6D
  **ERROR: invalid command: auxiliary variable DEPTH6D has a T axis not found on variable TEMP
 LIST/PREC=7 tempz6d_unmatch
-Replacing definition of axis XAX
+Replacing definition of axis xax
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -4033,6 +4078,8 @@ SHOW DATA 2
 SHOW DATA/ATT noexist
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
 Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
 Replacing definition of axis DCOARSE
@@ -4047,6 +4094,543 @@ Replacing definition of axis IRR
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **TMAP ERR: error in axis attributes
+             Calendar definitions on T and F axes must match
+             Data file: ./ft_cal_one.nc
+SET DAT/FORM=CDF ft_cal_mixed.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis tday
+Replacing definition of axis xax
+ LISTing to file myfile.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ Cached data cleared from memory
+Replacing definition of axis LONGTIME
+ **ERROR: request exceeds memory setting: 13 Mwords were requested.
+load/l=1:5 bigvar
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ Cached data cleared from memory
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+           *** NOTE: Not deleted: XAX
+           *** NOTE: Axis is in use by grid GFORMAT
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX1
+Replacing definition of axis TAX2
+Replacing definition of axis TAX2
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ Using every   4th vector in the Y direction
+Replacing definition of axis xax
+Replacing definition of axis yax
+ Using every   4th vector in the Y direction
+ Using every   4th vector in the Y direction
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis F_AX
+Replacing definition of axis AAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis T_AXIS
+Replacing definition of axis T_AXIS
+Replacing definition of axis F_AXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAXIS
+ LISTing to file a.nc
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX
+ LISTing to file a.nc
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid TGRID
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+           *** NOTE: Changing the type of attribute sst.newch
+           *** NOTE: Changing the value of attribute sst.newch
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TDAY
+ LISTing to file tmp/tagg_reg_1.nc
+ LISTing to file tmp/tagg_reg_2.nc
+ LISTing to file tmp/tagg_reg_3.nc
+ LISTing to file tmp/tagg_reg_4.nc
+ LISTing to file tmp/tagg_reg_5.nc
+ LISTing to file tmp/tagg_reg_6.nc
+ LISTing to file tmp/tagg_reg_7.nc
+ LISTing to file tmp/tagg_reg_8.nc
+ LISTing to file tmp/tagg_reg_9.nc
+ LISTing to file tmp/tagg_reg_10.nc
+ LISTing to file tmp/tagg_reg_1_duplicate.nc
+ LISTing to file tmp/tagg_reg_no_T.nc
+ LISTing to file tmp/tagg_reg_2_overlarge.nc
+           *** NOTE: Not deleted: TDAY
+           *** NOTE: Axis is in use by grid (G086)
+ LISTing to file tmp/tagg_irreg_1.nc
+ LISTing to file tmp/tagg_irreg_2.nc
+ LISTing to file tmp/tagg_irreg_3.nc
+ LISTing to file tmp/tagg_irreg_4.nc
+ LISTing to file tmp/tagg_irreg_5.nc
+ LISTing to file tmp/tagg_irreg_6.nc
+ LISTing to file tmp/tagg_irreg_7.nc
+ LISTing to file tmp/tagg_irreg_8.nc
+ LISTing to file tmp/tagg_irreg_9.nc
+ LISTing to file tmp/tagg_irreg_10.nc
+Replacing definition of axis TDAY_IR
+ LISTing to file tmp/tagg_irreg_2_reg.nc
+           *** NOTE: Not deleted: TDAY_IR
+           *** NOTE: Axis is in use by grid (G086)
+ LISTing to file tmp/tagg_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_2.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_3.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_4.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_5.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_2.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_3.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_4.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_5.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_6.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_7.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_8.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_9.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_10.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_3.nc
+ LISTing to file tmp/tagg_disjoint_T0varying_4_wrong.nc
+           *** NOTE: Not deleted: TDAY_WRONG
+           *** NOTE: Axis is in use by grid (G086)
+ LISTing to file tmp/tagg_single_1.nc
+ LISTing to file tmp/tagg_single_2.nc
+ LISTing to file tmp/tagg_single_3.nc
+ LISTing to file tmp/tagg_single_4.nc
+ LISTing to file tmp/tagg_single_5.nc
+ LISTing to file tmp/tagg_single_6.nc
+           *** NOTE: Not deleted: tday
+           *** NOTE: Axis is in use by grid (G086)
+ **ERROR: invalid command: given aggregation dataset name already in use: myagg2
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc, tmp/tagg_reg_2.nc
+ **TMAP ERR: non-existent or not on line
+             tmp/tagg_no_exist.nc
+define data/agg/t myaggbad = tmp/tagg_no_exist.nc, tmp/tagg_reg_2.nc
+ **TMAP ERR: non-existent or not on line
+             tmp/tagg_no_exist.nc
+define data/agg/t myaggbad = tmp/tagg_reg_1.nc, tmp/tagg_no_exist.nc
+ **ERROR: improper grid or axis definition: first file of aggregation has no time axis tmp/tagg_reg_no_T.nc
+DEFINE DATA/AGGREGAT/T myTindepagg = tmp/tagg_reg_no_T.nc
+ **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_reg_3.nc
+define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
+ **TMAP ERR: Unknown variable code
+             in file tmp/tagg_disjoint_T0varying_4_wrong.nc time axis variable is missing: TDAY_TVAR
+define data/agg/t myagg5_bad = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4_wrong.nc,tmp/tagg_disjoint_T0varying_5.nc
+ **ERROR: unknown command: garbage
+garbage command syntax
+ **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_single_1.nc
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+ **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_single_5.nc
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc, tmp/tagg_single_5.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file tmp/test1.nc
+ LISTing to file tmp/test2.nc
+ LISTing to file tmp/test3.nc
+ **ERROR: unknown command qualifier: erroneous
+set data/erroneous tmp/test1.nc
+ **ERROR: unknown command qualifier: erroneous
+set data /erroneous tmp/test1.nc
+ **TMAP ERR: non-existent or not on line
+             /erroneous(.nc ,.cdf,.nc)
+set data /erroneous, tmp/test1.nc
+ **ERROR: unknown command qualifier: garbage
+go/garbage tmp/testMe
+ **ERROR: unknown command qualifier: garbage
+go/garbage "tmp/testMe"
+ **ERROR: unknown command qualifier: garbage
+go/garbage /home/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl
+ **ERROR: unknown command qualifier: garbage
+go/garbage "/home/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl"
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: command line too long -- exceeds 2048
+DEFINE VARIABLE a={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7 [...]
+ **ERROR: variable unknown or not in data set: A
+load a
+ **ERROR: command syntax: command line too long -- exceeds 2048
+"/arch
+ **ERROR: command syntax: "/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf...
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0022.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0023.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr [...]
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis DAYT
+Replacing definition of axis ZAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis YAX
+ LISTing to file tmp/fcst_1.nc
+ LISTing to file tmp/fcst_2.nc
+ LISTing to file tmp/fcst_3.nc
+ LISTing to file tmp/fcst_4.nc
+ LISTing to file tmp/fcst_5.nc
+ LISTing to file tmp/fcst_6.nc
+ LISTing to file tmp/fcst_7.nc
+ LISTing to file tmp/fcst_8.nc
+ LISTing to file tmp/fcst_9.nc
+ LISTing to file tmp/fcst_10.nc
+ LISTing to file tmp/fcst_11.nc
+ LISTing to file tmp/long_fcst_1.nc
+ LISTing to file tmp/long_fcst_6.nc
+ LISTing to file tmp/one_var_fcst_1.nc
+ LISTing to file tmp/one_var_fcst_6.nc
+ LISTing to file tmp/consecutive_month_fcst.nc
+Replacing definition of axis TRUEMONTH
+ LISTing to file tmp/irregular_start_time_fcst.nc
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, bn_aggregate_f.jnl
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, my_fmrc
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Ambiguous coordinates on T axis: FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC_LETD_1]
+ **ERROR: error defining aggregate dataset: some files have duplicate forecast start times
+DEFINE DATA/AGGREGAT/F my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc,tmp/fcst_2.nc,tmp/fcst_3.nc
+ **TMAP ERR: non-existent or not on line
+             tmp/no_exist.nc
+DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/no_exist.nc")
+ **ERROR: error defining aggregate dataset: forecast start times are irregular or too gappy
+DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/consecutive_month_fcst.nc")
+ **ERROR: error defining aggregate dataset: forecast start times are irregular or too gappy
+DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/irregular_start_time_fcst.nc")
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis YAX
+Replacing definition of axis ZAX
+Replacing definition of axis TRUEMONTH
+ LISTing to file tmp/f01_e1_t1.nc
+ LISTing to file tmp/f01_e1_t2.nc
+ LISTing to file tmp/f01_e1_t3.nc
+ LISTing to file tmp/f01_e2_t1.nc
+ LISTing to file tmp/f01_e2_t2.nc
+ LISTing to file tmp/f01_e2_t3.nc
+ LISTing to file tmp/f01_e3_t1.nc
+ LISTing to file tmp/f01_e3_t2.nc
+ LISTing to file tmp/f01_e3_t3.nc
+ LISTing to file tmp/f01_e4_t1.nc
+ LISTing to file tmp/f01_e4_t2.nc
+ LISTing to file tmp/f01_e4_t3.nc
+ LISTing to file tmp/f01_e5_t1.nc
+ LISTing to file tmp/f01_e5_t2.nc
+ LISTing to file tmp/f01_e5_t3.nc
+ LISTing to file tmp/f02_e1_t1.nc
+ LISTing to file tmp/f02_e1_t2.nc
+ LISTing to file tmp/f02_e1_t3.nc
+ LISTing to file tmp/f02_e2_t1.nc
+ LISTing to file tmp/f02_e2_t2.nc
+ LISTing to file tmp/f02_e2_t3.nc
+ LISTing to file tmp/f02_e3_t1.nc
+ LISTing to file tmp/f02_e3_t2.nc
+ LISTing to file tmp/f02_e3_t3.nc
+ LISTing to file tmp/f02_e4_t1.nc
+ LISTing to file tmp/f02_e4_t2.nc
+ LISTing to file tmp/f02_e4_t3.nc
+ LISTing to file tmp/f02_e5_t1.nc
+ LISTing to file tmp/f02_e5_t2.nc
+ LISTing to file tmp/f02_e5_t3.nc
+ LISTing to file tmp/f03_e1_t1.nc
+ LISTing to file tmp/f03_e1_t2.nc
+ LISTing to file tmp/f03_e1_t3.nc
+ LISTing to file tmp/f03_e2_t1.nc
+ LISTing to file tmp/f03_e2_t2.nc
+ LISTing to file tmp/f03_e2_t3.nc
+ LISTing to file tmp/f03_e3_t1.nc
+ LISTing to file tmp/f03_e3_t2.nc
+ LISTing to file tmp/f03_e3_t3.nc
+ LISTing to file tmp/f03_e4_t1.nc
+ LISTing to file tmp/f03_e4_t2.nc
+ LISTing to file tmp/f03_e4_t3.nc
+ LISTing to file tmp/f03_e5_t1.nc
+ LISTing to file tmp/f03_e5_t2.nc
+ LISTing to file tmp/f03_e5_t3.nc
+ LISTing to file tmp/f04_e1_t1.nc
+ LISTing to file tmp/f04_e1_t2.nc
+ LISTing to file tmp/f04_e1_t3.nc
+ LISTing to file tmp/f04_e2_t1.nc
+ LISTing to file tmp/f04_e2_t2.nc
+ LISTing to file tmp/f04_e2_t3.nc
+ LISTing to file tmp/f04_e3_t1.nc
+ LISTing to file tmp/f04_e3_t2.nc
+ LISTing to file tmp/f04_e3_t3.nc
+ LISTing to file tmp/f04_e4_t1.nc
+ LISTing to file tmp/f04_e4_t2.nc
+ LISTing to file tmp/f04_e4_t3.nc
+ LISTing to file tmp/f04_e5_t1.nc
+ LISTing to file tmp/f04_e5_t2.nc
+ LISTing to file tmp/f04_e5_t3.nc
+ LISTing to file tmp/f05_e1_t1.nc
+ LISTing to file tmp/f05_e1_t2.nc
+ LISTing to file tmp/f05_e1_t3.nc
+ LISTing to file tmp/f05_e2_t1.nc
+ LISTing to file tmp/f05_e2_t2.nc
+ LISTing to file tmp/f05_e2_t3.nc
+ LISTing to file tmp/f05_e3_t1.nc
+ LISTing to file tmp/f05_e3_t2.nc
+ LISTing to file tmp/f05_e3_t3.nc
+ LISTing to file tmp/f05_e4_t1.nc
+ LISTing to file tmp/f05_e4_t2.nc
+ LISTing to file tmp/f05_e4_t3.nc
+ LISTing to file tmp/f05_e5_t1.nc
+ LISTing to file tmp/f05_e5_t2.nc
+ LISTing to file tmp/f05_e5_t3.nc
+ LISTing to file tmp/f06_e1_t1.nc
+ LISTing to file tmp/f06_e1_t2.nc
+ LISTing to file tmp/f06_e1_t3.nc
+ LISTing to file tmp/f06_e2_t1.nc
+ LISTing to file tmp/f06_e2_t2.nc
+ LISTing to file tmp/f06_e2_t3.nc
+ LISTing to file tmp/f06_e3_t1.nc
+ LISTing to file tmp/f06_e3_t2.nc
+ LISTing to file tmp/f06_e3_t3.nc
+ LISTing to file tmp/f06_e4_t1.nc
+ LISTing to file tmp/f06_e4_t2.nc
+ LISTing to file tmp/f06_e4_t3.nc
+ LISTing to file tmp/f06_e5_t1.nc
+ LISTing to file tmp/f06_e5_t2.nc
+ LISTing to file tmp/f06_e5_t3.nc
+ LISTing to file tmp/f07_e1_t1.nc
+ LISTing to file tmp/f07_e1_t2.nc
+ LISTing to file tmp/f07_e1_t3.nc
+ LISTing to file tmp/f07_e2_t1.nc
+ LISTing to file tmp/f07_e2_t2.nc
+ LISTing to file tmp/f07_e2_t3.nc
+ LISTing to file tmp/f07_e3_t1.nc
+ LISTing to file tmp/f07_e3_t2.nc
+ LISTing to file tmp/f07_e3_t3.nc
+ LISTing to file tmp/f07_e4_t1.nc
+ LISTing to file tmp/f07_e4_t2.nc
+ LISTing to file tmp/f07_e4_t3.nc
+ LISTing to file tmp/f07_e5_t1.nc
+ LISTing to file tmp/f07_e5_t2.nc
+ LISTing to file tmp/f07_e5_t3.nc
+ LISTing to file tmp/f08_e1_t1.nc
+ LISTing to file tmp/f08_e1_t2.nc
+ LISTing to file tmp/f08_e1_t3.nc
+ LISTing to file tmp/f08_e2_t1.nc
+ LISTing to file tmp/f08_e2_t2.nc
+ LISTing to file tmp/f08_e2_t3.nc
+ LISTing to file tmp/f08_e3_t1.nc
+ LISTing to file tmp/f08_e3_t2.nc
+ LISTing to file tmp/f08_e3_t3.nc
+ LISTing to file tmp/f08_e4_t1.nc
+ LISTing to file tmp/f08_e4_t2.nc
+ LISTing to file tmp/f08_e4_t3.nc
+ LISTing to file tmp/f08_e5_t1.nc
+ LISTing to file tmp/f08_e5_t2.nc
+ LISTing to file tmp/f08_e5_t3.nc
+ LISTing to file tmp/f09_e1_t1.nc
+ LISTing to file tmp/f09_e1_t2.nc
+ LISTing to file tmp/f09_e1_t3.nc
+ LISTing to file tmp/f09_e2_t1.nc
+ LISTing to file tmp/f09_e2_t2.nc
+ LISTing to file tmp/f09_e2_t3.nc
+ LISTing to file tmp/f09_e3_t1.nc
+ LISTing to file tmp/f09_e3_t2.nc
+ LISTing to file tmp/f09_e3_t3.nc
+ LISTing to file tmp/f09_e4_t1.nc
+ LISTing to file tmp/f09_e4_t2.nc
+ LISTing to file tmp/f09_e4_t3.nc
+ LISTing to file tmp/f09_e5_t1.nc
+ LISTing to file tmp/f09_e5_t2.nc
+ LISTing to file tmp/f09_e5_t3.nc
+ LISTing to file tmp/f10_e1_t1.nc
+ LISTing to file tmp/f10_e1_t2.nc
+ LISTing to file tmp/f10_e1_t3.nc
+ LISTing to file tmp/f10_e2_t1.nc
+ LISTing to file tmp/f10_e2_t2.nc
+ LISTing to file tmp/f10_e2_t3.nc
+ LISTing to file tmp/f10_e3_t1.nc
+ LISTing to file tmp/f10_e3_t2.nc
+ LISTing to file tmp/f10_e3_t3.nc
+ LISTing to file tmp/f10_e4_t1.nc
+ LISTing to file tmp/f10_e4_t2.nc
+ LISTing to file tmp/f10_e4_t3.nc
+ LISTing to file tmp/f10_e5_t1.nc
+ LISTing to file tmp/f10_e5_t2.nc
+ LISTing to file tmp/f10_e5_t3.nc
+ LISTing to file tmp/f11_e1_t1.nc
+ LISTing to file tmp/f11_e1_t2.nc
+ LISTing to file tmp/f11_e1_t3.nc
+ LISTing to file tmp/f11_e2_t1.nc
+ LISTing to file tmp/f11_e2_t2.nc
+ LISTing to file tmp/f11_e2_t3.nc
+ LISTing to file tmp/f11_e3_t1.nc
+ LISTing to file tmp/f11_e3_t2.nc
+ LISTing to file tmp/f11_e3_t3.nc
+ LISTing to file tmp/f11_e4_t1.nc
+ LISTing to file tmp/f11_e4_t2.nc
+ LISTing to file tmp/f11_e4_t3.nc
+ LISTing to file tmp/f11_e5_t1.nc
+ LISTing to file tmp/f11_e5_t2.nc
+ LISTing to file tmp/f11_e5_t3.nc
+ LISTing to file tmp/f04_e3_t1_1v.nc
+ LISTing to file tmp/f04_e3_t2_1v.nc
+ LISTing to file tmp/f04_e3_t3_1v.nc
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+ **ERROR: error defining aggregate dataset: grid definition of FCST_2 has changed on axis X of agg member 3
+list/x=150E/y=15n/L=10 fcst_2
+ **ERROR: error defining aggregate dataset: grid definition of FCST_2 has changed on axis T of agg member 3
+list/x=150E/y=15n/L=10 fcst_2
+ **ERROR: error defining aggregate dataset: grid definition of FCST_2 has changed on axis X of agg member 3
+list/x=150E/y=15n/L=10 fcst_2
+           *** NOTE: Variable "FCST" excluded from aggregate: E axis differs among members
+           *** NOTE: Variable "FCST_2" excluded from aggregate: E axis differs among members
+ **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
+DEFINE DATA/AGGREGAT/F tef_short = te_f01, te_f02_short, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+           *** NOTE: Variable "FCST" excluded from aggregate: F axis differs among members
+           *** NOTE: Variable "TF_TIMES" excluded from aggregate: F axis differs among members
+           *** NOTE: Variable "FCST_2" excluded from aggregate: F axis differs among members
+ **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
+DEFINE DATA/AGGREGAT/E tfe_short = tf_e1, tf_e2_short, tf_e3, tf_e4, tf_e5
+           *** NOTE: Variable "FCST" excluded from aggregate: Already has E axis
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Already has E axis
+           *** NOTE: Variable "REALIZATION" excluded from aggregate: Already has E axis
+ **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
+DEFINE DATA/AGGREGAT/E bad_ens = te_f01, te_f03, te_f04
+ **ERROR: error defining aggregate dataset: some files have duplicate forecast start times
+DEFINE DATA/AGGREGAT/F bad_fmrc = tf_e1, tf_e3, tf_e4
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
+Replacing definition of axis XAX10
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis tday
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+SHO VAR/XML
+SHO VAR/XML
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis tax
+ LISTing to file a.nc
+ LISTing to file a.nc
+Replacing definition of axis TAX
+ LISTing to file a.nc
+ LISTing to file a.nc
+Replacing definition of axis TAX
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX
+Replacing definition of axis TAX
+Replacing definition of axis TAX
+Replacing definition of axis TAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
  **ERROR: command syntax: unknown region name: @w
 set region/@w
  PERMANENT data cleared from memory
@@ -4103,6 +4687,23 @@ Re-defining viewport UM6
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Re-defining viewport UL6
+Re-defining viewport UM6
+Re-defining viewport UR6
+Re-defining viewport LL6
+Re-defining viewport LR6
+Replacing definition of axis TDAYS
+ Using every   4th vector in the X direction
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
 plot/i=1:10/j=1:20/nolabel i+j
@@ -4134,4 +4735,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 Mon Nov 9 15:04:17 PST 2015
+Ended at Wed Jun 15 12:07:47 PDT 2016
diff --git a/bench/ansley_official.rhel6-64_log b/bench/ansley_official.rhel6-64_log
index b62e1b4..0654627 100644
--- a/bench/ansley_official.rhel6-64_log
+++ b/bench/ansley_official.rhel6-64_log
@@ -1,10 +1,10 @@
 Procedure run_all to run all FERRET benchmarks
 Running FERRET version /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
--rwxr-xr-x. 1 ansley oerdnewp 80974676 Nov  9 15:00 /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
+-rwxr-xr-x. 1 ansley oerdnewp 117720321 Jun 15 11:10 /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
 Using external functions from /home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
 Running the tests of external functions y
 Benchmark run by ansley
-Note: ticket 2322: err msgs with SHOW DATA nofile to show the file name
+Note: ticket 2441: LET/D variables in a show data/var/xml
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -14,12 +14,13 @@ FER_DESCR=.
 FER_DIR=.
 FER_DSETS=.
 FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
-FER_GO=. /home/users/tmap/ferret/x86_64-linux/go /home/users/tmap/ferret/x86_64-linux/examples /home/users/tmap/ferret/x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
+FER_GO=. /home/users/tmap/ferret/x86_64-linux/go /home/users/tmap/ferret/x86_64-linux/examples /home/users/tmap/ferret/x86_64-linux/contrib /home/users/tmap/ferret/tmap_go /home/users/ansley/las.v8.4.rc5/JavaSource/resources/iosp/scripts/
 FER_GRIDS=.
 FER_LIBS=/home/users/tmap/ferret/x86_64-linux/lib
 FER_PALETTE=. /home/users/tmap/ferret/x86_64-linux/ppl
 PWD=/home/users/ansley/build/current_trunk/FERRET/bench
-Beginning at Mon Nov 9 15:02:29 PST 2015
+PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/x86_64-linux/ext_func/pylibs
+Beginning at Wed Jun 15 12:05:35 PDT 2016
 ! BN500_ALL.JNL
 ! - run all the benchmark tests
 ! - ordered (more or less) from least to most complex
@@ -122,9 +123,19 @@ Beginning at Mon Nov 9 15:02:29 PST 2015
 !             on a system in order for it to pass the benchmarks.
 !
 ! 11/06 *acm* New bn602_bug_fixes for version 6.02
-* V610  *acm* 3/08 - add new MODE NLEVELS
-* V685  *sh* 11/13 - added bn_vtree to test SHOW VAR/TREE
-* V698+ *sh* 06/15 - added bn_auxiliary
+! V610  *acm* 3/08 - add new MODE NLEVELS
+! V685  *sh* 11/13 - added bn_vtree to test SHOW VAR/TREE
+! V698+ *sh* 06/15 - added bn_auxiliary
+! V698+ *sh* 11/15 - added bn_aggregate_t and bn_unquoted_args.jnl
+! V698+ *sh* 1/16 - added bn_aggregate_f
+!            2/16 - added bn_aggregate_tef
+! V698+ *acm*2/16 - add bn_speedtest: simple speed test, parsing.
+!                   2/16/24 do fewer # repetitions.
+! V698+ *acm*2/16 - add bn_show_noupcase: output of SHOW responds to MODE UPCASE
+! V698+ *acm*2/16 - add bn_letd_attributes: attribute/list handling of LET/D variables
+!       *sh* 3/16 - added bn_plot_along.jnl
+!       *acm*4/16 - added bn_show_commands.jnl
+!       *acm*4/16 - added bn_plot_decimate.jnl
  
 ! Include this statement to compare the outupt of 6D Ferret with
 ! previous 4D benchmark logs.
@@ -144,6 +155,9 @@ GO bn_syntax
 ! for V4.20 added blanks surrounding colons
 !	and tests of "escapes" using back slashes
 ! for V531 test continuation lines and long input lines
+! for v698 interpretation of unknown qualifiers changed -- e.g. say /notaqual
+! V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables,
+! pre-defined axes and grids.
  
 ! SET - SHOW - CANCEL DATA
 USE gtbc011
@@ -423,7 +437,7 @@ SHOW MODES
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -458,7 +472,7 @@ SHOW MODES
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -493,7 +507,7 @@ SHOW MODES
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -636,8 +650,8 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid XABSTRACT
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -661,11 +675,11 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid PS3DT2
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
 SET GRID/SAVE
@@ -674,20 +688,20 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid PS3DT2
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
 SHOW GRID/X=180:165W SALT
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
  
@@ -714,83 +728,6 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  
 ! SHOW VARIABLES
-SHOW VARIABLES/DIAGNOSTIC	! alphabetical list
-Diagnostic variables:
-name         title
-AIR       AIR TEMPERATURE
-CAIR      CLIMATOLOGICAL AIR TEMPERATURE
-CMSK      CONVECTIVE ADJUSTMENT MASK
-DENS      (DENSITY-1)*1000
-DPDX      d/dX( BAROCLINIC PRESSURE )
-DPDY      d/dY( BAROCLINIC PRESSURE )
-DTDT      d/dt(TEMPERATURE)
-DUDT      d/dt(U)
-DVDT      d/dt(V)
-DWDT      d/dt(W)
-FUW       ZONAL ADVECTIVE COEFFICIENT, FUW
-FVN       MERIDIONAL ADVECTIVE COEFFICIENT, FVN
-PCDZ      VERTICAL MOMENTUM DIFFUSION COEFFICIENT
-QAD       TOTAL HEAT ADVECTION
-QADX      ZONAL HEAT ADVECTION
-QADY      MERIDIONAL HEAT ADVECTION
-QADZ      VERTICAL HEAT ADVECTION
-QCDZ      VERTICAL HEAT DIFFUSION COEFFICIENT
-QDF       TOTAL HEAT DIFFUSION
-QDFH      HORIZONTAL HEAT DIFFUSION
-QDFZ      VERTICAL HEAT DIFFUSION
-QEVA      EVAPORATIVE HEAT
-QFLX      SURFACE HEAT FLUX
-QRAD      RADIATIVE HEAT
-QSEN      SENSIBLE HEAT
-RHO       NORMALIZED DENSITY
-RHO0      DENSITY REFERENCED TO SURFACE
-SALI      SALINITY
-TAU       MAGNITUDE OF WIND STRESS
-UAD       TOTAL ADVECTION OF U
-UADX      ZONAL ADVECTION OF U
-UADY      MERIDIONAL ADVECTION OF U
-UADZ      VERTICAL ADVECTION OF U
-UAVZ      VERTICALLY AVERAGED ZONAL VELOCITY
-UBP       U DUE TO TOTAL PRESSURE
-UBPI      U DUE TO BAROCLINIC PRESSURE EFFECTS
-UBPS      U DUE TO SURFACE PRESSURE EFFECTS
-UBWI      U DUE TO WIND STRESS EFFECTS
-UCOE      U DUE TO EXPLICIT CORIOLIS CALCULATION
-UCOI      U DUE TO IMPLICIT CORIOLIS CORRECTION
-UDF       TOTAL DIFFUSION OF U
-UDFH      HORIZONTAL DIFFUSION OF U
-UDFZ      VERTICAL DIFFUSION OF U
-VAD       TOTAL ADVECTION OF V
-VADX      ZONAL ADVECTION OF V
-VADY      MERIDIONAL ADVECTION OF V
-VADZ      VERTICAL ADVECTION OF V
-VAVZ      VERTICALLY AVERAGED MERIDIONAL VELOCITY
-VBP       V DUE TO TOTAL PRESSURE
-VBPI      V DUE TO BAROCLINIC PRESSURE EFFECTS
-VBPS      V DUE TO SURFACE PRESSURE EFFECTS
-VBWI      V DUE TO WIND STRESS EFFECTS
-VCOE      V DUE TO EXPLICIT CORIOLIS CALCULATION
-VCOI      V DUE TO IMPLICIT CORIOLIS CORRECTION
-VDF       TOTAL DIFFUSION OF V
-VDFH      HORIZONTAL DIFFUSION OF V
-VDFZ      VERTICAL DIFFUSION OF V
-W_T       VERTICAL VELOCITY COMPUTED ON TS GRID
-W_U       VERTICAL VELOCITY COMPUTED ON UV GRID
-SHOW VARIABLES/DIAGNOSTIC  Q
-Diagnostic variables:
-name         title
-QAD       TOTAL HEAT ADVECTION
-QADX      ZONAL HEAT ADVECTION
-QADY      MERIDIONAL HEAT ADVECTION
-QADZ      VERTICAL HEAT ADVECTION
-QCDZ      VERTICAL HEAT DIFFUSION COEFFICIENT
-QDF       TOTAL HEAT DIFFUSION
-QDFH      HORIZONTAL HEAT DIFFUSION
-QDFZ      VERTICAL HEAT DIFFUSION
-QEVA      EVAPORATIVE HEAT
-QFLX      SURFACE HEAT FLUX
-QRAD      RADIATIVE HEAT
-QSEN      SENSIBLE HEAT
 LET A=i
 SHOW VARIABLES
  Created by DEFINE VARIABLE:
@@ -1040,10 +977,14 @@ list/nohead/i=1 : 3 i
 ! test escapes using back slashes (bn420 - 11/95)
 ! (moved to bn420_grave)
  
-say \/help	! "/" should pass through
-/help
+say \/notaqualifier	! "/" should pass through
+/notaqualifier
+! starting 12/2015 a space preceding a unrecognized qualifier turns that
+! qualifier into an argument
+say /notaqualifier
+/notaqualifier
 set mode ignore
-say /help
+say/notaqualifier
 canc mode ignore
  
 say this\;that	! ";" should pass through
@@ -10474,18 +10415,18 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.951"
-FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7"
+FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
+NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = " 9-Nov-15"
-SESSION_TIME = "15:02"
-SESSION_PID = "8191"
-DELTA_CPU = "5.03223"
-CLOCK_SECS = "7.506"
-CURRENT_DATE = " 9-Nov-15"
-CURRENT_TIME = "15:02:37"
+SESSION_DATE = "15-Jun-16"
+SESSION_TIME = "12:05"
+SESSION_PID = "2513"
+DELTA_CPU = "4.71228"
+CLOCK_SECS = "7.222"
+CURRENT_DATE = "15-Jun-16"
+CURRENT_TIME = "12:05:43"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -10503,18 +10444,18 @@ show symbol/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.951"
-FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7"
+FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
+NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = " 9-Nov-15"
-SESSION_TIME = "15:02"
-SESSION_PID = "8191"
-DELTA_CPU = "0"
-CLOCK_SECS = "7.506"
-CURRENT_DATE = " 9-Nov-15"
-CURRENT_TIME = "15:02:37"
+SESSION_DATE = "15-Jun-16"
+SESSION_TIME = "12:05"
+SESSION_PID = "2513"
+DELTA_CPU = "0.001"
+CLOCK_SECS = "7.223"
+CURRENT_DATE = "15-Jun-16"
+CURRENT_TIME = "12:05:43"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 S1 = "hello"
@@ -10524,9 +10465,9 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = " 9-Nov-15"
-SESSION_TIME = "15:02"
-SESSION_PID = "8191"
+SESSION_DATE = "15-Jun-16"
+SESSION_TIME = "12:05"
+SESSION_PID = "2513"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10536,15 +10477,15 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = " 9-Nov-15"
-SESSION_TIME = "15:02"
-SESSION_PID = "8191"
+SESSION_DATE = "15-Jun-16"
+SESSION_TIME = "12:05"
+SESSION_PID = "2513"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = " 9-Nov-15"
-SESSION_TIME = "15:02"
-SESSION_PID = "8191"
+SESSION_DATE = "15-Jun-16"
+SESSION_TIME = "12:05"
+SESSION_PID = "2513"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10578,9 +10519,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) Ver.6.951"
+LAB1 = "FERRET (beta/dbg) Ver.7"
 LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "09-NOV-2015 15:02:37"
+LAB3 = "15-JUN-2016 12:05:43"
 LABX = "X"
 LAB4 = "Y : 10"
 LABNUM_Y = "4"
@@ -10675,18 +10616,18 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.951"
-FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7"
+FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
+NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = " 9-Nov-15"
-SESSION_TIME = "15:02"
-SESSION_PID = "8191"
-DELTA_CPU = "0.008999"
-CLOCK_SECS = "7.515"
-CURRENT_DATE = " 9-Nov-15"
-CURRENT_TIME = "15:02:37"
+SESSION_DATE = "15-Jun-16"
+SESSION_TIME = "12:05"
+SESSION_PID = "2513"
+DELTA_CPU = "0.006999"
+CLOCK_SECS = "7.231"
+CURRENT_DATE = "15-Jun-16"
+CURRENT_TIME = "12:05:43"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -12297,8 +12238,8 @@ LIST/FORMAT=comma/precision=9 randu(i)*temp*1e7
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    135.5W   ,134.5W   
-1.5S,1.6675084E+08,2.0208841E+08
-1.167S,1.6616283E+08,2.0136658E+08
+1.5S,  166750845.,  202088412.
+1.167S,  166162833.,  201366579.
  
 ! small number formatting test
 set region/i=95:96/j=41:42/k=2/l=5
@@ -12368,6 +12309,8 @@ GO bn_dynamic_grids	! added 9/27/95, V420 ->V491 4/98
 !			      numericals results found here are verified to be correct
 ! V550 11/02 *sh* - documentation change only reflecting new modulo behavior
 ! V603  5/07 *acm*  documentation changew - some of the context errors have gone away.
+! V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables,
+! pre-defined axes and grids.
  
 ! deliberate dynamic grid errors
  
@@ -12749,11 +12692,11 @@ Dynamic axes:
     no implicit axes
 show grid tu
     GRID (G004)
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
+ name       axis              # pts   start                end                 subset
+ PSXU      LONGITUDE          160mr   131E                 70W                 full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00   full
  normal    E
  normal    F
  
@@ -12865,8 +12808,10 @@ Dynamic axes:
  
 ! regridding between grids with mutually exclusive axes
 cancel region
-define grid/y=ps3dt gy
-define grid/x=ps3dt gx
+define grid/y=`temp,return=grid` gy
+ !-> define grid/y=PS3DT2 gy
+define grid/x=`temp,return=grid` gx
+ !-> define grid/x=PS3DT2 gx
 LET/QUIET a = x[g=gx]
 list/i=1:4 a,a[g=gy]   ! nothing to regrid - both are same
              LONGITUDE: 130E to 134E
@@ -12963,7 +12908,7 @@ Dynamic axes:
 ! * * * dynamic generation of pseudo-variables * * *
 list x[x=.1:1:.1]			! dynamic abstract
              VARIABLE : X
-                        axis (AX005)
+                        axis (AX004)
              SUBSET   : 10 points (X)
  0.1  /  1:  0.10000
  0.2  /  2:  0.20000
@@ -12977,7 +12922,7 @@ list x[x=.1:1:.1]			! dynamic abstract
  1    / 10:  1.00000
 list x[gx=psxu,x=130:150:2.5]		! dynamic based on named axis
              VARIABLE : X
-                        axis (AX003)
+                        axis (AX002)
              SUBSET   : 9 points (LONGITUDE)
  130E   / 1:  130.000
  132.5E / 2:  132.500
@@ -13064,24 +13009,24 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX004)   X                    7 r   0.1                  9.1
- (AX003)   Y                    3 r   95                   109
+ (AX009)   X                    7 r   0.1                  9.1
+ (AX002)   Y                    3 r   95                   109
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX004)   X                    7 r   0.1                  9.1
- (AX005)   Y                   10 r   101                  110
+ (AX009)   X                    7 r   0.1                  9.1
+ (AX004)   Y                   10 r   101                  110
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX003)                         use count:   1
-    AXIS (AX004)                         use count:   2
-    AXIS (AX005)                         use count:   1
+    AXIS (AX002)                         use count:   1
+    AXIS (AX009)                         use count:   2
+    AXIS (AX004)                         use count:   1
  
 ! ambiguous coordinate tests
 list/order=x  x[x=0.1:10:1.5] +  x[x=1.1:11:1.5]
@@ -13101,14 +13046,14 @@ show grid/dyn
 Dynamic grids:
     GRID (G004)                          use count:   2
  name       axis              # pts   start                end
- (AX003)   X                    7 r   0.1                  9.1
+ (AX002)   X                    7 r   0.1                  9.1
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX003)                         use count:   1
+    AXIS (AX002)                         use count:   1
  
 ! box size on dynamic axes
 cancel region
@@ -13134,8 +13079,8 @@ show grid/x
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G004)
     GRID (G004)
- name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ name       axis              # pts   start                end                 subset
+ (AX009)   X                    5 i   1                    6561                4 pts
  normal    Y
  normal    Z
  normal    T
@@ -13167,7 +13112,7 @@ list/i=1:10 x[gx=temp]			! from named variable
  139.5E / 10:  139.500
 list x[g=temp,x=150w:130w:2.5]		! dynamic based on named variable
              VARIABLE : X
-                        axis (AX001)
+                        axis (AX012)
              FILENAME : gtsa056_1.cdf
              SUBSET   : 9 points (LONGITUDE)
  150W   / 1:  210.000
@@ -13211,14 +13156,14 @@ show grid/dyn
 Dynamic grids:
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX009)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX003)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! this expression does NOT inherit the X axis -- the result is
 !	i) ambiguous X axis coordinates
@@ -13240,7 +13185,7 @@ show grid/dynamic
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX005)   LONGITUDE            5 r   129.5W               113.5W
+ (AX002)   LONGITUDE            5 r   129.5W               113.5W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13248,15 +13193,15 @@ Dynamic grids:
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX009)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX005)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX002)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[g=temp,i=101:120:4]
              VARIABLE : TEMP[I=101:120:4]+X[G=TEMP,I=101:120:4]
@@ -13279,7 +13224,7 @@ SET REGION/I=101:105/J=46:50/l=1/k=1
 ! deliberate errors:  ****
 list x[i=5:1:1]		! not an error: inverted order
              VARIABLE : X
-                        axis (AX005)
+                        axis (AX002)
              SUBSET   : 5 points (X)
  1   / 1:  1.00000
  2   / 2:  2.00000
@@ -13324,7 +13269,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX005)   LONGITUDE            6 i   108.5W(-468.5)       98.5W(-458.5)
+ (AX002)   LONGITUDE            6 i   108.5W(-468.5)       98.5W(-458.5)
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13332,15 +13277,15 @@ Dynamic grids:
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX009)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX005)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX002)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! regular dynamic axis
 ! ... by subscript
@@ -13408,22 +13353,22 @@ Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
  PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX005)   LATITUDE             4 r   0.5S                 4N
+ (AX002)   LATITUDE             4 r   0.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX009)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX005)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX002)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! ========
 ! 2/96: repeat the very same commands using GX=lo:hi:delta notation
@@ -13585,7 +13530,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX001)   LONGITUDE            4 r   130W                 121W
+ (AX012)   LONGITUDE            4 r   130W                 121W
  (AX004)   LATITUDE             4 r   0.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13593,7 +13538,7 @@ Dynamic grids:
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX009)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
@@ -13601,8 +13546,8 @@ Dynamic grids:
  normal    F
 Dynamic axes:
     AXIS (AX004)                         use count:   1
-    AXIS (AX001)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX012)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! the same tests but now on a nested definition
 ! regular dynamic axis
@@ -13778,7 +13723,7 @@ Dynamic grids:
  normal    F
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
- (AX001)   LONGITUDE            4 r   130W                 121W
+ (AX012)   LONGITUDE            4 r   130W                 121W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13786,7 +13731,7 @@ Dynamic grids:
  normal    F
 Dynamic axes:
     AXIS (AX004)                         use count:   1
-    AXIS (AX001)                         use count:   1
+    AXIS (AX012)                         use count:   1
  
 ! irregular dynamic axis
 ! ... by subscript
@@ -13924,7 +13869,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX001)   LONGITUDE            8 r   90W                  62W
+ (AX012)   LONGITUDE            8 r   90W                  62W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13933,14 +13878,14 @@ Dynamic grids:
     GRID (G004)                          use count:   1
  name       axis              # pts   start                end
  PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX003)   LATITUDE             6 r   3.5S                 4N
+ (AX009)   LATITUDE             6 r   3.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX012)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! nested modulo (the dynamic axis is **NOT** modulo)
 ! ... by subscript
@@ -14122,7 +14067,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   LONGITUDE            9 r   101W                 53W
+ (AX009)   LONGITUDE            9 r   101W                 53W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -14137,7 +14082,7 @@ Dynamic grids:
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX003)                         use count:   1
+    AXIS (AX009)                         use count:   1
     AXIS (AX004)                         use count:   1
  
 ! calendar axes
@@ -14170,7 +14115,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
 list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`]			! pseudo-var
  !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
              VARIABLE : T
-                        axis (AX005)
+                        axis (AX002)
              SUBSET   : 3 points (TIME)
  15-JAN-1982 00 / 1:  723925.
  17-JAN-1982 00 / 2:  723927.
@@ -14472,11 +14417,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX1_10   X                   10 r   1                    10
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1_10   X                   10 r   1                    10                  full
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -14568,11 +14513,11 @@ show data/full
  
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX1_10   X                   10 r   1                    10
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1_10   X                   10 r   1                    10                  full
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
  
@@ -14603,43 +14548,43 @@ cancel variables/all
 set data/format=cdf test_abs
 show grid j1 jkl jkl2 iavejkl ijkl
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
+ YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
+ YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU14
- name       axis              # pts   start                end
- XAX1_10   X                   10 r   1                    10
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1_10   X                   10 r   1                    10                  full
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -14825,11 +14770,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID PS3DU1
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYU      LATITUDE           100 i   27.672S              50N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXU      LONGITUDE          160mr   131E                 70W                 full
+ PSYU      LATITUDE           100 i   27.672S              50N                 full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
  normal    E
  normal    F
 cancel data test_fil0
@@ -15015,11 +14960,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID GLZ14
- name       axis              # pts   start                end
- PSXU69_72 LONGITUDE            4mr   161W                 158W
- PSYU      LATITUDE           100 i   27.672S              50N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXU69_72 LONGITUDE            4mr   161W                 158W                full
+ PSYU      LATITUDE           100 i   27.672S              50N                 full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
  normal    E
  normal    F
 cancel data test_fil
@@ -15179,7 +15124,7 @@ load temp[g=u]
  strip regrid on X: TEMP --> PS3DU2           @LIN
  reading TEMP     M: 43 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 39 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 40 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
 load temp[g=u at lin]
  dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -15405,7 +15350,7 @@ LIST temp[g=u,gy=u at ave]	! V4.20 mod
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  reading TEMP     M: 48 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  regrid  TEMP     M:  6 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 40 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 39 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  -DELETE TEMP     M:  6 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
              VARIABLE : TEMPERATURE (deg. C)
@@ -15537,7 +15482,7 @@ LIST temp[g=u]
  allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 20 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ reading TEMP     M: 19 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  regrid XY
  regrid  TEMP     M: 13 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
@@ -15673,9 +15618,9 @@ LIST temp[g=u,gy=u at asn]
  strip regrid on X: TEMP --> PS3DU2           @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  reading TEMP     M: 52 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 20 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  regrid  TEMP     M: 56 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 19 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 20 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at LIN, on Y at ASN
@@ -15718,7 +15663,7 @@ LIST temp[g=u,gz=u at asn]
  eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 19 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ reading TEMP     M: 20 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  regrid XY
  regrid  TEMP     M: 51 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
@@ -16544,9 +16489,9 @@ LIST temp[g=g5_10,gt=g5_10 at asn]
 ! unspecified regions
 SET MODE IGNORE	! V.5 change
 canc reg
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
 set reg/l=1:3  ! x,y,z unspecified
 load temp
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
@@ -16665,10 +16610,10 @@ load temp[g=u,gy=u at asn]
  dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  
 canc reg
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
 use gtsa056_2		!kob 4/99
 set reg/i=101:105/j=41:42  ! z,t unspecified
 load temp[g=u]
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
@@ -17522,7 +17467,6 @@ PPL plot 114  complete
  
 set mode/last interp
 cancel region
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
  
 ! 1/00 additions to check details of @AVE bevavior
 define axis/x=1.1:7.1:1 xoffset
@@ -17534,6 +17478,7 @@ let a1 = x[gx=x1pt]	! single point
 let a2 = x[gx=x2pt]
  
 list a1[gx=xoffset at ave]
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A1       C:  7 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
@@ -18260,11 +18205,11 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G011)
     GRID (G011)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
  normal    E
  normal    F
 list atime[gt=thour at max]
@@ -18295,11 +18240,11 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- THOUR     TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ THOUR     TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
  normal    E
  normal    F
  
@@ -19632,11 +19577,11 @@ CAN MODE VERIFY
   time range: 366 to 4018.4
  
     GRID GHB1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME1     T (hour)             6 r   366                  4018.4
+ TIME1     T (hour)             6 r   366                  4018.4              full
  normal    E
  normal    F
  
@@ -19710,11 +19655,11 @@ CAN MODE VERIFY
   time range: 366 to 3287.9
  
     GRID GJR1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME2     T (hour)             3 i   366                  3287.9
+ TIME2     T (hour)             3 i   366                  3287.9              full
  normal    E
  normal    F
  
@@ -23467,11 +23412,11 @@ GO err490_neg_time_show_grid.jnl
 set data gtsa056_2
 show grid/t=15-JAN-1982:15-JAN-1983 temp
     GRID PS3DT1
- name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME4     TIME               168mr   15-JAN-1982 14:00    07-JUN-1983 13:00
+ name       axis              # pts   start                end                 subset
+ 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
  normal    E
  normal    F
  
@@ -25602,10 +25547,10 @@ show grid
  Default grid for DEFINE VARIABLE is (G012)
  Last successful data access was on grid (G012)
     GRID (G012)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
- Z10       Z                   10 r   1                    10
+ Z10       Z                   10 r   1                    10                  full
  normal    T
  normal    E
  normal    F
@@ -25682,7 +25627,7 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Mon Nov  9 15:02:45 PST 2015
+Wed Jun 15 12:05:50 PDT 2016
  
 GO bn_reset
 cancel mode verify
@@ -25839,14 +25784,14 @@ list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50})	! only I=2 from result
  const_v {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
  eval    (C09,V02 C: 11 dset:   1 I:   30   30  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 30 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 29 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    (C09,V02 C: 11 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 26 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 25 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    (C09,V02 C: 11 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 24 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 32 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ reading SST      M: 23 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 31 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
  -DELETE (C01,V02 M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 28 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 27 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST[L=1,Y=-2:2],{30,40,50})
              FILENAME : coads_climatology.cdf
@@ -25859,12 +25804,12 @@ list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50})	! only I=2 from result
  1S   / 45:  28.5607
  -DELETE (C01,V02 M: 34 dset:   1 I:    2    2  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 cancel memory/all
- -DELETE (C09,V02 M: 22 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 24 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C09,V02 M: 25 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C09,V02 M: 29 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 30 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C09,V02 M: 21 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 23 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C09,V02 M: 24 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C09,V02 M: 28 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 29 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE (C01,V02 M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
@@ -25876,12 +25821,12 @@ list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  const_v {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 26 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 24 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 22 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE          M: 29 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 30 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 25 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 25 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 23 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE          M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 29 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 24 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
@@ -25892,10 +25837,10 @@ list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  1N   / 46:  28.2222  28.1992  28.4514
  1S   / 45:  28.1514  28.5607  28.8326
 cancel memory/all
- -DELETE SST      M: 22 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 24 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 30 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 21 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 23 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M: 29 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
  dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -25904,18 +25849,18 @@ list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
  allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 30 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ const_v {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
  eval    A        C:  9 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 22 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  9 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 29 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 28 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  9 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 28 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 24 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 25 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 30 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading SST      M: 27 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 23 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 24 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(A  ,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25927,11 +25872,11 @@ list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
  
 ! these should NOT break up the access into chunks
 cancel memory/all
- -DELETE SST      M: 22 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 26 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 29 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 32 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 21 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M: 25 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 27 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 28 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 31 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE A        M: 33 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE A        M: 34 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
@@ -25948,10 +25893,10 @@ list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
  const_v {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
  eval    (C09,V02 C: 11 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 29 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 32 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ reading SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 31 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
  -DELETE A        M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 26 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 25 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST[I=30:40],{30,40,50})
              FILENAME : coads_climatology.cdf
@@ -25962,14 +25907,14 @@ list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
  1N   / 46:  28.2222  28.1992     ....
  1S   / 45:  28.1514  28.5607     ....
 let/quiet a = sst[i=30:40]
- -DELETE (C09,V02 M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C09,V02 M: 27 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  -DELETE (C01,V02 M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
  dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
 cancel memory/all
- -DELETE SST      M: 29 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  8 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -25977,14 +25922,14 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ const_v {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
  eval    A        C:  9 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE          M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ -DELETE          M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
  -DELETE          M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 32 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 31 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(A,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25994,7 +25939,7 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  1N   / 46:  28.2222  28.1992     ....
  1S   / 45:  28.1514  28.5607     ....
 cancel memory/all
- -DELETE A        M: 26 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 25 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
@@ -26006,10 +25951,10 @@ list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
  const_v {30}     M: 34 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     1 dset:   1
  eval    A        C:  9 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 29 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 26 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 25 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 33 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 28 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 27 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {30}     M: 34 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(A,{30})
              FILENAME : coads_climatology.cdf
@@ -26021,8 +25966,8 @@ list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
  1N   / 46:  28.2222
  1S   / 45:  28.1514
 cancel memory/all
- -DELETE SST      M: 29 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 32 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 31 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 33 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
  dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
@@ -26040,9 +25985,9 @@ list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
  doing sampling tpry on I axis:     1     1 dset:   1
  eval    A        C: 11 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 29 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 28 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE cnst     M: 33 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 26 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 25 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(A,30)
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (LATITUDE)
@@ -26053,8 +25998,8 @@ list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
  1N   / 46:  28.2222
  1S   / 45:  28.1514
 cancel memory/all
- -DELETE A        M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C11,V02 M: 32 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M: 27 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C11,V02 M: 31 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE (C01,V02 M: 33 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 let/quiet fsst = sst[x=@fln] 		! fill holes to allow @iin to work
@@ -26079,13 +26024,13 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  eval    FSST     C: 12 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[I=1:180 at FLN:1,D=1]
  strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M: 28 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 27 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing moduloing SST on X axis:     1   180 dset:   1
  doing --> SST[I=1:180 at FLN:1,D=1]
  doing --> FSST[X=20E:20E(380)@IIN,D=1]
- -DELETE          M: 32 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ -DELETE          M: 31 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
  -DELETE          M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 24 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 23 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(A,{30,40,50})
              FILENAME : coads_climatology.cdf
@@ -26096,12 +26041,12 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  1N   / 46:  182881720.  245818833.  306844239.
  1S   / 45:  183667676.  246892478.  309487473.
 cancel memory/all
- -DELETE FSST     M: 22 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 25 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:    0  181  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE FSST     M: 21 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 24 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:    0  181  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 27 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 28 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 29 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE FSST     M: 30 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE FSST     M: 29 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  
 ! now test optimization that uses large memory chunks if available
@@ -26119,15 +26064,15 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 30 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ const_v {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 26 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 22 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 25 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 34 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 29 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 25 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 30 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 24 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -26139,9 +26084,9 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.5607
  3   / 3:  28.8326
 cancel memory/all
- -DELETE SST      M: 22 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 29 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 21 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M: 28 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 33 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 load/l=1/y=0 sst[I=30:39]
@@ -26159,12 +26104,12 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  const_v {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 22 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 25 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 28 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 29 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 30 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 24 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 27 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 29 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
@@ -26177,10 +26122,10 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.5607
  3   / 3:  28.8326
 cancel memory/all
- -DELETE SST      M: 22 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 29 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 24 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 27 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M: 28 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 load/l=1/y=0 sst[I=30:40]
  dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
@@ -26195,15 +26140,15 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ const_v {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 22 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 30 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 26 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 29 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 25 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 24 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE tpry     M: 33 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -26215,10 +26160,10 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.5607
  3   / 3:  28.8326
 cancel memory/all
- -DELETE SST      M: 22 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 28 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 30 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M: 27 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 29 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 load/l=1/y=0 sst[I=30:41]
  dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
@@ -26233,15 +26178,15 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 30 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ const_v {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 22 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 33 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 25 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 29 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 30 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading SST      M: 24 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 25 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 28 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -26306,7 +26251,7 @@ Dynamic grids:
     GRID (G017)                          use count:   2
  name       axis              # pts   start                end
  ABSTRACT  X             99999999 r   1                    1.E+08
- (AX002)   LATITUDE             5 r   1S                   1N
+ (AX004)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
@@ -26314,13 +26259,13 @@ Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX002)   LATITUDE             5 r   1S                   1N
+ (AX004)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX002)                         use count:   2
+    AXIS (AX004)                         use count:   2
 cancel memory/all
 let/quiet a = sst[l=1,y=1s:1n:.5]
 list SAMPLEI(a,{30,40,50})
@@ -26340,7 +26285,7 @@ Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
  ABSTRACT  X             99999999 r   1                    1.E+08
- (AX001)   LATITUDE             5 r   1S                   1N
+ (AX012)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
@@ -26348,13 +26293,13 @@ Dynamic grids:
     GRID (G017)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE             5 r   1S                   1N
+ (AX012)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   2
+    AXIS (AX012)                         use count:   2
  
 ! sampling a pseudo-variable
 list SAMPLEI(X[x=1:12],{3,4,7,15})
@@ -26511,9 +26456,9 @@ list SAMPLEI(Y[y=110:200:10],{3,4,7})
 cancel memory/all
 set mode diagnostic
 list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
- dealloc  dynamic grid (G017)          NORMAL    (AX002)   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  (AX002)   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  (AX002)   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G017)          NORMAL    (AX004)   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  (AX004)   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  (AX004)   NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid (C01,V02 C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid (C09,V02 C: 10 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -26529,8 +26474,8 @@ list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
  eval    (C09,V02 C: 10 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 24 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    (C09,V02 C: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 20 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE Y        M: 30 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
+ reading SST      M: 21 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
  -DELETE SST      M: 32 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE tpry     M: 25 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -26561,7 +26506,7 @@ list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48}) !   <-- CACHE HIT FAILS!!!
  reading SST      M: 33 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    (C09,V02 C: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 16 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE Y        M: 30 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
+ -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
  -DELETE tpry     M: 25 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE tpry     M: 28 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -26595,8 +26540,8 @@ list a 			!   <-- CACHE HIT FAILS!!!
  reading SST      M: 11 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    (C09,V01 C: 12 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M:  9 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE Y        M: 30 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE          M: 26 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
+ -DELETE          M: 27 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE tpry     M: 12 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE {31-,48} M: 19 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
@@ -26945,11 +26890,11 @@ set region/i=1:4/j=1:3/l=1:2
 use bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- XLON      LONGITUDE           40mr   141E                 180E
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ XLON      LONGITUDE           40mr   141E                 180E                full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar
@@ -26971,11 +26916,11 @@ canc data/all
 use/order=yx bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- YLAT      X (degrees_north)   30 r   1                    30
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ YLAT      X (degrees_north)   30 r   1                    30                  full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar
@@ -26997,11 +26942,11 @@ canc data/all
 use/order=tyx bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- XLON      T (degrees_east)    40mr   141                  180
+ XLON      T (degrees_east)    40mr   141                  180                 full
  normal    E
  normal    F
 list xytvar
@@ -27023,11 +26968,11 @@ canc data/all
 use/order=txy bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 list xytvar
@@ -27050,10 +26995,10 @@ canc data/all
 use/order=zxy bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
- YLAT      Z (degrees_north)   30 r   1                    30
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
+ YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
  normal    E
  normal    F
@@ -27077,11 +27022,11 @@ canc data/all
 use/order=tx bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 list xytvar
@@ -27104,20 +27049,20 @@ canc data/all
 use/order=txyz bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 show grid var
     GRID GPC1
- name       axis              # pts   start                end
- TAX1_1    X                    1 r   1                    1
- XAX1_4    Y                    4 r   1                    4
- YAX1_3    Z                    3 r   1                    3
- ZAX1_2    T                    2 r   1                    2
+ name       axis              # pts   start                end                 subset
+ TAX1_1    X                    1 r   1                    1                   full
+ XAX1_4    Y                    4 r   1                    4                   full
+ YAX1_3    Z                    3 r   1                    3                   full
+ ZAX1_2    T                    2 r   1                    2                   full
  normal    E
  normal    F
 canc data/all
@@ -27142,16 +27087,16 @@ SHOW DATA
 ! basic strides
 LIST VAR[i=2:4:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  VAR      M: 44 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27171,12 +27116,12 @@ LIST VAR[i=2:4:2]
 ! cache hit after changes to COMPLETE_MISSING_LIMS and FLESH_OUT_AXIS
 LIST VAR[i=2:4:2]
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27196,23 +27141,23 @@ LIST VAR[i=2:4:2]
 ! cache hit through non-file variable
 let a = VAR[i=2:4:2]
 list a
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE VAR      M: 44 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  6 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE VAR      M: 44 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -27230,12 +27175,12 @@ list a
 list a		! from cache ...
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  6 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  VAR      M: 40 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -27258,7 +27203,7 @@ cancel memory/all
  -DELETE A        M: 44 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE A        M: 52 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 load var
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
@@ -27266,16 +27211,16 @@ load var
 LIST VAR[i=2:4:2]
  dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE VAR      M: 44 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27292,18 +27237,18 @@ LIST VAR[i=2:4:2]
  2   / 2:  1222.00  1224.00
  3   / 3:  1232.00  1234.00
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G010)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  VAR      M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE VAR      M: 44 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27325,19 +27270,19 @@ CANC MEM/ALL
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XAX1_4
 LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G010)           @XACT
  strip moduloing VAR on X axis:     1    10 dset:   1
  reading VAR      M: 52 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  doing moduloing VAR on X axis:     1     4 dset:   1
  regrid  VAR      M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -27358,18 +27303,18 @@ cancel axis/modulo XAX1_4
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G010)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27384,19 +27329,19 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.00  1214.00
  3   / 2:  1232.00  1234.00
 LIST VAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G010)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  VAR      M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE VAR      M: 43 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27413,7 +27358,7 @@ LIST VAR[i=2:6:2,j=1:5:2]
  
 ! deliberate error
 set mode ignore; LIST/i=2:4:2 VAR; cancel mode ignore
- dealloc  dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  -DELETE VAR      M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
@@ -27422,15 +27367,15 @@ set mode ignore; LIST/i=2:4:2 VAR; cancel mode ignore
 LIST VAR[i=2:4:2 at ave]
  dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G018)           @AVE
  reading VAR      M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  regrid  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X at AVE
              FILENAME : bn_strides.cdf
@@ -27449,25 +27394,25 @@ LIST VAR[i=2:4:2 at ave]
  
 ! test sub-region selection on strides axis
 let a = bigvar[i=1:40:5]
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 list/j=1/k=1/l=1 a[i=3:5]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  BIGVAR   M: 40 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE BIGVAR   M: 43 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -27481,24 +27426,24 @@ list/j=1/k=1/l=1 a[i=3:5]
  21   / 5:  1131.00
  -DELETE A        M: 44 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
 list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: A --> (G010)           @XACT
  eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  BIGVAR   M: 39 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE BIGVAR   M: 44 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  regrid  A        M: 38 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27515,7 +27460,7 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
 ! ****** unequally spaced points on parent axis
 ! reference data
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR
- dealloc  dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  -DELETE A        M: 38 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
@@ -27543,17 +27488,17 @@ cancel mem/all
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  UNE-NVAR M: 44 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27569,12 +27514,12 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27588,26 +27533,26 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  
 ! cache hit through non-file variable
 let a = UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  -DELETE UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE UNE-NVAR M: 44 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
 list/order=x/j=1/k=1/l=1 a
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  7 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G018)           @XACT
  rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE UNE-NVAR M: 44 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27621,12 +27566,12 @@ list/order=x/j=1/k=1/l=1 a		! from cache ...
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  7 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G018)           @XACT
  rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  UNE-NVAR M: 40 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27644,7 +27589,7 @@ cancel memory/all
  -DELETE A        M: 44 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE A        M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
 load/k=1/l=1 UNEVENVAR
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
@@ -27653,17 +27598,17 @@ load/k=1/l=1 UNEVENVAR
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G018)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE UNE-NVAR M: 44 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27676,19 +27621,19 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
  0.3  / 1:  1112.00
  0.6  / 2:  1114.00
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  UNE-NVAR M: 40 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE UNE-NVAR M: 44 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  doing limits reconciliation on Y axis: UNEVENVAR
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
@@ -27710,19 +27655,19 @@ CANC MEM/ALL
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XUNEVEN
 LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1]    ! 1, 8, 15(5), 22(2)
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  strip moduloing UNEVENVAR on X axis:     1    29 dset:   1
  reading UNE-NVAR M: 52 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  doing moduloing UNEVENVAR on X axis:     1    10 dset:   1
  regrid  UNE-NVAR M: 40 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27740,19 +27685,19 @@ cancel axis/modulo XUNEVEN
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27764,20 +27709,20 @@ LIST/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:3:2]
  0    / 1:  1112.00  1114.00
  0.95 / 2:  1132.00  1134.00
 LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  -DELETE UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE UNE-NVAR M: 43 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27792,19 +27737,19 @@ LIST/k=1/l=1 UNEVENVAR[i=2:6:2,j=1:5:2]
  
 ! averaging causes bypass of strides
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
- dealloc  dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
  -DELETE UNE-NVAR M: 52 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @AVE
  reading UNE-NVAR M: 52 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  regrid  UNE-NVAR M: 43 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27819,20 +27764,20 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2 at ave]
  0.78 / 3:  1115.87072
  0.9  / 4:  1117.90449
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2]		! for comparison
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  -DELETE UNE-NVAR M: 43 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  UNE-NVAR M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE UNE-NVAR M: 43 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27849,19 +27794,19 @@ LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=2:8:2]		! for comparison
  
 ! test special logic in tm_world_recur for endpoints of strides on irreg axis
 LIST/j=1/k=1/l=1/precision=9 UNEVENVAR[i=1:10:2 at ave]
- dealloc  dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  -DELETE UNE-NVAR M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G010)           @AVE
  reading UNE-NVAR M: 40 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  regrid  UNE-NVAR M: 43 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27884,19 +27829,19 @@ set region/i=3:6/j=2:4/k=1:2/l=1
  
 use/order=yx bn_strides
 list bigvar[i=3:9:2]
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  -DELETE UNE-NVAR M: 43 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G010)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  BIGVAR   M: 44 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE BIGVAR   M: 43 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27913,19 +27858,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1233.00  1235.00  1237.00  1239.00
  4   / 4:  1243.00  1245.00  1247.00  1249.00
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  -DELETE BIGVAR   M: 44 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: BIGVAR --> (G010)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  BIGVAR   M: 43 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE BIGVAR   M: 44 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27942,19 +27887,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1243.00  1244.00  1245.00  1246.00
  6   / 3:  1263.00  1264.00  1265.00  1266.00
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  -DELETE BIGVAR   M: 43 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G010)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  BIGVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE BIGVAR   M: 43 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27971,25 +27916,26 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1345.00  1347.00  1349.00
  6   / 3:  1363.00  1365.00  1367.00  1369.00
 canc data/all
- -DELETE UNE-NVAR M: 40 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
  -DELETE BIGVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
+ -DELETE UNE-NVAR M: 40 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE UNE-NVAR M: 52 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  
 use/order=zyx bn_strides
 list bigvar[i=3:9:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 44 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  BIGVAR   M: 40 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -28006,19 +27952,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1332.00  1532.00  1732.00  1932.00
  4   / 4:  1342.00  1542.00  1742.00  1942.00
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 44 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 40 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 44 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 40 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -28035,19 +27981,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1342.00  1442.00  1542.00  1642.00
  6   / 3:  1362.00  1462.00  1562.00  1662.00
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
  -DELETE BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  BIGVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28064,22 +28010,23 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1543.00  1743.00  1943.00
  6   / 3:  1363.00  1563.00  1763.00  1963.00
 canc data/all
- -DELETE BIGVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=zxy bn_strides
 list bigvar[i=3:9:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  BIGVAR   M: 52 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 44 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 40 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -28096,19 +28043,19 @@ list bigvar[i=3:9:2]
  3   / 3:  1323.00  1523.00  1723.00  1923.00
  4   / 4:  1324.00  1524.00  1724.00  1924.00
 list bigvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
  -DELETE BIGVAR   M: 52 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 44 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  BIGVAR   M: 40 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE BIGVAR   M: 52 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -28125,19 +28072,19 @@ list bigvar[j=2:6:2]
  4   / 2:  1324.00  1424.00  1524.00  1624.00
  6   / 3:  1326.00  1426.00  1526.00  1626.00
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 44 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 40 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G018)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  BIGVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 44 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 40 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28154,8 +28101,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1334.00  1534.00  1734.00  1934.00
  6   / 3:  1336.00  1536.00  1736.00  1936.00
 canc data/all
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
  -DELETE BIGVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
 ! now with xytvar
 cancel region
@@ -28165,26 +28113,26 @@ show grid xytvar
  getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- XLON      LONGITUDE           40mr   141E                 180E
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ XLON      LONGITUDE           40mr   141E                 180E                full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -28200,19 +28148,19 @@ list xytvar[i=1:7:2]
  2N   / 2:  2021.00  2023.00  2025.00  2027.00
  1N   / 1:  2011.00  2013.00  2015.00  2017.00
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28228,19 +28176,19 @@ list xytvar[j=2:6:2]
  4N   / 2:  2041.00  2042.00  2043.00  2044.00
  2N   / 1:  2021.00  2022.00  2023.00  2024.00
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -28256,34 +28204,35 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.00  5043.00  5045.00  5047.00
  2N   / 1:  5021.00  5023.00  5025.00  5027.00
 canc data/all
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=yx bn_strides
 show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME     NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- YLAT      X (degrees_north)   30 r   1                    30
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ YLAT      X (degrees_north)   30 r   1                    30                  full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -28299,19 +28248,19 @@ list xytvar[i=1:7:2]
  142   / 2:  2012.00  2032.00  2052.00  2072.00
  143   / 3:  2013.00  2033.00  2053.00  2073.00
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
+ allocate dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28327,19 +28276,19 @@ list xytvar[j=2:6:2]
  144   / 2:  2014.00  2024.00  2034.00  2044.00
  146   / 3:  2016.00  2026.00  2036.00  2046.00
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -28355,34 +28304,35 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  5014.00  5034.00  5054.00  5074.00
  146   / 3:  5016.00  5036.00  5056.00  5076.00
 canc data/all
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
 use/order=tyx bn_strides
 show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON      NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- XLON      T (degrees_east)    40mr   141                  180
+ XLON      T (degrees_east)    40mr   141                  180                 full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON      NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28398,19 +28348,19 @@ list xytvar[i=1:7:2]
  2N   / 2:  1022.00  3022.00  5022.00  7022.00
  1N   / 1:  1012.00  3012.00  5012.00  7012.00
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28426,19 +28376,19 @@ list xytvar[j=2:6:2]
  4N   / 2:  1042.00  2042.00  3042.00  4042.00
  2N   / 1:  1022.00  2022.00  3022.00  4022.00
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28454,34 +28404,35 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  1045.00  3045.00  5045.00  7045.00
  2N   / 1:  1025.00  3025.00  5025.00  7025.00
 canc data/all
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=txy bn_strides
 show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT      NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT      NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28497,19 +28448,19 @@ list xytvar[i=1:7:2]
  142   / 2:  1022.00  3022.00  5022.00  7022.00
  143   / 3:  1023.00  3023.00  5023.00  7023.00
 list xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28525,19 +28476,19 @@ list xytvar[j=2:6:2]
  144   / 2:  1024.00  2024.00  3024.00  4024.00
  146   / 3:  1026.00  2026.00  3026.00  4026.00
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28553,8 +28504,9 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  1054.00  3054.00  5054.00  7054.00
  146   / 3:  1056.00  3056.00  5056.00  7056.00
 canc data/all
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -28562,27 +28514,27 @@ show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
- YLAT      Z (degrees_north)   30 r   1                    30
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
+ YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
  normal    E
  normal    F
 list/k=1:2 xytvar[i=1:7:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28598,20 +28550,20 @@ list/k=1:2 xytvar[i=1:7:2]
  142   / 2:  1022.00  3022.00  5022.00  7022.00
  143   / 3:  1023.00  3023.00  5023.00  7023.00
 list/k=1:2 xytvar[j=2:6:2]
- dealloc  dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28627,19 +28579,19 @@ list/k=1:2 xytvar[j=2:6:2]
  144   / 2:  1024.00  2024.00  3024.00  4024.00
  146   / 3:  1026.00  2026.00  3026.00  4026.00
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
- dealloc  dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G018)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -28655,8 +28607,9 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.00  3054.00  5054.00  7054.00
  146   / 3:  1056.00  3056.00  5056.00  7056.00
 canc data/all
- -DELETE XYTVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
  
 ! * * * * * MIXED STRIDES, PERMUTATIONS and REVERSALS * * * * *
@@ -28679,16 +28632,16 @@ cancel region; set region/l=1
 use/order=yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 44 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28703,25 +28656,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.00  1552.00
  5   / 2:  1515.00  1555.00
 canc data/all
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
  -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  strip reversing MIDVAR on Y axis:     2     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    1    5  J:    5    8  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
  -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 44 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28736,25 +28690,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.00  1558.00
  5   / 2:  1515.00  1555.00
 canc data/all
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
  -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
 use/order=y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  strip reversing MIDVAR on X axis:     1     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    4    8  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on X axis:     1     5 dset:   1
  -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 44 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28769,23 +28724,24 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1582.00  1542.00
  5   / 2:  1585.00  1545.00
 canc data/all
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
  -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=tyx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 44 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28800,26 +28756,27 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.00  5125.00
  5   / 2:  1155.00  5155.00
 canc data/all
- -DELETE MIDVAR   M: 44 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 use/order=-t-y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  strip reversing MIDVAR on X axis:     1     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    4    7  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M: 44 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 44 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28834,23 +28791,24 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.00  2775.00
  5   / 2:  6745.00  2745.00
 canc data/all
- -DELETE MIDVAR   M: 44 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=txy bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 44 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28865,25 +28823,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.00  5152.00
  5   / 2:  1155.00  5155.00
 canc data/all
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
  -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G018)           @XACT
  strip reversing MIDVAR on Y axis:     2     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    5    8  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
  -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 44 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28898,8 +28857,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.00  2758.00
  5   / 2:  6755.00  2755.00
 canc data/all
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
  -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
 GO bn_reset
 cancel mode verify
@@ -28943,8 +28903,8 @@ show data
  
 show grid/x HAS_NO_AXIS
     GRID GAB7
- name       axis              # pts   start                end
- NO_AXIS   X                    5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ NO_AXIS   X                    5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -28959,8 +28919,8 @@ show grid/x HAS_NO_AXIS
        5>  5                     1          4.5
 show grid/x HAS_UNORDERED_AXIS
     GRID GAB1
- name       axis              # pts   start                end
- UNORDERED_AXIS X               5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ UNORDERED_AXIS X               5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -28975,8 +28935,8 @@ show grid/x HAS_UNORDERED_AXIS
        5>  5                     1          4.5
 show grid/x HAS_GAPPY_AXIS
     GRID GAB2
- name       axis              # pts   start                end
- GAPPY_AXIS X                   5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ GAPPY_AXIS X                   5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -28991,8 +28951,8 @@ show grid/x HAS_GAPPY_AXIS
        5>  5                     1          4.5
 show grid/x HAS_BACKWARDS_AXIS
     GRID GAB8
- name       axis              # pts   start                end
- BACKWARDS_AXIS X               5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ BACKWARDS_AXIS X               5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -29007,8 +28967,8 @@ show grid/x HAS_BACKWARDS_AXIS
        5>  5                     1          4.5
 show grid/x SCALAR_VAR
     GRID GAB3
- name       axis              # pts   start                end
- SCALAR    X                    1 r   1                    1
+ name       axis              # pts   start                end                 subset
+ SCALAR    X                    1 r   1                    1                   full
  normal    Y
  normal    Z
  normal    T
@@ -29020,37 +28980,37 @@ show grid/x SCALAR_VAR
  
 show grid/i=1:5 USES_BIG_IRREG
     GRID GAB9
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- BIG_IRREG T (hours)       200000 i   1                    200000
+ BIG_IRREG T (hours)       200000 i   1                    200000              full
  normal    E
  normal    F
  
 show grid MASKED_SST
     GRID GAB5
- name       axis              # pts   start                end
- COADSX1   LONGITUDE          180 r   1E                   180E
- COADSY1   LATITUDE            90 r   1N                   90N
+ name       axis              # pts   start                end                 subset
+ 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
+ TIME4     TIME                 1mr   16-JAN 06:00         16-JAN 06:00        full
  normal    E
  normal    F
 show grid COADSX
     GRID GAB6
- name       axis              # pts   start                end
- COADSX1   LONGITUDE          180 r   1E                   180E
- COADSY1   LATITUDE            90 r   1N                   90N
+ name       axis              # pts   start                end                 subset
+ COADSX1   LONGITUDE          180 r   1E                   180E                full
+ COADSY1   LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
  normal    E
  normal    F
 show grid COADSY
     GRID GAB6
- name       axis              # pts   start                end
- COADSX1   LONGITUDE          180 r   1E                   180E
- COADSY1   LATITUDE            90 r   1N                   90N
+ name       axis              # pts   start                end                 subset
+ COADSX1   LONGITUDE          180 r   1E                   180E                full
+ COADSY1   LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
  normal    E
@@ -29483,7 +29443,7 @@ stat $1[gx=xtrop,gy=ytrop]
  strip regrid on X: SST --> (G002)           @LIN
  reading SST      M: 33 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  regrid XY
- regrid  SST      M: 31 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M: 30 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
  
              SEA SURFACE TEMPERATURE
@@ -29506,7 +29466,7 @@ stat $1[gx=xtrop,gy=ytrop]
 define grid/like=$1/x=xtrop/y=ytrop gxyt
  !-> define grid/like=sst/x=xtrop/y=ytrop gxyt
  dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 31 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 30 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
 stat $1[g=gxyt]
@@ -29515,7 +29475,7 @@ stat $1[g=gxyt]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 31 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 30 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  regrid XY
  regrid  SST      M: 29 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  
@@ -29542,15 +29502,15 @@ CONFUSE
  pass #2 EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 27 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  I        M: 26 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1[g=gxyt]
  !-> stat sst[g=gxyt]
- -DELETE I        M: 27 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 26 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 27 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 26 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  regrid XY
  regrid  SST      M: 25 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  
@@ -29909,7 +29869,7 @@ stat $1sbx
  eval    SSTSBX   C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[X=20E:20E(380)@SBX:3,D=1]
  strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M: 26 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 27 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing moduloing SST on X axis:     1   180 dset:   1
  doing --> SST[X=20E:20E(380)@SBX:3,D=1]
  
@@ -30498,7 +30458,7 @@ let $1xyt = $1[g=gxyt]
  -DELETE SST5     M: 62 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5     M: 66 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5     M: 69 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 30 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST5     M: 31 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5     M: 41 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5     M: 51 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5     M: 57 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -30945,7 +30905,7 @@ let a = XSEQUENCE(j[j=1:5])
  -DELETE SST5     M:  1 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5     M:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5     M: 15 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 30 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST5     M: 31 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5     M: 41 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5     M: 51 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST5     M: 58 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -31167,6 +31127,7 @@ cancel mode verify
  -DELETE A        M: 82 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  -DELETE I        M: 94 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ canceling dset ./coads_climatology.cdf
  -DELETE SST      M:  2 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M:  4 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M:  5 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -31188,11 +31149,11 @@ cancel mode verify
  -DELETE SST      M: 23 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 24 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 25 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 26 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 27 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 28 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 29 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 31 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 30 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 32 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 33 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -31277,10 +31238,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -31308,10 +31269,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -31337,10 +31298,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -31392,7 +31353,7 @@ show grid gg2
     GRID GG2
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX020)   LATITUDE           401 r   20S                  20N
+ (AX009)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
@@ -31401,7 +31362,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX020)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! demonstrate proper management of dynamic axes
 DEFINE GRID/LIKE=gg2 gg3
@@ -31409,7 +31370,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX020)                         use count:   2
+    AXIS (AX009)                         use count:   2
 DEFINE GRID/like=temp[d=levitus_climatology] gg2
 show grid gg2
     GRID GG2
@@ -31424,7 +31385,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX020)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! SET GRID using a user-defined variable
 let g = sst[x=0:30:.1,d=coads_climatology]
@@ -31433,11 +31394,11 @@ show grid
  Default grid for DEFINE VARIABLE is (G006)
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- (AX012)   LONGITUDE          301 r   0E                   30E
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ (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
+ TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  normal    E
  normal    F
  
@@ -31447,11 +31408,11 @@ show grid
  Default grid for DEFINE VARIABLE is (G006)
  Last successful data access was on grid (G012)
     GRID (G012)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE           201 r   10S                  10N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX018)   LATITUDE           201 r   10S                  10N                 200 pts
  normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  normal    E
  normal    F
 show grid/dynamic
@@ -31459,23 +31420,23 @@ Dynamic grids:
     GRID (G012)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE           201 r   10S                  10N
+ (AX018)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX012)   LONGITUDE          301 r   0E                   30E
+ (AX026)   LONGITUDE          301 r   0E                   30E
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
-    AXIS (AX012)                         use count:   1
-    AXIS (AX020)                         use count:   1
+    AXIS (AX018)                         use count:   1
+    AXIS (AX026)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! deliberate errors
 set mode ignore
@@ -31591,62 +31552,62 @@ list a1[gxz=a2]
 ! test use of expressions in dynamic grid commands
 SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2]             ! implicit Y axis
     GRID (G018)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX003)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
     GRID (G018)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX018)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
 SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
     GRID (G011)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX003)   LATITUDE            41 r   10S                  2S
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
+ (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
  normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
+ (AX012)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
  normal    E
  normal    F
 SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])      ! abstract X axis
     GRID (G018)
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
- (AX003)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]),SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])
     GRID (G018)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX011)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX012)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
     GRID (G011)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX003)   LATITUDE            41 r   10S                  2S
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
+ (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
  normal    Z
- (AX001)   T (CYC/hour)         2 r   0.00034224           0.00068448
+ (AX018)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
  normal    E
  normal    F
     GRID (G018)
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
- (AX003)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
@@ -31656,10 +31617,10 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is (G006)
  Last successful data access was on grid (G018)
     GRID (G018)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX018)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
@@ -31668,16 +31629,16 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is (G011)
  Last successful data access was on grid (G011)
     GRID (G011)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX003)   LATITUDE            41 r   10S                  2S
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
+ (AX025)   LATITUDE            41 r   10S                  2S                  full
  normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
+ (AX012)   T (CYC/hour)         2 r   0.00034224           0.00068448          full
  normal    E
  normal    F
 list/j=1:5 j
              VARIABLE : J
-                        axis (AX003)
+                        axis (AX025)
              SUBSET   : 5 points (LATITUDE)
  9.2S   / 5:  5.00000
  9.4S   / 4:  4.00000
@@ -31689,7 +31650,7 @@ SHOW GRID MYGRID
     GRID MYGRID
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX003)   LATITUDE            41 r   10S                  2S
+ (AX025)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
@@ -31699,15 +31660,15 @@ Dynamic grids:
     GRID (G011)                          use count:   1
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX003)   LATITUDE            41 r   10S                  2S
+ (AX025)   LATITUDE            41 r   10S                  2S
  normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
+ (AX012)   T (CYC/hour)         2 r   0.00034224           0.00068448
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX011)                         use count:   1
-    AXIS (AX003)                         use count:   2
-    AXIS (AX020)                         use count:   1
+    AXIS (AX012)                         use count:   1
+    AXIS (AX025)                         use count:   2
+    AXIS (AX009)                         use count:   1
  
  
 ! ******** V53 Additions below ***********
@@ -31860,11 +31821,11 @@ sh data
  
 sh grid ndata
     GRID GSH1
- name       axis              # pts   start                end
- PSXT191_100 LONGITUDE         10mr   139.5W               130.5W
- PSYT39_51 LATITUDE            13 i   2.167S               1.833N
- PSZT1_1   DEPTH (m)            1 r-  5                    5
- TWEEKS1   TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00
+ name       axis              # pts   start                end                 subset
+ PSXT91_100 LONGITUDE          10mr   139.5W               130.5W              full
+ PSYT39_51 LATITUDE            13 i   2.167S               1.833N              full
+ PSZT1_1   DEPTH (m)            1 r-  5                    5                   full
+ TWEEKS1   TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00   full
  normal    E
  normal    F
 sh axis tweeks
@@ -32539,9 +32500,9 @@ can mem/all
 let xy_laplace_gridded = scat2gridlaplace_xy(xax,yax,O2_umol_kg,x[gx=x_20],y[gy=y_20],2,2)
 show grid xy_laplace_gridded
     GRID (G010)
- name       axis              # pts   start                end
- X_20      LONGITUDE           20mr   50E                  70E
- Y_20      LATITUDE            20 r   10N                  20N
+ name       axis              # pts   start                end                 subset
+ X_20      LONGITUDE           20mr   50E                  70E                 full
+ Y_20      LATITUDE            20 r   10N                  20N                 full
  normal    Z
  normal    T
  normal    E
@@ -33170,9 +33131,9 @@ let wgtl = scat2gridlaplace_xy(xln,ylt, wgt, x[gx=xlonef], y[gy=ylatef], 2., 1)
  
 show grid wgtl
     GRID (G017)
- name       axis              # pts   start                end
- XLONEF    LONGITUDE          133mr   12.5W                119.5E(479.5)
- YLATEF    LATITUDE            73 r   47.25N               83.25N
+ name       axis              # pts   start                end                 subset
+ XLONEF    LONGITUDE          133mr   12.5W                119.5E(479.5)       full
+ YLATEF    LATITUDE            73 r   47.25N               83.25N              full
  normal    Z
  normal    T
  normal    E
@@ -34155,10 +34116,10 @@ SAMPLEN(TO_BE_SAMPLED,F_INDICES)
     TO_BE_SAMPLED: data to sample at list of F indices supplied
     F_INDICES: list of F indices at which to sample
 SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
-    Returns data sampled at a subset of its grid points, defined by (XPTS, YPTS)
+    Returns data sampled by matching coordinates at a subset of grid points, defined by (XPTS, YPTS)
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
-    XPTS: X indices of grid points
-    YPTS: Y indices of grid points
+    XPTS: X coordinates of grid points
+    YPTS: Y coordinates of grid points
 SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
     Returns data sampled according to I indices which may vary in JKL
     I_INDICES: indices upon which to sample
@@ -35493,6 +35454,44 @@ let mask = 0*x[gx=sst] + y[gy=sst]  + 1
 shade fill_xy(sst[l=1], mask[l=1], 1)
 shade fill_xy(sst[l=1], mask[l=1], 4)
  
+! Compare SAMPLEXY and SAMPLEIJ
+GO bn_reset
+cancel mode verify
+GO bn_samplexy_sampleij
+! bn_samplexy_sampleij
+ 
+! Simple tests of SAMPLEXY and SAMPLEIJ
+ 
+sh func samplexy, sampleij
+SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
+    Returns data sampled at a set of (X,Y) points, using linear interpolation
+    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
+    XPTS: X values of sample points
+    YPTS: Y values of sample points
+SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
+    Returns data sampled by matching coordinates at a subset of grid points, defined by (XPTS, YPTS)
+    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
+    XPTS: X coordinates of grid points
+    YPTS: Y coordinates of grid points
+use coads_climatology
+ 
+! Both functions take world coordinate values
+! as arguements for the points at which to sample.
+!
+! 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
+             X: 0.5 to 3.5
+             TIME: JAN
+ Column  1: EX#1 is SAMPLEXY(SST,{321,323.5,325}, {1,1,1})
+ Column  2: EX#2 is SAMPLEIJ(SST,{321,323,324.5}, {1,1,1})
+            EX#1    EX#2
+1   / 1:  27.4849  27.4849
+2   / 2:  27.4030  27.4655
+3   / 3:  27.2157     ....
+ 
+ 
  
 GO bn_reset
 cancel mode verify
@@ -35517,41 +35516,41 @@ let b =  a[i=18:23:2]
 list/nohead b            ! using rdstride
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid B        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  eval    B        C:  6 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G022)           @XACT
  strip moduloing A on X axis:    18    22 dset:   1
  rdstride A        C: 11 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:    18    20 dset:   1
- -DELETE A        M:331 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M:339 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  rdstride A        C: 11 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:     2     2 dset:   1
- -DELETE A        M:331 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:331 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:330 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE A        M:339 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ nulrgd  A        M:339 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M:332 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  18   / 1:  18.0000
  20   / 2:  20.0000
  22   / 3:   2.0000
 list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G023)           @XACT
  strip moduloing A on X axis:     1    25 dset:   1
- reading A        M:340 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading A        M:327 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:     1    20 dset:   1
- regrid  A        M:328 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ regrid  A        M:334 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  1    / 1:   1.0000
  4    / 2:   4.0000
  7    / 3:   7.0000
@@ -35562,24 +35561,24 @@ list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
  22   / 8:   2.0000
  25   / 9:   5.0000
 list/nohead b            ! reuse of cached result
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M:328 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE A        M:334 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  eval    B        C:  6 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G022)           @XACT
  strip moduloing A on X axis:    18    22 dset:   1
  rdstride A        C: 11 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:    18    20 dset:   1
- -DELETE A        M:328 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M:334 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  rdstride A        C: 11 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:     2     2 dset:   1
- -DELETE A        M:328 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:328 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:332 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE A        M:334 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ nulrgd  A        M:334 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M:330 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  18   / 1:  18.0000
  20   / 2:  20.0000
  22   / 3:   2.0000
@@ -35780,14 +35779,14 @@ list/nohead a[i=106:145:5]
 !  ***** STRING TESTS *****
 set mode diag
 list/nohead str[i=18:23:2] ! using rdstride
- dealloc  dynamic grid (G023)          (AX010)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX028)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  -DELETE A        M:337 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: STR --> (G022)           @XACT
  strip moduloing STR on X axis:    18    22 dset:   1
  rdstride STR      C:  9 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -35797,25 +35796,25 @@ list/nohead str[i=18:23:2] ! using rdstride
  doing moduloing STR on X axis:     2     2 dset:   1
  -DELETE STR      M:337 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  nulrgd  STR      M:337 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE STR      M:327 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE STR      M:325 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  18   / 1:"r"
  20   / 2:"t"
  22   / 3:"b"
 list/nohead str[i=1:25:3]  ! no strides --> reads full region without strides
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: STR --> (G023)           @XACT
  strip moduloing STR on X axis:     1    25 dset:   1
- reading STR      M:327 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading STR      M:325 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing STR on X axis:     1    20 dset:   1
- regrid  STR      M:315 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ regrid  STR      M:322 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  1    / 1:"a"
  4    / 2:"d"
  7    / 3:"g"
@@ -36523,8 +36522,8 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid XABSTRACT
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -36540,9 +36539,9 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid YABSTRACT
     GRID YABSTRACT
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- ABSTRACT  Y             99999999 r   1                    1.E+08
+ ABSTRACT  Y             99999999 r   1                    1.E+08              full
  normal    Z
  normal    T
  normal    E
@@ -36557,10 +36556,10 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid ZABSTRACT
     GRID ZABSTRACT
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
- ABSTRACT  Z             99999999 r   1                    1.E+08
+ ABSTRACT  Z             99999999 r   1                    1.E+08              full
  normal    T
  normal    E
  normal    F
@@ -36574,11 +36573,11 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid TABSTRACT
     GRID TABSTRACT
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- ABSTRACT  T             99999999 r   1                    1.E+08
+ ABSTRACT  T             99999999 r   1                    1.E+08              full
  normal    E
  normal    F
 let a = TSEQUENCE({"a","b","c","d","e"})
@@ -38432,11 +38431,11 @@ show mem/free
 use/ord=x-y test_100x100.nc
 list/prec=1 a[i=1:100:10] !  this looks just right!!
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1  100  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G005)           @XACT
  strip reversing A on Y axis:     1   100 dset:   1
  rdstride A        C:  8 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -38444,7 +38443,7 @@ list/prec=1 a[i=1:100:10] !  this looks just right!!
  -DELETE A        M:  1 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  nulrgd  A        M:  1 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
              VARIABLE : IF I EQ J THEN 1 ELSE A0
                         regrid: 10 delta on X
              FILENAME : test_100x100.nc
@@ -38555,9 +38554,9 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G005)
     GRID (G005)
- name       axis              # pts   start                end
- (AX017)   X                   10 r   1                    91
- YAX1_100  Y                  100 r   1                    100
+ name       axis              # pts   start                end                 subset
+ (AX015)   X                   10 r   1                    91                  9 pts
+ YAX1_100  Y                  100 r   1                    100                 full
  normal    Z
  normal    T
  normal    E
@@ -38566,7 +38565,7 @@ show grid
 ! should be a diagonal path of steps all the way across the plot
 shade a[i=1:100:10]
  eval    EX#1     C:  4 dset:   1 I:    1  100  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G005)           @XACT
  strip reversing A on Y axis:     1   100 dset:   1
  rdstride A        C:  8 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -38574,7 +38573,7 @@ shade a[i=1:100:10]
  -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  nulrgd  A        M:  2 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE A        M:  3 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
 setting up 2D plot
  -DELETE A        M:  3 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 PPL plot 279  complete
@@ -39734,8 +39733,8 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    7    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VREG on X axis:     7     7 dset:   1
+ strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  reading VREG     M:  5 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VREG on X axis:     6     6 dset:   1
         ....
@@ -39750,18 +39749,20 @@ lsxn/x=0 $1 ! void point below, alone (via modulo)
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    5    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VREG on X axis:     5     7 dset:   1
+ strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  reading VREG     M:  3 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VREG on X axis:     5     6 dset:   1
           15.0000  16.0000     ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VREG on X axis:     0     7 dset:   1
+ strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip moduloing VREG on X axis:     0     6 dset:   1
  reading VREG     M:  9 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing VREG on X axis:     1     6 dset:   1
+ doing modulo-void-filling VREG on X axis:     0     6 dset:   1
              ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -39997,16 +39998,16 @@ l200n/l=12:21/i=-19:-9 $2_void[x=@fnr,t=@fnr]
 ! test shift
 l200n/l=12:21/i=-19:-9 $2[x=@shf:2,t=@shf:-2]
  !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_reg[x=@shf:2,t=@shf:-2]
- 14-SEP      / 12:  104.000  105.000  106.000     ....  101.000  102.000  103.000  104.000  105.000  106.000     ....
- 15-JAN-0002 / 13:  134.000  135.000  136.000     ....  131.000  132.000  133.000  134.000  135.000  136.000     ....
+ 14-SEP      / 12:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
+ 15-JAN-0002 / 13:  134.000  135.000  136.000     ....  131.000     ....  133.000  134.000  135.000  136.000     ....
  14-FEB-0002 / 14:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 16-MAR-0002 / 15:   14.000   15.000   16.000     ....   11.000   12.000   13.000   14.000   15.000   16.000     ....
- 15-APR-0002 / 16:   44.000   45.000   46.000     ....   41.000   42.000   43.000   44.000   45.000   46.000     ....
- 15-MAY-0002 / 17:   74.000   75.000   76.000     ....   71.000   72.000   73.000   74.000   75.000   76.000     ....
- 15-SEP-0002 / 18:  104.000  105.000  106.000     ....  101.000  102.000  103.000  104.000  105.000  106.000     ....
- 15-JAN-0003 / 19:  134.000  135.000  136.000     ....  131.000  132.000  133.000  134.000  135.000  136.000     ....
+ 16-MAR-0002 / 15:   14.000   15.000   16.000     ....   11.000     ....   13.000   14.000   15.000   16.000     ....
+ 15-APR-0002 / 16:   44.000   45.000   46.000     ....   41.000     ....   43.000   44.000   45.000   46.000     ....
+ 15-MAY-0002 / 17:   74.000   75.000   76.000     ....   71.000     ....   73.000   74.000   75.000   76.000     ....
+ 15-SEP-0002 / 18:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
+ 15-JAN-0003 / 19:  134.000  135.000  136.000     ....  131.000     ....  133.000  134.000  135.000  136.000     ....
  14-FEB-0003 / 20:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 16-MAR-0003 / 21:   14.000   15.000   16.000     ....   11.000   12.000   13.000   14.000   15.000   16.000     ....
+ 16-MAR-0003 / 21:   14.000   15.000   16.000     ....   11.000     ....   13.000   14.000   15.000   16.000     ....
  
 ! test strides
 l200n/order=x $2[l=1,i=0:14]
@@ -40016,37 +40017,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
  !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:2]
  dealloc  dynamic grid GFJ3            XAX_SUBSPANORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G004)          (AX003)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- dealloc  dynamic grid (G004)          (AX003)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- allocate dynamic grid (G004)          (AX003)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ allocate dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ dealloc  dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ allocate dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G004)          (AX003)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- strip regrid on X: V2D_REG --> (G004)           @XACT
- found   V2D_REG  M: 69 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_REG  M: 70 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G004)          (AX003)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ allocate dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ strip regrid on X: V2D_REG --> (G002)           @XACT
+ found   V2D_REG  M: 71 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  V2D_REG  M: 72 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
              ....  12.0000  14.0000  16.0000  11.0000  13.0000  15.0000     ....
 l200n/order=x $2[l=1,i=0:14:7]
  !-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:7]
         ............
 set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  !-> list/width=200/nohead v2d_reg[i=1,l=1:15:2]
- dealloc  dynamic grid (G004)          (AX014)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- -DELETE V2D_REG  M: 71 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          (AX017)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ -DELETE V2D_REG  M: 73 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX003)   NORMAL    NORMAL
- dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX003)   NORMAL    NORMAL
- allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX003)   NORMAL    NORMAL
+ allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
+ allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX003)   NORMAL    NORMAL
- strip regrid on T: V2D_REG --> (G004)           @XACT
+ allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
+ strip regrid on T: V2D_REG --> (G002)           @XACT
  strip moduloing V2D_REG on T axis:     1    15 dset:   1
  rdstride V2D_REG  C:  9 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
  doing moduloing V2D_REG on T axis:     1     5 dset:   1
- -DELETE V2D_REG  M: 71 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- nulrgd  V2D_REG  M: 71 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_REG  M: 72 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX003)   NORMAL    NORMAL
+ -DELETE V2D_REG  M: 73 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
+ nulrgd  V2D_REG  M: 73 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ -DELETE V2D_REG  M: 74 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
  16-JAN-0000 / 1:   11.000
  16-MAR-0000 / 2:   71.000
  15-MAY-0000 / 3:  131.000
@@ -40253,7 +40254,7 @@ lsx $1  ! default avoids void points
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GFJ2            XIRREG_SUBNORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 78 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 80 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : X[GX=XIRREG_SUBSPAN] -40 + 10
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 6 points (X)
@@ -40263,9 +40264,9 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    7    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VIRR on X axis:     7     7 dset:   1
- reading VIRR     M: 79 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 81 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VIRR on X axis:     6     6 dset:   1
         ....
 lsxn/x=0 $1 ! void point below, alone (via modulo)
@@ -40273,24 +40274,26 @@ lsxn/x=0 $1 ! void point below, alone (via modulo)
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  strip moduloing VIRR on X axis:     0     0 dset:   1
- reading VIRR     M: 81 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 83 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing VIRR on X axis:     6     6 dset:   1
         ....
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    5    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VIRR on X axis:     5     7 dset:   1
- reading VIRR     M: 83 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 85 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VIRR on X axis:     5     6 dset:   1
           15.0000  16.0000     ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VIRR on X axis:     0     7 dset:   1
- reading VIRR     M: 85 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip moduloing VIRR on X axis:     0     6 dset:   1
+ reading VIRR     M: 87 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing VIRR on X axis:     1     6 dset:   1
+ doing modulo-void-filling VIRR on X axis:     0     6 dset:   1
              ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -40526,16 +40529,16 @@ l200n/l=12:21/i=-19:-9 $2_void[x=@fnr,t=@fnr]
 ! test shift
 l200n/l=12:21/i=-19:-9 $2[x=@shf:2,t=@shf:-2]
  !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_irr[x=@shf:2,t=@shf:-2]
- 14-SEP 23      / 12:  104.249  105.249  106.249     ....  101.249  102.249  102.349  104.249  105.249  106.249     ....
- 15-JAN-0002 23 / 13:  134.249  135.249  136.249     ....  131.249  132.249  132.349  134.249  135.249  136.249     ....
+ 14-SEP 23      / 12:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
+ 15-JAN-0002 23 / 13:  134.249  135.249  136.249     ....  131.249     ....  132.349  134.249  135.249  136.249     ....
  14-FEB-0002 14 / 14:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 16-MAR-0002 05 / 15:   14.000   15.000   16.000     ....   11.000   12.000   12.100   14.000   15.000   16.000     ....
- 15-APR-0002 17 / 16:   45.000   46.000   47.000     ....   42.000   43.000   43.100   45.000   46.000   47.000     ....
- 15-MAY-0002 17 / 17:   73.249   74.249   75.249     ....   70.249   71.249   71.349   73.249   74.249   75.249     ....
- 15-SEP-0002 05 / 18:  104.249  105.249  106.249     ....  101.249  102.249  102.349  104.249  105.249  106.249     ....
- 16-JAN-0003 05 / 19:  134.249  135.249  136.249     ....  131.249  132.249  132.349  134.249  135.249  136.249     ....
+ 16-MAR-0002 05 / 15:   14.000   15.000   16.000     ....   11.000     ....   12.100   14.000   15.000   16.000     ....
+ 15-APR-0002 17 / 16:   45.000   46.000   47.000     ....   42.000     ....   43.100   45.000   46.000   47.000     ....
+ 15-MAY-0002 17 / 17:   73.249   74.249   75.249     ....   70.249     ....   71.349   73.249   74.249   75.249     ....
+ 15-SEP-0002 05 / 18:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
+ 16-JAN-0003 05 / 19:  134.249  135.249  136.249     ....  131.249     ....  132.349  134.249  135.249  136.249     ....
  14-FEB-0003 20 / 20:     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....     ....
- 16-MAR-0003 11 / 21:   14.000   15.000   16.000     ....   11.000   12.000   12.100   14.000   15.000   16.000     ....
+ 16-MAR-0003 11 / 21:   14.000   15.000   16.000     ....   11.000     ....   12.100   14.000   15.000   16.000     ....
  
 ! test strides
 l200n/order=x $2[l=1,i=0:14]
@@ -40545,37 +40548,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
  !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:2]
  dealloc  dynamic grid GFJ4            XIRREG_SUBNORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- allocate dynamic grid (G014)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- strip regrid on X: V2D_IRR --> (G014)           @XACT
- found   V2D_IRR  M:146 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_IRR  M:147 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ strip regrid on X: V2D_IRR --> (G018)           @XACT
+ found   V2D_IRR  M:150 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  V2D_IRR  M:151 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
              ....  12.0000  14.0000  16.0000  11.0000  12.1000  15.0000     ....
 l200n/order=x $2[l=1,i=0:14:7]
  !-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:7]
         ............
 set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  !-> list/width=200/nohead v2d_irr[i=1,l=1:15:2]
- dealloc  dynamic grid (G014)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- -DELETE V2D_IRR  M:148 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX015)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ -DELETE V2D_IRR  M:152 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G014)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- allocate dynamic grid (G014)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
+ allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- strip regrid on T: V2D_IRR --> (G014)           @XACT
+ allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
+ strip regrid on T: V2D_IRR --> (G018)           @XACT
  strip moduloing V2D_IRR on T axis:     1    15 dset:   1
  rdstride V2D_IRR  C:  9 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
  doing moduloing V2D_IRR on T axis:     1     5 dset:   1
- -DELETE V2D_IRR  M:148 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- nulrgd  V2D_IRR  M:148 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_IRR  M:149 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
+ -DELETE V2D_IRR  M:152 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
+ nulrgd  V2D_IRR  M:152 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ -DELETE V2D_IRR  M:153 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
  16-JAN-0000 / 1:   11.000
  15-MAR-0000 / 2:   70.249
  15-MAY-0000 / 3:  131.249
@@ -40743,7 +40746,7 @@ LEV_TEXT = "(0,80,3),(56),DARK(56)"
 LEV_MIN = "0"
 LEV_MAX = "81"
 LEV_NUM = "28"
-LEV_DEL = "3"
+LEV_DEL = "irregular"
  
 contour/over/i=1:15/j=1:5/lev=50 i*j
 sho sym lev*
@@ -40809,7 +40812,7 @@ show modes
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         months
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         months
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -41594,10 +41597,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G005)
     GRID (G005)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -41900,8 +41903,8 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is XABSTRACT
  Last successful data access was on grid XABSTRACT
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -42193,7 +42196,6 @@ set view ul
 plot eofti[i=1,k=1], eofti[i=2,k=1], eofti[i=3,k=1]
 list eofti[l=1:5,i=1,k=1]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=AUG-1982:JAN-1983
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -42209,7 +42211,6 @@ set view ur
 plot eofti[i=1,k=5], eofti[i=2,k=5], eofti[i=3,k=5]
 list eofti[l=1:5,i=1,k=5]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=AUG-1982:JAN-1983
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -42226,7 +42227,6 @@ set view ll
 plot eofti[i=1,k=8], eofti[i=2,k=8], eofti[i=3,k=8]
 list eofti[l=1:5,i=1,k=8]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=AUG-1982:JAN-1983
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -42242,7 +42242,6 @@ set view lr
 plot eofti[i=1,k=4], eofti[i=2,k=10], eofti[i=3,k=10]
 list eofti[l=1:5,i=1,k=10]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=AUG-1982:JAN-1983
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -42368,10 +42367,10 @@ cancel axis long
 use confuse_xz.nc
 sh grid r
     GRID GAP1
- name       axis              # pts   start                end
- HORIZ     X                   10 r   1                    10
+ name       axis              # pts   start                end                 subset
+ HORIZ     X                   10 r   1                    10                  full
  normal    Y
- XXX       Z                    6 r   -4                   1
+ XXX       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -42380,10 +42379,10 @@ can data 1
 use confuse_yz.nc
 sh grid s
     GRID GBA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- THE       Y                    8 r   10                   80
- XXX       Z                    6 r   -4                   1
+ THE       Y                    8 r   10                   80                  full
+ XXX       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -42392,11 +42391,11 @@ can data 1
 use confuse_yt.nc
 sh grid u
     GRID GGY1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- THE       Y                    8 r   10                   80
+ THE       Y                    8 r   10                   80                  full
  normal    Z
- LONG      T                    7 r   1                    13
+ LONG      T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
@@ -42404,11 +42403,11 @@ can data 1
 use confuse_yzt.nc
 sh grid v
     GRID GFA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- THE       Y                    8 r   10                   80
- XXX       Z                    6 r   -4                   1
- LONG      T                    7 r   1                    13
+ THE       Y                    8 r   10                   80                  full
+ XXX       Z                    6 r   -4                   1                   full
+ LONG      T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
@@ -42464,10 +42463,10 @@ cancel axis ddd
 use confuse_xz.nc
 sh grid r
     GRID GAP1
- name       axis              # pts   start                end
- AAA       X                   10 r   1                    10
+ name       axis              # pts   start                end                 subset
+ AAA       X                   10 r   1                    10                  full
  normal    Y
- CCC       Z                    6 r   -4                   1
+ CCC       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -42476,10 +42475,10 @@ can data 1
 use confuse_yz.nc
 sh grid s
     GRID GBA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- BBB       Y                    8 r   10                   80
- CCC       Z                    6 r   -4                   1
+ BBB       Y                    8 r   10                   80                  full
+ CCC       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -42488,11 +42487,11 @@ can data 1
 use confuse_yt.nc
 sh grid u
     GRID GGY1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- BBB       Y                    8 r   10                   80
+ BBB       Y                    8 r   10                   80                  full
  normal    Z
- DDD       T                    7 r   1                    13
+ DDD       T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
@@ -42500,11 +42499,11 @@ can data 1
 use confuse_yzt.nc
 sh grid v
     GRID GFA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- BBB       Y                    8 r   10                   80
- CCC       Z                    6 r   -4                   1
- DDD       T                    7 r   1                    13
+ BBB       Y                    8 r   10                   80                  full
+ CCC       Z                    6 r   -4                   1                   full
+ DDD       T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
@@ -42577,89 +42576,110 @@ GO bn_xml_output.jnl
 ! Illustrate the SHOW commands with /XML xml-style output
 ! V5.80 11/04 new tests for SHOW VAR/XML; global variables.
  
-! 22-Feb-2005 use SHO AXIS/XML `temp,return=taxis` instead
+! 22-Feb-2005 USE SHO AXIS/XML `temp,return=taxis` instead
 ! of naming the axes; other axes of the same name (e.g. TIME)
 ! may have been defined in other benchmark scrips.
  
-USE gtsa056_2.cdf
+USE levitus_climatology.cdf
  
 SHO DATA/XML
 <datasets>
-<dataset name="./gtsa056_2.cdf" default="true">
+<dataset name="./levitus_climatology.cdf" default="true">
 <title> </title>
 <var name="TEMP" />
-<var name="U" />
-<var name="W" />
-<var name="TAUX" />
 </dataset>
 </datasets>
  
-SHO DATA/VAR/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="true">
-<title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
-   <value><![CDATA[deg. C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DT1">
+SHO GRID/XML `temp,return=grid`
+ !-> SHO GRID/XML GG2
+<grid name="GG2">
 <axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
+<xaxis>XAXLEVITR1_160</xaxis>
+<yaxis>YAXLEVITR1_90</yaxis>
+<zaxis>ZAXLEVITR1_1</zaxis>
 </axes>
 </grid>
-</var>
-<var name="U">
+ 
+SHO AXIS/XML `temp,return=zaxis`
+ !-> SHO AXIS/XML ZAXLEVITR1_1
+<axes>
+<axis name="ZAXLEVITR1_1">
+<attribute name="direction" type="char">
+   <value><![CDATA[K]]></value>
+</attribute>
 <attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
+   <value><![CDATA[METERS]]></value>
 </attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL VELOCITY]]></value>
+<attribute name="length" type="short">
+   <value>1</value>
 </attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
+<attribute name="start" type="double">
+   <value>0</value>
 </attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
+<attribute name="end" type="double">
+   <value>0</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+<attribute name="positive" type="char">
+   <value><![CDATA[down]]></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>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="PS3DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[ZAXLEVITR1_1]]></value>
+</attribute>
+</axis>
 </axes>
-</grid>
-</var>
-<var name="W">
+SHO AXIS/XML `temp,return=taxis`
+ !-> SHO AXIS/XML NORMAL
+ 
+can dat/all
+ 
+! make some short files
+let/units="meters" myvar = 7
+save/clobber/file=a.nc myvar
+ 
+LET ddat = ZSEQUENCE({1126,1136,1146,1156,1166})
+save/clobber/file=b.nc ddat
+can var/all
+go bn_reset
+cancel mode verify
+ 
+USE a.nc
+USE b.nc
+ 
+! Define a dataset variable
+! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
+LET/D=a temp_av = ddat[d=2,X=@AVE]
+ 
+SHOW DATA/XML
+<datasets>
+<dataset name="./a.nc" default="false">
+<title> </title>
+<var name="MYVAR" />
+<var name="temp_av" />
+</dataset>
+<dataset name="./b.nc" default="true">
+<title> </title>
+<var name="DDAT" />
+</dataset>
+</datasets>
+SHO DATA/VAR/XML 1
+<datasets>
+<dataset name="./a.nc" default="false">
+<title> </title>
+<var name="MYVAR">
 <attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
+   <value><![CDATA[meters]]></value>
 </attribute>
 <attribute name="long_name" type="char">
-   <value><![CDATA[VERTICAL VELOCITY]]></value>
+   <value><![CDATA[7]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
    <value>-1.E+34</value>
@@ -42671,23 +42691,16 @@ SHO DATA/VAR/XML
    <value><![CDATA[FLOAT]]></value>
 </attribute>
 <attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="PS3DW1">
+<grid name="GSI1">
 <axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZW</zaxis>
-<taxis>TIME6</taxis>
 </axes>
 </grid>
 </var>
-<var name="TAUX">
-<attribute name="units" type="char">
-   <value><![CDATA[dynes/cm**2]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL WIND STRESS]]></value>
+<var name="temp_av">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[D=2,X=@AVE]]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
    <value>-1.E+34</value>
@@ -42698,1093 +42711,221 @@ SHO DATA/VAR/XML
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+<attribute name="long_name" type="char">
+   <value><![CDATA[DDAT[D=2,X=@AVE]]]></value>
 </attribute>
-<grid name="PS2DU1">
+<grid name="GRR1">
 <axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<taxis>TIME6</taxis>
+<zaxis>ZAX1_5</zaxis>
 </axes>
 </grid>
 </var>
 </dataset>
 </datasets>
 <axes>
-<axis name="PSXU">
+<axis name="ZAX1_5">
 <attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LONGITUDE]]></value>
+   <value><![CDATA[K]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>160</value>
+   <value>5</value>
 </attribute>
 <attribute name="start" type="double">
-   <value>131</value>
+   <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>290</value>
+   <value>5</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSXU]]></value>
-</attribute>
-</axis>
-<axis name="PSYT">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-28.83607</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>48.56797</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[DOUBLE]]></value>
 </attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYT_bnds]]></value>
+<attribute name="axis" type="char">
+   <value><![CDATA[Z]]></value>
 </attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYT]]></value>
+   <value><![CDATA[ZAX1_5]]></value>
 </attribute>
 </axis>
-<axis name="PSYU">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
+</axes>
+ 
+CAN DAT/ALL
+ 
+! tests of SHOW VAR/XML for global variables.
+CAN DATA/ALL
+CAN VAR/ALL
+ 
+USE a
+USE b
+ 
+! Define a dataset variable
+LET/D=b temp_20 ddat[x=1:2 at SUM]
+ 
+! Define a global variable
+LET t30 = ddat[x=1:3 at SUM]
+ 
+! Another variable, setting title, units, bad flag.
+LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral" salty = temp[x=@iin]
+ 
+! Define a constant
+LET pi = 3.14
+ 
+! Another variable, irrelevant in the current context
+LET my_a = a*12
+ 
+! This lists all the variables except my_a
+ 
+SHO VAR/XML
+<global>
+<var name="TEMP_20[D=./b.nc]">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[X=1:2 at SUM]]]></value>
 </attribute>
-<attribute name="length" type="short">
-   <value>100</value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="start" type="double">
-   <value>-27.67214</value>
+<grid name="GRR1">
+<axes>
+<zaxis>ZAX1_5</zaxis>
+</axes>
+</grid>
+</var>
+<var name="PI">
+<attribute name="definition" type="char">
+   <value><![CDATA[3.14]]></value>
 </attribute>
-<attribute name="end" type="double">
-   <value>50.00005</value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="point_spacing" type="char">
-   <value>uneven</value>
+<grid name="ABSTRACT">
+<axes>
+</axes>
+</grid>
+</var>
+<var name="T30">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[X=1:3 at SUM]]]></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">
-   <value><![CDATA[DOUBLE]]></value>
+<grid name="GRR1">
+<axes>
+<zaxis>ZAX1_5</zaxis>
+</axes>
+</grid>
+</var>
+</global>
+ 
+! Now change datasets, so my_a has a context, but t30
+! does not. temp_20 is listed becaUSE it is defined on a dataset
+ 
+SET DATA a
+SHO VAR/XML
+<global>
+<var name="TEMP_20[D=./b.nc]">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[X=1:2 at SUM]]]></value>
 </attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYU_bnds]]></value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYU]]></value>
+<grid name="GRR1">
+<axes>
+<zaxis>ZAX1_5</zaxis>
+</axes>
+</grid>
+</var>
+<var name="PI">
+<attribute name="definition" type="char">
+   <value><![CDATA[3.14]]></value>
 </attribute>
-</axis>
-<axis name="PSZT">
-<attribute name="direction" type="char">
-   <value><![CDATA[K]]></value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[METERS]]></value>
+<grid name="ABSTRACT">
+<axes>
+</axes>
+</grid>
+</var>
+</global>
+ 
+! Change default dataset. Now we should just see pi and my_a
+ 
+CAN DATA b
+SHOW VAR/XML
+<global>
+<var name="PI">
+<attribute name="definition" type="char">
+   <value><![CDATA[3.14]]></value>
 </attribute>
-<attribute name="length" type="short">
-   <value>27</value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="start" type="double">
-   <value>5</value>
+<grid name="ABSTRACT">
+<axes>
+</axes>
+</grid>
+</var>
+</global>
+ 
+! 8/7/2007
+! new form for output of a var whose definition contains quotes
+CANCEL DATA/ALL
+CANCEL VAR/ALL
+ 
+let tvar = t[gt=month_reg]
+save/clobber/file=a.nc tvar
+ 
+USE a
+LET t3 = tvar[t="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]
+SHOW VAR/XML
+<global>
+<var name="T3">
+<attribute name="definition" type="char">
+   <value><![CDATA[TVAR[T="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]]]></value>
 </attribute>
-<attribute name="end" type="double">
-   <value>3824</value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="positive" type="char">
-   <value><![CDATA[down]]></value>
+<grid name="GSI1">
+<axes>
+<taxis>TIME6</taxis>
+</axes>
+</grid>
+</var>
+<var name="TVAR">
+<attribute name="definition" type="char">
+   <value><![CDATA[T[GT=MONTH_REG]]]></value>
 </attribute>
-<attribute name="point_spacing" type="char">
-   <value>uneven</value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="modulo" type="char">
-   <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-<axis name="PSZW">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>10</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>4149</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZW_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZW]]></value>
-</attribute>
-</axis>
-<axis name="PSXT1">
-<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>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>130.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>289.5</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-</axis>
-<axis name="TIME6">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>168</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>1983-06-07 13: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[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-</axis>
-</axes>
- 
-SHO GRID/XML ps3du1
-<grid name="PS3DU1">
+<grid name="GSI1">
 <axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
+<taxis>MONTH_REG</taxis>
 </axes>
 </grid>
+</var>
+</global>
  
-SHO AXIS/XML `temp,return=xaxis`
- !-> SHO AXIS/XML PSXT1
-<axes>
-<axis name="PSXT1">
-<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>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>130.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>289.5</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=yaxis`
- !-> SHO AXIS/XML PSYT
-<axes>
-<axis name="PSYT">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-28.83607</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>48.56797</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYT]]></value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=zaxis`
- !-> SHO AXIS/XML PSZT
-<axes>
-<axis name="PSZT">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>3824</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=taxis`
- !-> SHO AXIS/XML TIME6
-<axes>
-<axis name="TIME6">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>168</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>1983-06-07 13: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[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-</axis>
-</axes>
  
-! Define a dataset variable
-! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
-LET/D=gtsa056_2 temp_180 = temp[X=160E:160W at AVE]
- 
-USE coads_climatology
- 
-SHOW DATA/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="false">
-<title> </title>
-<var name="TEMP" />
-<var name="U" />
-<var name="W" />
-<var name="TAUX" />
-<var name="TEMP_180" />
-</dataset>
-<dataset name="./coads_climatology.cdf" default="true">
-<title> </title>
-<var name="SST" />
-</dataset>
-</datasets>
-SHO DATA/VAR/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="false">
-<title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
-   <value><![CDATA[deg. C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="U">
-<attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL VELOCITY]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="W">
-<attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[VERTICAL VELOCITY]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DW1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZW</zaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="TAUX">
-<attribute name="units" type="char">
-   <value><![CDATA[dynes/cm**2]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL WIND STRESS]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS2DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="temp_180">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[X=160E:160W at AVE]]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[TEMP[X=160E:160W at AVE]]]></value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="PSXU">
-<attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LONGITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>131</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>290</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSXU]]></value>
-</attribute>
-</axis>
-<axis name="PSYT">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-28.83607</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>48.56797</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYT]]></value>
-</attribute>
-</axis>
-<axis name="PSYU">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-27.67214</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>50.00005</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYU_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYU]]></value>
-</attribute>
-</axis>
-<axis name="PSZT">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>3824</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-<axis name="PSZW">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>10</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>4149</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZW_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZW]]></value>
-</attribute>
-</axis>
-<axis name="PSXT1">
-<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>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>130.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>289.5</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-</axis>
-<axis name="TIME6">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>168</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>1983-06-07 13: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[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-</axis>
-</axes>
-<dataset name="./coads_climatology.cdf" default="true">
-<title> </title>
-<var name="SST">
-<attribute name="units" type="char">
-   <value><![CDATA[Deg C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[SEA SURFACE TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME4</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="TIME4">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>3</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>0000-01-16 06:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>0000-03-17 02:58:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
-   <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
-   <value><![CDATA[0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
-   <value>8765.82</value>
-</attribute>
-</axis>
-<axis name="COADSX">
-<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>180</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>21</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>379</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="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSX]]></value>
-</attribute>
-</axis>
-<axis name="COADSY">
-<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>90</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-89</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>89</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[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSY]]></value>
-</attribute>
-</axis>
-</axes>
- 
- 
-! tests of SHOW VAR/XML for global variables.
-CAN DATA/ALL
-CAN VAR/ALL
- 
-USE coads_climatology
-USE gtsa056_2
- 
-! Define a dataset variable
-LET/D=gtsa056_2 temp_20 temp[Z=0:20 at SUM]
- 
-! Define a global variable
-LET t30 = temp[Z=0:30 at SUM]
- 
-! Another variable, setting title, units, bad flag.
-LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral of SALT" salty = salt[Z=@IIN]
- 
-! Define a constant
-LET pi = 3.14
- 
-! Another variable, irrelevant in the current context
-LET my_sst = sst*12
- 
-! This lists all the variables except my_sst
- 
-SHO VAR/XML
-<global>
-<var name="TEMP_20[D=./gtsa056_2.cdf]">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=0:20 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="PI">
-<attribute name="definition" type="char">
-   <value><![CDATA[3.14]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="ABSTRACT">
-<axes>
-</axes>
-</grid>
-</var>
-<var name="T30">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=0:30 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-</global>
- 
-! Now change datasets, so my_sst has a context, but t30
-! does not temp_20 is listed because it is defined on a dataset
- 
-SET DATA coads_climatology
-SHO VAR/XML
-<global>
-<var name="TEMP_20[D=./gtsa056_2.cdf]">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=0:20 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME6</taxis>
-</axes>
-</grid>
-</var>
-<var name="MY_SST">
-<attribute name="definition" type="char">
-   <value><![CDATA[SST*12]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME4</taxis>
-</axes>
-</grid>
-</var>
-<var name="PI">
-<attribute name="definition" type="char">
-   <value><![CDATA[3.14]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="ABSTRACT">
-<axes>
-</axes>
-</grid>
-</var>
-</global>
- 
-! Change default dataset. Now we should just see pi and my_sst
- 
-CAN DATA gtsa056_2
-SHOW VAR/XML
-<global>
-<var name="MY_SST">
-<attribute name="definition" type="char">
-   <value><![CDATA[SST*12]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME4</taxis>
-</axes>
-</grid>
-</var>
-<var name="PI">
-<attribute name="definition" type="char">
-   <value><![CDATA[3.14]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="ABSTRACT">
-<axes>
-</axes>
-</grid>
-</var>
-</global>
- 
-! 8/7/2007
-! new form for output of a var whose definition contains quotes
-CANCEL DATA/ALL
-CANCEL VAR/ALL
- 
-USE coads_climatology
-LET t3 = sst[x=180,y=1,t="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]
-SHOW VAR/XML
-<global>
-<var name="T3">
-<attribute name="definition" type="char">
-   <value><![CDATA[SST[X=180,Y=1,T="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-</axes>
-</grid>
-</var>
-</global>
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_test_nan.jnl
-!bn_test_nan.jnl
-! test to make sure that NaN is able to be set by user
-!  as bad value.  If this fails, Ferret will crash
-!  Test on a file which is nothing but NaN's, and use
-!  various spellings of NaN
-!
-! 9/03 *kob*
-!
+GO bn_reset
+cancel mode verify
+GO bn_test_nan.jnl
+!bn_test_nan.jnl
+! test to make sure that NaN is able to be set by user
+!  as bad value.  If this fails, Ferret will crash
+!  Test on a file which is nothing but NaN's, and use
+!  various spellings of NaN
+!
+! 9/03 *kob*
+!
  
  
  
@@ -44413,16 +43554,16 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
 !-> REPEAT: M:300
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:153 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:148 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M:157 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:152 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:300 at ave,y=@ave]
- -DELETE cnst     M:153 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:157 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:153 dset:   1 I:  131  140  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:157 dset:   1 I:  131  140  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -44434,16 +43575,16 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:140 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:134 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M:147 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:144 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:330 at ave,y=@ave]
- -DELETE cnst     M:140 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:147 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:140 dset:   1 I:  131  155  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:147 dset:   1 I:  131  155  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -44455,16 +43596,16 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:131 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:129 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M:138 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:133 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:360 at ave,y=@ave]
- -DELETE cnst     M:131 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:138 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:131 dset:   1 I:  131  170  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:138 dset:   1 I:  131  170  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -44915,52 +44056,53 @@ let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
 load a
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
- strip regrid on X: TAUX --> (G022)           @XACT
+ allocate dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
+ strip regrid on X: TAUX --> (G023)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:149 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:137 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
+ nulrgd  TAUX     M:153 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M:141 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
 can mem/all
- -DELETE A        M:137 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:149 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE A        M:141 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M:153 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  
 def grid/like=taux agrid
- dealloc  dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
  getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME6     NORMAL    NORMAL
 set mode diag
 let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
  dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME6     NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
 load a
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- strip regrid on X: TAUX --> (G022)           @XACT
+ allocate dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ strip regrid on X: TAUX --> (G023)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:137 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:149 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
+ nulrgd  TAUX     M:141 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M:153 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
  
 can mem/all
- -DELETE TAUX     M:137 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE A        M:149 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M:141 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE A        M:153 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
 can data/all
- dealloc  dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ canceling dset ./gtsa056_2.cdf
  
 ! Some tests taken from  bn_strides_revs_perms.jnl but with
 ! DEFINE GRID/LIKE= testing permuting and reversing axes
@@ -44989,6 +44131,7 @@ define grid/like=xytvar egrid
  allocate dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
 canc data/all
  dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
  
 ! cache hit from full region cache -- bypass use of strides
@@ -44997,20 +44140,20 @@ use bn_strides
 load var
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M:149 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ reading VAR      M:153 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 LIST VAR[i=2:4:2]
  dealloc  dynamic grid AGRID           XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ strip regrid on X: VAR --> (G014)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:144 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:137 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M:148 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:141 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -45025,19 +44168,19 @@ LIST VAR[i=2:4:2]
  2   / 2:  1222.00  1224.00
  3   / 3:  1232.00  1234.00
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G017)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:144 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M:148 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ strip regrid on X: VAR --> (G014)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:137 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:144 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M:141 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:148 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -45052,25 +44195,25 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.00  1214.00
  3   / 2:  1232.00  1234.00
 CANC MEM/ALL
- -DELETE VAR      M:137 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:149 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:141 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:153 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XAX1_4
 LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
- dealloc  dynamic grid (G017)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ strip regrid on X: VAR --> (G014)           @XACT
  strip moduloing VAR on X axis:     1    10 dset:   1
- reading VAR      M:149 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ reading VAR      M:153 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  doing moduloing VAR on X axis:     1     4 dset:   1
- regrid  VAR      M:144 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ regrid  VAR      M:148 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -45085,24 +44228,24 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
  7    / 3:  1113.00
  10   / 4:  1112.00
 cancel axis/modulo XAX1_4
- -DELETE VAR      M:137 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:144 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:149 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:141 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:148 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:153 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G017)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ strip regrid on X: VAR --> (G014)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:144 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:149 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M:148 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:153 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -45117,19 +44260,19 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.00  1214.00
  3   / 2:  1232.00  1234.00
 LIST VAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G017)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:144 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M:148 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ strip regrid on X: VAR --> (G014)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:149 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:144 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:148 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -45146,24 +44289,24 @@ LIST VAR[i=2:6:2,j=1:5:2]
  
 ! test sub-region selection on strides axis
 let a = bigvar[i=1:40:5]
- dealloc  dynamic grid (G017)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:149 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 list/j=1/k=1/l=1 a[i=3:5]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ strip regrid on X: BIGVAR --> (G014)           @XACT
  rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:144 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:149 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M:148 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:153 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -45175,26 +44318,26 @@ list/j=1/k=1/l=1 a[i=3:5]
  11   / 3:  1121.00
  16   / 4:  1126.00
  21   / 5:  1131.00
- -DELETE A        M:137 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:141 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
 list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G017)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    2    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on Y: A --> (G002)           @XACT
+ allocate dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ strip regrid on Y: A --> (G001)           @XACT
  eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ strip regrid on X: BIGVAR --> (G014)           @XACT
  rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:136 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:137 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M:140 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:141 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  regrid  A        M:152 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -45211,27 +44354,27 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
 ! ****** unequally spaced points on parent axis
  
 cancel mem/all
- -DELETE BIGVAR   M:136 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:137 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:144 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:149 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:140 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:141 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:148 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE A        M:152 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:153 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G002)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G002)           @XACT
+ allocate dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ strip regrid on X: UNEVENVAR --> (G001)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:149 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:152 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ nulrgd  UNE-NVAR M:152 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:153 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -45249,19 +44392,19 @@ set region/i=3:6/j=2:4/k=1:2/l=1
  
 use/order=yx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G002)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M:149 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ -DELETE UNE-NVAR M:152 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G002)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G002)           @XACT
+ allocate dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
+ strip regrid on X: BIGVAR --> (G001)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:152 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:149 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:152 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45278,23 +44421,24 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1345.00  1347.00  1349.00
  6   / 3:  1363.00  1365.00  1367.00  1369.00
 canc data/all
- -DELETE BIGVAR   M:152 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
 use/order=zyx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
+ strip regrid on X: BIGVAR --> (G014)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:149 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:152 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M:152 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:153 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45311,8 +44455,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.00  1543.00  1743.00  1943.00
  6   / 3:  1363.00  1563.00  1763.00  1963.00
 canc data/all
- -DELETE BIGVAR   M:149 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M:152 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! now with xytvar
 cancel region
@@ -45321,16 +44466,16 @@ use bn_strides
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
+ strip regrid on X: XYTVAR --> (G014)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:152 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:149 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
+ nulrgd  XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:152 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -45348,31 +44493,31 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  
 use/order=tyx bn_strides
 show grid xytvar
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- -DELETE XYTVAR   M:152 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
     GRID EGRID
- name       axis              # pts   start                end
- XLON      LONGITUDE           40mr   141E                 180E
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ XLON      LONGITUDE           40mr   141E                 180E                full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  dealloc  dynamic grid EGRID           XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
+ strip regrid on X: XYTVAR --> (G014)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:149 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:152 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
+ nulrgd  XYTVAR   M:152 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:153 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -45388,8 +44533,9 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.00  5043.00  5045.00  5047.00
  2N   / 1:  5021.00  5023.00  5025.00  5027.00
 canc data/all
- -DELETE XYTVAR   M:149 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:152 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -45397,10 +44543,10 @@ show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
- YLAT      Z (degrees_north)   30 r   1                    30
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
+ YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
  normal    E
  normal    F
@@ -45408,16 +44554,16 @@ show grid xytvar
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  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)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
+ strip regrid on X: XYTVAR --> (G014)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:152 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:149 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
+ nulrgd  XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:152 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -45433,8 +44579,9 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.00  3054.00  5054.00  7054.00
  146   / 3:  1056.00  3056.00  5056.00  7056.00
 canc data/all
- -DELETE XYTVAR   M:152 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
  
 cancel region; set region/l=1
@@ -45443,16 +44590,16 @@ cancel region; set region/l=1
 use/order=yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
+ strip regrid on X: MIDVAR --> (G014)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:149 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
+ nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45467,25 +44614,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.00  1552.00
  5   / 2:  1515.00  1555.00
 canc data/all
- -DELETE MIDVAR   M:149 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
+ strip regrid on X: MIDVAR --> (G014)           @XACT
  strip reversing MIDVAR on Y axis:     2     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    1    5  J:    5    8  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M:149 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:149 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
+ nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45500,23 +44648,24 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.00  1558.00
  5   / 2:  1515.00  1555.00
 canc data/all
- -DELETE MIDVAR   M:149 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=tyx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ strip regrid on X: MIDVAR --> (G014)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:149 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ nulrgd  MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45531,26 +44680,27 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.00  5125.00
  5   / 2:  1155.00  5155.00
 canc data/all
- -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 use/order=-t-y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ strip regrid on X: MIDVAR --> (G014)           @XACT
  strip reversing MIDVAR on X axis:     1     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    4    7  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on X axis:     1     5 dset:   1
+ -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:149 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45565,23 +44715,24 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.00  2775.00
  5   / 2:  6745.00  2745.00
 canc data/all
- -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=txy bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ strip regrid on X: MIDVAR --> (G014)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:149 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45596,25 +44747,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.00  5152.00
  5   / 2:  1155.00  5155.00
 canc data/all
- -DELETE MIDVAR   M:149 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G017)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G017)           @XACT
+ allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ strip regrid on X: MIDVAR --> (G014)           @XACT
  strip reversing MIDVAR on Y axis:     2     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    5    8  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M:149 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:149 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45629,8 +44781,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.00  2758.00
  5   / 2:  6755.00  2755.00
 canc data/all
- -DELETE MIDVAR   M:149 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G017)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! DEFINE AXIS can get the axis too long (bug 673)
 GO bn_reset
@@ -45841,7 +44994,7 @@ LEV_TEXT = "C"
 LEV_MIN = "1"
 LEV_MAX = "10.2"
 LEV_NUM = "46"
-LEV_DEL = "0.2"
+LEV_DEL = "irregular"
  
 can sym lev*
 ! Now with /LEV=(min,max,del)
@@ -46618,37 +45771,37 @@ show axis `temp,return=zaxis`
  
 ! unrecognized units
 set axis/units="something" `temp,return=xaxis`
- !-> set axis/units="something" PSXT1
+ !-> set axis/units="something" PSXT
 show axis `temp,return=xaxis`
- !-> show axis PSXT1
+ !-> show axis PSXT
  name       axis              # pts   start                end
- PSXT1     X (something)      160mr   130.5                289.5
+ PSXT      X (something)      160mr   130.5                289.5
    Axis span (to cell edges) = 160 (modulo length = 360)
  
 ! restore lon
 set axis/units=lon `temp,return=xaxis`
- !-> set axis/units=lon PSXT1
+ !-> set axis/units=lon PSXT
 show axis `temp,return=xaxis`
- !-> show axis PSXT1
+ !-> show axis PSXT
  name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
+ PSXT      LONGITUDE          160mr   130.5E               70.5W
    Axis span (to cell edges) = 160 (modulo length = 360)
  
 set axis/units=something `temp,return=xaxis`
- !-> set axis/units=something PSXT1
+ !-> set axis/units=something PSXT
 show axis `temp,return=xaxis`
- !-> show axis PSXT1
+ !-> show axis PSXT
  name       axis              # pts   start                end
- PSXT1     X (something)      160mr   130.5                289.5
+ PSXT      X (something)      160mr   130.5                289.5
    Axis span (to cell edges) = 160 (modulo length = 360)
  
 ! restore lon using word DEG
 set axis/units=deg `temp,return=xaxis`
- !-> set axis/units=deg PSXT1
+ !-> set axis/units=deg PSXT
 show axis `temp,return=xaxis`
- !-> show axis PSXT1
+ !-> show axis PSXT
  name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
+ PSXT      LONGITUDE          160mr   130.5E               70.5W
    Axis span (to cell edges) = 160 (modulo length = 360)
  
 set axis/units=zorro  `temp,r=zaxis`
@@ -46728,11 +45881,11 @@ set axis/units=seconds  `temp,r=yaxis`
  !-> set axis/units=seconds  PSYT
 show grid temp
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
- PSYT      Y (seconds)        100 i   -28.836              48.568
- PSZT      Z (zorro)           27 i-  5                    3824
- TIME11    T (meters)          25 r   22702                26206
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      Y (seconds)        100 i   -28.836              48.568              full
+ PSZT      Z (zorro)           27 i-  5                    3824                full
+ TIME11    T (meters)          25 r   22702                26206               full
  normal    E
  normal    F
  
@@ -48381,11 +47534,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) Ver.6.951
+ LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET (beta/dbg) Ver.7
  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  @AS09-NOV-2015 15:03:13
+ LAB 3  8.000E+00  7.000E+00 0.060    0  SYSTEM  @AS15-JUN-2016 12:06:19
  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
@@ -48395,7 +47548,7 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB 7  4.000E+00  6.330E+00 0.120    0  SYSTEM  @A
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- LAB 8  8.000E+00  6.750E+00 0.073    0  SYSTEM  @ASOPeNDAP URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+ LAB 8  8.000E+00  6.790E+00 0.064    0  SYSTEM  @ASOPeNDAP <NL>URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  
  
@@ -48470,7 +47623,7 @@ LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
 LEV_MIN = "-2.8"
 LEV_MAX = "32"
 LEV_NUM = "50"
-LEV_DEL = "6.8"
+LEV_DEL = "irregular"
  
 set view right
 shade/lev=(-inf),(4,28,0.5)(inf)/key=cont sst[l=1]
@@ -48479,7 +47632,7 @@ LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
 LEV_MIN = "-2.8"
 LEV_MAX = "32"
 LEV_NUM = "50"
-LEV_DEL = "6.8"
+LEV_DEL = "irregular"
  
  
 can view
@@ -48751,9 +47904,9 @@ list/i=1:5 x[gx=sst]
 set view lower; shade sst
 sh grid sst
     GRID GEX1
- name       axis              # pts   start                end
- 'COADSX.ILLEGAL' LONGITUDE    21mr   21E                  61E
- 'COADSY.ILLEGAL' LATITUDE     16 r   35N                  65N
+ name       axis              # pts   start                end                 subset
+ 'COADSX.ILLEGAL' LONGITUDE    21mr   21E                  61E                 full
+ 'COADSY.ILLEGAL' LATITUDE     16 r   35N                  65N                 full
  normal    Z
  normal    T
  normal    E
@@ -49018,11 +48171,11 @@ def ax/t/edge time = {0,1,3}
 let a = t[gt=time]
 show grid/t a
     GRID (G011)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TIME      T                    2 i   0.5                  2
+ TIME      T                    2 i   0.5                  2                   full
  normal    E
  normal    F
  
@@ -49042,11 +48195,11 @@ can mem
 use a.nc
 show grid/t a
     GRID GSI1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TIME7     T                    2 i   0.5                  2
+ TIME7     T                    2 i   0.5                  2                   full
  normal    E
  normal    F
  
@@ -49067,11 +48220,11 @@ GO err580_cartesian_depth.jnl
 use a_cartesian_bug1179.nc
 sh grid temp
     GRID GHU1
- name       axis              # pts   start                end
- GRID_X_T  LONGITUDE            1 r   79E                  79E
- GRID_Y_T  LATITUDE             1 r   0.25S                0.25S
- ZT        DEPTH (m)           10 i-  22.5                 158
- TIME7     TIME                 1mr   15-FEB-1900 03:00    15-FEB-1900 03:00
+ name       axis              # pts   start                end                 subset
+ 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
  normal    E
  normal    F
  
@@ -49662,7 +48815,7 @@ GO bn_long_revision_num.jnl
  
 ! ferret version
 sh sym FERRET_VERSION
-FERRET_VERSION = "6.951"
+FERRET_VERSION = "7"
  
 ! history attribute
 let a = 12
@@ -49680,7 +48833,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) version6.951:
+ Commands in Program FERRET (beta/dbg) version7:
  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
@@ -49692,8 +48845,8 @@ sho command
       /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
  SET MODE/LAST
  SET MOVI/FILE/COMPRESS/LASER/START
- SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE/LAYERZ
-      /CURVILIN
+ SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
+      /LAYERZ/CURVILIN
  SET GRID/SAVE/RESTORE
  SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
  SET MEMORY/SIZE
@@ -49711,9 +48864,8 @@ sho command
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
-       /CURVILIN
- SHOW COMMANDS/ALL
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+ SHOW COMMANDS/ALL/BRIEF
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
@@ -49738,65 +48890,67 @@ sho command
  CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
  CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
  CANCEL GRID
- CANCEL ATTRIBUT/OUTPUT/DATA
+ CANCEL ATTRIBUT/OUTPUT/DATASET
  CANCEL REDIRECT
  CANCEL ALIAS/ALL
  CANCEL SYMBOL/ALL
  CANCEL NCCACHE
- CONTOUR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/FILL/LINE
-          /NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/COLOR
+ CONTOUR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/FILL
+          /LINE/NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/COLOR
           /NOAXES/PATTERN/SIZE/SPACING/SIGDIG/PEN/HLIMITS/VLIMITS/AXES/HGRATICU
-          /VGRATICU/GRATICUL/MODULO
- LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/D/HEADING/NOHEAD/SINGLE/FILE/APPEND/ORDER
-       /FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS/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
- PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/VS/SYMBOL
-       /NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE/NOAXES/STEP
-       /DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG/GRATICUL/NOKEY
-       /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
+          /VGRATICU/GRATICUL/MODULO/DEGMINSE/HALFSPAC
+ LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/HEADING/NOHEAD/SINGLY/FILE/APPEND
+       /ORDER/FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS
+       /MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
+       /CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
+       /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
+       /OUTTYPE/CURVILIN/LAYERZ
+ 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
+       /GRATICUL/NOKEY/NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
+       /SKIPSYM/DEGMINSE/HALFSPAC
  GO/HELP
  HELP
- LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
+ LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/NAME
  DEFINE
  DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
          /DL/DM/DN
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
- DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
  EXIT/COMMAND/LOOP/SCRIPT/PROMPT/PROGRAM/CYCLE/TOPYTHON
  MESSAGE/CONTINUE/QUIET/JOURNAL/ERROR/OUTFILE/APPEND/CLOBBER
- VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/ASPECT/NOLABEL
-         /LENGTH/XSKIP/YSKIP/THICK/XLIMITS/YLIMITS/TITLE/COLOR/NOAXES/NOKEY
-         /FLOWLINE/DENSITY/AXES/PEN/HLIMITS/VLIMITS/HGRATICU/VGRATICU/GRATICUL
-         /KEY/MODULO
+ VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/ASPECT
+         /NOLABEL/LENGTH/XSKIP/YSKIP/THICK/XLIMITS/YLIMITS/TITLE/COLOR/NOAXES
+         /NOKEY/FLOWLINE/DENSITY/AXES/PEN/HLIMITS/VLIMITS/HGRATICU/VGRATICU
+         /GRATICUL/KEY/MODULO
  PPLUS/RESET
  FRAME/FORMAT/FILE/TRANSPAR
  REPEAT/I/J/K/L/M/N/X/Y/Z/T/E/F/ANIMATE/LOOP/RANGE/NAME
- STAT/BRIEF/I/J/K/L/M/N/X/Y/Z/T/E/F/D
- SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/TRIM/LINE
-        /NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/AXES/NOAXES
-        /PATTERN/HGRATICU/VGRATICU/GRATICUL/MODULO/HLIMITS/VLIMITS
+ STAT/BRIEF/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET
+ SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/TRIM
+        /LINE/NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/AXES
+        /NOAXES/PATTERN/HGRATICU/VGRATICU/GRATICUL/MODULO/HLIMITS/VLIMITS
+        /DEGMINSE/HALFSPAC
  SPAWN
- USER/OPT1/OPT2/COMMAND/I/J/K/L/X/Y/Z/T/D/FILE/FORMAT
- WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/VIEWPOIN/ZLIMITS/TRANPOSE
-       /NOLABEL/ZSCALE/TITLE
+ USER/OPT1/OPT2/COMMAND/I/J/K/L/X/Y/Z/T/DATASET/FILE/FORMAT
+ WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/VIEWPOIN/ZLIMITS
+       /TRANPOSE/NOLABEL/ZSCALE/TITLE
  QUERY/ALL/FILE/IGNORE
  IF
  ELSE
  ELIF
  ENDIF
- POLYGON/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/COORD_AX
+ POLYGON/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/COORD_AX
           /NOLABEL/LEVELS/LINE/COLOR/PALETTE/XLIMITS/YLIMITS/TITLE/THICKNES
           /NOAXES/PATTERN/FILL/KEY/NOKEY/AXES/HLIMITS/VLIMITS/HLOG/VLOG
           /HGRATICU/VGRATICU/GRATICUL/MODULO
@@ -49818,7 +48972,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "9-Nov-15:15:02"
+WIN_TITLE = "15-Jun-16:12:05"
  
 set win/title="set the title"
 sho sym win_title
@@ -49836,7 +48990,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title=" 9-Nov-15:15:02"
+ !-> set win/title="15-Jun-16:12:05"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -49845,16 +48999,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 =  9-Nov-15
+ !-> DEFINE SYMBOL the_date = 15-Jun-16
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 15:02
+ !-> DEFINE SYMBOL the_time = 12:05
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="9-Nov-15:15:02"
+ !-> SET WIN/TITLE="15-Jun-16:12:05"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "9-Nov-15:15:02"
+WIN_TITLE = "15-Jun-16:12:05"
  
 GO bn_reset
 cancel mode verify
@@ -49919,6 +49073,8 @@ GO bn_deg_min.jnl
 ! label axes with degrees and minutes rather than degrees and decimal degrees.
 ! 19-May-06 add seconds as well...
  
+ 
+ 
 use ss_small.nc
  
 shade/set/x=222.9:223.1/y=58.22:59.1 rose
@@ -49949,6 +49105,20 @@ ppl plot
 ! Restore the default settings
 ppl axlint,2,2
  
+! Now do the same using command qualifiers /DEGMINSEC= /HALFSPAC  (ticket 2434)
+!  /DEGMINSEC=1 for Deg-Min, =2 for Deg-Min-Sec. Default = 1
+!  /HALFSPAC adds a half space between the degree sign and E/W or N/S
+ 
+use ss_small
+shade/x=222.9:223.1/y=58.22:59.1/DEGMIN rose
+fill/x=222.9:223.1/y=58.22:59.1/DEGMIN=2 rose
+plot/vs/DEGMIN=2 xpts, ypts
+ 
+fill/x=222.9:223.1/y=58.22:59.1/HALFSP rose
+plot/x=223./DEGMIN/HALFSP rose
+plot/y=58.52/DEGMIN=2/HALFSP rose
+plot/vs/HALFSP  xpts, ypts
+ 
 GO bn_reset
 cancel mode verify
 GO bn_dp_readscale.jnl
@@ -50347,20 +49517,24 @@ sho data/att
 (XAX_LEV9421_380)      DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        15   F       XAX_LEV9421_380
+                                 orig_file_axname
+                                                 CHAR        15   F       XAX_LEV9421_380
   
 (YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
+                                 orig_file_axname
+                                                 CHAR        9    F       YAX_LEV94
   
 (ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        13   F       ZAXLEVIT191_1
+                                 orig_file_axname
+                                                 CHAR        13   F       ZAXLEVIT191_1
   
 (TIME3)                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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -50382,44 +49556,53 @@ sh data/att gt4d011
   
  PS3DT2                CHAR      axes            CHAR        20   F       PSXT PSYT PSZT TIME1
   
-(PSXT1)                DOUBLE    units           CHAR        12   T       degrees_east
+(PSXT)                 DOUBLE    units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        4    F       PSXT
+                                 orig_file_axname
+                                                 CHAR        4    F       PSXT
   
 (PSYT1)                DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSYTedges
-                                 orig_file_axnameCHAR        4    F       PSYT
+                                 orig_file_axname
+                                                 CHAR        4    F       PSYT
   
 (PSYTedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSYTedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYTedges
   
 (PSZT1)                DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSZTedges
-                                 orig_file_axnameCHAR        4    F       PSZT
+                                 orig_file_axname
+                                                 CHAR        4    F       PSZT
   
 (PSZTedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSZTedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSZTedges
   
 (TIME11)               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_axnameCHAR        5    F       TIME1
+                                 orig_file_axname
+                                                 CHAR        5    F       TIME1
   
 (PSXT91_108)           DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        10   F       PSXT91_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXT91_108
   
 (PSYT35_56)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYT35_56
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT35_56
   
 (PSZT1_10)             DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        8    F       PSZT1_10
+                                 orig_file_axname
+                                                 CHAR        8    F       PSZT1_10
   
  TEMP                  FLOAT     parent_grid     CHAR        6    F       PS3DT2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -50432,7 +49615,8 @@ sh data/att gt4d011
   
 (PSYT35_55)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYT35_55
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT35_55
   
  SALT                  FLOAT     parent_grid     CHAR        6    F       PS3DT2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -50447,24 +49631,29 @@ sh data/att gt4d011
   
 (PSXU)                 DOUBLE    units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        4    F       PSXU
+                                 orig_file_axname
+                                                 CHAR        4    F       PSXU
   
 (PSYU)                 DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSYUedges
-                                 orig_file_axnameCHAR        4    F       PSYU
+                                 orig_file_axname
+                                                 CHAR        4    F       PSYU
   
 (PSYUedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSYUedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYUedges
   
 (PSXU91_108)           DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        10   F       PSXU91_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXU91_108
   
 (PSYU35_55)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYU35_55
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYU35_55
   
  U                     FLOAT     parent_grid     CHAR        6    F       PS3DU2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -50490,19 +49679,23 @@ sh data/att gt4d011
                                  positive        CHAR        4    T       down
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSZWedges
-                                 orig_file_axnameCHAR        4    F       PSZW
+                                 orig_file_axname
+                                                 CHAR        4    F       PSZW
   
 (PSZWedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSZWedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSZWedges
   
 (PSYT36_55)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYT36_55
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT36_55
   
 (PSZW1_10)             DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        8    F       PSZW1_10
+                                 orig_file_axname
+                                                 CHAR        8    F       PSZW1_10
   
  W                     FLOAT     parent_grid     CHAR        6    F       PS3DW2
                                  slab_min_index  INT         4    F       91 36 1 0
@@ -50535,7 +49728,8 @@ sh data/att gt4d011
   
 (PSYU35_56)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYU35_56
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYU35_56
   
  PSI                   FLOAT     parent_grid     CHAR        6    F       PS2DU2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -50785,7 +49979,7 @@ list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
              SUBSET   : 21 points (X)
  1    /  1:"grid_definition"
- 2    /  2:"PSXT1"          
+ 2    /  2:"PSXT"           
  3    /  3:"PSYT1"          
  4    /  4:"PSYTedges"      
  5    /  5:"PSZT1"          
@@ -50990,11 +50184,14 @@ sh data/att
   
  dnodata               DOUBLE
   
-(i)                    INT       orig_file_axnameCHAR        1    F       i
+(i)                    INT       orig_file_axname
+                                                 CHAR        1    F       i
   
-(j)                    FLOAT     orig_file_axnameCHAR        1    F       j
+(j)                    FLOAT     orig_file_axname
+                                                 CHAR        1    F       j
   
-(l)                    BYTE      orig_file_axnameCHAR        1    F       l
+(l)                    BYTE      orig_file_axname
+                                                 CHAR        1    F       l
   
  
 let a= broiled.acl
@@ -51114,7 +50311,7 @@ list/d=1 ..dimnames
              FILENAME : gt4d011.cdf
              SUBSET   : 21 points (X)
  1    /  1:"grid_definition"
- 2    /  2:"PSXT1"          
+ 2    /  2:"PSXT"           
  3    /  3:"PSYT1"          
  4    /  4:"PSYTedges"      
  5    /  5:"PSZT1"          
@@ -51478,7 +50675,7 @@ sh att/all temp3
  
 can var temp2
 let/units="degrees C"/title="my new TEMP"/bad=`temp,return=bad` temp2 = temp*2
- !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad=-9.9999998E+33 temp2 = temp*2
+ !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad= -9.999999790214768E+33 temp2 = temp*2
 sh att/all temp2
      attributes for user-defined variables
  temp2.long_name = my new TEMP 
@@ -52045,29 +51242,29 @@ use gt4d011.cdf
  
 let t2 = t*temp
 set att (`t2,return=xaxis`).units = "degrees"
- !-> set att (PSXT1).units = "degrees"
+ !-> set att (PSXT).units = "degrees"
 sh att/all (`t2,return=xaxis`)
- !-> sh att/all (PSXT1)
+ !-> sh att/all (PSXT)
      attributes for dataset: ./gt4d011.cdf
- (PSXT1).units = degrees 
- (PSXT1).point_spacing = even 
- (PSXT1).orig_file_axname = PSXT 
+ (PSXT).units = degrees 
+ (PSXT).point_spacing = even 
+ (PSXT).orig_file_axname = PSXT 
 set att/output (`t2,return=xaxis`).point_spacing
- !-> set att/output (PSXT1).point_spacing
+ !-> set att/output (PSXT).point_spacing
 save/file=a.nc/clobber/L=1 t2
  
 sp echo "bn_attributes.jnl --- 26 attributes of axes" >> all_ncdump.out
  
 sp ncdump -h a.nc >> all_ncdump.out
 define att/out (`t2,return=xaxis`).new_att = "something"
- !-> define att/out (PSXT1).new_att = "something"
+ !-> define att/out (PSXT).new_att = "something"
 save/file=a.nc/clobber/L=1 t2
 sp ncdump -h a.nc >> all_ncdump.out
  
 ! A file variable is used to refer to the axes
  
 set att (`temp,return=xaxis`).units="meters"
- !-> set att (PSXT1).units="meters"
+ !-> set att (PSXT).units="meters"
 set att (`temp,return=yaxis`).units="meters"
  !-> set att (PSYT1).units="meters"
 sho att/all (`temp,return=yaxis`)
@@ -52088,24 +51285,24 @@ cancel mode verify
 def axis/x=1:200:1  x2ax
 sh att/all (x2ax)
      attributes for coordinate axis
- (X2AX).point_spacing = even 
- (X2AX).axis = X 
+ (x2ax).point_spacing = even 
+ (x2ax).axis = X 
 ! SET AXIS command changes attributes
 set axis/modulo x2ax
 sh att/all (x2ax)
      attributes for coordinate axis
- (X2AX).point_spacing = even 
- (X2AX).axis = X 
- (X2AX).modulo =   
+ (x2ax).point_spacing = even 
+ (x2ax).axis = X 
+ (x2ax).modulo =   
  
 ! DEFINE ATTRIBUTE command changes attributes
 define attribute (x2ax).units = "degrees_east"
 sh att/all (x2ax)
      attributes for coordinate axis
- (X2AX).point_spacing = even 
- (X2AX).axis = X 
- (X2AX).modulo =   
- (X2AX).units = degrees_east 
+ (x2ax).point_spacing = even 
+ (x2ax).axis = X 
+ (x2ax).modulo =   
+ (x2ax).units = degrees_east 
  
 ! Define new attribute on an axis.
 ! Save file var, and a user var defined from the file var
@@ -52127,16 +51324,19 @@ sh dat/att
 (XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        14   F       XAXLEVITR1_160
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
                                  new_att         CHAR        9    T       something
   
 (YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        13   F       YAXLEVITR1_90
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
   
 (ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        12   F       ZAXLEVITR1_1
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
                                  _FillValue      FLOAT       1    T       -1.E+10
@@ -52174,9 +51374,9 @@ let axy = reshape (a,rvar)
  
 show att/all (z4ax)
      attributes for coordinate axis
- (Z4AX).point_spacing = even 
- (Z4AX).axis = Z 
- (Z4AX).positive = down 
+ (z4ax).point_spacing = even 
+ (z4ax).axis = Z 
+ (z4ax).positive = down 
 set att (z4ax).positive = "up"
  
 sp echo "bn_attributes.jnl --- 27 attributes of  user-defined axes" >> all_ncdump.out
@@ -52351,20 +51551,24 @@ sho att ocean_atlas_temp
 (XAX_LEV9421_380)      DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        15   F       XAX_LEV9421_380
+                                 orig_file_axname
+                                                 CHAR        15   F       XAX_LEV9421_380
   
 (YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
+                                 orig_file_axname
+                                                 CHAR        9    F       YAX_LEV94
   
 (ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        13   F       ZAXLEVIT191_1
+                                 orig_file_axname
+                                                 CHAR        13   F       ZAXLEVIT191_1
   
 (TIME3)                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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -52392,20 +51596,24 @@ sho att 1
 (XAX_LEV9421_380)      DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        15   F       XAX_LEV9421_380
+                                 orig_file_axname
+                                                 CHAR        15   F       XAX_LEV9421_380
   
 (YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
+                                 orig_file_axname
+                                                 CHAR        9    F       YAX_LEV94
   
 (ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        13   F       ZAXLEVIT191_1
+                                 orig_file_axname
+                                                 CHAR        13   F       ZAXLEVIT191_1
   
 (TIME3)                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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -52424,15 +51632,18 @@ sho att 2
 (XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        14   F       XAXLEVITR1_160
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
   
 (YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        13   F       YAXLEVITR1_90
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
   
 (ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        12   F       ZAXLEVITR1_1
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
                                  _FillValue      FLOAT       1    T       -1.E+10
@@ -52495,7 +51706,7 @@ list/L=1/prec=7 sst[x=100:120 at din,y=10:30 at din]
              LONGITUDE: 100E to 120E (XY integ.)
              LATITUDE : 10N to 30N (XY integ.)
              TIME     : JAN
-          6.008341E+13
+          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
@@ -52962,6 +52173,9 @@ cancel mode verify
 GO err581_subspanx_fill_bug.jnl
 ! err581_subspanx_fill_bug.jnl
 ! bug 900: subspan longitude axis and hlimits gets wrong data
+!
+! Further fixes 5/2016, with other subspan modulo work.
+! Don't list ppl$xlow, ppl$xhigh.
  
 use coads_climatology
 save/clobber/y=0/x=130e:80w/file=err581_subspanx_fill_bug.nc sst
@@ -52971,12 +52185,10 @@ set view left; shade/x=120e:80w sst  ! works correctly
  
 set view right; fill/x=120e:80w sst
  
+! look at axis coord. range 5/9/2016
 sh sym ppl$xmin, ppl$xmax    ! should be 131, 279
-PPL$XMIN = "131.0000"
-PPL$XMAX = "281.0000"
-sh sym ppl$xlow, ppl$xhigh   ! should be 165, 259
-PPL$XHIGH = "165.0000"
-PPL$XLOW = "259.0000"
+PPL$XMIN = "25.00000"
+PPL$XMAX = "279.0000"
  
 sp rm -f err581_subspanx_fill_bug.nc
  
@@ -53322,11 +52534,11 @@ can axis t360
 set data t3file
 sho grid t3
     GRID GCG1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- T360      TIME                61 r   01-JAN-2000 00:00    01-JAN-2005 00:00
+ T360      TIME                61 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
  normal    E
  normal    F
  
@@ -53954,8 +53166,9 @@ list ..dimnames
 list ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : levitus_climatology.cdf
-             X        : 1
-        "TEMP"
+             SUBSET   : 2 points (X)
+ 1   / 1:"TEMP"   
+ 2   / 2:"temp_20"
  
 ! err600_nc_des_order.jnl
 ! Bug 1459 order of multiple descriptor file opening causes netCDF error
@@ -54176,16 +53389,19 @@ sh dat/att
 (COADSX)               DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        6    F       COADSX
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSX
   
 (COADSY)               DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        6    F       COADSY
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSY
   
 (TIME10)               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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -54209,22 +53425,24 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
-(PSXT191_108)          DOUBLE    units           CHAR        12   T       degrees_east
+(PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
                                  modulo          DOUBLE      1    T       360
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        11   F       PSXT191_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXT91_108
   
 (PSYT135_56)           DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
                                  bounds          CHAR        15   T       PSYT135_56_bnds
-                                 orig_file_axnameCHAR        10   F       PSYT135_56
+                                 orig_file_axname
+                                                 CHAR        10   F       PSYT135_56
   
  PSYT135_56_bnds       DOUBLE
   
@@ -54234,7 +53452,8 @@ sho dat/att
                                  axis            CHAR        1    T       Z
                                  standard_name   CHAR        5    F       depth
                                  bounds          CHAR        14   T       PSZT11_10_bnds
-                                 orig_file_axnameCHAR        9    F       PSZT11_10
+                                 orig_file_axname
+                                                 CHAR        9    F       PSZT11_10
   
  PSZT11_10_bnds        DOUBLE
   
@@ -54242,7 +53461,8 @@ sho dat/att
                                  time_origin     CHAR        20   T       14-JAN-1980 14:00:00
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME11
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME11
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -54254,22 +53474,24 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
-(PSXT191_108)          DOUBLE    units           CHAR        12   T       degrees_east
+(PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
                                  modulo          DOUBLE      1    T       360
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        11   F       PSXT191_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXT91_108
   
 (PSYT135_56)           DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
                                  bounds          CHAR        15   T       PSYT135_56_bnds
-                                 orig_file_axnameCHAR        10   F       PSYT135_56
+                                 orig_file_axname
+                                                 CHAR        10   F       PSYT135_56
   
  PSYT135_56_bnds       DOUBLE
   
@@ -54279,7 +53501,8 @@ sho dat/att
                                  axis            CHAR        1    T       Z
                                  standard_name   CHAR        5    F       depth
                                  bounds          CHAR        14   T       PSZT11_10_bnds
-                                 orig_file_axnameCHAR        9    F       PSZT11_10
+                                 orig_file_axname
+                                                 CHAR        9    F       PSZT11_10
   
  PSZT11_10_bnds        DOUBLE
   
@@ -54287,7 +53510,8 @@ sho dat/att
                                  time_origin     CHAR        20   T       14-JAN-1980 14:00:00
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME11
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME11
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -54516,17 +53740,17 @@ use coads_climatology
 set axis/stride=2/offset=1 `sst, return=xaxis`
  !-> set axis/stride=2/offset=1 COADSX
 show axis `sst,return=xaxis`
- !-> show axis (AX047)
+ !-> show axis (AX052)
  name       axis              # pts   start                end
- (AX047)   LONGITUDE           90mr   23E                  19E(379)
+ (AX052)   LONGITUDE           90mr   23E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 !can't stride it again
 set axis/stride=2/offset=1 `sst, return=xaxis`
- !-> set axis/stride=2/offset=1 (AX047)
+ !-> set axis/stride=2/offset=1 (AX052)
 show axis `sst,return=xaxis`
- !-> show axis (AX047)
+ !-> show axis (AX052)
  name       axis              # pts   start                end
- (AX047)   LONGITUDE           90mr   23E                  19E(379)
+ (AX052)   LONGITUDE           90mr   23E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 cancel data/all
  
@@ -54575,7 +53799,7 @@ list sst[i=11:15,j=50,k=1,l=50]
  
 ! --- after cancel striding
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX042)
+ !-> cancel axis/stride (AX047)
 list sst[i=21:30,j=50,k=1,l=50]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -54626,9 +53850,9 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX049)                         use count:   1
-    AXIS (AX047)                         use count:  13
-    AXIS (AX020)                         use count:   1
+    AXIS (AX054)                         use count:   1
+    AXIS (AX052)                         use count:  13
+    AXIS (AX009)                         use count:   1
 cancel data/all
  
 !.............7. cancel stride on a non-strided axis
@@ -54646,24 +53870,24 @@ use coads_climatology
 set axis/stride=6/offset=5 `sst,return=xaxis`
  !-> set axis/stride=6/offset=5 COADSX
 show axis `sst,return=xaxis`
- !-> show axis (AX009)
+ !-> show axis (AX018)
  name       axis              # pts   start                end
- (AX009)   LONGITUDE           30mr   31E                  19E(379)
+ (AX018)   LONGITUDE           30mr   31E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX009)
+ !-> cancel axis/stride (AX018)
  
 !--- 8.2 stride value is not an integer factor of the axis length
 ! warning: it may lose modulo property
 set axis/stride=7/offset=5 `sst,return=xaxis`
  !-> set axis/stride=7/offset=5 COADSX
 show axis `sst,return=xaxis`
- !-> show axis (AX042)
+ !-> show axis (AX047)
  name       axis              # pts   start                end
- (AX042)   LONGITUDE           25 r   31E                  7E(367)
+ (AX047)   LONGITUDE           25 r   31E                  7E(367)
    Axis span (to cell edges) = 350
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX042)
+ !-> cancel axis/stride (AX047)
 cancel data/all
  
 ! --- 8.3 testing strided modulo axis
@@ -54672,7 +53896,7 @@ set axis/stride=2/offset=1 `sst,return=xaxis`
  !-> set axis/stride=2/offset=1 COADSX
 shade/x=-180:180/y=-30:70/L=2 sst
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX042)
+ !-> cancel axis/stride (AX047)
 cancel data/all
  
 !.............9. two datasets share the same grid
@@ -54767,9 +53991,9 @@ show data/all
 set axis/stride=5 `sst,return=yaxis`
  !-> set axis/stride=5 COADSX
 show axis `sst,return=yaxis`
- !-> show axis (AX049)
+ !-> show axis (AX054)
  name       axis              # pts   start                end
- (AX049)   LONGITUDE           36mr   21E                  11E(371)
+ (AX054)   LONGITUDE           36mr   21E                  11E(371)
    Axis span (to cell edges) = 360 (modulo length = axis span)
  
 can data/all
@@ -54870,19 +54094,19 @@ set axis/stride=2 `sst, return=taxis`
  !-> set axis/stride=2 TIME10
  
 show axis `sst,return=xaxis`
- !-> show axis (AX051)
+ !-> show axis (AX056)
  name       axis              # pts   start                end
- (AX051)   LONGITUDE           90mr   21E                  17E(377)
+ (AX056)   LONGITUDE           90mr   21E                  17E(377)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 show axis `sst,return=yaxis`
- !-> show axis (AX009)
+ !-> show axis (AX018)
  name       axis              # pts   start                end
- (AX009)   LATITUDE            45 r   89S                  87N
+ (AX018)   LATITUDE            45 r   89S                  87N
    Axis span (to cell edges) = 180
 show axis `sst,return=taxis`
- !-> show axis (AX048)
+ !-> show axis (AX053)
  name       axis              # pts   start                end
- (AX048)   TIME                 2 r   16-JAN-0000 06:00    17-MAR-0000 02:58
+ (AX053)   TIME                 2 r   16-JAN-0000 06:00    17-MAR-0000 02:58
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 2921.94
  
@@ -54957,11 +54181,11 @@ GO bn_return_xmod_tmod.jnl
 use ocean_atlas_temp
 sh grid temp
     GRID GBS1
- name       axis              # pts   start                end
- XAX_LEV9421_380 LONGITUDE    360mr   20.5E                19.5E(379.5)
- YAX_LEV94 LATITUDE           180 r   89.5S                89.5N
- ZAXLEVIT191_1 DEPTH (m)        1 r-  0                    0
- TIME3     TIME                 2mr   16-JAN 06:00         15-FEB 16:29
+ name       axis              # pts   start                end                 subset
+ 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
  normal    E
  normal    F
 sh axis XAX_LEV9421_380
@@ -55008,11 +54232,11 @@ say `a,return=xmod`
 use string4d
 sh grid axy
     GRID GMS2
- name       axis              # pts   start                end
- X2AX1     X                    2mr   1                    2
- Y3AX      Y                    3 r   1                    3
- Z4AX      Z                    4 r   1                    4
- T2AX1     T                    2 r   1                    2
+ name       axis              # pts   start                end                 subset
+ X2AX1     X                    2mr   1                    2                   full
+ Y3AX      Y                    3 r   1                    3                   full
+ Z4AX      Z                    4 r   1                    4                   full
+ T2AX1     T                    2 r   1                    2                   full
  normal    E
  normal    F
 show axis x2ax
@@ -55123,20 +54347,20 @@ GO err601_irregular_axis.jnl
 USE z_wide_variation.nc
 SHOW GRID/Z atmos
     GRID GOR1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
- ALTITUDE  Z (Pa)              50 i   6.791595619E-10      1400
- TIME11    TIME                 1mr   01-JAN 04:00         01-JAN 04:00
+ ALTITUDE  Z (Pa)              50 i   6.791595619E-10      1400                full
+ TIME11    TIME                 1mr   01-JAN 04:00         01-JAN 04:00        full
  normal    E
  normal    F
  
        K     Z                   ZBOX      ZBOXLO
-       1>  6.7915956192266E-10   6.885E-10  3.3490923923019E-10
-       2>  0.00000000136766      1.037E-09  0.00000000102341
-       3>  0.000000002754131     2.089E-09  0.000000002060896
-       4>  0.000000005546143     4.207E-09  0.000000004150137
-       5>  0.00000001116856      8.472E-09  0.000000008357353
+       1>  6.791595619227E-10    6.885E-10  3.349092392302E-10
+       2>  1.367660207308E-09    1.037E-09  1.023409884615E-09
+       3>  2.754131145366E-09    2.089E-09  2.060895676337E-09
+       4>  5.546143100332E-09    4.207E-09  4.150137122849E-09
+       5>  0.00000001116856      8.472E-09  8.357352587751E-09
        6>  0.00000002249072      1.706E-08  0.00000001682964
        7>  0.00000004529075      3.436E-08  0.00000003389074
        8>  0.00000009120437      6.919E-08  0.00000006824756
@@ -55800,6 +55024,7 @@ SAMPLEYZ(DAT_TO_SAMPLE,YPTS,ZPTS)
 SCAT2DDUPS(coord 1,coord 2,epsilon 1,epsilon 2)
 SCAT2GRID_BIN_XY(XPTS,YPTS,F,XAXPTS,YAXPTS)
 SCAT2GRID_BIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
+SCAT2GRID_BIN_XYZ(XPTS,YPTS,ZPTS,F,XAXPTS,YAXPTS,ZAXPTS)
 SCAT2GRIDGAUSS_XT(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
 SCAT2GRIDGAUSS_XT_V0(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
 SCAT2GRIDGAUSS_XY(XPTS,YPTS,F,XAXPTS,YAXPTS,XSCALE,YSCALE,CUTOFF,0)
@@ -55893,19 +55118,21 @@ SAMPLE_FAST_I(V,Indices)
 SAMPLE_FAST_I_STR(S,Indices)
 SEPARATE_STR(A,Rowsize,FixLongitudes)
 WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
+BXCAT(A,B)
+BXSEQUENCE(A)
+BXSEQUENCE_STR(A)
+BCOMPRESSI(DAT)
+SCAT2GRID_BIN_XYZT(XPTS,YPTS,ZPTS,TPTS,F,XAXPTS,YAXPTS,ZAXPTS,TAXPTS)
 ADD_9(A,B,C,D,E,F,G,H,I)
 APPENDE(ENS,VAR)
 AVET(A)
 DATES(Offsets)
 EFSTRINGS(--)
-EXPND_BY_LEN(var,len,nx)
 FACTORIAL(A)
-FC_ISUBSET(index_list,lengths,nx,FullData)
 FFT_AMP(A)
 FFTA_SAMPLE(A)
 FFT_PHAS(A)
 LENGTH_OF_STRINGS(--)
-LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
 MAXSTRLEN(A)
 PASS_THRU(A)
 PASS_THRU_STRING(A)
@@ -55913,12 +55140,6 @@ PERCENT_GOOD_T(A)
 PICK_A_STRING(A,N)
 PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
 SAMPLE_FAST_I(V,Indices)
-SCAT2GRID_MASK_BIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS,MASK)
-SCAT2GRID_MASK_MINMAX_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS,MASK)
-SCAT2GRID_MASK_NBIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS,MASK)
-SCAT2GRID_MASK_STD_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS,MASK)
-SCAT2GRID_MINMAX_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
-SCAT2GRID_STD_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
 SEPARATE(A,Rowsize,FixLongitudes)
 SEPARATE_STR(A,Rowsize,FixLongitudes)
 STORAGE(A)
@@ -55926,12 +55147,10 @@ STRING_ARG(Flags,NString)
 STRING_CAT3(A,B,C)
 STRING_LEN_SUM(S1,S2)
 STRINGS_AS_ARGS(S1,S2,NCHAR)
+STRING_TO_ID(STRINGS)
 STR_MISSING(MASK,STR,REPL)
 STUDENT_T_CUTOFF(P,nf)
 SUBTRACT(A,B)
-TRACKS2GRID_MASK_AVE_XYT(VAR,XPTS,YPTS,TPTS,ICRUISE,XAXPTS,YAXPTS,TAXPTS,MASK)
-TRACKS2GRID_STD_XYT(VARIABLE,XPTS,YPTS,TPTS,ICRUISE,XAXPTS,YAXPTS,TAXPTS)
-WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
  
  
 GO bn_reset
@@ -55948,8 +55167,17 @@ GO err607_show_var_xml
 ! Bug 1539 SHOW VAR/XML didnt show all vars.
  
  
-use gt4d011.cdf
-use coads_climatology
+ 
+! make some short files
+let/units="meters" temp = z[z=1:100:5]
+save/clobber/file=a.nc temp
+ 
+LET sst = x[x=1:15] + y[y=1:5] + t[gt=month_irreg]
+save/clobber/file=b.nc sst
+can var/all
+ 
+use a
+use b
  
 let temp_1_regrid=temp[d=1,z=5.00:75.00 at ave]
 let sst_2_regrid=sst[d=2,t="15-Feb":"15-Mar"@ave]
@@ -55973,10 +55201,10 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="(G104)">
+<grid name="GRR1">
 <axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT1</yaxis>
+<xaxis>XAX1_15</xaxis>
+<yaxis>YAX1_5</yaxis>
 </axes>
 </grid>
 </var>
@@ -55987,10 +55215,10 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="GSQ1">
+<grid name="GRR1">
 <axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
+<xaxis>XAX1_15</xaxis>
+<yaxis>YAX1_5</yaxis>
 </axes>
 </grid>
 </var>
@@ -56001,11 +55229,9 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="PS3DT2">
+<grid name="GSI1">
 <axes>
-<xaxis>PSXT1</xaxis>
-<yaxis>PSYT1</yaxis>
-<taxis>TIME11</taxis>
+<zaxis>TIME10</zaxis>
 </axes>
 </grid>
 </var>
@@ -56237,7 +55463,7 @@ SAY `1.23456789e-15`
  !-> MESSAGE/CONTINUE 1.23456789E-15
 1.23456789E-15
 SAY `1.23456789e-15,prec=10`
- !-> MESSAGE/CONTINUE 1.23456789E-15
+ !-> MESSAGE/CONTINUE   1.23456789E-15
 1.23456789E-15
  
  
@@ -56583,7 +55809,7 @@ list lnames
              VARIABLE : ..DIMNAMES[D=gt4d011]
              SUBSET   : 21 points (X)
  1    /  1:"grid_definition"
- 2    /  2:"PSXT1"          
+ 2    /  2:"PSXT"           
  3    /  3:"PSYT1"          
  4    /  4:"PSYTedges"      
  5    /  5:"PSZT1"          
@@ -57028,7 +56254,7 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB 4  4.000E+00  6.330E+00 0.120    0  SYSTEM  @A
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- LAB 5 -3.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASSST[Y=39N] No Valid Data
+ LAB 5 -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
@@ -57045,11 +56271,11 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB 3  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 4  2.530E+00 -7.900E-01 0.120    0  SYSTEM  @ASSST[Y=9N]
+ LAB 4  1.750E+00 -8.100E-01 0.120    0  SYSTEM  @ASSST[Y=9N]
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 5  5.780E+00 -7.900E-01 0.119    0  SYSTEM  @ASSST[Y=49N] No Valid Data
+ LAB 5  5.370E+00 -8.100E-01 0.120    0  SYSTEM  @ASSST[Y=49N] No Valid Data
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 6  2.530E+00 -1.050E+00 0.120    0  SYSTEM  @ASSST[Y=19N]
+ LAB 6  1.750E+00 -1.060E+00 0.120    0  SYSTEM  @ASSST[Y=19N]
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  
 ! For 2D plots create a new MODE NODATA_LAB which if on, puts
@@ -57286,11 +56512,11 @@ GO err611_wrong_fineaxis_range
 use fine_x_axis
 sh grid sst
     GRID GPY1
- name       axis              # pts   start                end
- LON       LONGITUDE         7200mr   179.97W(-179.97)     179.97E
- LAT1800_1800 LATITUDE          1 r   0.025S               0.025S
- ENS       Z (count)            1 r   1                    1
- TIME11    TIME                 1 r   01-APR-2006 00:00    01-APR-2006 00:00
+ name       axis              # pts   start                end                 subset
+ 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
  normal    E
  normal    F
  
@@ -57614,22 +56840,23 @@ GO err611_return_precision
  
 ! See bug 1611, where say "a`95,p=1`" yielded "a 95" but
 ! "a`94,p=1`" yielded "a94"
+! Note with ticket 2389 (5/2016), p=1 returns 1 digit, p=2 returns 2, etc.
  
 say "a`95,p=1`"
  !-> MESSAGE/CONTINUE "a95"
 a95
 say "a`94,p=1`"
- !-> MESSAGE/CONTINUE "a94"
-a94
+ !-> MESSAGE/CONTINUE "a90"
+a90
 say "a`95,p=1`"
  !-> MESSAGE/CONTINUE "a95"
 a95
 say "a`949,p=1`"
- !-> MESSAGE/CONTINUE "a949"
-a949
+ !-> MESSAGE/CONTINUE "a900"
+a900
 say "a`950,p=1`"
- !-> MESSAGE/CONTINUE "a950"
-a950
+ !-> MESSAGE/CONTINUE "a1.E+03"
+a1.E+03
  
 ! Note that an immediate expr with prec=0 returns an integer.
 say "a`95,p=0`"
@@ -57655,54 +56882,54 @@ say "a`0.1,p=0`"
 a0.1
  
 say "a`-95,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.99,p=1`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.001,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
  
 say "a`-94,p=1`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
+ !-> MESSAGE/CONTINUE "a-90"
+a-90
 say "a`-94.99,p=1`"
  !-> MESSAGE/CONTINUE "a-95"
 a-95
 say "a`-94.001,p=1`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
+ !-> MESSAGE/CONTINUE "a-90"
+a-90
  
 say "a`-95,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.99,p=1`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.001,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
  
 say "a`-949,p=1`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
+ !-> MESSAGE/CONTINUE "a-9.E+02"
+a-9.E+02
 say "a`-949.99,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
+ !-> MESSAGE/CONTINUE "a-9.E+02"
+a-9.E+02
 say "a`-949.001,p=1`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
+ !-> MESSAGE/CONTINUE "a-9.E+02"
+a-9.E+02
  
 say "a`-950,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
+ !-> MESSAGE/CONTINUE "a-1.E+03"
+a-1.E+03
 say "a`-950.99,p=1`"
- !-> MESSAGE/CONTINUE "a-951"
-a-951
+ !-> MESSAGE/CONTINUE "a-1.E+03"
+a-1.E+03
 say "a`-950.001,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
+ !-> MESSAGE/CONTINUE "a-1.E+03"
+a-1.E+03
  
  
 say "a`-95,p=0`"
@@ -57902,11 +57129,11 @@ GO err611_irregular_axis
 use cc_irreg.nc
 sh grid cc
     GRID GCZ1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TAX3      TIME               142 i   30-DEC-2007 00:00    30-DEC-2007 00:02
+ TAX3      TIME               142 i   30-DEC-2007 00:00    30-DEC-2007 00:02   full
  normal    E
  normal    F
  
@@ -59056,11 +58283,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX1      X                   10 r   1                    10
- YAX1      Y                   20 r   1                    20
- ZAX1      Z                  100 r   1                    100
- TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1      X                   10 r   1                    10                  full
+ YAX1      Y                   20 r   1                    20                  full
+ ZAX1      Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -59152,11 +58379,11 @@ show data/full
  
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX1      X                   10 r   1                    10
- YAX1      Y                   20 r   1                    20
- ZAX1      Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1      X                   10 r   1                    10                  full
+ YAX1      Y                   20 r   1                    20                  full
+ ZAX1      Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
  
@@ -59186,43 +58413,43 @@ cancel variables/all
 set data/format=cdf test_abs
 show grid j1 jkl jkl2 iavejkl ijkl
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1      Y                   20 r   1                    20
+ YAX1      Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1      Y                   20 r   1                    20
- ZAX1      Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX1      Y                   20 r   1                    20                  full
+ ZAX1      Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1      Y                   20 r   1                    20
+ YAX1      Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1      Y                   20 r   1                    20
- ZAX1      Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX1      Y                   20 r   1                    20                  full
+ ZAX1      Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU14
- name       axis              # pts   start                end
- XAX1      X                   10 r   1                    10
- YAX1      Y                   20 r   1                    20
- ZAX1      Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1      X                   10 r   1                    10                  full
+ YAX1      Y                   20 r   1                    20                  full
+ ZAX1      Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -59408,11 +58635,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID PS3DU1
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYU      LATITUDE           100 i   27.672S              50N
- PSZT1     DEPTH (m)           27 i-  5                    3824
- TIME12    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
+ name       axis              # pts   start                end                 subset
+ 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
  normal    E
  normal    F
 cancel data test_fil0
@@ -59654,12 +58881,12 @@ GO bn_keep_axisnames.jnl
 ! axis name when a subset is written.
  
 sh command list
- LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/D/HEADING/NOHEAD/SINGLE/FILE/APPEND/ORDER
-       /FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS/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
+ LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/HEADING/NOHEAD/SINGLY/FILE/APPEND
+       /ORDER/FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS
+       /MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
+       /CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
+       /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
+       /OUTTYPE/CURVILIN/LAYERZ
 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]
@@ -60114,10 +59341,10 @@ SHOW DATA
 ! Ferret uses it as Z only because of the order in which it comes in
 SH GRID am
     GRID GMY1
- name       axis              # pts   start                end
- AAXIS     X (METERS)          10 r   1                    10
- BAXIS     Y (METERS)           5 r   1                    9
- CAXIS     Z (METERS)           5 r   2                    10
+ name       axis              # pts   start                end                 subset
+ AAXIS     X (METERS)          10 r   1                    10                  full
+ BAXIS     Y (METERS)           5 r   1                    9                   full
+ CAXIS     Z (METERS)           5 r   2                    10                  full
  normal    T
  normal    E
  normal    F
@@ -60126,10 +59353,10 @@ SH GRID am
 ! Previously it was not.
 SH GRID ar
     GRID GMY2
- name       axis              # pts   start                end
- AAXIS     X (METERS)          10 r   1                    10
- BAXIS     Y (METERS)           5 r   1                    9
- DAXIS     DEPTH (m)            6 i-  0                    8
+ name       axis              # pts   start                end                 subset
+ AAXIS     X (METERS)          10 r   1                    10                  full
+ BAXIS     Y (METERS)           5 r   1                    9                   full
+ DAXIS     DEPTH (m)            6 i-  0                    8                   full
  normal    T
  normal    E
  normal    F
@@ -60142,20 +59369,20 @@ DEFINE AXIS/Z/UNITS="`am,RETURN=zunits`"/DEPTH ($zname) = Z[GZ=am]
  !-> DEFINE AXIS/Z/UNITS="METERS"/DEPTH CAXIS = Z[GZ=am]
 SH GRID am
     GRID GMY1
- name       axis              # pts   start                end
- AAXIS     X (METERS)          10 r   1                    10
- BAXIS     Y (METERS)           5 r   1                    9
- CAXIS     DEPTH (m)            5 r-  2                    10
+ name       axis              # pts   start                end                 subset
+ AAXIS     X (METERS)          10 r   1                    10                  full
+ BAXIS     Y (METERS)           5 r   1                    9                   full
+ CAXIS     DEPTH (m)            5 r-  2                    10                  full
  normal    T
  normal    E
  normal    F
  
 GO bn_clock_syms
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "34.0998"
-CLOCK_SECS = "67.807"
-CURRENT_DATE = " 9-Nov-15"
-CURRENT_TIME = "15:03:37"
+DELTA_CPU = "34.0038"
+CLOCK_SECS = "66.314"
+CURRENT_DATE = "15-Jun-16"
+CURRENT_TIME = "12:06:42"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60164,8 +59391,8 @@ CURRENT_TIME = "15:03:37"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.034994"
-CLOCK_SECS = "67.964"
+DELTA_CPU = "0.041994"
+CLOCK_SECS = "66.467"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -60179,60 +59406,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.246963
+ !-> DEFINE VARIABLE ten_plots = 0.245962
 sh sym DELTA_CPU, CLOCK_SECS
 DELTA_CPU = "0"
-CLOCK_SECS = "69.306"
+CLOCK_SECS = "67.697"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "69.307"
+CLOCK_SECS = "67.698"
 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.024996
- !-> DEFINE VARIABLE sumcpu =0.024996
+ !-> DEFINE VARIABLE dt = 0.025996
+ !-> DEFINE VARIABLE sumcpu =0.025996
 !-> REPEAT: K=2
  !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.057991
+ !-> DEFINE VARIABLE sumcpu =0.058991
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.030995
- !-> DEFINE VARIABLE sumcpu =0.088986
+ !-> DEFINE VARIABLE dt = 0.025997
+ !-> DEFINE VARIABLE sumcpu =0.084988
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.033995
- !-> DEFINE VARIABLE sumcpu =0.122981
+ !-> DEFINE VARIABLE dt = 0.029995
+ !-> DEFINE VARIABLE sumcpu =0.114983
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.034995
- !-> DEFINE VARIABLE sumcpu =0.157976
+ !-> DEFINE VARIABLE dt = 0.031995
+ !-> DEFINE VARIABLE sumcpu =0.146978
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.190971
+ !-> DEFINE VARIABLE dt = 0.029995
+ !-> DEFINE VARIABLE sumcpu =0.176973
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.036994
- !-> DEFINE VARIABLE sumcpu =0.227965
+ !-> DEFINE VARIABLE dt = 0.028996
+ !-> DEFINE VARIABLE sumcpu =0.205969
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.039994
- !-> DEFINE VARIABLE sumcpu =0.267959
+ !-> DEFINE VARIABLE dt = 0.030995
+ !-> DEFINE VARIABLE sumcpu =0.236964
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.028996
- !-> DEFINE VARIABLE sumcpu =0.296955
+ !-> DEFINE VARIABLE dt = 0.026996
+ !-> DEFINE VARIABLE sumcpu =0.26396
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.037993
- !-> DEFINE VARIABLE sumcpu =0.334948
+ !-> DEFINE VARIABLE dt = 0.027996
+ !-> DEFINE VARIABLE sumcpu =0.291956
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.334948
-0.334948
+ !-> MESSAGE/CONTINUE 0.291956
+0.291956
 sh sym CLOCK_SECS
-CLOCK_SECS = "71.672"
+CLOCK_SECS = "69.893"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = " 9-Nov-15"
-SESSION_TIME = "15:02"
-CURRENT_DATE = " 9-Nov-15"
-CURRENT_TIME = "15:03:41"
+SESSION_DATE = "15-Jun-16"
+SESSION_TIME = "12:05"
+CURRENT_DATE = "15-Jun-16"
+CURRENT_TIME = "12:06:45"
  
  
 ! ******** V6.3 Additions below ***********
@@ -60346,6 +59573,8 @@ GO err62_thick_tic_time_axis
 ! disappeared due to pixel aliasing. Fixed by setting
 ! the thick-line for these tics.
  
+! restore default setting
+ppl axlabp,-1,-1
  
 define axis/t=1-jan-1990:1-jan-2010:1/units=months tax
  
@@ -60873,7 +60102,7 @@ LIST var
  16-JAN-1969 / 20:  0.6617913
  
 CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX139)
+ !-> CAN AXIS/STRIDE (AX144)
 SET AXIS/STRIDE=12/OFFSET=11 truemonth ! every December
 LIST var
              VARIABLE : COS(T[GT=TRUEMONTH]/100)
@@ -60902,7 +60131,7 @@ LIST var
 SET MODE IGNORE_ERRROR
 ! Previously didnt check for negative offset value
 CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX130)
+ !-> CAN AXIS/STRIDE (AX135)
 SET AXIS/STRIDE=12/OFFSET=-1 truemonth
  
 ! Previously didnt give err msg; just ignored non-positive stride value
@@ -61087,7 +60316,7 @@ LEV_TEXT = "50V"
 LEV_MIN = "-2"
 LEV_MAX = "30.74"
 LEV_NUM = "56"
-LEV_DEL = "0.5"
+LEV_DEL = "irregular"
 LEV_OPNLEVS = "(-2,3.05,0.505)(3.5,25.5,0.5)(25.5,25.5,0.505)(inf)"
  
 shade/line/lev=50v,5min/title="/LEV=50v,5min" temp[K=1]
@@ -61448,7 +60677,7 @@ define grid/like=u/x=xax10/z=w/t=tax5day g5_10g00abcdefghijklmnopqrstuvwxyz12345
  allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  getgrid EX#1     C:  9 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DW11         PSXT1     PSYT1     PSZW      TIME14    NORMAL    NORMAL
+ allocate dynamic grid PS3DW11         PSXT      PSYT1     PSZW      TIME14    NORMAL    NORMAL
  
 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
@@ -61456,7 +60685,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         PSXT1     PSYT1     PSZW      TIME14    NORMAL    NORMAL
+ dealloc  dynamic grid PS3DW11         PSXT      PSYT1     PSZW      TIME14    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
@@ -61537,21 +60766,21 @@ set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
 load temp[i=50:51,j=45:56,k=1:2,l=1:172]  ! preload to save time
  dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT1          PSXT1     PSYT1     PSZT2     TIME14    NORMAL    NORMAL
+ allocate dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  strip moduloing TEMP on T axis:     1   172 dset:   2
  reading TEMP     M: 29 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
  doing moduloing TEMP on T axis:     1   168 dset:   2
 plot temp
- dealloc  dynamic grid PS3DT1          PSXT1     PSYT1     PSZT2     TIME14    NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT1          PSXT1     PSYT1     PSZT2     TIME14    NORMAL    NORMAL
+ allocate dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
  found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 753  complete
+PPL plot 760  complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT1          PSXT1     PSYT1     PSZT2     TIME14    NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
@@ -61567,7 +60796,7 @@ plot/over temp[g=u]
  regrid  TEMP     M: 20 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
  doing moduloing TEMP on T axis:     1     2 dset:   2
 setting up plot
-PPL plot 754  complete
+PPL plot 761  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
  dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -61580,7 +60809,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
  regrid  TEMP     M: 15 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  -DELETE TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 755  complete
+PPL plot 762  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
  dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY   NORMAL    NORMAL
  -DELETE TEMP     M: 15 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
@@ -61597,7 +60826,7 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
  regrid  TEMP     M: 15 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  -DELETE TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 756  complete
+PPL plot 763  complete
 plot/over temp[g=u at ave]
  dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -61615,7 +60844,7 @@ plot/over temp[g=u at ave]
  regrid  TEMP     M: 13 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
  doing moduloing TEMP on T axis:     1     2 dset:   2
 setting up plot
-PPL plot 757  complete
+PPL plot 764  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
  dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -61628,7 +60857,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
  regrid  TEMP     M: 11 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  -DELETE TEMP     M: 12 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 758  complete
+PPL plot 765  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
  dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY   NORMAL    NORMAL
  -DELETE TEMP     M: 11 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
@@ -61641,13 +60870,13 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
  reading TEMP     M: 11 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
  doing moduloing TEMP on T axis:     1   168 dset:   2
  regrid  TEMP     M:  9 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 24 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 23 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  -DELETE TEMP     M:  9 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
  regrid XY
  regrid  TEMP     M:  9 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 24 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 23 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 759  complete
+PPL plot 766  complete
 plot/over temp[g=u at asn]
  dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -61657,9 +60886,9 @@ plot/over temp[g=u at asn]
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  found   TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 24 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 23 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
  regrid  TEMP     M: 26 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 24 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 23 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
  doing moduloing TEMP on T axis:     3   168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
@@ -61669,7 +60898,7 @@ plot/over temp[g=u at asn]
  -DELETE TEMP     M: 27 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
  doing moduloing TEMP on T axis:     1     2 dset:   2
 setting up plot
-PPL plot 760  complete
+PPL plot 767  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
  dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -61687,7 +60916,7 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
  regrid  TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  -DELETE TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 761  complete
+PPL plot 768  complete
 plot/over temp[g=u,gt=u at ave]
  dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -61699,7 +60928,7 @@ plot/over temp[g=u,gt=u at ave]
  found   TEMP     M: 17 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
  dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
 setting up plot
-PPL plot 762  complete
+PPL plot 769  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
  dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -61712,7 +60941,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5da
  regrid  TEMP     M: 25 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  -DELETE TEMP     M: 19 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 763  complete
+PPL plot 770  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
  dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -61728,7 +60957,7 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefg
  regrid  TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  -DELETE TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 764  complete
+PPL plot 771  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at asn]  ! invalid interpretation of data
  dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -61741,7 +60970,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5da
  regrid  TEMP     M:  8 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  -DELETE TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 765  complete
+PPL plot 772  complete
  
  
 set mode/last diag
@@ -61783,10 +61012,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G106)
     GRID (G106)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -61814,10 +61043,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G106)
     GRID (G106)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -61843,10 +61072,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G106)
     GRID (G106)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -61898,7 +61127,7 @@ show grid gg123456789012345678902
     GRID GG123456789012345678902
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX020)   LATITUDE           401 r   20S                  20N
+ (AX009)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
@@ -61907,9 +61136,9 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX049)                         use count:  13
-    AXIS (AX047)                         use count:  13
-    AXIS (AX020)                         use count:   2
+    AXIS (AX054)                         use count:  13
+    AXIS (AX052)                         use count:  13
+    AXIS (AX009)                         use count:   2
  
 ! demonstrate proper management of dynamic axes
 DEFINE GRID/LIKE=gg123456789012345678902 gg123456789012345678903
@@ -61917,9 +61146,9 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX049)                         use count:  13
-    AXIS (AX047)                         use count:  13
-    AXIS (AX020)                         use count:   3
+    AXIS (AX054)                         use count:  13
+    AXIS (AX052)                         use count:  13
+    AXIS (AX009)                         use count:   3
 DEFINE GRID/like=temp[d=levitus_climatology] gg123456789012345678902
 show grid gg123456789012345678902
     GRID GG123456789012345678902
@@ -61934,9 +61163,9 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX049)                         use count:  13
-    AXIS (AX047)                         use count:  13
-    AXIS (AX020)                         use count:   2
+    AXIS (AX054)                         use count:  13
+    AXIS (AX052)                         use count:  13
+    AXIS (AX009)                         use count:   2
  
 ! SET GRID using a user-defined variable
 let g = sst[x=0:30:.1,d=coads_climatology]
@@ -61945,10 +61174,10 @@ show grid
  Default grid for DEFINE VARIABLE is G
  Last successful data access was on grid GG2
     GRID GG2
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- YAXLEVITR1_90 LATITUDE        90 r   89.5S                0.5S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
+ YAXLEVITR1_90 LATITUDE        90 r   89.5S                0.5S                full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
@@ -61959,11 +61188,11 @@ show grid
  Default grid for DEFINE VARIABLE is G
  Last successful data access was on grid (G106)
     GRID (G106)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX116)   LATITUDE           201 r   10S                  10N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX121)   LATITUDE           201 r   10S                  10N                 200 pts
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  normal    E
  normal    F
 show grid/dynamic
@@ -61971,16 +61200,16 @@ Dynamic grids:
     GRID (G106)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX116)   LATITUDE           201 r   10S                  10N
+ (AX121)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX116)                         use count:   1
-    AXIS (AX049)                         use count:  13
-    AXIS (AX047)                         use count:  13
-    AXIS (AX020)                         use count:   2
+    AXIS (AX121)                         use count:   1
+    AXIS (AX054)                         use count:  13
+    AXIS (AX052)                         use count:  13
+    AXIS (AX009)                         use count:   2
  
 ! deliberate errors
 set mode ignore
@@ -62001,7 +61230,7 @@ SHOW GRID mygrid_123456789012345678901234567890
     GRID MYGRID_123456789012345678901234567890
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX127)   LATITUDE            41 r   10S                  2S
+ (AX132)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
@@ -62013,15 +61242,20 @@ GO bn_xml_repl
 ! bn_xml_repl.jnl
 ! replace > and < and & with their html equivalents.
  
-use coads_climatology
-set var/title="a title with & and > and < characters" sst
-set var/units="<<" sst
-set att sst.history = "Adding some ampersands.& & to the history"
+! make a short file
+let/units="meters" myvar = 7
+save/clobber/file=a.nc myvar
+can var/all
+use a.nc
+ 
+set var/title="a title with & and > and < characters" myvar
+set var/units="<<" myvar
+define att myvar.history = "Adding some ampersands.& & to the history"
 sh dat/xml/var
 <datasets>
-<dataset name="./coads_climatology.cdf" default="true">
+<dataset name="./a.nc" default="true">
 <title> </title>
-<var name="SST">
+<var name="MYVAR">
 <attribute name="units" type="char">
    <value><![CDATA[<<]]></value>
 </attribute>
@@ -62038,111 +61272,17 @@ sh dat/xml/var
    <value><![CDATA[FLOAT]]></value>
 </attribute>
 <attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="GSQ1">
+<grid name="GSI1">
 <axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME10</taxis>
 </axes>
 </grid>
 </var>
 </dataset>
 </datasets>
 <axes>
-<axis name="COADSX">
-<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>180</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>21</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>379</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="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSX]]></value>
-</attribute>
-</axis>
-<axis name="COADSY">
-<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>90</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-89</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>89</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[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSY]]></value>
-</attribute>
-</axis>
-<axis name="TIME10">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>3</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>0000-01-16 06:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>0000-03-17 02:58:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
-   <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
-   <value><![CDATA[0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
-   <value>8765.82</value>
-</attribute>
-</axis>
 </axes>
-shade/l=1 sst
  
 ! ******** V6.5 Additions below ***********
  
@@ -62660,7 +61800,12 @@ GO bn_show_xml_file
 ! Dont do show axis/all. Just the axes for one variable is a lot of output.
 ! Ferret v685, show/data/var/xml includes the output of show axis, so remove that.
  
-USE ocean_atlas_temp.cdf
+! create a short file
+LET sst = x[x=1:15] + y[y=1:5] + t[gt=month_irreg]
+save/clobber/file=b.nc sst
+can var/all
+ 
+use b
  
 DEFINE SYMBOL output_xml_file = the_xml_file.xml
  
@@ -62687,14 +61832,11 @@ sp cat the_xml_file.xml
 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
 <data>
 <datasets>
-<dataset name="./ocean_atlas_temp.cdf" default="true">
+<dataset name="./b.nc" default="true">
 <title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
-   <value><![CDATA[Deg C]]></value>
-</attribute>
+<var name="SST">
 <attribute name="long_name" type="char">
-   <value><![CDATA[Temperature]]></value>
+   <value><![CDATA[X[X=1:15] + Y[Y=1:5] + T[GT=MONTH_IRREG]]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
    <value>-1.E+34</value>
@@ -62706,38 +61848,37 @@ sp cat the_xml_file.xml
    <value><![CDATA[FLOAT]]></value>
 </attribute>
 <attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="GBS1">
+<grid name="GRR1">
 <axes>
-<xaxis>XAX_LEV9421_380</xaxis>
-<yaxis>YAX_LEV94</yaxis>
-<zaxis>ZAXLEVIT191_1</zaxis>
-<taxis>TIME3</taxis>
+<xaxis>XAX1_15</xaxis>
+<yaxis>YAX1_5</yaxis>
+<taxis>MONTH_IRREG</taxis>
 </axes>
 </grid>
 </var>
 </dataset>
 </datasets>
 <axes>
-<axis name="TIME3">
+<axis name="MONTH_IRREG">
 <attribute name="direction" type="char">
    <value><![CDATA[L]]></value>
 </attribute>
 <attribute name="units" type="char">
-   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
+   <value><![CDATA[DAYS since 0000-01-01 00:00:00]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>2</value>
+   <value>12</value>
 </attribute>
 <attribute name="start" type="double">
-   <value>0000-01-16 06:00:00</value>
+   <value>0000-01-16 12:00:00</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>0000-02-15 16:29:00</value>
+   <value>0000-12-15 17:49:00</value>
 </attribute>
 <attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
+   <value>uneven</value>
 </attribute>
 <attribute name="modulo" type="char">
    <value><![CDATA[yes]]></value>
@@ -62748,57 +61889,34 @@ sp cat the_xml_file.xml
 <attribute name="calendar" type="char">
    <value><![CDATA[GREGORIAN]]></value>
 </attribute>
-<attribute name="modulo_length" type="short">
-   <value>8765.82</value>
-</attribute>
-</axis>
-<axis name="XAX_LEV9421_380">
-<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>360</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>20.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>379.5</value>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
+<attribute name="axis" type="char">
+   <value><![CDATA[T]]></value>
 </attribute>
-<attribute name="modulo" type="char">
-   <value><![CDATA[yes]]></value>
+<attribute name="standard_name" type="char">
+   <value><![CDATA[time]]></value>
 </attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
+<attribute name="bounds" type="char">
+   <value><![CDATA[MONTH_IRREG_bnds]]></value>
 </attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[XAX_LEV9421_380]]></value>
+   <value><![CDATA[MONTH_IRREG]]></value>
 </attribute>
 </axis>
-<axis name="ZAXLEVIT191_1">
+<axis name="XAX1_15">
 <attribute name="direction" type="char">
-   <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[METERS]]></value>
+   <value><![CDATA[I]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>1</value>
+   <value>15</value>
 </attribute>
 <attribute name="start" type="double">
-   <value>0</value>
+   <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>0</value>
-</attribute>
-<attribute name="positive" type="char">
-   <value><![CDATA[down]]></value>
+   <value>15</value>
 </attribute>
 <attribute name="point_spacing" type="char">
    <value><![CDATA[even]]></value>
@@ -62809,25 +61927,25 @@ sp cat the_xml_file.xml
 <attribute name="infile_datatype" type="char">
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[X]]></value>
+</attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[ZAXLEVIT191_1]]></value>
+   <value><![CDATA[XAX1_15]]></value>
 </attribute>
 </axis>
-<axis name="YAX_LEV94">
+<axis name="YAX1_5">
 <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>180</value>
+   <value>5</value>
 </attribute>
 <attribute name="start" type="double">
-   <value>-89.5</value>
+   <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>89.5</value>
+   <value>5</value>
 </attribute>
 <attribute name="point_spacing" type="char">
    <value><![CDATA[even]]></value>
@@ -62838,8 +61956,11 @@ sp cat the_xml_file.xml
 <attribute name="infile_datatype" type="char">
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[Y]]></value>
+</attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[YAX_LEV94]]></value>
+   <value><![CDATA[YAX1_5]]></value>
 </attribute>
 </axis>
 </axes>
@@ -62956,8 +62077,8 @@ cancel mode verify
 GO bn_netcdf4
 ! bn_netcdf4.jnl
 ! test syntax for controling NetCDF-4 intput and output.
- 
- 
+! 2/2016 change file name in second intentinal-error case
+!        Also list the file sizes for compressed data
  
 show nccache
 Current NCDF Chunk Cache size 4.1943 MB, n_elems = 1009, preemption = 75
@@ -63003,6 +62124,18 @@ save/file=nc4_nodeflate3.nc/clobber/ncformat=3 sst
 save/file=nc4_deflate4_xyt.nc/clobber/ncformat=4/deflate/shuffle/tchunk=2/xchunk=30/ychunk=20  sst
 save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
  
+! get the file sizes
+! Note that small changes in file size may be caused by differences in the global
+! history attribute; e.g. changing the Ferret version name from v6.97 to v7
+ 
+sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
+Bytes: 197524
+sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
+Bytes: 125224
+sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
+Bytes: 124812
+sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
+Bytes: 118877
  
 ! Write variable as INT
 CAN DAT/all; can var/all; can mem/all
@@ -63015,6 +62148,14 @@ save/clobber/file=nc4_inttemp_set_list_deflate_chunk.nc temp
  
 save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
  
+! get the file sizes
+sp stat nc4_inttemp_classic.nc --printf="Bytes: %s\n"
+Bytes: 60556
+sp stat nc4_inttemp_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
+Bytes: 32400
+sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
+Bytes: 32577
+ 
 cancel list/all
 set list/ncformat=classic
 save/clobber/file=nc4_inttemp_set_classic.nc temp
@@ -63065,7 +62206,7 @@ set mode ignore
 save/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchunk=1  sst
  
 ! Chunk sizes bigger than dim sizes
-save/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
+save/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
 can mode ignore
  
  
@@ -63082,11 +62223,11 @@ define axis/t=1-jan-2010:30-mar-2010:10/units=days tout
 let tt = t[gt=tout,L=1:10]
 sh grid tt
     GRID (G091)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   9 pts
  normal    E
  normal    F
  
@@ -63289,11 +62430,11 @@ list/x=2:3 sgrid
 let tpts = 39798 + 87*RANDU(I)
 show grid tt
     GRID (G089)
- name       axis              # pts   start                end
- X10       X                  201 r   0                    10
- Y10       Y                  201 r   0                    10
+ name       axis              # pts   start                end                 subset
+ x10       X                  201 r   0                    10                  full
+ Y10       Y                  201 r   0                    10                  full
  normal    Z
- TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   9 pts
  normal    E
  normal    F
  
@@ -63554,9 +62695,9 @@ show grid
  Default grid for DEFINE VARIABLE is MYGRID
  Last successful data access was on grid MYGRID
     GRID MYGRID
- name       axis              # pts   start                end
- MYX       X                   10 i   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX       X                   10 i   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -63615,9 +62756,9 @@ show grid
  Default grid for DEFINE VARIABLE is MYGRID
  Last successful data access was on grid MYGRID
     GRID MYGRID
- name       axis              # pts   start                end
- MYX       X                   10 r   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX       X                   10 r   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -63676,9 +62817,9 @@ show grid
  Default grid for DEFINE VARIABLE is MYGRID
  Last successful data access was on grid MYGRID
     GRID MYGRID
- name       axis              # pts   start                end
- MYX       X                   10 r   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX       X                   10 r   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -63717,9 +62858,9 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GOZ1
     GRID GOZ1
- name       axis              # pts   start                end
- MYX1      X                   10 i   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX1      X                   10 i   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -63748,9 +62889,9 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GOZ1
     GRID GOZ1
- name       axis              # pts   start                end
- MYX1      X                   10 r   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX1      X                   10 r   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -64208,9 +63349,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 47 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v6.951 (beta)"                                                    
- 3    /  3:" ! Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15"                       
- 4    /  4:" !  9-Nov-15 15:02     "                                                    
+ 2    /  2:" ! FERRET v7 (beta/dbg)"                                                    
+ 3    /  3:" ! Linux 2.6.32-642.1.1.el6.x86_64 64-bit - 06/15/16"                       
+ 4    /  4:" ! 15-Jun-16 12:05     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -64295,14 +63436,14 @@ regridding transforms e.g.SST[GX=x5deg at AVE]
    code        description                  code        description
    ----        -----------                  ----        -----------
    @LIN        lin. interp.                 @MODVAR     modulo var
-   @AVE        box avgd                     @MODNGD     # gd mod pts
+   @AVE        area-wgtd avgd               @MODNGD     # gd mod pts
    @XACT       exact match                  @MODNBD     #bad mod pts
    @ASN        index assn                   @MODSUM     modulo sum
    @VAR        variance                     @MODMIN     modulo min
    @MIN        minimum                      @MODMAX     modulo max
    @MAX        maximum                      @NRST       nearst coord
-   @SUM        sum                          @BIN        binning
-   @NGD        # gd pts                     @NBIN       #good in bin
+   @SUM        area-wgtd sum                @BIN        unwgtd avg
+   @NGD        #gd pts, area wgtd           @NBIN       #good in bin
    @MOD        modulo ave
  
 auxiliary varible regridding transforms e.g.TEMP[GZ(depth)=zax at AVE]
@@ -64951,6 +64092,27 @@ list/prec=7 t[gt=t_28]
              TIME     : 04-MAY-2007 05:02
           38825.21
  
+! 1/2016 additional tests, reading and saving data,
+! getting attribute information.
+ 
+set att/output=all .
+save/file=a.nc/clobber/k=1:5 t_28
+sp ncdump -h a.nc | grep INST_TYPE
+		:INST_TYPE = "Sea-Bird CTD SBE 9" ;
+ 
+let evar = T_28.generic_name
+save/append/file=a.nc evar
+ 
+list ..dimnames
+             VARIABLE : ..DIMNAMES
+             FILENAME : epic_formatted_file.nc
+             SUBSET   : 4 points (X)
+ 1   / 1:"TIME13"
+ 2   / 2:"dep"   
+ 3   / 3:"lat"   
+ 4   / 4:"lon"   
+ 
+ 
  
 GO bn_reset
 cancel mode verify
@@ -65315,27 +64477,32 @@ sh dat/att
   
  .                               history         CHAR        28   T       FERRET V6.7 (beta) 25-Mar-11
                                  Conventions     CHAR        6    F       CF-1.0
-                                 nco_input_file_nINT         1    F       1000
-                                 nco_input_file_lCHAR        2760 F       b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.00 [...]
+                                 nco_input_file_number
+                                                 INT         1    F       1000
+                                 nco_input_file_list
+                                                 CHAR        2760 F       b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.00 [...]
   
 (LON273_289)           DOUBLE    long_name       CHAR        9    T       longitude
                                  units           CHAR        12   T       degrees_east
                                  modulo          DOUBLE      1    T       360
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        10   F       LON273_289
+                                 orig_file_axname
+                                                 CHAR        10   F       LON273_289
   
 (LAT54_54)             DOUBLE    long_name       CHAR        8    T       latitude
                                  units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
-                                 orig_file_axnameCHAR        8    F       LAT54_54
+                                 orig_file_axname
+                                                 CHAR        8    F       LAT54_54
   
 (TIME13)               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
-                                 orig_file_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SFCO2                 FLOAT     units           CHAR        7    T       kg/m2/s
                                  long_name       CHAR        16   T       CO2 surface flux
@@ -65357,7 +64524,7 @@ set mode ignore
  
 ! setting too large
 set mode desperate `9999999999`
- !-> set mode desperate 1.E+10
+ !-> set mode desperate   9999999999.000000
 show mode desperate
       MODE            STATE        ARGUMENT
       DESPERATE     CANCELLED      2560000
@@ -65372,12 +64539,14 @@ show mode desperate
 ! Previously couldnt handle a floating point
 ! input. Now we can.
 set mode desperate `96 * 1024 * 1024`
- !-> set mode desperate 1.006633E+08
+ !-> set mode desperate   100663296.0000000
 show mode desperate
       MODE            STATE        ARGUMENT
-      DESPERATE        SET           100663300
+      DESPERATE        SET           100663296
 can mode ignore
  
+cancel mode desperate
+ 
 GO bn_reset
 cancel mode verify
 GO err667_dup_axnames
@@ -66429,8 +65598,8 @@ GO err672_dset_cx
 let a = x[gx=0:2:1]; save/clob/file=a1.nc a
 sho grid/x a
     GRID (G101)
- name       axis              # pts   start                end
- (AX129)   X                    3 r   0                    2
+ name       axis              # pts   start                end                 subset
+ (AX137)   X                    3 r   0                    2                   2 pts
  normal    Y
  normal    Z
  normal    T
@@ -66445,8 +65614,8 @@ sho grid/x a
 let a = x[gx=1:3:1]; save/clob/file=a2.nc a
 sho grid/x a
     GRID (G101)
- name       axis              # pts   start                end
- (AX116)   X                    3 r   1                    3
+ name       axis              # pts   start                end                 subset
+ (AX121)   X                    3 r   1                    3                   2 pts
  normal    Y
  normal    Z
  normal    T
@@ -66467,14 +65636,14 @@ can var/all; can dat/all
 use a1
 list x[gx=a[d=1]]
              VARIABLE : X
-                        axis AX129
+                        axis AX137
              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 AX129
+                        axis AX137
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -66489,7 +65658,7 @@ use a2
  
 list x[gx=a[d=1]]
              VARIABLE : X
-                        axis AX129
+                        axis AX137
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -66498,7 +65667,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 AX129
+                        axis AX137
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -66514,7 +65683,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 AX129
+                        axis AX137
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -66677,40 +65846,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.698
-randu2_randn2       0.004
-randu2_randn2       0.263
-randu2_randn2       0.050
-randu2_randn2       0.647
+randu2_randn2       0.529
+randu2_randn2       0.341
+randu2_randn2       0.230
+randu2_randn2       0.630
+randu2_randn2       0.124
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.231
-randu2_randn2       0.022
-randu2_randn2       0.486
-randu2_randn2       0.959
-randu2_randn2       0.529
+randu2_randn2       0.443
+randu2_randn2       0.524
+randu2_randn2       0.980
+randu2_randn2       0.163
+randu2_randn2       0.050
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.054
-randu2_randn2       0.096
-randu2_randn2       0.334
-randu2_randn2       0.803
-randu2_randn2       0.120
-randu2_randn2       0.387
+randu2_randn2       0.521
+randu2_randn2       0.423
+randu2_randn2       0.214
+randu2_randn2       0.845
+randu2_randn2       0.964
+randu2_randn2       0.191
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.017
-randu2_randn2       0.417
-randu2_randn2       0.625
-randu2_randn2       0.468
-randu2_randn2       0.622
-randu2_randn2       0.578
+randu2_randn2       0.958
+randu2_randn2       0.815
+randu2_randn2       0.822
+randu2_randn2       0.733
+randu2_randn2       0.435
+randu2_randn2       0.205
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66735,40 +65904,40 @@ randu2_randn2       0.638
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.058
-randu2_randn2      -1.268
-randu2_randn2      -0.014
-randu2_randn2      -1.909
-randu2_randn2      -0.431
+randu2_randn2       0.115
+randu2_randn2      -1.256
+randu2_randn2       0.121
+randu2_randn2       0.787
+randu2_randn2      -0.249
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.015
-randu2_randn2      -0.666
-randu2_randn2      -0.638
-randu2_randn2       0.732
-randu2_randn2      -0.106
+randu2_randn2      -0.070
+randu2_randn2       0.494
+randu2_randn2      -0.838
+randu2_randn2      -0.672
+randu2_randn2       0.125
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -2.999
-randu2_randn2      -1.598
-randu2_randn2       1.522
-randu2_randn2       0.850
-randu2_randn2       0.534
-randu2_randn2      -1.625
+randu2_randn2       1.413
+randu2_randn2      -0.974
+randu2_randn2      -2.053
+randu2_randn2       0.331
+randu2_randn2       0.613
+randu2_randn2       0.548
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -0.917
-randu2_randn2       0.174
-randu2_randn2      -0.347
-randu2_randn2       1.455
-randu2_randn2       0.283
-randu2_randn2      -0.360
+randu2_randn2       1.353
+randu2_randn2       0.941
+randu2_randn2      -0.798
+randu2_randn2      -1.328
+randu2_randn2       1.195
+randu2_randn2      -0.131
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -66793,14 +65962,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.869       1.869       0.990
-randu2_randn2       0.990       1.210       0.990
-randu2_randn2       1.210       0.990      -0.142
-randu2_randn2      -0.142      -0.142       0.369
-randu2_randn2      -0.174      -0.161       0.369
-randu2_randn2      -0.161      -0.174       0.369
-randu2_randn2      -0.249      -0.161       0.369
-randu2_randn2       0.369       0.369       0.369
+randu2_randn2       1.238       1.238       0.415
+randu2_randn2       0.847       0.847       0.415
+randu2_randn2       0.415       0.415       0.174
+randu2_randn2       0.174       0.174       0.415
+randu2_randn2      -0.205      -0.205       0.415
+randu2_randn2      -0.475      -0.288       0.415
+randu2_randn2      -0.288      -0.288       0.415
+randu2_randn2       0.689       0.689       0.689
  
 GO bn_reset
 cancel mode verify
@@ -66883,11 +66052,11 @@ GO bn_repeated_coords
 use repeat_t_coord.nc
 show grid a
     GRID GKT1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10
+ TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10   full
  normal    E
  normal    F
 show axis tmin
@@ -66916,11 +66085,11 @@ can dat/all
 use/strict repeat_t_coord.nc
 show grid a
     GRID GKT1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TMIN      T                   71 r   1                    71
+ TMIN      T                   71 r   1                    71                  full
  normal    E
  normal    F
 show axis tmin
@@ -67193,11 +66362,11 @@ let sinT = sin(T * 3.141592653589793 / 6.0)
 let spacetime = if (i eq 1) then cosT else sinT + 1
 show grid spacetime
     GRID XYTGRID
- name       axis              # pts   start                end
- XAXIS     X                    2 r   1                    2
- YAXIS     Y                    1 r   1                    1
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   full
+ YAXIS     Y                    1 r   1                    1                   full
  normal    Z
- TAXIS     T                  240 r   0                    59.75
+ TAXIS     T                  240 r   0                    59.75               full
  normal    E
  normal    F
  
@@ -67818,11 +66987,11 @@ let spacetime123 = if (i eq 2) and (j eq 1) then cost * sint + 2 else spacetime1
 let spacetime = if (i eq 2) and (j eq 2) then sint * sint + 3 else spacetime123
 show grid spacetime
     GRID XYTGRID
- name       axis              # pts   start                end
- XAXIS     X                    2 r   1                    2
- YAXIS     Y                    2 r   1                    2
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   full
+ YAXIS     Y                    2 r   1                    2                   full
  normal    Z
- TAXIS     T                  240 r   0                    23.9
+ TAXIS     T                  240 r   0                    23.9                full
  normal    E
  normal    F
  
@@ -68160,9 +67329,11 @@ GO bn_interpolate_6d
 ! bn_interpolate_6d.JNL
 ! benchmark interpolation along various axes
 ! including the E and F axis
+! note with fix to ticket 2399 mode calendar applies to F axis
  
 SET LIST/PRECISION=6
 SET MODE LATITUDE:4
+set mode calendar:years
  
 LET v = x + 10*y + 100*_e + 1000*_f
 SET REGION/X=1:3/Y=1:3/E=1:3/F=1:3
@@ -68553,14 +67724,18 @@ LIST v[@xpt, at ypt, at ept, at fpt]
              F        : 1 (interpolated)
           1113.00
  
+set mode/last calendar
+ 
 GO bn_reset
 cancel mode verify
 GO bn_regrid_6d
 ! bn_regrid_6d.jnl
 ! version of bn_regrid, using E and F directions.
+! note with fix to ticket 2399 mode calendar applies to F axis
  
 set mode latit_label -4
 set mode long_label -4
+set mode calendar:years
  
 define axis/x=2:20:2 xeven
 define axis/x=1:19:2 xodd
@@ -69931,6 +69106,12 @@ list a24[g=g48]-a48
  07-JAN-1980 00 / 4: -438312.
  
  
+ 
+set mode/last latit_label
+set mode/last long_label
+set mode/last calendar
+ 
+ 
 GO bn_reset
 cancel mode verify
 GO bn_syntax_6d
@@ -69946,18 +69127,18 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid G48
     GRID G48
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
  normal    E
- FAX48     FORECAST           367 r   01-JAN-1980 00:00    02-JAN-1982 00:00
+ FAX48     FORECAST           367 r   01-JAN-1980 00:00    02-JAN-1982 00:00   full
 LIST/I=1:2/J=50/K=1/L=2/M=3/N=4 SALT
              VARIABLE : (SALINITY(ppt) - 35) /1000 (frac. by wt. less .035)
              FILENAME : 6dfile.nc
              SUBSET   : 2 points (LONGITUDE)
-             LATITUDE : 6.167N
+             LATITUDE : 6.1667N
              DEPTH (m): 5
              TIME     : 15-MAR-1983 11:00
              E        : 3
@@ -69970,35 +69151,35 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GNJ2
     GRID GNJ2
- name       axis              # pts   start                end
- PSXT70_71 LONGITUDE            2mr   160.5W               159.5W
- PSYT15_75 LATITUDE            61 i   10.169S              9.833N
- PSZT2     DEPTH (m)           27 i-  5                    3824
- TIME13    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
- EAXIS     E                    5 r   1                    5
- FAXIS     F                    4 r   1                    7
+ name       axis              # pts   start                end                 subset
+ 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
+ EAXIS     E                    5 r   1                    5                   full
+ FAXIS     F                    4 r   1                    7                   full
 SET GRID/SAVE
 SET GRID ABSTRACT
 SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GNJ2
     GRID GNJ2
- name       axis              # pts   start                end
- PSXT70_71 LONGITUDE            2mr   160.5W               159.5W
- PSYT15_75 LATITUDE            61 i   10.169S              9.833N
- PSZT2     DEPTH (m)           27 i-  5                    3824
- TIME13    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
- EAXIS     E                    5 r   1                    5
- FAXIS     F                    4 r   1                    7
+ name       axis              # pts   start                end                 subset
+ 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
+ EAXIS     E                    5 r   1                    5                   full
+ FAXIS     F                    4 r   1                    7                   full
 SHOW GRID/X=180:165W SALT
     GRID GNJ2
- name       axis              # pts   start                end
- PSXT70_71 LONGITUDE            2mr   160.5W               159.5W
- PSYT15_75 LATITUDE            61 i   10.169S              9.833N
- PSZT2     DEPTH (m)           27 i-  5                    3824
- TIME13    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
- EAXIS     E                    5 r   1                    5
- FAXIS     F                    4 r   1                    7
+ name       axis              # pts   start                end                 subset
+ 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
+ EAXIS     E                    5 r   1                    5                   full
+ FAXIS     F                    4 r   1                    7                   full
  
        I     X                   XBOX      XBOXLO
        0>  20E                   358        159W(-159)
@@ -70014,7 +69195,7 @@ stat/k=1/l=1/j=40/i=3/M=3/N=4/d=2 temp[d=1]
  
              TEMPERATURE
              LONGITUDE: 158.5W
-             LATITUDE: 2.833N
+             LATITUDE: 2.8333N
              DEPTH (m): 5
              TIME: 15-MAR-1983 10:00
              E: 3
@@ -70770,16 +69951,18 @@ GO bn_regrid_transforms_6d
 ! bn_regrid_transforms_6d.jnl
 ! benchmark to test regridding transformations and syntax
 ! version of bn_regrid_transforms, using E and F directions.
+! note with fix to ticket 2399 mode calendar applies to F axis
  
 use gtsa056_1_ef
 set mode diag
+set mode calendar:years
  
 define axis/f=23-jan-1982:30-jan-1982:20/unit=hour fax20
 define axis/x=120e:60w:10/unit=degrees xax10
 define grid/like=temp/f=fax20 g5day
  getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GGR1            PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
- dealloc  dynamic grid GGR1            PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    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
  
@@ -70787,7 +69970,7 @@ use gtsa056_1_ef    	!kob 4/99
  
 stat temp[g=g5day] - temp[g=g5day at ave]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=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
  reading TEMP     M:120 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
@@ -70795,13 +69978,13 @@ stat temp[g=g5day] - temp[g=g5day at ave]
  strip regrid on F: TEMP --> G5DAY            @AVE
  reading TEMP     M:114 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  regrid  TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- doing --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> EX#1[T=1982 at ITP,D=1]
  
              TEMP[G=G5DAY] - TEMP[G=G5DAY at AVE]
              LONGITUDE: 130W to 125W
              LATITUDE: 0 to 1.5N
              DEPTH (m): 5
-             TIME: 21-JAN-1982 00:00 (interpolated)
+             TIME: 1982 (interpolated)
              E: 1 to 2
              FORECAST: 1982 to 1982
              DATA SET: ./gtsa056_1_ef.nc
@@ -70815,24 +69998,24 @@ stat temp[g=g5day] - temp[g=g5day at ave]
  
 ! basic regrid tests
 LIST temp[g=g5day at ave]
- -DELETE EX#1     M:102 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    1    2
+ -DELETE EX#1     M: 94 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    1    2
  -DELETE EX#1     M:112 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- dealloc  dynamic grid G5DAY           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
  -DELETE TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  -DELETE TEMP     M:118 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=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
  reading TEMP     M:118 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  regrid  TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on F at AVE
              FILENAME : gtsa056_1_ef.nc
              SUBSET   : 5 by 6 by 2 by 2 points (LONGITUDE-LATITUDE-E-FORECAST)
              DEPTH (m): 5
-             TIME     : 21-JAN-1982 00:00 (interpolated)
+             TIME     : 1982 (interpolated)
                129.5W   128.5W   127.5W   126.5W   125.5W  
                101      102      103      104      105
  ---- N:1 F:   1982
@@ -70866,22 +70049,22 @@ 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           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
  -DELETE TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  -DELETE TEMP     M:112 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    1    2
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=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
  reading TEMP     M:112 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  regrid  TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1_ef.nc
              SUBSET   : 5 by 6 by 2 by 2 points (LONGITUDE-LATITUDE-E-FORECAST)
              DEPTH (m): 5
-             TIME     : 21-JAN-1982 00:00 (interpolated)
+             TIME     : 1982 (interpolated)
                129.5W   128.5W   127.5W   126.5W   125.5W  
                101      102      103      104      105
  ---- N:1 F:   1982
@@ -70918,9 +70101,6 @@ LIST temp[g=g5day]
 ! unspecified regions
 SET MODE IGNORE	! V.5 change
 canc reg
- dealloc  dynamic grid G5DAY           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M:102 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    1    2
- -DELETE TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
 set reg/n=1:3/t=21-JAN-1982/z=5  ! x,y,e unspecified
  
 canc reg
@@ -70937,146 +70117,145 @@ 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: 94 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    1    2
+ -DELETE TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GGR1            PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
+ strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
  eval    EX#1     C:  8 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  reading TEMP     M:104 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 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 863  complete
+PPL plot 869  complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid GGR1            PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @LIN
- reading TEMP     M: 90 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M: 80 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ reading TEMP     M: 86 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ regrid  TEMP     M: 58 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 864  complete
+PPL plot 870  complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 64 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M: 80 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 82 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
+ -DELETE TEMP     M: 58 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 88 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  -DELETE TEMP     M: 96 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @AVE
  reading TEMP     M: 96 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- regrid  TEMP     M: 82 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ regrid  TEMP     M: 88 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 865  complete
+PPL plot 871  complete
 plot/over temp[g=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 64 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 80 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 82 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 88 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   TIME21    EAXIS     FAX20
+ -DELETE TEMP     M: 58 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 80 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 88 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @ASN
  reading TEMP     M: 88 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- regrid  TEMP     M: 82 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ regrid  TEMP     M: 80 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 866  complete
+PPL plot 872  complete
  
 ! F axis
 set region/x=180/y=20s:20n/e=2/t=21-JAN-1982/z=5
 plot temp
- dealloc  dynamic grid G5DAY           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 64 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
+ -DELETE TEMP     M: 58 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  -DELETE TEMP     M: 78 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M: 80 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 82 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 80 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GGR1            PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
- strip --> EX#1[T=21-JAN-198200:00 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: 82 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
+ reading TEMP     M: 80 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 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 867  complete
+PPL plot 873  complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid GGR1            PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
+ dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @LIN
  reading TEMP     M:106 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  regrid  TEMP     M: 98 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 868  complete
+PPL plot 874  complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 70 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
- -DELETE TEMP     M: 74 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
+ -DELETE TEMP     M: 74 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M: 82 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  -DELETE TEMP     M: 98 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @AVE
  reading TEMP     M: 98 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- regrid  TEMP     M: 74 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ regrid  TEMP     M: 82 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 869  complete
+PPL plot 875  complete
 plot/over temp[g=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 66 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
- -DELETE TEMP     M: 70 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -DELETE TEMP     M: 74 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
+ -DELETE TEMP     M: 70 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M: 74 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ -DELETE TEMP     M: 82 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @ASN
- reading TEMP     M: 74 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- regrid  TEMP     M: 70 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ reading TEMP     M: 82 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ regrid  TEMP     M: 74 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 870  complete
+PPL plot 876  complete
  
 set mode/last interp
 cancel region
- dealloc  dynamic grid G5DAY           PSXT1     PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 62 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
- -DELETE TEMP     M: 66 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -DELETE TEMP     M: 70 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  
 ! test 2D regrid
 define axis/e=1.1:2.1:1 eoffset
@@ -71094,6 +70273,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: 66 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M: 70 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ -DELETE TEMP     M: 74 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A1       C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
@@ -71110,16 +70293,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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ pseudo  _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
  allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- pseudo  _F       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- -DELETE _F       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
+ pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
+ -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- regrid  A1       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
+ regrid  A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
+ regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ -DELETE A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
  dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at AVE, 96 hour on F at AVE
@@ -71144,7 +70327,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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A1       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ -DELETE A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
@@ -71155,16 +70338,16 @@ list a1[ge=eoffset at sum, gf=fax4day at sum]
  strip regrid on F: A1 --> ENTERMED         @SUM
  eval    A1       C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
  allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
  allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
+ pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
+ -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- -DELETE _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A1       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
+ regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
+ regrid  A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ -DELETE A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
  dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at SUM, 96 hour on F at SUM
@@ -71189,7 +70372,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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ -DELETE A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
@@ -71200,16 +70383,16 @@ list a1[ge=eoffset at var, gf=fax4day at var]
  strip regrid on F: A1 --> ENTERMED         @VAR
  eval    A1       C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
  allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ pseudo  _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
  allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- pseudo  _F       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- -DELETE _F       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
+ pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
+ -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- regrid  A1       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
+ regrid  A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
+ regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ -DELETE A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
  dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : Variance of _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at VAR, 96 hour on F at VAR
@@ -71235,7 +70418,7 @@ list a1[ge=eoffset at var, gf=fax4day at var]
  
 list a2[ge=eoffset at ave, gf=fax4day at ave]
  dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A1       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ -DELETE A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A2       C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
@@ -71252,16 +70435,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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
+ pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
+ -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
  dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- -DELETE _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
  regrid  A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ regrid  A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ -DELETE A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at AVE, 96 hour on F at AVE
@@ -71286,7 +70469,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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ -DELETE A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
@@ -71297,16 +70480,16 @@ list a2[ge=eoffset at sum, gf=fax4day at sum]
  strip regrid on F: A2 --> ENTERMED         @SUM
  eval    A2       C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
  allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ pseudo  _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- pseudo  _F       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- -DELETE _F       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
+ pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
+ -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
  dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ regrid  A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
  regrid  A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- regrid  A2       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ -DELETE A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at SUM, 96 hour on F at SUM
@@ -71331,7 +70514,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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A2       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ -DELETE A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
@@ -71342,16 +70525,16 @@ list a2[ge=eoffset at var, gf=fax4day at var]
  strip regrid on F: A2 --> ENTERMED         @VAR
  eval    A2       C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
  allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
+ pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
+ -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
  dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- -DELETE _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
  regrid  A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ regrid  A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ -DELETE A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
              VARIABLE : Variance of _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at VAR, 96 hour on F at VAR
@@ -71379,14 +70562,14 @@ list a2[ge=eoffset at var, gf=fax4day at var]
  
 let a1 = _e[ge=e1pt]
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
+ -DELETE A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
  -DELETE A2       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
- -DELETE A2       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
  -DELETE A2       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
+ -DELETE A2       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
  dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
- -DELETE A1       M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
- -DELETE A1       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
- -DELETE A1       M: 72 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
+ -DELETE A1       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
+ -DELETE A1       M: 64 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
+ -DELETE A1       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
  dealloc  dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
 let a2 = _e[ge=e2pt]
 let a4 = _e[ge=e4pt]
@@ -71405,9 +70588,9 @@ list a1[ge=eoffset at max]
  strip regrid on E: A1 --> (G092)           @MAX
  eval    A1       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
  allocate dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 72 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ pseudo  _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
  dealloc  dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ regrid  A1       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E1PT]
                         regrid: 1 delta on E at MAX
@@ -71415,9 +70598,9 @@ list a1[ge=eoffset at max]
  1.1 / 1:     ....
  2.1 / 2:  2.50000
 list a2[ge=eoffset at max]
- -DELETE _E       M: 72 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ -DELETE _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
  dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A1       M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -DELETE A1       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A2       C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
@@ -71431,9 +70614,9 @@ list a2[ge=eoffset at max]
  strip regrid on E: A2 --> (G101)           @MAX
  eval    A2       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ pseudo  _E       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ regrid  A2       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E2PT]
                         regrid: 1 delta on E at MAX
@@ -71441,9 +70624,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: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -DELETE _E       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A2       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -DELETE A2       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A4       C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
@@ -71457,9 +70640,9 @@ list a4[ge=eoffset at max]
  strip regrid on E: A4 --> (G096)           @MAX
  eval    A4       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
  allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- pseudo  _E       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
+ pseudo  _E       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- regrid  A4       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ regrid  A4       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at MAX
@@ -71467,9 +70650,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: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
+ -DELETE _E       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A4       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -DELETE A4       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
@@ -71479,7 +70662,7 @@ list a4[ge=eoffset at min]
  strip regrid on E: A4 --> (G096)           @MIN
  eval    A4       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
  allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- pseudo  _E       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
+ pseudo  _E       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
  regrid  A4       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
@@ -71489,7 +70672,7 @@ list a4[ge=eoffset at min]
  1.1 / 1:  1.50000
  2.1 / 2:  2.00000
 list a4[ge=eoffset at sum] ! 5+5.5+6+6.5=23
- -DELETE _E       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
+ -DELETE _E       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
  -DELETE A4       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -71503,7 +70686,7 @@ list a4[ge=eoffset at sum] ! 5+5.5+6+6.5=23
  allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
  pseudo  _E       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
  dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- regrid  A4       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ regrid  A4       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at SUM
@@ -71518,7 +70701,7 @@ let afcst = _f[gf=eday]
 list afcst
  -DELETE _E       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A4       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -DELETE A4       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid AFCST    C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
@@ -71528,7 +70711,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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
+ pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
              VARIABLE : _F[GF=EDAY]
              SUBSET   : 5 points (FORECAST)
@@ -71541,15 +70724,15 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G096)
     GRID (G096)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
  normal    E
- EDAY      FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ EDAY      FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
 list afcst[gf=ehour at max]
- -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
+ -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
@@ -71560,7 +70743,7 @@ list afcst[gf=ehour at max]
  strip regrid on F: AFCST --> (G103)           @MAX
  eval    AFCST    C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
  allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
+ pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
  dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
  regrid  AFCST    M: 46 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
  dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
@@ -71576,15 +70759,16 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G103)
     GRID (G103)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
  normal    E
- EHOUR     FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ EHOUR     FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
  
 set mode/last diag
+set mode/last calendar
  
 GO bn_reset
 cancel mode verify
@@ -71593,15 +70777,20 @@ GO bn_aggregate_e
 ! using the DEFINE DATA/AGGREGATE/E command
 ! Datasets share sst, but only ens1 has airt.
  
+! v6.95+ 11/15 *sh* -- /T is now the default orientation
+! v6.98 12/15 *sh -- modified so that the sequence number of each
+!   dataset in the aggregation is not also its Ferret dataset number
+!   Allowing them to be the same was hiding bugs
+ 
 set mode diag
  
 use ens1, ens2, ens3, ens4
-define data/agg/title fourfiles = ens1, ens3, ens2, ens4
+define data/agg/E fourfiles = ens1, ens3, ens2, ens4
  
 ! The grid of SST is known.
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
+    5> fourfiles  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  
@@ -71615,16 +70804,21 @@ list/i=3 sst[T=@ave]
  strip aggregate gathering SST on E axis:     1     4 dset:   5
  reading SST      M:120 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     1     1 dset:   1
- reading SST      M:114 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ -DELETE SST      M:120 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:120 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     2     2 dset:   3
- reading SST      M:112 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ -DELETE SST      M:120 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     3     3 dset:   2
- reading SST      M:110 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ -DELETE SST      M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:120 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     4     4 dset:   4
+ -DELETE SST      M:120 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
              VARIABLE : SST_IN (Deg C)
-             FILENAME : FOURFILES
-             SUBSET   : 9 by 4 points (LATITUDE-E)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
              LONGITUDE: 105W
              TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
              13N      15N      17N      19N      21N      23N      25N      27N      29N    
@@ -71633,60 +70827,111 @@ list/i=3 sst[T=@ave]
  2   / 2:   85.539   85.323   83.676   82.370   80.177   76.683     ....     ....     ....
  3   / 3:   57.026   56.882   55.784   54.913   53.452   51.122     ....     ....     ....
  4   / 4:  114.051  113.765  111.568  109.826  106.903  102.245     ....     ....     ....
+ 
+show memory/all  ! show memory-resident variables before canceling dataset
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+all data in memory:
+ SST[D=fourfiles]                  YE    mr:120  blk1:1  nblk:1
+    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+                                                              AVE
+ SST[D=fourfiles]                  YTE   mr:118  blk1:2  nblk:1
+    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ 
 cancel data fourfiles
- -DELETE SST      M:106 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L: -999 -999  M:    1    4  N: -999 -999
- -DELETE SST      M:118 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
  dealloc  dynamic grid (G103)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ canceling dset fourfiles
+ -DELETE SST      M:118 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
+ -DELETE SST      M:120 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L: -999 -999  M:    1    4  N: -999 -999
+show memory/all  ! show memory-resident variables after  canceling dataset
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+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
+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
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+    6> fourfiles  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ 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 fourfiles
+show data/brief/all/hidden
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
  
 ! Create airt in the other datasets by LET/D definitions.
+use ens1, ens2, ens3, ens4
 let/d=ens2 airt = sst + 1
 let/d=ens3 airt = sst + 1
 let/d=ens4 airt = sst + 1
  
-define data/agg fourfiles = ens1, ens3, ens2, ens4
- getgrid AIRT     C:  5 dset:   3 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
+ getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
- getgrid AIRT     C:  5 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid AIRT     C:  5 dset:   3 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
- getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ getgrid AIRT     C:  5 dset:   5 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
+    6> fourfiles  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
  
  
 list/i=3 airt[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 (G109)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ getgrid EX#1     C:  5 dset:   6 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (G092)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
- strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
- strip aggregate gathering AIRT on E axis:     1     4 dset:   5
- reading AIRT     M:118 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     1     1 dset:   1
- eval    AIRT     C:  9 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:104 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     2     2 dset:   3
- eval    AIRT     C:  9 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:102 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M: 96 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 96 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     3     3 dset:   2
+ eval    EX#1     C:  5 dset:   6 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
+ strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
+ strip aggregate gathering AIRT on E axis:     1     4 dset:   6
+ reading AIRT     M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     1     1 dset:   2
+ -DELETE AIRT     M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M: 96 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M: 90 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 90 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     4     4 dset:   4
- doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
+ reading SST      M:120 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     2     2 dset:   4
+ -DELETE AIRT     M:112 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:112 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     3     3 dset:   3
+ -DELETE AIRT     M:110 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:110 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     4     4 dset:   5
+ -DELETE AIRT     M:106 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
              VARIABLE : AIR TEMPERATURE (DEG C)
-             DATA SET : Ensemble
-             FILENAME : FOURFILES
-             SUBSET   : 9 by 4 points (LATITUDE-E)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
              LONGITUDE: 105W
              TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
              13N      15N      17N      19N      21N      23N      25N      27N      29N    
@@ -71696,6 +70941,63 @@ list/i=3 airt[T=@ave]
  3   / 3:   58.026   57.882   56.784   55.913   54.452   52.122     ....     ....     ....
  4   / 4:  115.051  114.765  112.568  110.826  107.903  103.245     ....     ....     ....
  
+! create an ensemble where one member is missing
+ENSEMBLE fourfiles_gap = ens1, -, ens3, ens4
+ getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   5 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
+show data/files fourfiles_gap
+     currently SET data sets:
+    7> fourfiles_gap  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
+ AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
+ 
+          Aggregated datasets:
+      1: ./ens1.nc
+      2: (dummy)
+      3: ./ens3.nc
+      4: ./ens4.nc
+list/i=3 airt[T=@ave]
+ getgrid EX#1     C:  5 dset:   7 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (G092)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ 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:114 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     1     1 dset:   2
+ -DELETE AIRT     M:114 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ dummy AIRT     M:114 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     2     2 dset: 401
+ -DELETE AIRT     M:114 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:114 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     3     3 dset:   4
+ -DELETE AIRT     M: 98 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M: 98 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     4     4 dset:   5
+ -DELETE AIRT     M: 96 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
+             VARIABLE : AIR TEMPERATURE (DEG C)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles_gap
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
+             LONGITUDE: 105W
+             TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
+             13N      15N      17N      19N      21N      23N      25N      27N      29N    
+              1        2        3        4        5        6        7        8        9
+ 1   / 1:   27.675   27.570   27.061   26.673   25.793   25.207     ....     ....     ....
+ 2   / 2:     ....     ....     ....     ....     ....     ....     ....     ....     ....
+ 3   / 3:   86.539   86.323   84.676   83.370   81.177   77.683     ....     ....     ....
+ 4   / 4:  115.051  114.765  112.568  110.826  107.903  103.245     ....     ....     ....
+ 
 cancel mode diag
 cancel data/all
 cancel var/all
@@ -71712,10 +71014,10 @@ use navy_uw
 set mode ignore
  
 ! Use dataset thats not open.
-define data/agg windy = 1,2,3
+ensemble windy = 1,2,3
  
 ! No variables on comparable grids.
-define data/agg windy = 1,2
+ensemble windy = 1,2
  
 set mode/last ignore
  
@@ -71753,12 +71055,12 @@ show data
  
  
 ! Define the ensemble dataset
-define data/agg windy = 1,2
+ensemble windy = 1,2
  
 ! The grid of the aggregate variables with LET/D is known.
 show data windy
      currently SET data sets:
-    3> WINDY  (default)  Ferret-defined Ensemble aggregation
+    3> windy  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
  UWND     ZONAL WIND                       1:30      1:30      ...       1:12      1:2       ...
  VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      1:2       ...
@@ -71771,10 +71073,10 @@ 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
              TIME: 17-MAR 02:58
  Column  1: UWND[D=coads_uw] is ZONAL WIND (M/S)
  Column  2: UWND[D=navy_uw] is ZONAL WIND (M/S)
- Column  3: UWND[D=WINDY,E=1] is ZONAL WIND (M/S)
- Column  4: VWND[D=WINDY,E=2] is MERIDIONAL WIND (M/S)
- Column  5: UWND[D=WINDY,E=0.5:2.5 at AVE] is ZONAL WIND (M/S)
-                 UWND     UWND     UWND      VWND     UWND
+ Column  3: UWND[D=windy,E=1 (coads_uw)] is ZONAL WIND (M/S)
+ Column  4: UWND[D=windy,E=2 (navy_uw)] is ZONAL WIND (M/S)
+ Column  5: UWND[D=windy,E=1:2 at AVE] is ZONAL WIND (M/S)
+                 UWND     UWND     UWND      UWND     UWND
 59W    / -30:  2.20244  0.934329  2.20244  0.934329  1.56839
 57W    / -29:  2.26128  0.812758  2.26128  0.812758  1.53702
 55W    / -28:  1.99826  0.681776  1.99826  0.681776  1.34002
@@ -71782,19 +71084,27 @@ 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
 51W    / -26:  1.64932  0.330430  1.64932  0.330430  0.98987
  
 ! 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
+    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
  
 ! Define the ensemble dataset
-define data/agg windy = 2,1
+ensemble windy = 2,1
  
 ! The grid of the aggregate variables with LET/D is known.
 show data windy
      currently SET data sets:
-    3> WINDY  (default)  Ferret-defined Ensemble aggregation
+    3> windy  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      1:2       ...
  VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      1:2       ...
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12      1:2       ...
  
  
 ! Use variable from the new dataset
@@ -71804,18 +71114,18 @@ 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
              TIME: 17-MAR 02:58
  Column  1: UWND[D=coads_uw] is ZONAL WIND (M/S)
  Column  2: UWND[D=navy_uw] is ZONAL WIND (M/S)
- Column  3: VWND[D=WINDY,E=1] is MERIDIONAL WIND (M/S)
- Column  4: UWND[D=WINDY,E=2] is ZONAL WIND (M/S)
- Column  5: VWND[D=WINDY,E=0.5:2.5 at AVE] is MERIDIONAL WIND (M/S)
-                 UWND     UWND      VWND     UWND     VWND
+ Column  3: UWND[D=windy,E=1 (navy_uw)] is ZONAL WIND (M/S)
+ Column  4: UWND[D=windy,E=2 (coads_uw)] is ZONAL WIND (M/S)
+ Column  5: UWND[D=windy,E=1:2 at AVE] is ZONAL WIND (M/S)
+                 UWND     UWND      UWND     UWND     UWND
 59W    / -30:  2.20244  0.934329  0.934329  2.20244  1.56839
 57W    / -29:  2.26128  0.812758  0.812758  2.26128  1.53702
 55W    / -28:  1.99826  0.681776  0.681776  1.99826  1.34002
 53W    / -27:  1.93361  0.507158  0.507158  1.93361  1.22038
 51W    / -26:  1.64932  0.330430  0.330430  1.64932  0.98987
  
-can data/all
-can var/all
+cancel data/all
+cancel variable/all
  
 ! DEFINE DATA/HIDE
 ! SHOW DATA/HIDDEN
@@ -71825,22 +71135,22 @@ can var/all
 ! member datasets and show only the ensemble.
 ! show dat/hidden forces showing all
  
-sh command define
+show command define
  DEFINE
  DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
          /DL/DM/DN
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
- DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
-sh command show
+show command show
  SHOW/ALL
  SHOW WINDOW/ALL
  SHOW REGION/ALL
@@ -71851,9 +71161,8 @@ sh command show
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
-       /CURVILIN
- SHOW COMMANDS/ALL
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+ SHOW COMMANDS/ALL/BRIEF
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
@@ -71866,149 +71175,76 @@ sh command show
  SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
  SHOW QUERIES/ALL
  
+use coads_climatology ! to offset indices so they arent equal to Ferret dset #s
+ 
 use ens1, ens2, ens3, ens4
 ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
  
-! should just show the ensemble set
-sh dat
+! should just show the ensemble set.  Members are hidden.
+show data/brief
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
+    1> ./coads_climatology.cdf
+    6> fourfiles  (default)  Ensemble aggregation
  
 ! If ask for a member set by name or number, do show it
-sh dat 2
+show data/brief 2
      currently SET data sets:
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-sh dat ens3
+    2> ./ens1.nc
+show data/brief ens3
      currently SET data sets:
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    4> ./ens3.nc
  
 ! should show all members plus ensemble
-sh dat/hidden
+show data/brief/hidden
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
+    1> ./coads_climatology.cdf
+    2> ./ens1.nc
+    3> ./ens2.nc
+    4> ./ens3.nc
+    5> ./ens4.nc
+    6> fourfiles  (default)  Ensemble aggregation
  
-! Should show original member datasets
-can dat fourfiles
-sh dat
+! Since the members were hidden, they get deleted with the aggregation
+cancel data fourfiles
+show data/brief
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-can dat/all
+    1> ./coads_climatology.cdf  (default)
+cancel data/all
  
 ! Cancel a member, then the ensemble gets canceled.
-! The hidden members should show up.
- 
+! The hidden members get canceled along with the parent (1/16)
+use coads_climatology ! to offset indices so they arent equal to Ferret dset #s
 use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2
-sh dat
+ensemble/HIDE/title="uvars in dset 2"  my_ens = 2,3
+show data/brief
      currently SET data sets:
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    5> MY_ENS  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:2       ...
- 
-can dat  2
-sh dat
+    1> ./coads_climatology.cdf
+    4> ./ens3.nc
+    5> ./ens4.nc
+    6> my_ens  (default)  Ensemble aggregation
+cancel data  ens2
+show data/brief
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    1> ./coads_climatology.cdf
+    4> ./ens3.nc
+    5> ./ens4.nc
  
-! Cancel the ensemble, then hidden members get un-hidden.
+! Cancel the ensemble, then hidden members get canceled too
  
 use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2,3,4
+ensemble/HIDE/title="uvars in dset 2"  my_ens = 2,3,4,5
  
 ! members hidden, showing only ensemble.
-sh dat
+show data/brief
      currently SET data sets:
-    5> MY_ENS  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
-can dat my_ens
+    1> ./coads_climatology.cdf
+    6> my_ens  (default)  Ensemble aggregation
+cancel data my_ens
  
-! Cancel ensemble dataset: members un-hidden
-sh dat
+! Cancel ensemble dataset: hidden members deleted
+show data/brief
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    1> ./coads_climatology.cdf  (default)
  
 ! Define several ensembles with /HIDE
 ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
@@ -72016,39 +71252,30 @@ ensemble/HIDE/title="ensemble with hidden members" some = ens1, ens2
 ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
  
 ! Shows all the ensembles
-sh dat
+show data/brief/files
      currently SET data sets:
-    5> FOURFILES     Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
-    6> SOME     Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:2       ...
- 
-    7> MORE  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:3       ...
- 
- 
-! Cancel a member of all the ensembles.
-! Cancels dataset 2 and also the ensemble sets.
-can dat 2
-sh dat
+    1> ./coads_climatology.cdf
+    6> fourfiles     Ensemble aggregation
+          Aggregated datasets:
+      1: ./ens1.nc
+      2: ./ens2.nc
+      3: ./ens3.nc
+      4: ./ens4.nc
+    7> some     Ensemble aggregation
+          Aggregated datasets:
+      1: ./ens1.nc
+      2: ./ens2.nc
+    8> more  (default)  Ensemble aggregation
+          Aggregated datasets:
+      1: ./ens2.nc
+      2: ./ens3.nc
+      3: ./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> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    1> ./coads_climatology.cdf  (default)
  
  
 GO bn_reset
@@ -72096,21 +71323,21 @@ show data
 set mode 6d_lab
 show grid temp
     GRID PS3DT21
- name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
- PSYT1     LATITUDE           100 i   28.836S              48.568N
- PSZT2     DEPTH (m)           27 i-  5                    3824
- TIME13    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ 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
  normal    E
  normal    F
 cancel mode 6d_lab
 show grid temp
     GRID PS3DT21
- name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
- PSYT1     LATITUDE           100 i   28.836S              48.568N
- PSZT2     DEPTH (m)           27 i-  5                    3824
- TIME13    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ 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
  
 ! Mode affects output of STAT
  
@@ -72119,7 +71346,7 @@ stat temp
  
              TEMPERATURE
              LONGITUDE: 140W to 122W
-             LATITUDE: 3.667S to 3.667N
+             LATITUDE: 3.6667S to 3.6667N
              DEPTH (m): 0 to 100
              TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
              E:  N/A
@@ -72137,7 +71364,7 @@ stat temp
  
              TEMPERATURE
              LONGITUDE: 140W to 122W
-             LATITUDE: 3.667S to 3.667N
+             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
@@ -72154,13 +71381,13 @@ stat temp
 set mode diag
 set mode 6d_lab
 list/L=1:8 taux[x=@ave,y=@ave]
- dealloc  dynamic grid PS3DT21         PSXT1     PSYT1     PSZT2     TIME13    NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT21         PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME13    NORMAL    NORMAL
+ allocate dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME14    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1  160  J:    1  100  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- strip --> TAUX[Y=28.84S:51.43N at AV4,D=1]
- reading TAUX     M: 98 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ strip --> TAUX[Y=28.8361S:51.4321N at AV4,D=1]
+ reading TAUX     M:104 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
  doing --> TAUX[Y=3.5S:3.5N at AV4,D=1]
              VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
              FILENAME : gt4d011.cdf
@@ -72177,13 +71404,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    TIME13
+ dealloc  dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME14
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1
- allocate dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME13
+ allocate dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME14
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1  160  J:    1  100  K: -999 -999  L:    1    8
- strip --> TAUX[Y=28.84S:51.43N at SM4,D=1]
- reading TAUX     M: 86 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8
+ strip --> TAUX[Y=28.8361S:51.4321N at SM4,D=1]
+ reading TAUX     M: 94 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8
  doing --> TAUX[Y=3.5S:3.5N at SM4,D=1]
              VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
              FILENAME : gt4d011.cdf
@@ -72248,9 +71475,9 @@ sh dat
  
 sho grid lon_c
     GRID GOS2
- name       axis              # pts   start                end
- ETA       X                    4 r   1                    4
- TAU1      Y                    7 r   1                    7
+ name       axis              # pts   start                end                 subset
+ ETA       X                    4 r   1                    4                   full
+ TAU1      Y                    7 r   1                    7                   full
  normal    Z
  normal    T
  normal    E
@@ -72583,21 +71810,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -72634,28 +71863,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST                   DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
                                  long_name_mod   CHAR        9    F       X=60W at ITP
   
  SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
@@ -72673,28 +71905,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
                                  long_name_mod   CHAR        9    F       X=60W at ITP
   
  SST2                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
@@ -72712,21 +71947,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST3                  INT       missing_value   INT         1    T       -999
                                  _FillValue      INT         1    T       -999
@@ -72743,21 +71980,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST3                  SHORT     missing_value   SHORT       1    T       -999
                                  _FillValue      SHORT       1    T       -999
@@ -72775,21 +72014,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST4                  BYTE      missing_value   BYTE        1    T       -99
                                  _FillValue      BYTE        1    T       -99
@@ -72836,28 +72077,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
                                  long_name_mod   CHAR        9    F       X=60W at ITP
   
  SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
@@ -72881,21 +72125,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST3                  INT       missing_value   INT         1    T       -999
                                  _FillValue      INT         1    T       -999
@@ -72936,21 +72182,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -72972,21 +72220,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST2                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -73008,21 +72258,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST4                  INT       missing_value   INT         1    T       -99
                                  _FillValue      INT         1    T       -99
@@ -73044,21 +72296,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST4                  BYTE      missing_value   BYTE        1    T       -99
                                  _FillValue      BYTE        1    T       -99
@@ -73076,21 +72330,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          CHAR        1    T
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST4                  INT       missing_value   INT         1    T       -99
                                  _FillValue      INT         1    T       -99
@@ -73306,21 +72562,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME101)              FLOAT     units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          FLOAT       1    T       8765.82
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -73338,28 +72596,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME101)              FLOAT     units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          FLOAT       1    T       8765.82
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST                   DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
                                  long_name_mod   CHAR        9    F       X=60W at ITP
   
  
@@ -73379,28 +72640,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          DOUBLE      1    T       8765.82
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME10
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
                                  long_name_mod   CHAR        9    F       X=60W at ITP
   
  
@@ -73417,7 +72681,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73425,7 +72689,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  calendar        CHAR        9    T       GREGORIAN
                                  time_origin     CHAR        11   T       15-JAN-1901
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
+                                 orig_file_axname
+                                                 CHAR        7    F       MYHOURS
   
  TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -73442,7 +72707,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73450,7 +72715,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  calendar        CHAR        9    T       GREGORIAN
                                  time_origin     CHAR        11   T       15-JAN-1901
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
+                                 orig_file_axname
+                                                 CHAR        7    F       MYHOURS
   
  TT                    INT       missing_value   INT         1    T       -9999
                                  _FillValue      INT         1    T       -9999
@@ -73467,7 +72733,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -73475,7 +72741,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  calendar        CHAR        9    T       GREGORIAN
                                  time_origin     CHAR        11   T       15-JAN-1901
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
+                                 orig_file_axname
+                                                 CHAR        7    F       MYHOURS
   
  TT                    DOUBLE    missing_value   DOUBLE      1    T       -9999
                                  _FillValue      DOUBLE      1    T       -9999
@@ -73907,7 +73174,7 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73936,7 +73203,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73987,7 +73254,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74088,7 +73355,7 @@ sh dat/var/xml
    <value><![CDATA[Number of O2 Utilization Observations]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
-   <value>     -2147483647</value>
+   <value> -2147483647.</value>
 </attribute>
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
@@ -74440,17 +73707,17 @@ sh att profile
  profile.history = From FINAL_verification_data_all_PacOOS_NHL_OCNMS_CCCC_03072013.txt 
 sh grid rowsize
     GRID GEN1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
- PROF      E                    3 r   1                    3
+ PROF      E                    3 r   1                    3                   full
  normal    F
 sh grid sal
     GRID GEN2
- name       axis              # pts   start                end
- OBS       X                   34 r   1                    34
+ name       axis              # pts   start                end                 subset
+ OBS       X                   34 r   1                    34                  full
  normal    Y
  normal    Z
  normal    T
@@ -74488,17 +73755,17 @@ sh att (profile)
  (profile).orig_file_axname = profile 
 sh grid rowsize
     GRID GSS1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
- PROFILE   E                   21 r   70                   90
+ PROFILE   E                   21 r   70                   90                  full
  normal    F
 sh grid pco2
     GRID GSS2
- name       axis              # pts   start                end
- OBS1      X                  373 r   1                    373
+ name       axis              # pts   start                end                 subset
+ OBS1      X                  373 r   1                    373                 full
  normal    Y
  normal    Z
  normal    T
@@ -74556,8 +73823,8 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Mon Nov  9 15:04:00 2015: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "Wed Jun 15 12:07:03 2016: ncks -h -A -h z1.nc append_to_this.nc\n",
+			"FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:NCO = "4.4.6" ;
 }
@@ -74591,7 +73858,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74622,7 +73889,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -74654,7 +73921,8 @@ sh dat/att
                                  time_origin     CHAR        20   T       01-JAN-1990 00:00:00
                                  axis            CHAR        1    T       T
                                  bounds          CHAR        9    T       TGAP_bnds
-                                 orig_file_axnameCHAR        4    F       TGAP
+                                 orig_file_axname
+                                                 CHAR        4    F       TGAP
   
  TGAP_bnds             DOUBLE
   
@@ -74684,7 +73952,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74712,7 +73980,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74874,6 +74142,7 @@ GO bn_vtree
  
 ! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
 ! 12/14 update to test regridding output using bn_vtree_regrid.jnl
+! 11/15 - DEFINE DATA/AGG has become /T instead of /E
  
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -75168,16 +74437,16 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 ************************
  
 ! aggregate (ensemble) dataset of file variables
-define data/agg my_agg = my_file_vars, other_file_vars, another_file_vars
+ENSEMBLE my_agg = my_file_vars, other_file_vars, another_file_vars
 go bn_vtree.sub fv1
 /TREE=ALL
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
      FV1[d=my_file_vars]
      FV1[d=other_file_vars]
      FV1[d=another_file_vars]
 /TREE=USER
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
 /TREE=FILE
  
@@ -75190,10 +74459,10 @@ fv1 is ready and AVAILABLE
 ! aggregation in which some members are uvars
 let/d=other_file_vars   fvx = fv1 + x[gx=fvx[d=1],i=1:3]
 let/d=another_file_vars fvx = 2*fv1 + x[gx=fvx[d=1],i=1:3]
-define data/agg my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
+ENSEMBLE my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
 go bn_vtree.sub fvx
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=my_file_vars]
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
@@ -75201,7 +74470,7 @@ go bn_vtree.sub fvx
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
        FV1[d=another_file_vars]
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
@@ -75221,7 +74490,7 @@ let p2 = s3 + p3
 let p3 = p1 + S3
 go bn_vtree.sub p0    ! recursion
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -75232,7 +74501,7 @@ go bn_vtree.sub p0    ! recursion
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
            S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -75252,7 +74521,7 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
 let p3 = s1 + S3
 go bn_vtree.sub p0    ! ok
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -75263,7 +74532,7 @@ go bn_vtree.sub p0    ! ok
            S1 ??			<== UNKNOWN VARIABLE ******
            S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -75289,7 +74558,7 @@ show var/tree/d=my_file_vars    fv
    in default dataset my_file_vars
    FV = FV1 + FV1 + FV1
 show var/tree/d=my_uvar_agg     fv
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FV = FV1 + FV1 + FV1
      FV1   (aggregate variable)
 show var/tree/d=other_file_vars uv
@@ -75297,7 +74566,7 @@ show var/tree/d=other_file_vars uv
    UV = FVX + FVX + FVX
      FVX = FV1 + X[GX=FVX[D=1],I=1:3]
 show var/tree/d=my_uvar_agg     uv
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
        FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
@@ -75312,7 +74581,7 @@ let v2 = v1 + b + a + a        ! a appears after v1
 let v3 = a + v1 + b + a + a    ! a appears before v1
 go bn_vtree.sub v2
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -75323,7 +74592,7 @@ go bn_vtree.sub v2
      B =  (defined above)
      A =  (defined above)
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -75338,7 +74607,7 @@ v2 is ready and AVAILABLE
 ************************
 go bn_vtree.sub v3
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
        FV1[d=my_file_vars]
@@ -75349,7 +74618,7 @@ go bn_vtree.sub v3
          C = 1
      B =  (defined above)
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
      V1 = A  + B + B^2
@@ -75373,7 +74642,7 @@ let d = b + c
 let e = 1
 go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
        FV1[d=my_file_vars]
@@ -75384,7 +74653,7 @@ go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
    E = 1
    FVX[d=my_file_vars]
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
@@ -75408,12 +74677,12 @@ the problem is UNKNOWN VARIABLE: F
   let b = a[g=noexist]
   go bn_vtree.sub b
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
@@ -75427,11 +74696,11 @@ the problem is UNKNOWN GRID: NOEXIST
   let c = a[x=45s]
   go bn_vtree.sub c
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
@@ -75444,11 +74713,11 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
   let d = a[i=1,,j=2]
   go bn_vtree.sub d
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
@@ -75461,11 +74730,11 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
   let e = a[p=1]
   go bn_vtree.sub e
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
@@ -75478,11 +74747,11 @@ the problem is ERROR IN EXPRESSION: A[P=1]
   let f = a[i=10]
   go bn_vtree.sub f
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
 /TREE=FILE
@@ -75495,11 +74764,11 @@ f is ready and AVAILABLE
 ! dependency through attribute sharing (not yet implemented)
 let a = fvz.long_name[d=1]
 show var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = FVZ.LONG_NAME[D=1]
 let a = ..history[d=1]
 show var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = ..HISTORY[D=1]
  
 ! *****
@@ -75517,7 +74786,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR = 1
        regrid to GVAR = X[X=1:5]
@@ -75532,7 +74801,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
        regrid to GVAR = X[X=1:5]
@@ -75547,7 +74816,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR = 1
        regrid to GVAR ??		<== UNKNOWN GRID ******
@@ -75562,7 +74831,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
        regrid to GVAR ??		<== UNKNOWN GRID ******
@@ -76170,22 +75439,22 @@ T0 = 1-JAN-2001
    Axis span (to cell edges) = 8
 show grid bb
     GRID GHC2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- UPPERCASETIME TIME             8 r   02-JAN-2001 00:00    09-JAN-2001 00:00
+ UPPERCASETIME TIME             8 r   02-JAN-2001 00:00    09-JAN-2001 00:00   full
  normal    E
  normal    F
  
 ! This variable has axis time, lowercase in the file
 sh grid aa
     GRID GHC1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TIME16    T                   15 r   1                    15
+ TIME17    T                   15 r   1                    15                  full
  normal    E
  normal    F
 set axis/t0=1-jan-2001/units=days time
@@ -76415,19 +75684,19 @@ save/file=a.nc/clobber labels
 sp ncdump -h a.nc
 netcdf a {
 dimensions:
-	ENSEMBLE1 = 3 ;
+	ENSEMBLE = 3 ;
 	maxStrlen64 = 64 ;
 variables:
-	double ENSEMBLE1(ENSEMBLE1) ;
-		ENSEMBLE1:long_name = "Ensemble of Realizations" ;
-		ENSEMBLE1:axis = "E" ;
-		ENSEMBLE1:point_spacing = "even" ;
-	char LABELS(ENSEMBLE1, maxStrlen64) ;
+	double ENSEMBLE(ENSEMBLE) ;
+		ENSEMBLE:long_name = "Ensemble of Realizations" ;
+		ENSEMBLE:axis = "E" ;
+		ENSEMBLE:point_spacing = "even" ;
+	char LABELS(ENSEMBLE, maxStrlen64) ;
 		LABELS:long_name = "Realizations" ;
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76450,7 +75719,7 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76602,7 +75871,7 @@ shade/n=3/L=6 bath_tf
 ! If so its label will show Julian too.
 sh sym lab($labnum_f)
  !-> sh sym lab5
-LAB5 = "FORECAST : 2000 JULIAN"
+LAB5 = "FORECAST : 03-JAN-2000 00:00 JULIAN"
  
 GO bn_reset
 cancel mode verify
@@ -76635,8 +75904,8 @@ sh dat
  
 sh grid a[d=1]
     GRID GSI1
- name       axis              # pts   start                end
- XAXIS_TEST1 X                  4 r   1                    4
+ name       axis              # pts   start                end                 subset
+ XAXIS_TEST1 X                  4 r   1                    4                   full
  normal    Y
  normal    Z
  normal    T
@@ -76644,8 +75913,8 @@ sh grid a[d=1]
  normal    F
 sh grid b[d=2]
     GRID GRR1
- name       axis              # pts   start                end
- XAXIS_TEST X                   4 r   11                   14
+ name       axis              # pts   start                end                 subset
+ XAXIS_TEST X                   4 r   11                   14                  full
  normal    Y
  normal    Z
  normal    T
@@ -76678,7 +75947,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76708,7 +75977,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76729,7 +75998,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76750,7 +76019,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76772,7 +76041,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76983,7 +76252,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
@@ -77004,8 +76273,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
@@ -77021,7 +76290,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
@@ -77030,7 +76299,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
@@ -77135,11 +76404,11 @@ set axis/name=daysaxis `a,return=taxis`
  !-> set axis/name=daysaxis DAYSAXIS1
 sh grid a
     GRID GSI1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- daysaxis  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00
+ daysaxis  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00   full
  normal    E
  normal    F
  
@@ -77193,13 +76462,14 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        7    F       X13AXIS
+                                 orig_file_axname
+                                                 CHAR        7    F       X13AXIS
   
  A                     DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -77209,13 +76479,14 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        7    F       X13AXIS
+                                 orig_file_axname
+                                                 CHAR        7    F       X13AXIS
   
  B                     DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -77225,13 +76496,14 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V6.951 (beta)  9-Nov-15
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        7    F       X13AXIS
+                                 orig_file_axname
+                                                 CHAR        7    F       X13AXIS
   
  C                     DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -77251,6 +76523,19 @@ set axis/name=.fr x_in_meters
  
 set mode/last ignore
  
+GO bn_reset
+cancel mode verify
+GO bn_let_remote
+! bn_let_remote.jnl
+! Tests of the F-TDS LET/REMOTE
+ 
+! See if the F-TDS is working and bail if not.
+ 
+let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+load status
+if `status NE 0` then EXIT/SCRIPT
+ !-> if 1 then EXIT/SCRIPT
+ 
 ! *********** v6.93 Additions ***********
 GO bn_reset
 cancel mode verify
@@ -77485,11 +76770,11 @@ ensemble ens = 1,2,3
 list/y=29.25  MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3],  MAIZE_YIELD[m=@ngd]
              LONGITUDE: 8W(-8) to 6W(-6)
              LATITUDE: 29.25N
-             E: 0.5 to 3.5 (number of valid)
+             E (realization): 0.5 to 3.5 (number of valid)
  Column  1: MAIZE_YIELD[D=maize_1] is  Maize harvest (kgC.m-2.yr-1)
  Column  2: MAIZE_YIELD[D=maize_2] is  Maize harvest (kgC.m-2.yr-1)
  Column  3: MAIZE_YIELD[D=maize_3] is  Maize harvest (kgC.m-2.yr-1)
- Column  4: MAIZE_YIELD[D=ENS,E=@NGD] is  Maize harvest (# of points)
+ Column  4: MAIZE_YIELD[D=ens,E=@NGD] is  Maize harvest (# of points)
         MAIZE_YIELD  MAIZE_YI MAIZE_Y MAIZE_YIELD
 7.75W  / 1:     ....  0.05247  0.1022   2.000
 7.25W  / 2:  0.01818  0.03588  0.0049   3.000
@@ -77636,6 +76921,7 @@ GO err69_levels_v
 ! based levels returned useless levels. Changes
 ! made to throw out data outside 3 std when
 ! computing the mean and std dev for color levels.
+! Note: fixes to LEV=V 2/2016
  
 use "lev_v_bug.nc"
 shade/lev=v var2d
@@ -77643,11 +76929,11 @@ shade/lev=v var2d
 ! previously the computed levels spanned -8000 to 16000.
 sh sym *lev*
 LEV_TEXT = "V"
-LEV_HISTO_LEVELS = "1.1,1.2,1.6,1.9,2.4,2.5,3.8,5.4,10.2,13.6,14.9"
-LEV_MIN = "-1.E+34"
-LEV_NUM = "52"
-LEV_DEL = "2.0000E+32"
-LEV_MAX = "4.0000E+32"
+LEV_OPNLEVS = "(290,330,10)(332,402,2)(400,450,10)(inf)"
+LEV_MIN = "290"
+LEV_NUM = "45"
+LEV_DEL = "irregular"
+LEV_MAX = "114930.72"
  
  
 GO bn_reset
@@ -77754,12 +77040,12 @@ def axis/z=1:20:1 zaxis
 define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
 let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
 sh grid bigvar
-    GRID (G103)
- name       axis              # pts   start                end
- XAXIS     X                  360 r   1                    360
- YAXIS     Y                  180 r   1                    180
- ZAXIS     Z                   20 r   1                    20
- LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                  360 r   1                    360                 full
+ YAXIS     Y                  180 r   1                    180                 full
+ ZAXIS     Z                   20 r   1                    20                  full
+ LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
  normal    E
  normal    F
 load bigvar
@@ -77767,12 +77053,12 @@ load bigvar
 ! also was an incorrect size.
 define axis/t=1-jan-2000:1-jan-2010:1/units=days  longtime
 sh grid bigvar
-    GRID (G103)
- name       axis              # pts   start                end
- XAXIS     X                  360 r   1                    360
- YAXIS     Y                  180 r   1                    180
- ZAXIS     Z                   20 r   1                    20
- LONGTIME  TIME              3654 r   01-JAN-2000 00:00    01-JAN-2010 00:00
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                  360 r   1                    360                 full
+ YAXIS     Y                  180 r   1                    180                 full
+ ZAXIS     Z                   20 r   1                    20                  full
+ LONGTIME  TIME              3654 r   01-JAN-2000 00:00    01-JAN-2010 00:00   full
  normal    E
  normal    F
 load bigvar
@@ -77788,11 +77074,11 @@ GO err69_write_attribute
 use gt4d011.cdf
 sh grid temp
     GRID PS3DT21
- name       axis              # pts   start                end
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
- PSYT1     LATITUDE           100 i   28.836S              48.568N
- PSZT2     DEPTH (m)           27 i-  5                    3824
- TIME16    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ 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
  normal    E
  normal    F
 let a = temp[x=@ave,y=@ave,L=1]
@@ -77810,7 +77096,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(TIME16, PSZT21_10) ;
+	double A(TIME17, PSZT21_10) ;
  
 ! But it was being written for this one. It should not.
 let b =  temp[x=@ave,y=@ave,L=1,d=1]
@@ -77824,7 +77110,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(TIME16, PSZT21_10) ;
+	double B(TIME17, PSZT21_10) ;
  
 ! A variable that depends on more than one dataset.
 use coads_climatology
@@ -78130,10 +77416,10 @@ show grid/dynamic             ! look for "err: grid over-allocated" messages
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX127)                         use count:   1
-    AXIS (AX049)                         use count:  13
-    AXIS (AX047)                         use count:  13
-    AXIS (AX020)                         use count:   2
+    AXIS (AX132)                         use count:   1
+    AXIS (AX054)                         use count:  13
+    AXIS (AX052)                         use count:  13
+    AXIS (AX009)                         use count:   2
 show axis xax_isready_1, xax_isready_2   ! did they both get canceled?
  name       axis              # pts   start                end
  
@@ -78180,12 +77466,15 @@ GO bn_append_dsg
 !  Argument is a file name; the single-cruise dsg file from the data entry
 !
 ! We append more variables to the file, using the same obs dimension.
+! 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
  
 use test_save_dsg.nc
  
+cancel mode upcase
+ 
 ! Lon in 0-360
 let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
 define attribute/output lon360.ioos_category = "Location"
@@ -78222,14 +77511,14 @@ variables:
 		longitude:long_name = "longitude" ;
 		longitude:standard_name = "longitude" ;
 		longitude:ioos_category = "Location" ;
-	double LON360(obs) ;
-		LON360:missing_value = -1.e+34 ;
-		LON360:_FillValue = -1.e+34 ;
-		LON360:long_name = "longitude" ;
-		LON360:units = "degrees_east" ;
-		LON360:ioos_category = "Location" ;
-		LON360:standard_name = "Longitude" ;
-		LON360:history = "added to test_save_dsg.nc" ;
+	double lon360(obs) ;
+		lon360:missing_value = -1.e+34 ;
+		lon360:_FillValue = -1.e+34 ;
+		lon360:long_name = "longitude" ;
+		lon360:units = "degrees_east" ;
+		lon360:ioos_category = "Location" ;
+		lon360:standard_name = "Longitude" ;
+		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
 		:History = "CruiseDsgNcFile 1.0" ;
@@ -78241,16 +77530,19 @@ variables:
 		:geospatial_lat_max = 29.07 ;
 		:time_coverage_start = "2006-06-10T23:48:00Z" ;
 		:time_converage_end = "2006-06-11T00:12:00Z" ;
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 }
  
+set mode/last upcase
+ 
+ 
 GO bn_reset
 cancel mode verify
 GO bn_global_atts
- ! NOAA/PMEL TMAP
- ! FERRET v6.91 (beta)
- ! Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 04/07/14
- !  7-Apr-14 16:41
+! bn_global_atts
+! NOTE With the fix for ticket 2241, we need to add CANCEL MODE UPCASE.
+ 
+cancel mode upcase
  
 sp cp global.nc  global_copy.nc
 use global_copy.nc
@@ -78324,17 +77616,17 @@ variables:
 		longitude:long_name = "longitude" ;
 		longitude:standard_name = "longitude" ;
 		longitude:ioos_category = "Location" ;
-	double LON360(obs) ;
-		LON360:missing_value = -1.e+34 ;
-		LON360:_FillValue = -1.e+34 ;
-		LON360:long_name = "longitude" ;
-		LON360:units = "degrees_east" ;
-		LON360:ioos_category = "Location" ;
-		LON360:standard_name = "Longitude" ;
-		LON360:history = "added to test_save_dsg.nc" ;
+	double lon360(obs) ;
+		lon360:missing_value = -1.e+34 ;
+		lon360:_FillValue = -1.e+34 ;
+		lon360:long_name = "longitude" ;
+		lon360:units = "degrees_east" ;
+		lon360:ioos_category = "Location" ;
+		lon360:standard_name = "Longitude" ;
+		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -78361,10 +77653,11 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V6.951 (beta)  9-Nov-15 
+ FERRET V7 (beta/dbg) 15-Jun-16 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
+set mode/last upcase
  
  
 GO bn_reset
@@ -78393,7 +77686,7 @@ can dat/all; use conventions_history
 ! The new attibutes
 sh att .
      attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V6.951 (beta)  9-Nov-15 
+ ..history = The history of the fileFERRET V7 (beta/dbg) 15-Jun-16 
  ..Conventions = Conventions for variables named V2CF-1.6 
  
 GO bn_reset
@@ -78588,30 +77881,26 @@ sp cat a.txt
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 365.2425 (modulo length = axis span)
  name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
-   Axis span (to cell edges) = 160 (modulo length = axis span)
- PSXU      LONGITUDE          160mr   131E                 70W
-   Axis span (to cell edges) = 160 (modulo length = 360)
- PSYT      Y (seconds)        100 i   -28.836              48.568
-   Axis span (to cell edges) = 80.00004
- PSYU      LATITUDE           100 i   27.672S              50N
-   Axis span (to cell edges) = 80.2682
- PSZT      Z (zorro)           27 i-  5                    3824
-   Axis span (to cell edges) = 4149
- PSZW      DEPTH (m)           27 i-  10                   4149
-   Axis span (to cell edges) = 4144
  PSYT5_89  LATITUDE            85 i   20.151S              21.613N
    Axis span (to cell edges) = 43.60417
  PSZT1_2   DEPTH (m)            2 r-  5                    15
    Axis span (to cell edges) = 20
  PSZT2     DEPTH (m)           27 i-  5                    3824
    Axis span (to cell edges) = 4149
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
+ PSXT      LONGITUDE          160mr   130.5E               70.5W
    Axis span (to cell edges) = 160 (modulo length = 360)
  PSYT1     LATITUDE           100 i   28.836S              48.568N
    Axis span (to cell edges) = 80.00004
  PSZT1     Z (METERS)          27 i   5                    3824
    Axis span (to cell edges) = 4149
+ PSXU      LONGITUDE          160mr   131E                 70W
+   Axis span (to cell edges) = 160 (modulo length = 360)
+ PSYU      LATITUDE           100 i   27.672S              50N
+   Axis span (to cell edges) = 80.2682
+ PSZW      DEPTH (m)           27 i-  10                   4149
+   Axis span (to cell edges) = 4144
+ PSYT      Y (seconds)        100 i   -28.836              48.568
+   Axis span (to cell edges) = 80.00004
  
 ! show grid/outfile
  
@@ -78622,11 +77911,11 @@ SAY ---------------- Just the grid of sst
 ---------------- Just the grid of sst
 sp cat a.txt
     GRID GSQ1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ 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
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  normal    E
  normal    F
  
@@ -78679,11 +77968,11 @@ SAY ---------------- Just grid of sst
 ---------------- Just grid of sst
 sp cat a.txt
     GRID GSQ1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ 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
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  normal    E
  normal    F
  
@@ -78721,9 +78010,6 @@ show grid/clobber/outfile=a.txt PS3*
 SAY ---------------- only showing all grids starting with PS3
 ---------------- only showing all grids starting with PS3
 sp cat a.txt
-      PS3DT
-      PS3DU
-      PS3DW
       PS3DT2
  
 SAY ---------------- tests sending output of vtree to a file
@@ -78732,6 +78018,7 @@ GO bn_vtree_outfile
 ! bn_tree_outfile.jnl
  
 ! 8/2014 -- demonstrate SHOW VARIABLE/TREE/OUTFILE
+! 11/15 -- default for DEFINE DATA/AGG has become /T instead of /E
  
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -78978,12 +78265,12 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 /TREE=FILE
 fv1 is ready and AVAILABLE
 ************************
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
      FV1[d=my_file_vars]
      FV1[d=other_file_vars]
      FV1[d=another_file_vars]
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
  
    FV1[d=my_file_vars]
@@ -78994,14 +78281,14 @@ fv1 is ready and AVAILABLE
 /TREE=FILE
 fvx is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=my_file_vars]
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
        FV1[d=other_file_vars]
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
        FV1[d=another_file_vars]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
@@ -79014,7 +78301,7 @@ fvx is ready and AVAILABLE
 /TREE=FILE
 the problem is ILLEGAL RECURSIVE VARIABLES: P1
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -79024,7 +78311,7 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
            S3 ??			<== UNKNOWN VARIABLE ******
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -79043,7 +78330,7 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
 /TREE=FILE
 the problem is UNKNOWN VARIABLE: S1
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -79053,7 +78340,7 @@ the problem is UNKNOWN VARIABLE: S1
          P3 = S1 + S3
            S1 ??			<== UNKNOWN VARIABLE ******
            S3 ??			<== UNKNOWN VARIABLE ******
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -79070,13 +78357,13 @@ the problem is UNKNOWN VARIABLE: S1
    *unknown variable: S3
    in default dataset my_file_vars
    FV = FV1 + FV1 + FV1
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FV = FV1 + FV1 + FV1
      FV1   (aggregate variable)
    in default dataset other_file_vars
    UV = FVX + FVX + FVX
      FVX = FV1 + X[GX=FVX[D=1],I=1:3]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
        FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
@@ -79087,7 +78374,7 @@ the problem is UNKNOWN VARIABLE: S1
 /TREE=FILE
 v2 is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -79097,7 +78384,7 @@ v2 is ready and AVAILABLE
          C = 1
      B =  (defined above)
      A =  (defined above)
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -79112,7 +78399,7 @@ v2 is ready and AVAILABLE
 /TREE=FILE
 v3 is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
        FV1[d=my_file_vars]
@@ -79122,7 +78409,7 @@ v3 is ready and AVAILABLE
        B = C
          C = 1
      B =  (defined above)
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
      V1 = A  + B + B^2
@@ -79137,7 +78424,7 @@ v3 is ready and AVAILABLE
 /TREE=FILE
 the problem is UNKNOWN VARIABLE: F
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
        FV1[d=my_file_vars]
@@ -79147,7 +78434,7 @@ the problem is UNKNOWN VARIABLE: F
    NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
    FVX[d=my_file_vars]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
@@ -79164,11 +78451,11 @@ the problem is UNKNOWN VARIABLE: F
 /TREE=FILE
 the problem is UNKNOWN GRID: NOEXIST
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
@@ -79178,10 +78465,10 @@ the problem is UNKNOWN GRID: NOEXIST
 /TREE=FILE
 the problem is ERROR IN EXPRESSION: A[X=45S]
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
       *WARNING: syntax error: A[X=45S]
@@ -79190,10 +78477,10 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
 /TREE=FILE
 the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
       *WARNING: syntax error: A[I=1,,J=2]
@@ -79202,10 +78489,10 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
 /TREE=FILE
 the problem is ERROR IN EXPRESSION: A[P=1]
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
       *WARNING: syntax error: A[P=1]
@@ -79214,15 +78501,15 @@ the problem is ERROR IN EXPRESSION: A[P=1]
 /TREE=FILE
 f is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = FVZ.LONG_NAME[D=1]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = ..HISTORY[D=1]
  
  
@@ -79291,18 +78578,19 @@ GO bn_spawn_size
 let files = {spawn:"ls *cdf*.jnl"}
 list files
              VARIABLE : {SPAWN:"ls *cdf*.jnl"}
-             SUBSET   : 8 points (X)
+             SUBSET   : 9 points (X)
  1   / 1:"bn_cdf_errmsg.jnl"      
  2   / 2:"bn_cdf.jnl"             
  3   / 3:"bn_cdf_keepax.jnl"      
  4   / 4:"bn_netcdf4.jnl"         
- 5   / 5:"err490_cdf_childax.jnl" 
- 6   / 6:"err491_cdf_childax.jnl" 
- 7   / 7:"err65_read_epic_cdf.jnl"
- 8   / 8:"err667_5d_netcdf.jnl"   
+ 5   / 5:"cdf.jnl"                
+ 6   / 6:"err490_cdf_childax.jnl" 
+ 7   / 7:"err491_cdf_childax.jnl" 
+ 8   / 8:"err65_read_epic_cdf.jnl"
+ 9   / 9:"err667_5d_netcdf.jnl"   
 say `files,return=isize`
- !-> MESSAGE/CONTINUE 8
-8
+ !-> MESSAGE/CONTINUE 9
+9
  
 ! Evaluate size without loading the variable first
 let datfiles = {spawn:"ls *.dat"}
@@ -79312,28 +78600,29 @@ say `datfiles,return=isize`
  
 ! expression syntax
 say `{spawn:"ls xml*.jnl"},return=isize`
- !-> MESSAGE/CONTINUE 3
-3
+ !-> MESSAGE/CONTINUE 4
+4
 list {spawn:"ls xml*.jnl"}
              VARIABLE : {SPAWN:"ls xml*.jnl"}
-             SUBSET   : 3 points (X)
+             SUBSET   : 4 points (X)
  1   / 1:"xml_header_script.jnl"
- 2   / 2:"xml_use_coads.jnl"    
- 3   / 3:"xml_use_numstring.jnl"
+ 2   / 2:"xml_letd.jnl"         
+ 3   / 3:"xml_use_coads.jnl"    
+ 4   / 4:"xml_use_numstring.jnl"
  
 ! Test variables based on output of a spawn.
 ! These already worked correctly, has a grid-changing function.
  
 LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
 say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 919
-919
+ !-> MESSAGE/CONTINUE 1084
+1084
  
 let files = {spawn:"ls *cdf*.jnl"}
 let name_len = strindex(files, ".sub")
 say `name_len, return=isize`
- !-> MESSAGE/CONTINUE 8
-8
+ !-> MESSAGE/CONTINUE 9
+9
  
 GO bn_reset
 cancel mode verify
@@ -79405,6 +78694,7 @@ list 'abc'
              FILENAME : aa.nc
           12.00
  
+set mode/last upcase
  
 GO bn_reset
 cancel mode verify
@@ -79820,11 +79110,13 @@ say `a[x=@min]`
  allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  strip --> A[X=25E:25E(385)@MIN,D=2]
- strip moduloing A on X axis:     0    83 dset:   2
- reading A        M: 72 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling A on X axis:     0    83 dset:   2
+ strip moduloing A on X axis:     0    82 dset:   2
+ reading A        M: 74 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:     1    82 dset:   2
+ doing modulo-void-filling A on X axis:     0    82 dset:   2
  doing --> A[X=25E:25E(385)@MIN,D=2]
- -DELETE A        M: 70 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M: 66 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 25.27740573883057
 25.27740573883057
  
@@ -79838,11 +79130,13 @@ say `b`
  eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  eval    B        C:  6 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  strip --> A[X=25E:25E(385)@MIN,D=2]
- strip moduloing A on X axis:     0    83 dset:   2
- reading A        M: 70 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling A on X axis:     0    83 dset:   2
+ strip moduloing A on X axis:     0    82 dset:   2
+ reading A        M: 66 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:     1    82 dset:   2
+ doing modulo-void-filling A on X axis:     0    82 dset:   2
  doing --> A[X=25E:25E(385)@MIN,D=2]
- -DELETE B        M: 47 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE B        M: 39 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 25.27740573883057
 25.27740573883057
  
@@ -79919,7 +79213,7 @@ list/x=135.402W:135.321W/y=58.609 elev
              DATA SET : K-Bay OAR3d model (200m)
              FILENAME : err491_attval.cdf
              SUBSET   : 7 points (LONGITUDE)
-             LATITUDE : 58.61N (interpolated)
+             LATITUDE : 58.609N (interpolated)
              T (day)  : 1.7837
  135.402W / 45:   ....
  135.389W / 46:   ....
@@ -79951,7 +79245,7 @@ list/x=135.402W:135.321W/y=58.609 elev
              VARIABLE : Surface elevation (meter)
              FILENAME : a.nc
              SUBSET   : 7 points (LONGITUDE)
-             LATITUDE : 58.61N (interpolated)
+             LATITUDE : 58.609N (interpolated)
              T (day)  : 1.7837
  135.402W / 45:   ....
  135.389W / 46:   ....
@@ -80060,7 +79354,7 @@ set view lower; plot/m=2 efvar
 list/n=3 efvar
              VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
              SUBSET   : 4 points (E)
-             F        : 0.2
+             F        : 0.234
  1001.1 / 1:  4.000
  1234   / 2:  5.000
  2112.3 / 3:  6.000
@@ -80179,8 +79473,8 @@ GO err693_isize_and_gcfcn
 can mode verify
 8
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              7 pts
  normal    Y
  normal    Z
  normal    T
@@ -80204,8 +79498,8 @@ can mode verify
 8 h
 8
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -80848,13 +80142,6 @@ LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
     time: numeric times
     time_axis: Varible with a time axis to use to convert time to time strings
     string to prepend: A label to start the strings (STRING)
-LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
-    Generate names based on longitude,latitude,time,and a string
-    longitude: Station longitude
-    latitude: Station latitude
-    time: numeric times
-    time_axis: Varible with a time axis to use to convert time to time strings
-    string to prepend: A label to start the names with (STRING)
  
 ! Longitudes are translated to 0:360 range
 let lon = {-172.44, 210.01, -19.5}
@@ -81906,57 +81193,63 @@ GO bn_fmrc
 ! bn_fmrc.jnl
 ! initial test of DEFINE DATA/F
  
+! *sh* 11/15 MUCH MORE DETAILED BENCHMARK NEEDED!
+ 
 use "run1.nc"
 use "run2.nc"
 use "run3.nc"
 use "run4.nc"
  
-define data/hide/F/agg/title fourfiles = 1,2,3,4
+define data/hide/F/agg fourfiles = 1,2,3,4
  
 sh grid sst
-    GRID (G087)
- name       axis              # pts   start                end
- LON1      LONGITUDE           10mr   109W                 91W
- LAT       LATITUDE             9 r   13N                  29N
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ LON1      LONGITUDE           10mr   109W                 91W                 full
+ LAT       LATITUDE             9 r   13N                  29N                 full
  normal    Z
- TF_LAG_T  MODEL ELAPSED TIME (12 r   0                    11
+ TF_LAG_T  MODEL ELAPSED TIME (12 r   0.5                  11.5                full
  normal    E
- TF_CAL_F  FORECAST             4 r   02-JAN-2010 00:00    08-JAN-2010 00:00
+ TF_CAL_F  FORECAST             4 r   01-JAN-2010 12:00    07-JAN-2010 12:00   full
 list/i=1/j=1/L=1:6/n=1:4 sst
              VARIABLE : SST_IN (Deg C)
-             FILENAME : FOURFILES
+             DATA SET : Forecast series of 4 datasets patterned on run1
+             FILENAME : fourfiles
              SUBSET   : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
              LONGITUDE: 109W
              LATITUDE : 13N
              Verification time increases across row.  Initialization time increases down page. 
-                         0         1         2         3         4         5      
+                         0.5       1.5       2.5       3.5       4.5       5.5    
                           1         2         3         4         5         6
- 02-JAN-2010 00 / 1:   27.3789   27.4378   27.5751   28.1351   28.8653   28.7771
- 04-JAN-2010 00 / 2:   54.7577   54.8756   55.1503   56.2703   57.7306   57.5541
- 06-JAN-2010 00 / 3:   82.1366   82.3133   82.7254   84.4054   86.5959   86.3312
- 08-JAN-2010 00 / 4:  109.5154  109.7511  110.3006  112.5405  115.4613  115.1082
+ 01-JAN-2010 12 / 1:   27.3789   27.4378   27.5751   28.1351   28.8653   28.7771
+ 03-JAN-2010 12 / 2:   54.7577   54.8756   55.1503   56.2703   57.7306   57.5541
+ 05-JAN-2010 12 / 3:   82.1366   82.3133   82.7254   84.4054   86.5959   86.3312
+ 07-JAN-2010 12 / 4:  109.5154  109.7511  110.3006  112.5405  115.4613  115.1082
  
 show att sst
-     attributes for dataset: FOURFILES
+     attributes for dataset: fourfiles
  SST.long_name = SST_IN 
  SST.units = Deg C 
  SST.missing_value = -1.E+34
- SST.coordinates = FORECAST TIME15 TF_TIMES TIME15 LAT LON1 
- SST._ftime2dRef = TF_TIMES 
+ SST.coordinates = RUN TIME16 TF_TIMES TIME16 LAT LON1 
+ SST._ftime2d = TF_TIMES 
+ SST._cal_t_ax = TF_CAL_T 
+ SST._lag_f_ax = TF_LAG_F 
  
 ! Attribute _ftime2dRef pointe to the 2D time variable
-list/L=1:6/n=1:4 `sst._ftime2dRef`
+list/L=1:6/n=1:4 `sst._ftime2d`
  !-> list/L=1:6/n=1:4 TF_TIMES
              VARIABLE : Forecast time step matrix (day since 01-JAN-2010 00:00:00)
-             FILENAME : FOURFILES
+             DATA SET : Forecast series of 4 datasets patterned on run1
+             FILENAME : fourfiles
              SUBSET   : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
              Verification time increases across row.  Initialization time increases down page. 
-                         0         1         2         3         4         5      
+                         0.5       1.5       2.5       3.5       4.5       5.5    
                           1         2         3         4         5         6
- 02-JAN-2010 00 / 1:   1.00000   2.00000   3.00000   4.00000   5.00000   6.00000
- 04-JAN-2010 00 / 2:   3.00000   4.00000   5.00000   6.00000   7.00000   8.00000
- 06-JAN-2010 00 / 3:   5.00000   6.00000   7.00000   8.00000   9.00000  10.00000
- 08-JAN-2010 00 / 4:   7.00000   8.00000   9.00000  10.00000  11.00000  12.00000
+ 01-JAN-2010 12 / 1:   1.00000   2.00000   3.00000   4.00000   5.00000   6.00000
+ 03-JAN-2010 12 / 2:   3.00000   4.00000   5.00000   6.00000   7.00000   8.00000
+ 05-JAN-2010 12 / 3:   5.00000   6.00000   7.00000   8.00000   9.00000  10.00000
+ 07-JAN-2010 12 / 4:   7.00000   8.00000   9.00000  10.00000  11.00000  12.00000
  
  
 GO bn_reset
@@ -82261,8 +81554,8 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  LAB14 -1.542E+00 -1.059E+00 0.500   45  USER    M
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB15 -3.972E+00  4.958E-08 0.500   45  USER    M
- LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
+ LAB15 -3.972E+00 -1.059E+00 0.500   45  USER    4.9578946316E-,1, M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  LAB16 -2.514E+00 -3.178E+00 0.500   45  USER    M
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB17 -1.301E+00 -2.654E+00 0.500   45  USER    M
@@ -82474,10 +81767,10 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GAO1
     GRID GAO1
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAXLEVITR DEPTH (m)           20 i-  0                    5000
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                10 pts
  normal    T
  normal    E
  normal    F
@@ -82496,9 +81789,9 @@ 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    NORMAL    NORMAL
  getgrid ZPTS     C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G108)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G108)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G108)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G094)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G094)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
  allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
  dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
  allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
@@ -82508,14 +81801,14 @@ LIST/PREC=7 tempz
  allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
  strip regrid on Z: TEMP --> (G086)           @LIN
  eval    DEPTH    C:  9 dset:   1 I:    1    2  J:    1    2  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  Z        M:112 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M:104 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading TEMP     M: 98 dset:   1 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:104 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 96 dset:   0 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Z        M:112 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- reading TEMP     M:112 dset:   1 I:    1    2  J:    1    2  K:    7   12  L: -999 -999  M: -999 -999  N: -999 -999
- auxgrd  TEMP     M: 96 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
+ pseudo  Z        M: 86 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M: 82 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading TEMP     M: 80 dset:   1 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 82 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 74 dset:   0 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE Z        M: 86 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
+ reading TEMP     M: 86 dset:   1 I:    1    2  J:    1    2  K:    7   12  L: -999 -999  M: -999 -999  N: -999 -999
+ auxgrd  TEMP     M: 74 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
              VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
              FILENAME : levitus_3d_subset.nc
@@ -82542,10 +81835,10 @@ SHOW GRID tempz
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
     GRID (G086)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- (AX113)   Z                    5 r   100                  500
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX113)   Z                    5 r   100                  500                 full
  normal    T
  normal    E
  normal    F
@@ -82591,11 +81884,11 @@ LIST tempzax
  48.5S / 2:  5.835500  6.045001
  49.5S / 1:  4.879000  5.102500
 SHOW GRID tempzax
-    GRID (G106)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAX       Z (METERS)           5 r   100                  500
+    GRID (G109)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 full
  normal    T
  normal    E
  normal    F
@@ -82627,11 +81920,11 @@ LIST/PREC=7 tempz_alt
  48.5S / 2:  7.726000  7.917999
  49.5S / 1:  6.843000  7.021999
 SHOW GRID tempz_alt
-    GRID (G103)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- (AX129)   Z                    5 r   2                    10
+    GRID (G096)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX122)   Z                    5 r   2                    10                  4 pts
  normal    T
  normal    E
  normal    F
@@ -82654,11 +81947,11 @@ LIST/PREC=7 tempz_1pt
  48.5S / 2:  7.725600  7.917999
  49.5S / 1:  6.836600  7.016000
 SHOW GRID/z tempz_1pt
-    GRID (G087)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- (AX114)   Z                    1 r   6                    6
+    GRID (G089)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX125)   Z                    1 r   6                    6                   1 pt
  normal    T
  normal    E
  normal    F
@@ -82680,10 +81973,10 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GAO1
     GRID GAO1
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAXLEVITR DEPTH (m)           20 i-  0                    5000
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                1 pt
  normal    T
  normal    E
  normal    F
@@ -82721,11 +82014,11 @@ LIST/PREC=7 rvtempzax - tempz
  48.5S / 2:  0.0000000  0.0000000
  49.5S / 1:  0.0000000  0.0000000
 SHOW GRID rvtempzax
-    GRID (G106)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAX       Z (METERS)           5 r   100                  500
+    GRID (G109)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
  normal    E
  normal    F
@@ -83916,11 +83209,11 @@ LIST/PREC=7 rvtempzaxave - tempz
  48.5S / 2:  0.00000000  0.00000000
  49.5S / 1:  0.00000000  0.00000000
 SHOW GRID/z rvtempzaxave
-    GRID (G106)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAX       Z (METERS)           5 r   100                  500
+    GRID (G109)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
  normal    E
  normal    F
@@ -86317,514 +85610,9652 @@ LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
 13S   / 20: "00019" "00019"
  
  
-! F0 format for zero-filled F format
+! F0 format for zero-filled F format
+ 
+let a = {1.1, 3.7}
+list  floatstr(a, "(f04.1)")
+             VARIABLE : FLOATSTR(A, "(f04.1)")
+             SUBSET   : 2 points (X)
+ 1   / 1:"01.1"
+ 2   / 2:"03.7"
+ 
+let a = {1.1, 13.7}
+list floatstr(a, "(f06.1)")
+             VARIABLE : FLOATSTR(A, "(f06.1)")
+             SUBSET   : 2 points (X)
+ 1   / 1:"0001.1"
+ 2   / 2:"0013.7"
+ 
+let a = {-1.1, 13.7}
+list  floatstr(a, "(f04.1)")
+             VARIABLE : FLOATSTR(A, "(f04.1)")
+             SUBSET   : 2 points (X)
+ 1   / 1:"-1.1"
+ 2   / 2:"13.7"
+ 
+! testing negative numbers and null/missing results
+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
+             LATITUDE: 91S to 11S
+             LONGITUDE: 165W
+             TIME: 16-JAN 06:00
+ Column  1: VAR1[G=4 deg on Y] is FLOATSTR(SST-20,"(f5.1)") (regrid: 4 deg on Y)
+ Column  2: VAR2[G=4 deg on Y] is FLOATSTR(SST-20,"(f05.1)") (regrid: 4 deg on Y)
+              VAR1    VAR2
+89S   /  1: ""      ""     
+85S   /  2: ""      ""     
+81S   /  3: ""      ""     
+77S   /  4: "-20.4" "-20.4"
+73S   /  5: "-21.0" "-21.0"
+69S   /  6: "-19.8" "-19.8"
+65S   /  7: "-20.0" "-20.0"
+61S   /  8: "-17.3" "-17.3"
+57S   /  9: "-13.9" "-13.9"
+53S   / 10: "-11.2" "-11.2"
+49S   / 11: " -7.5" "0-7.5"
+45S   / 12: " -5.7" "0-5.7"
+41S   / 13: " -3.5" "0-3.5"
+37S   / 14: " -1.3" "0-1.3"
+33S   / 15: "  0.9" "000.9"
+29S   / 16: "  3.0" "003.0"
+25S   / 17: "  5.1" "005.1"
+21S   / 18: "  7.5" "007.5"
+17S   / 19: "  8.1" "008.1"
+13S   / 20: "  9.7" "009.7"
+ 
+! Now test (F0.0) and (I0) formats which return the
+! shortest possible value without the fractional part.
+! Per marco.van-hulten at lsce.ipsl.fr - this is legal in
+! gfortran, so allow it.
+ 
+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
+             LATITUDE: 91S to 11S
+             LONGITUDE: 165W
+             TIME: 16-JAN 06:00
+ Column  1: VAR1[G=4 deg on Y] is FLOATSTR(SST-20,"(f0.0)") (regrid: 4 deg on Y)
+ Column  2: VAR2[G=4 deg on Y] is FLOATSTR(SST-20,"(I0)") (regrid: 4 deg on Y)
+             VAR1   VAR2
+89S   /  1: ""     ""   
+85S   /  2: ""     ""   
+81S   /  3: ""     ""   
+77S   /  4: "-20." "-20"
+73S   /  5: "-21." "-21"
+69S   /  6: "-20." "-19"
+65S   /  7: "-20." "-20"
+61S   /  8: "-17." "-17"
+57S   /  9: "-14." "-13"
+53S   / 10: "-11." "-11"
+49S   / 11: "-7."  "-7" 
+45S   / 12: "-6."  "-5" 
+41S   / 13: "-4."  "-3" 
+37S   / 14: "-1."  "-1" 
+33S   / 15: "1."   "0"  
+29S   / 16: "3."   "2"  
+25S   / 17: "5."   "5"  
+21S   / 18: "8."   "7"  
+17S   / 19: "8."   "8"  
+13S   / 20: "10."  "9"  
+ 
+! *********** v6.96 Additions ***********
+ 
+GO bn_reset
+cancel mode verify
+GO bn696_bug_fixes
+! bn696_bug_fixes
+! test various fixes that went into version 6.96
+ 
+GO bn_reset
+cancel mode verify
+GO err695_bounds_match_axis
+! err695_bounds_match_axis.jnl
+! ticket 2321.
+!
+! The coordinates match the upper bound of each cell
+! to machine accuracy. The internal rep of the value
+! has pt > bound_hi however.  The logic in tm_check_bnds
+! handes this.
+ 
+use shorttemp.nc
+ 
+! Previously showed tbox=0 for every second pt.
+sh grid/l=1:4444 temp
+    GRID GSL1
+ name       axis              # pts   start                end                 subset
+ 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
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  19-JUN-1997 00:00:00  0.0208333  18-JUN-1997 23:30:00    0.02083333
+       2>  19-JUN-1997 00:30:00  0.0208333  19-JUN-1997 00:00:00    0.04166667
+       3>  19-JUN-1997 01:00:00  0.0208333  19-JUN-1997 00:30:00    0.0625
+       4>  19-JUN-1997 01:30:00  0.0208333  19-JUN-1997 01:00:00    0.08333333
+ 
+GO bn_reset
+cancel mode verify
+GO err695_show_dat_nodata
+! err695_show_dat_nodata.jnl
+! ticket 2322
+!
+! SHOW DATA noexist should include the dataset name or number
+! in the error message.
+ 
+USE coads_climatology
+ 
+SHOW DATA 1
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+SHOW DATA coads_climatology
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+ 
+! intentional errors
+SET MODE ignore
+SHOW DATA noexist
+SHOW DATA 2
+SHOW DATA/ATT noexist
+ 
+SET MODE/LAST ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err695_grave_prec
+! err695_grave_prec
+! Bug 2323. Large numbers had incorrect results on grave-accent
+! evaluations, returning only 8 digits of precision
+ 
+list/nohead/p=16 1234567890123456, `1234567890123456`
+ !-> list/nohead/p=16 1234567890123456,   1234567890123456.
+I / *:     1234567890123456.  1234567890123456.
+list/nohead/p=16 -1234567890123.456, `-1234567890123.456`
+ !-> list/nohead/p=16 -1234567890123.456,  -1234567890123.456
+I / *:    -1234567890123.456 -1234567890123.456
+ 
+! this was ok
+list/nohead/p=16 1.234567890123456, `1.1234567890123456`
+ !-> list/nohead/p=16 1.234567890123456, 1.123456789012346
+I / *:     1.234567890123456  1.123456789012346
+ 
+! check output when asking for lower precision
+list/nohead/p=9 1234567890123456, `1234567890123456`
+ !-> list/nohead/p=9 1234567890123456,   1234567890123456.
+I / *:     1.23456789E+15  1.23456789E+15
+list/nohead/p=6 1234567890123456, `1234567890123456`
+ !-> list/nohead/p=6 1234567890123456,   1234567890123456.
+I / *:     1.23457E+15  1.23457E+15
+ 
+let var = 1.23456e+34
+say `var`
+ !-> MESSAGE/CONTINUE 1.23456E+34
+1.23456E+34
+ 
+say `var,prec=4`
+ !-> MESSAGE/CONTINUE 1.235E+34
+1.235E+34
+ 
+GO bn_reset
+cancel mode verify
+GO bn_bin_regrid
+! bin regridding tests
+ 
+go bn_bin_regrid.sub X
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/X=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/X irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _X[GX=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _X[GX=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
+             X: 0.5 to 5.5
+ Column  1: DEST is _X[GX=DCOARSE]
+ Column  2: VAR[G=1 delta on X at AVE] is _X[GX=IRR] (regrid: 1 delta on X at AVE)
+ Column  3: VAR[G=1 delta on X at BIN] is _X[GX=IRR] (regrid: 1 delta on X at BIN)
+ Column  4: VAR[G=1 delta on X at NBIN] is _X[GX=IRR] (regrid: 1 delta on X at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.177778  1.150000  2.000000
+2   / 2:  2.000000  1.545000      ....  0.000000
+3   / 3:  3.000000  3.500000      ....  0.000000
+4   / 4:  4.000000  3.980000  3.500000  1.000000
+5   / 5:  5.000000  4.838462  4.850000  2.000000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _X[gX=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _X[GX=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
+             X: 0.5 to 5.5
+ Column  1: DEST is _X[GX=DCOARSE]
+ Column  2: VAR[G=1 delta on X at AVE] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at AVE)
+ Column  3: VAR[G=1 delta on X at BIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at BIN)
+ Column  4: VAR[G=1 delta on X at NBIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.955556  1.650000  2.000000
+2   / 2:  2.000000  2.200000      ....  0.000000
+3   / 3:  3.000000      ....      ....  0.000000
+4   / 4:  4.000000      ....      ....  0.000000
+5   / 5:  5.000000  5.000000  5.000000  1.000000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GX=dcoarse]
+             X: 0.5 to 5.5
+ Column  1: DEST is _X[GX=DCOARSE]
+ Column  2: VAR[G=1 delta on X] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
+             DEST     VAR
+1   / 1:  1.000000      ....
+2   / 2:  2.000000      ....
+3   / 3:  3.000000      ....
+4   / 4:  4.000000      ....
+5   / 5:  5.000000  5.000000
+ 
+go bn_bin_regrid.sub Y
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/Y=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/Y irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _Y[GY=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _Y[GY=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
+             Y: 0.5 to 5.5
+ Column  1: DEST is _Y[GY=DCOARSE]
+ Column  2: VAR[G=1 delta on Y at AVE] is _Y[GY=IRR] (regrid: 1 delta on Y at AVE)
+ Column  3: VAR[G=1 delta on Y at BIN] is _Y[GY=IRR] (regrid: 1 delta on Y at BIN)
+ Column  4: VAR[G=1 delta on Y at NBIN] is _Y[GY=IRR] (regrid: 1 delta on Y at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.177778  1.150000  2.000000
+2   / 2:  2.000000  1.545000      ....  0.000000
+3   / 3:  3.000000  3.500000      ....  0.000000
+4   / 4:  4.000000  3.980000  3.500000  1.000000
+5   / 5:  5.000000  4.838462  4.850000  2.000000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _Y[gY=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _Y[GY=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
+             Y: 0.5 to 5.5
+ Column  1: DEST is _Y[GY=DCOARSE]
+ Column  2: VAR[G=1 delta on Y at AVE] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at AVE)
+ Column  3: VAR[G=1 delta on Y at BIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at BIN)
+ Column  4: VAR[G=1 delta on Y at NBIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.955556  1.650000  2.000000
+2   / 2:  2.000000  2.200000      ....  0.000000
+3   / 3:  3.000000      ....      ....  0.000000
+4   / 4:  4.000000      ....      ....  0.000000
+5   / 5:  5.000000  5.000000  5.000000  1.000000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GY=dcoarse]
+             Y: 0.5 to 5.5
+ Column  1: DEST is _Y[GY=DCOARSE]
+ Column  2: VAR[G=1 delta on Y] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
+             DEST     VAR
+1   / 1:  1.000000      ....
+2   / 2:  2.000000      ....
+3   / 3:  3.000000      ....
+4   / 4:  4.000000      ....
+5   / 5:  5.000000  5.000000
+ 
+go bn_bin_regrid.sub Z
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/Z=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/Z irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _Z[GZ=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _Z[GZ=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
+             Z: 0.5 to 5.5
+ Column  1: DEST is _Z[GZ=DCOARSE]
+ Column  2: VAR[G=1 delta on Z at AVE] is _Z[GZ=IRR] (regrid: 1 delta on Z at AVE)
+ Column  3: VAR[G=1 delta on Z at BIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at BIN)
+ Column  4: VAR[G=1 delta on Z at NBIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.177778  1.150000  2.000000
+2   / 2:  2.000000  1.545000      ....  0.000000
+3   / 3:  3.000000  3.500000      ....  0.000000
+4   / 4:  4.000000  3.980000  3.500000  1.000000
+5   / 5:  5.000000  4.838462  4.850000  2.000000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _Z[gZ=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _Z[GZ=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
+             Z: 0.5 to 5.5
+ Column  1: DEST is _Z[GZ=DCOARSE]
+ Column  2: VAR[G=1 delta on Z at AVE] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at AVE)
+ Column  3: VAR[G=1 delta on Z at BIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at BIN)
+ Column  4: VAR[G=1 delta on Z at NBIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.955556  1.650000  2.000000
+2   / 2:  2.000000  2.200000      ....  0.000000
+3   / 3:  3.000000      ....      ....  0.000000
+4   / 4:  4.000000      ....      ....  0.000000
+5   / 5:  5.000000  5.000000  5.000000  1.000000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GZ=dcoarse]
+             Z: 0.5 to 5.5
+ Column  1: DEST is _Z[GZ=DCOARSE]
+ Column  2: VAR[G=1 delta on Z] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
+             DEST     VAR
+1   / 1:  1.000000      ....
+2   / 2:  2.000000      ....
+3   / 3:  3.000000      ....
+4   / 4:  4.000000      ....
+5   / 5:  5.000000  5.000000
+ 
+go bn_bin_regrid.sub T
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/T=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/T irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _T[GT=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+             T: 0.5 to 5.5
+ Column  1: DEST is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T at AVE] is _T[GT=IRR] (regrid: 1 delta on T at AVE)
+ Column  3: VAR[G=1 delta on T at BIN] is _T[GT=IRR] (regrid: 1 delta on T at BIN)
+ Column  4: VAR[G=1 delta on T at NBIN] is _T[GT=IRR] (regrid: 1 delta on T at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.177778  1.150000  2.000000
+2   / 2:  2.000000  1.545000      ....  0.000000
+3   / 3:  3.000000  3.500000      ....  0.000000
+4   / 4:  4.000000  3.980000  3.500000  1.000000
+5   / 5:  5.000000  4.838462  4.850000  2.000000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _T[gT=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+             T: 0.5 to 5.5
+ Column  1: DEST is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T at AVE] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at AVE)
+ Column  3: VAR[G=1 delta on T at BIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at BIN)
+ Column  4: VAR[G=1 delta on T at NBIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.955556  1.650000  2.000000
+2   / 2:  2.000000  2.200000      ....  0.000000
+3   / 3:  3.000000      ....      ....  0.000000
+4   / 4:  4.000000      ....      ....  0.000000
+5   / 5:  5.000000  5.000000  5.000000  1.000000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GT=dcoarse]
+             T: 0.5 to 5.5
+ Column  1: DEST is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
+             DEST     VAR
+1   / 1:  1.000000      ....
+2   / 2:  2.000000      ....
+3   / 3:  3.000000      ....
+4   / 4:  4.000000      ....
+5   / 5:  5.000000  5.000000
+ 
+go bn_bin_regrid.sub E
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/E=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/E irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _E[GE=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+             E: 0.5 to 5.5
+ Column  1: DEST is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E at AVE] is _E[GE=IRR] (regrid: 1 delta on E at AVE)
+ Column  3: VAR[G=1 delta on E at BIN] is _E[GE=IRR] (regrid: 1 delta on E at BIN)
+ Column  4: VAR[G=1 delta on E at NBIN] is _E[GE=IRR] (regrid: 1 delta on E at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.177778  1.150000  2.000000
+2   / 2:  2.000000  1.545000      ....  0.000000
+3   / 3:  3.000000  3.500000      ....  0.000000
+4   / 4:  4.000000  3.980000  3.500000  1.000000
+5   / 5:  5.000000  4.838462  4.850000  2.000000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _E[gE=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+             E: 0.5 to 5.5
+ Column  1: DEST is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E at AVE] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at AVE)
+ Column  3: VAR[G=1 delta on E at BIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at BIN)
+ Column  4: VAR[G=1 delta on E at NBIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.955556  1.650000  2.000000
+2   / 2:  2.000000  2.200000      ....  0.000000
+3   / 3:  3.000000      ....      ....  0.000000
+4   / 4:  4.000000      ....      ....  0.000000
+5   / 5:  5.000000  5.000000  5.000000  1.000000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GE=dcoarse]
+             E: 0.5 to 5.5
+ Column  1: DEST is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
+             DEST     VAR
+1   / 1:  1.000000      ....
+2   / 2:  2.000000      ....
+3   / 3:  3.000000      ....
+4   / 4:  4.000000      ....
+5   / 5:  5.000000  5.000000
+ 
+go bn_bin_regrid.sub F
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/F=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/F irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _F[GF=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+             F: 0.5 to 5.5
+ Column  1: DEST is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F at AVE] is _F[GF=IRR] (regrid: 1 delta on F at AVE)
+ Column  3: VAR[G=1 delta on F at BIN] is _F[GF=IRR] (regrid: 1 delta on F at BIN)
+ Column  4: VAR[G=1 delta on F at NBIN] is _F[GF=IRR] (regrid: 1 delta on F at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.177778  1.150000  2.000000
+2   / 2:  2.000000  1.545000      ....  0.000000
+3   / 3:  3.000000  3.500000      ....  0.000000
+4   / 4:  4.000000  3.980000  3.500000  1.000000
+5   / 5:  5.000000  4.838462  4.850000  2.000000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _F[gF=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+             F: 0.5 to 5.5
+ Column  1: DEST is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F at AVE] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at AVE)
+ Column  3: VAR[G=1 delta on F at BIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at BIN)
+ Column  4: VAR[G=1 delta on F at NBIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at NBIN)
+             DEST     VAR       VAR       VAR
+1   / 1:  1.000000  1.955556  1.650000  2.000000
+2   / 2:  2.000000  2.200000      ....  0.000000
+3   / 3:  3.000000      ....      ....  0.000000
+4   / 4:  4.000000      ....      ....  0.000000
+5   / 5:  5.000000  5.000000  5.000000  1.000000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GF=dcoarse]
+             F: 0.5 to 5.5
+ Column  1: DEST is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
+             DEST     VAR
+1   / 1:  1.000000      ....
+2   / 2:  2.000000      ....
+3   / 3:  3.000000      ....
+4   / 4:  4.000000      ....
+5   / 5:  5.000000  5.000000
+ 
+ 
+! *********** v6.97 Additions ***********
+ 
+GO bn_reset
+cancel mode verify
+GO bn697_bug_fixes
+! bn697_bug_fixes
+! test various fixes that went into version 6.97
+ 
+GO bn_reset
+cancel mode verify
+GO err696_only_inf_lev
+! Bug 2326: levels with only a value and (inf) or (-inf)
+! should show values less-equal or greater-equal to that level.
+ 
+use coads_climatology; set reg/l=1
+ 
+! The plots should be the same left to right; just a triangle key
+! on the right
+set view ul; shade/lev=(20)(50) sst
+set view ur; shade/lev=(20)(inf) sst
+set view ll; shade/lev=(-50)(20) sst
+set view lr; shade/lev=(-inf)(20) sst
+ 
+! Horizontal keys
+can view
+set view ul; fill/lev=(20)(50) sst
+set view ur; fill/lev=(20)(inf) sst
+set view ll; fill/lev=(-50)(20) sst
+set view lr; fill/lev=(-inf)(20) sst
+ 
+! silly degenerate case, two-sided inf's
+can view
+set view ul; shade/lev=(-inf)(22)(inf) sst
+set view ur; shade/key=horiz/lev=(-inf)(22)(inf) sst
+ 
+GO bn_reset
+cancel mode verify
+GO err696_plot_ax_ppl
+! err696_plot_ax_ppl.jnl
+! ticket 2327
+!
+! restore settings properly after a PLOT/axes=
+! if there is a ppl axis-setting command before next plot
+ 
+plot/vs/noax 0,0
+ set view upper
+ppl axlabp 0 -1
+plot/nolab/vs 0,0
+ 
+ set view lower
+ppl axlabp 0 -1
+plot/nolab/vs 0,0
+ 
+can view
+vector/i=1:40/j=1:30/nolab/noax  j-20+(i-i),i-20+(j-j)
+ 
+set view upper
+ppl axlabp 0 -1
+vector/i=1:40/j=1:30/nolab j-20+(i-i),i-20+(j-j)
+ 
+ set view lower
+ppl axlabp 0 -1
+vector/i=1:40/j=1:30/nolab j-20+(i-i),i-20+(j-j)
+ 
+can view
+let var2d = i+j
+ 
+shade/i=1:40/j=1:30/nolab/noax var2d
+ set view upper
+ppl axlabp 0 -1
+shade/i=1:40/j=1:30/nolab var2d
+ 
+ set view lower
+ppl axlabp 0 -1
+shade/i=1:40/j=1:30/nolab var2d
+ 
+can view
+ 
+contour/i=1:40/j=1:30/nolab/noax var2d
+ set view upper
+ppl axlabp 0 -1
+contour/i=1:40/j=1:30/nolab var2d
+ 
+ set view lower
+ppl axlabp 0 -1
+contour/i=1:40/j=1:30/nolab var2d
+ 
+can view
+ 
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+let ypts = x/10
+let xpts = cos(x/10)
+ 
+polygon/trans/i=1:100/nolab/noax xpts+xsqr, ypts+ysqr, x*x/10
+ 
+ set view upper
+ppl axlabp 0 -1
+polygon/trans/i=1:100/nolab  xpts+xsqr, ypts+ysqr, x*x/10
+ 
+ set view lower
+ppl axlabp 0 -1
+polygon/trans/i=1:100/nolab  xpts+xsqr, ypts+ysqr, x*x/10
+can view
+ 
+! restore axis settings after a plot/set with/axes=
+ 
+set view upper
+plot/i=1:100/axes=1,0,0,1/set/title="labels" i*cos(i/8)
+ppl xlab "a label"
+ppl labset, , , 0.08
+ppl ylab "a multi line y label<NL>here"
+ppl plot
+ 
+set view lower
+plot/i=1:199 i*cos(i/10)
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_ft_calendars
+! err696_ft_calendars.jnl
+! see ticket 2332: check for matching calendars when
+! there are T and F axes in a file.
+ 
+! If the T or F calnedar is specified, use it for both axes
+! e.g. reference time has a calendar, forecast time does not list a calendar.
+ 
+use ft_cal_one.nc
+sh dat
+     currently SET data sets:
+    1> ./ft_cal_one.nc  (default)
+ name     title                             I         J         K         L         M         N
+ TIMEVAR  GRIB forecast or observation ti  ...       ...       ...       1:2       ...       1:3
+ 
+ 
+! Intentional error: two time axes with different calendars
+set mode ignore
+use ft_cal_mixed.nc
+ 
+can mode ignore
+ 
+can data/all
+ 
+GO bn_reset
+cancel mode verify
+GO err696_centerlab_restore
+! err696_centerlab_restore
+! Ticket 2331.
+! When a plot is made with
+!   shade/SET/key=centerlab; ppl shade
+! Then the nextsubsequent plot still had the centered key labeling.
+ 
+ 
+use coads_climatology
+set view left
+shade/SET/l=1/key=centerlab sst
+ppl shade
+ 
+set view right
+shade/l=1 sst
+ 
+! ...although the next one does restore the default.
+shade/l=1 sst
+ 
+! Horizontal plots with the same behavior.
+cancel view
+set view upper
+shade/SET/l=1/key=centerlab,horiz sst
+ppl shade
+ 
+set view lower
+shade/l=1/key=horiz sst
+ 
+! FILL plots
+cancel view
+set view left
+fill/SET/l=1/key=centerlab sst
+ppl shade
+ 
+! This plot still had the labels centered
+set view right
+fill/l=1 sst
+ 
+! Ribbon plots
+cancel view
+set view left; plot/ribbon/vs/line/thick/key=cent/SET {1,2,3,4}, {1,2,3,4}, {1,2,3,4}
+ppl ribbon
+set view right; plot/ribbon/vs/line/thick  {1,2,3,4}, {1,2,3,4}, {1,2,3,4}
+ 
+! Polygon plots
+cancel view
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+ 
+let ypts = x/10
+let xpts = cos(x/10)
+ 
+set view upper
+polygon/trans/i=1:20/nolab/key=horiz,center/SET xpts+xsqr, ypts+ysqr, x*x/10
+ppl polygon
+set view lower
+polygon/trans/i=1:20/nolab/key=horiz  xpts+xsqr, ypts+ysqr, x*x/10
+ 
+GO bn_reset
+cancel mode verify
+GO err696_time_overlay
+! err696_time_overlay
+! bug 2334, first plot/over takes too long and the line is incorrect.
+ 
+def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=noleap tax_nlp
+def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=julian tax_jul
+sp date
+Wed Jun 15 12:07:20 PDT 2016
+set view upper
+plot t[gt=tax_nlp]
+plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
+sp date
+Wed Jun 15 12:07:20 PDT 2016
+ 
+sp date
+Wed Jun 15 12:07:20 PDT 2016
+set view lower
+plot t[gt=tax_jul]
+plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
+sp date
+Wed Jun 15 12:07:20 PDT 2016
+ 
+GO bn_reset
+cancel mode verify
+GO err696_save_noupcase
+! err696_save_noupcase
+! Ticket 2336: When UPCASE canceled an extra upcase axis
+!  was written to a file - only when user-defined axis.
+!
+! Note as part of this fix, if MODE UPCASE is canceled,
+! then it also works as if SAVE/KEEP_AXISNAMES was given.
+! If keeping the original names then also don't write the
+! Ferret-added additions, e.g. TIME1 if there was already
+! a time axis; or a subset addition.
+ 
+ 
+! Tell Ferret to write everything in the original case
+cancel mode upcase
+ 
+! Define some axes and variables
+define axis/t=1-jan-2001:31-dec-2001:1/unit=days tday
+define axis/x=10:150:10/units=degrees_east xax
+ 
+let tt = t[gt=tday]
+let var  = 0*tt + x[gx=xax]
+ 
+save/clobber/file=myfile.nc tt, var
+ 
+! An extra TDAY axis was written out
+sp ncdump -h myfile.nc
+netcdf myfile {
+dimensions:
+	tday = UNLIMITED ; // (365 currently)
+	xax = 15 ;
+variables:
+	double tday(tday) ;
+		tday:units = "days since 1901-01-15 00:00:00" ;
+		tday:axis = "T" ;
+		tday:time_origin = "15-JAN-1901" ;
+		tday:standard_name = "time" ;
+	double tt(tday) ;
+		tt:missing_value = -1.e+34 ;
+		tt:_FillValue = -1.e+34 ;
+		tt:long_name = "T[GT=TDAY]" ;
+	double xax(xax) ;
+		xax:point_spacing = "even" ;
+		xax:axis = "X" ;
+		xax:modulo = 360. ;
+		xax:units = "degrees_east" ;
+		xax:standard_name = "longitude" ;
+	double var(tday, xax) ;
+		var:missing_value = -1.e+34 ;
+		var:_FillValue = -1.e+34 ;
+		var:long_name = "0*TT + X[GX=XAX]" ;
+
+// global attributes:
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+set mode/last upcase
+ 
+GO bn_reset
+cancel mode verify
+GO err696_argument_blanks
+! err696_argument_blanks.jnl
+! Ticket 2343: quoted argument with a blank at the end.
+ 
+ 
+! argument with a blank at the end
+go err696_argument_blanks_sub "hello "
+! for bug2343
+ 
+say ($1)there($2%.%)
+ !-> MESSAGE/CONTINUE hello there.
+hello there.
+ 
+! Preserve multiple blanks at the end
+go err696_argument_blanks_sub "hello     "
+! for bug2343
+ 
+say ($1)there($2%.%)
+ !-> MESSAGE/CONTINUE hello     there.
+hello     there.
+ 
+! 2 arguments; one with a blank at the end, next with a blank at the start.
+! Note the blanks at the start of Arg 1 are not preserved.  The command is
+! translated to  MESSAGE/CONTINUE   Hi Hi there my friend
+! and the blanks after MESSAGE/CONTINUE are just treated as a delimiter.
+ 
+go err696_argument_blanks_sub "  Hi Hi "  " my friend"
+! for bug2343
+ 
+say ($1)there($2%.%)
+ !-> MESSAGE/CONTINUE   Hi Hi there my friend
+Hi Hi there my friend
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_annotate_numeric
+! err696_annotate_numeric
+! 1/7/2016
+! ticket 2350: a purely numeric string
+! didn't appear on the plot.
+ 
+use coads_climatology
+shade/l=1/nokey/pal=white sst
+ 
+! text including non-numeric has worked fine
+annotate/user/xpos=180/ypos=30 "30 with text"
+ 
+! numeric only, with and witbhout quotes
+ 
+annotate/user/xpos=180/ypos=20/halign=-1 "20"
+annotate/user/xpos=180/ypos=10/halign=-1 10
+ 
+! tests with /NOUSER
+annotate/nouser/xpos=1/ypos=2.5 40
+ 
+! strings or purely numeric, without quotes works ok
+annotate/nouser/xpos=1/ypos=2.0 1.3+7.89
+annotate/nouser/xpos=1/ypos=1.5 `1.3+7.89-154,prec=6`
+ !-> annotate/nouser/xpos=1/ypos=1.5 -144.81
+ 
+! commas, just write the whole thing
+annotate/nouser/xpos=1/ypos=1.0 "40,30,20"
+ 
+annotate/nouser/xpos=1/ypos=0.5 1,2,3,4,5
+ 
+GO bn_reset
+cancel mode verify
+GO err696_e_component_mem_crptn
+! canceling of an E aggregation dataset is leaving
+! corrupted variables in memory as seen by the variable names "%%"
+ 
+use ens1, ens2, ens3, ens4
+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
+    5> fourfiles  (default)  Ensemble aggregation
+ 
+list/i=3 sst[T=@ave]
+             VARIABLE : SST_IN (Deg C)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
+             LONGITUDE: 105W
+             TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
+             13N       15N       17N       19N       21N       23N       25N       27N       29N     
+               1         2         3         4         5         6         7         8         9
+ 1   / 1:   28.5129   28.4412   27.8921   27.4565   26.7258   25.5612      ....      ....      ....
+ 2   / 2:   85.5386   85.3235   83.6763   82.3696   80.1774   76.6835      ....      ....      ....
+ 3   / 3:   57.0257   56.8823   55.7842   54.9131   53.4516   51.1223      ....      ....      ....
+ 4   / 4:  114.0514  113.7646  111.5685  109.8262  106.9033  102.2446      ....      ....      ....
+ 
+show mem/all
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+all data in memory:
+ SST[D=fourfiles]                  YE    mr:188  blk1:1  nblk:1
+    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+                                                              AVE
+ SST[D=fourfiles]                  YTE   mr:187  blk1:2  nblk:1
+    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ 
+cancel data fourfiles
+show mem/all
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+all data in memory:
+ 
+exit
+ 
+GO bn_reset
+cancel mode verify
+GO err696_mem_err_report
+! err696_mem_err_report.jnl
+! 1/21/2016 *acm*
+! Ticket 2354: The error message shows the wrong number for memory needed.
+!
+! Try to load some data larger than the default amount of memory
+ 
+let memsize = ($ferret_memory)
+ !-> DEFINE VARIABLE memsize = 25.6
+set mem/siz=2
+ 
+ 
+def axis/x=1:360:1 xaxis
+def axis/y=1:180:1 yaxis
+def axis/z=1:20:1 zaxis
+define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
+ 
+let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
+sh grid bigvar
+    GRID (G092)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                  360 r   1                    360                 full
+ YAXIS     Y                  180 r   1                    180                 full
+ ZAXIS     Z                   20 r   1                    20                  full
+ LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
+ normal    E
+ normal    F
+ 
+ 
+set mode ignore
+load/l=1:5 bigvar
+ 
+! Previously the number Mwords shown was too low
+show sym fer_last_error
+FER_LAST_ERROR = "**ERROR: request exceeds memory setting: 13 Mwords were requested. "
+cancel mode ignore
+ 
+! Get the number Ferret says it needs
+let ms1 = `strrindex("($fer_last_error)", ":")`
+ !-> DEFINE VARIABLE ms1 = 40
+let ms2 = `strindex("($fer_last_error)", "Mword")`
+ !-> DEFINE VARIABLE ms2 = 45
+let siz = substring("($fer_last_error)", `ms1+1`, `ms2-ms1-1`)
+ !-> DEFINE VARIABLE siz = substring("**ERROR: request exceeds memory setting: 13 Mwords were requested. ", 41, 4)
+ 
+! Increase memory accordingly
+ 
+set mem/siz=`siz`
+ !-> set mem/siz= 13
+load/l=1:5 bigvar
+ 
+! restore default
+set mem/siz=`memsize`
+ !-> set mem/siz=25.6
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_multiple_slashes
+! err696_multiple_slashes.jnl
+! 1/25/2016 *acm*
+!
+! For ticket 2356
+! Change parsing to allow multiple slashes in a row.
+! simplifies DEFINE SYMBOL QUALIFIERS= kinds of definitions
+ 
+def sym qual /x=1:2
+ 
+set reg/($qual)
+ !-> set reg//x=1:2
+show region
+default region:
+        X=1:2
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+cancel region
+ 
+ 
+! Several qualifiers on a command
+set reg//x=1:2///y=4:7
+show region
+default region:
+        X=1:2
+        Y=4:7
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+cancel region
+ 
+! Qualifiers with a command argument
+use coads_climatology
+def sym plotqual = /pal=grayscale/line//key=cont
+def sym regqual = /x=300:360///y=-20:20/L=3
+ 
+fill/($regqual)($plotqual) sst
+ !-> CONTOUR/FILL//x=300:360///y=-20:20/L=3/pal=grayscale/line//key=cont sst
+ 
+! command lines with urls unchanged
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+   set data///format=cdf http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+   let//d=coads_sst myvar = 1
+   sh dat
+     currently SET data sets:
+    1> ./coads_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+    2> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      Sea Surface Temperature          1:180     1:90      ...       1:1680    ...       ...
+ ------------------------------
+ MYVAR[D=coads_sst] = 1
+ 
+   cancel data/all
+ENDIF
+ 
+! Other syntax examples taken from bn_syntax but with extra slashes
+ 
+! Repeat loop
+cancel region
+cancel data/all
+show region;repeat//l=1:2 (show data;sh reg);can reg;show reg
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+!-> REPEAT: L=1
+     currently SET data sets:
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        L=1
+        E/M is unspecified
+        F/N is unspecified
+!-> REPEAT: L=2
+     currently SET data sets:
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        L=2
+        E/M is unspecified
+        F/N is unspecified
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+ 
+! continuation lines
+define axis \ ! comment on the command
+//x=1:10:1 \  ! comment on the qualifier
+xax\          ! comment on the argument
+              ! this line is significant -- completes the command
+show axis xax; cancel axis xax  ! clean up
+ name       axis              # pts   start                end
+ XAX       X                   10 r   1                    10
+   Axis span (to cell edges) = 10
+ 
+! Allow extra slashes at the end of the command line
+set reg/x=1:2/; sho reg
+default region:
+        X=1:2
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+set reg/x=1:4//; sho reg
+default region:
+        X=1:4
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+ 
+can reg
+repeat/l=1:2 (set reg/x=1:4//)
+!-> REPEAT: L=1
+!-> REPEAT: L=2
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_2d_time_overlay
+! err696_2d_time_overlay.jnl
+! ticket 2360: 2-D time overlay plots have never worked.
+ 
+! two different time axes
+ 
+def ax/edge/t=1-jan-1979:1-jan-2016:1/unit=year/t0=1-jan-1979 tax1
+def ax/edge/t=1-jan-1988:1-jan-2010:1/unit=year/t0=1-jan-1988 tax2
+let t1 = t[gt=tax1]
+let t2 = t[gt=tax2]
+let yr1 = tax_year(t1,t1)
+let yr2 = tax_year(t2,t2)
+let f1 = yr1 + 0*z[gz=1:5:1]
+let f2 = yr2 + 0*z[gz=2:3:1]
+ 
+can view
+ 
+! a 1-D overlay works correctly
+set view ul
+plot/step=con yr1
+plot/step=con/ov yr2
+ 
+set view ll
+ 
+! 2-D overlay was mis-located
+shade/lev=12 f1
+shade/ov/pal=grayscale/lev f2
+ 
+ppl shaset reset
+set view ur
+ 
+! Check a vertical time axis
+let fx1 = yr1 + 0*x[gx=1:5:1]
+let fx2 = yr2 + 0*x[gx=2:3:1]
+shade/lev=12/title="X-T plot, vertical time axis" fx1
+shade/ov/pal=grayscale/lev fx2
+ 
+ 
+! Different time units
+set view lr
+def ax/edge/t=1-jan-1988:04-feb-2010:60/unit=day/t0=1-jan-1988 tax2
+ 
+shade/lev=12/title="Underlay units year, Overlay units days" f1
+shade/ov/pal=grayscale/lev f2
+ 
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_singlevec_over
+! err696_singlevec_over.jnl
+! Ticket 2365: overlay a single vector. If
+! /nolab is added it disappears.
+ 
+use gtbc011
+vector/k=1/l=1   u,v
+let xa = 200
+let ya = 10
+let ya=10
+define axis/unit=degrees_east/x/from_data xax=xa
+define axis/unit=degrees_north/y/from_data yax=ya
+define grid/x=xax/y=yax xyg
+let u1 = 10 + 0*(x[gx=xyg]+y[gy=xyg] )
+let v1 = 10 + 0*(x[gx=xyg]+y[gy=xyg] )
+! Now I can plot the vector
+vec/over/len=10 u1,v1
+ 
+! PPL_XSKIP is 1, the single vector
+show sym ppl_vec*skip
+PPL_VEC_XSKIP = "1"
+PPL_VEC_YSKIP = "1"
+ 
+! Try it with /nolab added
+vector/k=1/l=1   u,v
+ vec/over/len=10/nolab u1,v1
+ 
+! PPL_XSKIP should still be 1
+! (with the bug, it was 4 from the vector underlay plot)
+show sym ppl_vec*skip
+PPL_VEC_XSKIP = "1"
+PPL_VEC_YSKIP = "1"
+ 
+! As an aside, now return PPL_VECLEN for VECTOR/NOLABEL plots.
+! previously this wasnt done.
+ 
+use gtbc011
+vector/k=3/l=1/nolab  u,v
+show symbol ppl_veclen
+PPL_VECLEN = "  27.2"
+ 
+GO bn_reset
+cancel mode verify
+GO err696_return_type
+! err696_return_type
+! See ticket #2367
+! incorrect return type when a user var
+! uses an expression involving alternative string versions of
+! a numeric exernal function
+ 
+! this works, explicitly calling xcat_str
+let c = xcat_str({"e","f"},{"g","h"})
+let d = c
+list d
+             VARIABLE : C
+             SUBSET   : 4 points (X)
+ 1   / 1:"e"
+ 2   / 2:"f"
+ 3   / 3:"g"
+ 4   / 4:"h"
+ 
+! returned pointers not strings
+let a = xcat({"a","b"},{"c","d"})
+let b = a
+list b
+             VARIABLE : A
+             SUBSET   : 4 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"c"
+ 4   / 4:"d"
+ 
+! Make more levels of variables, mixing xcat_str and xcat.
+ 
+let p = xcat_str({"1","2"},{"3","4"})
+let q = p
+ 
+let r = xcat({"5","6"},{"7","8"})
+let s = r
+ 
+! previously returned a string/numeric data type mix-up err.
+let allcat = xcat(q,s)
+list allcat
+             VARIABLE : XCAT(Q,S)
+             SUBSET   : 8 points (X)
+ 1   / 1:"1"
+ 2   / 2:"2"
+ 3   / 3:"3"
+ 4   / 4:"4"
+ 5   / 5:"5"
+ 6   / 6:"6"
+ 7   / 7:"7"
+ 8   / 8:"8"
+ 
+GO bn_reset
+cancel mode verify
+GO err696_hovmuller_mod_fill
+! err696_hovmuller_mod_fill.jnl
+! 3/7/2016 ACM
+! Ticket 2374
+! A single color extending across the plot was missing
+ 
+use coads_slice.nc
+fill/lin/t=1-jan-0000:31-dec-0001/hlim=1-jan-0000:1-jan-0001/x=180/lev=8 sst
+ 
+ 
+!GO bn_reset!
+!GO err696_axname_noupcase
+ 
+go bn_reset
+cancel mode verify
+go err696_repeat_escapes.jnl
+! err696_repeat_escapes.jnl
+! Ticket 2376 - parsing error with escaped grave-accent syntax
+ 
+let a = "seq 1 3"
+sp echo \``a`\`
+ !-> sp echo `seq 1 3`
+1 2 3
+ 
+! the escapes were removed on parsing the initial
+! command rather than keeping them until individual
+! commands parsed within the loop
+repeat/i=1:2 (sp echo \``a`\`)
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+ 
+! nested repeats
+repeat/k=1:3 (rep/i=1:2 (sp echo \``a`\`))
+!-> REPEAT: K=1
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: K=2
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: K=3
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_red_keylab.jnl
+! err696_red_keylab.jnl
+! Ticket 2375: outline and labels of color key were
+! drawn in red on an overlay.
+ 
+use levitus_climatology
+contour/lev=(0) temp
+ 
+! Always label the color key in pen0
+fill/over/nolab/key/lev=v,2min temp
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_poly_over_label
+! err696_poly_over_label
+! Tiket 2396: incorrect label in the lower
+! left on a POLY/OVER with just 2 arguments.
+ 
+use levitus_3d_subset.nc
+let allmissing = 0/0 + temp
+shade/nolabel/j=1 allmissing
+ 
+! Previously this plot had an incorrect label of ALLMISSING
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}
+ppl list labels  ! showed allmissing for lab2 now says cnst
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  3.640E+00  3.340E+00 0.200    0  SYSTEM  @ASNo Valid Data
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 2 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @AScnst
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+shade/nolabel/j=1 allmissing
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}, 2
+ 
+ppl list labels  ! shows cnst for lab2
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  3.640E+00  3.340E+00 0.200    0  SYSTEM  @ASNo Valid Data
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 2 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @AScnst
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+shade/nolabel/j=1 allmissing
+let cvar = 2
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}, cvar
+ppl list labels  ! shows cvar for lab2
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  3.640E+00  3.340E+00 0.200    0  SYSTEM  @ASNo Valid Data
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 2 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASCVAR
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+! color var for 2 rectangles with multiple values
+shade/nolabel/j=1 allmissing
+let cvar = {2,3}
+polygon/ov {120.2,121,121,120.2,,120.2,121,121,120.2},{4000,4000,1000,1000,,800,800,200,200}, cvar
+ppl list labels  ! shows cvar for lab2
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  3.640E+00  3.340E+00 0.200    0  SYSTEM  @ASNo Valid Data
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 2 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASCVAR
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+go bn_reset
+cancel mode verify
+go err696_def_ax_f
+! err696_def_ax_f.jnl
+! See ticket 2380
+! *acm* 4/2016
+ 
+! Defining F axis using /F=LO:HI are ok
+define axis/f=1-jan-1980:3-jan-1980:1/t0=1-jan-1980/unit=days f_ax
+list _f[gf=f_ax]
+             VARIABLE : _F
+                        axis F_AX
+             SUBSET   : 3 points (FORECAST)
+ 01-JAN-1980 00 / 1:  0.000000
+ 02-JAN-1980 00 / 2:  1.000000
+ 03-JAN-1980 00 / 3:  2.000000
+define axis/f=1-jan-1980:3-jan-1980/np=3/t0=1-jan-1980/unit=days f_ax
+list _f[gf=f_ax]
+             VARIABLE : _F
+                        axis F_AX
+             SUBSET   : 3 points (FORECAST)
+ 01-JAN-1980 00 / 1:  0.000000
+ 02-JAN-1980 00 / 2:  1.000000
+ 03-JAN-1980 00 / 3:  2.000000
+ 
+! But just /F  with a /T0 was putting the axis in the T direction
+! Previously listing _F resulted in an error
+define axis/f/t0=1-jan-1980/unit=days f_ax = {1,2,3}
+list _f[gf=f_ax]
+             VARIABLE : _F
+                        axis F_AX
+             SUBSET   : 3 points (FORECAST)
+ 02-JAN-1980 00 / 1:  1.000000
+ 03-JAN-1980 00 / 2:  2.000000
+ 04-JAN-1980 00 / 3:  3.000000
+ 
+! This came from code allowing the DEFINE to leave off the /F or /T
+! If there's a T0, its an F axis. Still allow this; it becomes a T axis.
+define axis/t0=1-jan-1980/unit=days aax = {1,2,3}
+list _t[gt=aax]
+             VARIABLE : T
+                        axis AAX
+             SUBSET   : 3 points (TIME)
+ 02-JAN-1980 00 / 1:  1.000000
+ 03-JAN-1980 00 / 2:  2.000000
+ 04-JAN-1980 00 / 3:  3.000000
+ 
+go bn_reset
+cancel mode verify
+go err696_mode_cal_f
+! err696_mode_cal_f.jnl
+! ticket 2399 MODE CALENDAR and F calendar axes
+! The calendar setting should apply to T and F axes
+ 
+show mode calendar
+      MODE            STATE        ARGUMENT
+      CALENDAR         SET         minutes
+ 
+def ax/edges/t=1-jan-2016:1-mar-2016:1/unit=day/t0=1-jan-2016 t_axis
+def ax/edges/f=1-jan-2016:1-mar-2016:1/unit=day/t0=1-jan-2016 f_axis
+let a = _t[gt=t_axis] * {1,2,3}
+let b = _f[gf=f_axis] * {1,2,3}
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "TIME : 01-JAN-2016 12:00"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "FORECAST : 01-JAN-2016 12:00"
+ 
+set mode calendar:days
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "TIME : 01-JAN-2016"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "FORECAST : 01-JAN-2016"
+ 
+set mode/last calendar
+cancel mode calendar
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "T (DAY) : 0.5"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "F (DAY) : 0.5"
+ 
+set mode/last calendar
+show mode calendar
+      MODE            STATE        ARGUMENT
+      CALENDAR         SET         minutes
+ 
+! If they are not calendar axes, it's all fine, just not
+! labeled with dates
+ 
+def ax/edges/t=1:40:1/unit=day t_axis
+def ax/edges/f=1:40:1/unit=day f_axis
+ 
+let a = _t[gt=t_axis] * {1,2,3}
+let b = _f[gf=f_axis] * {1,2,3}
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "T (DAY) : 1.5"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "F (DAY) : 1.5"
+ 
+go bn_reset
+cancel mode verify
+go err696_def_ax_edges
+! err696_def_ax_edges
+! See ticket 2400
+! Incorrect coordinates when using /EDGES
+! Also incorrectly marked axes as irregular
+ 
+let edges = x[gx=0:360:20]
+ 
+! Previuosly these axes were marked as irregular, but with correct coordinates
+def ax/edge/x xax = edges[i=1:17]; sh axis xax
+ name       axis              # pts   start                end
+ XAX       X                   16 r   10                   310
+   Axis span (to cell edges) = 320
+def ax/edge/x xax = x[gx=0:360:20]; sh axis xax
+ name       axis              # pts   start                end
+ XAX       X                   18 r   10                   350
+   Axis span (to cell edges) = 360
+ 
+! This axis incorrectly showed coordinates starting at x=20.
+! It was found to be regular but start pt incorrect
+def ax/edge/x xax = x[gx=20:320:20]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                   15 r   30                   310
+   Axis span (to cell edges) = 300
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 15 points (X)
+ 30    /  1:   30.0000
+ 50    /  2:   50.0000
+ 70    /  3:   70.0000
+ 90    /  4:   90.0000
+ 110   /  5:  110.0000
+ 130   /  6:  130.0000
+ 150   /  7:  150.0000
+ 170   /  8:  170.0000
+ 190   /  9:  190.0000
+ 210   / 10:  210.0000
+ 230   / 11:  230.0000
+ 250   / 12:  250.0000
+ 270   / 13:  270.0000
+ 290   / 14:  290.0000
+ 310   / 15:  310.0000
+ 
+! This was previously irregular, with correct coordinates
+def ax/edge/x xax = x[gx=20:320:20]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                   15 r   30                   310
+   Axis span (to cell edges) = 300
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 15 points (X)
+ 30    /  1:   30.0000
+ 50    /  2:   50.0000
+ 70    /  3:   70.0000
+ 90    /  4:   90.0000
+ 110   /  5:  110.0000
+ 130   /  6:  130.0000
+ 150   /  7:  150.0000
+ 170   /  8:  170.0000
+ 190   /  9:  190.0000
+ 210   / 10:  210.0000
+ 230   / 11:  230.0000
+ 250   / 12:  250.0000
+ 270   / 13:  270.0000
+ 290   / 14:  290.0000
+ 310   / 15:  310.0000
+ 
+! Actually irregular edge locations
+let edges = {0,10,20,30,60,90,150,200,280,360}
+def ax/edge/x xax = edges; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                    9 i   5                    320
+   Axis span (to cell edges) = 360
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 9 points (X)
+ 5     / 1:    5.0000
+ 15    / 2:   15.0000
+ 25    / 3:   25.0000
+ 45    / 4:   45.0000
+ 75    / 5:   75.0000
+ 120   / 6:  120.0000
+ 175   / 7:  175.0000
+ 240   / 8:  240.0000
+ 320   / 9:  320.0000
+ 
+def ax/edge/x xax = edges[i=1:8]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                    7 i   5                    175
+   Axis span (to cell edges) = 200
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 7 points (X)
+ 5     / 1:    5.0000
+ 15    / 2:   15.0000
+ 25    / 3:   25.0000
+ 45    / 4:   45.0000
+ 75    / 5:   75.0000
+ 120   / 6:  120.0000
+ 175   / 7:  175.0000
+ 
+! This one is regular
+def ax/edge/x xax = edges[i=1:4]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                    3 r   5                    25
+   Axis span (to cell edges) = 30
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 3 points (X)
+ 5    / 1:   5.00000
+ 15   / 2:  15.00000
+ 25   / 3:  25.00000
+ 
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_write_no_dim
+! err696_write_no_dim.jnl
+! ticket 2241: save a subset of a variable whose grid
+! contains dimensions that are not coordinate variables
+ 
+use nodim
+sh dat
+     currently SET data sets:
+    1> ./nodim.nc  (default)
+ name     title                             I         J         K         L         M         N
+ EXPOCODE expocode                         ...       ...       ...       ...       1:1       ...
+ NUM_OBS  Number of observations           ...       ...       ...       ...       1:1       ...
+ TEMP     sea surface temperature          1:51      ...       ...       ...       ...       ...
+ 
+ 
+! previously this gave an error
+save/clobber/file=a.nc/i=30:35  expocode, num_obs, temp
+ 
+! file has a coordinate variable with the subset in the OBS dimension
+sp ncdump -c a.nc
+netcdf a {
+dimensions:
+	TRAJECTORY = 1 ;
+	string_length = 64 ;
+	OBS30_35 = 6 ;
+variables:
+	char EXPOCODE(TRAJECTORY, string_length) ;
+		EXPOCODE:long_name = "expocode" ;
+		EXPOCODE:history = "From nodim" ;
+	int NUM_OBS(TRAJECTORY) ;
+		NUM_OBS:missing_value = -99 ;
+		NUM_OBS:_FillValue = -99 ;
+		NUM_OBS:long_name = "Number of observations" ;
+		NUM_OBS:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
+	double OBS30_35(OBS30_35) ;
+		OBS30_35:point_spacing = "even" ;
+		OBS30_35:axis = "X" ;
+	double TEMP(OBS30_35) ;
+		TEMP:missing_value = -1.e+34 ;
+		TEMP:_FillValue = -1.e+34 ;
+		TEMP:units = "degrees C" ;
+		TEMP:long_name = "sea surface temperature" ;
+		TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
+
+// global attributes:
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+data:
+
+ OBS30_35 = 30, 31, 32, 33, 34, 35 ;
+}
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_mod_sub_fln
+! err696_mod_sub_fln.jnl
+! Ticket 2366, @FLN on a modulo subspan axis
+! smears results across what should not be filled in.
+ 
+def ax/x=0:180:10/unit=degree_e xax
+let xx = x[gx=xax]
+ 
+let b = IF xx GE 50 OR xx EQ 20 THEN xx
+save/clob/file=a.nc b
+can var/all
+ 
+use a
+ 
+! Do not get data from across the modulo void point at 90W
+list/x=-180:720 b, b[x=@fln]
+             DATA SET: ./a.nc
+             LONGITUDE: 180E(-180) to 0E(720)
+ Column  1: B is IF XX GE 50 OR XX EQ 20 THEN XX
+ Column  2: B[X=@FLN:1] is IF XX GE 50 OR XX EQ 20 THEN XX (linear-filled by 1 pts on X)
+                     B      B
+180E    / -1:  180.0000  180.0000
+90W     /  0:      ....      ....
+0E      /  1:      ....      ....
+10E     /  2:      ....      ....
+20E     /  3:   20.0000   20.0000
+30E     /  4:      ....   30.0000
+40E     /  5:      ....   40.0000
+50E     /  6:   50.0000   50.0000
+60E     /  7:   60.0000   60.0000
+70E     /  8:   70.0000   70.0000
+80E     /  9:   80.0000   80.0000
+90E     / 10:   90.0000   90.0000
+100E    / 11:  100.0000  100.0000
+110E    / 12:  110.0000  110.0000
+120E    / 13:  120.0000  120.0000
+130E    / 14:  130.0000  130.0000
+140E    / 15:  140.0000  140.0000
+150E    / 16:  150.0000  150.0000
+160E    / 17:  160.0000  160.0000
+170E    / 18:  170.0000  170.0000
+180E    / 19:  180.0000  180.0000
+90W     / 20:      ....      ....
+0E(360) / 21:      ....      ....
+10E     / 22:      ....      ....
+20E     / 23:   20.0000   20.0000
+30E     / 24:      ....   30.0000
+40E     / 25:      ....   40.0000
+50E     / 26:   50.0000   50.0000
+60E     / 27:   60.0000   60.0000
+70E     / 28:   70.0000   70.0000
+80E     / 29:   80.0000   80.0000
+90E     / 30:   90.0000   90.0000
+100E    / 31:  100.0000  100.0000
+110E    / 32:  110.0000  110.0000
+120E    / 33:  120.0000  120.0000
+130E    / 34:  130.0000  130.0000
+140E    / 35:  140.0000  140.0000
+150E    / 36:  150.0000  150.0000
+160E    / 37:  160.0000  160.0000
+170E    / 38:  170.0000  170.0000
+180E    / 39:  180.0000  180.0000
+90W     / 40:      ....      ....
+0E(720) / 41:      ....      ....
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_subspan_transforms
+! err696_subspan_transforms.jnl
+! See ticket 2364.  Results previously
+! put results at the modulo void point.
+ 
+def ax/x=0:180:20/unit=degrees_e xaxis
+let a = x[gx=xaxis]
+save/clob/file=a.nc a
+can var a; can ax xaxis; use a.nc
+ list/x=0:720 a, a[x=@ddc]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@DDC] is X[GX=XAXIS] (centered derivative on X)
+                     A        A
+0E      /  1:    0.0000          ....
+20E     /  2:   20.0000  8.993218E-06
+40E     /  3:   40.0000  8.993218E-06
+60E     /  4:   60.0000  8.993218E-06
+80E     /  5:   80.0000  8.993218E-06
+100E    /  6:  100.0000  8.993218E-06
+120E    /  7:  120.0000  8.993218E-06
+140E    /  8:  140.0000  8.993218E-06
+160E    /  9:  160.0000  8.993218E-06
+180E    / 10:  180.0000          ....
+90W     / 11:      ....          ....
+0E(360) / 12:    0.0000          ....
+20E     / 13:   20.0000  8.993218E-06
+40E     / 14:   40.0000  8.993218E-06
+60E     / 15:   60.0000  8.993218E-06
+80E     / 16:   80.0000  8.993218E-06
+100E    / 17:  100.0000  8.993218E-06
+120E    / 18:  120.0000  8.993218E-06
+140E    / 19:  140.0000  8.993218E-06
+160E    / 20:  160.0000  8.993218E-06
+180E    / 21:  180.0000          ....
+90W     / 22:      ....          ....
+0E(720) / 23:    0.0000          ....
+ list/x=0:720 a, a[x=@ddf]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@DDF] is X[GX=XAXIS] (forward derivative on X)
+                     A        A
+0E      /  1:    0.0000  8.993218E-06
+20E     /  2:   20.0000  8.993218E-06
+40E     /  3:   40.0000  8.993218E-06
+60E     /  4:   60.0000  8.993218E-06
+80E     /  5:   80.0000  8.993218E-06
+100E    /  6:  100.0000  8.993218E-06
+120E    /  7:  120.0000  8.993218E-06
+140E    /  8:  140.0000  8.993218E-06
+160E    /  9:  160.0000  8.993218E-06
+180E    / 10:  180.0000          ....
+90W     / 11:      ....          ....
+0E(360) / 12:    0.0000  8.993218E-06
+20E     / 13:   20.0000  8.993218E-06
+40E     / 14:   40.0000  8.993218E-06
+60E     / 15:   60.0000  8.993218E-06
+80E     / 16:   80.0000  8.993218E-06
+100E    / 17:  100.0000  8.993218E-06
+120E    / 18:  120.0000  8.993218E-06
+140E    / 19:  140.0000  8.993218E-06
+160E    / 20:  160.0000  8.993218E-06
+180E    / 21:  180.0000          ....
+90W     / 22:      ....          ....
+0E(720) / 23:    0.0000  8.993218E-06
+ list/x=0:720 a, a[x=@ddb]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@DDB] is X[GX=XAXIS] (backwards derivative on X)
+                     A        A
+0E      /  1:    0.0000          ....
+20E     /  2:   20.0000  8.993218E-06
+40E     /  3:   40.0000  8.993218E-06
+60E     /  4:   60.0000  8.993218E-06
+80E     /  5:   80.0000  8.993218E-06
+100E    /  6:  100.0000  8.993218E-06
+120E    /  7:  120.0000  8.993218E-06
+140E    /  8:  140.0000  8.993218E-06
+160E    /  9:  160.0000  8.993218E-06
+180E    / 10:  180.0000  8.993218E-06
+90W     / 11:      ....          ....
+0E(360) / 12:    0.0000          ....
+20E     / 13:   20.0000  8.993218E-06
+40E     / 14:   40.0000  8.993218E-06
+60E     / 15:   60.0000  8.993218E-06
+80E     / 16:   80.0000  8.993218E-06
+100E    / 17:  100.0000  8.993218E-06
+120E    / 18:  120.0000  8.993218E-06
+140E    / 19:  140.0000  8.993218E-06
+160E    / 20:  160.0000  8.993218E-06
+180E    / 21:  180.0000  8.993218E-06
+90W     / 22:      ....          ....
+0E(720) / 23:    0.0000          ....
+ list/x=0:720 a, a[x=@shf]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SHF:1] is X[GX=XAXIS] (shifted by 1 pts on X)
+                     A      A
+0E      /  1:    0.0000   20.0000
+20E     /  2:   20.0000   40.0000
+40E     /  3:   40.0000   60.0000
+60E     /  4:   60.0000   80.0000
+80E     /  5:   80.0000  100.0000
+100E    /  6:  100.0000  120.0000
+120E    /  7:  120.0000  140.0000
+140E    /  8:  140.0000  160.0000
+160E    /  9:  160.0000  180.0000
+180E    / 10:  180.0000      ....
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000   20.0000
+20E     / 13:   20.0000   40.0000
+40E     / 14:   40.0000   60.0000
+60E     / 15:   60.0000   80.0000
+80E     / 16:   80.0000  100.0000
+100E    / 17:  100.0000  120.0000
+120E    / 18:  120.0000  140.0000
+140E    / 19:  140.0000  160.0000
+160E    / 20:  160.0000  180.0000
+180E    / 21:  180.0000      ....
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000   20.0000
+ list/x=0:720 a, a[x=@sbx]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SBX:3] is X[GX=XAXIS] (box smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000      ....
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   40.0000
+60E     /  4:   60.0000   60.0000
+80E     /  5:   80.0000   80.0000
+100E    /  6:  100.0000  100.0000
+120E    /  7:  120.0000  120.0000
+140E    /  8:  140.0000  140.0000
+160E    /  9:  160.0000  160.0000
+180E    / 10:  180.0000      ....
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000      ....
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   40.0000
+60E     / 15:   60.0000   60.0000
+80E     / 16:   80.0000   80.0000
+100E    / 17:  100.0000  100.0000
+120E    / 18:  120.0000  120.0000
+140E    / 19:  140.0000  140.0000
+160E    / 20:  160.0000  160.0000
+180E    / 21:  180.0000      ....
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000      ....
+ list/x=0:720 a, a[x=@sbn]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SBN:3] is X[GX=XAXIS] (binomial smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000      ....
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   40.0000
+60E     /  4:   60.0000   60.0000
+80E     /  5:   80.0000   80.0000
+100E    /  6:  100.0000  100.0000
+120E    /  7:  120.0000  120.0000
+140E    /  8:  140.0000  140.0000
+160E    /  9:  160.0000  160.0000
+180E    / 10:  180.0000      ....
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000      ....
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   40.0000
+60E     / 15:   60.0000   60.0000
+80E     / 16:   80.0000   80.0000
+100E    / 17:  100.0000  100.0000
+120E    / 18:  120.0000  120.0000
+140E    / 19:  140.0000  140.0000
+160E    / 20:  160.0000  160.0000
+180E    / 21:  180.0000      ....
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000      ....
+ list/x=0:720 a, a[x=@swl]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SWL:3] is X[GX=XAXIS] (Welch smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000      ....
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   40.0000
+60E     /  4:   60.0000   60.0000
+80E     /  5:   80.0000   80.0000
+100E    /  6:  100.0000  100.0000
+120E    /  7:  120.0000  120.0000
+140E    /  8:  140.0000  140.0000
+160E    /  9:  160.0000  160.0000
+180E    / 10:  180.0000      ....
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000      ....
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   40.0000
+60E     / 15:   60.0000   60.0000
+80E     / 16:   80.0000   80.0000
+100E    / 17:  100.0000  100.0000
+120E    / 18:  120.0000  120.0000
+140E    / 19:  140.0000  140.0000
+160E    / 20:  160.0000  160.0000
+180E    / 21:  180.0000      ....
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000      ....
+ list/x=0:720 a, a[x=@shn]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SHN:3] is X[GX=XAXIS] (Hanning smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000      ....
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   40.0000
+60E     /  4:   60.0000   60.0000
+80E     /  5:   80.0000   80.0000
+100E    /  6:  100.0000  100.0000
+120E    /  7:  120.0000  120.0000
+140E    /  8:  140.0000  140.0000
+160E    /  9:  160.0000  160.0000
+180E    / 10:  180.0000      ....
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000      ....
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   40.0000
+60E     / 15:   60.0000   60.0000
+80E     / 16:   80.0000   80.0000
+100E    / 17:  100.0000  100.0000
+120E    / 18:  120.0000  120.0000
+140E    / 19:  140.0000  140.0000
+160E    / 20:  160.0000  160.0000
+180E    / 21:  180.0000      ....
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000      ....
+ list/x=0:720 a, a[x=@spz]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SPZ:3] is X[GX=XAXIS] (Parzen smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000      ....
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   40.0000
+60E     /  4:   60.0000   60.0000
+80E     /  5:   80.0000   80.0000
+100E    /  6:  100.0000  100.0000
+120E    /  7:  120.0000  120.0000
+140E    /  8:  140.0000  140.0000
+160E    /  9:  160.0000  160.0000
+180E    / 10:  180.0000      ....
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000      ....
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   40.0000
+60E     / 15:   60.0000   60.0000
+80E     / 16:   80.0000   80.0000
+100E    / 17:  100.0000  100.0000
+120E    / 18:  120.0000  120.0000
+140E    / 19:  140.0000  140.0000
+160E    / 20:  160.0000  160.0000
+180E    / 21:  180.0000      ....
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000      ....
+ list/x=0:720 a, a[x=@med]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@MED:3] is X[GX=XAXIS] (median smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000   20.0000
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   40.0000
+60E     /  4:   60.0000   60.0000
+80E     /  5:   80.0000   80.0000
+100E    /  6:  100.0000  100.0000
+120E    /  7:  120.0000  120.0000
+140E    /  8:  140.0000  140.0000
+160E    /  9:  160.0000  160.0000
+180E    / 10:  180.0000  180.0000
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000   20.0000
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   40.0000
+60E     / 15:   60.0000   60.0000
+80E     / 16:   80.0000   80.0000
+100E    / 17:  100.0000  100.0000
+120E    / 18:  120.0000  120.0000
+140E    / 19:  140.0000  140.0000
+160E    / 20:  160.0000  160.0000
+180E    / 21:  180.0000  180.0000
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000   20.0000
+ list/x=0:720 a, a[x=@smx]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SMX:3] is X[GX=XAXIS] (maximum smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000   20.0000
+20E     /  2:   20.0000   40.0000
+40E     /  3:   40.0000   60.0000
+60E     /  4:   60.0000   80.0000
+80E     /  5:   80.0000  100.0000
+100E    /  6:  100.0000  120.0000
+120E    /  7:  120.0000  140.0000
+140E    /  8:  140.0000  160.0000
+160E    /  9:  160.0000  180.0000
+180E    / 10:  180.0000  180.0000
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000   20.0000
+20E     / 13:   20.0000   40.0000
+40E     / 14:   40.0000   60.0000
+60E     / 15:   60.0000   80.0000
+80E     / 16:   80.0000  100.0000
+100E    / 17:  100.0000  120.0000
+120E    / 18:  120.0000  140.0000
+140E    / 19:  140.0000  160.0000
+160E    / 20:  160.0000  180.0000
+180E    / 21:  180.0000  180.0000
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000   20.0000
+ list/x=0:720 a, a[x=@smn]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SMN:3] is X[GX=XAXIS] (minimum smoothed by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000    0.0000
+20E     /  2:   20.0000    0.0000
+40E     /  3:   40.0000   20.0000
+60E     /  4:   60.0000   40.0000
+80E     /  5:   80.0000   60.0000
+100E    /  6:  100.0000   80.0000
+120E    /  7:  120.0000  100.0000
+140E    /  8:  140.0000  120.0000
+160E    /  9:  160.0000  140.0000
+180E    / 10:  180.0000  160.0000
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000    0.0000
+20E     / 13:   20.0000    0.0000
+40E     / 14:   40.0000   20.0000
+60E     / 15:   60.0000   40.0000
+80E     / 16:   80.0000   60.0000
+100E    / 17:  100.0000   80.0000
+120E    / 18:  120.0000  100.0000
+140E    / 19:  140.0000  120.0000
+160E    / 20:  160.0000  140.0000
+180E    / 21:  180.0000  160.0000
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000    0.0000
+ list/x=0:720 a, a[x=@wgt]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@WGT] is X[GX=XAXIS] (weights for avg,int on X)
+                     A      A
+0E      /  1:    0.0000  2223898.
+20E     /  2:   20.0000  2223898.
+40E     /  3:   40.0000  2223898.
+60E     /  4:   60.0000  2223898.
+80E     /  5:   80.0000  2223898.
+100E    /  6:  100.0000  2223898.
+120E    /  7:  120.0000  2223898.
+140E    /  8:  140.0000  2223898.
+160E    /  9:  160.0000  2223898.
+180E    / 10:  180.0000  2223898.
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000  2223898.
+20E     / 13:   20.0000  2223898.
+40E     / 14:   40.0000  2223898.
+60E     / 15:   60.0000  2223898.
+80E     / 16:   80.0000  2223898.
+100E    / 17:  100.0000  2223898.
+120E    / 18:  120.0000  2223898.
+140E    / 19:  140.0000  2223898.
+160E    / 20:  160.0000  2223898.
+180E    / 21:  180.0000  2223898.
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000  2223898.
+ list/x=0:720 a, a[x=@spx]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SPX:3] is X[GX=XAXIS] (box smooth w/missing by 3 pts on X)
+                     A      A
+0E      /  1:    0.0000      ....
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   40.0000
+60E     /  4:   60.0000   60.0000
+80E     /  5:   80.0000   80.0000
+100E    /  6:  100.0000  100.0000
+120E    /  7:  120.0000  120.0000
+140E    /  8:  140.0000  140.0000
+160E    /  9:  160.0000  160.0000
+180E    / 10:  180.0000  170.0000
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000      ....
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   40.0000
+60E     / 15:   60.0000   60.0000
+80E     / 16:   80.0000   80.0000
+100E    / 17:  100.0000  100.0000
+120E    / 18:  120.0000  120.0000
+140E    / 19:  140.0000  140.0000
+160E    / 20:  160.0000  160.0000
+180E    / 21:  180.0000  170.0000
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000      ....
+ 
+! Note that Running Sum and Indefinite Integral, Event mask
+! now restart in each branch.
+ list/x=0:720 a, a[x=@rsu]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@RSU] is X[GX=XAXIS] (running sum on X)
+                     A      A
+0E      /  1:    0.0000    0.0000
+20E     /  2:   20.0000   20.0000
+40E     /  3:   40.0000   60.0000
+60E     /  4:   60.0000  120.0000
+80E     /  5:   80.0000  200.0000
+100E    /  6:  100.0000  300.0000
+120E    /  7:  120.0000  420.0000
+140E    /  8:  140.0000  560.0000
+160E    /  9:  160.0000  720.0000
+180E    / 10:  180.0000  900.0000
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000    0.0000
+20E     / 13:   20.0000   20.0000
+40E     / 14:   40.0000   60.0000
+60E     / 15:   60.0000  120.0000
+80E     / 16:   80.0000  200.0000
+100E    / 17:  100.0000  300.0000
+120E    / 18:  120.0000  420.0000
+140E    / 19:  140.0000  560.0000
+160E    / 20:  160.0000  720.0000
+180E    / 21:  180.0000  900.0000
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000    0.0000
+ list/x=0:720 a, a[x=@iin]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@IIN] is X[GX=XAXIS] (indef. integ. on X)
+                     A        A
+0E      /  1:    0.0000           0.
+20E     /  2:   20.0000    44477961.
+40E     /  3:   40.0000   133433884.
+60E     /  4:   60.0000   266867768.
+80E     /  5:   80.0000   444779614.
+100E    /  6:  100.0000   667169421.
+120E    /  7:  120.0000   934037189.
+140E    /  8:  140.0000  1245382919.
+160E    /  9:  160.0000  1601206611.
+180E    / 10:  180.0000  2001508263.
+90W     / 11:      ....         ....
+0E(360) / 12:    0.0000           0.
+20E     / 13:   20.0000    44477961.
+40E     / 14:   40.0000   133433884.
+60E     / 15:   60.0000   266867768.
+80E     / 16:   80.0000   444779614.
+100E    / 17:  100.0000   667169421.
+120E    / 18:  120.0000   934037189.
+140E    / 19:  140.0000  1245382919.
+160E    / 20:  160.0000  1601206611.
+180E    / 21:  180.0000  2001508263.
+90W     / 22:      ....         ....
+0E(720) / 23:    0.0000           0.
+ list/x=0:720 a, a[x=@evnt:80]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@EVN:80] is X[GX=XAXIS] (event mask at 80 on X)
+                     A      A
+0E      /  1:    0.0000  0.000000
+20E     /  2:   20.0000  0.000000
+40E     /  3:   40.0000  0.000000
+60E     /  4:   60.0000  0.000000
+80E     /  5:   80.0000  1.000000
+100E    /  6:  100.0000  1.000000
+120E    /  7:  120.0000  1.000000
+140E    /  8:  140.0000  1.000000
+160E    /  9:  160.0000  1.000000
+180E    / 10:  180.0000  1.000000
+90W     / 11:      ....      ....
+0E(360) / 12:    0.0000  0.000000
+20E     / 13:   20.0000  0.000000
+40E     / 14:   40.0000  0.000000
+60E     / 15:   60.0000  0.000000
+80E     / 16:   80.0000  1.000000
+100E    / 17:  100.0000  1.000000
+120E    / 18:  120.0000  1.000000
+140E    / 19:  140.0000  1.000000
+160E    / 20:  160.0000  1.000000
+180E    / 21:  180.0000  1.000000
+90W     / 22:      ....      ....
+0E(720) / 23:    0.0000  0.000000
+ 
+ 
+! Transforms that deal with gaps
+can dat/all
+def ax/x=0:180:10/unit=degrees_e xaxis
+let a = if x[gx=xaxis] gt 40 and x[gx=xaxis] le 150 then x[gx=xaxis]
+save/clob/file=a.nc a
+can var a; can ax xaxis; use a.nc
+ list/x=0:720 a, a[x=@fav]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@FAV:3] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (ave-filled by 3 pts on X)
+                     A      A
+0E      /  1:      ....      ....
+10E     /  2:      ....      ....
+20E     /  3:      ....      ....
+30E     /  4:      ....      ....
+40E     /  5:      ....   50.0000
+50E     /  6:   50.0000   50.0000
+60E     /  7:   60.0000   60.0000
+70E     /  8:   70.0000   70.0000
+80E     /  9:   80.0000   80.0000
+90E     / 10:   90.0000   90.0000
+100E    / 11:  100.0000  100.0000
+110E    / 12:  110.0000  110.0000
+120E    / 13:  120.0000  120.0000
+130E    / 14:  130.0000  130.0000
+140E    / 15:  140.0000  140.0000
+150E    / 16:  150.0000  150.0000
+160E    / 17:      ....  150.0000
+170E    / 18:      ....      ....
+180E    / 19:      ....      ....
+90W     / 20:      ....      ....
+0E(360) / 21:      ....      ....
+10E     / 22:      ....      ....
+20E     / 23:      ....      ....
+30E     / 24:      ....      ....
+40E     / 25:      ....   50.0000
+50E     / 26:   50.0000   50.0000
+60E     / 27:   60.0000   60.0000
+70E     / 28:   70.0000   70.0000
+80E     / 29:   80.0000   80.0000
+90E     / 30:   90.0000   90.0000
+100E    / 31:  100.0000  100.0000
+110E    / 32:  110.0000  110.0000
+120E    / 33:  120.0000  120.0000
+130E    / 34:  130.0000  130.0000
+140E    / 35:  140.0000  140.0000
+150E    / 36:  150.0000  150.0000
+160E    / 37:      ....  150.0000
+170E    / 38:      ....      ....
+180E    / 39:      ....      ....
+90W     / 40:      ....      ....
+0E(720) / 41:      ....      ....
+ list/x=0:720 a, a[x=@fnr]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@FNR:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (nearest-filled by 1 pts on X)
+                     A      A
+0E      /  1:      ....   50.0000
+10E     /  2:      ....   50.0000
+20E     /  3:      ....   50.0000
+30E     /  4:      ....   50.0000
+40E     /  5:      ....   50.0000
+50E     /  6:   50.0000   50.0000
+60E     /  7:   60.0000   60.0000
+70E     /  8:   70.0000   70.0000
+80E     /  9:   80.0000   80.0000
+90E     / 10:   90.0000   90.0000
+100E    / 11:  100.0000  100.0000
+110E    / 12:  110.0000  110.0000
+120E    / 13:  120.0000  120.0000
+130E    / 14:  130.0000  130.0000
+140E    / 15:  140.0000  140.0000
+150E    / 16:  150.0000  150.0000
+160E    / 17:      ....  150.0000
+170E    / 18:      ....  150.0000
+180E    / 19:      ....  150.0000
+90W     / 20:      ....      ....
+0E(360) / 21:      ....   50.0000
+10E     / 22:      ....   50.0000
+20E     / 23:      ....   50.0000
+30E     / 24:      ....   50.0000
+40E     / 25:      ....   50.0000
+50E     / 26:   50.0000   50.0000
+60E     / 27:   60.0000   60.0000
+70E     / 28:   70.0000   70.0000
+80E     / 29:   80.0000   80.0000
+90E     / 30:   90.0000   90.0000
+100E    / 31:  100.0000  100.0000
+110E    / 32:  110.0000  110.0000
+120E    / 33:  120.0000  120.0000
+130E    / 34:  130.0000  130.0000
+140E    / 35:  140.0000  140.0000
+150E    / 36:  150.0000  150.0000
+160E    / 37:      ....  150.0000
+170E    / 38:      ....  150.0000
+180E    / 39:      ....  150.0000
+90W     / 40:      ....      ....
+0E(720) / 41:      ....   50.0000
+ list/x=0:720 a, a[x=@cia]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CIA:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest index above on X)
+                     A      A
+0E      /  1:      ....  5.000000
+10E     /  2:      ....  4.000000
+20E     /  3:      ....  3.000000
+30E     /  4:      ....  2.000000
+40E     /  5:      ....  1.000000
+50E     /  6:   50.0000  0.000000
+60E     /  7:   60.0000  0.000000
+70E     /  8:   70.0000  0.000000
+80E     /  9:   80.0000  0.000000
+90E     / 10:   90.0000  0.000000
+100E    / 11:  100.0000  0.000000
+110E    / 12:  110.0000  0.000000
+120E    / 13:  120.0000  0.000000
+130E    / 14:  130.0000  0.000000
+140E    / 15:  140.0000  0.000000
+150E    / 16:  150.0000  0.000000
+160E    / 17:      ....      ....
+170E    / 18:      ....      ....
+180E    / 19:      ....      ....
+90W     / 20:      ....      ....
+0E(360) / 21:      ....  5.000000
+10E     / 22:      ....  4.000000
+20E     / 23:      ....  3.000000
+30E     / 24:      ....  2.000000
+40E     / 25:      ....  1.000000
+50E     / 26:   50.0000  0.000000
+60E     / 27:   60.0000  0.000000
+70E     / 28:   70.0000  0.000000
+80E     / 29:   80.0000  0.000000
+90E     / 30:   90.0000  0.000000
+100E    / 31:  100.0000  0.000000
+110E    / 32:  110.0000  0.000000
+120E    / 33:  120.0000  0.000000
+130E    / 34:  130.0000  0.000000
+140E    / 35:  140.0000  0.000000
+150E    / 36:  150.0000  0.000000
+160E    / 37:      ....      ....
+170E    / 38:      ....      ....
+180E    / 39:      ....      ....
+90W     / 40:      ....      ....
+0E(720) / 41:      ....  5.000000
+ list/x=0:720 a, a[x=@cib]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CIB:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest index below on X)
+                     A      A
+0E      /  1:      ....      ....
+10E     /  2:      ....      ....
+20E     /  3:      ....      ....
+30E     /  4:      ....      ....
+40E     /  5:      ....      ....
+50E     /  6:   50.0000  0.000000
+60E     /  7:   60.0000  0.000000
+70E     /  8:   70.0000  0.000000
+80E     /  9:   80.0000  0.000000
+90E     / 10:   90.0000  0.000000
+100E    / 11:  100.0000  0.000000
+110E    / 12:  110.0000  0.000000
+120E    / 13:  120.0000  0.000000
+130E    / 14:  130.0000  0.000000
+140E    / 15:  140.0000  0.000000
+150E    / 16:  150.0000  0.000000
+160E    / 17:      ....  1.000000
+170E    / 18:      ....  2.000000
+180E    / 19:      ....  3.000000
+90W     / 20:      ....      ....
+0E(360) / 21:      ....      ....
+10E     / 22:      ....      ....
+20E     / 23:      ....      ....
+30E     / 24:      ....      ....
+40E     / 25:      ....      ....
+50E     / 26:   50.0000  0.000000
+60E     / 27:   60.0000  0.000000
+70E     / 28:   70.0000  0.000000
+80E     / 29:   80.0000  0.000000
+90E     / 30:   90.0000  0.000000
+100E    / 31:  100.0000  0.000000
+110E    / 32:  110.0000  0.000000
+120E    / 33:  120.0000  0.000000
+130E    / 34:  130.0000  0.000000
+140E    / 35:  140.0000  0.000000
+150E    / 36:  150.0000  0.000000
+160E    / 37:      ....  1.000000
+170E    / 38:      ....  2.000000
+180E    / 39:      ....  3.000000
+90W     / 40:      ....      ....
+0E(720) / 41:      ....      ....
+ list/x=0:720 a, a[x=@cda]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CDA:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest dist above on X)
+                     A      A
+0E      /  1:      ....  50.00000
+10E     /  2:      ....  40.00000
+20E     /  3:      ....  30.00000
+30E     /  4:      ....  20.00000
+40E     /  5:      ....  10.00000
+50E     /  6:   50.0000   0.00000
+60E     /  7:   60.0000   0.00000
+70E     /  8:   70.0000   0.00000
+80E     /  9:   80.0000   0.00000
+90E     / 10:   90.0000   0.00000
+100E    / 11:  100.0000   0.00000
+110E    / 12:  110.0000   0.00000
+120E    / 13:  120.0000   0.00000
+130E    / 14:  130.0000   0.00000
+140E    / 15:  140.0000   0.00000
+150E    / 16:  150.0000   0.00000
+160E    / 17:      ....      ....
+170E    / 18:      ....      ....
+180E    / 19:      ....      ....
+90W     / 20:      ....      ....
+0E(360) / 21:      ....  50.00000
+10E     / 22:      ....  40.00000
+20E     / 23:      ....  30.00000
+30E     / 24:      ....  20.00000
+40E     / 25:      ....  10.00000
+50E     / 26:   50.0000   0.00000
+60E     / 27:   60.0000   0.00000
+70E     / 28:   70.0000   0.00000
+80E     / 29:   80.0000   0.00000
+90E     / 30:   90.0000   0.00000
+100E    / 31:  100.0000   0.00000
+110E    / 32:  110.0000   0.00000
+120E    / 33:  120.0000   0.00000
+130E    / 34:  130.0000   0.00000
+140E    / 35:  140.0000   0.00000
+150E    / 36:  150.0000   0.00000
+160E    / 37:      ....      ....
+170E    / 38:      ....      ....
+180E    / 39:      ....      ....
+90W     / 40:      ....      ....
+0E(720) / 41:      ....  50.00000
+ list/x=0:720 a, a[x=@cdb]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CDB:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest dist below on X)
+                     A      A
+0E      /  1:      ....      ....
+10E     /  2:      ....      ....
+20E     /  3:      ....      ....
+30E     /  4:      ....      ....
+40E     /  5:      ....      ....
+50E     /  6:   50.0000   0.00000
+60E     /  7:   60.0000   0.00000
+70E     /  8:   70.0000   0.00000
+80E     /  9:   80.0000   0.00000
+90E     / 10:   90.0000   0.00000
+100E    / 11:  100.0000   0.00000
+110E    / 12:  110.0000   0.00000
+120E    / 13:  120.0000   0.00000
+130E    / 14:  130.0000   0.00000
+140E    / 15:  140.0000   0.00000
+150E    / 16:  150.0000   0.00000
+160E    / 17:      ....  10.00000
+170E    / 18:      ....  20.00000
+180E    / 19:      ....  30.00000
+90W     / 20:      ....      ....
+0E(360) / 21:      ....      ....
+10E     / 22:      ....      ....
+20E     / 23:      ....      ....
+30E     / 24:      ....      ....
+40E     / 25:      ....      ....
+50E     / 26:   50.0000   0.00000
+60E     / 27:   60.0000   0.00000
+70E     / 28:   70.0000   0.00000
+80E     / 29:   80.0000   0.00000
+90E     / 30:   90.0000   0.00000
+100E    / 31:  100.0000   0.00000
+110E    / 32:  110.0000   0.00000
+120E    / 33:  120.0000   0.00000
+130E    / 34:  130.0000   0.00000
+140E    / 35:  140.0000   0.00000
+150E    / 36:  150.0000   0.00000
+160E    / 37:      ....  10.00000
+170E    / 38:      ....  20.00000
+180E    / 39:      ....  30.00000
+90W     / 40:      ....      ....
+0E(720) / 41:      ....      ....
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_subspan_mod_in_expr
+! err696_subspan_mod_in_expr.jnl
+! ticket 1845: a subspan modulo due to context info buried
+! in a multi-layer expression isn't applied when setting
+! the time axis limits for the plot.
+! *acm* 5/2016
+ 
+use bug1845.nc
+set v upper
+shade/x=137:146 salinity[l=1] -  salinity[l=2]
+sh sym xaxis_m*
+XAXIS_MIN = "137.000000"
+XAXIS_MAX = "145.345261"
+ 
+ 
+! When the region information is embedded a couple levels down inside
+! the expressions - in the square brackets, and then an expression involving
+! subtraction - the region isn't treated correctly, and the upper limit is
+! the modulo void point.
+ 
+! Previously XAXIS_MAX was 496.4, the x axis too long, and most of the plot was blank
+ 
+set v lower
+shade salinity[x=137:146,T="28-Mar-2011 00:00"] - salinity[x=137:146,T="28-Mar-2011 03:00"]
+sh sym xaxis_m*
+XAXIS_MIN = "136.443619"
+XAXIS_MAX = "145.345261"
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_shade_subspan_clim
+! err696_shade_subspan_clim
+! See ticket 2404
+ 
+def ax/edges/t/unit="day"/t0=1-jan-0001/cal=gregorian/modulo=365.25 \
+tax = {31, 59.2425, 90.2425, 120.2425, 151.2425, 181.2425, 212.2425}
+let a = t[gt=tax]
+save/clob/file=a.nc a
+can var a
+can axis tax
+use a.nc
+can view
+ 
+! The top-left SHADE plot looks fine.
+set view ul; shade a*x[gx=0:10:1]
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "31.0000000"
+YAXIS_MAX = "212.242500"
+ 
+! But the top-right SHADE plot was all messed up; it shifts the data
+! later by a full month, and stretches the last (shifted) cell all
+! the way to the upper limit of the plot domain
+ 
+set view ur; shade/t=1-jan-0001:1-jan-0002 a*x[gx=0:10:1]
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "31.0000000"
+YAXIS_MAX = "212.242500"
+ 
+! In the bottom-right line plot, the actual plotted data look ok.
+! But the plot limits extend all the way from 1-JUL-0000 to 1-MAR-0002,
+! rather than being shrink-wrapped around the data.
+ 
+set view lr; plot/step=con/t=1-jan-0001:1-jan-0002 a
+ 
+sh sym xaxis*
+XAXIS_REVERSED = "0"
+XAXIS_MIN = "31.0000000"
+XAXIS_MAX = "212.242500"
+ 
+go bn_reset
+cancel mode verify
+! go err696_subspan_mod_strides  ! do this test in bn_gif
+ 
+go bn_reset
+cancel mode verify
+go err696_def_att
+! err696_def_att.jnl
+! tickets 2415, 2416
+! data type for defined axes
+ 
+use coads_climatology
+ 
+! previously the values were corrupted when defining numeric
+! attributes on a coordinate variable
+define att/output (`sst,return=xaxis`).new2 = {1,3,6}
+ !-> define att/output (COADSX).new2 = {1,3,6}
+save/clobber/file=a.nc sst
+sp ncdump a.nc | grep -i coadsx
+	COADSX = 180 ;
+	double COADSX(COADSX) ;
+		COADSX:units = "degrees_east" ;
+		COADSX:modulo = " " ;
+		COADSX:point_spacing = "even" ;
+		COADSX:new2 = 1.f, 3.f, 6.f ;
+		COADSX:axis = "X" ;
+		COADSX:standard_name = "longitude" ;
+	float SST(TIME10, COADSY, COADSX) ;
+ COADSX = 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 
+ 
+can dat/all
+use coads_climatology
+ 
+! previously could only specify /TYPE=float or /TYPE=string
+ 
+! default types from the expression
+define att/output sst.newch = "A string"
+define att/output sst.newch = 158.12
+ 
+define att/output/type=byt sst.abyte = 5
+define att/output/type=int sst.aint = {-5,-12,-1556,0,1}
+define att/output/type=string sst.str_from_num = 978.43
+define att/output/type=double sst.dbint = 123.45678901
+ 
+save/clobber/file=a.nc sst
+sp ncdump a.nc | grep -i sst
+	float SST(TIME10, COADSY, COADSX) ;
+		SST:missing_value = -1.e+34f ;
+		SST:_FillValue = -1.e+34f ;
+		SST:long_name = "SEA SURFACE TEMPERATURE" ;
+		SST:history = "From coads_climatology" ;
+		SST:units = "Deg C" ;
+		SST:newch = 158.12f ;
+		SST:abyte = 5b ;
+		SST:aint = -5, -12, -1556, 0, 1 ;
+		SST:str_from_num = "978.43" ;
+		SST:dbint = 123.45678901 ;
+ SST =
+ 
+go bn_reset
+cancel mode verify
+go err696_return_prec
+! err696_return_prec.jnl
+! ACM 5/16 See ticket 2389.
+! For grave-accent returns, adjust the formatting so that `var,p=2` really
+! means 2 digits, and returning an exponential rather than a long integer
+! with lots of zero's.
+ 
+! Both of these as exponentials. Prev. the second switched to an integer.
+say `1.55551e8,p=2`
+ !-> MESSAGE/CONTINUE 1.6E+08
+1.6E+08
+say `1.55551e7,p=2`
+ !-> MESSAGE/CONTINUE 1.6E+07
+1.6E+07
+ 
+! Return only as many digits as requested
+ 
+say `1.555555551e-9,p=1`
+ !-> MESSAGE/CONTINUE  2.E-09
+2.E-09
+say `1.555555551e-9,p=2`
+ !-> MESSAGE/CONTINUE   1.6E-09
+1.6E-09
+say `1.555555551e-9,p=3`
+ !-> MESSAGE/CONTINUE    1.56E-09
+1.56E-09
+ 
+say `1.555555551e-9,p=5`
+ !-> MESSAGE/CONTINUE      1.5556E-09
+1.5556E-09
+say `1.555555551e-9,p=7`
+ !-> MESSAGE/CONTINUE       1.555556E-09
+1.555556E-09
+say `1.555555551e-9,p=10`
+ !-> MESSAGE/CONTINUE    1.555555551E-09
+1.555555551E-09
+ 
+! For large numbers, return an fixed-point value only when the number
+! of digits is at least the magnitude of the value
+ 
+say `1.55551e8,p=2`
+ !-> MESSAGE/CONTINUE 1.6E+08
+1.6E+08
+say `1.55551e8,p=3`
+ !-> MESSAGE/CONTINUE 1.56E+08
+1.56E+08
+say `1.55551e8,p=5`
+ !-> MESSAGE/CONTINUE 1.5555E+08
+1.5555E+08
+say `1.55551e8,p=9`
+ !-> MESSAGE/CONTINUE 155551000
+155551000
+say `1.55551e8,p=10`
+ !-> MESSAGE/CONTINUE 155551000
+155551000
+ 
+! Previously these returned fixed-point numbers with trailing zero's
+! after the decimal point. These are removed.
+say `1.55555551e8,p=14`
+ !-> MESSAGE/CONTINUE 155555551
+155555551
+say `1.555555001e8,p=14`
+ !-> MESSAGE/CONTINUE   155555500.1
+155555500.1
+ 
+ 
+ 
+ 
+go bn_reset
+cancel mode verify
+go err686_show_xml_letd
+! ! bn_show_xml_letd
+! Testing SHOW DATA/VAR/XML with a let/D variable
+! Ticket 2441
+ 
+use coads_climatology.cdf
+use gtbc011.cdf
+let/d=1 u2 = u[d=2]
+let/d=1 v2 = v[d=2]
+let/d=1 w2 = w[d=2]
+let/d=1 salt2 = salt[d=2]
+sh dat 1
+     currently SET data sets:
+    1> ./coads_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ ------------------------------
+ SALT2[D=coads_climatology] = SALT[D=2]
+ W2[D=coads_climatology] = W[D=2]
+ V2[D=coads_climatology] = V[D=2]
+ U2[D=coads_climatology] = U[D=2]
+ 
+ 
+sh dat/var/xml/outfile=out.xml/clobber 1
+ 
+! Showed w2 twice but missed u2.
+sp grep "var name" out.xml
+<var name="SST">
+<var name="salt2">
+<var name="w2">
+<var name="v2">
+<var name="u2">
+ 
+GO bn_reset
+cancel mode verify
+GO bn_aggregate_t
+! bn_aggregate_t.jnl
+! 9/12/2015 *sh* tweak to put all test files into "tmp" subdirectory
+! 1/2016 *sh* added implicit naming of aggregation from script filename
+! 2/2016      and auto-sorting of member files
+ 
+spawn "mkdir -p tmp"     ! tmp directory t store files
+ 
+! *** create test files for T aggregation ***
+ 
+! --- files with regularly-spaced time points ---
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+ 
+! also define a time intependent field to be saved as the second variable
+! but only in the first data set
+let mymap = I[x=0E:0E:5]+ 10*J[Y=80s:80n:5]
+ 
+save/clobber/file="tmp/tagg_reg_1.nc" myvar[l=1:10], mymap
+save/clobber/file="tmp/tagg_reg_2.nc" myvar[l=11:20]
+save/clobber/file="tmp/tagg_reg_3.nc" myvar[l=21:30]
+save/clobber/file="tmp/tagg_reg_4.nc" myvar[l=31:40]
+save/clobber/file="tmp/tagg_reg_5.nc" myvar[l=41:50]
+save/clobber/file="tmp/tagg_reg_6.nc" myvar[l=51:60]
+save/clobber/file="tmp/tagg_reg_7.nc" myvar[l=61:70]
+save/clobber/file="tmp/tagg_reg_8.nc" myvar[l=71:80]
+save/clobber/file="tmp/tagg_reg_9.nc" myvar[l=81:90]
+save/clobber/file="tmp/tagg_reg_10.nc" myvar[l=91:100]
+ 
+! save a duplicate of the first file
+save/clobber/file="tmp/tagg_reg_1_duplicate.nc" myvar[l=1:10], mymap
+ 
+! save a file with no time-dependent variables
+save/clobber/file="tmp/tagg_reg_no_T.nc"  mymap
+ 
+! make a single file that is "too long": 15 time steps instead of 10
+! so that when used in a time series it creates reverse-ordered points
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+save/clobber/file="tmp/tagg_reg_2_overlarge.nc" myvar[l=11:25]
+cancel axis tday
+ 
+! --- files with irregularly-spaced time points ---
+define axis/T0=1-jan-1980/unit=days tday_ir = L[l=1:200]^1.01
+ 
+let myvar = SIN(T[gt=tday_ir]/10) + L[gt=tday_ir]/10
+!plot myvar[l=1:100]
+ 
+save/clobber/file="tmp/tagg_irreg_1.nc" myvar[l=1:10]
+save/clobber/file="tmp/tagg_irreg_2.nc" myvar[l=11:20]
+save/clobber/file="tmp/tagg_irreg_3.nc" myvar[l=21:30]
+save/clobber/file="tmp/tagg_irreg_4.nc" myvar[l=31:40]
+save/clobber/file="tmp/tagg_irreg_5.nc" myvar[l=41:50]
+save/clobber/file="tmp/tagg_irreg_6.nc" myvar[l=51:60]
+save/clobber/file="tmp/tagg_irreg_7.nc" myvar[l=61:70]
+save/clobber/file="tmp/tagg_irreg_8.nc" myvar[l=71:80]
+save/clobber/file="tmp/tagg_irreg_9.nc" myvar[l=81:90]
+save/clobber/file="tmp/tagg_irreg_10.nc" myvar[l=91:100]
+ 
+! create a regular time axis (lacking cell bounds) in the midst of the sequence
+define axis/T0=1-jan-1980/unit=days tday_ir = L[l=11:20]
+save/clobber/file="tmp/tagg_irreg_2_reg.nc" myvar
+cancel axis tday_ir
+ 
+ 
+! --- files in which the T0 origin varies ---
+! create a sequence of files with differing T0 dates, but the very same
+! timestep values (1, 2, 3, 4)
+ 
+let tt = t[gt=tday_tvar]
+ 
+repeat/i=1:5 (\
+define symbol file `i`;\
+define symbol start_day `(i-1)*4+1`;\
+define axis/T0=($start_day)-jan-1980/unit=days tday_Tvar = L[l=1:4];\
+let myvar0 = TAX_JDAY(L[l=1:4], tt);\
+let myvar = myvar0[gt=tday_Tvar at asn];\
+save/clobber/file="tmp/tagg_T0varying_($file).nc" myvar[l=1:4])
+ !-> repeat/i=1:5 (define symbol file `i`;define symbol start_day `(i-1)*4+1`;define axis/T0=($start_day)-jan-1980/unit=days tday_Tvar = L[l=1:4];let myvar0 = TAX_JDAY(L[l=1:4], tt);let myvar = myvar0[gt=tday_Tvar at asn];save/clobber/file="tmp/tagg_T0varying_($file).nc" myvar[l=1:4])
+!-> REPEAT: I=1
+ !-> define symbol file 1
+ !-> define symbol start_day 1
+ !-> define axis/T0=1-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_1.nc" myvar[l=1:4]
+!-> REPEAT: I=2
+ !-> define symbol file 2
+ !-> define symbol start_day 5
+ !-> define axis/T0=5-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_2.nc" myvar[l=1:4]
+!-> REPEAT: I=3
+ !-> define symbol file 3
+ !-> define symbol start_day 9
+ !-> define axis/T0=9-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_3.nc" myvar[l=1:4]
+!-> REPEAT: I=4
+ !-> define symbol file 4
+ !-> define symbol start_day 13
+ !-> define axis/T0=13-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_4.nc" myvar[l=1:4]
+!-> REPEAT: I=5
+ !-> define symbol file 5
+ !-> define symbol start_day 17
+ !-> define axis/T0=17-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_5.nc" myvar[l=1:4]
+ 
+! --- files with T0 varying and date gaps between files ---
+let myvar = L[gt=tday_Tvar]
+ 
+repeat/i=1:10 (\
+define symbol file `i`;\
+define symbol year `i+1980`;\
+define axis/T0=1-jan-($year)/unit=days tday_Tvar = L[l=1:10];\
+save/clobber/file="tmp/tagg_disjoint_T0varying_($file).nc" myvar[l=1:10])
+ !-> repeat/i=1:10 (define symbol file `i`;define symbol year `i+1980`;define axis/T0=1-jan-($year)/unit=days tday_Tvar = L[l=1:10];save/clobber/file="tmp/tagg_disjoint_T0varying_($file).nc" myvar[l=1:10])
+!-> REPEAT: I=1
+ !-> define symbol file 1
+ !-> define symbol year 1981
+ !-> define axis/T0=1-jan-1981/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_1.nc" myvar[l=1:10]
+!-> REPEAT: I=2
+ !-> define symbol file 2
+ !-> define symbol year 1982
+ !-> define axis/T0=1-jan-1982/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_2.nc" myvar[l=1:10]
+!-> REPEAT: I=3
+ !-> define symbol file 3
+ !-> define symbol year 1983
+ !-> define axis/T0=1-jan-1983/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_3.nc" myvar[l=1:10]
+!-> REPEAT: I=4
+ !-> define symbol file 4
+ !-> define symbol year 1984
+ !-> define axis/T0=1-jan-1984/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_4.nc" myvar[l=1:10]
+!-> REPEAT: I=5
+ !-> define symbol file 5
+ !-> define symbol year 1985
+ !-> define axis/T0=1-jan-1985/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_5.nc" myvar[l=1:10]
+!-> REPEAT: I=6
+ !-> define symbol file 6
+ !-> define symbol year 1986
+ !-> define axis/T0=1-jan-1986/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_6.nc" myvar[l=1:10]
+!-> REPEAT: I=7
+ !-> define symbol file 7
+ !-> define symbol year 1987
+ !-> define axis/T0=1-jan-1987/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_7.nc" myvar[l=1:10]
+!-> REPEAT: I=8
+ !-> define symbol file 8
+ !-> define symbol year 1988
+ !-> define axis/T0=1-jan-1988/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_8.nc" myvar[l=1:10]
+!-> REPEAT: I=9
+ !-> define symbol file 9
+ !-> define symbol year 1989
+ !-> define axis/T0=1-jan-1989/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_9.nc" myvar[l=1:10]
+!-> REPEAT: I=10
+ !-> define symbol file 10
+ !-> define symbol year 1990
+ !-> define axis/T0=1-jan-1990/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_10.nc" myvar[l=1:10]
+ 
+! alter first and third files to have only single time step
+define axis/T0=1-jan-1981/unit=days tday_Tvar = L[l=1:10]
+save/clobber/file="tmp/tagg_disjoint_T0varying_1.nc" myvar[l=1:1]
+define axis/T0=1-jan-1983/unit=days tday_Tvar = L[l=1:10]
+save/clobber/file="tmp/tagg_disjoint_T0varying_3.nc" myvar[l=1:1]
+ 
+! make an alternative file 4 that has a different name for the time axis
+define axis/T0=1-jan-1984/unit=days tday_WRONG = L[l=1:10]
+let myvar = L[gt=tday_WRONG]
+save/clobber/file="tmp/tagg_disjoint_T0varying_4_wrong.nc" myvar[l=1:1]
+cancel axis tday_Tvar
+cancel axis tday_WRONG
+ 
+! --- files each containing only a single time step ---
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+ 
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+ 
+! also define a time intependent field to be saved as the second variable
+! but only in the first data set
+let mymap = I[x=0E:0E:5]+ 10*J[Y=80s:80n:5]
+ 
+!save/rigid/keep_axisname/file=...
+ 
+save/clobber/file="tmp/tagg_single_1.nc" myvar[l=1], mymap
+save/clobber/file="tmp/tagg_single_2.nc" myvar[l=2]
+save/clobber/file="tmp/tagg_single_3.nc" myvar[l=3]
+save/clobber/file="tmp/tagg_single_4.nc" myvar[l=4]
+save/clobber/file="tmp/tagg_single_5.nc" myvar[l=5]
+save/clobber/file="tmp/tagg_single_6.nc" myvar[l=6]
+ 
+cancel axis tday
+ 
+cancel var/all
+ 
+ 
+! *****************************************
+! *** test the aggregation capabilities ***
+! --- regularly-spaced axes ---
+! if the first file of the aggregation is already open
+! it must not get disturbed by setting up the aggregation
+use tmp/tagg_reg_1.nc
+ 
+! single dataset aggregation
+tseries myagg1 =  tmp/tagg_reg_1.nc
+show data myagg1
+     currently SET data sets:
+    2> myagg1  (default)
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+show grid myvar
+    GRID GQC1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY1     TIME                10 r   01-JAN-1980 00:00    10-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+! double file aggregation
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show grid myvar
+    GRID GQC3
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY2     TIME                20 r   01-JAN-1980 00:00    20-JAN-1980 00:00   full
+ normal    E
+ normal    F
+stat myvar
+ 
+             SIN(T[GT=TDAY]/10) + L[GT=TDAY]/10
+             X:  N/A
+             Y:  N/A
+             Z:  N/A
+             TIME: 31-DEC-1979 12:00 to 20-JAN-1980 12:00
+             E:  N/A
+             F:  N/A
+             DATA SET: myagg2
+ 
+ Total # of data points: 20 (1*1*1*20*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.11794
+ Maximum value: 2.9403
+ Mean    value: 1.7434 (unweighted average)
+ Standard deviation: 0.90253
+ 
+! show that aggregate name is case-sensitive
+define data/agg/t myAgg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show data myAgg2
+     currently SET data sets:
+    3> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+ 
+! *sh* 1/28/2016 addition
+! same aggregation inheriting its name from the parent script
+define data/agg/t tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/tagg_reg_1.nc
+    2> myagg1
+    3> myagg2
+    4> myAgg2
+    5> ./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
+show data/full  ! all 4 datasets
+     currently SET data sets:
+    1> tmp/tagg_reg_1.nc
+ 
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+               on grid GTR1 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GTR2 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 10-JAN-1980 00:00
+ 
+    2> myagg1
+ 
+     T-aggregation of 1 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+               on grid GQC1 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC2 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 10-JAN-1980 00:00
+ 
+          time-dependent data files:
+01-JAN-1980 00:00 -> 10-JAN-1980 00:00    tmp/tagg_reg_1.nc
+ 
+    3> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+               on grid GQC3 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC4 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-JAN-1980 00:00
+ 
+          time-dependent data files:
+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
+ 
+    4> myAgg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+               on grid GQC5 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC6 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-JAN-1980 00:00
+ 
+          time-dependent data files:
+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
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+               on grid GQC7 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC8 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-JAN-1980 00:00
+ 
+          time-dependent data files:
+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
+ 
+    6> myagg8  (default)
+ 
+     T-aggregation of 8 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:80      ...       ...
+               on grid GQC9 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC10 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-MAR-1980 00:00
+ 
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+ 
+show grid myvar
+    GRID GQC9
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY3     TIME                80 r   01-JAN-1980 00:00    20-MAR-1980 00:00   full
+ normal    E
+ normal    F
+plot/line/sym myvar
+ 
+! read a time-independent field from the first file of the aggregation
+stat mymap
+ 
+             I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]
+             LONGITUDE: 2.5W(-2.5) to 2.5E(362.5)
+             LATITUDE: 82.5S to 82.5N
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: myagg8
+ 
+ Total # of data points: 2409 (73*33*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 11
+ Maximum value: 403
+ Mean    value: 207 (unweighted average)
+ Standard deviation: 97.543
+ 
+! 2/2016 -- reorder deliberately out of order regular files
+define data/agg/t myagg8_disordered1 = tmp/tagg_reg_2.nc, tmp/tagg_reg_1.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
+define data/agg/t myagg8_disordered2 = 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_8.nc, tmp/tagg_reg_7.nc
+show data/files/brief myagg8_disordered1
+     currently SET data sets:
+    7> myagg8_disordered1
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+ 
+show data/files/brief myagg8_disordered2
+     currently SET data sets:
+    8> myagg8_disordered2  (default)
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+ 
+stat/brief T[g=myvar[d=myagg8]] - T[g=myvar[d=myagg8_disordered1]]
+ 
+ Total # of data points: 80 (1*1*1*80*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXLO[g=myvar[d=myagg8]] - TBOXLO[g=myvar[d=myagg8_disordered1]]
+ 
+ Total # of data points: 80 (1*1*1*80*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXHI[g=myvar[d=myagg8]] - TBOXHI[g=myvar[d=myagg8_disordered1]]
+ 
+ Total # of data points: 80 (1*1*1*80*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+cancel data/all
+ 
+! deliberate errors
+set mode ignore
+! try to define the same aggregation again
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+ 
+! try to aggregate with the same file duplicated
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc, tmp/tagg_reg_2.nc
+ 
+! try to aggregate a missing file as first file
+define data/agg/t myaggbad = tmp/tagg_no_exist.nc, tmp/tagg_reg_2.nc
+ 
+! try to aggregate a missing file as subsequent file
+define data/agg/t myaggbad = tmp/tagg_reg_1.nc, tmp/tagg_no_exist.nc
+ 
+! try to define an aggregation where there is no time axis in the first file
+tseries myTindepagg = tmp/tagg_reg_no_T.nc
+ 
+! erroneous file 2 with 15 time steps, goes beyond start of file 3
+define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
+ 
+set mode/last ignore
+canc data/all
+ 
+ 
+! --- irregularly-spaced axes ---
+! aggregation of 2 irregular datasets
+ define data/agg/t myagg2 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc
+ 
+! aggregate a longer collection where all are irregular
+define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irreg_3.nc, tmp/tagg_irreg_4.nc,tmp/tagg_irreg_5.nc, tmp/tagg_irreg_6.nc,tmp/tagg_irreg_7.nc, tmp/tagg_irreg_8.nc
+  show data/full
+     currently SET data sets:
+    1> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+               on grid GCV1 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 21-JAN-1980 14:35
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 11-JAN-1980 05:35    tmp/tagg_irreg_1.nc
+12-JAN-1980 06:24 -> 21-JAN-1980 14:35    tmp/tagg_irreg_2.nc
+ 
+    2> myagg8  (default)
+ 
+     T-aggregation of 8 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:80      ...       ...
+               on grid GCV2 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 24-MAR-1980 14:00
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 11-JAN-1980 05:35    tmp/tagg_irreg_1.nc
+12-JAN-1980 06:24 -> 21-JAN-1980 14:35    tmp/tagg_irreg_2.nc
+22-JAN-1980 15:34 -> 01-FEB-1980 00:54    tmp/tagg_irreg_3.nc
+02-FEB-1980 01:59 -> 11-FEB-1980 12:04    tmp/tagg_irreg_4.nc
+12-FEB-1980 13:13 -> 21-FEB-1980 23:52    tmp/tagg_irreg_5.nc
+23-FEB-1980 01:05 -> 03-MAR-1980 12:10    tmp/tagg_irreg_6.nc
+04-MAR-1980 13:26 -> 14-MAR-1980 00:54    tmp/tagg_irreg_7.nc
+15-MAR-1980 02:12 -> 24-MAR-1980 14:00    tmp/tagg_irreg_8.nc
+ 
+  show data myagg2
+     currently SET data sets:
+    1> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+ 
+  show grid/t myvar[d=1]
+    GRID GCV1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_IR1  TIME                20 i   02-JAN-1980 00:00    21-JAN-1980 14:35   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
+       2>  03-JAN-1980 00:20:01  1.01657    02-JAN-1980 12:10:00    2.013911
+       3>  04-JAN-1980 00:47:43  1.020963   03-JAN-1980 12:33:52    3.03314
+       4>  05-JAN-1980 01:20:24  1.023991   04-JAN-1980 13:04:03    4.055838
+       5>  06-JAN-1980 01:56:49  1.026318   05-JAN-1980 13:38:36    5.081123
+       6>  07-JAN-1980 02:36:12  1.028212   06-JAN-1980 14:16:30    6.108474
+       7>  08-JAN-1980 03:18:04  1.029811   07-JAN-1980 14:57:08    7.137548
+       8>  09-JAN-1980 04:02:03  1.031196   08-JAN-1980 15:40:03    8.168097
+       9>  10-JAN-1980 04:47:54  1.032416   09-JAN-1980 16:24:59    9.199939
+      10>  11-JAN-1980 05:35:25  1.033509   10-JAN-1980 17:11:39    10.23293
+      11>  12-JAN-1980 06:24:25  1.034497   11-JAN-1980 17:59:55    11.26696
+      12>  13-JAN-1980 07:14:46  1.0354     12-JAN-1980 18:49:35    12.30192
+      13>  14-JAN-1980 08:06:22  1.036231   13-JAN-1980 19:40:34    13.33776
+      14>  15-JAN-1980 08:59:06  1.037001   14-JAN-1980 20:32:44    14.37439
+      15>  16-JAN-1980 09:52:55  1.037717   15-JAN-1980 21:26:01    15.41176
+      16>  17-JAN-1980 10:47:44  1.038388   16-JAN-1980 22:20:20    16.44982
+      17>  18-JAN-1980 11:43:29  1.039019   17-JAN-1980 23:15:36    17.48853
+      18>  19-JAN-1980 12:40:06  1.039613   19-JAN-1980 00:11:48    18.52786
+      19>  20-JAN-1980 13:37:34  1.040176   20-JAN-1980 01:08:50    19.56776
+      20>  21-JAN-1980 14:35:49  1.04071    21-JAN-1980 02:06:42    20.60821
+  show grid myvar[d=2]
+    GRID GCV2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_IR2  TIME                80 i   02-JAN-1980 00:00    24-MAR-1980 14:00   full
+ normal    E
+ normal    F
+  plot/line/sym myvar[d=2],myvar[d=1]
+ 
+! aggregate collection that mixes regular (file 2) with irregular
+define data/agg/t myagg4 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2_reg.nc,tmp/tagg_irreg_3.nc, tmp/tagg_irreg_4.nc
+  show grid/t myvar[d=myagg4]
+    GRID GCV3
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_IR3  TIME                40 i   02-JAN-1980 00:00    11-FEB-1980 12:04   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
+       2>  03-JAN-1980 00:20:01  1.01657    02-JAN-1980 12:10:00    2.013911
+       3>  04-JAN-1980 00:47:43  1.020963   03-JAN-1980 12:33:52    3.03314
+       4>  05-JAN-1980 01:20:24  1.023991   04-JAN-1980 13:04:03    4.055838
+       5>  06-JAN-1980 01:56:49  1.026318   05-JAN-1980 13:38:36    5.081123
+       6>  07-JAN-1980 02:36:12  1.028212   06-JAN-1980 14:16:30    6.108474
+       7>  08-JAN-1980 03:18:04  1.029811   07-JAN-1980 14:57:08    7.137548
+       8>  09-JAN-1980 04:02:03  1.031196   08-JAN-1980 15:40:03    8.168097
+       9>  10-JAN-1980 04:47:54  1.032416   09-JAN-1980 16:24:59    9.199939
+      10>  11-JAN-1980 05:35:25  0.9000306  10-JAN-1980 17:11:39    10.23293
+      11>  12-JAN-1980 00:00:00  0.883535   11-JAN-1980 14:47:42    11
+      12>  13-JAN-1980 00:00:00  1          12-JAN-1980 12:00:00    12
+      13>  14-JAN-1980 00:00:00  1          13-JAN-1980 12:00:00    13
+      14>  15-JAN-1980 00:00:00  1          14-JAN-1980 12:00:00    14
+      15>  16-JAN-1980 00:00:00  1          15-JAN-1980 12:00:00    15
+      16>  17-JAN-1980 00:00:00  1          16-JAN-1980 12:00:00    16
+      17>  18-JAN-1980 00:00:00  1          17-JAN-1980 12:00:00    17
+      18>  19-JAN-1980 00:00:00  1          18-JAN-1980 12:00:00    18
+      19>  20-JAN-1980 00:00:00  1          19-JAN-1980 12:00:00    19
+      20>  21-JAN-1980 00:00:00  1.324591   20-JAN-1980 12:00:00    20
+      21>  22-JAN-1980 15:34:49  1.345324   21-JAN-1980 19:47:24    21.64918
+      22>  23-JAN-1980 16:34:32  1.041703   23-JAN-1980 04:04:40    22.69065
+      23>  24-JAN-1980 17:34:55  1.042167   24-JAN-1980 05:04:43    23.73259
+      24>  25-JAN-1980 18:35:58  1.042611   25-JAN-1980 06:05:27    24.77498
+      25>  26-JAN-1980 19:37:38  1.043037   26-JAN-1980 07:06:48    25.81781
+      26>  27-JAN-1980 20:39:55  1.043446   27-JAN-1980 08:08:47    26.86106
+      27>  28-JAN-1980 21:42:46  1.04384    28-JAN-1980 09:11:20    27.9047
+      28>  29-JAN-1980 22:46:10  1.04422    29-JAN-1980 10:14:28    28.94874
+      29>  30-JAN-1980 23:50:07  1.044587   30-JAN-1980 11:18:09    29.99314
+      30>  01-FEB-1980 00:54:35  1.044941   31-JAN-1980 12:22:21    31.03791
+      31>  02-FEB-1980 01:59:33  1.045284   01-FEB-1980 13:27:04    32.08303
+      32>  03-FEB-1980 03:05:00  1.045616   02-FEB-1980 14:32:16    33.12848
+      33>  04-FEB-1980 04:10:55  1.045938   03-FEB-1980 15:37:58    34.17426
+      34>  05-FEB-1980 05:17:18  1.04625    04-FEB-1980 16:44:07    35.22035
+      35>  06-FEB-1980 06:24:07  1.046554   05-FEB-1980 17:50:43    36.26676
+      36>  07-FEB-1980 07:31:22  1.046849   06-FEB-1980 18:57:45    37.31346
+      37>  08-FEB-1980 08:39:03  1.047135   07-FEB-1980 20:05:13    38.36045
+      38>  09-FEB-1980 09:47:07  1.047415   08-FEB-1980 21:13:05    39.40773
+      39>  10-FEB-1980 10:55:36  1.047687   09-FEB-1980 22:21:22    40.45528
+      40>  11-FEB-1980 12:04:28  1.047821   10-FEB-1980 23:30:02    41.50311
+ 
+! deliberate error -- aggregated file out of order
+set mode ignore
+define data/agg/t myagg3 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_3.nc,tmp/tagg_irreg_2.nc
+set mode/last ignore
+canc data/all
+ 
+! --- aggregation from T0-varying files ---
+! aggregate two
+  define data/agg/t myagg2 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc
+ 
+! aggregate several
+define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/tagg_T0varying_3.nc, tmp/tagg_T0varying_4.nc,tmp/tagg_T0varying_5.nc
+  show data/full
+     currently SET data sets:
+    1> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+               on grid GBN1 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 09-JAN-1980 00:00
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_T0varying_1.nc
+06-JAN-1980 00:00 -> 09-JAN-1980 00:00    tmp/tagg_T0varying_2.nc
+ 
+    2> myagg8  (default)
+ 
+     T-aggregation of 5 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:20      ...       ...
+               on grid GBN2 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 21-JAN-1980 00:00
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_T0varying_1.nc
+06-JAN-1980 00:00 -> 09-JAN-1980 00:00    tmp/tagg_T0varying_2.nc
+10-JAN-1980 00:00 -> 13-JAN-1980 00:00    tmp/tagg_T0varying_3.nc
+14-JAN-1980 00:00 -> 17-JAN-1980 00:00    tmp/tagg_T0varying_4.nc
+18-JAN-1980 00:00 -> 21-JAN-1980 00:00    tmp/tagg_T0varying_5.nc
+ 
+  show data myagg2
+     currently SET data sets:
+    1> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+ 
+  show grid/t myvar[d=1]
+    GRID GBN1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR TIME                 8 r   02-JAN-1980 00:00    09-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1980 00:00:00  1          01-JAN-1980 12:00:00    1
+       2>  03-JAN-1980 00:00:00  1          02-JAN-1980 12:00:00    2
+       3>  04-JAN-1980 00:00:00  1          03-JAN-1980 12:00:00    3
+       4>  05-JAN-1980 00:00:00  1          04-JAN-1980 12:00:00    4
+       5>  06-JAN-1980 00:00:00  1          05-JAN-1980 12:00:00    5
+       6>  07-JAN-1980 00:00:00  1          06-JAN-1980 12:00:00    6
+       7>  08-JAN-1980 00:00:00  1          07-JAN-1980 12:00:00    7
+       8>  09-JAN-1980 00:00:00  1          08-JAN-1980 12:00:00    8
+  show grid myvar[d=2]
+    GRID GBN2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR1 TIME               20 r   02-JAN-1980 00:00    21-JAN-1980 00:00   full
+ normal    E
+ normal    F
+  plot/line/sym myvar[d=2],myvar[d=1]
+ 
+canc data/all
+ 
+! --- aggregations of disjoint, irregularly-sized, T0-varying files ---
+! aggregate two
+  define data/agg/t myagg2 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc
+ 
+ 
+! aggregate several
+define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4.nc,tmp/tagg_disjoint_T0varying_5.nc, tmp/tagg_disjoint_T0varying_6.nc,tmp/tagg_disjoint_T0varying_7.nc, tmp/tagg_disjoint_T0varying_8.nc
+  show data/full
+     currently SET data sets:
+    1> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+               on grid GKQ1 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1981 00:00 to 11-JAN-1982 00:00
+ 
+          time-dependent data files:
+02-JAN-1981 00:00 -> 02-JAN-1981 00:00    tmp/tagg_disjoint_T0varying_1.nc
+02-JAN-1982 00:00 -> 11-JAN-1982 00:00    tmp/tagg_disjoint_T0varying_2.nc
+ 
+    2> myagg8  (default)
+ 
+     T-aggregation of 8 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:62      ...       ...
+               on grid GKQ2 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1981 00:00 to 11-JAN-1988 00:00
+ 
+          time-dependent data files:
+02-JAN-1981 00:00 -> 02-JAN-1981 00:00    tmp/tagg_disjoint_T0varying_1.nc
+02-JAN-1982 00:00 -> 11-JAN-1982 00:00    tmp/tagg_disjoint_T0varying_2.nc
+02-JAN-1983 00:00 -> 02-JAN-1983 00:00    tmp/tagg_disjoint_T0varying_3.nc
+02-JAN-1984 00:00 -> 11-JAN-1984 00:00    tmp/tagg_disjoint_T0varying_4.nc
+02-JAN-1985 00:00 -> 11-JAN-1985 00:00    tmp/tagg_disjoint_T0varying_5.nc
+02-JAN-1986 00:00 -> 11-JAN-1986 00:00    tmp/tagg_disjoint_T0varying_6.nc
+02-JAN-1987 00:00 -> 11-JAN-1987 00:00    tmp/tagg_disjoint_T0varying_7.nc
+02-JAN-1988 00:00 -> 11-JAN-1988 00:00    tmp/tagg_disjoint_T0varying_8.nc
+ 
+  show data myagg2
+     currently SET data sets:
+    1> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+ 
+  show grid/t myvar[d=1]
+    GRID GKQ1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR TIME                11 i   02-JAN-1981 00:00    11-JAN-1982 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
+       2>  02-JAN-1982 00:00:00  183        03-JUL-1981 12:00:00    366
+       3>  03-JAN-1982 00:00:00  1          02-JAN-1982 12:00:00    367
+       4>  04-JAN-1982 00:00:00  1          03-JAN-1982 12:00:00    368
+       5>  05-JAN-1982 00:00:00  1          04-JAN-1982 12:00:00    369
+       6>  06-JAN-1982 00:00:00  1          05-JAN-1982 12:00:00    370
+       7>  07-JAN-1982 00:00:00  1          06-JAN-1982 12:00:00    371
+       8>  08-JAN-1982 00:00:00  1          07-JAN-1982 12:00:00    372
+       9>  09-JAN-1982 00:00:00  1          08-JAN-1982 12:00:00    373
+      10>  10-JAN-1982 00:00:00  1          09-JAN-1982 12:00:00    374
+      11>  11-JAN-1982 00:00:00  1          10-JAN-1982 12:00:00    375
+  show grid myvar[d=2]
+    GRID GKQ2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
+ normal    E
+ normal    F
+  plot/line/sym/vlim=0:11 myvar[d=2],myvar[d=1]
+ 
+! a few tests of using Ferret string variables to get the names of files
+define data/agg/t listAgg1 = {"tmp/tagg_reg_1.nc", "tmp/tagg_reg_2.nc"}
+show data/files listAgg1
+     currently SET data sets:
+    3> listAgg1  (default)
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+          time-dependent data files:
+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
+ 
+ 
+! define a long aggregation
+let file_list = SPAWN("ls -1 tmp/tagg_reg_?.nc")
+define data/agg/t listAgg2 = file_list
+show data/files listAgg2
+     currently SET data sets:
+    4> listAgg2  (default)
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:90      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+21-MAR-1980 00:00 -> 30-MAR-1980 00:00    tmp/tagg_reg_9.nc
+ 
+ 
+! reorder deliberately out of order file of differing lengths
+define data/agg/t myagg8_disordered3 = tmp/tagg_disjoint_T0varying_2.nc, tmp/tagg_disjoint_T0varying_1.nc,tmp/tagg_disjoint_T0varying_5.nc, tmp/tagg_disjoint_T0varying_4.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_8.nc,tmp/tagg_disjoint_T0varying_7.nc, tmp/tagg_disjoint_T0varying_6.nc
+show data/files/brief myagg8_disordered3
+     currently SET data sets:
+    5> myagg8_disordered3  (default)
+          time-dependent data files:
+02-JAN-1981 00:00 -> 02-JAN-1981 00:00    tmp/tagg_disjoint_T0varying_1.nc
+02-JAN-1982 00:00 -> 11-JAN-1982 00:00    tmp/tagg_disjoint_T0varying_2.nc
+02-JAN-1983 00:00 -> 02-JAN-1983 00:00    tmp/tagg_disjoint_T0varying_3.nc
+02-JAN-1984 00:00 -> 11-JAN-1984 00:00    tmp/tagg_disjoint_T0varying_4.nc
+02-JAN-1985 00:00 -> 11-JAN-1985 00:00    tmp/tagg_disjoint_T0varying_5.nc
+02-JAN-1986 00:00 -> 11-JAN-1986 00:00    tmp/tagg_disjoint_T0varying_6.nc
+02-JAN-1987 00:00 -> 11-JAN-1987 00:00    tmp/tagg_disjoint_T0varying_7.nc
+02-JAN-1988 00:00 -> 11-JAN-1988 00:00    tmp/tagg_disjoint_T0varying_8.nc
+ 
+! ... the same calendar axis, but encoded with the T0 of the first file
+show grid/l=1:8 myvar[d=myagg8]
+    GRID GKQ2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
+       2>  02-JAN-1982 00:00:00  183        03-JUL-1981 12:00:00    366
+       3>  03-JAN-1982 00:00:00  1          02-JAN-1982 12:00:00    367
+       4>  04-JAN-1982 00:00:00  1          03-JAN-1982 12:00:00    368
+       5>  05-JAN-1982 00:00:00  1          04-JAN-1982 12:00:00    369
+       6>  06-JAN-1982 00:00:00  1          05-JAN-1982 12:00:00    370
+       7>  07-JAN-1982 00:00:00  1          06-JAN-1982 12:00:00    371
+       8>  08-JAN-1982 00:00:00  1          07-JAN-1982 12:00:00    372
+show grid/l=1:8 myvar[d=myagg8_disordered3]
+    GRID GLF1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR2 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    -364
+       2>  02-JAN-1982 00:00:00  183        03-JUL-1981 12:00:00    1
+       3>  03-JAN-1982 00:00:00  1          02-JAN-1982 12:00:00    2
+       4>  04-JAN-1982 00:00:00  1          03-JAN-1982 12:00:00    3
+       5>  05-JAN-1982 00:00:00  1          04-JAN-1982 12:00:00    4
+       6>  06-JAN-1982 00:00:00  1          05-JAN-1982 12:00:00    5
+       7>  07-JAN-1982 00:00:00  1          06-JAN-1982 12:00:00    6
+       8>  08-JAN-1982 00:00:00  1          07-JAN-1982 12:00:00    7
+ 
+cancel data/all
+ 
+! deliberate errors
+set mode ignore
+! deliberate error - try to re-use a name already in use
+  define data/agg/t myagg2 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc
+ 
+! deliberate error - the fourth file (*_4_wrong.nc) changes time axis name
+define data/agg/t myagg5_bad = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4_wrong.nc,tmp/tagg_disjoint_T0varying_5.nc
+set mode/last ignore
+ 
+canc data/all
+ 
+! --- aggregations of single timestep files ---
+! define a regular aggregation
+define data/agg/t MYsing_reg_agg6 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_3.nc, tmp/tagg_single_4.nc,tmp/tagg_single_5.nc, tmp/tagg_single_6.nc
+show data/full  MYsing_reg_agg6
+     currently SET data sets:
+    1> MYsing_reg_agg6  (default)
+ 
+     T-aggregation of 6 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:6       ...       ...
+               on grid GMI1 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GMI2 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 06-JAN-1980 00:00
+ 
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+03-JAN-1980 00:00 -> 03-JAN-1980 00:00    tmp/tagg_single_3.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+06-JAN-1980 00:00 -> 06-JAN-1980 00:00    tmp/tagg_single_6.nc
+ 
+show grid/t myvar
+    GRID GMI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY1     TIME                 6 r   01-JAN-1980 00:00    06-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
+       2>  02-JAN-1980 00:00:00  1          01-JAN-1980 12:00:00    28841
+       3>  03-JAN-1980 00:00:00  1          02-JAN-1980 12:00:00    28842
+       4>  04-JAN-1980 00:00:00  1          03-JAN-1980 12:00:00    28843
+       5>  05-JAN-1980 00:00:00  1          04-JAN-1980 12:00:00    28844
+       6>  06-JAN-1980 00:00:00  1          05-JAN-1980 12:00:00    28845
+ 
+! read a time-independent field from the first file of the aggregation
+stat mymap
+ 
+             I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]
+             LONGITUDE: 2.5W(-2.5) to 2.5E(362.5)
+             LATITUDE: 82.5S to 82.5N
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: MYsing_reg_agg6
+ 
+ Total # of data points: 2409 (73*33*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 11
+ Maximum value: 403
+ Mean    value: 207 (unweighted average)
+ Standard deviation: 97.543
+ 
+! define an irregular aggregation
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+show data/full MYsing_irreg_agg4
+     currently SET data sets:
+    2> MYsing_irreg_agg4  (default)
+ 
+     T-aggregation of 4 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:4       ...       ...
+               on grid GMI3 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GMI4 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 05-JAN-1980 00:00
+ 
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+show grid/t myvar
+    GRID GMI3
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY2     TIME                 4 i   01-JAN-1980 00:00    05-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
+       2>  02-JAN-1980 00:00:00  1.5        01-JAN-1980 12:00:00    28841
+       3>  04-JAN-1980 00:00:00  1.5        03-JAN-1980 00:00:00    28843
+       4>  05-JAN-1980 00:00:00  1          04-JAN-1980 12:00:00    28844
+ 
+! 2/2016 - reorder deliberately out of order aggregation of irregular times
+define data/agg/t MYsing_irreg_agg4_disordered1 = tmp/tagg_single_2.nc, tmp/tagg_single_1.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+define data/agg/t MYsing_irreg_agg4_disordered2 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_5.nc, tmp/tagg_single_4.nc
+show data/files/brief
+     currently SET data sets:
+    1> MYsing_reg_agg6
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+03-JAN-1980 00:00 -> 03-JAN-1980 00:00    tmp/tagg_single_3.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+06-JAN-1980 00:00 -> 06-JAN-1980 00:00    tmp/tagg_single_6.nc
+ 
+    2> MYsing_irreg_agg4
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+    3> MYsing_irreg_agg4_disordered1
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+    4> MYsing_irreg_agg4_disordered2  (default)
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+stat/brief T[g=myvar[d=MYsing_irreg_agg4]] - T[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+ 
+ Total # of data points: 4 (1*1*1*4*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXLO[g=myvar[d=MYsing_irreg_agg4]] - TBOXLO[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+ 
+ Total # of data points: 4 (1*1*1*4*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXHI[g=myvar[d=MYsing_irreg_agg4]] - TBOXHI[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+ 
+ Total # of data points: 4 (1*1*1*4*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+canc data/all
+ 
+! OPeNDAP test
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
+ !-> IF 1 THEN
+   tseries COADS = http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
+show data COADS
+     currently SET data sets:
+    1> COADS  (default)
+ name     title                             I         J         K         L         M         N
+ AIR      Air Temperature Monthly Mean_da  1:180     1:90      ...       1:36      ...       ...
+ 
+show grid/T air
+    GRID GMW1
+ name       axis              # pts   start                end                 subset
+ 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
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN-2012 12:00:00  31         01-JAN-2012 00:00:00    77446.5
+       2>  15-FEB-2012 12:00:00  29         01-FEB-2012 00:00:00    77476.5
+       3>  16-MAR-2012 12:00:00  31         01-MAR-2012 00:00:00    77506.5
+       4>  16-APR-2012 00:00:00  30         01-APR-2012 00:00:00    77537
+       5>  16-MAY-2012 12:00:00  31         01-MAY-2012 00:00:00    77567.5
+       6>  16-JUN-2012 00:00:00  30         01-JUN-2012 00:00:00    77598
+       7>  16-JUL-2012 12:00:00  31         01-JUL-2012 00:00:00    77628.5
+       8>  16-AUG-2012 12:00:00  31         01-AUG-2012 00:00:00    77659.5
+       9>  16-SEP-2012 00:00:00  30         01-SEP-2012 00:00:00    77690
+      10>  16-OCT-2012 12:00:00  31         01-OCT-2012 00:00:00    77720.5
+      11>  16-NOV-2012 00:00:00  30         01-NOV-2012 00:00:00    77751
+      12>  16-DEC-2012 12:00:00  31         01-DEC-2012 00:00:00    77781.5
+      13>  16-JAN-2013 12:00:00  31         01-JAN-2013 00:00:00    77812.5
+      14>  15-FEB-2013 00:00:00  28         01-FEB-2013 00:00:00    77842
+      15>  16-MAR-2013 12:00:00  31         01-MAR-2013 00:00:00    77871.5
+      16>  16-APR-2013 00:00:00  30         01-APR-2013 00:00:00    77902
+      17>  16-MAY-2013 12:00:00  31         01-MAY-2013 00:00:00    77932.5
+      18>  16-JUN-2013 00:00:00  30         01-JUN-2013 00:00:00    77963
+      19>  16-JUL-2013 12:00:00  31         01-JUL-2013 00:00:00    77993.5
+      20>  16-AUG-2013 12:00:00  31         01-AUG-2013 00:00:00    78024.5
+      21>  16-SEP-2013 00:00:00  30         01-SEP-2013 00:00:00    78055
+      22>  16-OCT-2013 12:00:00  31         01-OCT-2013 00:00:00    78085.5
+      23>  16-NOV-2013 00:00:00  30         01-NOV-2013 00:00:00    78116
+      24>  16-DEC-2013 12:00:00  31         01-DEC-2013 00:00:00    78146.5
+      25>  16-JAN-2014 12:00:00  31         01-JAN-2014 00:00:00    78177.5
+      26>  15-FEB-2014 00:00:00  28         01-FEB-2014 00:00:00    78207
+      27>  16-MAR-2014 12:00:00  31         01-MAR-2014 00:00:00    78236.5
+      28>  16-APR-2014 00:00:00  30         01-APR-2014 00:00:00    78267
+      29>  16-MAY-2014 12:00:00  31         01-MAY-2014 00:00:00    78297.5
+      30>  16-JUN-2014 00:00:00  30         01-JUN-2014 00:00:00    78328
+      31>  16-JUL-2014 12:00:00  31         01-JUL-2014 00:00:00    78358.5
+      32>  16-AUG-2014 12:00:00  31         01-AUG-2014 00:00:00    78389.5
+      33>  16-SEP-2014 00:00:00  30         01-SEP-2014 00:00:00    78420
+      34>  16-OCT-2014 12:00:00  31         01-OCT-2014 00:00:00    78450.5
+      35>  16-NOV-2014 00:00:00  30         01-NOV-2014 00:00:00    78481
+      36>  16-DEC-2014 12:00:00  31         01-DEC-2014 00:00:00    78511.5
+canc data/all
+ELSE
+ENDIF
+ 
+! "USE file.agg" test
+! test the hack to XEQ_SET which permits "SET DATA file.agg" to metamorphose
+! into "GO file.agg"
+spawn echo "define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc,tmp/tagg_reg_3.nc" > tmp/good_agg.agg
+spawn echo "garbage command syntax" > tmp/bad_agg.agg
+ 
+! deliberate errorrs
+! bad .agg aggregation file
+set mode ignore
+USE "tmp/bad_agg.agg"
+garbage command syntax
+ 
+! irregular aggregation with first file duplicated
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+ 
+! irregular aggregation with last file duplicated
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc, tmp/tagg_single_5.nc
+ 
+set/last mode ignore
+ 
+! valid syntax to initialize an aggregation
+USE "tmp/good_agg.agg"
+define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc,tmp/tagg_reg_3.nc
+show data/br
+     currently SET data sets:
+    1> myagg3  (default)
+cancel data/all
+ 
+GO bn_reset
+cancel mode verify
+GO bn_unquoted_args
+! bn_unquoted_args.jnl
+! 12/2015 -- a hack change to PPARSE_COMMAND to allow users to omit
+! the quotation marks in the argument(s) of SET DATA, GO and DEFINE SYMBOL
+ 
+! 2/2016 *sh* removed the GO/HELP tests
+ 
+spawn "mkdir -p tmp"
+ 
+! ****** SET DATA TESTS *****
+! make test files
+save/clobber/file="tmp/test1.nc" i[i=1:3] + 1
+save/clobber/file="tmp/test2.nc" i[i=1:3] + 2
+save/clobber/file="tmp/test3.nc" i[i=1:3] + 3
+! generate absolute path
+let dir = SPAWN("pwd")
+define sym use_abs_path = `DIR+"/tmp/test1.nc"`
+ !-> define sym use_abs_path = /home/users/ansley/build/current_trunk/FERRET/bench/tmp/test1.nc
+say ($use_abs_path)
+ !-> MESSAGE/CONTINUE /home/users/ansley/build/current_trunk/FERRET/bench/tmp/test1.nc
+/home/users/ansley/build/current_trunk/FERRET/bench/tmp/test1.nc
+ 
+use tmp/test1.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use "tmp/test1.nc"
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use "tmp/test1.nc"
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use tmp/test1.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use "($use_abs_path)"
+ !-> SET DAT/FORM=CDF "/home/users/ansley/build/current_trunk/FERRET/bench/tmp/test1.nc"
+show data/brief
+     currently SET data sets:
+    1> /home/users/ansley/build/current_trunk/FERRET/bench/tmp/test1.nc  (default)
+canc data/all
+ 
+use ($use_abs_path)
+ !-> SET DAT/FORM=CDF /home/users/ansley/build/current_trunk/FERRET/bench/tmp/test1.nc
+show data/brief
+     currently SET data sets:
+    1> /home/users/ansley/build/current_trunk/FERRET/bench/tmp/test1.nc  (default)
+canc data/all
+ 
+use tmp/test1.nc,tmp/test2.nc,tmp/test3.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc
+    2> tmp/test2.nc
+    3> tmp/test3.nc  (default)
+canc data/all
+ 
+use tmp/test1.nc,"tmp/test2.nc", tmp/test3.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc
+    2> tmp/test2.nc
+    3> tmp/test3.nc  (default)
+canc data/all
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+  use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+  show data/brief
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+  canc data/all
+  use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  show data/brief
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+  canc data/all
+  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc
+    2> tmp/test2.nc
+    3> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+  canc data/all
+ELSE
+ENDIF
+ 
+! deliberate errors
+! erroneous qualifier with no white space detected
+set mode ignore
+set data/erroneous tmp/test1.nc
+ 
+! erroneous qualifier with white space detected
+set data /erroneous tmp/test1.nc
+ 
+! erroneous qualifier with comma treated as an invalid filename
+set data /erroneous, tmp/test1.nc
+ 
+can mode ignore
+ 
+canc data/all
+ 
+ 
+! ****** GO script tests *****
+! make a dummy GO file for testing
+spawn rm -f tmp/dummy.jnl
+spawn echo "say hello" >tmp/dummy.jnl
+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" $7"7-n/a" $8"8-n/a"' > tmp/testMe.jnl
+ 
+! generate absolute path
+let dir = SPAWN("pwd")
+define sym abs_path = `DIR+"/tmp/testMe.jnl"`
+ !-> define sym abs_path = /home/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl
+say ($abs_path)
+ !-> MESSAGE/CONTINUE /home/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl
+/home/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl
+ 
+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"
+ !-> 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 "tmp/testMe.jnl"
+say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
+ !-> MESSAGE/CONTINUE 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+ 
+go ($abs_path)
+ !-> go /home/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl
+say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
+ !-> MESSAGE/CONTINUE 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+ 
+go "($abs_path)"
+ !-> go "/home/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl"
+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 tmp/testMe 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 "tmp/testMe" 5 hello "bye" "/quoted_path" /unquoted_path
+say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
+ !-> MESSAGE/CONTINUE 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
+5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
+ 
+go ($abs_path) 5 hello "bye" "/quoted_path" /unquoted_path
+ !-> go /home/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl 5 hello "bye" "/quoted_path" /unquoted_path
+say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
+ !-> MESSAGE/CONTINUE 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
+5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
+ 
+go "($abs_path)" 5 hello "bye" "/quoted_path" /unquoted_path
+ !-> go "/home/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl" 5 hello "bye" "/quoted_path" /unquoted_path
+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
+ 
+! test GO/HELP
+! 2/2016 - commented these tests out, tho they work fine.   GO/HELP
+!          apparently runs asynchronously with the bench logging (why?)
+!          This results in the placement of the GO/HELP output shifting in
+!          the benchmark output log -- a hassle when comparing benchmarks
+!go/help tmp/testMe
+!go /help tmp/testMe
+!go/help "tmp/testMe"
+!go/help ($abs_path)
+!go/help "($abs_path)"
+ 
+! a few tests the slipped through the first time
+GO tmp/testMe POLYGON/KEY/lev=20 xpts,ypts,sst,star
+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 POLYGON/KEY/lev=20  xpts  ypts  sst star 6-n/a 7-n/a 8-n/a
+POLYGON/KEY/lev=20  xpts  ypts  sst star 6-n/a 7-n/a 8-n/a
+go "tmp/testMe.jnl" /home/users/tmap/ferret/linux/fer_dsets/data/coads_climatology.cdf
+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 /home/users/tmap/ferret/linux/fer_dsets/data/coads_climatology.cdf  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+/home/users/tmap/ferret/linux/fer_dsets/data/coads_climatology.cdf  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+if 1 then let/quiet mytestvar = whatever
+sh var mytestvar
+ MYTESTVAR = WHATEVER
+ 
+ 
+set mode ignore
+go/garbage tmp/testMe
+go/garbage "tmp/testMe"
+go/garbage ($abs_path)
+go/garbage "($abs_path)"
+set mode/last ignore
+ 
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_long_lists
+! bn_long_lists.jnl
+! See ticket 2337
+!
+! Increase command-line buffer by a factor of 10, to accomodate long lists
+! defined in the variable definition.
+! Also allow for more items in the list.
+ 
+! 2/2016, backed off the extra-long buffer, but keep these tests, on shortened variables.
+ 
+! This one gets its Title truncated
+ 
+let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc"}
+ 
+let longlist = {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0}
+ 
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     LONGLIST = {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8 [...]
+     FILE_LIST = {"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmo [...]
+ 
+! do them in repeat loop
+ 
+repeat/range=1:4:1/name=q (let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0012.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0013.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0014.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0015.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0016.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0017.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0018.t_surf.nc",\
+} )
+!-> REPEAT: Q:1
+!-> REPEAT: Q:2
+!-> REPEAT: Q:3
+!-> REPEAT: Q:4
+ 
+! Intentional errors:
+! Make them longer
+ 
+set mode ignore
+ 
+! Line length still under 2048, but more items than 1000,
+! issues a NOTE that they're not all parsed.
+ 
+let a={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0}
+load a
+ 
+! command line too long
+ 
+let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0012.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0013.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0014.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0015.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0016.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0017.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0018.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0019.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0022.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0023.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0024.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0025.t_surf.nc",\}
+ 
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO bn_show_uvar_grid
+! bn_show_uvar_grid.jnl
+! Add notes to the output of SHOW GRID for variables and expressions
+! indicate compressed axes, point subsets and subset ranges.
+! For grid changing functions just mark axis as such
+!
+! 12/17/2015 *acm*
+! 12/18 2015 *acm* Add constant and constant-array variables,
+!                  and modulo axis request on more than full range
+ 
+use coads_climatology
+show grid sst[x=240:320,y=0,t=@ave]
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            39 pts
+ COADSY    LATITUDE            90 r   89S                  89N                 1 pt
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
+ normal    E
+ normal    F
+ 
+! Modulo axes ask for superset
+show grid sst[x=0:540,L=1:15]
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            269 pts
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        14 pts
+ normal    E
+ normal    F
+ 
+! Constant: full abstract grid
+show grid 1
+    GRID ABSTRACT
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
+ ABSTRACT  Y             99999999 r   1                    1.E+08              full
+ ABSTRACT  Z             99999999 r   1                    1.E+08              full
+ ABSTRACT  T             99999999 r   1                    1.E+08              full
+ ABSTRACT  E             99999999 r   1                    1.E+08              full
+ ABSTRACT  F             99999999 r   1                    1.E+08              full
+ 
+! Constant-array
+show grid {1}
+    GRID XABSTRACT
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              1 pt
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+let var = {1,2,4,8}  ! Note that show grid {1,2,4,8} fails: bug
+show grid var
+    GRID XABSTRACT
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              3 pts
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+ 
+! but don't show any user-var grid info if they just ask for the grid by name
+show grid `sst,return=grid`
+ !-> show grid GSQ1
+    GRID GSQ1
+ name       axis              # pts   start                end
+ COADSX    LONGITUDE          180mr   21E                  19E(379)
+ COADSY    LATITUDE            90 r   89S                  89N
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ normal    E
+ normal    F
+ 
+! grid of last variable loaded
+load sst[x=240,y=@iin,t=@ave]
+show grid
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid GSQ1
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ 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
+ normal    E
+ normal    F
+ 
+! Result grid is full grid
+let var = sst[L=@ave] - sst[x=@max] - sst[y=0]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ 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
+ normal    E
+ normal    F
+ 
+! transform on single-point range is equiv. to single-point subset
+ 
+cancel mode interpolate  ! otherwise single-pt range fails
+let var = sst[X=30 at max]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ 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
+ normal    E
+ normal    F
+set mode/last interpolate
+let var = sst[X=30:30.1 at max]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ 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
+ normal    E
+ normal    F
+ 
+! dynamic grid
+let var = sst[y=-10:10:.1,l=1,x=160e]
+show grid var
+    GRID (G084)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX113)   LATITUDE           201 r   10S                  10N                 200 pts
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
+ normal    E
+ normal    F
+ 
+! striding
+show grid sst[i=1:180:3,j=1:90:2]
+    GRID (G088)
+ name       axis              # pts   start                end                 subset
+ (AX120)   LONGITUDE           60 r   21E                  15E(375)            59 pts
+ (AX133)   LATITUDE            45 r   89S                  87N                 44 pts
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+ 
+! regridding
+ 
+use coads_vwnd
+define axis/t=1-jan-1980:31-dec-1982:1/units=days dax
+let vwnd_days = vwnd[gt=dax,t=1-jun-1982:15-jul-1982]
+sh grid vwnd_days
+    GRID (G088)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ DAX       TIME              1096 r   01-JAN-1980 00:00    31-DEC-1982 00:00   44 pts
+ normal    E
+ normal    F
+ 
+let vwnd_clim = vwnd[gt=month_irreg at mod]
+sh grid vwnd_clim[L=4:9]
+    GRID (G104)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49        5 pts
+ normal    E
+ normal    F
+ 
+can dat/all
+use coads_climatology
+ 
+! non-compressing transforms
+ 
+let var = sst[y=@iin]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+ 
+let var = sst[y=-30:30 at iin]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 29 pts
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+ 
+use levitus_3d_subset
+let var = temp[z=@weq:20]
+show grid var
+    GRID GAO1
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                full
+ normal    T
+ normal    E
+ normal    F
+ 
+let var = temp[z=1:120 at weq:20]
+show grid var
+    GRID GAO1
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                6 pts
+ normal    T
+ normal    E
+ normal    F
+ 
+ 
+! grid-changing functions
+can dat/all
+use levitus_3d_subset
+let depth =  Z[G=TEMP]+ 0*TEMP[K=1]
+let depth_rev = zreverse(depth)
+show grid depth_rev
+    GRID (G083)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ABSTRACT  Z             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    T
+ normal    E
+ normal    F
+ 
+DEFINE AXIS/t=1-Jan-1990:31-Dec-1990:24/t0=1-jan-1980 dayt
+let tpts = t[gt=dayt]
+LET sample_function = sin(0.5*tpts - 6.)/2. - cos(0.3*tpts)
+ 
+show grid ffta(sample_function)
+    GRID (G088)
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ (AX125)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
+ normal    E
+ normal    F
+ 
+show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
+    GRID (G088)
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ (AX133)   T (CYC/HOURS)       76 r   0.00027412           0.020833            (axis from grid-changing func)
+ normal    E
+ normal    F
+ 
+show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
+    GRID (G104)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                3 pts
+ (AX125)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
+ normal    E
+ normal    F
+ 
+can dat/all
+ 
+! auxiliary regridding
+ 
+use levitus_3d_subset.nc
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+let  TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
+ 
+sh grid tempz
+    GRID (G084)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX113)   Z                    5 r   100                  500                 full
+ normal    T
+ normal    E
+ normal    F
+sh grid tempz[z=100:400]
+    GRID (G084)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX113)   Z                    5 r   100                  500                 3 pts
+ normal    T
+ normal    E
+ normal    F
+ 
+! and with a grid-changing function thrown in
+ 
+use levitus_3d_subset.nc
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+LET/D=levitus_3d_subset rvdepth  = rvdepth0[gz=temp at asn]
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp  = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+show grid rvtempzax
+    GRID (G109)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
+ normal    T
+ normal    E
+ normal    F
+ 
+! gc func: limits are hidden so a subset not seen
+ 
+LET rvtempzax = rvtemp[gz(rvdepth)=zax]
+show grid rvtempzax[z=100:300]
+    GRID (G109)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
+ normal    T
+ normal    E
+ normal    F
+ 
+GO bn_reset
+cancel mode verify
+GO bn_aggregate_f
+! bn_aggregate_f.F
+! 12/2015 *sh*
+! 1/2016 *sh* added implicit naming of aggregation from script filename
+ 
+! exercise FMRC aggregations
+ 
+spawn "mkdir -p tmp"     ! tmp directory t store files
+ 
+! *** create an artificial forecast model run collection ***
+ 
+! a 20x20 lat-long region
+define axis/x=140e:160e:1 xax
+define axis/y=20n:40n:1 yax
+ 
+! a 20 year monthly axis starting in Jan 1950
+LET start_year = 1950
+LET nyears = 20
+LET indices = L[L=1:`nyears*12`]
+ !-> DEFINE VARIABLE indices = L[L=1:240]
+LET month = MOD(indices-1,12)+1
+LET year = start_year + INT((indices-1)/12)
+DEFINE AXIS/UNITS=days/T0=1-jan-1900/EDGES truemonth = DAYS1900(year,month,1)
+ 
+! define a moving field with errors increasing from a given forecast date
+let vy = 1/500      ! speed that forecast structure deviates from truth
+!let vx = 1/300
+let vx = (1+(T[gt=truemonth]-tstart)/2000)* 1/300
+let xt = x[gx=xax]-vx*T[gt=truemonth]
+let yt = y[gy=yax]-vy*T[gt=truemonth]
+let field = COS((xt-150)/5)*COS((yt-30)/5)
+let fcst = field + fcst_error
+let static_error = SIN((x[gx=xax]-140)/5)*SIN((y[gy=yax]-20)/5) + RANDU(x[gx=xax]+y[gy=yax])
+let structure_drift = (t[gt=truemonth]-tstart)/5000 * static_error
+let random_error = (t[gt=truemonth]-tstart)/2000 * RANDU(t[gt=truemonth]+x[gx=xax]+y[gy=yax])
+let fcst_error = structure_drift + random_error
+let/title="another variable" fcst_2 = fcst + 2
+ 
+! every 3 months another 2-year forecast
+repeat/name=fdate/range=1:31:3 (let tstart = t[gt=truemonth,l=`fdate`];save/clobber/file="tmp/fcst_`(fdate-1)/3+1`.nc"/l=`fdate`:`fdate+23` fcst,  fcst_2)
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_1.nc"/l=1:24 fcst,  fcst_2
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_2.nc"/l=4:27 fcst,  fcst_2
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_3.nc"/l=7:30 fcst,  fcst_2
+!-> REPEAT: FDATE:10
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_4.nc"/l=10:33 fcst,  fcst_2
+!-> REPEAT: FDATE:13
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=13]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_5.nc"/l=13:36 fcst,  fcst_2
+!-> REPEAT: FDATE:16
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=16]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_6.nc"/l=16:39 fcst,  fcst_2
+!-> REPEAT: FDATE:19
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=19]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_7.nc"/l=19:42 fcst,  fcst_2
+!-> REPEAT: FDATE:22
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=22]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_8.nc"/l=22:45 fcst,  fcst_2
+!-> REPEAT: FDATE:25
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=25]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_9.nc"/l=25:48 fcst,  fcst_2
+!-> REPEAT: FDATE:28
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=28]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_10.nc"/l=28:51 fcst,  fcst_2
+!-> REPEAT: FDATE:31
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=31]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_11.nc"/l=31:54 fcst,  fcst_2
+ 
+! a couple of long (3-year) forecasts
+let tstart = t[gt=truemonth,l=1]
+save/clobber/file="tmp/long_fcst_1.nc"/l=1:36 fcst,fcst_2   ! replaces file 1
+let tstart = t[gt=truemonth,l=16]
+save/clobber/file="tmp/long_fcst_6.nc"/l=16:52 fcst,fcst_2  ! replaces file 6
+ 
+! files lacking the second variable
+let tstart = t[gt=truemonth,l=1]
+save/clobber/file="tmp/one_var_fcst_1.nc"/l=1:24 fcst   ! alternative of file 1
+let tstart = t[gt=truemonth,l=16]
+save/clobber/file="tmp/one_var_fcst_6.nc"/l=16:39 fcst  ! alternative of file 6
+ 
+! files that violate the sequence
+save/clobber/file="tmp/consecutive_month_fcst.nc"/l=5:28 fcst, fcst_2
+! shift the time interpretation by 3 days through altered T0
+DEFINE AXIS/UNITS=days/T0=4-jan-1900/EDGES truemonth = DAYS1900(year,month,1)
+save/clobber/file="tmp/irregular_start_time_fcst.nc"/l=6:29 fcst, fcst_2
+ 
+cancel variables/all
+ 
+! ***** end of FMRC file creation ****************
+ 
+! define a complete FMRC aggregation
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+list files  ! notice that they are not properly ordered
+             VARIABLE : SPAWN("ls -1 tmp/fcst_*.nc")
+             SUBSET   : 11 points (X)
+ 1    /  1:"tmp/fcst_10.nc"
+ 2    /  2:"tmp/fcst_11.nc"
+ 3    /  3:"tmp/fcst_1.nc" 
+ 4    /  4:"tmp/fcst_2.nc" 
+ 5    /  5:"tmp/fcst_3.nc" 
+ 6    /  6:"tmp/fcst_4.nc" 
+ 7    /  7:"tmp/fcst_5.nc" 
+ 8    /  8:"tmp/fcst_6.nc" 
+ 9    /  9:"tmp/fcst_7.nc" 
+ 10   / 10:"tmp/fcst_8.nc" 
+ 11   / 11:"tmp/fcst_9.nc" 
+fmrc my_fmrc = files
+show data/brief    ! note that member files are hidden
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+show data/files my_fmrc
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:11
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1 : tmp/fcst_1.nc
+      2 : tmp/fcst_2.nc
+      3 : tmp/fcst_3.nc
+      4 : tmp/fcst_4.nc
+      5 : tmp/fcst_5.nc
+      6 : tmp/fcst_6.nc
+      7 : tmp/fcst_7.nc
+      8 : tmp/fcst_8.nc
+      9 : tmp/fcst_9.nc
+      10: tmp/fcst_10.nc
+      11: tmp/fcst_11.nc
+show data/attr my_fmrc
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        7    F       my_fmrc
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ FCST                  FLOAT     long_name       CHAR        18   T       FIELD + FCST_ERROR
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        34   T       RUN TIME16 TF_TIMES TIME16 YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ TF_TIMES              FLOAT     long_name       CHAR        25   T       Forecast time step matrix
+                                 units           CHAR        31   T       days since 01-JAN-1900 00:00:00
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 _CoordinateAxisType
+                                                 CHAR        4    T       Time
+                                 calendar        CHAR        9    T       GREGORIAN
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        39   T       TF_CAL_F TIME16 TF_TIMES TIME16 YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ 
+! plot and list the aggregation
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                 1950       1950       1950       1950       1951       1951       1951       1951       1952       1952       1952    
+                  1          2          3          4          5          6          7          8          9         10         11
+ 15.2  /  1:  0.3307804  0.3001368  0.2667996  0.2316579  0.1953346  0.1592990  0.1221931  0.0850729  0.0486031  0.0138040 -0.0198611
+ 45.6  /  2:  0.3453357  0.2965006  0.2624068  0.2239956  0.1893625  0.1504392  0.1121185  0.0863392  0.0524927  0.0195915 -0.0166843
+ 76    /  3:  0.3318969  0.3090819  0.2654114  0.2324281  0.1761227  0.1559338  0.1246391  0.0669682  0.0343878  0.0204617 -0.0157341
+ 106.4 /  4:  0.3183579  0.2979229  0.2596174  0.2171432  0.1555353  0.1280383  0.1215401  0.0854115  0.0421308  0.0447082  0.0361125
+ 136.8 /  5:  0.3159946  0.2500561  0.2424190  0.1722981  0.1347216  0.1037913  0.0877940  0.0543137  0.0702755  0.0260318  0.0391997
+ 167.2 /  6:  0.2887657  0.1864551  0.1544172  0.1888522  0.1184325  0.0887549  0.0829604  0.0452587  0.0910047  0.0881113  0.0345233
+ 197.5 /  7:  0.1718194  0.1641019  0.1848208  0.1603616  0.1176353  0.1330176  0.0443733  0.0939627  0.0787333  0.0613053  0.1457809
+ 227.9 /  8:  0.1266464  0.1874913  0.0982521  0.0971044  0.0575506  0.0528148  0.1195784  0.0732442  0.1282877  0.1029190  0.1146841
+ 258.3 /  9:  0.1415998  0.1048240  0.0792315  0.1301761  0.1277610  0.0587752  0.1379869  0.1240748  0.1065039  0.1049544  0.2175765
+ 288.7 / 10:  0.1274963  0.1033718  0.0771790  0.1415754  0.0450438  0.1200644  0.1678881  0.2024079  0.1394861  0.2275361  0.1589930
+ 319.1 / 11:  0.0385435  0.0194263  0.0738935  0.1482454  0.1247132  0.1833492  0.1286853  0.1830374  0.1406289  0.2100128  0.2537251
+ 349.5 / 12: -0.0358659  0.0084504  0.0425990  0.0577887  0.0798972  0.1691094  0.1258339  0.2192876  0.2261482  0.2005469  0.2237650
+ 379.9 / 13: -0.0169571  0.0135070  0.0328663  0.0698305  0.1095749  0.0967198  0.2150333  0.3087425  0.2491530  0.3527058  0.3197353
+ 410.3 / 14:  0.0478629  0.1403229 -0.0087896  0.0596390  0.1559666  0.1084711  0.2104235  0.1929824  0.2230849  0.4186504  0.3650192
+ 440.7 / 15:  0.1227799  0.0949119  0.1626030  0.1480152  0.1623026  0.2006098  0.1533306  0.2937627  0.3674309  0.2956706  0.4215910
+ 471.1 / 16: -0.0072133  0.1917807  0.0258130  0.1213028  0.2666616  0.1603801  0.2374043  0.3572837  0.4413780  0.3069818  0.3765341
+ 501.5 / 17:  0.0518385  0.0510287  0.0654230  0.1734310  0.2131447  0.1813658  0.2729453  0.3550803  0.4522310  0.3878757  0.4448073
+ 531.8 / 18:  0.0006948  0.1033960  0.0886345  0.2905850  0.2991944  0.1942257  0.3881923  0.3758325  0.2891495  0.2431063  0.2604071
+ 562.2 / 19:  0.1838293  0.1825128  0.3119829  0.2455838  0.2395894  0.2520298  0.4346953  0.2801757  0.3323044  0.1988689  0.2438353
+ 592.6 / 20:  0.1725966  0.2160215  0.3391136  0.3763105  0.1956531  0.1832036  0.2019359  0.1743080  0.4185049  0.4028161  0.4223137
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 54 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          1950       1950       1950       1950       1951       1951       1951       1951       1952       1952       1952    
+                           1          2          3          4          5          6          7          8          9         10         11
+ 16-JAN-1950 12 /  1:  0.3307804       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.3453357       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.3318969       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.3183579  0.3001368       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.3159946  0.2965006       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.2887657  0.3090819       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.1718194  0.2979229  0.2667996       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.1266464  0.2500561  0.2624068       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.1415998  0.1864551  0.2654114       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.1274963  0.1641019  0.2596174  0.2316579       ....       ....       ....       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0385435  0.1874913  0.2424190  0.2239956       ....       ....       ....       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12: -0.0358659  0.1048240  0.1544172  0.2324281       ....       ....       ....       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13: -0.0169571  0.1033718  0.1848208  0.2171432  0.1953346       ....       ....       ....       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0478629  0.0194263  0.0982521  0.1722981  0.1893625       ....       ....       ....       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.1227799  0.0084504  0.0792315  0.1888522  0.1761227       ....       ....       ....       ....       ....       ....
+ 16-APR-1951 00 / 16: -0.0072133  0.0135070  0.0771790  0.1603616  0.1555353  0.1592990       ....       ....       ....       ....       ....
+ 16-MAY-1951 12 / 17:  0.0518385  0.1403229  0.0738935  0.0971044  0.1347216  0.1504392       ....       ....       ....       ....       ....
+ 16-JUN-1951 00 / 18:  0.0006948  0.0949119  0.0425990  0.1301761  0.1184325  0.1559338       ....       ....       ....       ....       ....
+ 16-JUL-1951 12 / 19:  0.1838293  0.1917807  0.0328663  0.1415754  0.1176353  0.1280383  0.1221931       ....       ....       ....       ....
+ 16-AUG-1951 12 / 20:  0.1725966  0.0510287 -0.0087896  0.1482454  0.0575506  0.1037913  0.1121185       ....       ....       ....       ....
+ 16-SEP-1951 00 / 21:  0.3654837  0.1033960  0.1626030  0.0577887  0.1277610  0.0887549  0.1246391       ....       ....       ....       ....
+ 16-OCT-1951 12 / 22:  0.3192576  0.1825128  0.0258130  0.0698305  0.0450438  0.1330176  0.1215401  0.0850729       ....       ....       ....
+ 16-NOV-1951 00 / 23:  0.1828542  0.2160215  0.0654230  0.0596390  0.1247132  0.0528148  0.0877940  0.0863392       ....       ....       ....
+ 16-DEC-1951 12 / 24:  0.4272781  0.3927684  0.0886345  0.1480152  0.0798972  0.0587752  0.0829604  0.0669682       ....       ....       ....
+ 16-JAN-1952 12 / 25:       ....  0.2804252  0.3119829  0.1213028  0.1095749  0.1200644  0.0443733  0.0854115  0.0486031       ....       ....
+ 15-FEB-1952 12 / 26:       ....  0.2154990  0.3391136  0.1734310  0.1559666  0.1833492  0.1195784  0.0543137  0.0524927       ....       ....
+ 16-MAR-1952 12 / 27:       ....  0.2245606  0.2519416  0.2905850  0.1623026  0.1691094  0.1379869  0.0452587  0.0343878       ....       ....
+ 16-APR-1952 00 / 28:       ....       ....  0.2020766  0.2455838  0.2666616  0.0967198  0.1678881  0.0939627  0.0421308  0.0138040       ....
+ 16-MAY-1952 12 / 29:       ....       ....  0.3907234  0.3763105  0.2131447  0.1084711  0.1286853  0.0732442  0.0702755  0.0195915       ....
+ 16-JUN-1952 00 / 30:       ....       ....  0.1899071  0.4072766  0.2991944  0.2006098  0.1258339  0.1240748  0.0910047  0.0204617       ....
+ 16-JUL-1952 12 / 31:       ....       ....       ....  0.3233588  0.2395894  0.1603801  0.2150333  0.2024079  0.0787333  0.0447082 -0.0198611
+ 16-AUG-1952 12 / 32:       ....       ....       ....  0.3334134  0.1956531  0.1813658  0.2104235  0.1830374  0.1282877  0.0260318 -0.0166843
+ 16-SEP-1952 00 / 33:       ....       ....       ....  0.2259139  0.2331061  0.1942257  0.1533306  0.2192876  0.1065039  0.0881113 -0.0157341
+ 16-OCT-1952 12 / 34:       ....       ....       ....       ....  0.4350016  0.2520298  0.2374043  0.3087425  0.1394861  0.0613053  0.0361125
+ 16-NOV-1952 00 / 35:       ....       ....       ....       ....  0.4583276  0.1832036  0.2729453  0.1929824  0.1406289  0.1029190  0.0391997
+ 16-DEC-1952 12 / 36:       ....       ....       ....       ....  0.4632503  0.3564805  0.3881923  0.2937627  0.2261482  0.1049544  0.0345233
+ 16-JAN-1953 12 / 37:       ....       ....       ....       ....       ....  0.2654290  0.4346953  0.3572837  0.2491530  0.2275361  0.1457809
+ 15-FEB-1953 00 / 38:       ....       ....       ....       ....       ....  0.3711777  0.2019359  0.3550803  0.2230849  0.2100128  0.1146841
+ 16-MAR-1953 12 / 39:       ....       ....       ....       ....       ....  0.3677070  0.2476939  0.3758325  0.3674309  0.2005469  0.2175765
+ 16-APR-1953 00 / 40:       ....       ....       ....       ....       ....       ....  0.3270105  0.2801757  0.4413780  0.3527058  0.1589930
+ 16-MAY-1953 12 / 41:       ....       ....       ....       ....       ....       ....  0.1942565  0.1743080  0.4522310  0.4186504  0.2537251
+ 16-JUN-1953 00 / 42:       ....       ....       ....       ....       ....       ....  0.3242278  0.1867072  0.2891495  0.2956706  0.2237650
+ 16-JUL-1953 12 / 43:       ....       ....       ....       ....       ....       ....       ....  0.3779086  0.3323044  0.3069818  0.3197353
+ 16-AUG-1953 12 / 44:       ....       ....       ....       ....       ....       ....       ....  0.2492870  0.4185049  0.3878757  0.3650192
+ 16-SEP-1953 00 / 45:       ....       ....       ....       ....       ....       ....       ....  0.0766919  0.1507479  0.2431063  0.4215910
+ 16-OCT-1953 12 / 46:       ....       ....       ....       ....       ....       ....       ....       ....  0.3271551  0.1988689  0.3765341
+ 16-NOV-1953 00 / 47:       ....       ....       ....       ....       ....       ....       ....       ....  0.3699906  0.4028161  0.4448073
+ 16-DEC-1953 12 / 48:       ....       ....       ....       ....       ....       ....       ....       ....  0.1683819  0.3239236  0.2604071
+ 16-JAN-1954 12 / 49:       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.1105060  0.2438353
+ 15-FEB-1954 00 / 50:       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.3000048  0.4223137
+ 16-MAR-1954 12 / 51:       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.1441574  0.3856444
+ 16-APR-1954 00 / 52:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.1979542
+ 16-MAY-1954 12 / 53:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.2112235
+ 16-JUN-1954 00 / 54:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.2042553
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.8      228        319.2      410.4      501.6      592.8      684     
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.0000000  0.0182211       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.0000000  0.0194940       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.0000000 -0.0203161       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.0000000  0.0311233 -0.0949802       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.0000000 -0.0123508 -0.1357605       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.0000000 -0.0789563 -0.1238116       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000  0.0279596 -0.0675560 -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000  0.0184234 -0.0365043 -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000 -0.0780108 -0.1276041 -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086 -0.0105139 -0.0919628 -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644 -0.0911104 -0.1699362 -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295 -0.0968911 -0.1676723 -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626 -0.0821200 -0.1457920 -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348 -0.0765457 -0.0101163 -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577 -0.1133348 -0.0610220 -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823 -0.0893268  0.0695876  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269 -0.1209081 -0.0610898  0.0604781       ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.8      228        319.2      410.4      501.6      592.8      684     
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.0000000  0.0182211       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.0000000  0.0194940       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.0000000 -0.0203161       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.0000000  0.0311233 -0.0949802       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.0000000 -0.0123508 -0.1357605       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.0000000 -0.0789563 -0.1238116       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000  0.0279596 -0.0675560 -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000  0.0184234 -0.0365043 -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000 -0.0780108 -0.1276041 -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086 -0.0105139 -0.0919628 -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644 -0.0911104 -0.1699362 -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295 -0.0968911 -0.1676723 -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626 -0.0821200 -0.1457920 -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348 -0.0765457 -0.0101163 -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577 -0.1133348 -0.0610220 -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823 -0.0893268  0.0695876  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269 -0.1209081 -0.0610898  0.0604781       ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+ 
+cancel data my_fmrc
+show data/hidden   ! note that all member files were canceled, too
+     currently SET data sets:
+ 
+! agg with 2nd, 3rd, 9th and 10th forecasts missing
+use tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_9.nc, tmp/fcst_10.nc, tmp/fcst_11.nc
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc/hide my_fmrc = XCAT(files[I=6:10],{"6","1"})           ! double-wide gaps
+!fmrc my_fmrc = XCAT(files[I=6:10],{"6","1","2","5"})  ! single-wide gaps
+show data/files my_fmrc
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:11
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1 : tmp/fcst_1.nc
+      2 : (dummy)
+      3 : (dummy)
+      4 : tmp/fcst_4.nc
+      5 : tmp/fcst_5.nc
+      6 : tmp/fcst_6.nc
+      7 : tmp/fcst_7.nc
+      8 : tmp/fcst_8.nc
+      9 : (dummy)
+      10: (dummy)
+      11: tmp/fcst_11.nc
+show data/brief
+     currently SET data sets:
+    2> tmp/fcst_2.nc
+    3> tmp/fcst_3.nc
+    4> tmp/fcst_9.nc
+    5> tmp/fcst_10.nc
+   12> my_fmrc  (default)  Forecast aggregation
+LIST tf_times
+             VARIABLE : Forecast time step matrix (days since 01-JAN-1900 00:00:00)
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 24 by 11 points (MODEL ELAPSED TIME (day)-FORECAST)
+             Verification time increases across row.  Initialization time increases down page. 
+      ... listing every   3th point
+                       15.2     106.4     197.5     288.7     379.9     471.1     562.2     653.4   
+                        1         4         7        10        13        16        19        22
+ 01-JAN-1950 /  1:  18277.50  18367.00  18458.50  18550.50  18642.50  18732.00  18823.50  18915.50
+ 01-APR-1950 /  2:  18367.00  18458.50  18550.50  18642.50  18732.00  18823.50  18915.50  19007.50
+ 01-JUL-1950 /  3:  18458.50  18550.50  18642.50  18732.00  18823.50  18915.50  19007.50  19098.00
+ 01-OCT-1950 /  4:  18550.50  18642.50  18732.00  18823.50  18915.50  19007.50  19098.00  19189.50
+ 01-JAN-1951 /  5:  18642.50  18732.00  18823.50  18915.50  19007.50  19098.00  19189.50  19281.50
+ 01-APR-1951 /  6:  18732.00  18823.50  18915.50  19007.50  19098.00  19189.50  19281.50  19373.50
+ 01-JUL-1951 /  7:  18823.50  18915.50  19007.50  19098.00  19189.50  19281.50  19373.50  19463.00
+ 01-OCT-1951 /  8:  18915.50  19007.50  19098.00  19189.50  19281.50  19373.50  19463.00  19554.50
+ 01-JAN-1952 /  9:  19007.50  19098.00  19189.50  19281.50  19373.50  19463.00  19554.50  19646.50
+ 01-APR-1952 / 10:  19098.00  19189.50  19281.50  19373.50  19463.00  19554.50  19646.50  19738.50
+ 01-JUL-1952 / 11:  19189.50  19281.50  19373.50  19463.00  19554.50  19646.50  19738.50  19828.00
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                 1950       1950       1950       1950       1951       1951       1951       1951       1952       1952       1952    
+                  1          2          3          4          5          6          7          8          9         10         11
+ 15.2  /  1:  0.3307804       ....       ....  0.2316579  0.1953346  0.1592990  0.1221931  0.0850729       ....       .... -0.0198611
+ 45.6  /  2:  0.3453357       ....       ....  0.2239956  0.1893625  0.1504392  0.1121185  0.0863392       ....       .... -0.0166843
+ 76    /  3:  0.3318969       ....       ....  0.2324281  0.1761227  0.1559338  0.1246391  0.0669682       ....       .... -0.0157341
+ 106.4 /  4:  0.3183579       ....       ....  0.2171432  0.1555353  0.1280383  0.1215401  0.0854115       ....       ....  0.0361125
+ 136.8 /  5:  0.3159946       ....       ....  0.1722981  0.1347216  0.1037913  0.0877940  0.0543137       ....       ....  0.0391997
+ 167.2 /  6:  0.2887657       ....       ....  0.1888522  0.1184325  0.0887549  0.0829604  0.0452587       ....       ....  0.0345233
+ 197.5 /  7:  0.1718194       ....       ....  0.1603616  0.1176353  0.1330176  0.0443733  0.0939627       ....       ....  0.1457809
+ 227.9 /  8:  0.1266464       ....       ....  0.0971044  0.0575506  0.0528148  0.1195784  0.0732442       ....       ....  0.1146841
+ 258.3 /  9:  0.1415998       ....       ....  0.1301761  0.1277610  0.0587752  0.1379869  0.1240748       ....       ....  0.2175765
+ 288.7 / 10:  0.1274963       ....       ....  0.1415754  0.0450438  0.1200644  0.1678881  0.2024079       ....       ....  0.1589930
+ 319.1 / 11:  0.0385435       ....       ....  0.1482454  0.1247132  0.1833492  0.1286853  0.1830374       ....       ....  0.2537251
+ 349.5 / 12: -0.0358659       ....       ....  0.0577887  0.0798972  0.1691094  0.1258339  0.2192876       ....       ....  0.2237650
+ 379.9 / 13: -0.0169571       ....       ....  0.0698305  0.1095749  0.0967198  0.2150333  0.3087425       ....       ....  0.3197353
+ 410.3 / 14:  0.0478629       ....       ....  0.0596390  0.1559666  0.1084711  0.2104235  0.1929824       ....       ....  0.3650192
+ 440.7 / 15:  0.1227799       ....       ....  0.1480152  0.1623026  0.2006098  0.1533306  0.2937627       ....       ....  0.4215910
+ 471.1 / 16: -0.0072133       ....       ....  0.1213028  0.2666616  0.1603801  0.2374043  0.3572837       ....       ....  0.3765341
+ 501.5 / 17:  0.0518385       ....       ....  0.1734310  0.2131447  0.1813658  0.2729453  0.3550803       ....       ....  0.4448073
+ 531.8 / 18:  0.0006948       ....       ....  0.2905850  0.2991944  0.1942257  0.3881923  0.3758325       ....       ....  0.2604071
+ 562.2 / 19:  0.1838293       ....       ....  0.2455838  0.2395894  0.2520298  0.4346953  0.2801757       ....       ....  0.2438353
+ 592.6 / 20:  0.1725966       ....       ....  0.3763105  0.1956531  0.1832036  0.2019359  0.1743080       ....       ....  0.4223137
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 54 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          1950       1950       1950       1950       1951       1951       1951       1951       1952       1952       1952    
+                           1          2          3          4          5          6          7          8          9         10         11
+ 16-JAN-1950 12 /  1:  0.3307804       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.3453357       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.3318969       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.3183579       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.3159946       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.2887657       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.1718194       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.1266464       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.1415998       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.1274963       ....       ....  0.2316579       ....       ....       ....       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0385435       ....       ....  0.2239956       ....       ....       ....       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12: -0.0358659       ....       ....  0.2324281       ....       ....       ....       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13: -0.0169571       ....       ....  0.2171432  0.1953346       ....       ....       ....       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0478629       ....       ....  0.1722981  0.1893625       ....       ....       ....       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.1227799       ....       ....  0.1888522  0.1761227       ....       ....       ....       ....       ....       ....
+ 16-APR-1951 00 / 16: -0.0072133       ....       ....  0.1603616  0.1555353  0.1592990       ....       ....       ....       ....       ....
+ 16-MAY-1951 12 / 17:  0.0518385       ....       ....  0.0971044  0.1347216  0.1504392       ....       ....       ....       ....       ....
+ 16-JUN-1951 00 / 18:  0.0006948       ....       ....  0.1301761  0.1184325  0.1559338       ....       ....       ....       ....       ....
+ 16-JUL-1951 12 / 19:  0.1838293       ....       ....  0.1415754  0.1176353  0.1280383  0.1221931       ....       ....       ....       ....
+ 16-AUG-1951 12 / 20:  0.1725966       ....       ....  0.1482454  0.0575506  0.1037913  0.1121185       ....       ....       ....       ....
+ 16-SEP-1951 00 / 21:  0.3654837       ....       ....  0.0577887  0.1277610  0.0887549  0.1246391       ....       ....       ....       ....
+ 16-OCT-1951 12 / 22:  0.3192576       ....       ....  0.0698305  0.0450438  0.1330176  0.1215401  0.0850729       ....       ....       ....
+ 16-NOV-1951 00 / 23:  0.1828542       ....       ....  0.0596390  0.1247132  0.0528148  0.0877940  0.0863392       ....       ....       ....
+ 16-DEC-1951 12 / 24:  0.4272781       ....       ....  0.1480152  0.0798972  0.0587752  0.0829604  0.0669682       ....       ....       ....
+ 16-JAN-1952 12 / 25:       ....       ....       ....  0.1213028  0.1095749  0.1200644  0.0443733  0.0854115       ....       ....       ....
+ 15-FEB-1952 12 / 26:       ....       ....       ....  0.1734310  0.1559666  0.1833492  0.1195784  0.0543137       ....       ....       ....
+ 16-MAR-1952 12 / 27:       ....       ....       ....  0.2905850  0.1623026  0.1691094  0.1379869  0.0452587       ....       ....       ....
+ 16-APR-1952 00 / 28:       ....       ....       ....  0.2455838  0.2666616  0.0967198  0.1678881  0.0939627       ....       ....       ....
+ 16-MAY-1952 12 / 29:       ....       ....       ....  0.3763105  0.2131447  0.1084711  0.1286853  0.0732442       ....       ....       ....
+ 16-JUN-1952 00 / 30:       ....       ....       ....  0.4072766  0.2991944  0.2006098  0.1258339  0.1240748       ....       ....       ....
+ 16-JUL-1952 12 / 31:       ....       ....       ....  0.3233588  0.2395894  0.1603801  0.2150333  0.2024079       ....       .... -0.0198611
+ 16-AUG-1952 12 / 32:       ....       ....       ....  0.3334134  0.1956531  0.1813658  0.2104235  0.1830374       ....       .... -0.0166843
+ 16-SEP-1952 00 / 33:       ....       ....       ....  0.2259139  0.2331061  0.1942257  0.1533306  0.2192876       ....       .... -0.0157341
+ 16-OCT-1952 12 / 34:       ....       ....       ....       ....  0.4350016  0.2520298  0.2374043  0.3087425       ....       ....  0.0361125
+ 16-NOV-1952 00 / 35:       ....       ....       ....       ....  0.4583276  0.1832036  0.2729453  0.1929824       ....       ....  0.0391997
+ 16-DEC-1952 12 / 36:       ....       ....       ....       ....  0.4632503  0.3564805  0.3881923  0.2937627       ....       ....  0.0345233
+ 16-JAN-1953 12 / 37:       ....       ....       ....       ....       ....  0.2654290  0.4346953  0.3572837       ....       ....  0.1457809
+ 15-FEB-1953 00 / 38:       ....       ....       ....       ....       ....  0.3711777  0.2019359  0.3550803       ....       ....  0.1146841
+ 16-MAR-1953 12 / 39:       ....       ....       ....       ....       ....  0.3677070  0.2476939  0.3758325       ....       ....  0.2175765
+ 16-APR-1953 00 / 40:       ....       ....       ....       ....       ....       ....  0.3270105  0.2801757       ....       ....  0.1589930
+ 16-MAY-1953 12 / 41:       ....       ....       ....       ....       ....       ....  0.1942565  0.1743080       ....       ....  0.2537251
+ 16-JUN-1953 00 / 42:       ....       ....       ....       ....       ....       ....  0.3242278  0.1867072       ....       ....  0.2237650
+ 16-JUL-1953 12 / 43:       ....       ....       ....       ....       ....       ....       ....  0.3779086       ....       ....  0.3197353
+ 16-AUG-1953 12 / 44:       ....       ....       ....       ....       ....       ....       ....  0.2492870       ....       ....  0.3650192
+ 16-SEP-1953 00 / 45:       ....       ....       ....       ....       ....       ....       ....  0.0766919       ....       ....  0.4215910
+ 16-OCT-1953 12 / 46:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.3765341
+ 16-NOV-1953 00 / 47:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.4448073
+ 16-DEC-1953 12 / 48:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.2604071
+ 16-JAN-1954 12 / 49:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.2438353
+ 15-FEB-1954 00 / 50:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.4223137
+ 16-MAR-1954 12 / 51:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.3856444
+ 16-APR-1954 00 / 52:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.1979542
+ 16-MAY-1954 12 / 53:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.2112235
+ 16-JUN-1954 00 / 54:       ....       ....       ....       ....       ....       ....       ....       ....       ....       ....  0.2042553
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.8      228        319.2      410.4      501.6      592.8      684     
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000       ....       .... -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000       ....       .... -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000       ....       .... -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086       ....       .... -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644       ....       .... -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295       ....       .... -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626       ....       .... -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348       ....       .... -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577       ....       .... -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823       ....       ....  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269       ....       ....  0.0604781       ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.8      228        319.2      410.4      501.6      592.8      684     
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000       ....       .... -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000       ....       .... -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000       ....       .... -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086       ....       .... -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644       ....       .... -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295       ....       .... -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626       ....       .... -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348       ....       .... -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577       ....       .... -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823       ....       ....  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269       ....       ....  0.0604781       ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+ 
+cancel data my_fmrc
+show data/brief/hidden
+     currently SET data sets:
+    2> tmp/fcst_2.nc
+    3> tmp/fcst_3.nc
+    4> tmp/fcst_9.nc
+    5> tmp/fcst_10.nc
+    6> tmp/fcst_11.nc
+    7> tmp/fcst_4.nc
+    8> tmp/fcst_5.nc
+    9> tmp/fcst_6.nc
+   10> tmp/fcst_7.nc
+   11> tmp/fcst_8.nc
+   12> my_fmrc  (default)  Forecast aggregation
+cancel data/all
+ 
+! agg with the first forecast of longer time range than the others
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc/hide my_fmrc = XCAT(files[I=4:11],{"tmp/long_fcst_1.nc"}) ! first member is long
+show data/files my_fmrc
+     currently SET data sets:
+   10> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:9
+       (L=1:36)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:9
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:9
+       (L=1:36)
+ 
+          Aggregated datasets:
+      1: tmp/long_fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/fcst_6.nc
+      7: tmp/fcst_7.nc
+      8: tmp/fcst_8.nc
+      9: tmp/fcst_9.nc
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 9 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                 1950       1950       1950       1950       1951       1951       1951       1951       1952    
+                  1          2          3          4          5          6          7          8          9
+ 15.2  /  1:  0.3307804  0.3001368  0.2667996  0.2316579  0.1953346  0.1592990  0.1221931  0.0850729  0.0486031
+ 45.6  /  2:  0.3453357  0.2965006  0.2624068  0.2239956  0.1893625  0.1504392  0.1121185  0.0863392  0.0524927
+ 76    /  3:  0.3318969  0.3090819  0.2654114  0.2324281  0.1761227  0.1559338  0.1246391  0.0669682  0.0343878
+ 106.4 /  4:  0.3183579  0.2979229  0.2596174  0.2171432  0.1555353  0.1280383  0.1215401  0.0854115  0.0421308
+ 136.8 /  5:  0.3159946  0.2500561  0.2424190  0.1722981  0.1347216  0.1037913  0.0877940  0.0543137  0.0702755
+ 167.2 /  6:  0.2887657  0.1864551  0.1544172  0.1888522  0.1184325  0.0887549  0.0829604  0.0452587  0.0910047
+ 197.5 /  7:  0.1718194  0.1641019  0.1848208  0.1603616  0.1176353  0.1330176  0.0443733  0.0939627  0.0787333
+ 227.9 /  8:  0.1266464  0.1874913  0.0982521  0.0971044  0.0575506  0.0528148  0.1195784  0.0732442  0.1282877
+ 258.3 /  9:  0.1415998  0.1048240  0.0792315  0.1301761  0.1277610  0.0587752  0.1379869  0.1240748  0.1065039
+ 288.7 / 10:  0.1274963  0.1033718  0.0771790  0.1415754  0.0450438  0.1200644  0.1678881  0.2024079  0.1394861
+ 319.1 / 11:  0.0385435  0.0194263  0.0738935  0.1482454  0.1247132  0.1833492  0.1286853  0.1830374  0.1406289
+ 349.5 / 12: -0.0358659  0.0084504  0.0425990  0.0577887  0.0798972  0.1691094  0.1258339  0.2192876  0.2261482
+ 379.9 / 13: -0.0169571  0.0135070  0.0328663  0.0698305  0.1095749  0.0967198  0.2150333  0.3087425  0.2491530
+ 410.3 / 14:  0.0478629  0.1403229 -0.0087896  0.0596390  0.1559666  0.1084711  0.2104235  0.1929824  0.2230849
+ 440.7 / 15:  0.1227799  0.0949119  0.1626030  0.1480152  0.1623026  0.2006098  0.1533306  0.2937627  0.3674309
+ 471.1 / 16: -0.0072133  0.1917807  0.0258130  0.1213028  0.2666616  0.1603801  0.2374043  0.3572837  0.4413780
+ 501.5 / 17:  0.0518385  0.0510287  0.0654230  0.1734310  0.2131447  0.1813658  0.2729453  0.3550803  0.4522310
+ 531.8 / 18:  0.0006948  0.1033960  0.0886345  0.2905850  0.2991944  0.1942257  0.3881923  0.3758325  0.2891495
+ 562.2 / 19:  0.1838293  0.1825128  0.3119829  0.2455838  0.2395894  0.2520298  0.4346953  0.2801757  0.3323044
+ 592.6 / 20:  0.1725966  0.2160215  0.3391136  0.3763105  0.1956531  0.1832036  0.2019359  0.1743080  0.4185049
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 9 by 48 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          1950       1950       1950       1950       1951       1951       1951       1951       1952    
+                           1          2          3          4          5          6          7          8          9
+ 16-JAN-1950 12 /  1:  0.3307804       ....       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.3453357       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.3318969       ....       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.3183579  0.3001368       ....       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.3159946  0.2965006       ....       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.2887657  0.3090819       ....       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.1718194  0.2979229  0.2667996       ....       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.1266464  0.2500561  0.2624068       ....       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.1415998  0.1864551  0.2654114       ....       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.1274963  0.1641019  0.2596174  0.2316579       ....       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0385435  0.1874913  0.2424190  0.2239956       ....       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12: -0.0358659  0.1048240  0.1544172  0.2324281       ....       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13: -0.0169571  0.1033718  0.1848208  0.2171432  0.1953346       ....       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0478629  0.0194263  0.0982521  0.1722981  0.1893625       ....       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.1227799  0.0084504  0.0792315  0.1888522  0.1761227       ....       ....       ....       ....
+ 16-APR-1951 00 / 16: -0.0072133  0.0135070  0.0771790  0.1603616  0.1555353  0.1592990       ....       ....       ....
+ 16-MAY-1951 12 / 17:  0.0518385  0.1403229  0.0738935  0.0971044  0.1347216  0.1504392       ....       ....       ....
+ 16-JUN-1951 00 / 18:  0.0006948  0.0949119  0.0425990  0.1301761  0.1184325  0.1559338       ....       ....       ....
+ 16-JUL-1951 12 / 19:  0.1838293  0.1917807  0.0328663  0.1415754  0.1176353  0.1280383  0.1221931       ....       ....
+ 16-AUG-1951 12 / 20:  0.1725966  0.0510287 -0.0087896  0.1482454  0.0575506  0.1037913  0.1121185       ....       ....
+ 16-SEP-1951 00 / 21:  0.3654837  0.1033960  0.1626030  0.0577887  0.1277610  0.0887549  0.1246391       ....       ....
+ 16-OCT-1951 12 / 22:  0.3192576  0.1825128  0.0258130  0.0698305  0.0450438  0.1330176  0.1215401  0.0850729       ....
+ 16-NOV-1951 00 / 23:  0.1828542  0.2160215  0.0654230  0.0596390  0.1247132  0.0528148  0.0877940  0.0863392       ....
+ 16-DEC-1951 12 / 24:  0.4272781  0.3927684  0.0886345  0.1480152  0.0798972  0.0587752  0.0829604  0.0669682       ....
+ 16-JAN-1952 12 / 25:       ....  0.2804252  0.3119829  0.1213028  0.1095749  0.1200644  0.0443733  0.0854115  0.0486031
+ 15-FEB-1952 12 / 26:       ....  0.2154990  0.3391136  0.1734310  0.1559666  0.1833492  0.1195784  0.0543137  0.0524927
+ 16-MAR-1952 12 / 27:       ....  0.2245606  0.2519416  0.2905850  0.1623026  0.1691094  0.1379869  0.0452587  0.0343878
+ 16-APR-1952 00 / 28:       ....       ....  0.2020766  0.2455838  0.2666616  0.0967198  0.1678881  0.0939627  0.0421308
+ 16-MAY-1952 12 / 29:       ....       ....  0.3907234  0.3763105  0.2131447  0.1084711  0.1286853  0.0732442  0.0702755
+ 16-JUN-1952 00 / 30:       ....       ....  0.1899071  0.4072766  0.2991944  0.2006098  0.1258339  0.1240748  0.0910047
+ 16-JUL-1952 12 / 31:       ....       ....       ....  0.3233588  0.2395894  0.1603801  0.2150333  0.2024079  0.0787333
+ 16-AUG-1952 12 / 32:       ....       ....       ....  0.3334134  0.1956531  0.1813658  0.2104235  0.1830374  0.1282877
+ 16-SEP-1952 00 / 33:       ....       ....       ....  0.2259139  0.2331061  0.1942257  0.1533306  0.2192876  0.1065039
+ 16-OCT-1952 12 / 34:       ....       ....       ....       ....  0.4350016  0.2520298  0.2374043  0.3087425  0.1394861
+ 16-NOV-1952 00 / 35:       ....       ....       ....       ....  0.4583276  0.1832036  0.2729453  0.1929824  0.1406289
+ 16-DEC-1952 12 / 36:       ....       ....       ....       ....  0.4632503  0.3564805  0.3881923  0.2937627  0.2261482
+ 16-JAN-1953 12 / 37:       ....       ....       ....       ....       ....  0.2654290  0.4346953  0.3572837  0.2491530
+ 15-FEB-1953 00 / 38:       ....       ....       ....       ....       ....  0.3711777  0.2019359  0.3550803  0.2230849
+ 16-MAR-1953 12 / 39:       ....       ....       ....       ....       ....  0.3677070  0.2476939  0.3758325  0.3674309
+ 16-APR-1953 00 / 40:       ....       ....       ....       ....       ....       ....  0.3270105  0.2801757  0.4413780
+ 16-MAY-1953 12 / 41:       ....       ....       ....       ....       ....       ....  0.1942565  0.1743080  0.4522310
+ 16-JUN-1953 00 / 42:       ....       ....       ....       ....       ....       ....  0.3242278  0.1867072  0.2891495
+ 16-JUL-1953 12 / 43:       ....       ....       ....       ....       ....       ....       ....  0.3779086  0.3323044
+ 16-AUG-1953 12 / 44:       ....       ....       ....       ....       ....       ....       ....  0.2492870  0.4185049
+ 16-SEP-1953 00 / 45:       ....       ....       ....       ....       ....       ....       ....  0.0766919  0.1507479
+ 16-OCT-1953 12 / 46:       ....       ....       ....       ....       ....       ....       ....       ....  0.3271551
+ 16-NOV-1953 00 / 47:       ....       ....       ....       ....       ....       ....       ....       ....  0.3699906
+ 16-DEC-1953 12 / 48:       ....       ....       ....       ....       ....       ....       ....       ....  0.1683819
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.9      228.1      319.4      410.6      501.9      593.1      684.4   
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.0000000  0.0182211       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.0000000  0.0194940       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.0000000 -0.0203161       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.0000000  0.0311233 -0.0949802       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.0000000 -0.0123508 -0.1357605       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.0000000 -0.0789563 -0.1238116       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000  0.0279596 -0.0675560 -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000  0.0184234 -0.0365043 -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000 -0.0780108 -0.1276041 -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086 -0.0105139 -0.0919628 -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644 -0.0911104 -0.1699362 -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295 -0.0968911 -0.1676723 -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626 -0.0821200 -0.1457920 -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348 -0.0765457 -0.0101163 -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577 -0.1133348 -0.0610220 -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823 -0.0893268  0.0695876  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269 -0.1209081 -0.0610898  0.0604781       ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.9      228.1      319.4      410.6      501.9      593.1      684.4   
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.0000000  0.0182211       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.0000000  0.0194940       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.0000000 -0.0203161       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.0000000  0.0311233 -0.0949802       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.0000000 -0.0123508 -0.1357605       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.0000000 -0.0789563 -0.1238116       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000  0.0279596 -0.0675560 -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000  0.0184234 -0.0365043 -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000 -0.0780108 -0.1276041 -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086 -0.0105139 -0.0919628 -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644 -0.0911104 -0.1699362 -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295 -0.0968911 -0.1676723 -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626 -0.0821200 -0.1457920 -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348 -0.0765457 -0.0101163 -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577 -0.1133348 -0.0610220 -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823 -0.0893268  0.0695876  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269 -0.1209081 -0.0610898  0.0604781       ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+cancel data my_fmrc
+ 
+! agg with the sixth forecast of longer time range than the others
+fmrc/hide my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/long_fcst_6.nc, tmp/fcst_7.nc, tmp/fcst_8.nc
+show data/files my_fmrc
+     currently SET data sets:
+    9> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:8
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:8
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:8
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/long_fcst_6.nc
+      7: tmp/fcst_7.nc
+      8: tmp/fcst_8.nc
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                 1950       1950       1950       1950       1951       1951       1951       1951    
+                  1          2          3          4          5          6          7          8
+ 15.2  /  1:  0.3307804  0.3001368  0.2667996  0.2316579  0.1953346  0.1592990  0.1221931  0.0850729
+ 45.6  /  2:  0.3453357  0.2965006  0.2624068  0.2239956  0.1893625  0.1504392  0.1121185  0.0863392
+ 76    /  3:  0.3318969  0.3090819  0.2654114  0.2324281  0.1761227  0.1559338  0.1246391  0.0669682
+ 106.4 /  4:  0.3183579  0.2979229  0.2596174  0.2171432  0.1555353  0.1280383  0.1215401  0.0854115
+ 136.8 /  5:  0.3159946  0.2500561  0.2424190  0.1722981  0.1347216  0.1037913  0.0877940  0.0543137
+ 167.2 /  6:  0.2887657  0.1864551  0.1544172  0.1888522  0.1184325  0.0887549  0.0829604  0.0452587
+ 197.5 /  7:  0.1718194  0.1641019  0.1848208  0.1603616  0.1176353  0.1330176  0.0443733  0.0939627
+ 227.9 /  8:  0.1266464  0.1874913  0.0982521  0.0971044  0.0575506  0.0528148  0.1195784  0.0732442
+ 258.3 /  9:  0.1415998  0.1048240  0.0792315  0.1301761  0.1277610  0.0587752  0.1379869  0.1240748
+ 288.7 / 10:  0.1274963  0.1033718  0.0771790  0.1415754  0.0450438  0.1200644  0.1678881  0.2024079
+ 319.1 / 11:  0.0385435  0.0194263  0.0738935  0.1482454  0.1247132  0.1833492  0.1286853  0.1830374
+ 349.5 / 12: -0.0358659  0.0084504  0.0425990  0.0577887  0.0798972  0.1691094  0.1258339  0.2192876
+ 379.9 / 13: -0.0169571  0.0135070  0.0328663  0.0698305  0.1095749  0.0967198  0.2150333  0.3087425
+ 410.3 / 14:  0.0478629  0.1403229 -0.0087896  0.0596390  0.1559666  0.1084711  0.2104235  0.1929824
+ 440.7 / 15:  0.1227799  0.0949119  0.1626030  0.1480152  0.1623026  0.2006098  0.1533306  0.2937627
+ 471.1 / 16: -0.0072133  0.1917807  0.0258130  0.1213028  0.2666616  0.1603801  0.2374043  0.3572837
+ 501.5 / 17:  0.0518385  0.0510287  0.0654230  0.1734310  0.2131447  0.1813658  0.2729453  0.3550803
+ 531.8 / 18:  0.0006948  0.1033960  0.0886345  0.2905850  0.2991944  0.1942257  0.3881923  0.3758325
+ 562.2 / 19:  0.1838293  0.1825128  0.3119829  0.2455838  0.2395894  0.2520298  0.4346953  0.2801757
+ 592.6 / 20:  0.1725966  0.2160215  0.3391136  0.3763105  0.1956531  0.1832036  0.2019359  0.1743080
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 45 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          1950       1950       1950       1950       1951       1951       1951       1951    
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.3307804       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.3453357       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.3318969       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.3183579  0.3001368       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.3159946  0.2965006       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.2887657  0.3090819       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.1718194  0.2979229  0.2667996       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.1266464  0.2500561  0.2624068       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.1415998  0.1864551  0.2654114       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.1274963  0.1641019  0.2596174  0.2316579       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0385435  0.1874913  0.2424190  0.2239956       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12: -0.0358659  0.1048240  0.1544172  0.2324281       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13: -0.0169571  0.1033718  0.1848208  0.2171432  0.1953346       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0478629  0.0194263  0.0982521  0.1722981  0.1893625       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.1227799  0.0084504  0.0792315  0.1888522  0.1761227       ....       ....       ....
+ 16-APR-1951 00 / 16: -0.0072133  0.0135070  0.0771790  0.1603616  0.1555353  0.1592990       ....       ....
+ 16-MAY-1951 12 / 17:  0.0518385  0.1403229  0.0738935  0.0971044  0.1347216  0.1504392       ....       ....
+ 16-JUN-1951 00 / 18:  0.0006948  0.0949119  0.0425990  0.1301761  0.1184325  0.1559338       ....       ....
+ 16-JUL-1951 12 / 19:  0.1838293  0.1917807  0.0328663  0.1415754  0.1176353  0.1280383  0.1221931       ....
+ 16-AUG-1951 12 / 20:  0.1725966  0.0510287 -0.0087896  0.1482454  0.0575506  0.1037913  0.1121185       ....
+ 16-SEP-1951 00 / 21:  0.3654837  0.1033960  0.1626030  0.0577887  0.1277610  0.0887549  0.1246391       ....
+ 16-OCT-1951 12 / 22:  0.3192576  0.1825128  0.0258130  0.0698305  0.0450438  0.1330176  0.1215401  0.0850729
+ 16-NOV-1951 00 / 23:  0.1828542  0.2160215  0.0654230  0.0596390  0.1247132  0.0528148  0.0877940  0.0863392
+ 16-DEC-1951 12 / 24:  0.4272781  0.3927684  0.0886345  0.1480152  0.0798972  0.0587752  0.0829604  0.0669682
+ 16-JAN-1952 12 / 25:       ....  0.2804252  0.3119829  0.1213028  0.1095749  0.1200644  0.0443733  0.0854115
+ 15-FEB-1952 12 / 26:       ....  0.2154990  0.3391136  0.1734310  0.1559666  0.1833492  0.1195784  0.0543137
+ 16-MAR-1952 12 / 27:       ....  0.2245606  0.2519416  0.2905850  0.1623026  0.1691094  0.1379869  0.0452587
+ 16-APR-1952 00 / 28:       ....       ....  0.2020766  0.2455838  0.2666616  0.0967198  0.1678881  0.0939627
+ 16-MAY-1952 12 / 29:       ....       ....  0.3907234  0.3763105  0.2131447  0.1084711  0.1286853  0.0732442
+ 16-JUN-1952 00 / 30:       ....       ....  0.1899071  0.4072766  0.2991944  0.2006098  0.1258339  0.1240748
+ 16-JUL-1952 12 / 31:       ....       ....       ....  0.3233588  0.2395894  0.1603801  0.2150333  0.2024079
+ 16-AUG-1952 12 / 32:       ....       ....       ....  0.3334134  0.1956531  0.1813658  0.2104235  0.1830374
+ 16-SEP-1952 00 / 33:       ....       ....       ....  0.2259139  0.2331061  0.1942257  0.1533306  0.2192876
+ 16-OCT-1952 12 / 34:       ....       ....       ....       ....  0.4350016  0.2520298  0.2374043  0.3087425
+ 16-NOV-1952 00 / 35:       ....       ....       ....       ....  0.4583276  0.1832036  0.2729453  0.1929824
+ 16-DEC-1952 12 / 36:       ....       ....       ....       ....  0.4632503  0.3564805  0.3881923  0.2937627
+ 16-JAN-1953 12 / 37:       ....       ....       ....       ....       ....  0.2654290  0.4346953  0.3572837
+ 15-FEB-1953 00 / 38:       ....       ....       ....       ....       ....  0.3711777  0.2019359  0.3550803
+ 16-MAR-1953 12 / 39:       ....       ....       ....       ....       ....  0.3677070  0.2476939  0.3758325
+ 16-APR-1953 00 / 40:       ....       ....       ....       ....       ....       ....  0.3270105  0.2801757
+ 16-MAY-1953 12 / 41:       ....       ....       ....       ....       ....       ....  0.1942565  0.1743080
+ 16-JUN-1953 00 / 42:       ....       ....       ....       ....       ....       ....  0.3242278  0.1867072
+ 16-JUL-1953 12 / 43:       ....       ....       ....       ....       ....       ....       ....  0.3779086
+ 16-AUG-1953 12 / 44:       ....       ....       ....       ....       ....       ....       ....  0.2492870
+ 16-SEP-1953 00 / 45:       ....       ....       ....       ....       ....       ....       ....  0.0766919
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.7      227.9      319        410.1      501.3      592.4      683.6   
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.0000000  0.0182211       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.0000000  0.0194940       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.0000000 -0.0203161       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.0000000  0.0311233 -0.0949802       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.0000000 -0.0123508 -0.1357605       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.0000000 -0.0789563 -0.1238116       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000  0.0279596 -0.0675560 -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000  0.0184234 -0.0365043 -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000 -0.0780108 -0.1276041 -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086 -0.0105139 -0.0919628 -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644 -0.0911104 -0.1699362 -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295 -0.0968911 -0.1676723 -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626 -0.0821200 -0.1457920 -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348 -0.0765457 -0.0101163 -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577 -0.1133348 -0.0610220 -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823 -0.0893268  0.0695876  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269 -0.1209081 -0.0610898  0.0604781       ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                          45.6       136.7      227.9      319        410.1      501.3      592.4      683.6   
+                           1          2          3          4          5          6          7          8
+ 16-JAN-1950 12 /  1:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 15-FEB-1950 00 /  2:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-MAR-1950 12 /  3:  0.0000000       ....       ....       ....       ....       ....       ....       ....
+ 16-APR-1950 00 /  4:  0.0000000  0.0182211       ....       ....       ....       ....       ....       ....
+ 16-MAY-1950 12 /  5:  0.0000000  0.0194940       ....       ....       ....       ....       ....       ....
+ 16-JUN-1950 00 /  6:  0.0000000 -0.0203161       ....       ....       ....       ....       ....       ....
+ 16-JUL-1950 12 /  7:  0.0000000  0.0311233 -0.0949802       ....       ....       ....       ....       ....
+ 16-AUG-1950 12 /  8:  0.0000000 -0.0123508 -0.1357605       ....       ....       ....       ....       ....
+ 16-SEP-1950 00 /  9:  0.0000000 -0.0789563 -0.1238116       ....       ....       ....       ....       ....
+ 16-OCT-1950 12 / 10:  0.0000000  0.0279596 -0.0675560 -0.1041615       ....       ....       ....       ....
+ 16-NOV-1950 00 / 11:  0.0000000  0.0184234 -0.0365043 -0.1854521       ....       ....       ....       ....
+ 16-DEC-1950 12 / 12:  0.0000000 -0.0780108 -0.1276041 -0.2682940       ....       ....       ....       ....
+ 16-JAN-1951 12 / 13:  0.0000000  0.0218086 -0.0105139 -0.0919628 -0.2122918       ....       ....       ....
+ 15-FEB-1951 00 / 14:  0.0000000 -0.0170644 -0.0911104 -0.1699362 -0.1414996       ....       ....       ....
+ 16-MAR-1951 12 / 15:  0.0000000  0.0127295 -0.0968911 -0.1676723 -0.0533428       ....       ....       ....
+ 16-APR-1951 00 / 16:  0.0000000 -0.0037638  0.0010626 -0.0821200 -0.1457920 -0.1665123       ....       ....
+ 16-MAY-1951 12 / 17:  0.0000000 -0.0157176 -0.0533348 -0.0765457 -0.0101163 -0.0986007       ....       ....
+ 16-JUN-1951 00 / 18:  0.0000000 -0.0375013 -0.0257577 -0.1133348 -0.0610220 -0.1552390       ....       ....
+ 16-JUL-1951 12 / 19:  0.0000000  0.0058452 -0.0045578  0.0193823 -0.0893268  0.0695876  0.0616362       ....
+ 16-AUG-1951 12 / 20:  0.0000000 -0.0083272 -0.0545679  0.0361269 -0.1209081 -0.0610898  0.0604781       ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+cancel data my_fmrc
+ 
+! agg where one dataset lacks one of the variables
+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/files
+     currently SET data sets:
+    6> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:5
+       (L=7:30)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
+ 
+          Aggregated datasets:
+      1: tmp/fcst_3.nc
+      2: tmp/fcst_4.nc
+      3: tmp/fcst_5.nc
+      4: tmp/one_var_fcst_6.nc
+      5: tmp/fcst_7.nc
+stat/l=1:20 fcst
+ 
+             FIELD + FCST_ERROR
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             MODEL ELAPSED TIME (day): 0 to 609.13
+             E:  N/A
+             FORECAST: 16-MAY-1950 09:00 to 15-AUG-1951 15:00
+             DATA SET: my_fmrc
+ 
+ Total # of data points: 44100 (21*21*1*20*1*5)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.3839
+ Mean    value: 0.11163 (unweighted average)
+ Standard deviation: 0.54048
+cancel data my_fmrc
+ 
+! ... added 1/28/2016
+! the same agg, but the dataset name pulled implicitly from the script name
+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
+ 
+! 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
+     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
+       (L=7:30)
+               on grid GFN1 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=19.5N:40.5N  F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
+             days since 01-JAN-1900 00:00:00 on grid FTI with -1.E+34 for missing data
+             F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ 
+  time range: 15.228 to 715.73
+ 
+          Aggregated datasets:
+      1: tmp/fcst_3.nc
+      2: tmp/fcst_4.nc
+      3: tmp/fcst_5.nc
+      4: tmp/one_var_fcst_6.nc
+      5: tmp/fcst_7.nc
+    7> my_fmrc  (default)  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
+       (L=7:30)
+               on grid GFN2 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=19.5N:40.5N  F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
+             days since 01-JAN-1900 00:00:00 on grid FTI1 with -1.E+34 for missing data
+             F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ 
+  time range: 15.228 to 715.73
+ 
+          Aggregated datasets:
+      1: tmp/fcst_3.nc
+      2: tmp/fcst_4.nc
+      3: tmp/fcst_5.nc
+      4: tmp/one_var_fcst_6.nc
+      5: tmp/fcst_7.nc
+ 
+! cancel a component dataset -- used in two aggregations
+cancel data tmp/fcst_4.nc
+show data
+     currently SET data sets:
+ 
+! re-define the same aggs again.
+! then cancel one of them only and note that the hidden files remain
+fmrc/hide tmp/fcst_7.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_3.nc
+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
+cancel data my_fmrc
+show data/br/hidden
+     currently SET data sets:
+    1> tmp/fcst_7.nc
+    2> tmp/fcst_4.nc
+    3> tmp/fcst_5.nc
+    4> tmp/one_var_fcst_6.nc
+    5> tmp/fcst_3.nc
+    6> ./bn_aggregate_f.jnl     Forecast aggregation
+cancel data bn_aggregate_f.jnl   ! 3/16 bug fix (was "...sub")
+show data
+     currently SET data sets:
+ 
+! agg where a LET/D variable is used to fill in a missing variable
+use tmp/one_var_fcst_1.nc, tmp/one_var_fcst_6.nc
+let/d=one_var_fcst_1.nc fcst_2 = fcst + 2  ! compute same value as file vars
+let/d=one_var_fcst_6.nc fcst_2 = fcst + 2  ! compute same value as file vars
+FMRC/hide my_fmrc_letd_6 = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_7.nc
+FMRC/hide my_fmrc_letd_1 = tmp/one_var_fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/fcst_6.nc, tmp/fcst_7.nc
+FMRC/hide my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/fcst_6.nc, tmp/fcst_7.nc
+show data/files
+     currently SET data sets:
+    9> my_fmrc_letd_6     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/one_var_fcst_6.nc
+      7: tmp/fcst_7.nc
+   11> my_fmrc_letd_1     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=4:27)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/one_var_fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/fcst_6.nc
+      7: tmp/fcst_7.nc
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/fcst_6.nc
+      7: tmp/fcst_7.nc
+show data
+     currently SET data sets:
+    9> my_fmrc_letd_6     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+   11> my_fmrc_letd_1     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=4:27)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+! should be all 0's:
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst_2[d=my_fmrc_letd_6] - fcst_2[d=my_fmrc]
+             VARIABLE : FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC]
+             SUBSET   : 7 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                 1950       1950       1950       1950       1951       1951       1951    
+                  1          2          3          4          5          6          7
+ 15.2  /  1:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 45.6  /  2:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 76    /  3:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 106.4 /  4:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 136.8 /  5:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 167.2 /  6:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 197.5 /  7:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 227.9 /  8:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 258.3 /  9:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 288.7 / 10:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 319.1 / 11:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 349.5 / 12:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 379.9 / 13:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 410.3 / 14:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 440.7 / 15:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 471.1 / 16:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 501.5 / 17:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 531.8 / 18:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 562.2 / 19:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 592.6 / 20:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+! should be all 0's:
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst_2[d=my_fmrc_letd_6] - fcst_2[d=my_fmrc_letd_1]
+             VARIABLE : FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC_LETD_1]
+             SUBSET   : 7 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                 1950       1950       1950       1950       1951       1951       1951    
+                  1          2          3          4          5          6          7
+ 15.2  /  1:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 45.6  /  2:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 76    /  3:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 106.4 /  4:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 136.8 /  5:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 167.2 /  6:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 197.5 /  7:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 227.9 /  8:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 258.3 /  9:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 288.7 / 10:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 319.1 / 11:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 349.5 / 12:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 379.9 / 13:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 410.3 / 14:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 440.7 / 15:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 471.1 / 16:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 501.5 / 17:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 531.8 / 18:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 562.2 / 19:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+ 592.6 / 20:  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000
+cancel data my_fmrc
+cancel data my_fmrc_letd_1, my_fmrc_letd_6
+ 
+! files already opened and not hidden remain open after aggregation
+use tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_9.nc, tmp/fcst_10.nc, tmp/fcst_11.nc
+fmrc my_fmrc = XCAT(files[I=6:10],{"6","1"})           ! without /HIDE
+cancel data my_fmrc
+show data/brief
+     currently SET data sets:
+    1> tmp/fcst_1.nc
+    2> tmp/fcst_2.nc
+    3> tmp/fcst_3.nc
+    4> tmp/fcst_9.nc
+    5> tmp/fcst_10.nc
+    6> tmp/fcst_11.nc
+cancel data/all
+ 
+! *************************************
+! deliberate errors
+set mode ignore
+ 
+! error - duplicate file
+fmrc my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc,tmp/fcst_2.nc,tmp/fcst_3.nc
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+! error - unknown dataset
+fmrc my_fmrc = XCAT(files,"tmp/no_exist.nc")
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+! error - inserting forecasts at two consecutive steps implies too many gaps
+fmrc my_fmrc = XCAT(files,"tmp/consecutive_month_fcst.nc")
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+! error - inserting out of sequence forecast
+fmrc my_fmrc = XCAT(files,"tmp/irregular_start_time_fcst.nc")
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+set mode/last ignore
+ 
+GO bn_reset
+cancel mode verify
+GO bn_aggregate_tef
+! bn_aggregate_tef.F
+! 2/2016 *sh*
+! 3/2016 - modified to test single point axis aggregations on Z axis
+ 
+! to avoid re-creating the test files include argument "0" as in
+!  yes?  GO bn_aggregate_tef 0
+ 
+ 
+! exercise 6D aggregations: T, E, and F simultaneously
+ 
+! do not bother to echo the creation of files and the definitions of the
+! many time aggregations
+CANCEL MODE VERIFY
+ 
+show data/files/br
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f01_e3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e3_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e3_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e3_t3.nc
+ 
+    4> t_f01_e4
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e4_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e4_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e4_t3.nc
+ 
+    5> t_f01_e5
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e5_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e5_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e5_t3.nc
+ 
+    6> t_f02_e1
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_t3.nc
+ 
+    7> t_f02_e2
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_t3.nc
+ 
+    8> t_f02_e3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e3_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e3_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e3_t3.nc
+ 
+    9> t_f02_e4
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e4_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e4_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e4_t3.nc
+ 
+   10> t_f02_e5
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e5_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e5_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e5_t3.nc
+ 
+   11> t_f03_e1
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_t3.nc
+ 
+   12> t_f03_e2
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_t3.nc
+ 
+   13> t_f03_e3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e3_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e3_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e3_t3.nc
+ 
+   14> t_f03_e4
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e4_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e4_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e4_t3.nc
+ 
+   15> t_f03_e5
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e5_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e5_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e5_t3.nc
+ 
+   16> t_f04_e1
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e1_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e1_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e1_t3.nc
+ 
+   17> t_f04_e2
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e2_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e2_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e2_t3.nc
+ 
+   18> t_f04_e3
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e3_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e3_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3.nc
+ 
+   19> t_f04_e4
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e4_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e4_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e4_t3.nc
+ 
+   20> t_f04_e5
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e5_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e5_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e5_t3.nc
+ 
+   21> t_f05_e1
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e1_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e1_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e1_t3.nc
+ 
+   22> t_f05_e2
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e2_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e2_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e2_t3.nc
+ 
+   23> t_f05_e3
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e3_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e3_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e3_t3.nc
+ 
+   24> t_f05_e4
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e4_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e4_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e4_t3.nc
+ 
+   25> t_f05_e5
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e5_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e5_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e5_t3.nc
+ 
+   26> t_f06_e1
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e1_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e1_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e1_t3.nc
+ 
+   27> t_f06_e2
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e2_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e2_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e2_t3.nc
+ 
+   28> t_f06_e3
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e3_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e3_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e3_t3.nc
+ 
+   29> t_f06_e4
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e4_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e4_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e4_t3.nc
+ 
+   30> t_f06_e5
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e5_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e5_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e5_t3.nc
+ 
+   31> t_f07_e1
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e1_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e1_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e1_t3.nc
+ 
+   32> t_f07_e2
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e2_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e2_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e2_t3.nc
+ 
+   33> t_f07_e3
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e3_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e3_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e3_t3.nc
+ 
+   34> t_f07_e4
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e4_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e4_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e4_t3.nc
+ 
+   35> t_f07_e5
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e5_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e5_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e5_t3.nc
+ 
+   36> t_f08_e1
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e1_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e1_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e1_t3.nc
+ 
+   37> t_f08_e2
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e2_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e2_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e2_t3.nc
+ 
+   38> t_f08_e3
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e3_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e3_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e3_t3.nc
+ 
+   39> t_f08_e4
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e4_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e4_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e4_t3.nc
+ 
+   40> t_f08_e5
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e5_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e5_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e5_t3.nc
+ 
+   41> t_f09_e1
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e1_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e1_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e1_t3.nc
+ 
+   42> t_f09_e2
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e2_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e2_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e2_t3.nc
+ 
+   43> t_f09_e3
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e3_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e3_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e3_t3.nc
+ 
+   44> t_f09_e4
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e4_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e4_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e4_t3.nc
+ 
+   45> t_f09_e5
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e5_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e5_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e5_t3.nc
+ 
+   46> t_f10_e1
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e1_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e1_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e1_t3.nc
+ 
+   47> t_f10_e2
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e2_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e2_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e2_t3.nc
+ 
+   48> t_f10_e3
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e3_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e3_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e3_t3.nc
+ 
+   49> t_f10_e4
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e4_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e4_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e4_t3.nc
+ 
+   50> t_f10_e5
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e5_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e5_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e5_t3.nc
+ 
+   51> t_f11_e1
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e1_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e1_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e1_t3.nc
+ 
+   52> t_f11_e2
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e2_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e2_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e2_t3.nc
+ 
+   53> t_f11_e3
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e3_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e3_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e3_t3.nc
+ 
+   54> t_f11_e4
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e4_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e4_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e4_t3.nc
+ 
+   55> t_f11_e5
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e5_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e5_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e5_t3.nc
+ 
+   56> t_f04_e3_1v  (default)
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e3_t1_1v.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e3_t2_1v.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3_1v.nc
+ 
+ 
+! should share the same time axis
+show grid fcst[d=t_f01_e1]
+    GRID GFA1
+ name       axis              # pts   start                end                 subset
+ XAX       LONGITUDE           21mr   140E                 160E                full
+ YAX       LATITUDE            11 r   10N                  20N                 full
+ ZAX1      Z (m)                1 r   250                  250                 full
+ TRUEMONTH3 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
+ normal    E
+ normal    F
+show grid fcst[d=t_f01_e2]
+    GRID GFA1
+ name       axis              # pts   start                end                 subset
+ XAX       LONGITUDE           21mr   140E                 160E                full
+ YAX       LATITUDE            11 r   10N                  20N                 full
+ ZAX1      Z (m)                1 r   250                  250                 full
+ TRUEMONTH3 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
+ normal    E
+ normal    F
+ 
+! ======== TEST SET 1:  aggregate E first, then F
+ 
+! define te aggregations -- only the first 5 remain unhidden
+ENSEMBLE      te_f01 = t_f01_e1, t_f01_e2, t_f01_e3, t_f01_e4, t_f01_e5
+ENSEMBLE/hide te_f02 = t_f02_e1, t_f02_e2, t_f02_e3, t_f02_e4, t_f02_e5
+ENSEMBLE/hide te_f03 = t_f03_e1, t_f03_e2, t_f03_e3, t_f03_e4, t_f03_e5
+ENSEMBLE/hide te_f04 = t_f04_e1, t_f04_e2, t_f04_e3, t_f04_e4, t_f04_e5
+ENSEMBLE/hide te_f05 = t_f05_e1, t_f05_e2, t_f05_e3, t_f05_e4, t_f05_e5
+ENSEMBLE/hide te_f06 = t_f06_e1, t_f06_e2, t_f06_e3, t_f06_e4, t_f06_e5
+ENSEMBLE/hide te_f07 = t_f07_e1, t_f07_e2, t_f07_e3, t_f07_e4, t_f07_e5
+ENSEMBLE/hide te_f08 = t_f08_e1, t_f08_e2, t_f08_e3, t_f08_e4, t_f08_e5
+ENSEMBLE/hide te_f09 = t_f09_e1, t_f09_e2, t_f09_e3, t_f09_e4, t_f09_e5
+ENSEMBLE/hide te_f10 = t_f10_e1, t_f10_e2, t_f10_e3, t_f10_e4, t_f10_e5
+ENSEMBLE/hide te_f11 = t_f11_e1, t_f11_e2, t_f11_e3, t_f11_e4, t_f11_e5
+SHOW DATA/brief
+     currently SET data sets:
+    1> t_f01_e1
+    2> t_f01_e2
+    3> t_f01_e3
+    4> t_f01_e4
+    5> t_f01_e5
+   56> t_f04_e3_1v
+   57> te_f01     Ensemble aggregation
+   58> te_f02     Ensemble aggregation
+   59> te_f03     Ensemble aggregation
+   60> te_f04     Ensemble aggregation
+   61> te_f05     Ensemble aggregation
+   62> te_f06     Ensemble aggregation
+   63> te_f07     Ensemble aggregation
+   64> te_f08     Ensemble aggregation
+   65> te_f09     Ensemble aggregation
+   66> te_f10     Ensemble aggregation
+   67> te_f11  (default)  Ensemble aggregation
+SHOW DATA/FULL te_f11
+     currently SET data sets:
+   67> te_f11  (default)  Ensemble aggregation
+     Ensemble series of 5 datasets patterned on t_f11_e1
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:5       ...
+       (L=31:42)
+               on grid GEN11 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:5       ...
+       (L=31:42)
+               on grid GEN11 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  
+ REALIZATION
+          1                                ...       ...       ...       ...       1:5       ...
+               on grid GEN with -1.E+34 for missing data
+             E=0.5:5.5  
+ 
+  time range: 16-JUL-1952 12:00 to 16-JUN-1955 00:00
+ 
+          Aggregated datasets:
+      1: t_f11_e1
+      2: t_f11_e2
+      3: t_f11_e3
+      4: t_f11_e4
+      5: t_f11_e5
+SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
+     currently SET data sets:
+   67> te_f11  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        6    F       te_f11
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 im_everywhere   CHAR        13   F       so promote me
+                                 long_name_mod   CHAR        7    F       L=31:42
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 long_name_mod   CHAR        7    F       L=31:42
+  
+ REALIZATION           FLOAT     long_name       CHAR        1    T       1
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+! define tef aggregation
+FMRC/HIDE tef = te_f01, te_f02, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+SHOW DATA/brief/files
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f01_e3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e3_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e3_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e3_t3.nc
+ 
+    4> t_f01_e4
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e4_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e4_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e4_t3.nc
+ 
+    5> t_f01_e5
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e5_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e5_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e5_t3.nc
+ 
+   56> t_f04_e3_1v
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e3_t1_1v.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e3_t2_1v.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3_1v.nc
+ 
+   68> tef  (default)  Forecast aggregation
+          Aggregated datasets:
+      1 : te_f01
+      2 : te_f02
+      3 : te_f03
+      4 : te_f04
+      5 : te_f05
+      6 : te_f06
+      7 : te_f07
+      8 : te_f08
+      9 : te_f09
+      10: te_f10
+      11: te_f11
+show data/full tef
+     currently SET data sets:
+   68> tef  (default)  Forecast aggregation
+     Forecast series of 11 datasets patterned on te_f01
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  F=16-NOV-1949 09:36:15-AUG-1952 14:24  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:11
+             days since 01-JAN-1900 00:00:00 on grid FTI1 with -1.E+34 for missing data
+             F=16-NOV-1949 09:36:15-AUG-1952 14:24  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  F=16-NOV-1949 09:36:15-AUG-1952 14:24  
+ 
+  time range: 15.214 to 1080.2
+ 
+          Aggregated datasets:
+      1 : te_f01
+      2 : te_f02
+      3 : te_f03
+      4 : te_f04
+      5 : te_f05
+      6 : te_f06
+      7 : te_f07
+      8 : te_f08
+      9 : te_f09
+      10: te_f10
+      11: te_f11
+ 
+! simplest acess -- compact form -- just demonstrate it doesn't fail
+stat/brief fcst[i=11:12, j=5:6, l=31:32, m=1:2, n=5:6]
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 224.92
+ Maximum value: 237.87
+ Mean    value: 231.43 (unweighted average)
+ 
+! diagonal forecast view of ensemble mean
+let diag_fcst = fcst[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:5 at ave]
+ 
+! difference between the mean and the middle is zero within computational error
+let epsilon = 1 / 2^50   ! 52 mantissa bits in a double
+say using epsilon = `epsilon`
+ !-> MESSAGE/CONTINUE using epsilon = 8.881784197001E-16
+using epsilon = 8.881784197001E-16
+let rel_err = (diag_fcst[m=1:5 at ave]-diag_fcst[m=3])/diag_fcst[m=3]
+stat/brief/x=150E/y=15n IF ABS(rel_err) LT epsilon THEN 0.0 ELSE rel_err
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ 
+! warning message indicates fcst_2 is missing from a file
+ENSEMBLE te_f04_1v = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+SHOW DATA/ATT t_f04_e3_1v ! note atts im_everwhere vs im_not_everwhere
+     currently SET data sets:
+   56> t_f04_e3_1v
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(XAX)                  DOUBLE    point_spacing   CHAR        4    T       even
+                                 axis            CHAR        1    T       X
+                                 modulo          DOUBLE      1    T       360
+                                 units           CHAR        12   T       degrees_east
+                                 standard_name   CHAR        9    F       longitude
+                                 orig_file_axname
+                                                 CHAR        3    F       XAX
+  
+(YAX)                  DOUBLE    point_spacing   CHAR        4    T       even
+                                 axis            CHAR        1    T       Y
+                                 units           CHAR        13   T       degrees_north
+                                 standard_name   CHAR        8    F       latitude
+                                 orig_file_axname
+                                                 CHAR        3    F       YAX
+  
+(ZAX1)                 DOUBLE    point_spacing   CHAR        4    T       even
+                                 axis            CHAR        1    T       Z
+                                 positive        CHAR        2    T       up
+                                 units           CHAR        1    T       m
+                                 standard_name   CHAR        8    F       altitude
+                                 orig_file_axname
+                                                 CHAR        3    F       ZAX
+  
+(TRUEMONTH14)          DOUBLE    units           CHAR        30   T       days since 1900-01-01 00:00:00
+                                 axis            CHAR        1    T       T
+                                 bounds          CHAR        14   T       TRUEMONTH_bnds
+                                 time_origin     CHAR        10   T       1-JAN-1900
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        9    F       TRUEMONTH
+  
+ TRUEMONTH_bnds        DOUBLE
+  
+ FCST                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        13   T       some variable
+                                 im_everywhere   CHAR        13   F       so promote me
+                                 im_not_everywhere
+                                                 CHAR        19   F       so don't promote me
+                                 long_name_mod   CHAR        7    F       L=10:21
+  
+ REALIZATION           DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        1    T       3
+  
+SHOW DATA/ATT te_f04_1v  ! note atts im_everwhere vs im_not_everwhere
+     currently SET data sets:
+   69> te_f04_1v  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        9    F       te_f04_1v
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 im_everywhere   CHAR        13   F       so promote me
+                                 long_name_mod   CHAR        7    F       L=10:21
+  
+ REALIZATION           FLOAT     long_name       CHAR        1    T       1
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+! define fcst_2 as a LET/D variable and then do same calc
+let/d=t_f04_e3_1v fcst_2 = fcst + 2
+show data/br t_f04_e3_1v
+     currently SET data sets:
+   56> t_f04_e3_1v
+ENSEMBLE te_f04_letd = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+FMRC/hide tef_letd = te_f01, te_f02, te_f03, te_f04_letd, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+let diag_fcst_2 = fcst_2[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+let rel_err_2 = (diag_fcst_2[m=1:5 at ave]-diag_fcst_2[m=3])/diag_fcst_2[m=3]
+ 
+! can run in diagnostic mode and look for "eval FCST_2" to confirm LET/D eval
+set data tef_letd
+stat/brief/x=150E/y=15n diag_fcst_2
+ 
+ Total # of data points: 3960 (1*1*1*66*5*12)
+ # flagged as bad  data: 1980
+ Minimum value: 226.45
+ Maximum value: 277.75
+ Mean    value: 252.12 (unweighted average)
+stat/brief/x=150E/y=15n IF ABS(rel_err_2) LT epsilon THEN 0.0 ELSE rel_err_2
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ 
+! demonstrate redefining the LET/D variable without re-defining the agg
+! Look at the column 3 ("e3"), row 4 ("f04") to see  2.110 => 4.110
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 01-JAN-1950 /  1:  227.0820  239.5866  252.0911  264.5957  277.1002
+ 01-APR-1950 /  2:  227.1276  239.6347  252.1418  264.6489  277.1560
+ 01-JUL-1950 /  3:  227.0372  239.5393  252.0414  264.5435  277.0455
+ 01-OCT-1950 /  4:  227.0986  239.6041  252.1095  264.6150  277.1205
+ 01-JAN-1951 /  5:  227.1470  239.6552  252.1634  264.6715  277.1797
+ 01-APR-1951 /  6:  227.2203  239.7326  252.2448  264.7571  277.2693
+ 01-JUL-1951 /  7:  227.1328  239.6402  252.1475  264.6549  277.1623
+ 01-OCT-1951 /  8:  227.1578  239.6666  252.1753  264.6841  277.1929
+ 01-JAN-1952 /  9:  227.2052  239.7166  252.2280  264.7394  277.2508
+ 01-APR-1952 / 10:  227.1379  239.6456  252.1532  264.6609  277.1686
+ 01-JUL-1952 / 11:  227.1891  239.6996  252.2101  264.7206  277.2311
+let/d=t_f04_e3_1v fcst_2 = fcst + 2 + 2   ! add 2
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 01-JAN-1950 /  1:  227.0820  239.5866  252.0911  264.5957  277.1002
+ 01-APR-1950 /  2:  227.1276  239.6347  252.1418  264.6489  277.1560
+ 01-JUL-1950 /  3:  227.0372  239.5393  252.0414  264.5435  277.0455
+ 01-OCT-1950 /  4:  227.0986  239.6041  254.1095  264.6150  277.1205
+ 01-JAN-1951 /  5:  227.1470  239.6552  252.1634  264.6715  277.1797
+ 01-APR-1951 /  6:  227.2203  239.7326  252.2448  264.7571  277.2693
+ 01-JUL-1951 /  7:  227.1328  239.6402  252.1475  264.6549  277.1623
+ 01-OCT-1951 /  8:  227.1578  239.6666  252.1753  264.6841  277.1929
+ 01-JAN-1952 /  9:  227.2052  239.7166  252.2280  264.7394  277.2508
+ 01-APR-1952 / 10:  227.1379  239.6456  252.1532  264.6609  277.1686
+ 01-JUL-1952 / 11:  227.1891  239.6996  252.2101  264.7206  277.2311
+ 
+! agg members may have unique contexts on scalar axes of the aggregation
+! ... here the LET/D var is normal to Z
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+T[gt=fcst] + 1000
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 01-JAN-1950 /  1:    227.08    239.59    252.09    264.60    277.10
+ 01-APR-1950 /  2:    227.13    239.63    252.14    264.65    277.16
+ 01-JUL-1950 /  3:    227.04    239.54    252.04    264.54    277.05
+ 01-OCT-1950 /  4:    227.10    239.60  19988.50    264.62    277.12
+ 01-JAN-1951 /  5:    227.15    239.66    252.16    264.67    277.18
+ 01-APR-1951 /  6:    227.22    239.73    252.24    264.76    277.27
+ 01-JUL-1951 /  7:    227.13    239.64    252.15    264.65    277.16
+ 01-OCT-1951 /  8:    227.16    239.67    252.18    264.68    277.19
+ 01-JAN-1952 /  9:    227.21    239.72    252.23    264.74    277.25
+ 01-APR-1952 / 10:    227.14    239.65    252.15    264.66    277.17
+ 01-JUL-1952 / 11:    227.19    239.70    252.21    264.72    277.23
+ 
+! ... here the LET/D var is averaged to a point in a pre-existing agg
+LET some_Z_function = Z[Z=0:100:10] + 1000
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+T[gt=fcst]+some_Z_function[Z=10:60 at ave]
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 01-JAN-1950 /  1:    227.08    239.59    252.09    264.60    277.10
+ 01-APR-1950 /  2:    227.13    239.63    252.14    264.65    277.16
+ 01-JUL-1950 /  3:    227.04    239.54    252.04    264.54    277.05
+ 01-OCT-1950 /  4:    227.10    239.60  20023.50    264.62    277.12
+ 01-JAN-1951 /  5:    227.15    239.66    252.16    264.67    277.18
+ 01-APR-1951 /  6:    227.22    239.73    252.24    264.76    277.27
+ 01-JUL-1951 /  7:    227.13    239.64    252.15    264.65    277.16
+ 01-OCT-1951 /  8:    227.16    239.67    252.18    264.68    277.19
+ 01-JAN-1952 /  9:    227.21    239.72    252.23    264.74    277.25
+ 01-APR-1952 / 10:    227.14    239.65    252.15    264.66    277.17
+ 01-JUL-1952 / 11:    227.19    239.70    252.21    264.72    277.23
+ 
+! same as preceding, but the LET/D is included in the agg as defined
+ENSEMBLE te_f04_letd_new = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+FMRC/hide tef_letd_new = te_f01, te_f02, te_f03, te_f04_letd, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd_new
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 01-JAN-1950 /  1:    227.08    239.59    252.09    264.60    277.10
+ 01-APR-1950 /  2:    227.13    239.63    252.14    264.65    277.16
+ 01-JUL-1950 /  3:    227.04    239.54    252.04    264.54    277.05
+ 01-OCT-1950 /  4:    227.10    239.60  20023.50    264.62    277.12
+ 01-JAN-1951 /  5:    227.15    239.66    252.16    264.67    277.18
+ 01-APR-1951 /  6:    227.22    239.73    252.24    264.76    277.27
+ 01-JUL-1951 /  7:    227.13    239.64    252.15    264.65    277.16
+ 01-OCT-1951 /  8:    227.16    239.67    252.18    264.68    277.19
+ 01-JAN-1952 /  9:    227.21    239.72    252.23    264.74    277.25
+ 01-APR-1952 / 10:    227.14    239.65    252.15    264.66    277.17
+ 01-JUL-1952 / 11:    227.19    239.70    252.21    264.72    277.23
+ 
+! deliberate errors:
+SET MODE IGNORE
+set data tef_letd
+! a new LET/D definition that alters the grid of the result is not acceptable
+let/d=t_f04_e3_1v fcst_2 = X[x=1:5]+Y[gy=fcst]+Z[gz=fcst]+T[gt=fcst] ! X ax chg
+list/x=150E/y=15n/L=10 fcst_2
+ 
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+Z[gz=fcst]+T[T=1:36:1] ! T chg
+list/x=150E/y=15n/L=10 fcst_2
+ 
+! LET definition may not compress an axis of N>1
+let/d=t_f04_e3_1v fcst_2 = fcst[i=1:5 at ave]
+list/x=150E/y=15n/L=10 fcst_2
+SET MODE/LAST IGNORE
+ 
+! now restore the original definition and verify it again works
+let/d=t_f04_e3_1v fcst_2 = fcst + 2
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 01-JAN-1950 /  1:  227.0820  239.5866  252.0911  264.5957  277.1002
+ 01-APR-1950 /  2:  227.1276  239.6347  252.1418  264.6489  277.1560
+ 01-JUL-1950 /  3:  227.0372  239.5393  252.0414  264.5435  277.0455
+ 01-OCT-1950 /  4:  227.0986  239.6041  252.1095  264.6150  277.1205
+ 01-JAN-1951 /  5:  227.1470  239.6552  252.1634  264.6715  277.1797
+ 01-APR-1951 /  6:  227.2203  239.7326  252.2448  264.7571  277.2693
+ 01-JUL-1951 /  7:  227.1328  239.6402  252.1475  264.6549  277.1623
+ 01-OCT-1951 /  8:  227.1578  239.6666  252.1753  264.6841  277.1929
+ 01-JAN-1952 /  9:  227.2052  239.7166  252.2280  264.7394  277.2508
+ 01-APR-1952 / 10:  227.1379  239.6456  252.1532  264.6609  277.1686
+ 01-JUL-1952 / 11:  227.1891  239.6996  252.2101  264.7206  277.2311
+ 
+! ======== TEST SET 2:  aggregate F first, then E
+FMRC      tf_e1 = t_f01_e1, t_f02_e1, t_f03_e1, t_f04_e1, t_f05_e1, t_f06_e1, t_f07_e1, t_f08_e1, t_f09_e1, t_f10_e1, t_f11_e1
+FMRC/hide tf_e2 = t_f01_e2, t_f02_e2, t_f03_e2, t_f04_e2, t_f05_e2, t_f06_e2, t_f07_e2, t_f08_e2, t_f09_e2, t_f10_e2, t_f11_e2
+FMRC/hide tf_e3 = t_f01_e3, t_f02_e3, t_f03_e3, t_f04_e3, t_f05_e3, t_f06_e3, t_f07_e3, t_f08_e3, t_f09_e3, t_f10_e3, t_f11_e3
+FMRC/hide tf_e4 = t_f01_e4, t_f02_e4, t_f03_e4, t_f04_e4, t_f05_e4, t_f06_e4, t_f07_e4, t_f08_e4, t_f09_e4, t_f10_e4, t_f11_e4
+FMRC/hide tf_e5 = t_f01_e5, t_f02_e5, t_f03_e5, t_f04_e5, t_f05_e5, t_f06_e5, t_f07_e5, t_f08_e5, t_f09_e5, t_f10_e5, t_f11_e5
+ 
+! aggregate these F-aggs onto an E axis
+ENSEMBLE/HIDE tfe = tf_e1, tf_e2, tf_e3, tf_e4, tf_e5
+ 
+! F-aggregate inherits the TF-auxiliary variable pointers from the members
+SHOW DATA/ATTRIB tfe   ! also notice the promotion of fcst.im_everywhere
+     currently SET data sets:
+   79> tfe  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        3    F       tfe
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        32   T       RUN TIME16 TF_TIMES ZAX1 YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+                                 im_everywhere   CHAR        13   F       so promote me
+  
+ TF_TIMES              FLOAT     long_name       CHAR        25   T       Forecast time step matrix
+                                 units           CHAR        31   T       days since 01-JAN-1900 00:00:00
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 _CoordinateAxisType
+                                                 CHAR        4    T       Time
+                                 calendar        CHAR        9    T       GREGORIAN
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        38   T       TF_CAL_F1 TIME16 TF_TIMES ZAX1 YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ 
+! the 2-D coordinate variable (TF_TIMES) should be 2D, only, in T and F
+SHOW DATA tfe
+     currently SET data sets:
+   79> tfe  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:11
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+ 
+ 
+! confirm that the TF_TIMES variable is accessible in a T-F-E aggregation
+LIST/NOHEAD/L=18:19/N=5:6 tf_times   ! subset access
+ 01-JAN-1951 / 5:  19159.00  19189.50
+ 01-APR-1951 / 6:  19251.00  19281.50
+STAT/BRIEF tf_times
+ 
+ Total # of data points: 396 (1*1*1*36*1*11)
+ # flagged as bad  data: 0
+ Minimum value: 18278
+ Maximum value: 20254
+ Mean    value: 19266 (unweighted average)
+ 
+! confirm that the T-F-E agg and the T-E-F agg get the same results
+! exactlyidentically zero STAT output means correct functioning
+let tfe_tef_ave_diff = (diag_fcst[d=tfe,m=1:5 at ave]-diag_fcst[d=tef,m=1:5 at ave])
+stat/brief/x=150E/y=15n tfe_tef_ave_diff
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+let tfe_tef_diff = (diag_fcst[d=tfe]-diag_fcst[d=tef])
+stat/brief/x=150E/y=15n tfe_tef_diff[m=1:5 at ave]
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ 
+! missing forecast (t_f02_e2) in a T-F-E aggregation
+FMRC tf_e2_gap = t_f01_e2, -, t_f03_e2, t_f04_e2, t_f05_e2, t_f06_e2, t_f07_e2, t_f08_e2, t_f09_e2, t_f10_e2, t_f11_e2
+ENSEMBLE tfe_gap = tf_e1, tf_e2_gap, tf_e3, tf_e4, tf_e5
+LIST/l=10/i=10/j=10/k=1 fcst[d=tfe_gap]
+             VARIABLE : some variable
+             DATA SET : Ensemble series of 5 datasets patterned on tf_e1
+             FILENAME : tfe_gap
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 149E
+             LATITUDE : 19N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                       1         2         3         4         5      
+                        1         2         3         4         5
+ 01-JAN-1950 /  1:  225.2225  237.7349  250.2472  262.7596  275.2720
+ 01-APR-1950 /  2:  225.3108      ....  250.3453  262.8625  275.3798
+ 01-JUL-1950 /  3:  225.2944  237.8107  250.3271  262.8434  275.3598
+ 01-OCT-1950 /  4:  225.4116  237.9345  250.4574  262.9802  275.5031
+ 01-JAN-1951 /  5:  225.4585  237.9839  250.5094  263.0349  275.5603
+ 01-APR-1951 /  6:  225.4969  238.0246  250.5522  263.0798  275.6074
+ 01-JUL-1951 /  7:  225.5393  238.0692  250.5992  263.1291  275.6591
+ 01-OCT-1951 /  8:  225.5576  238.0886  250.6196  263.1506  275.6815
+ 01-JAN-1952 /  9:  225.5630  238.0942  250.6255  263.1568  275.6881
+ 01-APR-1952 / 10:  225.5907  238.1235  250.6563  263.1892  275.7220
+ 01-JUL-1952 / 11:  225.6483  238.1843  250.7203  263.2563  275.7923
+ 
+! missing ensemble member (t_f02_e2)in a T-E-F agregation
+ENSEMBLE te_f02_gap = t_f02_e1, -, t_f02_e3, t_f02_e4, t_f02_e5
+FMRC tef_gap = te_f01, te_f02_gap, te_f03, te_f04
+LIST/l=10/i=10/j=10/k=1 fcst[d=tef_gap]
+             VARIABLE : some variable
+             DATA SET : Forecast series of 4 datasets patterned on te_f01
+             FILENAME : tef_gap
+             SUBSET   : 5 by 4 points (E (realization)-FORECAST)
+             LONGITUDE: 149E
+             LATITUDE : 19N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1         2         3         4         5      
+                       1         2         3         4         5
+ 01-JAN-1950 / 1:  225.2225  237.7349  250.2472  262.7596  275.2720
+ 01-APR-1950 / 2:  225.3108      ....  250.3453  262.8625  275.3798
+ 01-JUL-1950 / 3:  225.2944  237.8107  250.3271  262.8434  275.3598
+ 01-OCT-1950 / 4:  225.4116  237.9345  250.4574  262.9802  275.5031
+ 
+! deliberate errors
+set mode ignore
+! unequal ensemble axis lengths
+ENSEMBLE te_f02_short = t_f02_e1, t_f02_e2, t_f02_e3, t_f02_e4   ! shorter than others
+FMRC tef_short = te_f01, te_f02_short, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+ 
+! unequal forecast axis lengths
+FMRC tf_e2_short = t_f01_e2, t_f02_e2, t_f03_e2, t_f04_e2  ! shorter than others
+ENSEMBLE tfe_short = tf_e1, tf_e2_short, tf_e3, tf_e4, tf_e5
+ 
+! ensemble created with already-ensemble components
+ENSEMBLE te_f01 = t_f01_e1, t_f01_e2, t_f01_e3, t_f01_e4, t_f01_e5
+ENSEMBLE te_f03 = t_f03_e1, t_f03_e2, t_f03_e3, t_f03_e4, t_f03_e5
+ENSEMBLE te_f04 = t_f04_e1, t_f04_e2, t_f04_e3, t_f04_e4, t_f04_e5
+ENSEMBLE bad_ens = te_f01, te_f03, te_f04
+ 
+! fmrc created with already-fmrc components
+FMRC tf_e1 = t_f01_e1, t_f02_e1, t_f03_e1, t_f04_e1
+FMRC tf_e3 = t_f01_e3, t_f02_e3, t_f03_e3, t_f04_e3
+FMRC tf_e4 = t_f01_e4, t_f02_e4, t_f03_e4, t_f04_e4
+FMRC bad_fmrc = tf_e1, tf_e3, tf_e4
+ 
+set mode/last ignore
+ 
+CANCEL DATA/ALL
+ 
+GO bn_reset
+cancel mode verify
+! Add this to the gif benchmark tests
+! GO bn_hovmuller_overlays
+ 
+GO bn_reset
+cancel mode verify
+! Add this to the gif benchmark tests
+! GO bn_labels_on_taxis
+ 
+GO bn_reset
+cancel mode verify
+GO bn_dataset_qualifier
+! bn_dataset_qualifier
+! see ticket 2632
+! Test change from /D= to /DATASET= qualifier for LIST, PLOT, LOAD, etc
+! Various commands taken from other scripts.
+ 
+! LIST/DAT=
+use gt4d011
+use coads_climatology
+ 
+let nv = ..nvars
+let nd = ..ndims
+let vnames = ..varnames
+list/DAT=1 nv, nd
+             DATA SET: ./gt4d011.cdf
+             X: 1
+ Column  1: NV is ..NVARS
+ Column  2: ND is ..NDIMS
+                NV      ND
+I / *:     12.00000  21.00000
+list/DAT=1 vnames
+             VARIABLE : ..VARNAMES
+             FILENAME : gt4d011.cdf
+             SUBSET   : 12 points (X)
+ 1    /  1:"PS3DT2"
+ 2    /  2:"TEMP"  
+ 3    /  3:"SALT"  
+ 4    /  4:"PS3DU2"
+ 5    /  5:"U"     
+ 6    /  6:"V"     
+ 7    /  7:"PS3DW2"
+ 8    /  8:"W"     
+ 9    /  9:"PS2DU2"
+ 10   / 10:"TAUX"  
+ 11   / 11:"TAUY"  
+ 12   / 12:"PSI"   
+ 
+list/DAT=coads_climatology nv,nd
+             DATA SET: ./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
+             X: 1
+ Column  1: NV is ..NVARS
+ Column  2: ND is ..NDIMS
+                NV      ND
+I / *:     12.00000  21.00000
+ 
+! SET ATT/OUTPUT/DAT=
+! DEFINE ATT/OUTPUT/DAT=
+! CANCEL ATT/OUTPUT/DAT=
+can data/all
+use err491_attval
+use gt4d011
+set att/output/DATA=1 ..dt_internal
+define attribute/output/DATA=1 elev.newatt = 7
+save/clobber/file=a.nc/outtype=float elev[d=1]
+use a.nc
+sh att .
+     attributes for dataset: ./a.nc
+ ..history = FERRET V7 (beta/dbg) 15-Jun-16 
+ ..Conventions = CF-1.6 
+ ..dt_internal = 15
+sh att elev
+     attributes for dataset: ./a.nc
+ ELEV.missing_value = -32767
+ ELEV._FillValue = -32768
+ ELEV.long_name = Surface elevation 
+ ELEV.units = meter 
+ ELEV.scale_factor = 0.000274675
+ ELEV.add_offset = 0
+ ELEV.newatt = 7
+ ELEV.Ferret_Precision_Note = This variable written using Ferret was converted from SHORT to FLOAT 
+ ELEV.history = From err491_attval 
+can data a
+cancel attribute/output/DATASET=1  ..dt_internal
+cancel attribute/output/DATASET=1  elev.newatt
+save/clobber/file=a.nc/outtype=float elev[d=1]
+use a.nc
+sh att .
+     attributes for dataset: ./a.nc
+ ..history = FERRET V7 (beta/dbg) 15-Jun-16 
+ ..Conventions = CF-1.6 
+sh att elev
+     attributes for dataset: ./a.nc
+ ELEV.missing_value = -32767
+ ELEV._FillValue = -32768
+ ELEV.long_name = Surface elevation 
+ ELEV.units = meter 
+ ELEV.scale_factor = 0.000274675
+ ELEV.add_offset = 0
+ ELEV.Ferret_Precision_Note = This variable written using Ferret was converted from SHORT to FLOAT 
+ ELEV.history = From err491_attval 
+ 
+! LOAD/DAT=
+use coads_climatology
+use levitus_climatology
+ 
+load/DAT=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
+show grid
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid (G200)
+    GRID (G200)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX110)   LATITUDE           201 r   10S                  10N                 200 pts
+ normal    Z
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
+ normal    E
+ normal    F
+ 
+! LIST/DAT=, LET/DAT=,
+can dat/all
+use err491_attval
+use coads_climatology
+use levitus_climatology
+use ocean_atlas_temp
+use gt4d011
+ 
+let a = temp.units
+list/DAT=3 a
+             VARIABLE : TEMP.UNITS
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+        "DEG C"
+list/DAT=3 temp.history
+             VARIABLE : TEMP.HISTORY
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+        "From levitus_climatology"
+ 
+! PLOT, SHADE, FILL, CONTOUR, VECTOR, STAT
+! various plot and other action commands with /DATA
+ 
+let/DAT=2 temp = sst + 0*z[z=1:5:1]
+sh dat 2
+     currently SET data sets:
+    2> ./coads_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ ------------------------------
+ TEMP[D=coads_climatology] = SST + 0*Z[Z=1:5:1]
+ 
+plot/DATASET=2 sst[L=1,y=0,x=300:360]
+fill/DAT=2 sst[L=1,x=30:150,y=-60:0]
+contour/over/DATA=3 temp[Z=0]
+shade/DATA=2 sst[x=180,y=-10:10]
+vec/DAT=gt4d011/l=3 taux,tauy
+ 
+! STAT, LIST
+stat/DATASET=1 elev
+ 
+             Surface elevation
+             LONGITUDE: 135.5W(-135.5) to 135W(-135)
+             LATITUDE: 58.5912N to 59.4701N
+             Z:  N/A
+             T (day): 1.7837
+             E:  N/A
+             F:  N/A
+             DATA SET: ./err491_attval.cdf
+ 
+ Total # of data points: 4445 (35*127*1*1*1*1)
+ # flagged as bad  data: 3065
+ Minimum value: 2.9225
+ Maximum value: 3.0058
+ Mean    value: 2.9799 (unweighted average)
+ Standard deviation: 0.017437
+shade/DAT=1 elev
+list/DAT=1/x=-135.3/y=58.8 elev
+             VARIABLE : Surface elevation (meter)
+             DATA SET : K-Bay OAR3d model (200m)
+             FILENAME : err491_attval.cdf
+             LONGITUDE: 135.3W(-135.3) (interpolated)
+             LATITUDE : 58.8N (interpolated)
+             T (day)  : 1.7837
+          2.979394
+ 
+! POLYGON/DAT
+define axis/x=330:350:1/units=degrees_east xax10
+define axis/y=-10:10:1/units=degrees_north yax10
+ 
+let fsst = sst[l=3,gx=xax10,gy=yax10]
+let lon = xsequence(x[gx=xax10] + 0*y[gy=yax10])
+let lat = xsequence(0*x[gx=xax10] + y[gy=yax10])
+shade/pal=white/nokey/nolab/DATA=2 sst[l=1,x=300:310,y=-10:10]   ! Set up plot params for polymark.jnl
+go polymark poly/DATA=2/key/title="Polygon test", lon, lat, xsequence(fsst), square, 1.2
+ 
+ 
+! Commands that have another qualifier also starting with /D
+! LIST/DATASET= with /DEFLATE
+cancel data/all
+use levitus_climatology
+use gt4d011
+use coads_climatology
+list/form=cdf/ncformat=4/DEFLATE/file=a.nc/clobber/DATA=1 temp
+ 
+! PLOT/DASH with /DATA=
+plot/dash/x=180/z=0/DATASET=1 temp
+ 
+! VECTOR/FLOW/DATA=/DENSITY
+flow/DAT=2/den=3/L=3 taux,tauy
+ 
+GO bn_reset
+cancel mode verify
+GO bn_speedtest
+! bn_speedtest.jnl
+! issue large numbers of commands, timing with clock time
+can mode verify
+10K LET commands LET a = 0 takes  1.294  seconds
+Second 10K LET commands LET a = 0 takes  2.96  seconds
+5K LOAD with transform takes  4.171  seconds
+ 
+GO bn_reset
+cancel mode verify
+GO bn_show_noupcase
+! bn_show_noupcase.jnl
+! 1/2016 ticket 1796
+ 
+cancel mode upcase
+ 
+ 
+! Previously this mode acted only when saving to netCDf.
+! Now applies to SHOW commands of all sorts, as well as `return=*axis`
+ 
+ 
+ 
+! User variable with lowercase letters in the name
+ 
+DEFINE AXIS/t=1-jan-1999:31-jan-1999:1/units=days/t0=31-dec-1998 tday
+LET MyUpperLowerCaseVar = x[x=1:10] + t[gt=tday]
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     MyUpperLowerCaseVar = X[X=1:10] + T[GT=TDAY]
+show grid MyUpperLowerCaseVar
+    GRID (G204)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              9 pts
+ normal    Y
+ normal    Z
+ tday      TIME                31 r   01-JAN-1999 00:00    31-JAN-1999 00:00   full
+ normal    E
+ normal    F
+ 
+ 
+! Files have variable and axis names in mixed case.
+ 
+USE a1478.nc
+USE a_cartesian_bug1179.nc
+show data
+     currently SET data sets:
+    1> ./a1478.nc
+ name     title                             I         J         K         L         M         N
+ lat1_5_bnds
+                                           1:2       1:5       ...       ...       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+ 
+    2> ./a_cartesian_bug1179.nc  (default)
+ name     title                             I         J         K         L         M         N
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ 
+ 
+! Previously the RETURN= gave the capitalized axis names
+say `temp,return=zaxis`
+ !-> MESSAGE/CONTINUE zt
+zt
+say `temp,return=xaxis`
+ !-> MESSAGE/CONTINUE grid_x_T
+grid_x_T
+ 
+sh axis `temp,return=xaxis`
+ !-> sh axis grid_x_T
+ name       axis              # pts   start                end
+ grid_x_T  LONGITUDE            1 r   79E                  79E
+   Axis span (to cell edges) = 1
+sh axis/x `temp,return=xaxis`
+ !-> sh axis/x grid_x_T
+ name       axis              # pts   start                end
+ grid_x_T  LONGITUDE            1 r   79E                  79E
+   Axis span (to cell edges) = 1
+ 
+       I     X                   XBOX      XBOXLO
+       1>  79E                   1          78.5E
+ 
+! Define an output variable with some axes from each dataset.
+! (the variable definitions have been upcased. Beyond the scope of this fix...)
+ 
+LET/D=1 zvar = 2*temp[d=2]
+LET/D=2 newvar =  0*zvar[d=2] + olr[d=1]
+ 
+show data
+     currently SET data sets:
+    1> ./a1478.nc
+ name     title                             I         J         K         L         M         N
+ lat1_5_bnds
+                                           1:2       1:5       ...       ...       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+ ------------------------------
+ zvar[D=a1478] = 2*TEMP[D=2]
+ 
+    2> ./a_cartesian_bug1179.nc  (default)
+ name     title                             I         J         K         L         M         N
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ ------------------------------
+ newvar[D=a_cartesian_bug1179] = 0*ZVAR[D=2] + OLR[D=1]
+ 
+go bn_reset
+cancel mode verify
+ 
+ 
+! xml output
+ 
+USE a_cartesian_bug1179.nc
+ 
+say/quiet <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
+<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
+say/quiet <data>
+<data>
+ 
+show var/xml
+show 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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</axes>
+SHO AXIS/XML `temp,return=taxis`
+ !-> SHO AXIS/XML TIME17
+<axes>
+<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>
+ 
+! Define a dataset variable
+! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
+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">
+<title> </title>
+<var name="temp" />
+<var name="temp_180" />
+</dataset>
+</datasets>
+ 
+USE a1478.nc
+SHOW DATA/XML
+<datasets>
+<dataset name="./a_cartesian_bug1179.nc" default="false">
+<title> </title>
+<var name="temp" />
+<var name="temp_180" />
+</dataset>
+<dataset name="./a1478.nc" default="true">
+<title> </title>
+<var name="lat1_5_bnds" />
+<var name="olr" />
+</dataset>
+</datasets>
+SHO DATA/VAR/XML
+<datasets>
+<dataset name="./a_cartesian_bug1179.nc" default="false">
+<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>
+<var name="temp_180">
+<attribute name="definition" type="char">
+   <value><![CDATA[TEMP[X=79E:79E at AVE]]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[TEMP[X=79E:79E at AVE]]]></value>
+</attribute>
+<grid name="GHU1">
+<axes>
+<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>
+</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>
+</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>
+</axes>
+<dataset name="./a1478.nc" default="true">
+<title> </title>
+<var name="lat1_5_bnds">
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<grid name="GPY1">
+<axes>
+<xaxis>bnds</xaxis>
+<yaxis>lat1_5</yaxis>
+</axes>
+</grid>
+</var>
+<var name="olr">
+<attribute name="units" type="char">
+   <value><![CDATA[watts/m2]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[outgoing longwave radiation]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-999</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-999</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<grid name="GPY2">
+<axes>
+<xaxis>lon1_5</xaxis>
+<yaxis>lat1_5</yaxis>
+<taxis>time1478</taxis>
+</axes>
+</grid>
+</var>
+</dataset>
+</datasets>
+<axes>
+<axis name="time1478">
+<attribute name="direction" type="char">
+   <value><![CDATA[L]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>3</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>14782.5</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>15512.5</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[DOUBLE]]></value>
+</attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[T]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[time1478]]></value>
+</attribute>
+</axis>
+<axis name="lon1_5">
+<attribute name="direction" type="char">
+   <value><![CDATA[I]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>5</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>1.25</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>11.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[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <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>
+</attribute>
+<attribute name="length" type="short">
+   <value>5</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>-89.49438</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>-81.91011</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[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[lat1_5]]></value>
+</attribute>
+<attribute name="bounds" type="char">
+   <value>lat1_5_bnds</value>
+</attribute>
+</axis>
+</axes>
+ 
+! tests of SHOW VAR/XML for global variables.
+CAN DATA/ALL
+CAN VAR/ALL
+ 
+USE a1478
+USE a_cartesian_bug1179
  
-let a = {1.1, 3.7}
-list  floatstr(a, "(f04.1)")
-             VARIABLE : FLOATSTR(A, "(f04.1)")
-             SUBSET   : 2 points (X)
- 1   / 1:"01.1"
- 2   / 2:"03.7"
+! Define a dataset variable
+LET/D=a1478 temp_20 temp[Z=0:20 at SUM]
  
-let a = {1.1, 13.7}
-list floatstr(a, "(f06.1)")
-             VARIABLE : FLOATSTR(A, "(f06.1)")
-             SUBSET   : 2 points (X)
- 1   / 1:"0001.1"
- 2   / 2:"0013.7"
+! Define a global variable
+LET t30 = temp[Z=0:30 at SUM]
  
-let a = {-1.1, 13.7}
-list  floatstr(a, "(f04.1)")
-             VARIABLE : FLOATSTR(A, "(f04.1)")
-             SUBSET   : 2 points (X)
- 1   / 1:"-1.1"
- 2   / 2:"13.7"
+! Another variable, setting title, units, bad flag.
+LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral of SALT" salty = salt[Z=@IIN]
  
-! testing negative numbers and null/missing results
-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
-             LATITUDE: 91S to 11S
-             LONGITUDE: 165W
-             TIME: 16-JAN 06:00
- Column  1: VAR1[G=4 deg on Y] is FLOATSTR(SST-20,"(f5.1)") (regrid: 4 deg on Y)
- Column  2: VAR2[G=4 deg on Y] is FLOATSTR(SST-20,"(f05.1)") (regrid: 4 deg on Y)
-              VAR1    VAR2
-89S   /  1: ""      ""     
-85S   /  2: ""      ""     
-81S   /  3: ""      ""     
-77S   /  4: "-20.4" "-20.4"
-73S   /  5: "-21.0" "-21.0"
-69S   /  6: "-19.8" "-19.8"
-65S   /  7: "-20.0" "-20.0"
-61S   /  8: "-17.3" "-17.3"
-57S   /  9: "-13.9" "-13.9"
-53S   / 10: "-11.2" "-11.2"
-49S   / 11: " -7.5" "0-7.5"
-45S   / 12: " -5.7" "0-5.7"
-41S   / 13: " -3.5" "0-3.5"
-37S   / 14: " -1.3" "0-1.3"
-33S   / 15: "  0.9" "000.9"
-29S   / 16: "  3.0" "003.0"
-25S   / 17: "  5.1" "005.1"
-21S   / 18: "  7.5" "007.5"
-17S   / 19: "  8.1" "008.1"
-13S   / 20: "  9.7" "009.7"
  
-! *********** v6.96 Additions ***********
+! list tha variables
+SHO VAR/XML
+<global>
+<var name="t30">
+<attribute name="definition" type="char">
+   <value><![CDATA[TEMP[Z=0:30 at SUM]]]></value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<grid name="GHU1">
+<axes>
+<xaxis>grid_x_T</xaxis>
+<yaxis>grid_y_T</yaxis>
+<taxis>TIME</taxis>
+</axes>
+</grid>
+</var>
+</global>
+ 
+set mode/last upcase
  
-GO bn_reset
-cancel mode verify
-GO bn696_bug_fixes
-! bn696_bug_fixes
-! test various fixes that went into version 6.96
  
 GO bn_reset
 cancel mode verify
-GO err695_bounds_match_axis
-! err695_bounds_match_axis.jnl
-! ticket 2321.
-!
-! The coordinates match the upper bound of each cell
-! to machine accuracy. The internal rep of the value
-! has pt > bound_hi however.  The logic in tm_check_bnds
-! handes this.
- 
-use shorttemp.nc
- 
-! Previously showed tbox=0 for every second pt.
-sh grid/l=1:4444 temp
-    GRID GSL1
- name       axis              # pts   start                end
- LON1      LONGITUDE            1 r   97.45W               97.45W
- LAT       LATITUDE             1 r   36.65N               36.65N
- PFULL1_1  Z (hpa)              1 r-  3.3236               3.3236
- TIME16    TIME                 4 i   19-JUN-1997 00:00    19-JUN-1997 01:30
- normal    E
- normal    F
+GO bn_letd_attributes
+! bn_letd_attributes.jnl
+! Allow for the same variable name defined with LET/D in multiple datasets.
+! See ticket 2352.  Previously for all user variables the
+! attribute information stored was in fake uvar-dataset = -1.
+! Now if the variable is a LET/D variable, it is stored with
+! the attribute information of the dataset.
  
-       L     T                   TBOX      TBOXLO                TSTEP (days)
-       1>  19-JUN-1997 00:00:00  0.0208333  18-JUN-1997 23:30:00    0.02083333
-       2>  19-JUN-1997 00:30:00  0.0208333  19-JUN-1997 00:00:00    0.04166667
-       3>  19-JUN-1997 01:00:00  0.0208333  19-JUN-1997 00:30:00    0.0625
-       4>  19-JUN-1997 01:30:00  0.0208333  19-JUN-1997 01:00:00    0.08333333
  
-GO bn_reset
-cancel mode verify
-GO err695_show_dat_nodata
-! err695_show_dat_nodata.jnl
-! ticket 2322
-!
-! SHOW DATA noexist should include the dataset name or number
-! in the error message.
+! See the variable defined with LET/D in SHOW DAT, SHOW DAT/ATT
+! and with SHOW ATT
  
-USE coads_climatology
+use coads_climatology
+let/d=1/title="coads myvar" myvar = 1
  
-SHOW DATA 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)
  name     title                             I         J         K         L         M         N
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ ------------------------------
+ MYVAR[D=coads_climatology] = 1
  
-SHOW DATA coads_climatology
+ 
+show dat/att 1
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        28   T       FERRET V4.91 (GUI)  1-Mar-99
+  
+(COADSX)               DOUBLE    units           CHAR        12   T       degrees_east
+                                 modulo          CHAR        1    T
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSX
+  
+(COADSY)               DOUBLE    units           CHAR        13   T       degrees_north
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSY
+  
+(TIME10)               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
+                                                 CHAR        4    F       TIME
+  
+ SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
+                                 _FillValue      FLOAT       1    T       -1.E+34
+                                 long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
+                                 history         CHAR        22   T       From coads_climatology
+                                 units           CHAR        5    T       Deg C
+  
+ ------------------------------
+ myvar[D=coads_climatology]      long_name       CHAR        11   T       coads myvar
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+show att myvar
+     attributes for dataset: ./coads_climatology.cdf
+ myvar.long_name = coads myvar 
+ myvar.missing_value = -1.E+34
+ 
+! If there is also a global variable of the same name, SHOW VAR
+! and SHOW ATT list results for both variables
+ 
+let/title="Global myvar" myvar = 0  ! global
+show att myvar
+     attributes for user-defined variables
+ myvar.long_name = Global myvar 
+ myvar.missing_value = -1.E+34
+ 
+! Now a LET/D variable with the same name on a second datset.
+! SHOW ATT lists results for the current datset and any global variables
+ 
+use levitus_climatology
+let/d=2/title="Levitus myvar" myvar = 2
+show dat 2
+     currently SET data sets:
+    2> ./levitus_climatology.cdf  (default)
  name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ ------------------------------
+ MYVAR[D=levitus_climatology] = 2
  
+show dat/att 2
+     currently SET data sets:
+    2> ./levitus_climatology.cdf  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        24   T       FERRET V5.22    5-Apr-01
+  
+(XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
+                                 modulo          CHAR        1    T
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
+  
+(YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
+  
+(ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
+                                 positive        CHAR        4    T       down
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
+  
+ TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
+                                 _FillValue      FLOAT       1    T       -1.E+10
+                                 long_name       CHAR        11   T       TEMPERATURE
+                                 history         CHAR        24   T       From levitus_climatology
+                                 units           CHAR        5    T       DEG C
+  
+ ------------------------------
+ myvar[D=levitus_climatology]    long_name       CHAR        13   T       Levitus myvar
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+show att myvar
+     attributes for user-defined variables
+ myvar.long_name = Global myvar 
+ myvar.missing_value = -1.E+34
  
-! intentional errors
-SET MODE ignore
-SHOW DATA noexist
-SHOW DATA 2
-SHOW DATA/ATT noexist
+show att/d=1 myvar
+     attributes for dataset: ./coads_climatology.cdf
+ myvar.long_name = coads myvar 
+ myvar.missing_value = -1.E+34
  
-SET MODE/LAST ignore
+! ..varnames is the list of file variables. Now to include LET/D variables
  
-GO bn_reset
-cancel mode verify
-GO bn_bin_regrid
-! bin regridding tests
+let vnames = ..varnames
+list vnames
+             VARIABLE : ..VARNAMES
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1:"TEMP" 
+ 2   / 2:"myvar"
  
-go bn_bin_regrid.sub X
-! Tests of @BIN and @NBIN regridding transforms
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/X=1:5:1 dcoarse
+set data 1
+list vnames
+             VARIABLE : ..VARNAMES
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1:"SST"  
+ 2   / 2:"myvar"
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/X irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _X[GX=irr]
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _X[GX=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
-             X: 0.5 to 5.5
- Column  1: DEST is _X[GX=DCOARSE]
- Column  2: VAR[G=1 delta on X at AVE] is _X[GX=IRR] (regrid: 1 delta on X at AVE)
- Column  3: VAR[G=1 delta on X at BIN] is _X[GX=IRR] (regrid: 1 delta on X at BIN)
- Column  4: VAR[G=1 delta on X at NBIN] is _X[GX=IRR] (regrid: 1 delta on X at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.177778  1.150000  2.000000
-2   / 2:  2.000000  1.545000      ....  0.000000
-3   / 3:  3.000000  3.500000      ....  0.000000
-4   / 4:  4.000000  3.980000  3.500000  1.000000
-5   / 5:  5.000000  4.838462  4.850000  2.000000
+! CANCEL VAR deletes the variables from the linked-list attribute structure.
+cancel var/all
+show dat
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
  
+    2> ./levitus_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _X[gX=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _X[GX=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
-             X: 0.5 to 5.5
- Column  1: DEST is _X[GX=DCOARSE]
- Column  2: VAR[G=1 delta on X at AVE] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at AVE)
- Column  3: VAR[G=1 delta on X at BIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at BIN)
- Column  4: VAR[G=1 delta on X at NBIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.955556  1.650000  2.000000
-2   / 2:  2.000000  2.200000      ....  0.000000
-3   / 3:  3.000000      ....      ....  0.000000
-4   / 4:  4.000000      ....      ....  0.000000
-5   / 5:  5.000000  5.000000  5.000000  1.000000
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GX=dcoarse]
-             X: 0.5 to 5.5
- Column  1: DEST is _X[GX=DCOARSE]
- Column  2: VAR[G=1 delta on X] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
-             DEST     VAR
-1   / 1:  1.000000      ....
-2   / 2:  2.000000      ....
-3   / 3:  3.000000      ....
-4   / 4:  4.000000      ....
-5   / 5:  5.000000  5.000000
+show dat/att 2
+     currently SET data sets:
+    2> ./levitus_climatology.cdf
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        24   T       FERRET V5.22    5-Apr-01
+  
+(XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
+                                 modulo          CHAR        1    T
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
+  
+(YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
+  
+(ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
+                                 positive        CHAR        4    T       down
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
+  
+ TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
+                                 _FillValue      FLOAT       1    T       -1.E+10
+                                 long_name       CHAR        11   T       TEMPERATURE
+                                 history         CHAR        24   T       From levitus_climatology
+                                 units           CHAR        5    T       DEG C
+  
  
-go bn_bin_regrid.sub Y
-! Tests of @BIN and @NBIN regridding transforms
+! Redefine our LET/D variables
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/Y=1:5:1 dcoarse
+use coads_climatology
+let/d=1/title="coads myvar" myvar = 1
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/Y irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _Y[GY=irr]
+use levitus_climatology
+let/d=2/title="Levitus myvar" myvar = 2
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _Y[GY=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
-             Y: 0.5 to 5.5
- Column  1: DEST is _Y[GY=DCOARSE]
- Column  2: VAR[G=1 delta on Y at AVE] is _Y[GY=IRR] (regrid: 1 delta on Y at AVE)
- Column  3: VAR[G=1 delta on Y at BIN] is _Y[GY=IRR] (regrid: 1 delta on Y at BIN)
- Column  4: VAR[G=1 delta on Y at NBIN] is _Y[GY=IRR] (regrid: 1 delta on Y at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.177778  1.150000  2.000000
-2   / 2:  2.000000  1.545000      ....  0.000000
-3   / 3:  3.000000  3.500000      ....  0.000000
-4   / 4:  4.000000  3.980000  3.500000  1.000000
-5   / 5:  5.000000  4.838462  4.850000  2.000000
+! Define new attributes on the file variable and LET/D variable
+! in the default dataset
  
+define att/output temp.my_new_att="temperature attrib"
+define att/output myvar.units="meters"
+show att temp
+     attributes for dataset: ./levitus_climatology.cdf
+ TEMP.missing_value = -1.E+10
+ TEMP._FillValue = -1.E+10
+ TEMP.long_name = TEMPERATURE 
+ TEMP.history = From levitus_climatology 
+ TEMP.units = DEG C 
+ TEMP.my_new_att = temperature attrib 
+show att myvar
+     attributes for dataset: ./levitus_climatology.cdf
+ myvar.long_name = Levitus myvar 
+ myvar.missing_value = -1.E+34
+ myvar.units = meters 
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _Y[gY=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _Y[GY=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
-             Y: 0.5 to 5.5
- Column  1: DEST is _Y[GY=DCOARSE]
- Column  2: VAR[G=1 delta on Y at AVE] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at AVE)
- Column  3: VAR[G=1 delta on Y at BIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at BIN)
- Column  4: VAR[G=1 delta on Y at NBIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.955556  1.650000  2.000000
-2   / 2:  2.000000  2.200000      ....  0.000000
-3   / 3:  3.000000      ....      ....  0.000000
-4   / 4:  4.000000      ....      ....  0.000000
-5   / 5:  5.000000  5.000000  5.000000  1.000000
+! use /D= to define an attribute for a file-specific var
+define att/output/d=2 myvar.standard_name = "None"
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GY=dcoarse]
-             Y: 0.5 to 5.5
- Column  1: DEST is _Y[GY=DCOARSE]
- Column  2: VAR[G=1 delta on Y] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
-             DEST     VAR
-1   / 1:  1.000000      ....
-2   / 2:  2.000000      ....
-3   / 3:  3.000000      ....
-4   / 4:  4.000000      ....
-5   / 5:  5.000000  5.000000
+define att/output/d=1 myvar.units="feet"
+show att/d=1 myvar
+     attributes for dataset: ./coads_climatology.cdf
+ myvar.long_name = coads myvar 
+ myvar.missing_value = -1.E+34
+ myvar.units = feet 
+save/clobber/file=a.nc myvar[d=1]
+sp ncdump -h a.nc >> all_ncdump.out
  
-go bn_bin_regrid.sub Z
-! Tests of @BIN and @NBIN regridding transforms
+show att/d=2 myvar
+     attributes for dataset: ./levitus_climatology.cdf
+ myvar.long_name = Levitus myvar 
+ myvar.missing_value = -1.E+34
+ myvar.units = meters 
+ myvar.standard_name = None 
+save/clobber/file=a.nc myvar[d=2]
+sp ncdump -h a.nc >> all_ncdump.out
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/Z=1:5:1 dcoarse
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/Z irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _Z[GZ=irr]
+GO bn_reset
+cancel mode verify
+GO bn_list_clim_axes
+! bn_list_clim_axes.jnl
+! *acm* 3/16
+! Show and list coordinates for climatological axes
+! that are pre-defined in Ferret
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _Z[GZ=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
-             Z: 0.5 to 5.5
- Column  1: DEST is _Z[GZ=DCOARSE]
- Column  2: VAR[G=1 delta on Z at AVE] is _Z[GZ=IRR] (regrid: 1 delta on Z at AVE)
- Column  3: VAR[G=1 delta on Z at BIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at BIN)
- Column  4: VAR[G=1 delta on Z at NBIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.177778  1.150000  2.000000
-2   / 2:  2.000000  1.545000      ....  0.000000
-3   / 3:  3.000000  3.500000      ....  0.000000
-4   / 4:  4.000000  3.980000  3.500000  1.000000
-5   / 5:  5.000000  4.838462  4.850000  2.000000
+show axis seasonal_reg
+ name       axis              # pts   start                end
+ SEASONAL_REG TIME              4mr   15-FEB 15:43         15-NOV 14:05
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 8765.82 (modulo length = axis span)
+show axis month*
+ name       axis              # pts   start                end
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ MONTH_REG TIME                12mr   16-JAN 06:00         16-DEC 01:20
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 8765.82 (modulo length = axis span)
+ MONTH_GREGORIAN TIME          12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ MONTH_NOLEAP TIME             12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = NOLEAP
+   Axis span (to cell edges) = 365 (modulo length = axis span)
+ MONTH_360_DAY TIME            12mr   16-JAN 00:00         16-DEC 00:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ MONTH_ALL_LEAP TIME           12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = ALL_LEAP
+   Axis span (to cell edges) = 366 (modulo length = axis span)
+ MONTH_JULIAN TIME             12mi   16-JAN 12:00         15-DEC 18:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 365.25 (modulo length = axis span)
+ MONTHT    TIME                24 r   16-JAN-1949 00:00    17-DEC-1950 01:30
+T0 = 15-JAN-1901
+   Axis span (to cell edges) = 17532
+show axis/t month_irreg
+ name       axis              # pts   start                end
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
  
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 02:54:36       28.2425    01-FEB 00:00:00         45.12125
+       3>  15-MAR 17:49:12       31         29-FEB 05:49:12         74.7425
+       4>  15-APR 05:49:12       30         31-MAR 05:49:12         105.2425
+       5>  15-MAY 17:49:12       31         30-APR 05:49:12         135.7425
+       6>  15-JUN 05:49:12       30         31-MAY 05:49:12         166.2425
+       7>  15-JUL 17:49:12       31         30-JUN 05:49:12         196.7425
+       8>  15-AUG 17:49:12       31         31-JUL 05:49:12         227.7425
+       9>  15-SEP 05:49:12       30         31-AUG 05:49:12         258.2425
+      10>  15-OCT 17:49:12       31         30-SEP 05:49:12         288.7425
+      11>  15-NOV 05:49:12       30         31-OCT 05:49:12         319.2425
+      12>  15-DEC 17:49:12       31         30-NOV 05:49:12         349.7425
+show axis/t month_gregorian
+ name       axis              # pts   start                end
+ MONTH_GREGORIAN TIME          12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _Z[gZ=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _Z[GZ=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
-             Z: 0.5 to 5.5
- Column  1: DEST is _Z[GZ=DCOARSE]
- Column  2: VAR[G=1 delta on Z at AVE] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at AVE)
- Column  3: VAR[G=1 delta on Z at BIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at BIN)
- Column  4: VAR[G=1 delta on Z at NBIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.955556  1.650000  2.000000
-2   / 2:  2.000000  2.200000      ....  0.000000
-3   / 3:  3.000000      ....      ....  0.000000
-4   / 4:  4.000000      ....      ....  0.000000
-5   / 5:  5.000000  5.000000  5.000000  1.000000
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 02:54:36       28.2425    01-FEB 00:00:00         45.12125
+       3>  15-MAR 17:49:12       31         29-FEB 05:49:12         74.7425
+       4>  15-APR 05:49:12       30         31-MAR 05:49:12         105.2425
+       5>  15-MAY 17:49:12       31         30-APR 05:49:12         135.7425
+       6>  15-JUN 05:49:12       30         31-MAY 05:49:12         166.2425
+       7>  15-JUL 17:49:12       31         30-JUN 05:49:12         196.7425
+       8>  15-AUG 17:49:12       31         31-JUL 05:49:12         227.7425
+       9>  15-SEP 05:49:12       30         31-AUG 05:49:12         258.2425
+      10>  15-OCT 17:49:12       31         30-SEP 05:49:12         288.7425
+      11>  15-NOV 05:49:12       30         31-OCT 05:49:12         319.2425
+      12>  15-DEC 17:49:12       31         30-NOV 05:49:12         349.7425
+show axis/t month_noleap
+ name       axis              # pts   start                end
+ MONTH_NOLEAP TIME             12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = NOLEAP
+   Axis span (to cell edges) = 365 (modulo length = axis span)
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GZ=dcoarse]
-             Z: 0.5 to 5.5
- Column  1: DEST is _Z[GZ=DCOARSE]
- Column  2: VAR[G=1 delta on Z] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
-             DEST     VAR
-1   / 1:  1.000000      ....
-2   / 2:  2.000000      ....
-3   / 3:  3.000000      ....
-4   / 4:  4.000000      ....
-5   / 5:  5.000000  5.000000
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 00:00:00       28         01-FEB 00:00:00         45
+       3>  16-MAR 12:00:00       31         01-MAR 00:00:00         74.5
+       4>  16-APR 00:00:00       30         01-APR 00:00:00         105
+       5>  16-MAY 12:00:00       31         01-MAY 00:00:00         135.5
+       6>  16-JUN 00:00:00       30         01-JUN 00:00:00         166
+       7>  16-JUL 12:00:00       31         01-JUL 00:00:00         196.5
+       8>  16-AUG 12:00:00       31         01-AUG 00:00:00         227.5
+       9>  16-SEP 00:00:00       30         01-SEP 00:00:00         258
+      10>  16-OCT 12:00:00       31         01-OCT 00:00:00         288.5
+      11>  16-NOV 00:00:00       30         01-NOV 00:00:00         319
+      12>  16-DEC 12:00:00       31         01-DEC 00:00:00         349.5
+show axis/t month_360_day
+ name       axis              # pts   start                end
+ MONTH_360_DAY TIME            12mr   16-JAN 00:00         16-DEC 00:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 360 (modulo length = axis span)
  
-go bn_bin_regrid.sub T
-! Tests of @BIN and @NBIN regridding transforms
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 00:00:00       30         01-JAN 00:00:00         15
+       2>  16-FEB 00:00:00       30         01-FEB 00:00:00         45
+       3>  16-MAR 00:00:00       30         01-MAR 00:00:00         75
+       4>  16-APR 00:00:00       30         01-APR 00:00:00         105
+       5>  16-MAY 00:00:00       30         01-MAY 00:00:00         135
+       6>  16-JUN 00:00:00       30         01-JUN 00:00:00         165
+       7>  16-JUL 00:00:00       30         01-JUL 00:00:00         195
+       8>  16-AUG 00:00:00       30         01-AUG 00:00:00         225
+       9>  16-SEP 00:00:00       30         01-SEP 00:00:00         255
+      10>  16-OCT 00:00:00       30         01-OCT 00:00:00         285
+      11>  16-NOV 00:00:00       30         01-NOV 00:00:00         315
+      12>  16-DEC 00:00:00       30         01-DEC 00:00:00         345
+show axis/t month_all_leap
+ name       axis              # pts   start                end
+ MONTH_ALL_LEAP TIME           12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = ALL_LEAP
+   Axis span (to cell edges) = 366 (modulo length = axis span)
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/T=1:5:1 dcoarse
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 12:00:00       29         01-FEB 00:00:00         45.5
+       3>  16-MAR 12:00:00       31         01-MAR 00:00:00         75.5
+       4>  16-APR 00:00:00       30         01-APR 00:00:00         106
+       5>  16-MAY 12:00:00       31         01-MAY 00:00:00         136.5
+       6>  16-JUN 00:00:00       30         01-JUN 00:00:00         167
+       7>  16-JUL 12:00:00       31         01-JUL 00:00:00         197.5
+       8>  16-AUG 12:00:00       31         01-AUG 00:00:00         228.5
+       9>  16-SEP 00:00:00       30         01-SEP 00:00:00         259
+      10>  16-OCT 12:00:00       31         01-OCT 00:00:00         289.5
+      11>  16-NOV 00:00:00       30         01-NOV 00:00:00         320
+      12>  16-DEC 12:00:00       31         01-DEC 00:00:00         350.5
+ 
+GO bn_reset
+cancel mode verify
+GO bn_climatology_attr
+! bn_climatology_attr.jnl
+! *acm* 3/16  See ticket 2278
+!
+! Add an attribute climatology_time_range when writing a computed
+! climatology, listing the month/year of the start and end of the
+! data used in computing it.
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/T irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _T[GT=irr]
+! Define a monthly axis
+def ax/t=1-feb-1980:1-feb-2003/np=276/unit="day"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
+ 
+! entire input time range used
+let clim1 = tvar[gt=month_irreg at mod]
+save/file=a.nc/clobber clim1
+ 
+! a subset of the time range used
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let clim2 = t_subset[gt=month_reg at mod]
+save/append/file=a.nc clim2
+ 
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow clim1.climatology_time_range, clim2.climatology_time_range
+ "FEB-1980:FEB-2003" "FEB-1990:DEC-1999"
+ 
+ 
+! noleap axis
+def ax/edge/t=1-feb-1980:1-feb-2003/np=276/cal=noleap/unit="hour"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_noleap at mod]
+save/file=a.nc/clobber clim1
+ 
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let clim2 = t_subset[gt=month_noleap at mod]
+save/append/file=a.nc clim2
+ 
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow clim1.climatology_time_range, clim2.climatology_time_range
+ "FEB-1980:JAN-2003" "FEB-1990:DEC-1999"
+ 
+ 
+ 
+! If the expression compbines data from multiple ranges, indicate that
+ 
+def ax/t=1-feb-1980:1-feb-2003/np=276/unit="day"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
+let a = tvar[gt=month_reg at mod]
+ 
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let b = t_subset[gt=month_reg at mod]
+let c = a+b
+ 
+save/append/file=a.nc c
+ 
+can dat/all; use a.nc
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow c.climatology_time_range
+ "Multiple time ranges used"
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_plot_along
+! BN_PLOT_ALONG
+ 
+! *sh* 3/2016
+ 
+!  yes? GO bn_plot_along [debug]
+ 
+! exercise breaking up of plot command argument into lones along the
+! indicated direction
+ 
+DEFINE SYMBOL debugme = ($1"SAY continuing|debug>PAUSE")
+ !-> DEFINE SYMBOL debugme = SAY continuing
+ 
+! basic
+LET blocky10 = x[i=1:10]+y[j=1:10]
+PLOT/ALONG=x blocky10
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! degenerate case -- only a single line
+LET blocky1 = x[i=1:10]+y[j=1:1]
+PLOT/ALONG=x blocky1
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! number of lines exceeds key limit  (40 at time of this writing)
+! automatic decimation to keep within key limit
+LET blocky200 = x[i=1:10]+y[j=1:200]
+PLOT/ALONG=x blocky200
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey  - no longer limited to the number of keys that can be drawn
+LET blocky50 = x[i=1:10]+y[j=1:50]
+PLOT/ALONG=x/nokey blocky50
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T at AVE] is _T[GT=IRR] (regrid: 1 delta on T at AVE)
- Column  3: VAR[G=1 delta on T at BIN] is _T[GT=IRR] (regrid: 1 delta on T at BIN)
- Column  4: VAR[G=1 delta on T at NBIN] is _T[GT=IRR] (regrid: 1 delta on T at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.177778  1.150000  2.000000
-2   / 2:  2.000000  1.545000      ....  0.000000
-3   / 3:  3.000000  3.500000      ....  0.000000
-4   / 4:  4.000000  3.980000  3.500000  1.000000
-5   / 5:  5.000000  4.838462  4.850000  2.000000
+! /nokey -- number of lines exceeds line limit  (200 at time of this writing)
+! automatic decimation to keep within line limit
+LET blocky201 = x[i=1:10]+y[j=1:201]
+PLOT/ALONG=x/nokey blocky201
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
  
+! multi-dimensional
+LET blockxyz        = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:5]+100*z[k=1:30]
+LET blockxyz_little = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:3] +100*z[k=1:4]
+PLOT/ALONG=t blockxyz_little
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+PLOT/ALONG=t blockxyz         ! decimate to key  limit
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+PLOT/ALONG=t/nokey blockxyz   ! decimate to line limit
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _T[gT=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T at AVE] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at AVE)
- Column  3: VAR[G=1 delta on T at BIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at BIN)
- Column  4: VAR[G=1 delta on T at NBIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.955556  1.650000  2.000000
-2   / 2:  2.000000  2.200000      ....  0.000000
-3   / 3:  3.000000      ....      ....  0.000000
-4   / 4:  4.000000      ....      ....  0.000000
-5   / 5:  5.000000  5.000000  5.000000  1.000000
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GT=dcoarse]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
-             DEST     VAR
-1   / 1:  1.000000      ....
-2   / 2:  2.000000      ....
-3   / 3:  3.000000      ....
-4   / 4:  4.000000      ....
-5   / 5:  5.000000  5.000000
+! ensemble application
+LET block = x[i=1:2]+10*y[j=1:3]+100*z[k=1:4]
+LET sin_block = SIN(T[l=1:100]/10)*block
+LET ens_sin_block = sin_block*( (20+_E[m=1:20])/20 )
+PLOT/ALONG=t ens_sin_block[i=1,j=2,k=3]
+ 
+GO bn_reset
+cancel mode verify
+GO bn_show_commands
+! bn_show_commands.jnl
+! Testing results for ticket 2078: SHOW COMMAND cmnd subcmnd
+! Also new SHOW COMMAND/BRIEF
+! 3/2016 *acm*
+!
+! When commands are highly abbreviated, which command/subcommand is
+! executed depends on the order in which they are listed in Ferret
+! internal data structures. Keep this output consistent if new commands
+! added or command list are reordered.
  
-go bn_bin_regrid.sub E
-! Tests of @BIN and @NBIN regridding transforms
+! Commands with subcommands
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/E=1:5:1 dcoarse
+sho command set
+ 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
+ SET VIEWPORT
+ SET EXPRSION
+ 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
+ SET MODE/LAST
+ SET MOVI/FILE/COMPRESS/LASER/START
+ SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
+      /LAYERZ/CURVILIN
+ SET GRID/SAVE/RESTORE
+ SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
+ SET MEMORY/SIZE
+ SET ATTRIBUT/TYPE/DATASET/OUTPUT/LIKE/QUIET
+ SET NCCACHE/SIZE/NELEMS/PREEMPT
+ SET REDIRECT/TEE/JOURNAL/FILE/APPEND/CLOBBER
+ SET GIFFILE
+sho command set w  ! SET WINDOW
+ SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE
+sho command set r  ! SET REGION
+ SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
+sho command set v  ! SET VIEWPORT
+ SET VIEWPORT
+sho command set e  ! SET EXPRSION
+ SET EXPRSION
+sho command set l  ! SET LIST
+ SET LIST/PRECISIO/FILE/FORMAT/APPEND/HEADING/NCFORMAT/ENDIAN/DEFLATE/SHUFFLE
+      /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
+sho command set m  ! SET MODE
+ SET MODE/LAST
+sho command set mov! SET MOVIE
+ SET MOVI/FILE/COMPRESS/LASER/START
+sho command set va ! SET VARIABLE
+ SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
+      /LAYERZ/CURVILIN
+sho command set g  ! SET GRID
+ SET GRID/SAVE/RESTORE
+sho command set a  ! SET AXIS
+ SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
+sho command set me ! SET MEMORY
+ SET MEMORY/SIZE
+sho command set at ! SET ATTRIBUTE
+ SET ATTRIBUT/TYPE/DATASET/OUTPUT/LIKE/QUIET
+sho command set n  ! SET NCCACHE
+ SET NCCACHE/SIZE/NELEMS/PREEMPT
+sho command set red! SET REDIRECT
+ SET REDIRECT/TEE/JOURNAL/FILE/APPEND/CLOBBER
+sho command set gi ! SET GIFFILE
+ SET GIFFILE
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/E irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _E[GE=irr]
+sho command sho
+ SHOW/ALL
+ SHOW WINDOW/ALL
+ SHOW REGION/ALL
+ SHOW AXIS/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/XML/OUTFILE/APPEND/CLOBBER
+ SHOW EXPRSION/ALL
+ SHOW LIST/ALL
+ SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
+       /HIDDEN
+ SHOW MODE/ALL
+ SHOW MOVIE/ALL
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+ SHOW COMMANDS/ALL/BRIEF
+ SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
+ SHOW VIEWPORT/ALL
+ SHOW TRANFORM/ALL
+ SHOW ALIAS/ALL
+ SHOW SYMBOL/ALL
+ SHOW ATTRIBUT/ALL/DATASET/OUTPUT
+ SHOW NCCACHE
+ SHOW GIFFILE
+ SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
+ SHOW QUERIES/ALL
+sho command sho w  ! SHOW WINDOW
+ SHOW WINDOW/ALL
+sho command sho r  ! SHOW REGION
+ SHOW REGION/ALL
+sho command sho a  ! SHOW AXIS
+ SHOW AXIS/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/XML/OUTFILE/APPEND/CLOBBER
+sho command sho e  ! SHOW EXPRSTION
+ SHOW EXPRSION/ALL
+sho command sho l  ! SHOW LIST
+ SHOW LIST/ALL
+sho command sho d  ! SHOW DATA
+ SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
+       /HIDDEN
+sho command sho m  ! SHOW MODE
+ SHOW MODE/ALL
+sho command sho mov! SHOW MOVIE
+ SHOW MOVIE/ALL
+sho command sho v  ! SHOW VARIABLE
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+sho command sho c  ! SHOW COMMANDS
+ SHOW COMMANDS/ALL/BRIEF
+sho command sho me ! SHOW MEMORY
+ SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+sho command sho g  ! SHOW GRID
+ SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
+sho command sho vi ! SHOW VIEWPORT
+ SHOW VIEWPORT/ALL
+sho command sho t  ! SHOW TRANSFORM
+ SHOW TRANFORM/ALL
+sho command sho al ! SHOW ALIAS
+ SHOW ALIAS/ALL
+sho command sho s  ! SHOW SYMBOL
+ SHOW SYMBOL/ALL
+sho command sho at ! SHOW ATTRIBUTE
+ SHOW ATTRIBUT/ALL/DATASET/OUTPUT
+sho command sho n  ! SHOW NCCACHE
+ SHOW NCCACHE
+sho command sho gi ! SHOW GIFFILE
+ SHOW GIFFILE
+sho command sho f  ! SHOW FUNCTION
+ SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
+sho command sho q  ! SHOW QUERIES
+ SHOW QUERIES/ALL
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E at AVE] is _E[GE=IRR] (regrid: 1 delta on E at AVE)
- Column  3: VAR[G=1 delta on E at BIN] is _E[GE=IRR] (regrid: 1 delta on E at BIN)
- Column  4: VAR[G=1 delta on E at NBIN] is _E[GE=IRR] (regrid: 1 delta on E at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.177778  1.150000  2.000000
-2   / 2:  2.000000  1.545000      ....  0.000000
-3   / 3:  3.000000  3.500000      ....  0.000000
-4   / 4:  4.000000  3.980000  3.500000  1.000000
-5   / 5:  5.000000  4.838462  4.850000  2.000000
+sho command can
+ CANCEL
+ CANCEL WIND/ALL
+ CANCEL REGION/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F
+ CANCEL MEMORY/ALL/TEMPORY/PERMANT
+ CANCEL EXPRSION/ALL
+ CANCEL LIST/ALL/PRECISIO/FILE/FORMAT/HEADING/APPEND/OUTTYPE
+ CANCEL DATA/ALL/NOERROR
+ CANCEL MODE
+ CANCEL MOVIE/ALL
+ CANCEL VIEWPORT
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
+ CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
+ CANCEL GRID
+ CANCEL ATTRIBUT/OUTPUT/DATASET
+ CANCEL REDIRECT
+ CANCEL ALIAS/ALL
+ CANCEL SYMBOL/ALL
+ CANCEL NCCACHE
+sho command can w  ! CANCEL WINDOW
+ CANCEL WIND/ALL
+sho command can r  ! CANCEL REGION
+ CANCEL REGION/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F
+sho command can m  ! CANCEL MEMORY
+ CANCEL MEMORY/ALL/TEMPORY/PERMANT
+sho command can e  ! CANCEL EXPRSION
+ CANCEL EXPRSION/ALL
+sho command can l  ! CANCEL LIST
+ CANCEL LIST/ALL/PRECISIO/FILE/FORMAT/HEADING/APPEND/OUTTYPE
+sho command can d  ! CANCEL DATA
+ CANCEL DATA/ALL/NOERROR
+sho command can mo ! CANCEL MODE
+ CANCEL MODE
+sho command can mov! CANCEL MOVIE
+ CANCEL MOVIE/ALL
+sho command can v  ! CANCEL VIEWPORT
+ CANCEL VIEWPORT
+sho command can va ! CANCEL VARIABLE
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
+sho command can a  ! CANCEL AXIS
+ CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
+sho command can g  ! CANCEL GRID
+ CANCEL GRID
+sho command can at ! CANCEL ATTRIBUTE
+ CANCEL ATTRIBUT/OUTPUT/DATASET
+sho command can red! CANCEL REDIRECT
+ CANCEL REDIRECT
+sho command can al ! CANCEL ALIAS
+ CANCEL ALIAS/ALL
+sho command can s  ! CANCEL SYMBOL
+ CANCEL SYMBOL/ALL
+sho command can n  ! CANCEL NCCACHE
+ CANCEL NCCACHE
  
+sho command def
+ DEFINE
+ DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
+         /DL/DM/DN
+ DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
+ DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
+ DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+ DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
+ DEFINE ALIAS
+ DEFINE SYMBOL
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
+ DEFINE PYFUNC/NAME
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
+sho command def r  ! DEFINE REGION
+ DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
+         /DL/DM/DN
+sho command def g  ! DEFINE GRID
+ DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
+sho command def v  ! DEFINE VARIABLE
+ DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
+sho command def a  ! DEFINE AXIS
+ DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+sho command def vi ! DEFINE VIEWPORT
+ DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
+sho command def al ! DEFINE ALIAS
+ DEFINE ALIAS
+sho command def s  ! DEFINE SYMBOL
+ DEFINE SYMBOL
+sho command def at ! DEFINE ATTRIBUTE
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
+sho command def P  ! DEFINE PYFUNC
+ DEFINE PYFUNC/NAME
+sho command def d  ! DEFINE DATA
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
+sho command def an ! DEFINE ANNOTATE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _E[gE=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E at AVE] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at AVE)
- Column  3: VAR[G=1 delta on E at BIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at BIN)
- Column  4: VAR[G=1 delta on E at NBIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.955556  1.650000  2.000000
-2   / 2:  2.000000  2.200000      ....  0.000000
-3   / 3:  3.000000      ....      ....  0.000000
-4   / 4:  4.000000      ....      ....  0.000000
-5   / 5:  5.000000  5.000000  5.000000  1.000000
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GE=dcoarse]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
-             DEST     VAR
-1   / 1:  1.000000      ....
-2   / 2:  2.000000      ....
-3   / 3:  3.000000      ....
-4   / 4:  4.000000      ....
-5   / 5:  5.000000  5.000000
+! Also new SHOW COMMAND/BRIEF
+! Single commands, abbreviated.
  
-go bn_bin_regrid.sub F
-! Tests of @BIN and @NBIN regridding transforms
+sho command/brief a
+ ANNOTATE
+sho command/brief c
+ CANCEL
+ CANCEL WIND
+ CANCEL REGION
+ CANCEL MEMORY
+ CANCEL EXPRSION
+ CANCEL LIST
+ CANCEL DATA
+ CANCEL MODE
+ CANCEL MOVIE
+ CANCEL VIEWPORT
+ CANCEL VARIABLE
+ CANCEL AXIS
+ CANCEL GRID
+ CANCEL ATTRIBUT
+ CANCEL REDIRECT
+ CANCEL ALIAS
+ CANCEL SYMBOL
+ CANCEL NCCACHE
+sho command/brief ca
+ CANCEL
+ CANCEL WIND
+ CANCEL REGION
+ CANCEL MEMORY
+ CANCEL EXPRSION
+ CANCEL LIST
+ CANCEL DATA
+ CANCEL MODE
+ CANCEL MOVIE
+ CANCEL VIEWPORT
+ CANCEL VARIABLE
+ CANCEL AXIS
+ CANCEL GRID
+ CANCEL ATTRIBUT
+ CANCEL REDIRECT
+ CANCEL ALIAS
+ CANCEL SYMBOL
+ CANCEL NCCACHE
+sho command/brief co
+ CONTOUR
+sho command/brief d
+ DEFINE
+ DEFINE REGION
+ DEFINE GRID
+ DEFINE VARIABLE
+ DEFINE AXIS
+ DEFINE VIEWPORT
+ DEFINE ALIAS
+ DEFINE SYMBOL
+ DEFINE ATTRIBUT
+ DEFINE PYFUNC
+ DEFINE DATA
+ DEFINE ANNOTATI
+sho command/brief e
+ EXIT
+sho command/brief el
+ ELSE
+sho command/brief en
+ ENDIF
+sho command/brief ex
+ EXIT
+sho command/brief f
+ FRAME
+sho command/brief h
+ HELP
+sho command/brief h
+ HELP
+sho command/brief i
+ IF
+sho command/brief l
+ LIST
+sho command/brief li
+ LIST
+sho command/brief lo
+ LOAD
+sho command/brief m
+ MESSAGE
+sho command/brief p
+ PLOT
+sho command/brief pl
+ PLOT
+sho command/brief po
+ POLYGON
+sho command/brief pp
+ PPLUS
+sho command/brief q
+ QUERY
+sho command/brief r
+ REPEAT
+sho command/brief s
+ SET
+ SET WINDOW
+ SET REGION
+ SET VIEWPORT
+ SET EXPRSION
+ SET LIST
+ SET DATA
+ SET MODE
+ SET MOVI
+ SET VARIABLE
+ SET GRID
+ SET AXIS
+ SET MEMORY
+ SET ATTRIBUT
+ SET NCCACHE
+ SET REDIRECT
+ SET GIFFILE
+sho command/brief se
+ SET
+ SET WINDOW
+ SET REGION
+ SET VIEWPORT
+ SET EXPRSION
+ SET LIST
+ SET DATA
+ SET MODE
+ SET MOVI
+ SET VARIABLE
+ SET GRID
+ SET AXIS
+ SET MEMORY
+ SET ATTRIBUT
+ SET NCCACHE
+ SET REDIRECT
+ SET GIFFILE
+sho command/brief sh
+ SHOW
+ SHOW WINDOW
+ SHOW REGION
+ SHOW AXIS
+ SHOW EXPRSION
+ SHOW LIST
+ SHOW DATA
+ SHOW MODE
+ SHOW MOVIE
+ SHOW VARIABLE
+ SHOW COMMANDS
+ SHOW MEMORY
+ SHOW GRID
+ SHOW VIEWPORT
+ SHOW TRANFORM
+ SHOW ALIAS
+ SHOW SYMBOL
+ SHOW ATTRIBUT
+ SHOW NCCACHE
+ SHOW GIFFILE
+ SHOW FUNCTION
+ SHOW QUERIES
+sho command/brief sp
+ SPAWN
+sho command/brief st
+ STAT
+sho command/brief u
+ USER
+sho command/brief v
+ VECTOR
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/F=1:5:1 dcoarse
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/F irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _F[GF=irr]
+! All the commands, no subcommands, no qualifiers
+SHOW COMMAND/BRIEF
+ Commands in Program FERRET (beta/dbg) version7:
+ SET
+ SHOW
+ CANCEL
+ CONTOUR
+ LIST
+ PLOT
+ GO
+ HELP
+ LOAD
+ DEFINE
+ EXIT
+ MESSAGE
+ VECTOR
+ PPLUS
+ FRAME
+ REPEAT
+ STAT
+ SHADE
+ SPAWN
+ USER
+ WIRE
+ QUERY
+ IF
+ ELSE
+ ELIF
+ ENDIF
+ POLYGON
+ ANNOTATE
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F at AVE] is _F[GF=IRR] (regrid: 1 delta on F at AVE)
- Column  3: VAR[G=1 delta on F at BIN] is _F[GF=IRR] (regrid: 1 delta on F at BIN)
- Column  4: VAR[G=1 delta on F at NBIN] is _F[GF=IRR] (regrid: 1 delta on F at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.177778  1.150000  2.000000
-2   / 2:  2.000000  1.545000      ....  0.000000
-3   / 3:  3.000000  3.500000      ....  0.000000
-4   / 4:  4.000000  3.980000  3.500000  1.000000
-5   / 5:  5.000000  4.838462  4.850000  2.000000
+ Use SHOW ALIAS to see alternative command names
  
+! With a command, just show subcommands, no qualifiers
+SHOW COMMAND/BRIEF sho
+ SHOW
+ SHOW WINDOW
+ SHOW REGION
+ SHOW AXIS
+ SHOW EXPRSION
+ SHOW LIST
+ SHOW DATA
+ SHOW MODE
+ SHOW MOVIE
+ SHOW VARIABLE
+ SHOW COMMANDS
+ SHOW MEMORY
+ SHOW GRID
+ SHOW VIEWPORT
+ SHOW TRANFORM
+ SHOW ALIAS
+ SHOW SYMBOL
+ SHOW ATTRIBUT
+ SHOW NCCACHE
+ SHOW GIFFILE
+ SHOW FUNCTION
+ SHOW QUERIES
+ 
+! With a command and subcommand, no qualifiers
+SHOW COMMAND/BRIEF sho da
+ SHOW DATA
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO bn_plot_decimate
+! BN_PLOT_SKIP
+ 
+! *acm* 3/2016
+ 
+!  yes? GO bn_plot_skip [debug]
+ 
+! based on PLOT/ALONG tests.
+! PLOT/SKIP=n for /SYMBOL plots makes only every SKIP symbol.
+ 
+DEFINE SYMBOL debugme = ($1"SAY continuing|debug>PAUSE")
+ !-> DEFINE SYMBOL debugme = SAY continuing
+ 
+DEFINE SYMBOL deci = 2
+ 
+! basic
+LET blocky10 = x[i=1:10]+y[j=1:10]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky10
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x blocky10
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! degenerate case -- only a single line
+LET blocky1 = x[i=1:10]+y[j=1:1]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky1
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x blocky1
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! number of lines exceeds key limit  (40 at time of this writing)
+! automatic decimation to keep within key limit
+LET blocky200 = x[i=1:10]+y[j=1:200]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky200
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x blocky200
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey  - no longer limited to the number of keys that can be drawn
+LET blocky50 = x[i=1:10]+y[j=1:50]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x/nokey blocky50
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x/nokey blocky50
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey -- number of lines exceeds line limit  (200 at time of this writing)
+! automatic decimation to keep within line limit
+LET blocky201 = x[i=1:10]+y[j=1:201]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x/nokey blocky201
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x/nokey blocky201
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! multi-dimensional
+LET blockxyz        = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:5]+100*z[k=1:30]
+LET blockxyz_little = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:3] +100*z[k=1:4]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t blockxyz_little
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=t blockxyz_little
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t blockxyz         ! decimate to key  limit
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=t blockxyz
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+define symbol deci = 5
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t/nokey blockxyz   ! decimate to line limit
+ !-> PLOT/SYM/LINE/SKIP=5/ALONG=t/nokey blockxyz
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+ 
+! ensemble application
+! Here the symbols appear on lines automatically for distinguishing
+! large number of lines. /SKIP works without explicitly saying /SYM
+LET block = x[i=1:2]+10*y[j=1:3]+100*z[k=1:4]
+LET sin_block = SIN(T[l=1:100]/10)*block
+LET ens_sin_block = sin_block*( (20+_E[m=1:20])/20 )
+PLOT/SKIP=($deci)/ALONG=t ens_sin_block[i=1,j=2,k=3]
+ !-> PLOT/SKIP=5/ALONG=t ens_sin_block[i=1,j=2,k=3]
+ 
+GO bn_reset
+cancel mode verify
+GO bn_auto_tprec
+! bn_auto_tprec.jnl
+! See ticket 2405
+! Time labels on plots always just get the precision from MODE CALENDAR
+! Instead, use the same logic as is used for text labels, automatically adjust.
+! (later make this the default setting??)
+ 
+set mode calendar:auto
+show mode calendar
+      MODE            STATE        ARGUMENT
+      CALENDAR         SET         auto
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _F[gF=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F at AVE] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at AVE)
- Column  3: VAR[G=1 delta on F at BIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at BIN)
- Column  4: VAR[G=1 delta on F at NBIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at NBIN)
-             DEST     VAR       VAR       VAR
-1   / 1:  1.000000  1.955556  1.650000  2.000000
-2   / 2:  2.000000  2.200000      ....  0.000000
-3   / 3:  3.000000      ....      ....  0.000000
-4   / 4:  4.000000      ....      ....  0.000000
-5   / 5:  5.000000  5.000000  5.000000  1.000000
+use levitus_climatology
+let ttim = temp + t[gt=tax]
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GF=dcoarse]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
-             DEST     VAR
-1   / 1:  1.000000      ....
-2   / 2:  2.000000      ....
-3   / 3:  3.000000      ....
-4   / 4:  4.000000      ....
-5   / 5:  5.000000  5.000000
+!  Varies in seconds
+define axis/t/units="seconds"/t0="1-jan-2001" tax = {1,12,13,14,16,17,18,19,24}
+ 
+list/k=1/x=60/y=-40 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 9 points (TIME)
+             LONGITUDE: 60E (interpolated)
+             LATITUDE : 40S (interpolated)
+             DEPTH (m): 0
+ 01-JAN-2001 00:00:01 / 1:  15.53125
+ 01-JAN-2001 00:00:12 / 2:  26.53125
+ 01-JAN-2001 00:00:13 / 3:  27.53125
+ 01-JAN-2001 00:00:14 / 4:  28.53125
+ 01-JAN-2001 00:00:16 / 5:  30.53125
+ 01-JAN-2001 00:00:17 / 6:  31.53125
+ 01-JAN-2001 00:00:18 / 7:  32.53125
+ 01-JAN-2001 00:00:19 / 8:  33.53125
+ 01-JAN-2001 00:00:24 / 9:  38.53125
+shade/title="seconds"/l=9/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 00:00:24"
+ 
+!  Varies in minutes, fractions of minutes
+define axis/t/units="minutes"/t0="1-jan-2001" tax = {1,1.1,12,13,14,16,17,18.5,19,24}
+list/k=1/x=60/y=-40 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 10 points (TIME)
+             LONGITUDE: 60E (interpolated)
+             LATITUDE : 40S (interpolated)
+             DEPTH (m): 0
+ 01-JAN-2001 00:01:00 /  1:  15.53125
+ 01-JAN-2001 00:01:06 /  2:  15.63125
+ 01-JAN-2001 00:12:00 /  3:  26.53125
+ 01-JAN-2001 00:13:00 /  4:  27.53125
+ 01-JAN-2001 00:14:00 /  5:  28.53125
+ 01-JAN-2001 00:16:00 /  6:  30.53125
+ 01-JAN-2001 00:17:00 /  7:  31.53125
+ 01-JAN-2001 00:18:30 /  8:  33.03125
+ 01-JAN-2001 00:19:00 /  9:  33.53125
+ 01-JAN-2001 00:24:00 / 10:  38.53125
+shade/title="minutes/fractions of minutes"/l=9/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 00:19:00"
+ 
+! varies in hours, fractions of hours
+define axis/t/units="hour"/t0="1-jan-2001" tax = {1,1.1,12.1,12.2,14,16,17,18.5,19,24}
+list/k=1/x=60/y=-40 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 10 points (TIME)
+             LONGITUDE: 60E (interpolated)
+             LATITUDE : 40S (interpolated)
+             DEPTH (m): 0
+ 01-JAN-2001 01:00:00 /  1:  15.53125
+ 01-JAN-2001 01:06:00 /  2:  15.63125
+ 01-JAN-2001 12:06:00 /  3:  26.63125
+ 01-JAN-2001 12:12:00 /  4:  26.73125
+ 01-JAN-2001 14:00:00 /  5:  28.53125
+ 01-JAN-2001 16:00:00 /  6:  30.53125
+ 01-JAN-2001 17:00:00 /  7:  31.53125
+ 01-JAN-2001 18:30:00 /  8:  33.03125
+ 01-JAN-2001 19:00:00 /  9:  33.53125
+ 02-JAN-2001 00:00:00 / 10:  38.53125
+shade/title="hours/fractions of hours"/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 12:06"
+ 
+! 6-hour even spacing
+define axis/t=1-jan-2001:8-jan-2001:6/units="hour"/t0="1-jan-2001" tax
+list/k=1/x=60/y=-40/L=1:6 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 6 points (TIME)
+             LONGITUDE: 60E (interpolated)
+             LATITUDE : 40S (interpolated)
+             DEPTH (m): 0
+ 01-JAN-2001 00:00 / 1:  14.53125
+ 01-JAN-2001 06:00 / 2:  20.53125
+ 01-JAN-2001 12:00 / 3:  26.53125
+ 01-JAN-2001 18:00 / 4:  32.53125
+ 02-JAN-2001 00:00 / 5:  38.53125
+ 02-JAN-2001 06:00 / 6:  44.53125
+shade/title="hours "/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 12:00"
+ 
+! Reynolds SST weekly, even 7-day spacing
+use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
+list/x=180/y=0/l=20:25 fsst
+             VARIABLE : Filtered Weekly SST Means (deg C)
+             DATA SET : Reynolds Optimum Interpolation Weekly SST Analysis
+             FILENAME : reynolds_sst_wk.nc
+             FILEPATH : http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+             SUBSET   : 6 points (TIME)
+             LONGITUDE: 180E (interpolated)
+             LATITUDE : 0 (interpolated)
+ 18-MAY-1982 00 / 20:  29.77536
+ 25-MAY-1982 00 / 21:  29.79982
+ 01-JUN-1982 00 / 22:  29.82545
+ 08-JUN-1982 00 / 23:  29.95250
+ 15-JUN-1982 00 / 24:  30.14473
+ 22-JUN-1982 00 / 25:  30.27330
+shade/title="7-day axis"/l=30/x=60:70/y=-40:-30 fsst; sh sym  lab($labnum_t)
+ !-> sh sym  lab1
+LAB1 = "TIME : 27-JUL-1982 00"
+ 
+! monthly climatology
+use TAO_SST_clim
+list/x=180/y=0 sst_clim
+             VARIABLE : Climatological TAO SST, 1992-1997 (Degrees C)
+             FILENAME : TAO_SST_clim.cdf
+             SUBSET   : 12 points (TIME)
+             LONGITUDE: 180E
+             LATITUDE : 0
+                      180E    
+                        5
+ 16-JAN      /  1:  28.47123
+ 15-FEB      /  2:  28.02188
+ 17-MAR      /  3:  28.06427
+ 16-APR      /  4:  28.62687
+ 16-MAY      /  5:  28.78929
+ 16-JUN      /  6:  28.88602
+ 16-JUL      /  7:  29.11417
+ 16-AUG      /  8:  29.23706
+ 15-SEP      /  9:  29.15225
+ 16-OCT      / 10:  29.05856
+ 15-NOV      / 11:  28.97187
+ 16-DEC      / 12:  28.88326
+shade/title="monthly climatology"/k=1/l=5 sst_clim; sh sym  lab($labnum_t)
+ !-> sh sym  lab1
+LAB1 = "TIME : 16-MAY"
+ 
+! truemonth
+use truemonth
+list/x=180/y=0/l=20:25 var
+             VARIABLE : COS(T[GT=TRUEMONTH]/100)
+             FILENAME : truemonth.nc
+             SUBSET   : 6 points (TIME)
+ 16-AUG-1951 / 20:  0.9987782
+ 16-SEP-1951 / 21:  0.9378386
+ 16-OCT-1951 / 22:  0.7903357
+ 16-NOV-1951 / 23:  0.5698709
+ 16-DEC-1951 / 24:  0.2968155
+ 16-JAN-1952 / 25: -0.0086413
+ 
+let ttim = temp[d=levitus_climatology] + var
+shade/title="true-month axis"/L=32/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 16-AUG-1952"
+ 
+set mode/last calendar
+ 
+! Is the default precision of minutes restored?
+use truemonth
+let ttim = temp[d=levitus_climatology] + var
+shade/title="true-month axis"/L=32/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 16-AUG-1952 12:00"
+ 
+!GO bn_reset
+!GO bn_warn_subspan
+ 
+GO bn_reset
+cancel mode verify
+GO bn_coordvars_atts
+! bn_coordvars_atts.jnl
+! 5/2016 *acm*  see ticket 2413
+! Additional attribute keywords for returning  coordinate variable
+! names and number of coordinate vars, to distinguish coordinate
+! info from dimension info.
+ 
+! File has dimensions which are not coordinate variables, for
+! the dimensions of the 2D coordinate variables.
+use dims_not_coord.nc
+list/nohead ..ndims
+          3.000000
+list/nohead ..dimnames
+ 1   / 1:"ETA"     
+ 2   / 2:"TAU1"    
+ 3   / 3:"ZT_OCEAN"
+list/nohead ..ncoordvars
+          1.000000
+list/nohead ..coordnames
+        "ZT_OCEAN"
+let cname = ..coordnames
+sh axis `cname[i=1]`
+ !-> sh axis ZT_OCEAN
+ name       axis              # pts   start                end
+ ZT_OCEAN  DEPTH (m)            1 r-  15                   15
+   Axis span (to cell edges) = 1
  
+! The depth axis has coordinate bounds; the length-2 bnds
+! dimension is not a coordinate variable
+use levitus_3d_subset.nc
+list/nohead ..ndims
+          4.000000
+list/nohead ..dimnames
+ 1   / 1:"XAXLEVITR101_102"
+ 2   / 2:"YAXLEVITR41_42"  
+ 3   / 3:"ZAXLEVITR"       
+ 4   / 4:"bnds"            
+list/nohead ..ncoordvars
+          3.000000
+list/nohead ..coordnames
+ 1   / 1:"XAXLEVITR101_102"
+ 2   / 2:"YAXLEVITR41_42"  
+ 3   / 3:"ZAXLEVITR"       
+ 
+! String variables in netcdf files have string-length
+! dimensions which are not coordinate variables.
+use numstring.nc
+list/nohead ..ndims
+          4.000000
+list/nohead ..dimnames
+ 1   / 1:"XAX1"     
+ 2   / 2:"ZAX3"     
+ 3   / 3:"XAX1_10"  
+ 4   / 4:"STRING1_7"
+list/nohead ..ncoordvars
+          3.000000
+list/nohead ..coordnames
+ 1   / 1:"XAX1"   
+ 2   / 2:"ZAX3"   
+ 3   / 3:"XAX1_10"
  
 !  *********** Always do a bn_reset  ***********
 !  *********** make sure things clean up well **
@@ -86839,9 +95270,9 @@ yes? ! run bn_all_ef tests
 yes? 
 yes? GO bn_all_ef
  	NOAA/PMEL TMAP
- 	FERRET v6.951 (beta)
- 	Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
- 	 9-Nov-15 15:04     
+ 	FERRET v7 (beta/dbg)
+ 	Linux 2.6.32-642.1.1.el6.x86_64 64-bit - 06/15/16
+ 	15-Jun-16 12:07     
 
 SET MODE VERIFY
 ! bn_all_ef.jnl
@@ -87695,7 +96126,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87720,7 +96151,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87744,7 +96175,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87783,7 +96214,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87818,7 +96249,7 @@ variables:
 		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87859,7 +96290,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87916,7 +96347,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87973,7 +96404,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88028,7 +96459,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88076,7 +96507,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88170,7 +96601,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88240,7 +96671,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88291,7 +96722,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88366,7 +96797,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88393,7 +96824,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
 data:
@@ -88417,7 +96848,7 @@ variables:
 		A:history = "From x" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		: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:
@@ -88444,11 +96875,11 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 bn_bounds_defineax.jnl --- N+1 def of bounds.
 netcdf irrxzt {
 dimensions:
@@ -88479,7 +96910,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88551,7 +96982,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88573,7 +97004,7 @@ variables:
 		COADSX105_105:units = "degrees_east" ;
 		COADSX105_105:modulo = " " ;
 		COADSX105_105:point_spacing = "even" ;
-		COADSX105_105:newatt = 0.f ;
+		COADSX105_105:newatt = 3.f ;
 		COADSX105_105:axis = "X" ;
 		COADSX105_105:standard_name = "longitude" ;
 	double COADSY45_45(COADSY45_45) ;
@@ -88595,7 +97026,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88637,7 +97068,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88745,38 +97176,38 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
 netcdf a {
 dimensions:
-	Xc3_3 = 1 ;
-	Yc2_4 = 3 ;
+	Xc = 1 ;
+	Yc = 3 ;
 	bnds = 2 ;
 	Ti = UNLIMITED ; // (1 currently)
 variables:
-	double Xc3_3(Xc3_3) ;
-		Xc3_3:long_name = "Longitude" ;
-		Xc3_3:units = "degrees_east" ;
-		Xc3_3:modulo = 360. ;
-		Xc3_3:point_spacing = "even" ;
-		Xc3_3:axis = "X" ;
-		Xc3_3:standard_name = "longitude" ;
-	double Yc2_4(Yc2_4) ;
-		Yc2_4:long_name = "Latitude" ;
-		Yc2_4:units = "degrees_north" ;
-		Yc2_4:point_spacing = "uneven" ;
-		Yc2_4:axis = "Y" ;
-		Yc2_4:standard_name = "latitude" ;
-		Yc2_4:bounds = "Yc2_4_bnds" ;
-	double Yc2_4_bnds(Yc2_4, bnds) ;
+	double Xc(Xc) ;
+		Xc:long_name = "Longitude" ;
+		Xc:units = "degrees_east" ;
+		Xc:modulo = 360. ;
+		Xc:point_spacing = "even" ;
+		Xc:axis = "X" ;
+		Xc:standard_name = "longitude" ;
+	double Yc(Yc) ;
+		Yc:long_name = "Latitude" ;
+		Yc:units = "degrees_north" ;
+		Yc:point_spacing = "uneven" ;
+		Yc:axis = "Y" ;
+		Yc:standard_name = "latitude" ;
+		Yc:bounds = "Yc_bnds" ;
+	double Yc_bnds(Yc, bnds) ;
 	double Ti(Ti) ;
 		Ti:long_name = "Time" ;
 		Ti:units = "day" ;
 		Ti:axis = "T" ;
 		Ti:standard_name = "time" ;
-	short Elev(Ti, Yc2_4, Xc3_3) ;
+	short Elev(Ti, Yc, Xc) ;
 		Elev:missing_value = -32767s ;
 		Elev:_FillValue = -32768s ;
 		Elev:long_name = "Surface elevation" ;
@@ -88786,7 +97217,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -88809,7 +97240,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88835,7 +97266,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88855,7 +97286,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88876,7 +97307,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -88919,7 +97350,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -88959,7 +97390,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -88997,40 +97428,40 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
 netcdf a {
 dimensions:
-	AX042 = 5 ;
+	AX047 = 5 ;
 variables:
-	double AX042(AX042) ;
-		AX042:point_spacing = "even" ;
-		AX042:axis = "X" ;
-	float A1(AX042) ;
+	double AX047(AX047) ;
+		AX047:point_spacing = "even" ;
+		AX047:axis = "X" ;
+	float A1(AX047) ;
 		A1:missing_value = -1.e+34f ;
 		A1:_FillValue = -1.e+34f ;
 		A1:long_name = "A1" ;
 		A1:three = 1.f, 2.f, 3.f ;
 		A1:history = "From EZ.DAT" ;
-	float A2(AX042) ;
+	float A2(AX047) ;
 		A2:missing_value = -1.e+34f ;
 		A2:_FillValue = -1.e+34f ;
 		A2:long_name = "A2" ;
 		A2:history = "From EZ.DAT" ;
-	float A3(AX042) ;
+	float A3(AX047) ;
 		A3:missing_value = -1.e+34f ;
 		A3:_FillValue = -1.e+34f ;
 		A3:long_name = "A3" ;
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
- AX042 = 1, 2, 3, 4, 5 ;
+ AX047 = 1, 2, 3, 4, 5 ;
 
  A1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
 
@@ -89041,29 +97472,29 @@ data:
 bn_attributes.jnl --- 15 attributes of data from delimited data.
 netcdf a {
 dimensions:
-	AX009 = 5 ;
+	AX018 = 5 ;
 variables:
-	double AX009(AX009) ;
-		AX009:point_spacing = "even" ;
-		AX009:axis = "X" ;
-	float V1(AX009) ;
+	double AX018(AX018) ;
+		AX018:point_spacing = "even" ;
+		AX018:axis = "X" ;
+	float V1(AX018) ;
 		V1:missing_value = -1.e+34f ;
 		V1:_FillValue = -1.e+34f ;
 		V1:long_name = "V1" ;
 		V1:strval = "2" ;
 		V1:history = "From EZ.DAT" ;
-	float V4(AX009) ;
+	float V4(AX018) ;
 		V4:missing_value = -1.e+34f ;
 		V4:_FillValue = -1.e+34f ;
 		V4:long_name = "V4" ;
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
- AX009 = 1, 2, 3, 4, 5 ;
+ AX018 = 1, 2, 3, 4, 5 ;
 
  V1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
 
@@ -89085,7 +97516,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89131,7 +97562,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -89170,7 +97601,7 @@ dimensions:
 	YC = 127 ;
 	bnds = 2 ;
 	TI = UNLIMITED ; // (1 currently)
-	PSXT1100_100 = 1 ;
+	PSXT100_100 = 1 ;
 	PSYT135_56 = 22 ;
 	PSZT11_1 = 1 ;
 	TIME11 = 25 ;
@@ -89203,12 +97634,12 @@ variables:
 		ELEV:scale_factor = 0.000274674967954587 ;
 		ELEV:add_offset = 0. ;
 		ELEV:history = "From err491_attval" ;
-	double PSXT1100_100(PSXT1100_100) ;
-		PSXT1100_100:units = "degrees_east" ;
-		PSXT1100_100:point_spacing = "even" ;
-		PSXT1100_100:modulo = 360. ;
-		PSXT1100_100:axis = "X" ;
-		PSXT1100_100:standard_name = "longitude" ;
+	double PSXT100_100(PSXT100_100) ;
+		PSXT100_100:units = "degrees_east" ;
+		PSXT100_100:point_spacing = "even" ;
+		PSXT100_100:modulo = 360. ;
+		PSXT100_100:axis = "X" ;
+		PSXT100_100:standard_name = "longitude" ;
 	double PSYT135_56(PSYT135_56) ;
 		PSYT135_56:units = "degrees_north" ;
 		PSYT135_56:point_spacing = "uneven" ;
@@ -89230,7 +97661,7 @@ variables:
 		TIME11:point_spacing = "even" ;
 		TIME11:axis = "T" ;
 		TIME11:standard_name = "time" ;
-	float TEMP(TIME11, PSZT11_1, PSYT135_56, PSXT1100_100) ;
+	float TEMP(TIME11, PSZT11_1, PSYT135_56, PSXT100_100) ;
 		TEMP:missing_value = -1.e+34f ;
 		TEMP:_FillValue = -1.e+34f ;
 		TEMP:long_name = "TEMPERATURE" ;
@@ -89238,7 +97669,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -89280,7 +97711,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89310,7 +97741,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, PSXT191_108) ;
+	int TEMP(TIME11, PSZT11_1, PSYT148_48, PSXT91_108) ;
 		TEMP:missing_value = -1000 ;
 		TEMP:_FillValue = -1000 ;
 		TEMP:long_name = "TEMPERATURE" ;
@@ -89323,7 +97754,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, PSXT191_108) ;
+	double SALT(TIME11, PSZT11_1, PSYT148_48, PSXT91_108) ;
 		SALT:missing_value = 0.00999999977648258 ;
 		SALT:_FillValue = 0.00999999977648258 ;
 		SALT:long_name = "(SALINITY(ppt) - 35) /1000" ;
@@ -89363,7 +97794,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89400,7 +97831,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89440,7 +97871,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89491,7 +97922,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89511,18 +97942,18 @@ data:
 bn_attributes.jnl --- 26 attributes of axes
 netcdf a {
 dimensions:
-	PSXT191_108 = 18 ;
+	PSXT91_108 = 18 ;
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
 	TIME11 = UNLIMITED ; // (1 currently)
 variables:
-	double PSXT191_108(PSXT191_108) ;
-		PSXT191_108:units = "degrees" ;
-		PSXT191_108:point_spacing = "even" ;
-		PSXT191_108:modulo = 360. ;
-		PSXT191_108:axis = "X" ;
-		PSXT191_108:standard_name = "longitude" ;
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees" ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:axis = "X" ;
+		PSXT91_108:standard_name = "longitude" ;
 	double PSYT135_56(PSYT135_56) ;
 		PSYT135_56:units = "degrees_north" ;
 		PSYT135_56:point_spacing = "uneven" ;
@@ -89543,31 +97974,31 @@ variables:
 		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME11:axis = "T" ;
 		TIME11:standard_name = "time" ;
-	double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
+	double T2(TIME11, 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 V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
-	PSXT191_108 = 18 ;
+	PSXT91_108 = 18 ;
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
 	TIME11 = UNLIMITED ; // (1 currently)
 variables:
-	double PSXT191_108(PSXT191_108) ;
-		PSXT191_108:units = "degrees" ;
-		PSXT191_108:point_spacing = "even" ;
-		PSXT191_108:new_att = "something" ;
-		PSXT191_108:modulo = 360. ;
-		PSXT191_108:axis = "X" ;
-		PSXT191_108:standard_name = "longitude" ;
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees" ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:new_att = "something" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:axis = "X" ;
+		PSXT91_108:standard_name = "longitude" ;
 	double PSYT135_56(PSYT135_56) ;
 		PSYT135_56:units = "degrees_north" ;
 		PSYT135_56:point_spacing = "uneven" ;
@@ -89588,30 +98019,30 @@ variables:
 		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME11:axis = "T" ;
 		TIME11:standard_name = "time" ;
-	double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
+	double T2(TIME11, 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 V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
-	PSXT191_108 = 18 ;
+	PSXT91_108 = 18 ;
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
 	TIME11 = UNLIMITED ; // (1 currently)
 variables:
-	double PSXT191_108(PSXT191_108) ;
-		PSXT191_108:units = "meters" ;
-		PSXT191_108:point_spacing = "even" ;
-		PSXT191_108:new_att = "something" ;
-		PSXT191_108:modulo = 360. ;
-		PSXT191_108:axis = "X" ;
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "meters" ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:new_att = "something" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:axis = "X" ;
 	double PSYT135_56(PSYT135_56) ;
 		PSYT135_56:units = "meters" ;
 		PSYT135_56:point_spacing = "uneven" ;
@@ -89631,14 +98062,14 @@ variables:
 		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME11:axis = "T" ;
 		TIME11:standard_name = "time" ;
-	double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
+	double T2(TIME11, 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 V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -89673,7 +98104,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -89707,7 +98138,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 27 attributes of  user-defined axes
@@ -89737,7 +98168,7 @@ variables:
 		AXY:long_name = "RESHAPE (A,RVAR)" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 28 Define a new global attribute
@@ -89766,7 +98197,7 @@ variables:
 		BROILED:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -89787,18 +98218,18 @@ data:
 bn_attributes.jnl --- 29 SET VAR/OUTTYPE for user variable
 netcdf a {
 dimensions:
-	PSXT191_108 = 18 ;
+	PSXT91_108 = 18 ;
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
 	TIME11 = UNLIMITED ; // (25 currently)
 variables:
-	double PSXT191_108(PSXT191_108) ;
-		PSXT191_108:units = "degrees_east" ;
-		PSXT191_108:point_spacing = "even" ;
-		PSXT191_108:modulo = 360. ;
-		PSXT191_108:axis = "X" ;
-		PSXT191_108:standard_name = "longitude" ;
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees_east" ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:axis = "X" ;
+		PSXT91_108:standard_name = "longitude" ;
 	double PSYT135_56(PSYT135_56) ;
 		PSYT135_56:units = "degrees_north" ;
 		PSYT135_56:point_spacing = "uneven" ;
@@ -89819,7 +98250,7 @@ variables:
 		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME11:axis = "T" ;
 		TIME11:standard_name = "time" ;
-	double FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
+	double FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT91_108) ;
 		FAREN:missing_value = -1.e+34 ;
 		FAREN:_FillValue = -1.e+34 ;
 		FAREN:long_name = "TEMP*9/5 + 32" ;
@@ -89827,23 +98258,23 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
-	PSXT191_108 = 18 ;
+	PSXT91_108 = 18 ;
 	PSYT135_56 = 22 ;
 	bnds = 2 ;
 	PSZT11_10 = 10 ;
 	TIME11 = UNLIMITED ; // (25 currently)
 variables:
-	double PSXT191_108(PSXT191_108) ;
-		PSXT191_108:units = "degrees_east" ;
-		PSXT191_108:point_spacing = "even" ;
-		PSXT191_108:modulo = 360. ;
-		PSXT191_108:axis = "X" ;
-		PSXT191_108:standard_name = "longitude" ;
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees_east" ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:axis = "X" ;
+		PSXT91_108:standard_name = "longitude" ;
 	double PSYT135_56(PSYT135_56) ;
 		PSYT135_56:units = "degrees_north" ;
 		PSYT135_56:point_spacing = "uneven" ;
@@ -89864,7 +98295,7 @@ variables:
 		TIME11:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME11:axis = "T" ;
 		TIME11:standard_name = "time" ;
-	int FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
+	int FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT91_108) ;
 		FAREN:missing_value = -999 ;
 		FAREN:_FillValue = -999 ;
 		FAREN:long_name = "TEMP*9/5 + 32" ;
@@ -89872,7 +98303,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -89891,7 +98322,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89921,7 +98352,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -89951,7 +98382,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -90004,7 +98435,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -90046,7 +98477,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -90064,18 +98495,18 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 err611_set_var_ez.jnl --- 
 netcdf a {
 dimensions:
-	AX138 = 3 ;
+	AX139 = 3 ;
 variables:
-	double AX138(AX138) ;
-		AX138:point_spacing = "even" ;
-		AX138:axis = "X" ;
-	float MY_ASC(AX138) ;
+	double AX139(AX139) ;
+		AX139:point_spacing = "even" ;
+		AX139:axis = "X" ;
+	float MY_ASC(AX139) ;
 		MY_ASC:missing_value = 3.f ;
 		MY_ASC:_FillValue = 3.f ;
 		MY_ASC:long_name = "chlorophyll" ;
@@ -90083,17 +98514,17 @@ variables:
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
-	AX138 = 3 ;
+	AX139 = 3 ;
 variables:
-	double AX138(AX138) ;
-		AX138:point_spacing = "even" ;
-		AX138:axis = "X" ;
-	float MY_UNF(AX138) ;
+	double AX139(AX139) ;
+		AX139:point_spacing = "even" ;
+		AX139:axis = "X" ;
+	float MY_UNF(AX139) ;
 		MY_UNF:missing_value = 5.f ;
 		MY_UNF:_FillValue = 5.f ;
 		MY_UNF:long_name = "Some Unformatted input" ;
@@ -90101,7 +98532,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -90118,7 +98549,7 @@ variables:
 		A:long_name = "{1.1,2.2,3.3}" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -90139,7 +98570,7 @@ variables:
 		A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -90149,7 +98580,7 @@ data:
 }
 netcdf a {
 dimensions:
-	XAX1_10 = 10 ;
+	XAX = 10 ;
 	tday = UNLIMITED ; // (31 currently)
 	lon1_5 = 5 ;
 	lat1_5 = 5 ;
@@ -90157,16 +98588,16 @@ dimensions:
 	zt = 10 ;
 	time1478 = 3 ;
 variables:
-	double XAX1_10(XAX1_10) ;
-		XAX1_10:point_spacing = "even" ;
-		XAX1_10:axis = "X" ;
+	double XAX(XAX) ;
+		XAX:point_spacing = "even" ;
+		XAX:axis = "X" ;
 	double tday(tday) ;
 		tday:units = "days since 1998-12-31 00:00:00" ;
 		tday:axis = "T" ;
 		tday:calendar = "GREGORIAN" ;
 		tday:time_origin = "31-DEC-1998" ;
 		tday:standard_name = "time" ;
-	double MyUpperLowerCaseVar(tday, XAX1_10) ;
+	double MyUpperLowerCaseVar(tday, XAX) ;
 		MyUpperLowerCaseVar:missing_value = -1.e+34 ;
 		MyUpperLowerCaseVar:_FillValue = -1.e+34 ;
 		MyUpperLowerCaseVar:long_name = "X[X=1:10] + T[GT=TDAY]" ;
@@ -90202,7 +98633,7 @@ variables:
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
@@ -90229,7 +98660,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -90256,7 +98687,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
@@ -90322,7 +98753,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -90354,7 +98785,7 @@ variables:
 		Y_:long_name_mod = "axis YFIFTEEN" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -90387,43 +98818,43 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
-	TIME16 = 8 ;
-	reftime = 3 ;
+	TIME17 = 8 ;
+	REFTIME = 3 ;
 	bnds = 2 ;
 variables:
-	double reftime(reftime) ;
-		reftime:units = "calendar month since 2014-11-01t00:00:00z" ;
-		reftime:long_name = "GRIB reference time" ;
-		reftime:calendar = "proleptic_gregorian" ;
-		reftime:point_spacing = "uneven" ;
-		reftime:axis = "F" ;
-		reftime:bounds = "reftime_bnds" ;
-	double reftime_bnds(reftime, bnds) ;
-	double time(reftime, TIME16) ;
-		time:units = "calendar Month since 2014-11-01T00:00:00Z" ;
-		time:long_name = "GRIB forecast or observation time" ;
-		time:calendar = "proleptic_gregorian" ;
-		time:bounds = "time_bounds" ;
-		time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
+	double REFTIME(REFTIME) ;
+		REFTIME:units = "calendar month since 2014-11-01t00:00:00z" ;
+		REFTIME:long_name = "GRIB reference time" ;
+		REFTIME:calendar = "proleptic_gregorian" ;
+		REFTIME:point_spacing = "uneven" ;
+		REFTIME:axis = "F" ;
+		REFTIME:bounds = "REFTIME_bnds" ;
+	double REFTIME_bnds(REFTIME, bnds) ;
+	double TIME(REFTIME, TIME17) ;
+		TIME:units = "calendar Month since 2014-11-01T00:00:00Z" ;
+		TIME:long_name = "GRIB forecast or observation time" ;
+		TIME:calendar = "proleptic_gregorian" ;
+		TIME:bounds = "time_bounds" ;
+		TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
- reftime = 0, 1, 2.03333333333333 ;
+ REFTIME = 0, 1, 2.03333333333333 ;
 
- reftime_bnds =
+ REFTIME_bnds =
   -0.5, 0.5,
   0.5, 1.51666666666667,
   1.51666666666667, 2.55 ;
 
- time =
+ TIME =
   1, 2, 3, 4, 5, 6, 7, 8,
   2, 3, 4, 5, 6, 7, 8, 9,
   3, 4, 5, 6, 7, 8, 9, 10 ;
@@ -90450,7 +98881,7 @@ variables:
 		time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V6.951 (beta)  9-Nov-15" ;
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -90466,6 +98897,33 @@ data:
   2, 3, 4, 5, 6, 7, 8, 9,
   3, 4, 5, 6, 7, 8, 9, 10 ;
 }
+netcdf a {
+variables:
+	double MYVAR ;
+		MYVAR:missing_value = -1.e+34 ;
+		MYVAR:_FillValue = -1.e+34 ;
+		MYVAR:long_name = "coads myvar" ;
+		MYVAR:units = "feet" ;
+		MYVAR:history = "From coads_climatology" ;
+
+// global attributes:
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
+netcdf a {
+variables:
+	double MYVAR ;
+		MYVAR:missing_value = -1.e+34 ;
+		MYVAR:_FillValue = -1.e+34 ;
+		MYVAR:long_name = "Levitus myvar" ;
+		MYVAR:units = "meters" ;
+		MYVAR:standard_name = "None" ;
+		MYVAR:history = "From levitus_climatology" ;
+
+// global attributes:
+		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
 -----
 end of ncdump output
  
@@ -90477,29 +98935,30 @@ yes?
 yes? 
 yes? GO bn_startupfile
  	NOAA/PMEL TMAP
- 	FERRET v6.951 (beta)
- 	Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
- 	 9-Nov-15 15:04     
+ 	FERRET v7 (beta/dbg)
+ 	Linux 2.6.32-642.1.1.el6.x86_64 64-bit - 06/15/16
+ 	15-Jun-16 12:07     
 
 CAN MODE VERIFY
  Current size of FERRET memory cache: 31 MegaWords  (1 word = 8 bytes)
 PPL$XPIXEL = "656"
 PPL$YPIXEL = "492"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.951"
-FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7"
+FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
+NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = " 9-Nov-15"
-SESSION_TIME = "15:04"
-SESSION_PID = "8705"
-DELTA_CPU = "0.066989"
-CLOCK_SECS = "0.464"
-CURRENT_DATE = " 9-Nov-15"
-CURRENT_TIME = "15:04:15"
+SESSION_DATE = "15-Jun-16"
+SESSION_TIME = "12:07"
+SESSION_PID = "3434"
+DELTA_CPU = "0.05999"
+CLOCK_SECS = "0.289"
+CURRENT_DATE = "15-Jun-16"
+CURRENT_TIME = "12:07:45"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+GO_FILE = "./bn_startupfile.jnl"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
 PPL$PLTNME = "startup_tests.plt"
@@ -90519,7 +98978,7 @@ PPL$VIEW_X = "0.000"
 PPL$VIEW_Y = "0.000"
 PPL$VIEW_Z = "0.000"
 PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "9-Nov-15:15:04"
+WIN_TITLE = "15-Jun-16:12:07"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 VP_SCALE = "1"
@@ -90529,7 +98988,6 @@ VP_XLO = "0"
 VP_XHI = "1"
 VP_YLO = "0"
 VP_YHI = "1"
-GO_FILE = "./bn_startupfile.jnl"
       MODE            STATE        ARGUMENT
       DIAGNOSTIC    CANCELLED           99
       VERIFY        CANCELLED      DEFAULT
@@ -90542,7 +99000,7 @@ GO_FILE = "./bn_startupfile.jnl"
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -90583,15 +99041,18 @@ yes?
 yes? 
 yes? GO bn_gif
  	NOAA/PMEL TMAP
- 	FERRET v6.951 (beta)
- 	Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
- 	 9-Nov-15 15:04     
+ 	FERRET v7 (beta/dbg)
+ 	Linux 2.6.32-642.1.1.el6.x86_64 64-bit - 06/15/16
+ 	15-Jun-16 12:07     
 
 ! bn450_gif.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of gif file in batch mode using
 ! frame/file=bnplot.gif....will create three gif files
 ! *kob*
  
+ 
+can mode logo
+ 
 ! define a 6 viewport window (modified definitions 11/92)
 def view/text=.4/xlim=0,.333/ylim=0,.5    ll6
 def view/text=.2/xlim=0,.333/ylim=.5,1    ul6
@@ -90684,7 +99145,7 @@ plot/l=1:99000/nolabel sin(200000/(l+10000))
  
 ! reset to normal axis lengths and prepare for a new piccie
 !ppl axlen 8
-frame/file=bnplot.gif
+frame/file=bnplot_1.gif
 set wind/clear
  
 ! draw six frames
@@ -90712,7 +99173,7 @@ set view um6
 shade/i=1:50/j=1:50/nolabel i/(j+20)
 contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
 vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
-frame/file=bnplot.gif
+frame/file=bnplot_2.gif
 ! additions for version 3.01 "/TITLE=" controls
 cancel viewports
 set view ul6
@@ -90738,7 +99199,7 @@ wire/view=0,0,2/i=1:20/j=1:20/title="My Egg Carton"/nolabel sin(i/3)*cos(j/4)
 set view ll6
 plot/vs/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
 plot/vs/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-frame/file=bnplot.gif
+frame/file=bnplot_3.gif
  
 ! Prior to v5.8 could not get the window size in pixels when in gif mode
 show symbol ppl$xpixel
@@ -90793,6 +99254,321 @@ set v ll; plot/dash x[gx=0:20:.05]
 set v lr; plot/dash x[gx=0:20:.01]
 frame/file=gif_dashbug.gif
  
+! Restore size
+set win/siz=1/asp=1
+ 
+! New benchmark gif outputs in v6.97
+go bn_reset
+cancel mode verify
+GO bn_hovmuller_overlays
+! bn_hovmuller_overlays.jnl
+! Previously a time series plot overlaid oon a Hovmuller plot did not
+! work unless the time axis of the original data had units of hours.
+! See ticket 2344
+ 
+! 1/6/2016 ACM
+ 
+! run this in the gif benchmarks.
+ 
+ 
+def view/xlim=0,.333/ylim=.5,1    ul6
+def view/xlim=.333,.666/ylim=.5,1 um6
+def view/xlim=.666,1/ylim=.5,1    ur6
+def view/xlim=0,.333/ylim=0,.5    ll6
+def view/xlim=.333,1/ylim=0,.5    lr6
+ 
+! The example from the FAQ, "Overlaying a time series on a 2D plot"
+set view ul6
+ 
+! Define a 2D field in YT with a time axis in units of DAYS
+DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":5/UNITS=DAYS tdays
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+ 
+LET/TITLE=XY my_var = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+ 
+! make a Hovmoller plot
+ 
+SHADE my_var
+ 
+! This did not work previously.  Needed to re-define the axis in units of hours
+PLOT/OVER my_var[Y=@loc:-4]
+ 
+ 
+! XT variable
+set view um6
+ 
+DEFINE AXIS/X=0:40E:1/UNITS=DEGREES xax
+LET/TITLE="XT" my_var = 10*cos(T[gt=tdays]/20)*EXP((-1)*x[gx=xax]/20)
+SHADE/t=1-jan-1987:1-jan-1989 my_var
+PLOT/OVER/TRANS/THICK my_var[x=@loc:-4]
+ 
+ 
+! Irregular time axis
+set view ur6
+ 
+DEFINE AXIS/T0=1-jan-2001/UNITS=DAYS tdays = {1,2,4,5,6,8,9,10,12,30,35,41,42,44,45,46,48,49,50,58}
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+LET my_var = 10*cos(T[gt=tdays])*EXP((-1)*y[gy=yax]/8)
+ 
+FILL/title="irregular t" my_var
+PLOT/OVER/thick/y=8 my_var+10
+ 
+ 
+! Like the dataset example from the FAQ
+set view ll6
+ 
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
+shade sst
+plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+ 
+can data/all
+can region
+ 
+! vector plots with a time series
+set view lr6
+ 
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
+ 
+vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
+ 
+let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
+plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
+ 
+FRAME/FILE=bn_hovmuller_overlays.gif
+ 
+ 
+Go bn_reset
+cancel mode verify
+GO bn_labels_on_taxis
+! bn_labels_on_taxis.jnl
+! tests of labels and overlays on time axes
+ 
+ 
+set v ul
+DEFINE AXIS/T=1-JAN-1980:31-JAN-1985:30/T0=1-jan-1980/UNIT=days tax
+LET tt = t[gt=tax]
+LET tvar = cos(tt/200)
+plot tvar
+ 
+LET xsqr = {-1,1,1,-1}                ! coordinates of a unit square
+LET ysqr = {-1,-1,1,1}
+LET xcircle = COS(6.3*i[i=1:42]/40)    ! coordinates of unit circle
+LET ycircle = SIN(6.3*i[i=1:42]/40)
+ 
+!   place an "X" at the value exactly at 7-aug-1982
+!   "@ITP" causes interpolation to exact location
+ 
+let t0   = tt[t="7-aug-1982"@itp]
+let val0 = tvar[t="7-aug-1982"@itp]
+plot/vs/over/nolab/sym=2/thick/color=red t0,val0
+ 
+!   put a box around the "X"
+polygon/over/thick/color=red/nolab t0+30*xsqr, 0.05*ysqr+val0
+ 
+!   place an "X" on the data point nearest to 15-may-1984
+!   Note that @ITP is absent, so behavior is set by MODE INTERPOLATE
+let t1   = tt[t="15-may-1984"]
+let val1 = tvar[t="15-may-1984"]
+plot/vs/over/nolab/sym=2/color=blue/thick t1,val1
+ 
+!     put a circle around the "X"
+plot/vs/over/color=blue/thick/nolab t1+30*xcircle,0.05*ycircle+val1
+ 
+set v ur
+! Latitude/time plot
+let ytvar = cos(tt/200) + sin(j/3)
+shade/y=1:50/t=1-jan-1982:31-dec-1982 ytvar
+ 
+let tlo = tt[t="1-jul-1982"@itp]
+let thi = tt[t="1-aug-1982"@itp]
+polygon/over/nolab/thick/pal=gray {`tlo`, `thi`,` thi`, `tlo`},  {20, 20, 25, 25}
+ !-> polygon/over/nolab/thick/pal=gray {912, 943,943, 912},  {20, 20, 25, 25}
+ 
+set v ll
+! Plot the time series.
+!----------------------------------
+ 
+LET tvar = cos(tt/200)* tt/100
+PLOT/vlim=-20:20 tvar
+ 
+!----------------------------------
+! Locate label position on time variable axis: the coordinate at the start of 1985.
+LET datelabelpos=TT[T="01-JAN-1981"@ITP]
+ 
+! Do nothing but set $PPL$XFIRST1 symbol at the time axis plot units
+PLOT/LINE/VS/OVER/NOLAB datelabelpos,-9
+ 
+! Make the label; left-justified
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),-8,-1,0,0.12, at AC Year 81 starts
+ !-> PPL %LABEL 17905.00,-8,-1,0,0.12, at AC Year 81 starts
+ 
+! Draw a vertical red line at the year boundary
+PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {`datelabelpos`,`datelabelpos`},{-20,20}
+ !-> PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {366,366},{-20,20}
+ 
+! Do the same for the start of 1984
+!----------------------------------
+! Locate label position on time var axis
+LET datelabelpos=TT[T="01-JAN-1984"@ITP]
+ 
+! Do nothing but set $PPL$XFIRST1 symbol at the time axis plot units
+plot/line/vs/over/nolab datelabelpos,-9
+ 
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),-8,-1,0,0.12, at AC Year 84 starts
+ !-> PPL %LABEL 44185.00,-8,-1,0,0.12, at AC Year 84 starts
+ 
+! Draw a vertical red line at the year boundary
+PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {`datelabelpos`,`datelabelpos`},{-20,20}
+ !-> PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {1461,1461},{-20,20}
+ 
+!----------------------------------
+! Now lets locate and label the maximum of the variable
+LET vmax = `tvar[T=@MAX]`
+ !-> DEFINE VARIABLE vmax = 12.72093076292341
+LET t_at_max = tvar[T=01-JAN-1980:31-DEC-1985 at LOC:`vmax`]
+ !-> DEFINE VARIABLE t_at_max = tvar[T=01-JAN-1980:31-DEC-1985 at LOC:12.72093076292341]
+ 
+! This will define $PPL$XFIRST1 and also make a mark at the maximum location
+PLOT/VS/OVER/NOLAB/SYM=17/COLOR=red t_at_max, vmax
+ 
+! Use a centered label this time
+! 1.02*vmax moves the label up a bit.
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),`1.02*vmax`,0,0,0.12, at AC MAX = `vmax,prec=3`
+ !-> PPL %LABEL 40081.00,12.97534937818188,0,0,0.12, at AC MAX = 12.7
+ 
+set v lr
+ 
+! Define a dummy track line, position as a function of time.
+DEFINE AXIS/T=1-JAN-1980:31-JAN-1985:30/UNIT=days tax
+LET ypos = 40 *COS(L[GT=tax]/32)
+LET xpos = 220 - 50 *SIN(L[GT=tax]/22)
+! Make the basic track plot
+use ocean_atlas_temp
+shade/pal=blue_light/X=110E:40W/Y=20S:50N/L=1 temp
+ 
+PLOT/VS/NOLAB/OVER XPOS,YPOS
+! Label every 5th date. The labels could be positioned differently, using
+! the 3rd argument of the LABEL command to control centering. Or, to put the
+! labels a bit above the corresponding point location, add a small amount to
+! the y positions, for instance `ypos + 0.04` in the second argument to LABEL.
+LET tt = t[gt=tax]
+! Loop over L; at each L we evaluate TAX_DATESTRING for the time step,
+! and compute the location for the label
+REPEAT/L=5:60:10 (DEFINE SYMBOL tlab = "`TAX_DATESTRING(tt,tt,"day")`"; \
+ LABEL `xpos` `ypos` 1 0 0.09 ($tlab) )
+ !-> REPEAT/L=5:60:10 (DEFINE SYMBOL tlab = "`TAX_DATESTRING(tt,tt,"day")`";  LABEL `xpos` `ypos` 1 0 0.09 ($tlab) )
+!-> REPEAT: L=5
+ !-> DEFINE SYMBOL tlab = "30-APR-1980"
+ !-> PPL %LABEL 208.7339387413628 39.51271135265888 1 0 0.09 "30-APR-1980"
+!-> REPEAT: L=15
+ !-> DEFINE SYMBOL tlab = "24-FEB-1981"
+ !-> PPL %LABEL 188.4897123753973 35.68534797467977 1 0 0.09 "24-FEB-1981"
+!-> REPEAT: L=25
+ !-> DEFINE SYMBOL tlab = "21-DEC-1981"
+ !-> PPL %LABEL 174.6445516747008 28.40135534264319 1 0 0.09 "21-DEC-1981"
+!-> REPEAT: L=35
+ !-> DEFINE SYMBOL tlab = "17-OCT-1982"
+ !-> PPL %LABEL 170.0101127410977 18.36629087569217 1 0 0.09 "17-OCT-1982"
+!-> REPEAT: L=45
+ !-> DEFINE SYMBOL tlab = "13-AUG-1983"
+ !-> PPL %LABEL 175.527551028677 6.552192101033334 1 0 0.09 "13-AUG-1983"
+!-> REPEAT: L=55
+ !-> DEFINE SYMBOL tlab = "08-JUN-1984"
+ !-> PPL %LABEL 190.0763927948022 -5.896578890096701 1 0 0.09 "08-JUN-1984"
+ 
+FRAME/FILE=bn_labels_on_taxis.gif
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_contour_conset
+! err696_contour_conset.jnl
+! Ticket 2351. The PPL CONSET command had stopped working to set
+! the # of digits in contour labels.  See the setting in PPL LIST LEVELS
+ 
+contour/i=1:20/j=1:20/lev=(-10,10,2.125)/set/title="CONTOUR/SET with PPL CONSET,,4"  10*sin(i/3)*cos(j/4)
+ppl conset,,4
+ppl contour
+ 
+! This should show NDIG=3
+ppl list levels
+
+
+         LEVEL       TYPE       NDIG       PEN
+         -1.00E+01     DASH        3        0
+         -7.88E+00     DASH        3        0
+         -5.75E+00     DASH        3        0
+         -3.63E+00     DASH        3        0
+         -1.50E+00     DASH        3        0
+          6.25E-01     LINE        3        0
+          2.75E+00     LINE        3        0
+          4.88E+00     LINE        3        0
+          7.00E+00     LINE        3        0
+          9.13E+00     LINE        3        0
+          1.13E+01     LINE        3        0
+ 
+! Now make the same setting with CONTOUR/SIGDIG=
+contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/sigdig=4/title="CONTOUR/SIGDIG=4"  10*sin(i/3)*cos(j/4)
+ 
+! This should show NDIG=3
+ppl list levels
+
+
+         LEVEL       TYPE       NDIG       PEN
+         -1.00E+01     DASH        3        0
+         -7.88E+00     DASH        3        0
+         -5.75E+00     DASH        3        0
+         -3.63E+00     DASH        3        0
+         -1.50E+00     DASH        3        0
+          0.00E+00     DARK       -1        0
+          6.25E-01     LINE        3        0
+          2.75E+00     LINE        3        0
+          4.88E+00     LINE        3        0
+          7.00E+00     LINE        3        0
+          9.13E+00     LINE        3        0
+          1.13E+01     LINE        3        0
+ 
+! test CONTOUR/SET; CONSET; PPL CONTOUR settings
+contour/i=1:20/j=1:20/lev=(-10,10,2.125)/set/title="CONTOUR/SET with PPL CONSET,,4"  10*sin(i/3)*cos(j/4)
+ppl conset,0.07,4,,,,,,1
+ppl contour
+ 
+! test CONTOUR qualifiers that make CONSET settings. Should exactly overlay the previous plot.
+contour/over/color=red/i=1:20/j=1:20/lev=(-10,10,2.125)\
+/sigdig=4/siz=0.07/spacing=1  10*sin(i/3)*cos(j/4)
+ 
+frame/file=bn_contour_conset.gif
+ 
+GO bn_reset
+cancel mode verify
+GO err696_subspan_mod_strides
+! err696_subspan_mod_strides
+! See ticket 513. Axis is subspan modulo, and strides
+! on a plot with a larger region than the axis span caused the
+! shade plot to smear out beyond the edges.
+ 
+define axis/x/units=degrees_e xax = {-82.96,-81.46,-79.96,-78.47,-76.97,-75.48,-73.98,-72.48,-70.99,-69.49}
+let xx = x[gx=xax]
+let yy = y[y=4:20:2]
+let d10 = randu(xx) - randu(yy)
+ 
+! previously smeared out to the plot edges.
+set view upper
+shade/hlim=-95:-60/vlim=0:25 d10[i=1:10:2,j=1:10]
+ 
+! similar behavior with overlays
+set view lower
+use coads_climatology
+shade/L=3/pal=white/nokey/x=-180:0/y=0:30/title="Overlay Test" sst
+shade/over d10[i=1:10:2,j=1:10]
+ 
+frame/file=bn_subspan_mod_strides.gif
+ 
 exit/command
 yes? ! this "shell" is used because the Unix redirection fails to echo commands
 yes? ! from the top level command file
@@ -90802,9 +99578,9 @@ yes?
 yes? 
 yes? GO bn_ps
  	NOAA/PMEL TMAP
- 	FERRET v6.951 (beta)
- 	Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
- 	 9-Nov-15 15:04     
+ 	FERRET v7 (beta/dbg)
+ 	Linux 2.6.32-642.1.1.el6.x86_64 64-bit - 06/15/16
+ 	15-Jun-16 12:07     
 
 ! bn450_ps.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of ps files in batch mode using
@@ -90916,9 +99692,9 @@ yes?
 yes? 
 yes? GO bn_batch_metafile
  	NOAA/PMEL TMAP
- 	FERRET v6.951 (beta)
- 	Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/09/15
- 	 9-Nov-15 15:04     
+ 	FERRET v7 (beta/dbg)
+ 	Linux 2.6.32-642.1.1.el6.x86_64 64-bit - 06/15/16
+ 	15-Jun-16 12:07     
 
 ! bn_batch_metafile.jnl
 ! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -91002,4 +99778,4 @@ set window/location=0.1,0.1/title="another title"
  
 set mode/last logo
 exit/command
-Ended at Mon Nov 9 15:04:17 PST 2015
+Ended at Wed Jun 15 12:07:47 PDT 2016
diff --git a/bench/ansley_official.x86_64-linux_err b/bench/ansley_official.x86_64-linux_err
index 2773bb8..51f6b1a 100644
--- a/bench/ansley_official.x86_64-linux_err
+++ b/bench/ansley_official.x86_64-linux_err
@@ -1,27 +1,28 @@
 Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ksmith/Ferret/bin/ferret
-lrwxrwxrwx 1 ksmith tmap 12 Oct 26 17:18 /home/users/ksmith/Ferret/bin/ferret -> ferret_v6.95
-Using external functions from /home/users/ksmith/Ferret/ext_func/libs
+Running FERRET version /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
+-rwxr-xr-x. 1 ansley oerdnewp 81231926 Dec  9 14:43 /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
+Using external functions from /home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
 Running the tests of external functions y
-Benchmark run by Karl
-Note: Benchmark tests on RHEL5-64
+Benchmark run by ansley
+Note: fix for ticket 2334: plot/overlay error
 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_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/ksmith/Datasets
+FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/tmap/ferret/linux/fer_dsets
 FER_DESCR=.
 FER_DIR=.
 FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ksmith/Ferret/ext_func/libs
-FER_FONTS=/home/users/ksmith/Ferret/ppl/fonts
-FER_GO=. /home/users/ksmith/Ferret/go /home/users/ksmith/Ferret/examples /home/users/ksmith/Ferret/contrib
+FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
+FER_FONTS=/home/users/ansley/ferret_distributions/rhel6_64/ppl/fonts
+FER_GO=. /home/users/ansley/ferret_distributions/rhel6_64/go /home/users/ansley/ferret_distributions/rhel6_64/examples /home/users/ansley/ferret_distributions/rhel6_64/contrib
 FER_GRIDS=.
-FER_LIBS=/home/users/ksmith/Ferret/lib
-FER_PALETTE=. /home/users/ksmith/Ferret/ppl
+FER_LIBS=/home/users/ansley/ferret_distributions/rhel6_64/lib
+FER_PALETTE=. /home/users/ansley/ferret_distributions/rhel6_64/ppl
 FER_WEB_BROWSER=firefox
-Beginning at Mon Oct 26 17:21:34 PDT 2015
- Cached data cleared from memory
+PWD=/home/users/ansley/build/current_trunk/FERRET/bench
+PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/x86_64-linux/ext_func/pylibs
+Beginning at Wed Dec 9 14:44:08 PST 2015
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
         SET EXPRESSION has not been given or implied
@@ -803,6 +804,18 @@ Replacing definition of axis TWEEKS
 Replacing definition of axis TWEEKS
 Replacing definition of axis TWEEKS
  LISTing to file calsst.cdf
+
+Bailing out of external function "ffta":
+	 Time axis must be a regular axis
+
+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_stat":
+	 Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
+
+Bailing out of external function "eof_tfunc":
+	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
 Replacing definition of grid TGRID
 Replacing definition of axis TDAYS
@@ -820,18 +833,6 @@ plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
  TEMPORARY data cleared from memory
  Using every   2th vector in the Y direction
  Using every   2th vector in the Y direction
-
-Bailing out of external function "ffta":
-	 Time axis must be a regular axis
-
-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_stat":
-	 Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
-
-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
  Using every   2th vector in the X direction
@@ -1065,9 +1066,6 @@ Replacing definition of axis YAX
 Replacing definition of grid MYGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-sh: ncrename: command not found
-sh: ncrename: command not found
-sh: ncrename: command not found
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file longax.dat
@@ -1436,8 +1434,7 @@ POLYGON/KEY/LEV=0.01d/coord_ax=Z  PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark,
            *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-rm: cannot remove `input.txt': No such file or directory
-ls: input.txt: No such file or directory
+ls: cannot access input.txt: No such file or directory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XAX
@@ -2138,6 +2135,7 @@ Replacing definition of axis TIME
  LISTing to file a.nc
 syntax error, unexpected WORD_STRING, expecting WORD_WORD
 context: Error { code = 404; message = "data/PMEL/COADS/coads_nothing.cdf"^;};
+CURL Error: Couldn't resolve host name
 curl error details: 
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2155,7 +2153,7 @@ curl error details:
              this_is_not_a_file.nc
 SET DAT/FORM=CDF this_is_not_a_file.nc
  **Internet Data error
-             NetCDF: Malformed or inaccessible DAP DDS (OPeNDAP/netCDF Error code -72)
+             NetCDF: file not found (OPeNDAP/netCDF Error code -90)
              Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
 SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
  **Internet Data error
@@ -2323,6 +2321,8 @@ set axis/stride=2 NORMAL
  LISTing to file tripolar_missing_lon.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+CURL Error: Couldn't resolve host name
+curl error details: 
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -2352,7 +2352,6 @@ set axis/stride=2 NORMAL
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
            *** NOTE: A dummy axis of subscripts will be used
-curl error details: 
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
@@ -2933,9 +2932,6 @@ Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
-
-Bailing out of external function "tax_year":
-	 Function not valid for modulo time axis
  TEMPORARY data cleared from memory
  Restoring default chunk cache settings
  Restoring default chunk cache settings
@@ -3092,7 +3088,7 @@ Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
-set mode desperate 1.E+10
+set mode desperate   9999999999.000000
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
 set mode desperate 1234567890123456789
  PERMANENT data cleared from memory
@@ -3121,6 +3117,9 @@ Replacing definition of axis YAX_DUP_AXNAMES
            *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
+
+Bailing out of external function "tax_year":
+	 Function not valid for modulo time axis
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3312,12 +3311,12 @@ Replacing definition of axis FAX4DAY
  TEMPORARY data cleared from memory
            *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
  **ERROR: unknown data set: dset 3 unknown or is already an aggregate dataset
-define data/agg windy = 1,2,3
+DEFINE DATA/AGGREGAT/E windy = 1,2,3
            *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
            *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
            *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
  **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
-define data/agg windy = 1,2
+DEFINE DATA/AGGREGAT/E windy = 1,2
            *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
            *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
            *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
@@ -3444,7 +3443,6 @@ Replacing definition of axis TDAY
  LISTing to file aa.nc
  LISTing to file aa.nc
  LISTing to file aa.nc
-sh: ncks: command not found
  LISTing to file aa.nc
  LISTing to file aa.nc
 NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
@@ -3610,6 +3608,8 @@ Replacing definition of axis XAXIS_TEST
  LISTing to file c.nc
  LISTing to file c.nc
  LISTing to file c.nc
+syntax error, unexpected WORD_STRING, expecting WORD_WORD
+context: Error { code = 500; message = "Error processing XML header file /usr/local/src/apache-tomcat-7.0.34/content/NVODS/conf/server/temp/AD882140E58648ADA4107B4E90A732E2/header.xml (No such file or directory)"^;};
  LISTing to file nc
  **TMAP ERR: error in line definition
              file coords dont match variable coords on axis XAXIS_TEST
@@ -3666,6 +3666,25 @@ set axis/name=45 x_in_meters
 set axis/name=.fr x_in_meters
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ **ERROR: command syntax: /REMOTE variable expression may not contain [d=
+DEFINE VARIABLE/D=1/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+ **ERROR: command syntax: /REMOTE variable definition must also specify /D=
+DEFINE VARIABLE/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+ **netCDF error
+             Unable to open URL with REMOTE variable definitions:
+             Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/t0112mn1.nc
+ **TMAP ERR: attribute reading error
+             Unable to get varid for LET/REMOTE variable: NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
+             Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/t0112mn1.nc
+ **TMAP ERR: attribute reading error
+             Unable to get bad-value for LET/REMOTE variable: NetCDF: Attribute not found (OPeNDAP/netCDF Error code -43)
+             Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/t0112mn1.nc
+ **netCDF error
+             NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
+             Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/t0112mn1.nc
+list/x=300/y=15 avar
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: invalid command: string/numeric data type mix-up. Argument 3 : TAX_DATESTRING
@@ -3777,7 +3796,6 @@ list substring("hello",1,-2)
 list substring("hello",1,-3)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-rm: cannot remove `test_save_dsg.nc': No such file or directory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file anew_global.nc
@@ -3807,10 +3825,6 @@ list e
  **ERROR: illegal limits: X axis limits don't match variable def'n: A
           Are you giving explicit limits when SET REGION would suffice ?
 list f
-X Error of failed request:  BadMatch (invalid parameter attributes)
-  Major opcode of failed request:  73 (X_GetImage)
-  Serial number of failed request:  161380
-  Current serial number in output stream:  161380
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3894,3 +3908,365 @@ frame/format=hdf/file=a.hdf
  **ERROR: invalid command: illegal format type - must be "GIF"
           frame/file=a.png
 frame/file=a.png
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis FAXIS
+Replacing definition of axis EAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+           *** NOTE: Could not compute Std Dev. Data too large or or not within 3 std of computed mean.
+           *** NOTE: Using linear levels instead.
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ 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
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of grid GRID3D
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+           *** NOTE: Saving E or F axis with time axis uses /RIGID in time
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+Replacing definition of axis TAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+           *** NOTE: Changing the value of attribute foobar.some_text
+           *** NOTE: Changing the value of attribute foobar.some_text
+Replacing definition of grid GG
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+rm: cannot remove `WestCoastCarbon_9d9c_f562_77b5_5.nc': No such file or directory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+Replacing definition of axis FSEC
+           *** NOTE: grid GSI1 used by data set a
+           *** NOTE: Redefinition may alter apparent contents of data set
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: variable unknown or not in data set: B
+cancel var b,a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: xpos=a2
+annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: ypos=b
+annotate/nouser/xpos=0/ypos=b/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: halign=c
+annotate/nouser/xpos=0/ypos=0/halign=c/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: valign=d
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=d/angle=ee/siz=0.15 "My Lab"
+ **ERROR: command syntax: siz=f
+annotate/nouser/xpos=0/ypos=0/halign=1/valign=0/angle=-45/siz=f "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+annotate/nouser/ypos=0 "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+annotate/nouser/xpos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: invalid command: Specify only one of /USER /NOUSER /NORM
+annotate/nouser/user/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: xpos=a2
+def anno/nou/xpos=a2/ypos=0/hal=1/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: ypos=b
+def anno/nou/xpos=0,3/ypos=b/hal=1/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: hal=c
+def anno/nou/xpos=0/ypos=0/hal=c/val=0/ang=-45/siz=0.15 "My Lab"
+ **ERROR: command syntax: val=d
+def anno/nou/xpos=0/ypos=0/hal=1/val=d/ang=ee/siz=0.15 "My Lab"
+ **ERROR: command syntax: siz=f
+def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=f "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+def anno/nou/ypos=0 "My Lab"
+ **ERROR: invalid command: /XPOS and /YPOS are required for ANNOTATE
+def anno/nou/xpos=0/hal=1/val=0 "My Lab"
+ **ERROR: invalid command: Specify only one of /USER /NOUSER /NORM
+def anno/nou/user/xpos=0/ypos=0 "My Lab"
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis ZAX
+ LISTing to file layerz_test_data.txt
+ **ERROR: variable unknown or not in data set: (data set ok ?): noexist
+SET VAR/layerz=depth noexist
+           *** NOTE: Ambiguous coordinates on Z axis: TEMP6D-TEMPZ6D
+ **ERROR: invalid command: auxiliary variable DEPTH6D has a T axis not found on variable TEMP
+LIST/PREC=7 tempz6d_unmatch
+Replacing definition of axis XAX
+Replacing definition of axis ZAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments
+plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
+ **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
+plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
+ **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
+plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+           *** NOTE: Units on axis "pfull1_1" are not recognized: hpa
+           *** NOTE: They will not be convertible:
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: unknown data set: noexist
+SHOW DATA noexist
+ **ERROR: unknown data set: 2
+SHOW DATA 2
+ **ERROR: unknown data set: noexist
+SHOW DATA/ATT noexist
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+Replacing definition of axis DCOARSE
+Replacing definition of axis IRR
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TDAY
+ LISTing to file tagg_reg_1.nc
+ LISTing to file tagg_reg_2.nc
+ LISTing to file tagg_reg_3.nc
+ LISTing to file tagg_reg_4.nc
+ LISTing to file tagg_reg_5.nc
+ LISTing to file tagg_reg_6.nc
+ LISTing to file tagg_reg_7.nc
+ LISTing to file tagg_reg_8.nc
+ LISTing to file tagg_reg_9.nc
+ LISTing to file tagg_reg_10.nc
+ LISTing to file tagg_reg_1_duplicate.nc
+ LISTing to file tagg_reg_no_T.nc
+ LISTing to file tagg_reg_2_overlarge.nc
+           *** NOTE: Not deleted: TDAY
+           *** NOTE: Axis is in use by grid (G106)
+ LISTing to file tagg_irreg_1.nc
+ LISTing to file tagg_irreg_2.nc
+ LISTing to file tagg_irreg_3.nc
+ LISTing to file tagg_irreg_4.nc
+ LISTing to file tagg_irreg_5.nc
+ LISTing to file tagg_irreg_6.nc
+ LISTing to file tagg_irreg_7.nc
+ LISTing to file tagg_irreg_8.nc
+ LISTing to file tagg_irreg_9.nc
+ LISTing to file tagg_irreg_10.nc
+Replacing definition of axis TDAY_IR
+ LISTing to file tagg_irreg_2_reg.nc
+           *** NOTE: Not deleted: TDAY_IR
+           *** NOTE: Axis is in use by grid (G106)
+ LISTing to file tagg_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_T0varying_2.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_T0varying_3.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_T0varying_4.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_T0varying_5.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_disjoint_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_disjoint_T0varying_2.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_disjoint_T0varying_3.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_disjoint_T0varying_4.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_disjoint_T0varying_5.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_disjoint_T0varying_6.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_disjoint_T0varying_7.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_disjoint_T0varying_8.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_disjoint_T0varying_9.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_disjoint_T0varying_10.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_disjoint_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tagg_disjoint_T0varying_3.nc
+ LISTing to file tagg_disjoint_T0varying_4_wrong.nc
+           *** NOTE: Not deleted: TDAY_WRONG
+           *** NOTE: Axis is in use by grid (G106)
+ LISTing to file tagg_single_1.nc
+ LISTing to file tagg_single_2.nc
+ LISTing to file tagg_single_3.nc
+ LISTing to file tagg_single_4.nc
+ LISTing to file tagg_single_5.nc
+ LISTing to file tagg_single_6.nc
+           *** NOTE: Not deleted: TDAY
+           *** NOTE: Axis is in use by grid (G106)
+ **ERROR: invalid command: given aggregation dataset name already in use: myagg2
+define data/agg/t myagg2 = tagg_reg_1.nc, tagg_reg_2.nc
+ **TMAP ERR: non-existent or not on line
+             tagg_no_exist.nc
+define data/agg/t myaggbad = tagg_no_exist.nc, tagg_reg_2.nc
+ **TMAP ERR: non-existent or not on line
+             tagg_no_exist.nc
+ **ERROR: improper grid or axis definition: first file of aggregation has no time axis tagg_reg_no_T.nc
+DEFINE DATA/AGGREGAT/T myTindepagg = tagg_reg_no_T.nc
+ **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tagg_reg_3.nc
+define data/agg/t myagg3 = tagg_reg_1.nc, tagg_reg_2_overlarge.nc,tagg_reg_3.nc
+ **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tagg_irreg_2.nc
+define data/agg/t myagg3 = tagg_irreg_1.nc, tagg_irreg_3.nc,tagg_irreg_2.nc
+ **ERROR: invalid command: given aggregation dataset name already in use: myagg2
+define data/agg/t myagg2 = tagg_disjoint_T0varying_1.nc, tagg_disjoint_T0varying_2.nc
+ **TMAP ERR: Unknown variable code
+             in file ./tagg_disjoint_T0varying_4_wrong.nc time axis variable is missing: tday_Tvar
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **TMAP ERR: error in axis attributes
+             Calendar definitions on T and F axes must match
+             Data file: ./ft_cal_one.nc
+SET DAT/FORM=CDF ft_cal_mixed.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: unknown region name: @w
+set region/@w
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: writev5d(tr, 0, 0, 0, 0, 0, 0, 0, "vis5d_out.v5d")
+          unknown function "writev5d"
+DEFINE VARIABLE/QUIET vflag = writev5d(tr, 0, 0, 0, 0, 0, 0, 0, "vis5d_out.v5d")
+ **ERROR: variable unknown or not in data set: VFLAG
+LOAD/TEMPORARY vflag
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ Cached data cleared from memory
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
+plot/i=1:10/j=1:20/nolabel i+j
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i,i+j"
+plot/i=1:10/j=1:20/nolabel i,i+j
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j,i"
+plot/i=1:10/j=1:20/nolabel i+j,i
+ **ERROR: dimensions improperly specified: differing axes:
+          first line is on Y axis
+          line 2 is on X axis
+plot/i=1:10/j=1:20/nolabel j,i
+ **ERROR: dimensions improperly specified: unequal line lengths:
+          First expression has 20 points.
+          Expression 2 has 10 points:
+          "plot/i=1:10/j=1:20/vs/line/nolabel j,i"
+plot/i=1:10/j=1:20/vs/line/nolabel j,i
+ **ERROR: dimensions improperly specified: must be a 2D region
+          contour/i=1:10/j=1:20/nolabel i
+contour/i=1:10/j=1:20/nolabel i
+ **ERROR: invalid command: can only CONTOUR  single fields
+          Use /OVERLAY for multiple variables
+contour/i=1:10/j=1:20/nolabel i/j,j/i
+ **ERROR: invalid command: VECTOR requires paired components
+vector/i=1:10/j=1:20/nolabel i/j
+ **ERROR: invalid command: VECTOR requires paired components
+vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
+Re-defining viewport LM6
+Re-defining viewport UM6
+ Using every   2th vector in the X direction
+ Using every   2th vector in the Y direction
+Re-defining viewport LM6
+ Using every   2th vector in the X direction
+ Using every   2th vector in the Y direction
+ Using every   2th vector in the X direction
+ Using every   2th vector in the Y direction
+Re-defining viewport UM6
+ Using every   2th vector in the X direction
+ Using every   2th vector in the Y direction
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
+plot/i=1:10/j=1:20/nolabel i+j
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i,i+j"
+plot/i=1:10/j=1:20/nolabel i,i+j
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j,i"
+plot/i=1:10/j=1:20/nolabel i+j,i
+ **ERROR: dimensions improperly specified: differing axes:
+          first line is on Y axis
+          line 2 is on X axis
+plot/i=1:10/j=1:20/nolabel j,i
+ **ERROR: dimensions improperly specified: unequal line lengths:
+          First expression has 20 points.
+          Expression 2 has 10 points:
+          "plot/i=1:10/j=1:20/vs/line/nolabel j,i"
+plot/i=1:10/j=1:20/vs/line/nolabel j,i
+ **ERROR: dimensions improperly specified: must be a 2D region
+          contour/i=1:10/j=1:20/nolabel i
+contour/i=1:10/j=1:20/nolabel i
+ **ERROR: invalid command: can only CONTOUR  single fields
+          Use /OVERLAY for multiple variables
+contour/i=1:10/j=1:20/nolabel i/j,j/i
+ **ERROR: invalid command: VECTOR requires paired components
+vector/i=1:10/j=1:20/nolabel i/j
+ **ERROR: invalid command: VECTOR requires paired components
+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 Dec 9 14:45:56 PST 2015
diff --git a/bench/axes_subspan.nc b/bench/axes_subspan.nc
new file mode 100644
index 0000000..3232074
Binary files /dev/null and b/bench/axes_subspan.nc differ
diff --git a/bench/bn696_bug_fixes.jnl b/bench/bn696_bug_fixes.jnl
index 356ed34..336d720 100644
--- a/bench/bn696_bug_fixes.jnl
+++ b/bench/bn696_bug_fixes.jnl
@@ -6,3 +6,6 @@ GO err695_bounds_match_axis
 
 GO bn_reset
 GO err695_show_dat_nodata
+
+GO bn_reset
+GO err695_grave_prec
diff --git a/bench/bn697_bug_fixes.jnl b/bench/bn697_bug_fixes.jnl
new file mode 100644
index 0000000..ad5266b
--- /dev/null
+++ b/bench/bn697_bug_fixes.jnl
@@ -0,0 +1,95 @@
+! bn697_bug_fixes
+! test various fixes that went into version 6.97
+
+GO bn_reset
+GO err696_only_inf_lev
+
+GO bn_reset
+GO err696_plot_ax_ppl
+
+GO bn_reset
+GO err696_ft_calendars
+
+GO bn_reset
+GO err696_centerlab_restore
+
+GO bn_reset
+GO err696_time_overlay
+
+GO bn_reset
+GO err696_save_noupcase
+
+GO bn_reset
+GO err696_argument_blanks
+
+GO bn_reset
+GO err696_annotate_numeric
+
+GO bn_reset
+GO err696_e_component_mem_crptn
+
+GO bn_reset
+GO err696_mem_err_report
+
+GO bn_reset
+GO err696_multiple_slashes
+
+GO bn_reset
+GO err696_2d_time_overlay
+
+GO bn_reset
+GO err696_singlevec_over
+
+GO bn_reset
+GO err696_return_type
+
+GO bn_reset
+GO err696_hovmuller_mod_fill
+
+!GO bn_reset!
+!GO err696_axname_noupcase
+
+go bn_reset
+go err696_repeat_escapes.jnl
+
+go bn_reset
+go err696_red_keylab.jnl
+
+go bn_reset
+go err696_poly_over_label
+
+go bn_reset
+go err696_def_ax_f
+
+go bn_reset
+go err696_mode_cal_f
+
+go bn_reset
+go err696_def_ax_edges
+
+go bn_reset
+go err696_write_no_dim
+
+go bn_reset
+go err696_mod_sub_fln
+
+go bn_reset
+go err696_subspan_transforms
+
+go bn_reset
+go err696_subspan_mod_in_expr
+
+go bn_reset
+go err696_shade_subspan_clim
+
+go bn_reset
+! go err696_subspan_mod_strides  ! do this test in bn_gif
+
+go bn_reset
+go err696_def_att
+
+go bn_reset
+go err696_return_prec
+
+go bn_reset
+go err686_show_xml_letd
diff --git a/bench/bn_aggregate_e.jnl b/bench/bn_aggregate_e.jnl
index ed3e528..39705cc 100644
--- a/bench/bn_aggregate_e.jnl
+++ b/bench/bn_aggregate_e.jnl
@@ -2,27 +2,51 @@
 ! using the DEFINE DATA/AGGREGATE/E command
 ! Datasets share sst, but only ens1 has airt. 
 
+! v6.95+ 11/15 *sh* -- /T is now the default orientation
+! v6.98 12/15 *sh -- modified so that the sequence number of each
+!   dataset in the aggregation is not also its Ferret dataset number
+!   Allowing them to be the same was hiding bugs
+
 set mode diag
 
 use ens1, ens2, ens3, ens4
-define data/agg/title fourfiles = ens1, ens3, ens2, ens4
+define data/agg/E fourfiles = ens1, ens3, ens2, ens4
 
 ! The grid of SST is known.
 show data fourfiles
 
 list/i=3 sst[T=@ave]
+
+show memory/all  ! show memory-resident variables before canceling dataset
+cancel data fourfiles
+show memory/all  ! show memory-resident variables after  canceling dataset
+
+! 12/15 now do again adding COADS to de-align toe dset #s from the sequence #s
+cancel data/all
+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
 cancel data fourfiles
+show data/brief/all/hidden
 
 ! Create airt in the other datasets by LET/D definitions.
+use ens1, ens2, ens3, ens4
 let/d=ens2 airt = sst + 1
 let/d=ens3 airt = sst + 1
 let/d=ens4 airt = sst + 1
 
-define data/agg fourfiles = ens1, ens3, ens2, ens4
+ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
 show data fourfiles
 
 list/i=3 airt[T=@ave]
 
+! create an ensemble where one member is missing
+ENSEMBLE fourfiles_gap = ens1, -, ens3, ens4
+show data/files fourfiles_gap
+list/i=3 airt[T=@ave]
+
 cancel mode diag
 cancel data/all
 cancel var/all
@@ -39,10 +63,10 @@ use navy_uw
 set mode ignore
 
 ! Use dataset thats not open.
-define data/agg windy = 1,2,3
+ensemble windy = 1,2,3
 
 ! No variables on comparable grids.
-define data/agg windy = 1,2
+ensemble windy = 1,2
 
 set mode/last ignore
 
@@ -63,7 +87,7 @@ let/d=2/units="`vin,return=units`"/title="`vin,return=title`" \
 show data
 
 ! Define the ensemble dataset
-define data/agg windy = 1,2
+ensemble windy = 1,2
 
 ! The grid of the aggregate variables with LET/D is known.
 show data windy
@@ -72,11 +96,12 @@ show data windy
 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[d=3,e=@ave]
 
 ! Use the other order. As long as we have a file variable, we're ok
-
+show data/brief    ! see what is *not* hidden
 cancel data 3
+show data/brief    ! see what is *not* hidden
 
 ! Define the ensemble dataset
-define data/agg windy = 2,1
+ensemble windy = 2,1
 
 ! The grid of the aggregate variables with LET/D is known.
 show data windy
@@ -84,8 +109,8 @@ show data windy
 ! Use variable from the new dataset
 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[d=3,e=@ave]
 
-can data/all
-can var/all
+cancel data/all
+cancel variable/all
 
 ! DEFINE DATA/HIDE
 ! SHOW DATA/HIDDEN
@@ -95,47 +120,49 @@ can var/all
 ! member datasets and show only the ensemble.
 ! show dat/hidden forces showing all
 
-sh command define
-sh command show
+show command define
+show command show
+
+use coads_climatology ! to offset indices so they arent equal to Ferret dset #s
 
 use ens1, ens2, ens3, ens4
 ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
 
-! should just show the ensemble set
-sh dat
+! should just show the ensemble set.  Members are hidden.
+show data/brief
 
 ! If ask for a member set by name or number, do show it
-sh dat 2
-sh dat ens3
+show data/brief 2
+show data/brief ens3
 
 ! should show all members plus ensemble
-sh dat/hidden
+show data/brief/hidden
 
-! Should show original member datasets
-can dat fourfiles
-sh dat
-can dat/all
+! Since the members were hidden, they get deleted with the aggregation
+cancel data fourfiles
+show data/brief
+cancel data/all
 
 ! Cancel a member, then the ensemble gets canceled.
-! The hidden members should show up.
-
+! The hidden members get canceled along with the parent (1/16)
+use coads_climatology ! to offset indices so they arent equal to Ferret dset #s
 use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2
-sh dat
-can dat  2
-sh dat
+ensemble/HIDE/title="uvars in dset 2"  my_ens = 2,3
+show data/brief
+cancel data  ens2
+show data/brief
 
-! Cancel the ensemble, then hidden members get un-hidden.
+! Cancel the ensemble, then hidden members get canceled too
 
 use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2,3,4
+ensemble/HIDE/title="uvars in dset 2"  my_ens = 2,3,4,5
 
 ! members hidden, showing only ensemble.
-sh dat
-can dat my_ens
+show data/brief
+cancel data my_ens
 
-! Cancel ensemble dataset: members un-hidden
-sh dat
+! Cancel ensemble dataset: hidden members deleted
+show data/brief
 
 ! Define several ensembles with /HIDE
 ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
@@ -143,10 +170,9 @@ ensemble/HIDE/title="ensemble with hidden members" some = ens1, ens2
 ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
 
 ! Shows all the ensembles
-sh dat
+show data/brief/files
 
-! Cancel a member of all the ensembles. 
-! Cancels dataset 2 and also the ensemble sets.
-can dat 2
-sh dat
+! Cancel a member of all the ensembles.  All the ensembles get deleted.
+cancel data ens2
+show data/brief
 
diff --git a/bench/bn_aggregate_f.jnl b/bench/bn_aggregate_f.jnl
new file mode 100644
index 0000000..7e500a9
--- /dev/null
+++ b/bench/bn_aggregate_f.jnl
@@ -0,0 +1,174 @@
+! bn_aggregate_f.F
+! 12/2015 *sh*
+! 1/2016 *sh* added implicit naming of aggregation from script filename
+
+! exercise FMRC aggregations
+
+spawn "mkdir -p tmp"     ! tmp directory t store files
+
+! *** create an artificial forecast model run collection ***
+
+! a 20x20 lat-long region
+define axis/x=140e:160e:1 xax
+define axis/y=20n:40n:1 yax
+
+! a 20 year monthly axis starting in Jan 1950
+LET start_year = 1950
+LET nyears = 20
+LET indices = L[L=1:`nyears*12`]
+LET month = MOD(indices-1,12)+1
+LET year = start_year + INT((indices-1)/12)
+DEFINE AXIS/UNITS=days/T0=1-jan-1900/EDGES truemonth = DAYS1900(year,month,1)
+
+! define a moving field with errors increasing from a given forecast date
+let vy = 1/500      ! speed that forecast structure deviates from truth
+!let vx = 1/300
+let vx = (1+(T[gt=truemonth]-tstart)/2000)* 1/300
+let xt = x[gx=xax]-vx*T[gt=truemonth]
+let yt = y[gy=yax]-vy*T[gt=truemonth]
+let field = COS((xt-150)/5)*COS((yt-30)/5)
+let fcst = field + fcst_error
+let static_error = SIN((x[gx=xax]-140)/5)*SIN((y[gy=yax]-20)/5) + RANDU(x[gx=xax]+y[gy=yax])
+let structure_drift = (t[gt=truemonth]-tstart)/5000 * static_error
+let random_error = (t[gt=truemonth]-tstart)/2000 * RANDU(t[gt=truemonth]+x[gx=xax]+y[gy=yax])
+let fcst_error = structure_drift + random_error
+let/title="another variable" fcst_2 = fcst + 2
+
+! every 3 months another 2-year forecast
+repeat/name=fdate/range=1:31:3 (let tstart = t[gt=truemonth,l=`fdate`];save/clobber/file="tmp/fcst_`(fdate-1)/3+1`.nc"/l=`fdate`:`fdate+23` fcst,  fcst_2)
+
+! a couple of long (3-year) forecasts
+let tstart = t[gt=truemonth,l=1]
+save/clobber/file="tmp/long_fcst_1.nc"/l=1:36 fcst,fcst_2   ! replaces file 1
+let tstart = t[gt=truemonth,l=16]
+save/clobber/file="tmp/long_fcst_6.nc"/l=16:52 fcst,fcst_2  ! replaces file 6 
+
+! files lacking the second variable
+let tstart = t[gt=truemonth,l=1]
+save/clobber/file="tmp/one_var_fcst_1.nc"/l=1:24 fcst   ! alternative of file 1
+let tstart = t[gt=truemonth,l=16]
+save/clobber/file="tmp/one_var_fcst_6.nc"/l=16:39 fcst  ! alternative of file 6
+
+! files that violate the sequence
+save/clobber/file="tmp/consecutive_month_fcst.nc"/l=5:28 fcst, fcst_2
+! shift the time interpretation by 3 days through altered T0
+DEFINE AXIS/UNITS=days/T0=4-jan-1900/EDGES truemonth = DAYS1900(year,month,1)
+save/clobber/file="tmp/irregular_start_time_fcst.nc"/l=6:29 fcst, fcst_2
+
+cancel variables/all
+
+! ***** end of FMRC file creation ****************
+
+! define a complete FMRC aggregation
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+list files  ! notice that they are not properly ordered
+fmrc my_fmrc = files
+show data/brief    ! note that member files are hidden
+show data/files my_fmrc
+show data/attr my_fmrc
+
+! plot and list the aggregation
+GO bn_aggregate_f.sub
+
+cancel data my_fmrc
+show data/hidden   ! note that all member files were canceled, too
+
+! agg with 2nd, 3rd, 9th and 10th forecasts missing 
+use tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_9.nc, tmp/fcst_10.nc, tmp/fcst_11.nc
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc/hide my_fmrc = XCAT(files[I=6:10],{"6","1"})           ! double-wide gaps
+!fmrc my_fmrc = XCAT(files[I=6:10],{"6","1","2","5"})  ! single-wide gaps
+show data/files my_fmrc
+show data/brief
+LIST tf_times
+GO bn_aggregate_f.sub
+
+cancel data my_fmrc
+show data/brief/hidden
+cancel data/all
+
+! agg with the first forecast of longer time range than the others
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc/hide my_fmrc = XCAT(files[I=4:11],{"tmp/long_fcst_1.nc"}) ! first member is long
+show data/files my_fmrc
+GO bn_aggregate_f.sub
+cancel data my_fmrc
+
+! agg with the sixth forecast of longer time range than the others
+fmrc/hide my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/long_fcst_6.nc, tmp/fcst_7.nc, tmp/fcst_8.nc
+show data/files my_fmrc
+GO bn_aggregate_f.sub
+cancel data my_fmrc
+
+! agg where one dataset lacks one of the variables
+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/files
+stat/l=1:20 fcst
+cancel data my_fmrc
+
+! ... added 1/28/2016
+! the same agg, but the dataset name pulled implicitly from the script name
+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
+
+! 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
+
+! cancel a component dataset -- used in two aggregations
+cancel data tmp/fcst_4.nc
+show data
+
+! re-define the same aggs again. 
+! then cancel one of them only and note that the hidden files remain
+fmrc/hide tmp/fcst_7.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_3.nc
+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
+cancel data my_fmrc
+show data/br/hidden
+cancel data bn_aggregate_f.jnl   ! 3/16 bug fix (was "...sub")
+show data
+
+! agg where a LET/D variable is used to fill in a missing variable
+use tmp/one_var_fcst_1.nc, tmp/one_var_fcst_6.nc
+let/d=one_var_fcst_1.nc fcst_2 = fcst + 2  ! compute same value as file vars
+let/d=one_var_fcst_6.nc fcst_2 = fcst + 2  ! compute same value as file vars
+FMRC/hide my_fmrc_letd_6 = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_7.nc
+FMRC/hide my_fmrc_letd_1 = tmp/one_var_fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/fcst_6.nc, tmp/fcst_7.nc
+FMRC/hide my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/fcst_6.nc, tmp/fcst_7.nc
+show data/files
+show data
+! should be all 0's:
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst_2[d=my_fmrc_letd_6] - fcst_2[d=my_fmrc]
+! should be all 0's:
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst_2[d=my_fmrc_letd_6] - fcst_2[d=my_fmrc_letd_1]
+cancel data my_fmrc
+cancel data my_fmrc_letd_1, my_fmrc_letd_6
+
+! files already opened and not hidden remain open after aggregation
+use tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_9.nc, tmp/fcst_10.nc, tmp/fcst_11.nc
+fmrc my_fmrc = XCAT(files[I=6:10],{"6","1"})           ! without /HIDE
+cancel data my_fmrc
+show data/brief
+cancel data/all
+
+! *************************************
+! deliberate errors
+set mode ignore
+
+! error - duplicate file
+fmrc my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc,tmp/fcst_2.nc,tmp/fcst_3.nc
+SH DATA/BR/HIDDEN
+
+! error - unknown dataset
+fmrc my_fmrc = XCAT(files,"tmp/no_exist.nc")
+SH DATA/BR/HIDDEN
+
+! error - inserting forecasts at two consecutive steps implies too many gaps
+fmrc my_fmrc = XCAT(files,"tmp/consecutive_month_fcst.nc")
+SH DATA/BR/HIDDEN
+
+! error - inserting out of sequence forecast 
+fmrc my_fmrc = XCAT(files,"tmp/irregular_start_time_fcst.nc")
+SH DATA/BR/HIDDEN
+
+set mode/last ignore
diff --git a/bench/bn_aggregate_f.sub b/bench/bn_aggregate_f.sub
new file mode 100644
index 0000000..dfbf4a7
--- /dev/null
+++ b/bench/bn_aggregate_f.sub
@@ -0,0 +1,34 @@
+! bn_aggregate_f.sub
+
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+
+
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
diff --git a/bench/bn_aggregate_t.jnl b/bench/bn_aggregate_t.jnl
new file mode 100644
index 0000000..7fd2934
--- /dev/null
+++ b/bench/bn_aggregate_t.jnl
@@ -0,0 +1,326 @@
+! bn_aggregate_t.jnl
+! 9/12/2015 *sh* tweak to put all test files into "tmp" subdirectory
+! 1/2016 *sh* added implicit naming of aggregation from script filename
+! 2/2016      and auto-sorting of member files
+
+spawn "mkdir -p tmp"     ! tmp directory t store files
+
+! *** create test files for T aggregation ***
+
+! --- files with regularly-spaced time points ---
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+
+! also define a time intependent field to be saved as the second variable
+! but only in the first data set
+let mymap = I[x=0E:0E:5]+ 10*J[Y=80s:80n:5]
+
+save/clobber/file="tmp/tagg_reg_1.nc" myvar[l=1:10], mymap
+save/clobber/file="tmp/tagg_reg_2.nc" myvar[l=11:20]
+save/clobber/file="tmp/tagg_reg_3.nc" myvar[l=21:30]
+save/clobber/file="tmp/tagg_reg_4.nc" myvar[l=31:40]
+save/clobber/file="tmp/tagg_reg_5.nc" myvar[l=41:50]
+save/clobber/file="tmp/tagg_reg_6.nc" myvar[l=51:60]
+save/clobber/file="tmp/tagg_reg_7.nc" myvar[l=61:70]
+save/clobber/file="tmp/tagg_reg_8.nc" myvar[l=71:80]
+save/clobber/file="tmp/tagg_reg_9.nc" myvar[l=81:90]
+save/clobber/file="tmp/tagg_reg_10.nc" myvar[l=91:100]
+
+! save a duplicate of the first file
+save/clobber/file="tmp/tagg_reg_1_duplicate.nc" myvar[l=1:10], mymap
+
+! save a file with no time-dependent variables
+save/clobber/file="tmp/tagg_reg_no_T.nc"  mymap
+
+! make a single file that is "too long": 15 time steps instead of 10
+! so that when used in a time series it creates reverse-ordered points
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+save/clobber/file="tmp/tagg_reg_2_overlarge.nc" myvar[l=11:25]
+cancel axis tday
+
+! --- files with irregularly-spaced time points ---
+define axis/T0=1-jan-1980/unit=days tday_ir = L[l=1:200]^1.01
+
+let myvar = SIN(T[gt=tday_ir]/10) + L[gt=tday_ir]/10
+!plot myvar[l=1:100]
+
+save/clobber/file="tmp/tagg_irreg_1.nc" myvar[l=1:10]
+save/clobber/file="tmp/tagg_irreg_2.nc" myvar[l=11:20]
+save/clobber/file="tmp/tagg_irreg_3.nc" myvar[l=21:30]
+save/clobber/file="tmp/tagg_irreg_4.nc" myvar[l=31:40]
+save/clobber/file="tmp/tagg_irreg_5.nc" myvar[l=41:50]
+save/clobber/file="tmp/tagg_irreg_6.nc" myvar[l=51:60]
+save/clobber/file="tmp/tagg_irreg_7.nc" myvar[l=61:70]
+save/clobber/file="tmp/tagg_irreg_8.nc" myvar[l=71:80]
+save/clobber/file="tmp/tagg_irreg_9.nc" myvar[l=81:90]
+save/clobber/file="tmp/tagg_irreg_10.nc" myvar[l=91:100]
+
+! create a regular time axis (lacking cell bounds) in the midst of the sequence
+define axis/T0=1-jan-1980/unit=days tday_ir = L[l=11:20]
+save/clobber/file="tmp/tagg_irreg_2_reg.nc" myvar
+cancel axis tday_ir
+
+
+! --- files in which the T0 origin varies ---
+! create a sequence of files with differing T0 dates, but the very same
+! timestep values (1, 2, 3, 4)
+
+let tt = t[gt=tday_tvar]
+
+repeat/i=1:5 (\
+define symbol file `i`;\
+define symbol start_day `(i-1)*4+1`;\
+define axis/T0=($start_day)-jan-1980/unit=days tday_Tvar = L[l=1:4];\
+let myvar0 = TAX_JDAY(L[l=1:4], tt);\
+let myvar = myvar0[gt=tday_Tvar at asn];\
+save/clobber/file="tmp/tagg_T0varying_($file).nc" myvar[l=1:4])
+
+! --- files with T0 varying and date gaps between files ---
+let myvar = L[gt=tday_Tvar]
+
+repeat/i=1:10 (\
+define symbol file `i`;\
+define symbol year `i+1980`;\
+define axis/T0=1-jan-($year)/unit=days tday_Tvar = L[l=1:10];\
+save/clobber/file="tmp/tagg_disjoint_T0varying_($file).nc" myvar[l=1:10])
+
+! alter first and third files to have only single time step
+define axis/T0=1-jan-1981/unit=days tday_Tvar = L[l=1:10]
+save/clobber/file="tmp/tagg_disjoint_T0varying_1.nc" myvar[l=1:1]
+define axis/T0=1-jan-1983/unit=days tday_Tvar = L[l=1:10]
+save/clobber/file="tmp/tagg_disjoint_T0varying_3.nc" myvar[l=1:1]
+
+! make an alternative file 4 that has a different name for the time axis
+define axis/T0=1-jan-1984/unit=days tday_WRONG = L[l=1:10]
+let myvar = L[gt=tday_WRONG]
+save/clobber/file="tmp/tagg_disjoint_T0varying_4_wrong.nc" myvar[l=1:1]
+cancel axis tday_Tvar
+cancel axis tday_WRONG
+
+! --- files each containing only a single time step ---
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+
+! also define a time intependent field to be saved as the second variable
+! but only in the first data set
+let mymap = I[x=0E:0E:5]+ 10*J[Y=80s:80n:5]
+
+!save/rigid/keep_axisname/file=...
+
+save/clobber/file="tmp/tagg_single_1.nc" myvar[l=1], mymap
+save/clobber/file="tmp/tagg_single_2.nc" myvar[l=2]
+save/clobber/file="tmp/tagg_single_3.nc" myvar[l=3]
+save/clobber/file="tmp/tagg_single_4.nc" myvar[l=4]
+save/clobber/file="tmp/tagg_single_5.nc" myvar[l=5]
+save/clobber/file="tmp/tagg_single_6.nc" myvar[l=6]
+
+cancel axis tday
+
+cancel var/all
+
+
+! *****************************************
+! *** test the aggregation capabilities ***
+! --- regularly-spaced axes ---
+! if the first file of the aggregation is already open
+! it must not get disturbed by setting up the aggregation
+use tmp/tagg_reg_1.nc
+
+! single dataset aggregation
+tseries myagg1 =  tmp/tagg_reg_1.nc
+show data myagg1
+show grid myvar
+
+! double file aggregation
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show grid myvar
+stat myvar
+
+! show that aggregate name is case-sensitive
+define data/agg/t myAgg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show data myAgg2
+
+! *sh* 1/28/2016 addition
+! same aggregation inheriting its name from the parent script
+define data/agg/t tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show data/brief
+
+! 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
+show data/full  ! all 4 datasets
+show grid myvar
+plot/line/sym myvar
+
+! read a time-independent field from the first file of the aggregation
+stat mymap
+
+! 2/2016 -- reorder deliberately out of order regular files
+define data/agg/t myagg8_disordered1 = tmp/tagg_reg_2.nc, tmp/tagg_reg_1.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
+define data/agg/t myagg8_disordered2 = 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_8.nc, tmp/tagg_reg_7.nc
+show data/files/brief myagg8_disordered1
+show data/files/brief myagg8_disordered2
+stat/brief T[g=myvar[d=myagg8]] - T[g=myvar[d=myagg8_disordered1]]
+stat/brief TBOXLO[g=myvar[d=myagg8]] - TBOXLO[g=myvar[d=myagg8_disordered1]]
+stat/brief TBOXHI[g=myvar[d=myagg8]] - TBOXHI[g=myvar[d=myagg8_disordered1]]
+cancel data/all
+
+! deliberate errors
+set mode ignore
+! try to define the same aggregation again
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+
+! try to aggregate with the same file duplicated
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc, tmp/tagg_reg_2.nc
+
+! try to aggregate a missing file as first file
+define data/agg/t myaggbad = tmp/tagg_no_exist.nc, tmp/tagg_reg_2.nc
+
+! try to aggregate a missing file as subsequent file
+define data/agg/t myaggbad = tmp/tagg_reg_1.nc, tmp/tagg_no_exist.nc
+
+! try to define an aggregation where there is no time axis in the first file
+tseries myTindepagg = tmp/tagg_reg_no_T.nc
+
+! erroneous file 2 with 15 time steps, goes beyond start of file 3
+define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
+
+set mode/last ignore
+canc data/all
+
+
+! --- irregularly-spaced axes ---
+! aggregation of 2 irregular datasets
+ define data/agg/t myagg2 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc
+
+! aggregate a longer collection where all are irregular
+define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irreg_3.nc, tmp/tagg_irreg_4.nc,tmp/tagg_irreg_5.nc, tmp/tagg_irreg_6.nc,tmp/tagg_irreg_7.nc, tmp/tagg_irreg_8.nc
+  show data/full
+  show data myagg2
+  show grid/t myvar[d=1]
+  show grid myvar[d=2]
+  plot/line/sym myvar[d=2],myvar[d=1] 
+
+! aggregate collection that mixes regular (file 2) with irregular
+define data/agg/t myagg4 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2_reg.nc,tmp/tagg_irreg_3.nc, tmp/tagg_irreg_4.nc
+  show grid/t myvar[d=myagg4]
+
+! deliberate error -- aggregated file out of order
+set mode ignore
+define data/agg/t myagg3 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_3.nc,tmp/tagg_irreg_2.nc
+set mode/last ignore
+canc data/all
+
+! --- aggregation from T0-varying files ---
+! aggregate two
+  define data/agg/t myagg2 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc
+
+! aggregate several
+define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/tagg_T0varying_3.nc, tmp/tagg_T0varying_4.nc,tmp/tagg_T0varying_5.nc
+  show data/full
+  show data myagg2
+  show grid/t myvar[d=1]
+  show grid myvar[d=2]
+  plot/line/sym myvar[d=2],myvar[d=1] 
+
+canc data/all
+
+! --- aggregations of disjoint, irregularly-sized, T0-varying files ---
+! aggregate two
+  define data/agg/t myagg2 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc
+
+
+! aggregate several
+define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4.nc,tmp/tagg_disjoint_T0varying_5.nc, tmp/tagg_disjoint_T0varying_6.nc,tmp/tagg_disjoint_T0varying_7.nc, tmp/tagg_disjoint_T0varying_8.nc
+  show data/full
+  show data myagg2
+  show grid/t myvar[d=1]
+  show grid myvar[d=2]
+  plot/line/sym/vlim=0:11 myvar[d=2],myvar[d=1] 
+
+! a few tests of using Ferret string variables to get the names of files
+define data/agg/t listAgg1 = {"tmp/tagg_reg_1.nc", "tmp/tagg_reg_2.nc"}
+show data/files listAgg1
+
+! define a long aggregation
+let file_list = SPAWN("ls -1 tmp/tagg_reg_?.nc") 
+define data/agg/t listAgg2 = file_list
+show data/files listAgg2
+
+! reorder deliberately out of order file of differing lengths
+define data/agg/t myagg8_disordered3 = tmp/tagg_disjoint_T0varying_2.nc, tmp/tagg_disjoint_T0varying_1.nc,tmp/tagg_disjoint_T0varying_5.nc, tmp/tagg_disjoint_T0varying_4.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_8.nc,tmp/tagg_disjoint_T0varying_7.nc, tmp/tagg_disjoint_T0varying_6.nc
+show data/files/brief myagg8_disordered3
+! ... the same calendar axis, but encoded with the T0 of the first file
+show grid/l=1:8 myvar[d=myagg8]
+show grid/l=1:8 myvar[d=myagg8_disordered3]
+
+cancel data/all
+
+! deliberate errors
+set mode ignore
+! deliberate error - try to re-use a name already in use
+  define data/agg/t myagg2 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc
+
+! deliberate error - the fourth file (*_4_wrong.nc) changes time axis name
+define data/agg/t myagg5_bad = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4_wrong.nc,tmp/tagg_disjoint_T0varying_5.nc
+set mode/last ignore
+
+canc data/all
+
+! --- aggregations of single timestep files ---
+! define a regular aggregation
+define data/agg/t MYsing_reg_agg6 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_3.nc, tmp/tagg_single_4.nc,tmp/tagg_single_5.nc, tmp/tagg_single_6.nc
+show data/full  MYsing_reg_agg6
+show grid/t myvar
+
+! read a time-independent field from the first file of the aggregation
+stat mymap
+
+! define an irregular aggregation
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+show data/full MYsing_irreg_agg4
+show grid/t myvar
+
+! 2/2016 - reorder deliberately out of order aggregation of irregular times
+define data/agg/t MYsing_irreg_agg4_disordered1 = tmp/tagg_single_2.nc, tmp/tagg_single_1.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+define data/agg/t MYsing_irreg_agg4_disordered2 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_5.nc, tmp/tagg_single_4.nc
+show data/files/brief
+stat/brief T[g=myvar[d=MYsing_irreg_agg4]] - T[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+stat/brief TBOXLO[g=myvar[d=MYsing_irreg_agg4]] - TBOXLO[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+stat/brief TBOXHI[g=myvar[d=MYsing_irreg_agg4]] - TBOXHI[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+canc data/all
+
+! OPeNDAP test
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
+   tseries COADS = http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
+show data COADS
+show grid/T air
+canc data/all
+ELSE
+   say OPenDAP data not available for testing.. Tests skipped ...
+ENDIF
+
+! "USE file.agg" test
+! test the hack to XEQ_SET which permits "SET DATA file.agg" to metamorphose
+! into "GO file.agg"
+spawn echo "define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc,tmp/tagg_reg_3.nc" > tmp/good_agg.agg
+spawn echo "garbage command syntax" > tmp/bad_agg.agg
+
+! deliberate errorrs
+! bad .agg aggregation file
+set mode ignore
+USE "tmp/bad_agg.agg"
+
+! irregular aggregation with first file duplicated
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+
+! irregular aggregation with last file duplicated
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc, tmp/tagg_single_5.nc
+
+set/last mode ignore
+
+! valid syntax to initialize an aggregation
+USE "tmp/good_agg.agg"
+show data/br
+cancel data/all
diff --git a/bench/bn_aggregate_tef.jnl b/bench/bn_aggregate_tef.jnl
new file mode 100644
index 0000000..ec163d3
--- /dev/null
+++ b/bench/bn_aggregate_tef.jnl
@@ -0,0 +1,256 @@
+! bn_aggregate_tef.F
+! 2/2016 *sh*
+! 3/2016 - modified to test single point axis aggregations on Z axis
+
+! to avoid re-creating the test files include argument "0" as in
+!  yes?  GO bn_aggregate_tef 0
+
+
+! exercise 6D aggregations: T, E, and F simultaneously
+
+! do not bother to echo the creation of files and the definitions of the
+! many time aggregations
+CANCEL MODE VERIFY
+
+if ($1"1") then
+
+! *** create an artificial file collection ***
+spawn "mkdir -p tmp"     ! tmp directory to store files
+
+! a 20x20 lat-long region
+define axis/x=140e:160e:1 xax
+define axis/y=10n:20n:1 yax
+define axis/Z=0:500:500/EDGES/units=m zax   ! a single point axis
+
+! a 20 year monthly axis starting in Jan 1950
+LET start_year = 1950
+LET nyears = 20
+LET indices = L[L=1:`nyears*12`]
+LET month = MOD(indices-1,12)+1
+LET year = start_year + INT((indices-1)/12)
+DEFINE AXIS/UNITS=days/T0=1-jan-1900/EDGES truemonth = DAYS1900(year,month,1)
+
+! define a moving field with errors increasing from a given forecast date
+let vy = 1/500      ! speed that forecast structure deviates from truth
+!let vx = 1/300
+let vx = (1+(T[gt=truemonth]-tstart)/2000)* 1/300
+let xt = x[gx=xax]-vx*T[gt=truemonth]
+let yt = y[gy=yax]-vy*T[gt=truemonth]
+let field = COS((xt-150)/5)*COS((yt-30)/5) + Z[gz=zax]
+let fcst = ensemble_variation * (field + fcst_error)
+define attribute fcst.im_everywhere = "so promote me"
+set variable/title="some variable" fcst
+let static_error = SIN((x[gx=xax]-140)/5)*SIN((y[gy=yax]-20)/5) + RANDU(x[gx=xax]+y[gy=yax])
+let structure_drift = (t[gt=truemonth]-tstart)/5000 * static_error
+let random_error = (t[gt=truemonth]-tstart)/2000 * RANDU(t[gt=truemonth]+x[gx=xax]+y[gy=yax])
+let fcst_error = structure_drift + random_error
+let/title="another variable" fcst_2 = fcst + 2
+
+! every 3 months another 3-year 5-ensemble forecast, saved as 3 1-year files
+! the average of the ensembles is equal to the middel ensemble member (3)
+repeat/name=fdate/range=1:31:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:5:1 (\
+    let ensemble_variation = 1 + (ens-3)/20;\  
+    let realization = `ens`;\
+    save/clobber/file="tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_t1.nc"/l=`fdate`:`fdate+11` fcst,  fcst_2, realization;\
+    save/clobber/file="tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_t2.nc"/l=`fdate+12`:`fdate+23` fcst,  fcst_2, realization;\
+    save/clobber/file="tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_t3.nc"/l=`fdate+24`:`fdate+35` fcst,  fcst_2, realization))
+
+! the middle ensemble time series of the 4th forecast, but lacking fcst_2
+define attribute fcst.im_not_everywhere = "so don't promote me"
+repeat/name=fdate/range=10:10:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=3:3:1 (\
+    let ensemble_variation = 1 + (ens-3)/20;\  
+    let realization = `ens`;\
+    save/clobber/file="tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_t1_1v.nc"/l=`fdate`:`fdate+11` fcst, realization;\
+    save/clobber/file="tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_t2_1v.nc"/l=`fdate+12`:`fdate+23` fcst, realization;\
+    save/clobber/file="tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_t3_1v.nc"/l=`fdate+24`:`fdate+35` fcst, realization))
+
+
+cancel variables/all
+
+endif
+
+! ***** end of TEF file creation ****************
+
+! define T aggregations -- lots of em
+repeat/name=fdate/range=1:31:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:5:1 (\
+    let realization = `ens`;\
+    TSERIES  t_f`(fdate-1)/3+1,zw=2`_e`ens` = SPAWN("ls -1 tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_t?.nc")  ))
+
+! plus 1 T-aggregation lacking fcst_2
+repeat/name=fdate/range=10:10:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=3:3:1 (\
+    let realization = `ens`;\
+    TSERIES  t_f`(fdate-1)/3+1,zw=2`_e`ens`_1v = SPAWN("ls -1 tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_t*_1v.nc")  ))
+cancel variable realization
+
+SET MODE VERIFY
+
+show data/files/br
+
+! should share the same time axis
+show grid fcst[d=t_f01_e1]
+show grid fcst[d=t_f01_e2]
+
+! ======== TEST SET 1:  aggregate E first, then F
+
+! define te aggregations -- only the first 5 remain unhidden
+ENSEMBLE      te_f01 = t_f01_e1, t_f01_e2, t_f01_e3, t_f01_e4, t_f01_e5
+ENSEMBLE/hide te_f02 = t_f02_e1, t_f02_e2, t_f02_e3, t_f02_e4, t_f02_e5
+ENSEMBLE/hide te_f03 = t_f03_e1, t_f03_e2, t_f03_e3, t_f03_e4, t_f03_e5
+ENSEMBLE/hide te_f04 = t_f04_e1, t_f04_e2, t_f04_e3, t_f04_e4, t_f04_e5
+ENSEMBLE/hide te_f05 = t_f05_e1, t_f05_e2, t_f05_e3, t_f05_e4, t_f05_e5
+ENSEMBLE/hide te_f06 = t_f06_e1, t_f06_e2, t_f06_e3, t_f06_e4, t_f06_e5
+ENSEMBLE/hide te_f07 = t_f07_e1, t_f07_e2, t_f07_e3, t_f07_e4, t_f07_e5
+ENSEMBLE/hide te_f08 = t_f08_e1, t_f08_e2, t_f08_e3, t_f08_e4, t_f08_e5
+ENSEMBLE/hide te_f09 = t_f09_e1, t_f09_e2, t_f09_e3, t_f09_e4, t_f09_e5
+ENSEMBLE/hide te_f10 = t_f10_e1, t_f10_e2, t_f10_e3, t_f10_e4, t_f10_e5
+ENSEMBLE/hide te_f11 = t_f11_e1, t_f11_e2, t_f11_e3, t_f11_e4, t_f11_e5
+SHOW DATA/brief
+SHOW DATA/FULL te_f11
+SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
+
+! define tef aggregation
+FMRC/HIDE tef = te_f01, te_f02, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+SHOW DATA/brief/files
+show data/full tef
+
+! simplest acess -- compact form -- just demonstrate it doesn't fail
+stat/brief fcst[i=11:12, j=5:6, l=31:32, m=1:2, n=5:6]
+
+! diagonal forecast view of ensemble mean
+let diag_fcst = fcst[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:5 at ave]
+
+! difference between the mean and the middle is zero within computational error
+let epsilon = 1 / 2^50   ! 52 mantissa bits in a double
+say using epsilon = `epsilon`
+let rel_err = (diag_fcst[m=1:5 at ave]-diag_fcst[m=3])/diag_fcst[m=3]
+stat/brief/x=150E/y=15n IF ABS(rel_err) LT epsilon THEN 0.0 ELSE rel_err
+
+! warning message indicates fcst_2 is missing from a file
+ENSEMBLE te_f04_1v = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+SHOW DATA/ATT t_f04_e3_1v ! note atts im_everwhere vs im_not_everwhere
+SHOW DATA/ATT te_f04_1v  ! note atts im_everwhere vs im_not_everwhere
+
+! define fcst_2 as a LET/D variable and then do same calc
+let/d=t_f04_e3_1v fcst_2 = fcst + 2
+show data/br t_f04_e3_1v
+ENSEMBLE te_f04_letd = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+FMRC/hide tef_letd = te_f01, te_f02, te_f03, te_f04_letd, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+let diag_fcst_2 = fcst_2[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+let rel_err_2 = (diag_fcst_2[m=1:5 at ave]-diag_fcst_2[m=3])/diag_fcst_2[m=3]
+
+! can run in diagnostic mode and look for "eval FCST_2" to confirm LET/D eval
+set data tef_letd
+stat/brief/x=150E/y=15n diag_fcst_2
+stat/brief/x=150E/y=15n IF ABS(rel_err_2) LT epsilon THEN 0.0 ELSE rel_err_2
+
+! demonstrate redefining the LET/D variable without re-defining the agg
+! Look at the column 3 ("e3"), row 4 ("f04") to see  2.110 => 4.110
+list/x=150E/y=15n/L=10 fcst_2
+let/d=t_f04_e3_1v fcst_2 = fcst + 2 + 2   ! add 2 
+list/x=150E/y=15n/L=10 fcst_2
+
+! agg members may have unique contexts on scalar axes of the aggregation
+! ... here the LET/D var is normal to Z
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+T[gt=fcst] + 1000
+list/x=150E/y=15n/L=10 fcst_2
+
+! ... here the LET/D var is averaged to a point in a pre-existing agg
+LET some_Z_function = Z[Z=0:100:10] + 1000
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+T[gt=fcst]+some_Z_function[Z=10:60 at ave]
+list/x=150E/y=15n/L=10 fcst_2
+
+! same as preceding, but the LET/D is included in the agg as defined
+ENSEMBLE te_f04_letd_new = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+FMRC/hide tef_letd_new = te_f01, te_f02, te_f03, te_f04_letd, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+list/x=150E/y=15n/L=10 fcst_2
+
+! deliberate errors:
+SET MODE IGNORE
+set data tef_letd
+! a new LET/D definition that alters the grid of the result is not acceptable
+let/d=t_f04_e3_1v fcst_2 = X[x=1:5]+Y[gy=fcst]+Z[gz=fcst]+T[gt=fcst] ! X ax chg
+list/x=150E/y=15n/L=10 fcst_2
+
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+Z[gz=fcst]+T[T=1:36:1] ! T chg
+list/x=150E/y=15n/L=10 fcst_2
+
+! LET definition may not compress an axis of N>1
+let/d=t_f04_e3_1v fcst_2 = fcst[i=1:5 at ave]
+list/x=150E/y=15n/L=10 fcst_2
+SET MODE/LAST IGNORE
+
+! now restore the original definition and verify it again works
+let/d=t_f04_e3_1v fcst_2 = fcst + 2
+list/x=150E/y=15n/L=10 fcst_2
+
+! ======== TEST SET 2:  aggregate F first, then E
+FMRC      tf_e1 = t_f01_e1, t_f02_e1, t_f03_e1, t_f04_e1, t_f05_e1, t_f06_e1, t_f07_e1, t_f08_e1, t_f09_e1, t_f10_e1, t_f11_e1
+FMRC/hide tf_e2 = t_f01_e2, t_f02_e2, t_f03_e2, t_f04_e2, t_f05_e2, t_f06_e2, t_f07_e2, t_f08_e2, t_f09_e2, t_f10_e2, t_f11_e2
+FMRC/hide tf_e3 = t_f01_e3, t_f02_e3, t_f03_e3, t_f04_e3, t_f05_e3, t_f06_e3, t_f07_e3, t_f08_e3, t_f09_e3, t_f10_e3, t_f11_e3
+FMRC/hide tf_e4 = t_f01_e4, t_f02_e4, t_f03_e4, t_f04_e4, t_f05_e4, t_f06_e4, t_f07_e4, t_f08_e4, t_f09_e4, t_f10_e4, t_f11_e4
+FMRC/hide tf_e5 = t_f01_e5, t_f02_e5, t_f03_e5, t_f04_e5, t_f05_e5, t_f06_e5, t_f07_e5, t_f08_e5, t_f09_e5, t_f10_e5, t_f11_e5
+
+! aggregate these F-aggs onto an E axis
+ENSEMBLE/HIDE tfe = tf_e1, tf_e2, tf_e3, tf_e4, tf_e5
+
+! F-aggregate inherits the TF-auxiliary variable pointers from the members
+SHOW DATA/ATTRIB tfe   ! also notice the promotion of fcst.im_everywhere
+
+! the 2-D coordinate variable (TF_TIMES) should be 2D, only, in T and F 
+SHOW DATA tfe 
+
+! confirm that the TF_TIMES variable is accessible in a T-F-E aggregation
+LIST/NOHEAD/L=18:19/N=5:6 tf_times   ! subset access
+STAT/BRIEF tf_times
+
+! confirm that the T-F-E agg and the T-E-F agg get the same results
+! exactlyidentically zero STAT output means correct functioning
+let tfe_tef_ave_diff = (diag_fcst[d=tfe,m=1:5 at ave]-diag_fcst[d=tef,m=1:5 at ave])
+stat/brief/x=150E/y=15n tfe_tef_ave_diff
+let tfe_tef_diff = (diag_fcst[d=tfe]-diag_fcst[d=tef])
+stat/brief/x=150E/y=15n tfe_tef_diff[m=1:5 at ave]
+
+! missing forecast (t_f02_e2) in a T-F-E aggregation
+FMRC tf_e2_gap = t_f01_e2, -, t_f03_e2, t_f04_e2, t_f05_e2, t_f06_e2, t_f07_e2, t_f08_e2, t_f09_e2, t_f10_e2, t_f11_e2
+ENSEMBLE tfe_gap = tf_e1, tf_e2_gap, tf_e3, tf_e4, tf_e5
+LIST/l=10/i=10/j=10/k=1 fcst[d=tfe_gap]
+
+! missing ensemble member (t_f02_e2)in a T-E-F agregation
+ENSEMBLE te_f02_gap = t_f02_e1, -, t_f02_e3, t_f02_e4, t_f02_e5
+FMRC tef_gap = te_f01, te_f02_gap, te_f03, te_f04
+LIST/l=10/i=10/j=10/k=1 fcst[d=tef_gap]
+
+! deliberate errors
+set mode ignore
+! unequal ensemble axis lengths
+ENSEMBLE te_f02_short = t_f02_e1, t_f02_e2, t_f02_e3, t_f02_e4   ! shorter than others
+FMRC tef_short = te_f01, te_f02_short, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+
+! unequal forecast axis lengths
+FMRC tf_e2_short = t_f01_e2, t_f02_e2, t_f03_e2, t_f04_e2  ! shorter than others
+ENSEMBLE tfe_short = tf_e1, tf_e2_short, tf_e3, tf_e4, tf_e5
+
+! ensemble created with already-ensemble components
+ENSEMBLE te_f01 = t_f01_e1, t_f01_e2, t_f01_e3, t_f01_e4, t_f01_e5
+ENSEMBLE te_f03 = t_f03_e1, t_f03_e2, t_f03_e3, t_f03_e4, t_f03_e5
+ENSEMBLE te_f04 = t_f04_e1, t_f04_e2, t_f04_e3, t_f04_e4, t_f04_e5
+ENSEMBLE bad_ens = te_f01, te_f03, te_f04
+
+! fmrc created with already-fmrc components
+FMRC tf_e1 = t_f01_e1, t_f02_e1, t_f03_e1, t_f04_e1
+FMRC tf_e3 = t_f01_e3, t_f02_e3, t_f03_e3, t_f04_e3
+FMRC tf_e4 = t_f01_e4, t_f02_e4, t_f03_e4, t_f04_e4
+FMRC bad_fmrc = tf_e1, tf_e3, tf_e4
+
+set mode/last ignore
+
+CANCEL DATA/ALL
diff --git a/bench/bn_all.jnl b/bench/bn_all.jnl
index fb83d0e..bd3ac29 100644
--- a/bench/bn_all.jnl
+++ b/bench/bn_all.jnl
@@ -101,9 +101,19 @@ SET MODE VERIFY
 !             on a system in order for it to pass the benchmarks.
 !
 ! 11/06 *acm* New bn602_bug_fixes for version 6.02
-* V610  *acm* 3/08 - add new MODE NLEVELS
-* V685  *sh* 11/13 - added bn_vtree to test SHOW VAR/TREE
-* V698+ *sh* 06/15 - added bn_auxiliary
+! V610  *acm* 3/08 - add new MODE NLEVELS
+! V685  *sh* 11/13 - added bn_vtree to test SHOW VAR/TREE
+! V698+ *sh* 06/15 - added bn_auxiliary
+! V698+ *sh* 11/15 - added bn_aggregate_t and bn_unquoted_args.jnl
+! V698+ *sh* 1/16 - added bn_aggregate_f
+!            2/16 - added bn_aggregate_tef
+! V698+ *acm*2/16 - add bn_speedtest: simple speed test, parsing. 
+!                   2/16/24 do fewer # repetitions.
+! V698+ *acm*2/16 - add bn_show_noupcase: output of SHOW responds to MODE UPCASE
+! V698+ *acm*2/16 - add bn_letd_attributes: attribute/list handling of LET/D variables
+!       *sh* 3/16 - added bn_plot_along.jnl
+!       *acm*4/16 - added bn_show_commands.jnl
+!       *acm*4/16 - added bn_plot_decimate.jnl
 
 ! Include this statement to compare the outupt of 6D Ferret with 
 ! previous 4D benchmark logs.
@@ -902,6 +912,9 @@ GO bn_stddev
 GO bn_reset
 GO bn_set_axis_name
 
+GO bn_reset
+GO bn_let_remote
+
 ! *********** v6.93 Additions ***********
 GO bn_reset
 GO bn691_bug_fixes
@@ -996,6 +1009,73 @@ GO bn696_bug_fixes
 GO bn_reset
 GO bn_bin_regrid
 
+! *********** v6.97 Additions ***********
+
+GO bn_reset
+GO bn697_bug_fixes
+
+GO bn_reset
+GO bn_aggregate_t
+
+GO bn_reset
+GO bn_unquoted_args
+
+GO bn_reset
+GO bn_long_lists
+
+GO bn_reset
+GO bn_show_uvar_grid
+
+GO bn_reset
+GO bn_aggregate_f
+
+GO bn_reset
+GO bn_aggregate_tef
+
+GO bn_reset
+! Add this to the gif benchmark tests
+! GO bn_hovmuller_overlays
+
+GO bn_reset
+! Add this to the gif benchmark tests
+! GO bn_labels_on_taxis
+
+GO bn_reset
+GO bn_dataset_qualifier
+
+GO bn_reset
+GO bn_speedtest
+
+GO bn_reset
+GO bn_show_noupcase
+
+GO bn_reset
+GO bn_letd_attributes
+
+GO bn_reset
+GO bn_list_clim_axes
+
+GO bn_reset
+GO bn_climatology_attr
+
+GO bn_reset
+GO bn_plot_along
+
+GO bn_reset
+GO bn_show_commands
+
+GO bn_reset
+GO bn_plot_decimate
+
+GO bn_reset
+GO bn_auto_tprec
+
+!GO bn_reset
+!GO bn_warn_subspan
+
+GO bn_reset
+GO bn_coordvars_atts
+
 !  *********** Always do a bn_reset  *********** 
 !  *********** make sure things clean up well **
 GO bn_reset
diff --git a/bench/bn_append_dsg.jnl b/bench/bn_append_dsg.jnl
index 42b7264..d2fa37b 100644
--- a/bench/bn_append_dsg.jnl
+++ b/bench/bn_append_dsg.jnl
@@ -9,14 +9,17 @@
 ! the values in the file are replaced. 
 !
 !  Argument is a file name; the single-cruise dsg file from the data entry
-!  
+! 
 ! We append more variables to the file, using the same obs dimension.
+! 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 
 
 use test_save_dsg.nc
 
+cancel mode upcase
+
 ! Lon in 0-360
 let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
 define attribute/output lon360.ioos_category = "Location"
@@ -28,3 +31,6 @@ save/quiet/append/file=test_save_dsg.nc lon360
 ! The longitude and lon360 variables should have the same lowercase (obs) dimension.
 
 sp ncdump -h test_save_dsg.nc
+
+set mode/last upcase
+
diff --git a/bench/bn_auto_tprec.jnl b/bench/bn_auto_tprec.jnl
new file mode 100644
index 0000000..f4351c7
--- /dev/null
+++ b/bench/bn_auto_tprec.jnl
@@ -0,0 +1,56 @@
+! bn_auto_tprec.jnl
+! See ticket 2405
+! Time labels on plots always just get the precision from MODE CALENDAR
+! Instead, use the same logic as is used for text labels, automatically adjust.
+! (later make this the default setting??)
+
+set mode calendar:auto
+show mode calendar
+
+use levitus_climatology
+let ttim = temp + t[gt=tax]
+
+!  Varies in seconds
+define axis/t/units="seconds"/t0="1-jan-2001" tax = {1,12,13,14,16,17,18,19,24}
+
+list/k=1/x=60/y=-40 ttim
+shade/title="seconds"/l=9/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+
+!  Varies in minutes, fractions of minutes
+define axis/t/units="minutes"/t0="1-jan-2001" tax = {1,1.1,12,13,14,16,17,18.5,19,24}
+list/k=1/x=60/y=-40 ttim
+shade/title="minutes/fractions of minutes"/l=9/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+
+! varies in hours, fractions of hours
+define axis/t/units="hour"/t0="1-jan-2001" tax = {1,1.1,12.1,12.2,14,16,17,18.5,19,24}
+list/k=1/x=60/y=-40 ttim
+shade/title="hours/fractions of hours"/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+
+! 6-hour even spacing
+define axis/t=1-jan-2001:8-jan-2001:6/units="hour"/t0="1-jan-2001" tax 
+list/k=1/x=60/y=-40/L=1:6 ttim
+shade/title="hours "/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+
+! Reynolds SST weekly, even 7-day spacing
+use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
+list/x=180/y=0/l=20:25 fsst
+shade/title="7-day axis"/l=30/x=60:70/y=-40:-30 fsst; sh sym  lab($labnum_t)
+
+! monthly climatology
+use TAO_SST_clim
+list/x=180/y=0 sst_clim
+shade/title="monthly climatology"/k=1/l=5 sst_clim; sh sym  lab($labnum_t)
+
+! truemonth
+use truemonth
+list/x=180/y=0/l=20:25 var
+
+let ttim = temp[d=levitus_climatology] + var 
+shade/title="true-month axis"/L=32/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+
+set mode/last calendar
+
+! Is the default precision of minutes restored?
+use truemonth
+let ttim = temp[d=levitus_climatology] + var 
+shade/title="true-month axis"/L=32/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
diff --git a/bench/bn_climatology_attr.jnl b/bench/bn_climatology_attr.jnl
new file mode 100644
index 0000000..4087aad
--- /dev/null
+++ b/bench/bn_climatology_attr.jnl
@@ -0,0 +1,58 @@
+! bn_climatology_attr.jnl
+! *acm* 3/16  See ticket 2278
+!
+! Add an attribute climatology_time_range when writing a computed
+! climatology, listing the month/year of the start and end of the 
+! data used in computing it.
+
+! Define a monthly axis
+def ax/t=1-feb-1980:1-feb-2003/np=276/unit="day"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
+
+! entire input time range used
+let clim1 = tvar[gt=month_irreg at mod]
+save/file=a.nc/clobber clim1
+
+! a subset of the time range used
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let clim2 = t_subset[gt=month_reg at mod]
+save/append/file=a.nc clim2
+
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow clim1.climatology_time_range, clim2.climatology_time_range
+
+
+! noleap axis
+def ax/edge/t=1-feb-1980:1-feb-2003/np=276/cal=noleap/unit="hour"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_noleap at mod]
+save/file=a.nc/clobber clim1
+
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let clim2 = t_subset[gt=month_noleap at mod]
+save/append/file=a.nc clim2
+
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow clim1.climatology_time_range, clim2.climatology_time_range
+
+
+
+! If the expression compbines data from multiple ranges, indicate that
+
+def ax/t=1-feb-1980:1-feb-2003/np=276/unit="day"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
+let a = tvar[gt=month_reg at mod]
+
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let b = t_subset[gt=month_reg at mod]
+let c = a+b
+
+save/append/file=a.nc c
+
+can dat/all; use a.nc
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow c.climatology_time_range
+
diff --git a/bench/bn_contourcolor.jnl b/bench/bn_contourcolor.jnl
new file mode 100644
index 0000000..a8e642c
--- /dev/null
+++ b/bench/bn_contourcolor.jnl
@@ -0,0 +1,8 @@
+set text /font=hershey
+contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=blue/title="CONTOUR HERSHEY BLUE"  10*sin(i/3)*cos(j/4)
+frame /file=contourcolor_blue.pdf
+set text /font=tahoma
+contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=green/title="CONTOUR TAHOMA GREEN"  10*sin(i/3)*cos(j/4)
+frame /file=contourcolor_green.pdf
+contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=(60,20,30)/title="CONTOUR TAHOMA (60,20,30)"  10*sin(i/3)*cos(j/4)
+frame /file=contourcolor_puce.pdf
diff --git a/bench/bn_coordvars_atts.jnl b/bench/bn_coordvars_atts.jnl
new file mode 100644
index 0000000..7c4fccb
--- /dev/null
+++ b/bench/bn_coordvars_atts.jnl
@@ -0,0 +1,31 @@
+! bn_coordvars_atts.jnl
+! 5/2016 *acm*  see ticket 2413
+! Additional attribute keywords for returning  coordinate variable 
+! names and number of coordinate vars, to distinguish coordinate
+! info from dimension info.
+
+! File has dimensions which are not coordinate variables, for
+! the dimensions of the 2D coordinate variables.
+use dims_not_coord.nc
+list/nohead ..ndims
+list/nohead ..dimnames
+list/nohead ..ncoordvars
+list/nohead ..coordnames
+let cname = ..coordnames
+sh axis `cname[i=1]`
+
+! The depth axis has coordinate bounds; the length-2 bnds 
+! dimension is not a coordinate variable
+use levitus_3d_subset.nc
+list/nohead ..ndims
+list/nohead ..dimnames
+list/nohead ..ncoordvars
+list/nohead ..coordnames
+
+! String variables in netcdf files have string-length 
+! dimensions which are not coordinate variables.
+use numstring.nc
+list/nohead ..ndims
+list/nohead ..dimnames
+list/nohead ..ncoordvars
+list/nohead ..coordnames
diff --git a/bench/bn_dataset_qualifier.jnl b/bench/bn_dataset_qualifier.jnl
new file mode 100644
index 0000000..06345cf
--- /dev/null
+++ b/bench/bn_dataset_qualifier.jnl
@@ -0,0 +1,96 @@
+! bn_dataset_qualifier
+! see ticket 2632
+! Test change from /D= to /DATASET= qualifier for LIST, PLOT, LOAD, etc
+! Various commands taken from other scripts.
+
+! LIST/DAT=
+use gt4d011
+use coads_climatology
+
+let nv = ..nvars
+let nd = ..ndims
+let vnames = ..varnames
+list/DAT=1 nv, nd 
+list/DAT=1 vnames
+
+list/DAT=coads_climatology nv,nd
+list/DAT=gt4d011 nv,nd
+
+! SET ATT/OUTPUT/DAT=
+! DEFINE ATT/OUTPUT/DAT=
+! CANCEL ATT/OUTPUT/DAT=
+can data/all
+use err491_attval
+use gt4d011
+set att/output/DATA=1 ..dt_internal
+define attribute/output/DATA=1 elev.newatt = 7
+save/clobber/file=a.nc/outtype=float elev[d=1]
+use a.nc
+sh att .
+sh att elev
+can data a
+cancel attribute/output/DATASET=1  ..dt_internal
+cancel attribute/output/DATASET=1  elev.newatt
+save/clobber/file=a.nc/outtype=float elev[d=1]
+use a.nc
+sh att .
+sh att elev
+
+! LOAD/DAT=
+use coads_climatology
+use levitus_climatology
+
+load/DAT=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
+show grid
+
+! LIST/DAT=, LET/DAT=, 
+can dat/all
+use err491_attval
+use coads_climatology
+use levitus_climatology
+use ocean_atlas_temp
+use gt4d011
+
+let a = temp.units
+list/DAT=3 a
+list/DAT=3 temp.history
+
+! PLOT, SHADE, FILL, CONTOUR, VECTOR, STAT
+! various plot and other action commands with /DATA
+
+let/DAT=2 temp = sst + 0*z[z=1:5:1]
+sh dat 2
+plot/DATASET=2 sst[L=1,y=0,x=300:360]
+fill/DAT=2 sst[L=1,x=30:150,y=-60:0]
+contour/over/DATA=3 temp[Z=0]
+shade/DATA=2 sst[x=180,y=-10:10]
+vec/DAT=gt4d011/l=3 taux,tauy
+
+! STAT, LIST
+stat/DATASET=1 elev
+shade/DAT=1 elev
+list/DAT=1/x=-135.3/y=58.8 elev
+
+! POLYGON/DAT
+define axis/x=330:350:1/units=degrees_east xax10
+define axis/y=-10:10:1/units=degrees_north yax10
+
+let fsst = sst[l=3,gx=xax10,gy=yax10]
+let lon = xsequence(x[gx=xax10] + 0*y[gy=yax10])
+let lat = xsequence(0*x[gx=xax10] + y[gy=yax10])
+shade/pal=white/nokey/nolab/DATA=2 sst[l=1,x=300:310,y=-10:10]   ! Set up plot params for polymark.jnl
+go polymark poly/DATA=2/key/title="Polygon test", lon, lat, xsequence(fsst), square, 1.2
+
+! Commands that have another qualifier also starting with /D
+! LIST/DATASET= with /DEFLATE 
+cancel data/all
+use levitus_climatology
+use gt4d011
+use coads_climatology
+list/form=cdf/ncformat=4/DEFLATE/file=a.nc/clobber/DATA=1 temp
+ 
+! PLOT/DASH with /DATA=
+plot/dash/x=180/z=0/DATASET=1 temp
+
+! VECTOR/FLOW/DATA=/DENSITY 
+flow/DAT=2/den=3/L=3 taux,tauy
diff --git a/bench/bn_deg_min.jnl b/bench/bn_deg_min.jnl
index 1cd752c..e6a025d 100644
--- a/bench/bn_deg_min.jnl
+++ b/bench/bn_deg_min.jnl
@@ -2,6 +2,8 @@
 ! label axes with degrees and minutes rather than degrees and decimal degrees.
 ! 19-May-06 add seconds as well...
 
+
+
 use ss_small.nc
 
 shade/set/x=222.9:223.1/y=58.22:59.1 rose
@@ -31,3 +33,17 @@ ppl plot
 
 ! Restore the default settings
 ppl axlint,2,2
+
+! Now do the same using command qualifiers /DEGMINSEC= /HALFSPAC  (ticket 2434)
+!  /DEGMINSEC=1 for Deg-Min, =2 for Deg-Min-Sec. Default = 1
+!  /HALFSPAC adds a half space between the degree sign and E/W or N/S
+
+use ss_small
+shade/x=222.9:223.1/y=58.22:59.1/DEGMIN rose
+fill/x=222.9:223.1/y=58.22:59.1/DEGMIN=2 rose
+plot/vs/DEGMIN=2 xpts, ypts
+
+fill/x=222.9:223.1/y=58.22:59.1/HALFSP rose
+plot/x=223./DEGMIN/HALFSP rose
+plot/y=58.52/DEGMIN=2/HALFSP rose
+plot/vs/HALFSP  xpts, ypts
\ No newline at end of file
diff --git a/bench/bn_dynamic_grids.jnl b/bench/bn_dynamic_grids.jnl
index 65b6596..5228bc3 100644
--- a/bench/bn_dynamic_grids.jnl
+++ b/bench/bn_dynamic_grids.jnl
@@ -11,6 +11,8 @@
 !			      numericals results found here are verified to be correct
 ! V550 11/02 *sh* - documentation change only reflecting new modulo behavior
 ! V603  5/07 *acm*  documentation changew - some of the context errors have gone away.
+! V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables, 
+! pre-defined axes and grids.
 
 ! deliberate dynamic grid errors
 
@@ -140,8 +142,8 @@ show grid/dynamic
 
 ! regridding between grids with mutually exclusive axes
 cancel region
-define grid/y=ps3dt gy
-define grid/x=ps3dt gx
+define grid/y=`temp,return=grid` gy
+define grid/x=`temp,return=grid` gx
 LET/QUIET a = x[g=gx]
 list/i=1:4 a,a[g=gy]   ! nothing to regrid - both are same
 
diff --git a/bench/bn_floatstr_extended.jnl b/bench/bn_floatstr_extended.jnl
index 8195471..e79a774 100644
--- a/bench/bn_floatstr_extended.jnl
+++ b/bench/bn_floatstr_extended.jnl
@@ -58,3 +58,12 @@ 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]
+
+! Now test (F0.0) and (I0) formats which return the
+! shortest possible value without the fractional part.
+! Per marco.van-hulten at lsce.ipsl.fr - this is legal in 
+! gfortran, so allow it.
+
+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]
diff --git a/bench/bn_fmrc.jnl b/bench/bn_fmrc.jnl
index e69a476..408a6fe 100644
--- a/bench/bn_fmrc.jnl
+++ b/bench/bn_fmrc.jnl
@@ -1,12 +1,14 @@
 ! bn_fmrc.jnl
 ! initial test of DEFINE DATA/F 
 
+! *sh* 11/15 MUCH MORE DETAILED BENCHMARK NEEDED!
+
 use "run1.nc"
 use "run2.nc"
 use "run3.nc"
 use "run4.nc"
 
-define data/hide/F/agg/title fourfiles = 1,2,3,4
+define data/hide/F/agg fourfiles = 1,2,3,4
 
 sh grid sst
 list/i=1/j=1/L=1:6/n=1:4 sst
@@ -14,5 +16,5 @@ list/i=1/j=1/L=1:6/n=1:4 sst
 show att sst
 
 ! Attribute _ftime2dRef pointe to the 2D time variable 
-list/L=1:6/n=1:4 `sst._ftime2dRef`
+list/L=1:6/n=1:4 `sst._ftime2d`
 
diff --git a/bench/bn_gif.jnl b/bench/bn_gif.jnl
index a41524b..b98e58e 100644
--- a/bench/bn_gif.jnl
+++ b/bench/bn_gif.jnl
@@ -3,6 +3,9 @@
 ! frame/file=bnplot.gif....will create three gif files
 ! *kob*
 
+
+can mode logo
+
 ! define a 6 viewport window (modified definitions 11/92)
 def view/xlim=0,.333/ylim=0,.5    ll6
 def view/xlim=0,.333/ylim=.5,1    ul6
@@ -40,7 +43,9 @@ set mode/last ignore
 ppl list plot
 
 ! enlarge it to accomodate an additional 50% width
-ppl size 15.3,8.8
+! ppl size 15.3,8.8
+! in PyFerret must use SET WINDOW
+set win /xinch=15.3 /yinch=8.8
 
 ! turn on metafile (enabled 10/29/91)
 ! commented out 9/97 - instead set in bn450_all.jnl
@@ -72,7 +77,7 @@ plot/l=1:99000/nolabel sin(200000/(l+10000))
 
 ! reset to normal axis lengths and prepare for a new piccie
 !ppl axlen 8
-frame/file=bnplot.gif
+frame/file=bnplot_1.gif
 set wind/clear
 
 ! draw six frames
@@ -100,7 +105,7 @@ set view um6
 shade/i=1:50/j=1:50/nolabel i/(j+20)
 contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
 vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
-frame/file=bnplot.gif
+frame/file=bnplot_2.gif
 ! additions for version 3.01 "/TITLE=" controls
 cancel viewports
 set view ul6
@@ -126,7 +131,7 @@ wire/view=0,0,2/i=1:20/j=1:20/title="My Egg Carton"/nolabel sin(i/3)*cos(j/4)
 set view ll6
 plot/vs/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
 plot/vs/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-frame/file=bnplot.gif
+frame/file=bnplot_3.gif
 
 ! Prior to v5.8 could not get the window size in pixels when in gif mode
 show symbol ppl$xpixel
@@ -159,6 +164,22 @@ set v ll; plot/dash x[gx=0:20:.05]
 set v lr; plot/dash x[gx=0:20:.01]
 frame/file=gif_dashbug.gif
 
+! Restore size
+set win/siz=1/asp=1
+
+! New benchmark gif outputs in v6.97
+go bn_reset
+GO bn_hovmuller_overlays
+
+Go bn_reset
+GO bn_labels_on_taxis
+
+GO bn_reset
+GO err696_contour_conset
+
+GO bn_reset
+GO err696_subspan_mod_strides
+
 exit/command
 
 
diff --git a/bench/bn_global_atts.jnl b/bench/bn_global_atts.jnl
index df25c5a..e5c9d70 100644
--- a/bench/bn_global_atts.jnl
+++ b/bench/bn_global_atts.jnl
@@ -1,7 +1,7 @@
- ! NOAA/PMEL TMAP
- ! FERRET v6.91 (beta)
- ! Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 04/07/14
- !  7-Apr-14 16:41     
+! bn_global_atts
+! NOTE With the fix for ticket 2241, we need to add CANCEL MODE UPCASE.
+
+cancel mode upcase
 
 sp cp global.nc  global_copy.nc
 use global_copy.nc
@@ -26,4 +26,5 @@ can dat/all; use anew_global.nc
 sh att .
 
 
+set mode/last upcase
 
diff --git a/bench/bn_hovmuller_overlays.jnl b/bench/bn_hovmuller_overlays.jnl
new file mode 100644
index 0000000..30827e9
--- /dev/null
+++ b/bench/bn_hovmuller_overlays.jnl
@@ -0,0 +1,77 @@
+! bn_hovmuller_overlays.jnl
+! Previously a time series plot overlaid oon a Hovmuller plot did not 
+! work unless the time axis of the original data had units of hours.
+! See ticket 2344
+
+! 1/6/2016 ACM
+
+! run this in the gif benchmarks.
+
+
+def view/xlim=0,.333/ylim=.5,1    ul6
+def view/xlim=.333,.666/ylim=.5,1 um6
+def view/xlim=.666,1/ylim=.5,1    ur6
+def view/xlim=0,.333/ylim=0,.5    ll6
+def view/xlim=.333,1/ylim=0,.5    lr6
+
+! The example from the FAQ, "Overlaying a time series on a 2D plot"
+set view ul6
+
+! Define a 2D field in YT with a time axis in units of DAYS
+DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":5/UNITS=DAYS tdays
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+
+LET/TITLE=XY my_var = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+
+! make a Hovmoller plot
+
+SHADE my_var
+
+! This did not work previously.  Needed to re-define the axis in units of hours
+PLOT/OVER my_var[Y=@loc:-4]
+
+
+! XT variable
+set view um6
+
+DEFINE AXIS/X=0:40E:1/UNITS=DEGREES xax
+LET/TITLE="XT" my_var = 10*cos(T[gt=tdays]/20)*EXP((-1)*x[gx=xax]/20)
+SHADE/t=1-jan-1987:1-jan-1989 my_var
+PLOT/OVER/TRANS/THICK my_var[x=@loc:-4]
+
+
+! Irregular time axis
+set view ur6
+
+DEFINE AXIS/T0=1-jan-2001/UNITS=DAYS tdays = {1,2,4,5,6,8,9,10,12,30,35,41,42,44,45,46,48,49,50,58}
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+LET my_var = 10*cos(T[gt=tdays])*EXP((-1)*y[gy=yax]/8)
+
+FILL/title="irregular t" my_var
+PLOT/OVER/thick/y=8 my_var+10
+
+
+! Like the dataset example from the FAQ
+set view ll6
+
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
+shade sst
+plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+
+can data/all
+can region
+
+! vector plots with a time series
+set view lr6
+
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
+
+vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
+
+let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
+plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
+
+FRAME/FILE=bn_hovmuller_overlays.pdf
+
diff --git a/bench/bn_internal_external_functions.jnl b/bench/bn_internal_external_functions.jnl
index 5947586..01e9113 100644
--- a/bench/bn_internal_external_functions.jnl
+++ b/bench/bn_internal_external_functions.jnl
@@ -86,3 +86,8 @@ let mask = 0*x[gx=sst] + y[gy=sst]  + 1
 shade fill_xy(sst[l=1], mask[l=1], 1)
 shade fill_xy(sst[l=1], mask[l=1], 4)
 
+! Compare SAMPLEXY and SAMPLEIJ 
+GO bn_reset
+GO bn_samplexy_sampleij
+
+
diff --git a/bench/bn_interpolate_6d.jnl b/bench/bn_interpolate_6d.jnl
index b09fe0d..1bf7ecb 100644
--- a/bench/bn_interpolate_6d.jnl
+++ b/bench/bn_interpolate_6d.jnl
@@ -1,9 +1,11 @@
 ! bn_interpolate_6d.JNL
 ! benchmark interpolation along various axes 
 ! including the E and F axis
+! note with fix to ticket 2399 mode calendar applies to F axis
 
 SET LIST/PRECISION=6
 SET MODE LATITUDE:4
+set mode calendar:years
 
 LET v = x + 10*y + 100*_e + 1000*_f
 SET REGION/X=1:3/Y=1:3/E=1:3/F=1:3
@@ -19,3 +21,5 @@ GO bn_interpolate_6d.sub
 ! then with interpolation
 SET MODE INTERPOLATE
 GO bn_interpolate_6d.sub
+
+set mode/last calendar
diff --git a/bench/bn_labels_on_taxis.jnl b/bench/bn_labels_on_taxis.jnl
new file mode 100644
index 0000000..1c2a21f
--- /dev/null
+++ b/bench/bn_labels_on_taxis.jnl
@@ -0,0 +1,114 @@
+! bn_labels_on_taxis.jnl
+! tests of labels and overlays on time axes
+
+
+set v ul
+DEFINE AXIS/T=1-JAN-1980:31-JAN-1985:30/T0=1-jan-1980/UNIT=days tax
+LET tt = t[gt=tax]
+LET tvar = cos(tt/200)
+plot tvar
+
+LET xsqr = {-1,1,1,-1}                ! coordinates of a unit square
+LET ysqr = {-1,-1,1,1}
+LET xcircle = COS(6.3*i[i=1:42]/40)    ! coordinates of unit circle
+LET ycircle = SIN(6.3*i[i=1:42]/40)
+
+!   place an "X" at the value exactly at 7-aug-1982
+!   "@ITP" causes interpolation to exact location
+
+let t0   = tt[t="7-aug-1982"@itp]
+let val0 = tvar[t="7-aug-1982"@itp]
+plot/vs/over/nolab/sym=2/thick/color=red t0,val0
+
+!   put a box around the "X"
+polygon/over/thick/color=red/nolab t0+30*xsqr, 0.05*ysqr+val0
+
+!   place an "X" on the data point nearest to 15-may-1984
+!   Note that @ITP is absent, so behavior is set by MODE INTERPOLATE
+let t1   = tt[t="15-may-1984"]
+let val1 = tvar[t="15-may-1984"]
+plot/vs/over/nolab/sym=2/color=blue/thick t1,val1
+
+!     put a circle around the "X"
+plot/vs/over/color=blue/thick/nolab t1+30*xcircle,0.05*ycircle+val1
+
+set v ur
+! Latitude/time plot
+let ytvar = cos(tt/200) + sin(j/3)
+shade/y=1:50/t=1-jan-1982:31-dec-1982 ytvar
+                     
+let tlo = tt[t="1-jul-1982"@itp]
+let thi = tt[t="1-aug-1982"@itp]
+polygon/over/nolab/thick/pal=gray {`tlo`, `thi`,` thi`, `tlo`},  {20, 20, 25, 25}
+
+set v ll
+! Plot the time series.
+!----------------------------------
+
+LET tvar = cos(tt/200)* tt/100
+PLOT/vlim=-20:20 tvar
+
+!----------------------------------
+! Locate label position on time variable axis: the coordinate at the start of 1985.
+LET datelabelpos=TT[T="01-JAN-1981"@ITP]
+
+! Do nothing but set $PPL$XFIRST1 symbol at the time axis plot units
+PLOT/LINE/VS/OVER/NOLAB datelabelpos,-9
+
+! Make the label; left-justified
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),-8,-1,0,0.12, at AC Year 81 starts
+
+! Draw a vertical red line at the year boundary
+PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {`datelabelpos`,`datelabelpos`},{-20,20}
+
+! Do the same for the start of 1984
+!----------------------------------
+! Locate label position on time var axis
+LET datelabelpos=TT[T="01-JAN-1984"@ITP]
+
+! Do nothing but set $PPL$XFIRST1 symbol at the time axis plot units
+plot/line/vs/over/nolab datelabelpos,-9
+
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),-8,-1,0,0.12, at AC Year 84 starts
+
+! Draw a vertical red line at the year boundary
+PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {`datelabelpos`,`datelabelpos`},{-20,20}
+
+!----------------------------------
+! Now lets locate and label the maximum of the variable
+LET vmax = `tvar[T=@MAX]`
+LET t_at_max = tvar[T=01-JAN-1980:31-DEC-1985 at LOC:`vmax`]
+
+! This will define $PPL$XFIRST1 and also make a mark at the maximum location
+PLOT/VS/OVER/NOLAB/SYM=17/COLOR=red t_at_max, vmax
+
+! Use a centered label this time
+! 1.02*vmax moves the label up a bit.
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),`1.02*vmax`,0,0,0.12, at AC MAX = `vmax,prec=3`
+
+set v lr
+
+! Define a dummy track line, position as a function of time.
+DEFINE AXIS/T=1-JAN-1980:31-JAN-1985:30/UNIT=days tax
+LET ypos = 40 *COS(L[GT=tax]/32)
+LET xpos = 220 - 50 *SIN(L[GT=tax]/22)
+! Make the basic track plot
+use ocean_atlas_temp
+shade/pal=blue_light/X=110E:40W/Y=20S:50N/L=1 temp
+
+PLOT/VS/NOLAB/OVER XPOS,YPOS
+! Label every 5th date. The labels could be positioned differently, using
+! the 3rd argument of the LABEL command to control centering. Or, to put the
+! labels a bit above the corresponding point location, add a small amount to
+! the y positions, for instance `ypos + 0.04` in the second argument to LABEL.
+LET tt = t[gt=tax]
+! Loop over L; at each L we evaluate TAX_DATESTRING for the time step,
+! and compute the location for the label
+REPEAT/L=5:60:10 (DEFINE SYMBOL tlab = "`TAX_DATESTRING(tt,tt,"day")`"; \
+ LABEL `xpos` `ypos` 1 0 0.09 ($tlab) )
+
+FRAME/FILE=bn_labels_on_taxis.pdf
+
diff --git a/bench/bn_let_remote.jnl b/bench/bn_let_remote.jnl
new file mode 100644
index 0000000..0dac1fd
--- /dev/null
+++ b/bench/bn_let_remote.jnl
@@ -0,0 +1,90 @@
+! bn_let_remote.jnl
+! Tests of the F-TDS LET/REMOTE
+! 6/2016 installed NVODS on new-bock server 
+
+! See if the F-TDS is working and bail if not.
+
+let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+load status
+if `status NE 0` then EXIT/SCRIPT
+
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
+let/D=1/remote myvar = t0112mn1[k=1:5 at sum]
+let/D=1/remote ave_z = t0112mn1[z=0:1000 at ave]
+sh var
+set view ul; shade/l=7 myvar
+set view ur; shade/l=3 ave_z
+
+list/l=7/x=300:310/y=15 myvar, ave_z
+
+let/D=1/remote ave_t = t0112mn1[L=1:12 at ave]
+set view ll; shade/z=0 ave_t
+
+let/D=1/remote/units="`t0112mn1,ret=units`"/title="Summer average Temperature" ave_summer = t0112mn1[t=15-jun:15-sep at ave]
+set view lr; shade/z=0 ave_summer
+
+can view
+can data/all; can var/all
+
+! open another dataset, define more remote variables
+
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+let/D=2/remote sstsum = sst[L=1:5 at sum]
+let/D=2/remote airtsum = airt[L=1:5 at sum]
+sh dat
+
+set view ul; plot/y=-10/x=50:150 sstsum
+set view ur; plot/y=-10/x=50:150 airtsum
+list/y=-10/x=50:59 sstsum,airtsum
+
+let both = sstsum + airtsum
+set view lower; plot/y=-10/x=50:150 both
+list/y=-10/x=50:59 sstsum, airtsum, both
+
+can dat/all; can var/all
+
+! make several remote definitions. They can be used together in an expression. 
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+let/D=1/remote sstsum = sst[L=1:5 at sum]
+let/D=1/remote airtsum = airt[L=1:5 at sum]
+let/D=1/remote factor = 12
+let/D=1/remote combo = factor*(airtsum - sstsum)
+list/y=-5/x=130w:110w combo
+
+
+can dat/all; can var/all
+
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
+
+! This is ok let/remote/D=
+let/D=1/remote myvar = t0112mn1[z=1:100 at ave]
+
+! Intentional errors:
+
+! But cannot put d= within the expression: the expr is evaluated on
+! the remote server so the same datsets are not open there.
+
+set mode ignore
+let/D=1/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+
+
+! But, require LET/D= with /REMOTE
+let/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+
+! If expressions involve local variables not defined in the remote dset,
+! then the variable can be computed but not as a remote-var.
+
+let a = 12
+let/D=1/remote avar = a*t0112mn1[L=@ave]
+list/x=300/y=15 avar
+
+SET MODE/LAST ignore
+
+! The dataset remains open, we can fix the definition.
+let/D=1/remote a = 12
+sho dat
+list/x=300/y=15/z=0:100 avar
+
+can dat/all; can var/all
+
diff --git a/bench/bn_letd_attributes.jnl b/bench/bn_letd_attributes.jnl
new file mode 100644
index 0000000..a98eb23
--- /dev/null
+++ b/bench/bn_letd_attributes.jnl
@@ -0,0 +1,82 @@
+! bn_letd_attributes.jnl
+! Allow for the same variable name defined with LET/D in multiple datasets.
+! See ticket 2352.  Previously for all user variables the 
+! attribute information stored was in fake uvar-dataset = -1.
+! Now if the variable is a LET/D variable, it is stored with
+! the attribute information of the dataset. 
+
+
+! See the variable defined with LET/D in SHOW DAT, SHOW DAT/ATT
+! and with SHOW ATT
+
+use coads_climatology
+let/d=1/title="coads myvar" myvar = 1
+
+! Now SHOW DATA/ATT lists the LET/D variables, as SHOW DATA does
+show dat 1
+
+show dat/att 1
+
+show att myvar
+
+! If there is also a global variable of the same name, SHOW VAR
+! and SHOW ATT list results for both variables
+
+let/title="Global myvar" myvar = 0  ! global
+show att myvar
+
+! Now a LET/D variable with the same name on a second datset.
+! SHOW ATT lists results for the current datset and any global variables
+
+use levitus_climatology
+let/d=2/title="Levitus myvar" myvar = 2
+show dat 2
+show dat/att 2
+show att myvar
+
+show att/d=1 myvar
+
+! ..varnames is the list of file variables. Now to include LET/D variables
+
+let vnames = ..varnames
+list vnames
+
+
+set data 1
+list vnames
+
+
+! CANCEL VAR deletes the variables from the linked-list attribute structure.
+cancel var/all
+show dat
+
+show dat/att 2
+
+! Redefine our LET/D variables
+
+use coads_climatology
+let/d=1/title="coads myvar" myvar = 1
+
+use levitus_climatology
+let/d=2/title="Levitus myvar" myvar = 2
+
+! Define new attributes on the file variable and LET/D variable 
+! in the default dataset
+
+define att/output temp.my_new_att="temperature attrib"
+define att/output myvar.units="meters"
+show att temp
+show att myvar
+
+! use /D= to define an attribute for a file-specific var
+define att/output/d=2 myvar.standard_name = "None"
+
+define att/output/d=1 myvar.units="feet"
+show att/d=1 myvar
+save/clobber/file=a.nc myvar[d=1]
+sp ncdump -h a.nc >> all_ncdump.out
+
+show att/d=2 myvar
+save/clobber/file=a.nc myvar[d=2]
+sp ncdump -h a.nc >> all_ncdump.out
+
diff --git a/bench/bn_list_clim_axes.jnl b/bench/bn_list_clim_axes.jnl
new file mode 100644
index 0000000..f15534b
--- /dev/null
+++ b/bench/bn_list_clim_axes.jnl
@@ -0,0 +1,12 @@
+! bn_list_clim_axes.jnl
+! *acm* 3/16
+! Show and list coordinates for climatological axes 
+! that are pre-defined in Ferret
+
+show axis seasonal_reg
+show axis month*
+show axis/t month_irreg
+show axis/t month_gregorian
+show axis/t month_noleap
+show axis/t month_360_day
+show axis/t month_all_leap
diff --git a/bench/bn_long_lists.jnl b/bench/bn_long_lists.jnl
new file mode 100644
index 0000000..bb2ec8f
--- /dev/null
+++ b/bench/bn_long_lists.jnl
@@ -0,0 +1,133 @@
+! bn_long_lists.jnl
+! See ticket 2337
+!
+! Increase command-line buffer by a factor of 10, to accomodate long lists
+! defined in the variable definition.
+! Also allow for more items in the list.
+
+! 2/2016, backed off the extra-long buffer, but keep these tests, on shortened variables.
+
+! This one gets its Title truncated
+
+let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc"}
+
+let longlist = {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0}
+
+show var
+
+! do them in repeat loop
+
+repeat/range=1:4:1/name=q (let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0012.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0013.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0014.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0015.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0016.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0017.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0018.t_surf.nc",\
+} )
+
+! Intentional errors:
+! Make them longer
+
+set mode ignore
+
+! Line length still under 2048, but more items than 1000, 
+! issues a NOTE that they're not all parsed.
+
+let a={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0}
+load a
+
+! command line too long
+
+let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0012.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0013.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0014.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0015.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0016.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0017.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0018.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0019.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0022.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0023.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0024.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0025.t_surf.nc",\}
+
+set mode/last ignore
diff --git a/bench/bn_netcdf4.jnl b/bench/bn_netcdf4.jnl
index e9d94c2..210cf5b 100644
--- a/bench/bn_netcdf4.jnl
+++ b/bench/bn_netcdf4.jnl
@@ -1,7 +1,7 @@
 ! bn_netcdf4.jnl
 ! test syntax for controling NetCDF-4 intput and output.
-
-
+! 2/2016 change file name in second intentinal-error case
+!        Also list the file sizes for compressed data
 
 show nccache
 
@@ -26,7 +26,7 @@ set var/title=deflate_x30_y30 sst
 save/file=nc4_deflate4.nc/clobber/ncformat=4/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
 
 ! With /NCFORMAT=3 the other stuff is meaningless.  Will see NOTEs
-yes? save/file=nc4_nodeflate3.nc/clobber/ncformat=3/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
+save/file=nc4_nodeflate3.nc/clobber/ncformat=3/deflate=1/xchunk=30/ychunk=30/tchunk=1 sst
 
 ! --------------------------
 ! Compare choices of chunking.
@@ -43,6 +43,14 @@ save/file=nc4_nodeflate3.nc/clobber/ncformat=3 sst
 save/file=nc4_deflate4_xyt.nc/clobber/ncformat=4/deflate/shuffle/tchunk=2/xchunk=30/ychunk=20  sst
 save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
 
+! get the file sizes
+! Note that small changes in file size may be caused by differences in the global 
+! history attribute; e.g. changing the Ferret version name from v6.97 to v7
+
+sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
+sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
+sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
+sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
 
 ! Write variable as INT
 CAN DAT/all; can var/all; can mem/all
@@ -55,6 +63,11 @@ save/clobber/file=nc4_inttemp_set_list_deflate_chunk.nc temp
 
 save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
 
+! get the file sizes
+sp stat nc4_inttemp_classic.nc --printf="Bytes: %s\n"
+sp stat nc4_inttemp_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
+sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
+
 cancel list/all
 set list/ncformat=classic
 save/clobber/file=nc4_inttemp_set_classic.nc temp
@@ -77,6 +90,6 @@ set mode ignore
 save/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchunk=1  sst
 
 ! Chunk sizes bigger than dim sizes
-save/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
+save/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
 can mode ignore
 
diff --git a/bench/bn_nocoords.jnl b/bench/bn_nocoords.jnl
deleted file mode 100644
index 2141a4d..0000000
--- a/bench/bn_nocoords.jnl
+++ /dev/null
@@ -1,39 +0,0 @@
-! bn_nocoords.jnl
-!  5/2013
-! Save data with the /NOCOORDS option.
-! This puts dimensions in the dataset but 
-! does not write coordinate axes.
-
-use test_100x100.nc
-sh dat/att
-
-save/clobber/file=aa.nc/nocoords/i=50:55/j=48:52 a
-
-! This is what we SAVEd.
-list/i=50:55/j=48:52 a
-
-can mem; can data/all
-
-! The same data is in the file, but with no coordinate axes.
-use aa.nc
-sh dat/att
-
-! When it uses this dataset, Ferret just creates abstract axes.
-list a
-
-! For writing a Discrete Geometries file, dont write coordinate variables.
-! Keep things in lowercase, keep original axis names, and add a global attribute.
-can dat/all
-can var/all
-
-use dsg.nc
-
-! Add a global attribute on the next SAVE
-define att/output ..featureType = "profile"
-
-can mode upcase
-save/nocoord/file=dsg_nocoord.nc/keep/clobber rowsize, profile, time, latitude, longitude, pot_temp_degc, sal
-sp ncdump -h dsg_nocoord.nc
-
-set mode/last upcase
-
diff --git a/bench/bn_plot_along.jnl b/bench/bn_plot_along.jnl
new file mode 100644
index 0000000..bab1811
--- /dev/null
+++ b/bench/bn_plot_along.jnl
@@ -0,0 +1,54 @@
+! BN_PLOT_ALONG
+
+! *sh* 3/2016
+
+!  yes? GO bn_plot_along [debug]
+
+! exercise breaking up of plot command argument into lones along the
+! indicated direction
+
+DEFINE SYMBOL debugme = ($1"SAY continuing|debug>PAUSE")
+
+! basic
+LET blocky10 = x[i=1:10]+y[j=1:10]
+PLOT/ALONG=x blocky10
+($debugme)
+
+! degenerate case -- only a single line
+LET blocky1 = x[i=1:10]+y[j=1:1]
+PLOT/ALONG=x blocky1
+($debugme)
+
+! number of lines exceeds key limit  (40 at time of this writing)
+! automatic decimation to keep within key limit
+LET blocky200 = x[i=1:10]+y[j=1:200]
+PLOT/ALONG=x blocky200
+($debugme)
+
+! /nokey  - no longer limited to the number of keys that can be drawn
+LET blocky50 = x[i=1:10]+y[j=1:50]
+PLOT/ALONG=x/nokey blocky50
+($debugme)
+
+! /nokey -- number of lines exceeds line limit  (200 at time of this writing)
+! automatic decimation to keep within line limit
+LET blocky201 = x[i=1:10]+y[j=1:201]
+PLOT/ALONG=x/nokey blocky201
+($debugme)
+
+! multi-dimensional
+LET blockxyz        = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:5]+100*z[k=1:30]
+LET blockxyz_little = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:3] +100*z[k=1:4]
+PLOT/ALONG=t blockxyz_little
+($debugme)
+PLOT/ALONG=t blockxyz         ! decimate to key  limit
+($debugme)
+PLOT/ALONG=t/nokey blockxyz   ! decimate to line limit
+($debugme)
+
+
+! ensemble application
+LET block = x[i=1:2]+10*y[j=1:3]+100*z[k=1:4]
+LET sin_block = SIN(T[l=1:100]/10)*block
+LET ens_sin_block = sin_block*( (20+_E[m=1:20])/20 )
+PLOT/ALONG=t ens_sin_block[i=1,j=2,k=3] 
diff --git a/bench/bn_plot_decimate.jnl b/bench/bn_plot_decimate.jnl
new file mode 100644
index 0000000..e11909d
--- /dev/null
+++ b/bench/bn_plot_decimate.jnl
@@ -0,0 +1,60 @@
+! BN_PLOT_SKIP
+
+! *acm* 3/2016
+
+!  yes? GO bn_plot_skip [debug]
+
+! based on PLOT/ALONG tests.  
+! PLOT/SKIP=n for /SYMBOL plots makes only every SKIP symbol.
+
+DEFINE SYMBOL debugme = ($1"SAY continuing|debug>PAUSE")
+
+DEFINE SYMBOL deci = 2
+
+! basic
+LET blocky10 = x[i=1:10]+y[j=1:10]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky10
+($debugme)
+
+! degenerate case -- only a single line
+LET blocky1 = x[i=1:10]+y[j=1:1]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky1
+($debugme)
+
+! number of lines exceeds key limit  (40 at time of this writing)
+! automatic decimation to keep within key limit
+LET blocky200 = x[i=1:10]+y[j=1:200]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky200
+($debugme)
+
+! /nokey  - no longer limited to the number of keys that can be drawn
+LET blocky50 = x[i=1:10]+y[j=1:50]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x/nokey blocky50
+($debugme)
+
+! /nokey -- number of lines exceeds line limit  (200 at time of this writing)
+! automatic decimation to keep within line limit
+LET blocky201 = x[i=1:10]+y[j=1:201]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x/nokey blocky201
+($debugme)
+
+! multi-dimensional
+LET blockxyz        = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:5]+100*z[k=1:30]
+LET blockxyz_little = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:3] +100*z[k=1:4]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t blockxyz_little
+($debugme)
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t blockxyz         ! decimate to key  limit
+($debugme)
+
+define symbol deci = 5
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t/nokey blockxyz   ! decimate to line limit
+($debugme)
+
+
+! ensemble application
+! Here the symbols appear on lines automatically for distinguishing 
+! large number of lines. /SKIP works without explicitly saying /SYM
+LET block = x[i=1:2]+10*y[j=1:3]+100*z[k=1:4]
+LET sin_block = SIN(T[l=1:100]/10)*block
+LET ens_sin_block = sin_block*( (20+_E[m=1:20])/20 )
+PLOT/SKIP=($deci)/ALONG=t ens_sin_block[i=1,j=2,k=3] 
diff --git a/bench/bn_ps.jnl b/bench/bn_ps.jnl
index 349b6a5..9f5914b 100644
--- a/bench/bn_ps.jnl
+++ b/bench/bn_ps.jnl
@@ -40,7 +40,9 @@ set mode/last ignore
 ppl list plot
 
 ! enlarge it to accomodate an additional 50% width
-ppl size 15.3,8.8
+! ppl size 15.3,8.8
+! in PyFerret must use SET WINDOW
+set win /xinch=15.3 /yinch=8.8
 
 ! turn on metafile (enabled 10/29/91)
 ! commented out 9/97 - instead set in bn450_all.jnl
@@ -73,10 +75,8 @@ plot/l=1:99000/nolabel sin(200000/(l+10000))
 ! reset to normal axis lengths and prepare for a new piccie
 !ppl axlen 8
 
-set mode ignore
-frame/file=bnplot.ps    ! DELIBERATE ERROR MESSAGE
-can mode ignore
-exit/command
+frame/file=bnplot_4.pdf   ! Not an error in PyFerret
+frame/file=bnplot_4.ps    ! Not an error in PyFerret
 
 
 
diff --git a/bench/bn_regrid_6d.jnl b/bench/bn_regrid_6d.jnl
index 486bbf4..36ee539 100644
--- a/bench/bn_regrid_6d.jnl
+++ b/bench/bn_regrid_6d.jnl
@@ -1,8 +1,10 @@
 ! bn_regrid_6d.jnl
 ! version of bn_regrid, using E and F directions.
+! note with fix to ticket 2399 mode calendar applies to F axis
 
 set mode latit_label -4
 set mode long_label -4
+set mode calendar:years
 
 define axis/x=2:20:2 xeven
 define axis/x=1:19:2 xodd
@@ -121,3 +123,9 @@ list a48
 list a24[g=g48]
 list a24[g=g48]-a48
 
+
+
+set mode/last latit_label
+set mode/last long_label
+set mode/last calendar
+
diff --git a/bench/bn_regrid_transforms_6d.jnl b/bench/bn_regrid_transforms_6d.jnl
index 4c687b6..d98ecc3 100644
--- a/bench/bn_regrid_transforms_6d.jnl
+++ b/bench/bn_regrid_transforms_6d.jnl
@@ -1,9 +1,11 @@
 ! bn_regrid_transforms_6d.jnl
 ! benchmark to test regridding transformations and syntax
 ! version of bn_regrid_transforms, using E and F directions.
+! note with fix to ticket 2399 mode calendar applies to F axis
 
 use gtsa056_1_ef
 set mode diag
+set mode calendar:years
 
 define axis/f=23-jan-1982:30-jan-1982:20/unit=hour fax20
 define axis/x=120e:60w:10/unit=degrees xax10
@@ -97,3 +99,4 @@ list afcst[gf=ehour at max]
 show grid
 
 set mode/last diag
+set mode/last calendar
diff --git a/bench/bn_samplexy_sampleij.jnl b/bench/bn_samplexy_sampleij.jnl
new file mode 100644
index 0000000..1d8164b
--- /dev/null
+++ b/bench/bn_samplexy_sampleij.jnl
@@ -0,0 +1,13 @@
+! bn_samplexy_sampleij
+
+! Simple tests of SAMPLEXY and SAMPLEIJ 
+
+sh func samplexy, sampleij
+use coads_climatology
+
+! Both functions take world coordinate values
+! as arguements for the points at which to sample.
+!
+! 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})
diff --git a/bench/bn_sho_att_longnames.jnl b/bench/bn_sho_att_longnames.jnl
new file mode 100644
index 0000000..2bff38e
--- /dev/null
+++ b/bench/bn_sho_att_longnames.jnl
@@ -0,0 +1,29 @@
+! bn_sho_att_longnames
+! ticket 2371
+! SHOW DATA/ATTRIBUTES chopped of long variable name and attribute names
+! Now the output wraps tothe next line, keeping column alignment.
+
+! *acm* 3/2016
+
+let Ocean_Chlorophyll_A_Concentration_factoryCalib = 7
+define att/output Ocean_Chlorophyll_A_Concentration_factoryCalib.long_attribute_name_that_will_wrap = "text"
+can mode upcase
+save/clobber/file=a.nc Ocean_Chlorophyll_A_Concentration_factoryCalib
+
+use a
+let/d=1/title="example user var"  my_extra_long_varname_as_UserVar_12345 = 9
+define att/output my_extra_long_varname_as_UserVar_12345.qwertyuiopasdfghjklzxcvbnm = "QWERTY"
+sh dat/att
+
+! This example is taken from bn_aggregate_f.jnl
+
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+
+! check that the files are there. 
+let nf = `files,return=isize`
+if `nf le 0` then exit/script
+if `nf eq 1 and strlen(files[i=1]) eq 0` then exit/script
+
+fmrc my_fmrc = files
+sh dat
+sh dat/att
diff --git a/bench/bn_show_commands.jnl b/bench/bn_show_commands.jnl
new file mode 100644
index 0000000..8cab6de
--- /dev/null
+++ b/bench/bn_show_commands.jnl
@@ -0,0 +1,130 @@
+! bn_show_commands.jnl
+! Testing results for ticket 2078: SHOW COMMAND cmnd subcmnd
+! Also new SHOW COMMAND/BRIEF
+! 3/2016 *acm*
+!
+! When commands are highly abbreviated, which command/subcommand is 
+! executed depends on the order in which they are listed in Ferret 
+! internal data structures. Keep this output consistent if new commands 
+! added or command list are reordered.
+
+! Commands with subcommands
+
+sho command set
+sho command set w  ! SET WINDOW
+sho command set r  ! SET REGION
+sho command set v  ! SET VIEWPORT
+sho command set e  ! SET EXPRSION
+sho command set l  ! SET LIST
+sho command set d  ! SET DATA
+sho command set m  ! SET MODE
+sho command set mov! SET MOVIE
+sho command set va ! SET VARIABLE
+sho command set g  ! SET GRID
+sho command set a  ! SET AXIS
+sho command set me ! SET MEMORY
+sho command set at ! SET ATTRIBUTE
+sho command set n  ! SET NCCACHE
+sho command set red! SET REDIRECT
+sho command set gi ! SET GIFFILE
+
+sho command sho
+sho command sho w  ! SHOW WINDOW
+sho command sho r  ! SHOW REGION
+sho command sho a  ! SHOW AXIS
+sho command sho e  ! SHOW EXPRSTION
+sho command sho l  ! SHOW LIST
+sho command sho d  ! SHOW DATA
+sho command sho m  ! SHOW MODE
+sho command sho mov! SHOW MOVIE
+sho command sho v  ! SHOW VARIABLE
+sho command sho c  ! SHOW COMMANDS
+sho command sho me ! SHOW MEMORY
+sho command sho g  ! SHOW GRID
+sho command sho vi ! SHOW VIEWPORT
+sho command sho t  ! SHOW TRANSFORM
+sho command sho al ! SHOW ALIAS
+sho command sho s  ! SHOW SYMBOL
+sho command sho at ! SHOW ATTRIBUTE
+sho command sho n  ! SHOW NCCACHE
+sho command sho gi ! SHOW GIFFILE
+sho command sho f  ! SHOW FUNCTION
+sho command sho q  ! SHOW QUERIES
+
+sho command can 
+sho command can w  ! CANCEL WINDOW
+sho command can r  ! CANCEL REGION
+sho command can m  ! CANCEL MEMORY
+sho command can e  ! CANCEL EXPRSION
+sho command can l  ! CANCEL LIST
+sho command can d  ! CANCEL DATA
+sho command can mo ! CANCEL MODE
+sho command can mov! CANCEL MOVIE
+sho command can v  ! CANCEL VIEWPORT
+sho command can va ! CANCEL VARIABLE
+sho command can a  ! CANCEL AXIS
+sho command can g  ! CANCEL GRID
+sho command can at ! CANCEL ATTRIBUTE
+sho command can red! CANCEL REDIRECT
+sho command can al ! CANCEL ALIAS
+sho command can s  ! CANCEL SYMBOL
+sho command can n  ! CANCEL NCCACHE
+
+sho command def
+sho command def r  ! DEFINE REGION
+sho command def g  ! DEFINE GRID
+sho command def v  ! DEFINE VARIABLE
+sho command def a  ! DEFINE AXIS
+sho command def vi ! DEFINE VIEWPORT
+sho command def al ! DEFINE ALIAS
+sho command def s  ! DEFINE SYMBOL
+sho command def at ! DEFINE ATTRIBUTE
+sho command def P  ! DEFINE PYFUNC
+sho command def d  ! DEFINE DATA
+sho command def an ! DEFINE ANNOTATE
+
+
+! Also new SHOW COMMAND/BRIEF
+! Single commands, abbreviated. 
+
+sho command/brief a
+sho command/brief c
+sho command/brief ca
+sho command/brief co
+sho command/brief d 
+sho command/brief e
+sho command/brief el
+sho command/brief en
+sho command/brief ex
+sho command/brief f
+sho command/brief h
+sho command/brief h
+sho command/brief i
+sho command/brief l
+sho command/brief li
+sho command/brief lo
+sho command/brief m
+sho command/brief p
+sho command/brief pl
+sho command/brief po
+sho command/brief pp
+sho command/brief q
+sho command/brief r
+sho command/brief s
+sho command/brief se
+sho command/brief sh
+sho command/brief sp
+sho command/brief st
+sho command/brief u
+sho command/brief v
+
+
+! All the commands, no subcommands, no qualifiers
+SHOW COMMAND/BRIEF
+
+! With a command, just show subcommands, no qualifiers
+SHOW COMMAND/BRIEF sho
+
+! With a command and subcommand, no qualifiers
+SHOW COMMAND/BRIEF sho da
+
diff --git a/bench/bn_show_noupcase.jnl b/bench/bn_show_noupcase.jnl
new file mode 100644
index 0000000..d691a9b
--- /dev/null
+++ b/bench/bn_show_noupcase.jnl
@@ -0,0 +1,98 @@
+! bn_show_noupcase.jnl
+! 1/2016 ticket 1796
+
+cancel mode upcase
+
+
+! Previously this mode acted only when saving to netCDf.
+! Now applies to SHOW commands of all sorts, as well as `return=*axis`
+
+
+
+! User variable with lowercase letters in the name
+
+DEFINE AXIS/t=1-jan-1999:31-jan-1999:1/units=days/t0=31-dec-1998 tday
+LET MyUpperLowerCaseVar = x[x=1:10] + t[gt=tday]
+show var
+show grid MyUpperLowerCaseVar
+
+
+! Files have variable and axis names in mixed case.
+
+USE a1478.nc
+USE a_cartesian_bug1179.nc
+show data
+
+! Previously the RETURN= gave the capitalized axis names
+say `temp,return=zaxis`
+say `temp,return=xaxis`
+
+sh axis `temp,return=xaxis`
+sh axis/x `temp,return=xaxis`
+
+! Define an output variable with some axes from each dataset.
+! (the variable definitions have been upcased. Beyond the scope of this fix...)
+
+LET/D=1 zvar = 2*temp[d=2]
+LET/D=2 newvar =  0*zvar[d=2] + olr[d=1]
+
+show data
+go bn_reset
+
+
+! xml output
+
+USE a_cartesian_bug1179.nc
+
+say/quiet <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
+say/quiet <data>
+
+show var/xml
+show data/var/xml
+say/quiet </data>
+
+USE a_cartesian_bug1179.nc
+
+SHO DATA/XML
+
+SHO DATA/VAR/XML
+
+SHO GRID/XML temp
+
+SHO AXIS/XML `temp,return=xaxis`
+SHO AXIS/XML `temp,return=yaxis`
+SHO AXIS/XML `temp,return=zaxis`
+SHO AXIS/XML `temp,return=taxis`
+
+! Define a dataset variable
+! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
+LET/D=a_cartesian_bug1179 temp_180 = temp[X=79E:79E at AVE]
+
+SHOW DATA/XML
+
+USE a1478.nc
+SHOW DATA/XML
+SHO DATA/VAR/XML
+
+! tests of SHOW VAR/XML for global variables.
+CAN DATA/ALL
+CAN VAR/ALL
+
+USE a1478
+USE a_cartesian_bug1179
+
+! Define a dataset variable
+LET/D=a1478 temp_20 temp[Z=0:20 at SUM]
+
+! Define a global variable
+LET t30 = temp[Z=0:30 at SUM]
+
+! Another variable, setting title, units, bad flag.
+LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral of SALT" salty = salt[Z=@IIN]
+
+
+! list tha variables
+SHO VAR/XML
+
+set mode/last upcase
+
diff --git a/bench/bn_show_uvar_grid.jnl b/bench/bn_show_uvar_grid.jnl
new file mode 100644
index 0000000..3c6896b
--- /dev/null
+++ b/bench/bn_show_uvar_grid.jnl
@@ -0,0 +1,126 @@
+! bn_show_uvar_grid.jnl
+! Add notes to the output of SHOW GRID for variables and expressions 
+! indicate compressed axes, point subsets and subset ranges.
+! For grid changing functions just mark axis as such
+!
+! 12/17/2015 *acm*
+! 12/18 2015 *acm* Add constant and constant-array variables, 
+!                  and modulo axis request on more than full range
+
+use coads_climatology
+show grid sst[x=240:320,y=0,t=@ave]
+
+! Modulo axes ask for superset
+show grid sst[x=0:540,L=1:15]
+
+! Constant: full abstract grid
+show grid 1
+
+! Constant-array
+show grid {1}
+let var = {1,2,4,8}  ! Note that show grid {1,2,4,8} fails: bug
+show grid var
+
+! but don't show any user-var grid info if they just ask for the grid by name
+show grid `sst,return=grid`
+
+! grid of last variable loaded
+load sst[x=240,y=@iin,t=@ave]
+show grid 
+
+! Result grid is full grid
+let var = sst[L=@ave] - sst[x=@max] - sst[y=0]
+show grid var
+
+! transform on single-point range is equiv. to single-point subset
+
+cancel mode interpolate  ! otherwise single-pt range fails
+let var = sst[X=30 at max]
+show grid var
+set mode/last interpolate
+let var = sst[X=30:30.1 at max]
+show grid var
+
+! dynamic grid
+let var = sst[y=-10:10:.1,l=1,x=160e]
+show grid var
+
+! striding
+show grid sst[i=1:180:3,j=1:90:2]
+
+! regridding
+
+use coads_vwnd
+define axis/t=1-jan-1980:31-dec-1982:1/units=days dax
+let vwnd_days = vwnd[gt=dax,t=1-jun-1982:15-jul-1982]
+sh grid vwnd_days
+
+let vwnd_clim = vwnd[gt=month_irreg at mod]
+sh grid vwnd_clim[L=4:9]
+
+can dat/all
+use coads_climatology
+
+! non-compressing transforms
+
+let var = sst[y=@iin]
+show grid var
+
+let var = sst[y=-30:30 at iin]
+show grid var
+
+use levitus_3d_subset
+let var = temp[z=@weq:20]
+show grid var
+
+let var = temp[z=1:120 at weq:20]
+show grid var
+
+
+! grid-changing functions
+can dat/all
+use levitus_3d_subset
+let depth =  Z[G=TEMP]+ 0*TEMP[K=1]
+let depth_rev = zreverse(depth)
+show grid depth_rev
+
+DEFINE AXIS/t=1-Jan-1990:31-Dec-1990:24/t0=1-jan-1980 dayt
+let tpts = t[gt=dayt]
+LET sample_function = sin(0.5*tpts - 6.)/2. - cos(0.3*tpts)
+ 
+show grid ffta(sample_function)
+
+show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
+
+show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
+
+can dat/all
+
+! auxiliary regridding
+
+use levitus_3d_subset.nc
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+let  TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
+
+sh grid tempz
+sh grid tempz[z=100:400]
+
+! and with a grid-changing function thrown in
+
+use levitus_3d_subset.nc
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+LET/D=levitus_3d_subset rvdepth  = rvdepth0[gz=temp at asn]
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp  = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+show grid rvtempzax
+
+! gc func: limits are hidden so a subset not seen
+
+LET rvtempzax = rvtemp[gz(rvdepth)=zax]
+show grid rvtempzax[z=100:300]
diff --git a/bench/bn_show_xml_file.jnl b/bench/bn_show_xml_file.jnl
index eea13c9..70b281a 100644
--- a/bench/bn_show_xml_file.jnl
+++ b/bench/bn_show_xml_file.jnl
@@ -11,7 +11,12 @@
 ! Dont do show axis/all. Just the axes for one variable is a lot of output.
 ! Ferret v685, show/data/var/xml includes the output of show axis, so remove that.
 
-USE ocean_atlas_temp.cdf
+! create a short file
+LET sst = x[x=1:15] + y[y=1:5] + t[gt=month_irreg] 
+save/clobber/file=b.nc sst
+can var/all
+
+use b
 
 DEFINE SYMBOL output_xml_file = the_xml_file.xml
 
diff --git a/bench/bn_speedtest.jnl b/bench/bn_speedtest.jnl
new file mode 100644
index 0000000..54935a8
--- /dev/null
+++ b/bench/bn_speedtest.jnl
@@ -0,0 +1,18 @@
+! bn_speedtest.jnl
+! issue large numbers of commands, timing with clock time
+can mode verify
+
+! speed.jnl
+def sym clock1 ($clock_secs)
+rep/i=1:10 rep/j=1:1000 let a=0
+say 10K LET commands LET a = 0 takes  `($clock_secs) - ($clock1)`  seconds
+plot/i=1:5 i
+rep/i=1:10 rep/j=1:1000 let a=0
+say Second 10K LET commands LET a = 0 takes  `($clock_secs) - ($clock1)`  seconds
+
+let b = {1,2,3}
+def sym clock1 ($clock_secs)
+rep/i=1:10 rep/j=1:500 (let a = `j`*b; load a[i=@max]) 
+say 5K LOAD with transform takes  `($clock_secs) - ($clock1)`  seconds
+
+set mode/last verify
diff --git a/bench/bn_syntax.jnl b/bench/bn_syntax.jnl
index 72ab6cc..4864a1f 100644
--- a/bench/bn_syntax.jnl
+++ b/bench/bn_syntax.jnl
@@ -9,6 +9,9 @@
 ! for V4.20 added blanks surrounding colons
 !	and tests of "escapes" using back slashes
 ! for V531 test continuation lines and long input lines
+! for v698 interpretation of unknown qualifiers changed -- e.g. say /notaqual
+! V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables, 
+! pre-defined axes and grids.
 
 ! SET - SHOW - CANCEL DATA
 USE gtbc011
@@ -139,8 +142,6 @@ SET GRID/RESTORE
 SHOW GRID
 
 ! SHOW VARIABLES
-SHOW VARIABLES/DIAGNOSTIC	! alphabetical list
-SHOW VARIABLES/DIAGNOSTIC  Q
 LET A=i
 SHOW VARIABLES
 CANC VARIABLES/ALL
@@ -187,9 +188,12 @@ list/nohead/i=1 : 3 i
 ! test escapes using back slashes (bn420 - 11/95)
 ! (moved to bn420_grave)
 
-say \/help	! "/" should pass through
+say \/notaqualifier	! "/" should pass through
+! starting 12/2015 a space preceding a unrecognized qualifier turns that
+! qualifier into an argument
+say /notaqualifier
 set mode ignore
-say /help
+say/notaqualifier
 canc mode ignore
 
 say this\;that	! ";" should pass through
diff --git a/bench/bn_unquoted_args.jnl b/bench/bn_unquoted_args.jnl
new file mode 100644
index 0000000..5215331
--- /dev/null
+++ b/bench/bn_unquoted_args.jnl
@@ -0,0 +1,134 @@
+! bn_unquoted_args.jnl
+! 12/2015 -- a hack change to PPARSE_COMMAND to allow users to omit
+! the quotation marks in the argument(s) of SET DATA, GO and DEFINE SYMBOL
+
+! 2/2016 *sh* removed the GO/HELP tests
+
+spawn "mkdir -p tmp"
+
+! ****** SET DATA TESTS *****
+! make test files
+save/clobber/file="tmp/test1.nc" i[i=1:3] + 1
+save/clobber/file="tmp/test2.nc" i[i=1:3] + 2
+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"`
+say ($use_abs_path)
+
+use tmp/test1.nc
+show data/brief
+canc data/all
+
+use "tmp/test1.nc"
+show data/brief
+canc data/all
+
+use "tmp/test1.nc"
+show data/brief
+canc data/all
+
+use tmp/test1.nc
+show data/brief
+canc data/all
+
+use "($use_abs_path)"
+show data/brief
+canc data/all
+
+use ($use_abs_path)
+show data/brief
+canc data/all
+
+use tmp/test1.nc,tmp/test2.nc,tmp/test3.nc
+show data/brief
+canc data/all
+
+use tmp/test1.nc,"tmp/test2.nc", tmp/test3.nc
+show data/brief
+canc data/all
+
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+  use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+  show data/brief
+  canc data/all
+  use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  show data/brief
+  canc data/all
+
+  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  show data/brief
+  canc data/all
+ELSE
+   say OPenDAP data not available for testing.. Tests skipped ...
+ENDIF
+
+! deliberate errors
+! erroneous qualifier with no white space detected
+set mode ignore
+set data/erroneous tmp/test1.nc
+
+! erroneous qualifier with white space detected
+set data /erroneous tmp/test1.nc
+
+! erroneous qualifier with comma treated as an invalid filename
+set data /erroneous, tmp/test1.nc
+
+can mode ignore
+
+canc data/all
+
+
+! ****** GO script tests *****
+! make a dummy GO file for testing
+spawn rm -f tmp/dummy.jnl
+spawn echo "say hello" >tmp/dummy.jnl
+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" $7"7-n/a" $8"8-n/a"' > tmp/testMe.jnl
+
+! generate absolute path
+let dir = SPAWN("pwd")
+define sym abs_path = `DIR+"/tmp/testMe.jnl"`
+say ($abs_path)
+
+go tmp/testMe.jnl
+
+go "tmp/testMe.jnl"
+
+go ($abs_path)
+
+go "($abs_path)"
+
+go tmp/testMe 5 hello "bye" "/quoted_path" /unquoted_path
+
+go "tmp/testMe" 5 hello "bye" "/quoted_path" /unquoted_path
+
+go ($abs_path) 5 hello "bye" "/quoted_path" /unquoted_path
+
+go "($abs_path)" 5 hello "bye" "/quoted_path" /unquoted_path
+
+! test GO/HELP
+! 2/2016 - commented these tests out, tho they work fine.   GO/HELP
+!          apparently runs asynchronously with the bench logging (why?)
+!          This results in the placement of the GO/HELP output shifting in
+!          the benchmark output log -- a hassle when comparing benchmarks
+!go/help tmp/testMe
+!go /help tmp/testMe
+!go/help "tmp/testMe"
+!go/help ($abs_path)
+!go/help "($abs_path)"
+
+! a few tests the slipped through the first time
+GO tmp/testMe POLYGON/KEY/lev=20 xpts,ypts,sst,star
+go "tmp/testMe.jnl" /home/users/tmap/ferret/linux/fer_dsets/data/coads_climatology.cdf
+if 1 then let/quiet mytestvar = whatever
+sh var mytestvar
+
+
+set mode ignore
+go/garbage tmp/testMe
+go/garbage "tmp/testMe"
+go/garbage ($abs_path)
+go/garbage "($abs_path)"
+set mode/last ignore
+
+
diff --git a/bench/bn_vtree.jnl b/bench/bn_vtree.jnl
index 0c919de..4fef2e6 100644
--- a/bench/bn_vtree.jnl
+++ b/bench/bn_vtree.jnl
@@ -2,6 +2,7 @@
 
 ! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
 ! 12/14 update to test regridding output using bn_vtree_regrid.jnl
+! 11/15 - DEFINE DATA/AGG has become /T instead of /E
 
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -89,13 +90,13 @@ LET fv1z = noexist[gz(unknown_aux)=zpts] + fvx
 go bn_vtree.sub fv1z
 
 ! aggregate (ensemble) dataset of file variables
-define data/agg my_agg = my_file_vars, other_file_vars, another_file_vars
+ENSEMBLE my_agg = my_file_vars, other_file_vars, another_file_vars
 go bn_vtree.sub fv1
 
 ! aggregation in which some members are uvars
 let/d=other_file_vars   fvx = fv1 + x[gx=fvx[d=1],i=1:3]
 let/d=another_file_vars fvx = 2*fv1 + x[gx=fvx[d=1],i=1:3]
-define data/agg my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
+ENSEMBLE my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
 go bn_vtree.sub fvx
 
 ! recursions
diff --git a/bench/bn_vtree_outfile.jnl b/bench/bn_vtree_outfile.jnl
index e22a787..96c3f1c 100644
--- a/bench/bn_vtree_outfile.jnl
+++ b/bench/bn_vtree_outfile.jnl
@@ -1,6 +1,7 @@
 ! bn_tree_outfile.jnl
 
 ! 8/2014 -- demonstrate SHOW VARIABLE/TREE/OUTFILE
+! 11/15 -- default for DEFINE DATA/AGG has become /T instead of /E
 
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -94,13 +95,13 @@ LET fv1z = noexist[gz(unknown_aux)=zpts] + fvx
 go bn_vtree_outfile.sub fv1z
 
 ! aggregate (ensemble) dataset of file variables
-define data/agg my_agg = my_file_vars, other_file_vars, another_file_vars
+ENSEMBLE my_agg = my_file_vars, other_file_vars, another_file_vars
 go bn_vtree_outfile.sub fv1
 
 ! aggregation in which some members are uvars
 let/d=other_file_vars   fvx = fv1 + x[gx=fvx[d=1],i=1:3]
 let/d=another_file_vars fvx = 2*fv1 + x[gx=fvx[d=1],i=1:3]
-define data/agg my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
+ENSEMBLE my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
 go bn_vtree_outfile.sub fvx
 
 ! recursions
diff --git a/bench/bn_warn_subspan.jnl b/bench/bn_warn_subspan.jnl
new file mode 100644
index 0000000..6058ed7
--- /dev/null
+++ b/bench/bn_warn_subspan.jnl
@@ -0,0 +1,15 @@
+! bn_warn_subspan
+! See ticket 1432. Isssue a note if a subspan modulo axis is 
+! within a cell of being full modulo span
+
+! This has a regular and an irregular  time axis that are subspan
+use axes_subspan
+
+! likewise for user-defined axes
+define axis/x=0:350:5/units=degrees_east xax
+DEFINE AXIS/cal=NOLEAP/t0=1-jan-0000/UNIT=days TAX={15.5, 45, 74.5, 105, 135.5, 166, 196.5, 227.5, 258, 288.5, 319, 349.5}
+
+! These are truly subspan modulo
+
+define axis/x=150:270:5/units=degrees_east xax
+DEFINE AXIS/cal=NOLEAP/t0=1-jan-0000/UNIT=days TAX={15.5, 45, 74.5, 105, 135.5, 166}
diff --git a/bench/bn_xml_output.jnl b/bench/bn_xml_output.jnl
index a82cdcd..80b8f44 100644
--- a/bench/bn_xml_output.jnl
+++ b/bench/bn_xml_output.jnl
@@ -3,68 +3,77 @@
 ! Illustrate the SHOW commands with /XML xml-style output
 ! V5.80 11/04 new tests for SHOW VAR/XML; global variables.
 
-! 22-Feb-2005 use SHO AXIS/XML `temp,return=taxis` instead
+! 22-Feb-2005 USE SHO AXIS/XML `temp,return=taxis` instead
 ! of naming the axes; other axes of the same name (e.g. TIME) 
 ! may have been defined in other benchmark scrips.
 
-USE gtsa056_2.cdf
+USE levitus_climatology.cdf
 
 SHO DATA/XML
 
-SHO DATA/VAR/XML
+SHO GRID/XML `temp,return=grid`
 
-SHO GRID/XML ps3du1
-
-SHO AXIS/XML `temp,return=xaxis`
-SHO AXIS/XML `temp,return=yaxis`
 SHO AXIS/XML `temp,return=zaxis`
 SHO AXIS/XML `temp,return=taxis`
 
+can dat/all
+
+! make some short files
+let/units="meters" myvar = 7
+save/clobber/file=a.nc myvar
+
+LET ddat = ZSEQUENCE({1126,1136,1146,1156,1166})
+save/clobber/file=b.nc ddat
+can var/all
+go bn_reset
+
+USE a.nc
+USE b.nc
+
 ! Define a dataset variable
 ! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
-LET/D=gtsa056_2 temp_180 = temp[X=160E:160W at AVE]
-
-USE coads_climatology
+LET/D=a temp_av = ddat[d=2,X=@AVE]
 
 SHOW DATA/XML
-SHO DATA/VAR/XML
+SHO DATA/VAR/XML 1
 
+CAN DAT/ALL
 
 ! tests of SHOW VAR/XML for global variables.
 CAN DATA/ALL
 CAN VAR/ALL
 
-USE coads_climatology
-USE gtsa056_2
+USE a
+USE b
 
 ! Define a dataset variable
-LET/D=gtsa056_2 temp_20 temp[Z=0:20 at SUM]
+LET/D=b temp_20 ddat[x=1:2 at SUM]
 
 ! Define a global variable
-LET t30 = temp[Z=0:30 at SUM]
+LET t30 = ddat[x=1:3 at SUM]
 
 ! Another variable, setting title, units, bad flag.
-LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral of SALT" salty = salt[Z=@IIN]
+LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral" salty = temp[x=@iin]
 
 ! Define a constant
 LET pi = 3.14
 
 ! Another variable, irrelevant in the current context
-LET my_sst = sst*12
+LET my_a = a*12
 
-! This lists all the variables except my_sst
+! This lists all the variables except my_a
 
 SHO VAR/XML
 
-! Now change datasets, so my_sst has a context, but t30 
-! does not temp_20 is listed because it is defined on a dataset
+! Now change datasets, so my_a has a context, but t30 
+! does not. temp_20 is listed becaUSE it is defined on a dataset
 
-SET DATA coads_climatology
+SET DATA a
 SHO VAR/XML
 
-! Change default dataset. Now we should just see pi and my_sst 
+! Change default dataset. Now we should just see pi and my_a 
 
-CAN DATA gtsa056_2
+CAN DATA b
 SHOW VAR/XML
 
 ! 8/7/2007
@@ -72,7 +81,10 @@ SHOW VAR/XML
 CANCEL DATA/ALL
 CANCEL VAR/ALL
 
-USE coads_climatology 
-LET t3 = sst[x=180,y=1,t="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]
+let tvar = t[gt=month_reg]
+save/clobber/file=a.nc tvar
+
+USE a
+LET t3 = tvar[t="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]
 SHOW VAR/XML
 
diff --git a/bench/bn_xml_repl.jnl b/bench/bn_xml_repl.jnl
index 495979a..7a10b1c 100644
--- a/bench/bn_xml_repl.jnl
+++ b/bench/bn_xml_repl.jnl
@@ -1,9 +1,13 @@
 ! bn_xml_repl.jnl
 ! replace > and < and & with their html equivalents.
 
-use coads_climatology
-set var/title="a title with & and > and < characters" sst
-set var/units="<<" sst
-set att sst.history = "Adding some ampersands.& & to the history"
+! make a short file
+let/units="meters" myvar = 7
+save/clobber/file=a.nc myvar
+can var/all
+use a.nc
+
+set var/title="a title with & and > and < characters" myvar
+set var/units="<<" myvar
+define att myvar.history = "Adding some ampersands.& & to the history"
 sh dat/xml/var
-shade/l=1 sst
diff --git a/bench/bug1845.nc b/bench/bug1845.nc
new file mode 100644
index 0000000..218dc08
Binary files /dev/null and b/bench/bug1845.nc differ
diff --git a/bench/coads_slice.nc b/bench/coads_slice.nc
new file mode 100644
index 0000000..f201c31
Binary files /dev/null and b/bench/coads_slice.nc differ
diff --git a/bench/ens1.nc b/bench/ens1.nc
index c7d7143..70585a1 100644
Binary files a/bench/ens1.nc and b/bench/ens1.nc differ
diff --git a/bench/err581_subspanx_fill_bug.jnl b/bench/err581_subspanx_fill_bug.jnl
index 8f57290..05c9419 100644
--- a/bench/err581_subspanx_fill_bug.jnl
+++ b/bench/err581_subspanx_fill_bug.jnl
@@ -1,5 +1,8 @@
 ! err581_subspanx_fill_bug.jnl
 ! bug 900: subspan longitude axis and hlimits gets wrong data
+! 
+! Further fixes 5/2016, with other subspan modulo work.
+! Don't list ppl$xlow, ppl$xhigh.
 
 use coads_climatology
 save/clobber/y=0/x=130e:80w/file=err581_subspanx_fill_bug.nc sst
@@ -9,7 +12,7 @@ set view left; shade/x=120e:80w sst  ! works correctly
 
 set view right; fill/x=120e:80w sst
 
-sh sym ppl$xmin, ppl$xmax    ! should be 131, 279
-sh sym ppl$xlow, ppl$xhigh   ! should be 165, 259
+! look at axis coord. range 5/9/2016
+sh sym ppl$xmin, ppl$xmax    ! should be 131, 279 
 
 sp rm -f err581_subspanx_fill_bug.nc
diff --git a/bench/err607_show_var_xml.jnl b/bench/err607_show_var_xml.jnl
index e158846..903ef8a 100644
--- a/bench/err607_show_var_xml.jnl
+++ b/bench/err607_show_var_xml.jnl
@@ -1,8 +1,17 @@
 ! Bug 1539 SHOW VAR/XML didnt show all vars.
 
 
-use gt4d011.cdf
-use coads_climatology
+
+! make some short files
+let/units="meters" temp = z[z=1:100:5]
+save/clobber/file=a.nc temp
+
+LET sst = x[x=1:15] + y[y=1:5] + t[gt=month_irreg] 
+save/clobber/file=b.nc sst
+can var/all
+
+use a
+use b
 
 let temp_1_regrid=temp[d=1,z=5.00:75.00 at ave]
 let sst_2_regrid=sst[d=2,t="15-Feb":"15-Mar"@ave]
diff --git a/bench/err611_return_precision.jnl b/bench/err611_return_precision.jnl
index 099227b..b099f16 100644
--- a/bench/err611_return_precision.jnl
+++ b/bench/err611_return_precision.jnl
@@ -3,6 +3,7 @@
 
 ! See bug 1611, where say "a`95,p=1`" yielded "a 95" but
 ! "a`94,p=1`" yielded "a94"
+! Note with ticket 2389 (5/2016), p=1 returns 1 digit, p=2 returns 2, etc.
 
 say "a`95,p=1`"
 say "a`94,p=1`"
diff --git a/bench/err62_thick_tic_time_axis.jnl b/bench/err62_thick_tic_time_axis.jnl
index 5a95f7d..a638689 100644
--- a/bench/err62_thick_tic_time_axis.jnl
+++ b/bench/err62_thick_tic_time_axis.jnl
@@ -6,6 +6,8 @@
 ! disappeared due to pixel aliasing. Fixed by setting
 ! the thick-line for these tics.
 
+! restore default setting
+ppl axlabp,-1,-1
 
 define axis/t=1-jan-1990:1-jan-2010:1/units=months tax
 
diff --git a/bench/err65_read_epic_cdf.jnl b/bench/err65_read_epic_cdf.jnl
index c081571..8c85dee 100644
--- a/bench/err65_read_epic_cdf.jnl
+++ b/bench/err65_read_epic_cdf.jnl
@@ -6,3 +6,16 @@ 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]
 
+! 1/2016 additional tests, reading and saving data,
+! getting attribute information. 
+
+set att/output=all .
+save/file=a.nc/clobber/k=1:5 t_28
+sp ncdump -h a.nc | grep INST_TYPE
+
+let evar = T_28.generic_name
+save/append/file=a.nc evar
+
+list ..dimnames
+
+
diff --git a/bench/err667_mode_desperate.jnl b/bench/err667_mode_desperate.jnl
index e75820c..b5bfb45 100644
--- a/bench/err667_mode_desperate.jnl
+++ b/bench/err667_mode_desperate.jnl
@@ -20,3 +20,5 @@ show mode desperate
 set mode desperate `96 * 1024 * 1024`
 show mode desperate
 can mode ignore
+
+cancel mode desperate
diff --git a/bench/err686_show_xml_letd.jnl b/bench/err686_show_xml_letd.jnl
new file mode 100644
index 0000000..8a30860
--- /dev/null
+++ b/bench/err686_show_xml_letd.jnl
@@ -0,0 +1,16 @@
+! ! bn_show_xml_letd
+! Testing SHOW DATA/VAR/XML with a let/D variable
+! Ticket 2441
+
+use coads_climatology.cdf
+use gtbc011.cdf
+let/d=1 u2 = u[d=2]
+let/d=1 v2 = v[d=2]
+let/d=1 w2 = w[d=2]
+let/d=1 salt2 = salt[d=2]
+sh dat 1
+
+sh dat/var/xml/outfile=out.xml/clobber 1
+
+! Showed w2 twice but missed u2.
+sp grep "var name" out.xml
diff --git a/bench/err693_std4d.jnl b/bench/err693_std4d.jnl
old mode 100755
new mode 100644
diff --git a/bench/err693_upcase_quoted_name.jnl b/bench/err693_upcase_quoted_name.jnl
index f989beb..2a2afc9 100644
--- a/bench/err693_upcase_quoted_name.jnl
+++ b/bench/err693_upcase_quoted_name.jnl
@@ -14,3 +14,4 @@ use aa.nc
 ! previously this failed to find the name.
 list 'abc'
 
+set mode/last upcase
diff --git a/bench/err695_grave_prec.jnl b/bench/err695_grave_prec.jnl
new file mode 100644
index 0000000..12f7adb
--- /dev/null
+++ b/bench/err695_grave_prec.jnl
@@ -0,0 +1,18 @@
+! err695_grave_prec
+! Bug 2323. Large numbers had incorrect results on grave-accent
+! evaluations, returning only 8 digits of precision
+
+list/nohead/p=16 1234567890123456, `1234567890123456`
+list/nohead/p=16 -1234567890123.456, `-1234567890123.456`
+
+! this was ok
+list/nohead/p=16 1.234567890123456, `1.1234567890123456`
+
+! check output when asking for lower precision 
+list/nohead/p=9 1234567890123456, `1234567890123456`
+list/nohead/p=6 1234567890123456, `1234567890123456`
+
+let var = 1.23456e+34
+say `var`
+
+say `var,prec=4`
diff --git a/bench/err696_2d_time_overlay.jnl b/bench/err696_2d_time_overlay.jnl
new file mode 100644
index 0000000..bccc5c1
--- /dev/null
+++ b/bench/err696_2d_time_overlay.jnl
@@ -0,0 +1,45 @@
+! err696_2d_time_overlay.jnl
+! ticket 2360: 2-D time overlay plots have never worked.
+
+! two different time axes
+
+def ax/edge/t=1-jan-1979:1-jan-2016:1/unit=year/t0=1-jan-1979 tax1
+def ax/edge/t=1-jan-1988:1-jan-2010:1/unit=year/t0=1-jan-1988 tax2
+let t1 = t[gt=tax1]
+let t2 = t[gt=tax2]
+let yr1 = tax_year(t1,t1)
+let yr2 = tax_year(t2,t2)
+let f1 = yr1 + 0*z[gz=1:5:1]
+let f2 = yr2 + 0*z[gz=2:3:1]
+
+can view
+
+! a 1-D overlay works correctly
+set view ul
+plot/step=con yr1
+plot/step=con/ov yr2
+
+set view ll
+
+! 2-D overlay was mis-located
+shade/lev=12 f1
+shade/ov/pal=grayscale/lev f2
+
+ppl shaset reset
+set view ur
+
+! Check a vertical time axis 
+let fx1 = yr1 + 0*x[gx=1:5:1]
+let fx2 = yr2 + 0*x[gx=2:3:1]
+shade/lev=12/title="X-T plot, vertical time axis" fx1
+shade/ov/pal=grayscale/lev fx2
+
+
+! Different time units
+set view lr
+def ax/edge/t=1-jan-1988:04-feb-2010:60/unit=day/t0=1-jan-1988 tax2
+
+shade/lev=12/title="Underlay units year, Overlay units days" f1
+shade/ov/pal=grayscale/lev f2
+
+
diff --git a/bench/err696_annotate_numeric.jnl b/bench/err696_annotate_numeric.jnl
new file mode 100644
index 0000000..263deeb
--- /dev/null
+++ b/bench/err696_annotate_numeric.jnl
@@ -0,0 +1,27 @@
+! err696_annotate_numeric
+! 1/7/2016
+! ticket 2350: a purely numeric string
+! didn't appear on the plot.
+
+use coads_climatology
+shade/l=1/nokey/pal=white sst
+
+! text including non-numeric has worked fine
+annotate/user/xpos=180/ypos=30 "30 with text"
+
+! numeric only, with and witbhout quotes
+
+annotate/user/xpos=180/ypos=20/halign=-1 "20"
+annotate/user/xpos=180/ypos=10/halign=-1 10
+
+! tests with /NOUSER
+annotate/nouser/xpos=1/ypos=2.5 40
+
+! strings or purely numeric, without quotes works ok
+annotate/nouser/xpos=1/ypos=2.0 1.3+7.89
+annotate/nouser/xpos=1/ypos=1.5 `1.3+7.89-154,prec=6`
+
+! commas, just write the whole thing
+annotate/nouser/xpos=1/ypos=1.0 "40,30,20"
+
+annotate/nouser/xpos=1/ypos=0.5 1,2,3,4,5
diff --git a/bench/err696_argument_blanks.jnl b/bench/err696_argument_blanks.jnl
new file mode 100644
index 0000000..5012d60
--- /dev/null
+++ b/bench/err696_argument_blanks.jnl
@@ -0,0 +1,17 @@
+! err696_argument_blanks.jnl
+! Ticket 2343: quoted argument with a blank at the end.
+
+
+! argument with a blank at the end
+go err696_argument_blanks_sub "hello "
+
+! Preserve multiple blanks at the end
+go err696_argument_blanks_sub "hello     "
+
+! 2 arguments; one with a blank at the end, next with a blank at the start.
+! Note the blanks at the start of Arg 1 are not preserved.  The command is 
+! translated to  MESSAGE/CONTINUE   Hi Hi there my friend 
+! and the blanks after MESSAGE/CONTINUE are just treated as a delimiter.
+
+go err696_argument_blanks_sub "  Hi Hi "  " my friend"
+
diff --git a/bench/err696_argument_blanks_sub.jnl b/bench/err696_argument_blanks_sub.jnl
new file mode 100644
index 0000000..7e5d3fd
--- /dev/null
+++ b/bench/err696_argument_blanks_sub.jnl
@@ -0,0 +1,3 @@
+! for bug2343 
+
+say ($1)there($2%.%)
diff --git a/bench/err696_centerlab_restore.jnl b/bench/err696_centerlab_restore.jnl
new file mode 100644
index 0000000..05cbc92
--- /dev/null
+++ b/bench/err696_centerlab_restore.jnl
@@ -0,0 +1,56 @@
+! err696_centerlab_restore
+! Ticket 2331. 
+! When a plot is made with 
+!   shade/SET/key=centerlab; ppl shade
+! Then the nextsubsequent plot still had the centered key labeling.
+
+
+use coads_climatology
+set view left
+shade/SET/l=1/key=centerlab sst
+ppl shade
+
+set view right
+shade/l=1 sst
+
+! ...although the next one does restore the default.
+shade/l=1 sst
+
+! Horizontal plots with the same behavior.
+cancel view
+set view upper
+shade/SET/l=1/key=centerlab,horiz sst
+ppl shade
+
+set view lower
+shade/l=1/key=horiz sst
+
+! FILL plots
+cancel view
+set view left
+fill/SET/l=1/key=centerlab sst
+ppl shade
+
+! This plot still had the labels centered
+set view right
+fill/l=1 sst
+
+! Ribbon plots
+cancel view
+set view left; plot/ribbon/vs/line/thick/key=cent/SET {1,2,3,4}, {1,2,3,4}, {1,2,3,4}
+ppl ribbon
+set view right; plot/ribbon/vs/line/thick  {1,2,3,4}, {1,2,3,4}, {1,2,3,4}
+
+! Polygon plots
+cancel view
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+
+let ypts = x/10
+let xpts = cos(x/10)
+
+set view upper
+polygon/trans/i=1:20/nolab/key=horiz,center/SET xpts+xsqr, ypts+ysqr, x*x/10
+ppl polygon
+set view lower
+polygon/trans/i=1:20/nolab/key=horiz  xpts+xsqr, ypts+ysqr, x*x/10
diff --git a/bench/err696_contour_conset.jnl b/bench/err696_contour_conset.jnl
new file mode 100644
index 0000000..bd4763f
--- /dev/null
+++ b/bench/err696_contour_conset.jnl
@@ -0,0 +1,27 @@
+! err696_contour_conset.jnl
+! Ticket 2351. The PPL CONSET command had stopped working to set 
+! the # of digits in contour labels.  See the setting in PPL LIST LEVELS
+
+contour/i=1:20/j=1:20/lev=(-10,10,2.125)/set/title="CONTOUR/SET with PPL CONSET,,4"  10*sin(i/3)*cos(j/4)
+ppl conset,,4
+ppl contour
+
+! This should show NDIG=3
+ppl list levels
+
+! Now make the same setting with CONTOUR/SIGDIG=
+contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/sigdig=4/title="CONTOUR/SIGDIG=4"  10*sin(i/3)*cos(j/4)
+
+! This should show NDIG=3
+ppl list levels
+
+! test CONTOUR/SET; CONSET; PPL CONTOUR settings
+contour/i=1:20/j=1:20/lev=(-10,10,2.125)/set/title="CONTOUR/SET with PPL CONSET,,4"  10*sin(i/3)*cos(j/4)
+ppl conset,0.07,4,,,,,,1
+ppl contour
+
+! test CONTOUR qualifiers that make CONSET settings. Should exactly overlay the previous plot.
+contour/over/color=red/i=1:20/j=1:20/lev=(-10,10,2.125)\
+/sigdig=4/siz=0.07/spacing=1  10*sin(i/3)*cos(j/4)
+
+frame/file=bn_contour_conset.gif
diff --git a/bench/err696_def_att.jnl b/bench/err696_def_att.jnl
new file mode 100644
index 0000000..7230542
--- /dev/null
+++ b/bench/err696_def_att.jnl
@@ -0,0 +1,28 @@
+! err696_def_att.jnl
+! tickets 2415, 2416
+! data type for defined axes
+
+use coads_climatology
+
+! previously the values were corrupted when defining numeric
+! attributes on a coordinate variable
+define att/output (`sst,return=xaxis`).new2 = {1,3,6}
+save/clobber/file=a.nc sst
+sp ncdump a.nc | grep -i coadsx
+
+can dat/all
+use coads_climatology
+
+! previously could only specify /TYPE=float or /TYPE=string
+
+! default types from the expression
+define att/output sst.newch = "A string"
+define att/output sst.newch = 158.12
+
+define att/output/type=byt sst.abyte = 5
+define att/output/type=int sst.aint = {-5,-12,-1556,0,1}
+define att/output/type=string sst.str_from_num = 978.43
+define att/output/type=double sst.dbint = 123.45678901
+
+save/clobber/file=a.nc sst
+sp ncdump a.nc | grep -i sst
diff --git a/bench/err696_def_ax_edges.jnl b/bench/err696_def_ax_edges.jnl
new file mode 100644
index 0000000..b229eb3
--- /dev/null
+++ b/bench/err696_def_ax_edges.jnl
@@ -0,0 +1,28 @@
+! err696_def_ax_edges
+! See ticket 2400
+! Incorrect coordinates when using /EDGES
+! Also incorrectly marked axes as irregular
+
+let edges = x[gx=0:360:20]
+
+! Previuosly these axes were marked as irregular, but with correct coordinates
+def ax/edge/x xax = edges[i=1:17]; sh axis xax
+def ax/edge/x xax = x[gx=0:360:20]; sh axis xax
+
+! This axis incorrectly showed coordinates starting at x=20.
+! It was found to be regular but start pt incorrect
+def ax/edge/x xax = x[gx=20:320:20]; sh axis xax; list x[gx=xax]
+
+! This was previously irregular, with correct coordinates
+def ax/edge/x xax = x[gx=20:320:20]; sh axis xax; list x[gx=xax]
+
+! Actually irregular edge locations
+let edges = {0,10,20,30,60,90,150,200,280,360}
+def ax/edge/x xax = edges; sh axis xax; list x[gx=xax]
+
+def ax/edge/x xax = edges[i=1:8]; sh axis xax; list x[gx=xax]
+
+! This one is regular
+def ax/edge/x xax = edges[i=1:4]; sh axis xax; list x[gx=xax]
+
+
diff --git a/bench/err696_def_ax_f.jnl b/bench/err696_def_ax_f.jnl
new file mode 100644
index 0000000..0c22142
--- /dev/null
+++ b/bench/err696_def_ax_f.jnl
@@ -0,0 +1,19 @@
+! err696_def_ax_f.jnl
+! See ticket 2380
+! *acm* 4/2016
+
+! Defining F axis using /F=LO:HI are ok
+define axis/f=1-jan-1980:3-jan-1980:1/t0=1-jan-1980/unit=days f_ax
+list _f[gf=f_ax]
+define axis/f=1-jan-1980:3-jan-1980/np=3/t0=1-jan-1980/unit=days f_ax
+list _f[gf=f_ax]
+
+! But just /F  with a /T0 was putting the axis in the T direction 
+! Previously listing _F resulted in an error
+define axis/f/t0=1-jan-1980/unit=days f_ax = {1,2,3}
+list _f[gf=f_ax]
+
+! This came from code allowing the DEFINE to leave off the /F or /T
+! If there's a T0, its an F axis. Still allow this; it becomes a T axis.
+define axis/t0=1-jan-1980/unit=days aax = {1,2,3}
+list _t[gt=aax]
diff --git a/bench/err696_e_component_mem_crptn.jnl b/bench/err696_e_component_mem_crptn.jnl
new file mode 100644
index 0000000..31dc01f
--- /dev/null
+++ b/bench/err696_e_component_mem_crptn.jnl
@@ -0,0 +1,33 @@
+! canceling of an E aggregation dataset is leaving
+! corrupted variables in memory as seen by the variable names "%%"
+
+use ens1, ens2, ens3, ens4
+define data/agg/E fourfiles = ens1, ens3, ens2, ens4
+
+show data/brief
+
+list/i=3 sst[T=@ave]
+
+show mem/all
+cancel data fourfiles
+show mem/all
+
+exit
+=====================================
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+all data in memory:
+ %%[D=ens4]                        YT    mr:5  blk1:5  nblk:1
+    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45 ...  / ...         ...  / ...
+    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34 ...  / ...         ...  / ...
+ 
+ %%[D=ens2]                        YT    mr:4  blk1:4  nblk:1
+    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45 ...  / ...         ...  / ...
+    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34 ...  / ...         ...  / ...
+ 
+ %%[D=ens3]                        YT    mr:3  blk1:3  nblk:1
+    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45 ...  / ...         ...  / ...
+    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34 ...  / ...         ...  / ...
+ 
+ %%[D=ens1]                        YT    mr:1  blk1:1  nblk:1
+    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45 ...  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34 ...  /4.5          ...  / ...
diff --git a/bench/err696_ft_calendars.jnl b/bench/err696_ft_calendars.jnl
new file mode 100644
index 0000000..47cdcaf
--- /dev/null
+++ b/bench/err696_ft_calendars.jnl
@@ -0,0 +1,17 @@
+! err696_ft_calendars.jnl
+! see ticket 2332: check for matching calendars when
+! there are T and F axes in a file.
+
+! If the T or F calnedar is specified, use it for both axes 
+! e.g. reference time has a calendar, forecast time does not list a calendar.
+
+use ft_cal_one.nc
+sh dat
+
+! Intentional error: two time axes with different calendars
+set mode ignore
+use ft_cal_mixed.nc
+
+can mode ignore
+
+can data/all
diff --git a/bench/err696_hovmuller_mod_fill.jnl b/bench/err696_hovmuller_mod_fill.jnl
new file mode 100644
index 0000000..4daccb8
--- /dev/null
+++ b/bench/err696_hovmuller_mod_fill.jnl
@@ -0,0 +1,8 @@
+! err696_hovmuller_mod_fill.jnl
+! 3/7/2016 ACM
+! Ticket 2374
+! A single color extending across the plot was missing
+
+use coads_slice.nc
+fill/lin/t=1-jan-0000:31-dec-0001/hlim=1-jan-0000:1-jan-0001/x=180/lev=8 sst
+
diff --git a/bench/err696_mem_err_report.jnl b/bench/err696_mem_err_report.jnl
new file mode 100644
index 0000000..fed645d
--- /dev/null
+++ b/bench/err696_mem_err_report.jnl
@@ -0,0 +1,39 @@
+! err696_mem_err_report.jnl
+! 1/21/2016 *acm*
+! Ticket 2354: The error message shows the wrong number for memory needed.
+!
+! Try to load some data larger than the default amount of memory
+
+let memsize = ($ferret_memory)
+set mem/siz=2
+
+
+def axis/x=1:360:1 xaxis
+def axis/y=1:180:1 yaxis
+def axis/z=1:20:1 zaxis
+define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
+
+let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
+sh grid bigvar
+
+
+set mode ignore
+load/l=1:5 bigvar
+
+! Previously the number Mwords shown was too low
+show sym fer_last_error
+cancel mode ignore
+
+! Get the number Ferret says it needs
+let ms1 = `strrindex("($fer_last_error)", ":")`
+let ms2 = `strindex("($fer_last_error)", "Mword")`
+let siz = substring("($fer_last_error)", `ms1+1`, `ms2-ms1-1`)
+
+! Increase memory accordingly
+
+set mem/siz=`siz`
+load/l=1:5 bigvar
+
+! restore default
+set mem/siz=`memsize`
+
diff --git a/bench/err696_mod_sub_fln.jnl b/bench/err696_mod_sub_fln.jnl
new file mode 100644
index 0000000..e6fb241
--- /dev/null
+++ b/bench/err696_mod_sub_fln.jnl
@@ -0,0 +1,16 @@
+! err696_mod_sub_fln.jnl
+! Ticket 2366, @FLN on a modulo subspan axis 
+! smears results across what should not be filled in.
+
+def ax/x=0:180:10/unit=degree_e xax
+let xx = x[gx=xax]
+
+let b = IF xx GE 50 OR xx EQ 20 THEN xx
+save/clob/file=a.nc b
+can var/all
+
+use a
+
+! Do not get data from across the modulo void point at 90W
+list/x=-180:720 b, b[x=@fln]
+
diff --git a/bench/err696_mode_cal_f.jnl b/bench/err696_mode_cal_f.jnl
new file mode 100644
index 0000000..9817a10
--- /dev/null
+++ b/bench/err696_mode_cal_f.jnl
@@ -0,0 +1,39 @@
+! err696_mode_cal_f.jnl
+! ticket 2399 MODE CALENDAR and F calendar axes
+! The calendar setting should apply to T and F axes
+
+show mode calendar
+
+def ax/edges/t=1-jan-2016:1-mar-2016:1/unit=day/t0=1-jan-2016 t_axis
+def ax/edges/f=1-jan-2016:1-mar-2016:1/unit=day/t0=1-jan-2016 f_axis
+let a = _t[gt=t_axis] * {1,2,3}
+let b = _f[gf=f_axis] * {1,2,3}
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+
+set mode calendar:days
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+
+set mode/last calendar
+cancel mode calendar
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+
+set mode/last calendar
+show mode calendar
+
+! If they are not calendar axes, it's all fine, just not
+! labeled with dates
+
+def ax/edges/t=1:40:1/unit=day t_axis
+def ax/edges/f=1:40:1/unit=day f_axis
+
+let a = _t[gt=t_axis] * {1,2,3}
+let b = _f[gf=f_axis] * {1,2,3}
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
diff --git a/bench/err696_multiple_slashes.jnl b/bench/err696_multiple_slashes.jnl
new file mode 100644
index 0000000..82759d2
--- /dev/null
+++ b/bench/err696_multiple_slashes.jnl
@@ -0,0 +1,56 @@
+! err696_multiple_slashes.jnl
+! 1/25/2016 *acm*
+!
+! For ticket 2356
+! Change parsing to allow multiple slashes in a row.
+! simplifies DEFINE SYMBOL QUALIFIERS= kinds of definitions
+
+def sym qual /x=1:2
+
+set reg/($qual)
+show region
+cancel region
+
+
+! Several qualifiers on a command
+set reg//x=1:2///y=4:7
+show region
+cancel region
+
+! Qualifiers with a command argument
+use coads_climatology
+def sym plotqual = /pal=grayscale/line//key=cont
+def sym regqual = /x=300:360///y=-20:20/L=3
+
+fill/($regqual)($plotqual) sst
+
+! command lines with urls unchanged
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+   set data///format=cdf http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+   let//d=coads_sst myvar = 1
+   sh dat
+   cancel data/all
+ENDIF
+
+! Other syntax examples taken from bn_syntax but with extra slashes
+
+! Repeat loop
+cancel region
+cancel data/all
+show region;repeat//l=1:2 (show data;sh reg);can reg;show reg
+
+! continuation lines
+define axis \ ! comment on the command
+//x=1:10:1 \  ! comment on the qualifier
+xax\          ! comment on the argument
+\             ! and an extra for good measure
+              ! this line is significant -- completes the command
+show axis xax; cancel axis xax  ! clean up
+
+! Allow extra slashes at the end of the command line
+set reg/x=1:2/; sho reg
+set reg/x=1:4//; sho reg
+
+can reg
+repeat/l=1:2 (set reg/x=1:4//)
+
diff --git a/bench/err696_only_inf_lev.jnl b/bench/err696_only_inf_lev.jnl
new file mode 100644
index 0000000..bf84fdb
--- /dev/null
+++ b/bench/err696_only_inf_lev.jnl
@@ -0,0 +1,23 @@
+! Bug 2326: levels with only a value and (inf) or (-inf)
+! should show values less-equal or greater-equal to that level.
+
+use coads_climatology; set reg/l=1
+
+! The plots should be the same left to right; just a triangle key
+! on the right
+set view ul; shade/lev=(20)(50) sst
+set view ur; shade/lev=(20)(inf) sst
+set view ll; shade/lev=(-50)(20) sst
+set view lr; shade/lev=(-inf)(20) sst
+
+! Horizontal keys
+can view
+set view ul; fill/lev=(20)(50) sst
+set view ur; fill/lev=(20)(inf) sst
+set view ll; fill/lev=(-50)(20) sst
+set view lr; fill/lev=(-inf)(20) sst
+
+! silly degenerate case, two-sided inf's
+can view
+set view ul; shade/lev=(-inf)(22)(inf) sst
+set view ur; shade/key=horiz/lev=(-inf)(22)(inf) sst
diff --git a/bench/err696_plot_ax_ppl.jnl b/bench/err696_plot_ax_ppl.jnl
new file mode 100644
index 0000000..1e3699d
--- /dev/null
+++ b/bench/err696_plot_ax_ppl.jnl
@@ -0,0 +1,79 @@
+! err696_plot_ax_ppl.jnl
+! ticket 2327
+!
+! restore settings properly after a PLOT/axes= 
+! if there is a ppl axis-setting command before next plot
+
+plot/vs/noax 0,0
+ set view upper
+ppl axlabp 0 -1
+plot/nolab/vs 0,0
+
+ set view lower
+ppl axlabp 0 -1
+plot/nolab/vs 0,0
+
+can view
+vector/i=1:40/j=1:30/nolab/noax  j-20+(i-i),i-20+(j-j)
+
+set view upper
+ppl axlabp 0 -1
+vector/i=1:40/j=1:30/nolab j-20+(i-i),i-20+(j-j)
+
+ set view lower
+ppl axlabp 0 -1
+vector/i=1:40/j=1:30/nolab j-20+(i-i),i-20+(j-j)
+
+can view
+let var2d = i+j
+
+shade/i=1:40/j=1:30/nolab/noax var2d
+ set view upper
+ppl axlabp 0 -1
+shade/i=1:40/j=1:30/nolab var2d
+
+ set view lower
+ppl axlabp 0 -1
+shade/i=1:40/j=1:30/nolab var2d
+
+can view
+
+contour/i=1:40/j=1:30/nolab/noax var2d
+ set view upper
+ppl axlabp 0 -1
+contour/i=1:40/j=1:30/nolab var2d
+
+ set view lower
+ppl axlabp 0 -1
+contour/i=1:40/j=1:30/nolab var2d
+
+can view
+
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+let ypts = x/10
+let xpts = cos(x/10)
+
+polygon/trans/i=1:100/nolab/noax xpts+xsqr, ypts+ysqr, x*x/10
+
+ set view upper
+ppl axlabp 0 -1
+polygon/trans/i=1:100/nolab  xpts+xsqr, ypts+ysqr, x*x/10
+
+ set view lower
+ppl axlabp 0 -1
+polygon/trans/i=1:100/nolab  xpts+xsqr, ypts+ysqr, x*x/10
+can view
+
+! restore axis settings after a plot/set with/axes=
+
+set view upper
+plot/i=1:100/axes=1,0,0,1/set/title="labels" i*cos(i/8)
+ppl xlab "a label"
+ppl labset, , , 0.08
+ppl ylab "a multi line y label<NL>here"
+ppl plot
+
+set view lower
+plot/i=1:199 i*cos(i/10)
+
diff --git a/bench/err696_poly_over_label.jnl b/bench/err696_poly_over_label.jnl
new file mode 100644
index 0000000..44c6022
--- /dev/null
+++ b/bench/err696_poly_over_label.jnl
@@ -0,0 +1,27 @@
+! err696_poly_over_label
+! Tiket 2396: incorrect label in the lower
+! left on a POLY/OVER with just 2 arguments.
+
+use levitus_3d_subset.nc
+let allmissing = 0/0 + temp
+shade/nolabel/j=1 allmissing
+
+! Previously this plot had an incorrect label of ALLMISSING
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}
+ppl list labels  ! showed allmissing for lab2 now says cnst
+
+shade/nolabel/j=1 allmissing
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}, 2
+
+ppl list labels  ! shows cnst for lab2
+
+shade/nolabel/j=1 allmissing
+let cvar = 2
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}, cvar
+ppl list labels  ! shows cvar for lab2
+
+! color var for 2 rectangles with multiple values
+shade/nolabel/j=1 allmissing
+let cvar = {2,3}
+polygon/ov {120.2,121,121,120.2,,120.2,121,121,120.2},{4000,4000,1000,1000,,800,800,200,200}, cvar
+ppl list labels  ! shows cvar for lab2
diff --git a/bench/err696_red_keylab.jnl b/bench/err696_red_keylab.jnl
new file mode 100644
index 0000000..369ea9f
--- /dev/null
+++ b/bench/err696_red_keylab.jnl
@@ -0,0 +1,10 @@
+! err696_red_keylab.jnl
+! Ticket 2375: outline and labels of color key were
+! drawn in red on an overlay.
+
+use levitus_climatology
+contour/lev=(0) temp
+
+! Always label the color key in pen0
+fill/over/nolab/key/lev=v,2min temp
+
diff --git a/bench/err696_repeat_escapes.jnl b/bench/err696_repeat_escapes.jnl
new file mode 100644
index 0000000..cce4ff1
--- /dev/null
+++ b/bench/err696_repeat_escapes.jnl
@@ -0,0 +1,14 @@
+! err696_repeat_escapes.jnl
+! Ticket 2376 - parsing error with escaped grave-accent syntax
+
+let a = "seq 1 3"
+sp echo \``a`\`
+
+! the escapes were removed on parsing the initial
+! command rather than keeping them until individual
+! commands parsed within the loop
+repeat/i=1:2 (sp echo \``a`\`)
+
+! nested repeats
+repeat/k=1:3 (rep/i=1:2 (sp echo \``a`\`))
+
diff --git a/bench/err696_return_prec.jnl b/bench/err696_return_prec.jnl
new file mode 100644
index 0000000..9416223
--- /dev/null
+++ b/bench/err696_return_prec.jnl
@@ -0,0 +1,36 @@
+! err696_return_prec.jnl
+! ACM 5/16 See ticket 2389.  
+! For grave-accent returns, adjust the formatting so that `var,p=2` really 
+! means 2 digits, and returning an exponential rather than a long integer 
+! with lots of zero's. 
+
+! Both of these as exponentials. Prev. the second switched to an integer.
+say `1.55551e8,p=2`
+say `1.55551e7,p=2`
+
+! Return only as many digits as requested
+
+say `1.555555551e-9,p=1`
+say `1.555555551e-9,p=2`
+say `1.555555551e-9,p=3`
+
+say `1.555555551e-9,p=5`
+say `1.555555551e-9,p=7`
+say `1.555555551e-9,p=10`
+
+! For large numbers, return an fixed-point value only when the number 
+! of digits is at least the magnitude of the value
+
+say `1.55551e8,p=2`
+say `1.55551e8,p=3`
+say `1.55551e8,p=5`
+say `1.55551e8,p=9`
+say `1.55551e8,p=10`
+
+! Previously these returned fixed-point numbers with trailing zero's 
+! after the decimal point. These are removed.
+say `1.55555551e8,p=14`
+say `1.555555001e8,p=14`
+
+
+
diff --git a/bench/err696_return_type.jnl b/bench/err696_return_type.jnl
new file mode 100644
index 0000000..d84de9a
--- /dev/null
+++ b/bench/err696_return_type.jnl
@@ -0,0 +1,27 @@
+! err696_return_type
+! See ticket #2367
+! incorrect return type when a user var 
+! uses an expression involving alternative string versions of
+! a numeric exernal function
+
+! this works, explicitly calling xcat_str
+let c = xcat_str({"e","f"},{"g","h"})
+let d = c
+list d
+
+! returned pointers not strings
+let a = xcat({"a","b"},{"c","d"})
+let b = a
+list b
+
+! Make more levels of variables, mixing xcat_str and xcat.
+
+let p = xcat_str({"1","2"},{"3","4"})
+let q = p
+
+let r = xcat({"5","6"},{"7","8"})
+let s = r
+
+! previously returned a string/numeric data type mix-up err.
+let allcat = xcat(q,s)
+list allcat
diff --git a/bench/err696_save_noupcase.jnl b/bench/err696_save_noupcase.jnl
new file mode 100644
index 0000000..f7d4152
--- /dev/null
+++ b/bench/err696_save_noupcase.jnl
@@ -0,0 +1,27 @@
+! err696_save_noupcase
+! Ticket 2336: When UPCASE canceled an extra upcase axis 
+!  was written to a file - only when user-defined axis.
+!
+! Note as part of this fix, if MODE UPCASE is canceled, 
+! then it also works as if SAVE/KEEP_AXISNAMES was given.
+! If keeping the original names then also don't write the
+! Ferret-added additions, e.g. TIME1 if there was already 
+! a time axis; or a subset addition.
+
+
+! Tell Ferret to write everything in the original case
+cancel mode upcase
+
+! Define some axes and variables
+define axis/t=1-jan-2001:31-dec-2001:1/unit=days tday
+define axis/x=10:150:10/units=degrees_east xax
+
+let tt = t[gt=tday]
+let var  = 0*tt + x[gx=xax]
+
+save/clobber/file=myfile.nc tt, var
+
+! An extra TDAY axis was written out
+sp ncdump -h myfile.nc
+
+set mode/last upcase
diff --git a/bench/err696_shade_subspan_clim.jnl b/bench/err696_shade_subspan_clim.jnl
new file mode 100644
index 0000000..57dab43
--- /dev/null
+++ b/bench/err696_shade_subspan_clim.jnl
@@ -0,0 +1,30 @@
+! err696_shade_subspan_clim
+! See ticket 2404
+
+def ax/edges/t/unit="day"/t0=1-jan-0001/cal=gregorian/modulo=365.25 \
+tax = {31, 59.2425, 90.2425, 120.2425, 151.2425, 181.2425, 212.2425}
+let a = t[gt=tax]
+save/clob/file=a.nc a
+can var a
+can axis tax
+use a.nc
+can view
+
+! The top-left SHADE plot looks fine.
+set view ul; shade a*x[gx=0:10:1]
+sh sym yaxis*
+
+! But the top-right SHADE plot was all messed up; it shifts the data 
+! later by a full month, and stretches the last (shifted) cell all 
+! the way to the upper limit of the plot domain
+
+set view ur; shade/t=1-jan-0001:1-jan-0002 a*x[gx=0:10:1]
+sh sym yaxis*
+
+! In the bottom-right line plot, the actual plotted data look ok. 
+! But the plot limits extend all the way from 1-JUL-0000 to 1-MAR-0002, 
+! rather than being shrink-wrapped around the data.
+
+set view lr; plot/step=con/t=1-jan-0001:1-jan-0002 a
+
+sh sym xaxis*
diff --git a/bench/err696_singlevec_over.jnl b/bench/err696_singlevec_over.jnl
new file mode 100644
index 0000000..010c09a
--- /dev/null
+++ b/bench/err696_singlevec_over.jnl
@@ -0,0 +1,34 @@
+! err696_singlevec_over.jnl
+! Ticket 2365: overlay a single vector. If 
+! /nolab is added it disappears.
+
+use gtbc011
+vector/k=1/l=1   u,v
+let xa = 200
+let ya = 10
+let ya=10
+define axis/unit=degrees_east/x/from_data xax=xa
+define axis/unit=degrees_north/y/from_data yax=ya
+define grid/x=xax/y=yax xyg
+let u1 = 10 + 0*(x[gx=xyg]+y[gy=xyg] )
+let v1 = 10 + 0*(x[gx=xyg]+y[gy=xyg] )
+! Now I can plot the vector
+vec/over/len=10 u1,v1
+
+! PPL_XSKIP is 1, the single vector
+show sym ppl_vec*skip
+
+! Try it with /nolab added
+vector/k=1/l=1   u,v
+ vec/over/len=10/nolab u1,v1
+
+! PPL_XSKIP should still be 1
+! (with the bug, it was 4 from the vector underlay plot)
+show sym ppl_vec*skip
+
+! As an aside, now return PPL_VECLEN for VECTOR/NOLABEL plots.
+! previously this wasnt done.
+
+use gtbc011
+vector/k=3/l=1/nolab  u,v
+show symbol ppl_veclen
diff --git a/bench/err696_subspan_mod_in_expr.jnl b/bench/err696_subspan_mod_in_expr.jnl
new file mode 100644
index 0000000..144de8e
--- /dev/null
+++ b/bench/err696_subspan_mod_in_expr.jnl
@@ -0,0 +1,23 @@
+! err696_subspan_mod_in_expr.jnl
+! ticket 1845: a subspan modulo due to context info buried
+! in a multi-layer expression isn't applied when setting
+! the time axis limits for the plot.
+! *acm* 5/2016
+
+use bug1845.nc
+set v upper
+shade/x=137:146 salinity[l=1] -  salinity[l=2]
+sh sym xaxis_m*
+
+
+! When the region information is embedded a couple levels down inside 
+! the expressions - in the square brackets, and then an expression involving
+! subtraction - the region isn't treated correctly, and the upper limit is
+! the modulo void point. 
+
+! Previously XAXIS_MAX was 496.4, the x axis too long, and most of the plot was blank
+
+set v lower
+shade salinity[x=137:146,T="28-Mar-2011 00:00"] - salinity[x=137:146,T="28-Mar-2011 03:00"]
+sh sym xaxis_m*
+
diff --git a/bench/err696_subspan_mod_strides.jnl b/bench/err696_subspan_mod_strides.jnl
new file mode 100644
index 0000000..ea31c85
--- /dev/null
+++ b/bench/err696_subspan_mod_strides.jnl
@@ -0,0 +1,21 @@
+! err696_subspan_mod_strides 
+! See ticket 513. Axis is subspan modulo, and strides
+! on a plot with a larger region than the axis span caused the 
+! shade plot to smear out beyond the edges.
+
+define axis/x/units=degrees_e xax = {-82.96,-81.46,-79.96,-78.47,-76.97,-75.48,-73.98,-72.48,-70.99,-69.49}
+let xx = x[gx=xax]
+let yy = y[y=4:20:2]
+let d10 = randu(xx) - randu(yy)
+
+! previously smeared out to the plot edges.
+set view upper
+shade/hlim=-95:-60/vlim=0:25 d10[i=1:10:2,j=1:10]
+
+! similar behavior with overlays
+set view lower
+use coads_climatology
+shade/L=3/pal=white/nokey/x=-180:0/y=0:30/title="Overlay Test" sst
+shade/over d10[i=1:10:2,j=1:10]
+
+frame/file=bn_subspan_mod_strides.gif
diff --git a/bench/err696_subspan_transforms.jnl b/bench/err696_subspan_transforms.jnl
new file mode 100644
index 0000000..346123c
--- /dev/null
+++ b/bench/err696_subspan_transforms.jnl
@@ -0,0 +1,43 @@
+! err696_subspan_transforms.jnl
+! See ticket 2364.  Results previously 
+! put results at the modulo void point.
+
+def ax/x=0:180:20/unit=degrees_e xaxis
+let a = x[gx=xaxis]
+save/clob/file=a.nc a
+can var a; can ax xaxis; use a.nc
+ list/x=0:720 a, a[x=@ddc]
+ list/x=0:720 a, a[x=@ddf]
+ list/x=0:720 a, a[x=@ddb]
+ list/x=0:720 a, a[x=@shf]
+ list/x=0:720 a, a[x=@sbx]
+ list/x=0:720 a, a[x=@sbn]
+ list/x=0:720 a, a[x=@swl]
+ list/x=0:720 a, a[x=@shn]
+ list/x=0:720 a, a[x=@spz]
+ list/x=0:720 a, a[x=@med]
+ list/x=0:720 a, a[x=@smx]
+ list/x=0:720 a, a[x=@smn]
+ list/x=0:720 a, a[x=@wgt]
+ list/x=0:720 a, a[x=@spx]
+
+! Note that Running Sum and Indefinite Integral, Event mask
+! now restart in each branch.
+ list/x=0:720 a, a[x=@rsu]
+ list/x=0:720 a, a[x=@iin]
+ list/x=0:720 a, a[x=@evnt:80]
+
+
+! Transforms that deal with gaps
+can dat/all
+def ax/x=0:180:10/unit=degrees_e xaxis
+let a = if x[gx=xaxis] gt 40 and x[gx=xaxis] le 150 then x[gx=xaxis]
+save/clob/file=a.nc a
+can var a; can ax xaxis; use a.nc
+ list/x=0:720 a, a[x=@fav]
+ list/x=0:720 a, a[x=@fnr]
+ list/x=0:720 a, a[x=@cia]
+ list/x=0:720 a, a[x=@cib]
+ list/x=0:720 a, a[x=@cda]
+ list/x=0:720 a, a[x=@cdb]
+
diff --git a/bench/err696_time_overlay.jnl b/bench/err696_time_overlay.jnl
new file mode 100644
index 0000000..3f77e11
--- /dev/null
+++ b/bench/err696_time_overlay.jnl
@@ -0,0 +1,16 @@
+! err696_time_overlay
+! bug 2334, first plot/over takes too long and the line is incorrect.
+
+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
+set view upper
+plot t[gt=tax_nlp]
+plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
+sp date
+
+sp date
+set view lower
+plot t[gt=tax_jul]
+plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
+sp date
diff --git a/bench/err696_write_no_dim.jnl b/bench/err696_write_no_dim.jnl
new file mode 100644
index 0000000..42205a7
--- /dev/null
+++ b/bench/err696_write_no_dim.jnl
@@ -0,0 +1,13 @@
+! err696_write_no_dim.jnl
+! ticket 2241: save a subset of a variable whose grid 
+! contains dimensions that are not coordinate variables
+
+use nodim
+sh dat
+
+! previously this gave an error
+save/clobber/file=a.nc/i=30:35  expocode, num_obs, temp
+
+! file has a coordinate variable with the subset in the OBS dimension
+sp ncdump -c a.nc
+ 
\ No newline at end of file
diff --git a/bench/err69_levels_v.jnl b/bench/err69_levels_v.jnl
index 88c16f2..f95070d 100644
--- a/bench/err69_levels_v.jnl
+++ b/bench/err69_levels_v.jnl
@@ -5,6 +5,7 @@
 ! based levels returned useless levels. Changes 
 ! made to throw out data outside 3 std when 
 ! computing the mean and std dev for color levels.
+! Note: fixes to LEV=V 2/2016 
 
 use "lev_v_bug.nc"
 shade/lev=v var2d
diff --git a/bench/ft_cal_mixed.nc b/bench/ft_cal_mixed.nc
new file mode 100644
index 0000000..1d87691
Binary files /dev/null and b/bench/ft_cal_mixed.nc differ
diff --git a/bench/ft_cal_one.nc b/bench/ft_cal_one.nc
new file mode 100644
index 0000000..fd99fbf
Binary files /dev/null and b/bench/ft_cal_one.nc differ
diff --git a/bench/nodim.nc b/bench/nodim.nc
new file mode 100644
index 0000000..da054d2
Binary files /dev/null and b/bench/nodim.nc differ
diff --git a/bench/run1.nc b/bench/run1.nc
index 02929ef..d2d688d 100644
Binary files a/bench/run1.nc and b/bench/run1.nc differ
diff --git a/bench/run_all b/bench/run_all
index d42a222..555a799 100755
--- a/bench/run_all
+++ b/bench/run_all
@@ -59,35 +59,18 @@ umask 002     #  make all files group deletable  3/16
 
 set rhlev = "0"
 
-# Solaris may have HOSTTYPE=sun, or HOSTTYPE=solaris
-if ( $HOSTTYPE =~ *sun* ) then
-   if ( `uname -r` =~ *5*  ) then
-      set machine = "sol"
-   else
-      set machine = "sun"
-   endif
-else if ( $HOSTTYPE =~ *solaris* ) then
-   set machine = "sol" 
-else if ( $HOSTTYPE =~ *alpha* ) then
-   set machine = "alp" 
-else if ( $HOSTTYPE =~ *aix* ) then
-   set machine = "aix" 
-else if ( $HOSTTYPE =~ *iris* ) then
-   set machine = "sgi"
-else if ( $HOSTTYPE =~ *hp* ) then
-   set machine = "hp"
-else if ( $HOSTTYPE =~ *ia64*) then
-    set machine = "ia64-linux"
-else if ( $HOSTTYPE =~ *x86_64-linux*) then
-    set machine = "x86_64-linux"
-    if ( `uname -r` =~ *el6* ) then
-       set rhlev = "six"
-    endif
-else if ( $HOSTTYPE =~ *linux*) then
-    set machine = "linux"
-else
-   set machine = "unknown_host"
-endif
+if ( (`uname -s` == "Linux") && (`uname -m` == "x86_64") ) then
+     set machine = "x86_64-linux"
+     if ( `uname -r` =~ *el6* ) then
+        set rhlev = "six"
+     endif
+else if ( (`uname -s` == "Linux") && (`uname -m` == "i686") ) then
+     set machine = "linux"
+else if ( (`uname -s` == "Darwin") && (`uname -m` == "x86_64") ) then
+    set machine = "x86_64-darwin"
+ else
+    set machine = "unknown_host"
+ endif
 
 if ($rhlev == six) then 
   echo six
@@ -168,11 +151,12 @@ ln -s $machine_stream stream_data_link.unf
 
 #set up proper stream testing jnl file - depends on endianness
 rm -f bn_test_stream.jnl
-if ($machine == "linux" || $machine == "alp" || $machine == "x86_64-linux" || $machine == "ia64-linux") then
+# 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
-else
-    ln -s bn_test_stream_big.jnl bn_test_stream.jnl
-endif
+# else
+#     ln -s bn_test_stream_big.jnl bn_test_stream.jnl
+# endif
 
 #Set up for metafile/gif testing
 set check_met = check_metafiles
@@ -321,8 +305,6 @@ while ($count < 5)
     @ count++
 end
 
-mv bnplot.gif.~1~ bnplot-1.gif
-mv bnplot.gif.~2~ bnplot-2.gif
 
 mv new.plt bat.plt_9
 mv bat.plt bat.plt_8
diff --git a/bench/stream10by5.unf b/bench/stream10by5.unf
deleted file mode 100644
index 37de5b8..0000000
Binary files a/bench/stream10by5.unf and /dev/null differ
diff --git a/bench/stream10by5_aix.unf b/bench/stream10by5_aix.unf
deleted file mode 100644
index 35de337..0000000
Binary files a/bench/stream10by5_aix.unf and /dev/null differ
diff --git a/bench/stream10by5_alp.unf b/bench/stream10by5_alp.unf
deleted file mode 100644
index 0629c37..0000000
Binary files a/bench/stream10by5_alp.unf and /dev/null differ
diff --git a/bench/stream10by5_dec.unf b/bench/stream10by5_dec.unf
deleted file mode 100644
index 0629c37..0000000
Binary files a/bench/stream10by5_dec.unf and /dev/null differ
diff --git a/bench/stream10by5_i386-apple-darwin.unf b/bench/stream10by5_i386-apple-darwin.unf
deleted file mode 100644
index 37de5b8..0000000
Binary files a/bench/stream10by5_i386-apple-darwin.unf and /dev/null differ
diff --git a/bench/stream10by5_sgi.unf b/bench/stream10by5_sgi.unf
deleted file mode 100644
index 35de337..0000000
Binary files a/bench/stream10by5_sgi.unf and /dev/null differ
diff --git a/bench/stream10by5_sol.unf b/bench/stream10by5_sol.unf
deleted file mode 100644
index 35de337..0000000
Binary files a/bench/stream10by5_sol.unf and /dev/null differ
diff --git a/bench/stream10by5_sun.unf b/bench/stream10by5_sun.unf
deleted file mode 100644
index 35de337..0000000
Binary files a/bench/stream10by5_sun.unf and /dev/null differ
diff --git a/bench/stream10by5_x86_64-darwin.unf b/bench/stream10by5_x86_64-darwin.unf
new file mode 100644
index 0000000..5a7e208
Binary files /dev/null and b/bench/stream10by5_x86_64-darwin.unf differ
diff --git a/bench/test_results/bn_contour_conset.gif b/bench/test_results/bn_contour_conset.gif
new file mode 100644
index 0000000..0e18148
Binary files /dev/null and b/bench/test_results/bn_contour_conset.gif differ
diff --git a/bench/test_results/bn_contour_conset.png b/bench/test_results/bn_contour_conset.png
new file mode 100644
index 0000000..eef37d0
Binary files /dev/null and b/bench/test_results/bn_contour_conset.png differ
diff --git a/bench/test_results/bn_hovmuller_overlays.gif b/bench/test_results/bn_hovmuller_overlays.gif
new file mode 100644
index 0000000..481b1a2
Binary files /dev/null and b/bench/test_results/bn_hovmuller_overlays.gif differ
diff --git a/bench/test_results/bn_hovmuller_overlays.pdf b/bench/test_results/bn_hovmuller_overlays.pdf
new file mode 100644
index 0000000..70a8547
Binary files /dev/null and b/bench/test_results/bn_hovmuller_overlays.pdf differ
diff --git a/bench/test_results/bn_labels_on_taxis.gif b/bench/test_results/bn_labels_on_taxis.gif
new file mode 100644
index 0000000..db45f13
Binary files /dev/null and b/bench/test_results/bn_labels_on_taxis.gif differ
diff --git a/bench/test_results/bn_labels_on_taxis.pdf b/bench/test_results/bn_labels_on_taxis.pdf
new file mode 100644
index 0000000..26db98b
Binary files /dev/null and b/bench/test_results/bn_labels_on_taxis.pdf differ
diff --git a/bench/test_results/bn_subspan_mod_strides.gif b/bench/test_results/bn_subspan_mod_strides.gif
new file mode 100644
index 0000000..7d46ced
Binary files /dev/null and b/bench/test_results/bn_subspan_mod_strides.gif differ
diff --git a/bench/test_results/bn_subspan_mod_strides.png b/bench/test_results/bn_subspan_mod_strides.png
new file mode 100644
index 0000000..786570a
Binary files /dev/null and b/bench/test_results/bn_subspan_mod_strides.png differ
diff --git a/bench/test_results/bnplot.pdf b/bench/test_results/bnplot.pdf
index 30c3ef0..78ec285 100644
Binary files a/bench/test_results/bnplot.pdf and b/bench/test_results/bnplot.pdf differ
diff --git a/bench/test_results/bnplot.png b/bench/test_results/bnplot.png
new file mode 100644
index 0000000..4d91a1a
Binary files /dev/null and b/bench/test_results/bnplot.png differ
diff --git a/bench/test_results/bnplot_1.gif b/bench/test_results/bnplot_1.gif
new file mode 100644
index 0000000..4507ac1
Binary files /dev/null and b/bench/test_results/bnplot_1.gif differ
diff --git a/bench/test_results/bnplot_1.png b/bench/test_results/bnplot_1.png
new file mode 100644
index 0000000..b79ade2
Binary files /dev/null and b/bench/test_results/bnplot_1.png differ
diff --git a/bench/test_results/bnplot_2.gif b/bench/test_results/bnplot_2.gif
new file mode 100644
index 0000000..1af8edf
Binary files /dev/null and b/bench/test_results/bnplot_2.gif differ
diff --git a/bench/test_results/bnplot_2.png b/bench/test_results/bnplot_2.png
new file mode 100644
index 0000000..8f1923b
Binary files /dev/null and b/bench/test_results/bnplot_2.png differ
diff --git a/bench/test_results/bnplot_3.gif b/bench/test_results/bnplot_3.gif
new file mode 100644
index 0000000..0e821a3
Binary files /dev/null and b/bench/test_results/bnplot_3.gif differ
diff --git a/bench/test_results/bnplot_3.png b/bench/test_results/bnplot_3.png
new file mode 100644
index 0000000..119e73f
Binary files /dev/null and b/bench/test_results/bnplot_3.png differ
diff --git a/bench/test_results/bnplot_4.pdf b/bench/test_results/bnplot_4.pdf
new file mode 100644
index 0000000..f0ce3d7
Binary files /dev/null and b/bench/test_results/bnplot_4.pdf differ
diff --git a/bench/test_results/bnplot_4.ps b/bench/test_results/bnplot_4.ps
new file mode 100644
index 0000000..9aad02a
--- /dev/null
+++ b/bench/test_results/bnplot_4.ps
@@ -0,0 +1,20384 @@
+%!PS-Adobe-3.0
+%%Creator: cairo 1.14.4 (http://cairographics.org)
+%%CreationDate: Fri Jun 17 15:19:10 2016
+%%Pages: 1
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%DocumentMedia: 224x389mm 634 1102 0 () ()
+%%BoundingBox: 0 -1 634 1102
+%%EndComments
+%%BeginProlog
+/languagelevel where
+{ pop languagelevel } { 1 } ifelse
+2 lt { /Helvetica findfont 12 scalefont setfont 50 500 moveto
+  (This print job requires a PostScript Language Level 2 printer.) show
+  showpage quit } if
+/q { gsave } bind def
+/Q { grestore } bind def
+/cm { 6 array astore concat } bind def
+/w { setlinewidth } bind def
+/J { setlinecap } bind def
+/j { setlinejoin } bind def
+/M { setmiterlimit } bind def
+/d { setdash } bind def
+/m { moveto } bind def
+/l { lineto } bind def
+/c { curveto } bind def
+/h { closepath } bind def
+/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
+      0 exch rlineto 0 rlineto closepath } bind def
+/S { stroke } bind def
+/f { fill } bind def
+/f* { eofill } bind def
+/n { newpath } bind def
+/W { clip } bind def
+/W* { eoclip } bind def
+/BT { } bind def
+/ET { } bind def
+/pdfmark where { pop globaldict /?pdfmark /exec load put }
+    { globaldict begin /?pdfmark /pop load def /pdfmark
+    /cleartomark load def end } ifelse
+/BDC { mark 3 1 roll /BDC pdfmark } bind def
+/EMC { mark /EMC pdfmark } bind def
+/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
+/Tj { show currentpoint cairo_store_point } bind def
+/TJ {
+  {
+    dup
+    type /stringtype eq
+    { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
+  } forall
+  currentpoint cairo_store_point
+} bind def
+/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
+    cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
+/Tf { pop /cairo_font exch def /cairo_font_matrix where
+      { pop cairo_selectfont } if } bind def
+/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
+      /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
+      /cairo_font where { pop cairo_selectfont } if } bind def
+/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
+      cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
+/g { setgray } bind def
+/rg { setrgbcolor } bind def
+/d1 { setcachedevice } bind def
+/cairo_set_page_size {
+  % Change paper size, but only if different from previous paper size otherwise
+  % duplex fails. PLRM specifies a tolerance of 5 pts when matching paper size
+  % so we use the same when checking if the size changes.
+  /setpagedevice where {
+    pop currentpagedevice
+    /PageSize known {
+      2 copy
+      currentpagedevice /PageSize get aload pop
+      exch 4 1 roll
+      sub abs 5 gt
+      3 1 roll
+      sub abs 5 gt
+      or
+    } {
+      true
+    } ifelse
+    {
+      2 array astore
+      2 dict begin
+        /PageSize exch def
+        /ImagingBBox null def
+      currentdict end
+      setpagedevice
+    } {
+      pop pop
+    } ifelse
+  } {
+    pop
+  } ifelse
+} def
+%%EndProlog
+%%BeginSetup
+%%EndSetup
+%%Page: 1 1
+%%BeginPageSetup
+%%PageOrientation: Landscape
+%%PageMedia: 224x389mm
+%%PageBoundingBox: 0 -1 634 1102
+634 1102 cairo_set_page_size
+%%EndPageSetup
+q 0 -1 634 1103 rectclip q
+1 g
+0 0 633.600014 1101.600014 rectfill
+q
+0 1101.6 634 -1102 re W n
+[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+  q
+0 g
+1 w
+2 J
+2 j
+[] 0.0 d
+10 M 198.777 396.078 m 208.379 399.324 l 217.793 402.57 l 226.914 405.816 l 
+235.66 409.062 l 243.941 412.309 l 251.676 415.559 l 258.781 418.805 l 265.191
+ 422.051 l 270.844 425.297 l 275.676 428.543 l 279.645 431.789 l 282.707
+ 435.039 l 284.832 438.285 l 286.004 441.531 l 286.207 444.777 l 285.438
+ 448.023 l 283.707 451.27 l 281.031 454.516 l 277.434 457.766 l 272.957 
+461.012 l 267.637 464.258 l 261.535 467.504 l 254.711 470.75 l 247.23 473.996
+ l 239.168 477.246 l 230.605 480.492 l 221.625 483.738 l 212.324 486.984
+ l 202.789 490.23 l 193.117 493.477 l 183.402 496.723 l 173.746 499.973 
+l 164.242 503.219 l 154.988 506.465 l 146.074 509.711 l 137.59 512.957 l
+ 129.617 516.203 l 122.242 519.449 l 115.535 522.699 l 109.559 525.945 l
+ 104.383 529.191 l 100.047 532.438 l 96.605 535.684 l 94.086 538.93 l 92.516
+ 542.18 l 91.91 545.426 l 92.273 548.672 l 93.605 551.918 l 95.895 555.164
+ l S
+1 0 0 rg
+261.59 396.078 m 260.5 399.324 l 258.699 402.57 l 256.203 405.816 l 253.031
+ 409.062 l 249.227 412.309 l 244.816 415.559 l 239.852 418.805 l 234.379
+ 422.051 l 228.453 425.297 l 222.133 428.543 l 215.484 431.789 l 208.57 
+435.039 l 201.461 438.285 l 194.23 441.531 l 186.945 444.777 l 179.684 448.023
+ l 172.516 451.27 l 165.512 454.516 l 158.746 457.766 l 152.281 461.012 
+l 146.184 464.258 l 140.516 467.504 l 135.332 470.75 l 130.688 473.996 l
+ 126.625 477.246 l 123.188 480.492 l 120.406 483.738 l 118.312 486.984 l
+ 116.926 490.23 l 116.258 493.477 l 116.32 496.723 l 117.109 499.973 l 118.613
+ 503.219 l 120.828 506.465 l 123.719 509.711 l 127.266 512.957 l 131.43 
+516.203 l 136.168 519.449 l 141.438 522.699 l 147.184 525.945 l 153.344 
+529.191 l 159.863 532.438 l 166.676 535.684 l 173.711 538.93 l 180.902 542.18
+ l 188.172 545.426 l 195.453 548.672 l 202.668 551.918 l 209.746 555.164
+ l S
+0 1 0 rg
+157.207 396.078 m 303.316 399.324 l 173 402.57 l 299.965 405.816 l 89.66
+ 409.062 l 309.203 412.309 l 181.02 415.559 l 68.418 418.805 l 122.996 422.051
+ l 228.879 425.297 l 296.852 428.543 l 308.957 431.789 l 281.102 435.039
+ l 234.52 438.285 l 185.043 441.531 l 141.68 444.777 l 108.289 448.023 l
+ 85.57 451.27 l 72.598 454.516 l 67.758 457.766 l 69.297 461.012 l 75.59
+ 464.258 l 85.25 467.504 l 97.148 470.75 l 110.402 473.996 l 124.336 477.246
+ l 138.457 480.492 l 152.406 483.738 l 165.926 486.984 l 178.859 490.23 
+l 191.09 493.477 l 202.566 496.723 l 213.254 499.973 l 223.16 503.219 l 
+232.297 506.465 l 240.691 509.711 l 248.375 512.957 l 255.387 516.203 l 
+261.77 519.449 l 267.562 522.699 l 272.812 525.945 l 277.555 529.191 l 281.824
+ 532.438 l 285.668 535.684 l 289.109 538.93 l 292.188 542.18 l 294.934 545.426
+ l 297.367 548.672 l 299.523 551.918 l 301.422 555.164 l S
+0 g
+67.609 409.062 m 60.566 409.062 l 67.609 409.062 l S
+67.609 425.297 m 60.566 425.297 l 67.609 425.297 l S
+67.609 441.531 m 60.566 441.531 l 67.609 441.531 l S
+67.609 457.766 m 60.566 457.766 l 67.609 457.766 l S
+67.609 473.996 m 60.566 473.996 l 67.609 473.996 l S
+67.609 490.23 m 60.566 490.23 l 67.609 490.23 l S
+67.609 506.465 m 60.566 506.465 l 67.609 506.465 l S
+67.609 522.699 m 60.566 522.699 l 67.609 522.699 l S
+67.609 538.93 m 60.566 538.93 l 67.609 538.93 l S
+67.609 555.164 m 60.566 555.164 l 67.609 555.164 l S
+67.609 396.078 m 67.609 555.164 l S
+55 411.879 m 52.316 411.879 l 52.051 409.465 l 52.316 409.734 l 53.121 
+410.004 l 53.926 410.004 l 54.73 409.734 l 55.27 409.199 l 55.535 408.395
+ l 55.535 407.855 l 55.27 407.051 l 54.73 406.516 l 53.926 406.246 l 53.121
+ 406.246 l 52.316 406.516 l 52.051 406.785 l 51.781 407.32 l S
+47.219 443.273 m 47.758 443.543 l 48.562 444.348 l 48.562 438.715 l S
+55 444.348 m 52.316 444.348 l 52.051 441.934 l 52.316 442.203 l 53.121 
+442.469 l 53.926 442.469 l 54.73 442.203 l 55.27 441.664 l 55.535 440.859
+ l 55.535 440.324 l 55.27 439.52 l 54.73 438.98 l 53.926 438.715 l 53.121
+ 438.715 l 52.316 438.98 l 52.051 439.25 l 51.781 439.785 l S
+46.684 475.473 m 46.684 475.742 l 46.953 476.277 l 47.219 476.547 l 47.758
+ 476.816 l 48.828 476.816 l 49.367 476.547 l 49.633 476.277 l 49.902 475.742
+ l 49.902 475.203 l 49.633 474.668 l 49.098 473.863 l 46.414 471.18 l 50.172
+ 471.18 l S
+55 476.816 m 52.316 476.816 l 52.051 474.398 l 52.316 474.668 l 53.121 
+474.938 l 53.926 474.938 l 54.73 474.668 l 55.27 474.133 l 55.535 473.328
+ l 55.535 472.789 l 55.27 471.984 l 54.73 471.449 l 53.926 471.18 l 53.121
+ 471.18 l 52.316 471.449 l 52.051 471.719 l 51.781 472.254 l S
+46.953 509.281 m 49.902 509.281 l 48.293 507.137 l 49.098 507.137 l 49.633
+ 506.867 l 49.902 506.598 l 50.172 505.793 l 50.172 505.258 l 49.902 504.453
+ l 49.367 503.914 l 48.562 503.648 l 47.758 503.648 l 46.953 503.914 l 46.684
+ 504.184 l 46.414 504.719 l S
+55 509.281 m 52.316 509.281 l 52.051 506.867 l 52.316 507.137 l 53.121 
+507.402 l 53.926 507.402 l 54.73 507.137 l 55.27 506.598 l 55.535 505.793
+ l 55.535 505.258 l 55.27 504.453 l 54.73 503.914 l 53.926 503.648 l 53.121
+ 503.648 l 52.316 503.914 l 52.051 504.184 l 51.781 504.719 l S
+49.098 541.75 m 46.414 537.992 l 50.441 537.992 l S
+49.098 541.75 m 49.098 536.113 l S
+55 541.75 m 52.316 541.75 l 52.051 539.332 l 52.316 539.602 l 53.121 539.871
+ l 53.926 539.871 l 54.73 539.602 l 55.27 539.066 l 55.535 538.262 l 55.535
+ 537.723 l 55.27 536.918 l 54.73 536.383 l 53.926 536.113 l 53.121 536.113
+ l 52.316 536.383 l 52.051 536.652 l 51.781 537.188 l S
+310.539 409.062 m 317.582 409.062 l 310.539 409.062 l S
+310.539 425.297 m 317.582 425.297 l 310.539 425.297 l S
+310.539 441.531 m 317.582 441.531 l 310.539 441.531 l S
+310.539 457.766 m 317.582 457.766 l 310.539 457.766 l S
+310.539 473.996 m 317.582 473.996 l 310.539 473.996 l S
+310.539 490.23 m 317.582 490.23 l 310.539 490.23 l S
+310.539 506.465 m 317.582 506.465 l 310.539 506.465 l S
+310.539 522.699 m 317.582 522.699 l 310.539 522.699 l S
+310.539 538.93 m 317.582 538.93 l 310.539 538.93 l S
+310.539 555.164 m 317.582 555.164 l 310.539 555.164 l S
+310.539 396.078 m 310.539 555.164 l S
+67.609 555.164 m 67.609 562.207 l 67.609 555.164 l 91.902 555.164 l 91.902
+ 562.207 l 91.902 555.164 l 116.195 555.164 l 116.195 562.207 l 116.195 
+555.164 l 140.488 555.164 l 140.488 562.207 l 140.488 555.164 l 164.781 
+555.164 l 164.781 562.207 l 164.781 555.164 l 189.074 555.164 l 189.074 
+562.207 l 189.074 555.164 l 213.367 555.164 l 213.367 562.207 l 213.367 
+555.164 l 237.66 555.164 l 237.66 562.207 l 237.66 555.164 l 261.953 555.164
+ l 261.953 562.207 l 261.953 555.164 l 286.246 555.164 l 286.246 562.207
+ l 286.246 555.164 l 310.539 555.164 l 310.539 562.207 l 310.539 555.164
+ l S
+67.609 555.164 m 310.539 555.164 l S
+67.609 396.078 m 67.609 389.035 l 67.609 396.078 l 91.902 396.078 l 91.902
+ 389.035 l 91.902 396.078 l 116.195 396.078 l 116.195 389.035 l 116.195 
+396.078 l 140.488 396.078 l 140.488 389.035 l 140.488 396.078 l 164.781 
+396.078 l 164.781 389.035 l 164.781 396.078 l 189.074 396.078 l 189.074 
+389.035 l 189.074 396.078 l 213.367 396.078 l 213.367 389.035 l 213.367 
+396.078 l 237.66 396.078 l 237.66 389.035 l 237.66 396.078 l 261.953 396.078
+ l 261.953 389.035 l 261.953 396.078 l 286.246 396.078 l 286.246 389.035
+ l 286.246 396.078 l 310.539 396.078 l 310.539 389.035 l 310.539 396.078
+ l S
+67.609 396.078 m 310.539 396.078 l S
+80.098 380.746 m 84.926 380.746 l S
+88.414 383.965 m 87.609 383.695 l 87.074 382.891 l 86.805 381.551 l 86.805
+ 380.746 l 87.074 379.402 l 87.609 378.598 l 88.414 378.332 l 88.949 378.332
+ l 89.754 378.598 l 90.293 379.402 l 90.562 380.746 l 90.562 381.551 l 90.293
+ 382.891 l 89.754 383.695 l 88.949 383.965 l 88.414 383.965 l S
+92.707 378.867 m 92.438 378.598 l 92.707 378.332 l 92.977 378.598 l 92.707
+ 378.867 l S
+96.195 383.965 m 95.391 383.695 l 95.121 383.16 l 95.121 382.625 l 95.391
+ 382.086 l 95.926 381.82 l 97 381.551 l 97.805 381.281 l 98.34 380.746 l
+ 98.609 380.207 l 98.609 379.402 l 98.34 378.867 l 98.074 378.598 l 97.27
+ 378.332 l 96.195 378.332 l 95.391 378.598 l 95.121 378.867 l 94.852 379.402
+ l 94.852 380.207 l 95.121 380.746 l 95.656 381.281 l 96.465 381.551 l 97.535
+ 381.82 l 98.074 382.086 l 98.34 382.625 l 98.34 383.16 l 98.074 383.695
+ l 97.27 383.965 l 96.195 383.965 l S
+101.828 383.965 m 101.023 383.695 l 100.488 382.891 l 100.219 381.551 l
+ 100.219 380.746 l 100.488 379.402 l 101.023 378.598 l 101.828 378.332 l
+ 102.367 378.332 l 103.172 378.598 l 103.707 379.402 l 103.977 380.746 l
+ 103.977 381.551 l 103.707 382.891 l 103.172 383.695 l 102.367 383.965 l
+ 101.828 383.965 l S
+128.684 380.746 m 133.512 380.746 l S
+137 383.965 m 136.195 383.695 l 135.66 382.891 l 135.391 381.551 l 135.391
+ 380.746 l 135.66 379.402 l 136.195 378.598 l 137 378.332 l 137.539 378.332
+ l 138.344 378.598 l 138.879 379.402 l 139.148 380.746 l 139.148 381.551
+ l 138.879 382.891 l 138.344 383.695 l 137.539 383.965 l 137 383.965 l S
+141.293 378.867 m 141.023 378.598 l 141.293 378.332 l 141.562 378.598 l
+ 141.293 378.867 l S
+146.121 383.965 m 143.441 380.207 l 147.465 380.207 l S
+146.121 383.965 m 146.121 378.332 l S
+150.414 383.965 m 149.609 383.695 l 149.074 382.891 l 148.805 381.551 l
+ 148.805 380.746 l 149.074 379.402 l 149.609 378.598 l 150.414 378.332 l
+ 150.953 378.332 l 151.758 378.598 l 152.293 379.402 l 152.562 380.746 l
+ 152.562 381.551 l 152.293 382.891 l 151.758 383.695 l 150.953 383.965 l
+ 150.414 383.965 l S
+182.098 383.965 m 181.293 383.695 l 180.758 382.891 l 180.488 381.551 l
+ 180.488 380.746 l 180.758 379.402 l 181.293 378.598 l 182.098 378.332 l
+ 182.637 378.332 l 183.441 378.598 l 183.977 379.402 l 184.246 380.746 l
+ 184.246 381.551 l 183.977 382.891 l 183.441 383.695 l 182.637 383.965 l
+ 182.098 383.965 l S
+186.391 378.867 m 186.125 378.598 l 186.391 378.332 l 186.66 378.598 l 
+186.391 378.867 l S
+190.148 383.965 m 189.344 383.695 l 188.805 382.891 l 188.539 381.551 l
+ 188.539 380.746 l 188.805 379.402 l 189.344 378.598 l 190.148 378.332 l
+ 190.684 378.332 l 191.488 378.598 l 192.027 379.402 l 192.293 380.746 l
+ 192.293 381.551 l 192.027 382.891 l 191.488 383.695 l 190.684 383.965 l
+ 190.148 383.965 l S
+195.516 383.965 m 194.707 383.695 l 194.172 382.891 l 193.902 381.551 l
+ 193.902 380.746 l 194.172 379.402 l 194.707 378.598 l 195.516 378.332 l
+ 196.051 378.332 l 196.855 378.598 l 197.391 379.402 l 197.66 380.746 l 
+197.66 381.551 l 197.391 382.891 l 196.855 383.695 l 196.051 383.965 l 195.516
+ 383.965 l S
+230.688 383.965 m 229.879 383.695 l 229.344 382.891 l 229.074 381.551 l
+ 229.074 380.746 l 229.344 379.402 l 229.879 378.598 l 230.688 378.332 l
+ 231.223 378.332 l 232.027 378.598 l 232.562 379.402 l 232.832 380.746 l
+ 232.832 381.551 l 232.562 382.891 l 232.027 383.695 l 231.223 383.965 l
+ 230.688 383.965 l S
+234.977 378.867 m 234.711 378.598 l 234.977 378.332 l 235.246 378.598 l
+ 234.977 378.867 l S
+239.809 383.965 m 237.125 380.207 l 241.148 380.207 l S
+239.809 383.965 m 239.809 378.332 l S
+244.102 383.965 m 243.297 383.695 l 242.758 382.891 l 242.492 381.551 l
+ 242.492 380.746 l 242.758 379.402 l 243.297 378.598 l 244.102 378.332 l
+ 244.637 378.332 l 245.441 378.598 l 245.977 379.402 l 246.246 380.746 l
+ 246.246 381.551 l 245.977 382.891 l 245.441 383.695 l 244.637 383.965 l
+ 244.102 383.965 l S
+279.273 383.965 m 278.469 383.695 l 277.93 382.891 l 277.664 381.551 l 
+277.664 380.746 l 277.93 379.402 l 278.469 378.598 l 279.273 378.332 l 279.809
+ 378.332 l 280.613 378.598 l 281.148 379.402 l 281.418 380.746 l 281.418
+ 381.551 l 281.148 382.891 l 280.613 383.695 l 279.809 383.965 l 279.273
+ 383.965 l S
+283.566 378.867 m 283.297 378.598 l 283.566 378.332 l 283.832 378.598 l
+ 283.566 378.867 l S
+287.051 383.965 m 286.246 383.695 l 285.98 383.16 l 285.98 382.625 l 286.246
+ 382.086 l 286.785 381.82 l 287.855 381.551 l 288.66 381.281 l 289.199 380.746
+ l 289.469 380.207 l 289.469 379.402 l 289.199 378.867 l 288.93 378.598 
+l 288.125 378.332 l 287.051 378.332 l 286.246 378.598 l 285.98 378.867 l
+ 285.711 379.402 l 285.711 380.207 l 285.98 380.746 l 286.516 381.281 l 
+287.32 381.551 l 288.395 381.82 l 288.93 382.086 l 289.199 382.625 l 289.199
+ 383.16 l 288.93 383.695 l 288.125 383.965 l 287.051 383.965 l S
+292.688 383.965 m 291.883 383.695 l 291.344 382.891 l 291.078 381.551 l
+ 291.078 380.746 l 291.344 379.402 l 291.883 378.598 l 292.688 378.332 l
+ 293.223 378.332 l 294.027 378.598 l 294.566 379.402 l 294.832 380.746 l
+ 294.832 381.551 l 294.566 382.891 l 294.027 383.695 l 293.223 383.965 l
+ 292.688 383.965 l S
+  Q
+Q
+q
+0 1101.6 634 -1102 re W n
+[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+  q
+1 0 1 rg
+1 w
+2 J
+2 j
+[] 0.0 d
+10 M 191.504 396.078 m 203.652 412.309 l 206.078 415.559 l 218.227 431.789 l
+ 220.656 435.039 l 230.375 448.023 l 232.801 451.27 l 235.23 454.516 l 237.66
+ 457.766 l 249.809 473.996 l 252.238 477.246 l 254.668 480.492 l 257.094
+ 483.738 l 266.812 496.723 l 269.242 499.973 l 281.391 516.203 l 283.816
+ 519.449 l 286.246 522.699 l 298.395 538.93 l 300.824 542.18 l 308.113 551.918
+ l 310.539 555.164 l S
+  Q
+Q
+q
+0 1101.6 634 -1102 re W n
+[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+  q
+0 g
+1 w
+2 J
+2 j
+[] 0.0 d
+10 M 302.922 396.996 m 304.457 396.078 l S
+306.785 396.078 m 305.684 398.836 l 304.578 396.078 l S
+306.91 396.078 m 308.441 396.996 l 302.922 396.996 l S
+298.062 400.242 m 302.664 397.484 l 300.824 402.082 l 298.984 397.484 l
+ 303.582 400.242 l 298.062 400.242 l S
+293.207 403.488 m 297.805 400.73 l 295.965 405.328 l 294.125 400.73 l 298.723
+ 403.488 l 293.207 403.488 l S
+288.348 406.738 m 292.945 403.977 l 291.105 408.578 l 289.266 403.977 l
+ 293.867 406.738 l 288.348 406.738 l S
+283.488 409.984 m 288.086 407.223 l 286.246 411.824 l 284.406 407.223 l
+ 289.008 409.984 l 283.488 409.984 l S
+278.629 413.23 m 283.23 410.469 l 281.391 415.07 l 279.551 410.469 l 284.148
+ 413.23 l 278.629 413.23 l S
+273.77 416.477 m 278.371 413.719 l 276.531 418.316 l 274.691 413.719 l 
+279.289 416.477 l 273.77 416.477 l S
+268.91 419.723 m 273.512 416.965 l 271.672 421.562 l 269.832 416.965 l 
+274.43 419.723 l 268.91 419.723 l S
+264.055 422.969 m 268.652 420.211 l 266.812 424.809 l 264.973 420.211 l
+ 269.574 422.969 l 264.055 422.969 l S
+259.195 426.219 m 263.793 423.457 l 261.953 428.059 l 260.113 423.457 l
+ 264.715 426.219 l 259.195 426.219 l S
+254.336 429.465 m 258.934 426.703 l 257.094 431.305 l 255.258 426.703 l
+ 259.855 429.465 l 254.336 429.465 l S
+249.477 432.711 m 254.078 429.949 l 252.238 434.551 l 250.398 429.949 l
+ 254.996 432.711 l 249.477 432.711 l S
+244.617 435.957 m 249.219 433.199 l 247.379 437.797 l 245.539 433.199 l
+ 250.137 435.957 l 244.617 435.957 l S
+239.762 439.203 m 244.359 436.445 l 242.52 441.043 l 240.68 436.445 l 245.281
+ 439.203 l 239.762 439.203 l S
+234.902 442.449 m 239.5 439.691 l 237.66 444.289 l 235.82 439.691 l 240.422
+ 442.449 l 234.902 442.449 l S
+230.043 445.695 m 234.641 442.938 l 232.801 447.535 l 230.961 442.938 l
+ 235.562 445.695 l 230.043 445.695 l S
+225.184 448.945 m 229.785 446.184 l 227.945 450.785 l 226.105 446.184 l
+ 230.703 448.945 l 225.184 448.945 l S
+220.324 452.191 m 224.926 449.43 l 223.086 454.031 l 221.246 449.43 l 225.844
+ 452.191 l 220.324 452.191 l S
+215.469 455.438 m 220.066 452.676 l 218.227 457.277 l 216.387 452.676 l
+ 220.984 455.438 l 215.469 455.438 l S
+210.609 458.684 m 215.207 455.926 l 213.367 460.523 l 211.527 455.926 l
+ 216.129 458.684 l 210.609 458.684 l S
+205.75 461.93 m 210.348 459.172 l 208.508 463.77 l 206.668 459.172 l 211.27
+ 461.93 l 205.75 461.93 l S
+200.891 465.176 m 205.492 462.418 l 203.652 467.016 l 201.812 462.418 l
+ 206.41 465.176 l 200.891 465.176 l S
+196.031 468.426 m 200.633 465.664 l 198.793 470.262 l 196.953 465.664 l
+ 201.551 468.426 l 196.031 468.426 l S
+191.176 471.672 m 195.773 468.91 l 193.934 473.512 l 192.094 468.91 l 196.691
+ 471.672 l 191.176 471.672 l S
+186.316 474.918 m 190.914 472.156 l 189.074 476.758 l 187.234 472.156 l
+ 191.836 474.918 l 186.316 474.918 l S
+181.457 478.164 m 186.055 475.406 l 184.215 480.004 l 182.375 475.406 l
+ 186.977 478.164 l 181.457 478.164 l S
+176.598 481.41 m 181.195 478.652 l 179.359 483.25 l 177.52 478.652 l 182.117
+ 481.41 l 176.598 481.41 l S
+171.738 484.656 m 176.34 481.898 l 174.5 486.496 l 172.66 481.898 l 177.258
+ 484.656 l 171.738 484.656 l S
+166.879 487.902 m 171.48 485.145 l 169.641 489.742 l 167.801 485.145 l 
+172.398 487.902 l 166.879 487.902 l S
+162.023 491.152 m 166.621 488.391 l 164.781 492.992 l 162.941 488.391 l
+ 167.543 491.152 l 162.023 491.152 l S
+157.164 494.398 m 161.762 491.637 l 159.922 496.238 l 158.082 491.637 l
+ 162.684 494.398 l 157.164 494.398 l S
+152.305 497.645 m 156.902 494.883 l 155.062 499.484 l 153.223 494.883 l
+ 157.824 497.645 l 152.305 497.645 l S
+147.445 500.891 m 152.047 498.133 l 150.207 502.73 l 148.367 498.133 l 
+152.965 500.891 l 147.445 500.891 l S
+142.586 504.137 m 147.188 501.379 l 145.348 505.977 l 143.508 501.379 l
+ 148.105 504.137 l 142.586 504.137 l S
+137.73 507.383 m 142.328 504.625 l 140.488 509.223 l 138.648 504.625 l 
+143.246 507.383 l 137.73 507.383 l S
+132.871 510.633 m 137.469 507.871 l 135.629 512.469 l 133.789 507.871 l
+ 138.391 510.633 l 132.871 510.633 l S
+128.012 513.879 m 132.609 511.117 l 130.77 515.719 l 128.93 511.117 l 133.531
+ 513.879 l 128.012 513.879 l S
+123.152 517.125 m 127.754 514.363 l 125.914 518.965 l 124.074 514.363 l
+ 128.672 517.125 l 123.152 517.125 l S
+118.293 520.371 m 122.895 517.613 l 121.055 522.211 l 119.215 517.613 l
+ 123.812 520.371 l 118.293 520.371 l S
+113.438 523.617 m 118.035 520.859 l 116.195 525.457 l 114.355 520.859 l
+ 118.953 523.617 l 113.438 523.617 l S
+108.578 526.863 m 113.176 524.105 l 111.336 528.703 l 109.496 524.105 l
+ 114.098 526.863 l 108.578 526.863 l S
+103.719 530.109 m 108.316 527.352 l 106.477 531.949 l 104.637 527.352 l
+ 109.238 530.109 l 103.719 530.109 l S
+98.859 533.359 m 103.461 530.598 l 101.621 535.199 l 99.781 530.598 l 104.379
+ 533.359 l 98.859 533.359 l S
+94 536.605 m 98.602 533.844 l 96.762 538.445 l 94.922 533.844 l 99.52 536.605
+ l 94 536.605 l S
+89.141 539.852 m 93.742 537.09 l 91.902 541.691 l 90.062 537.09 l 94.66
+ 539.852 l 89.141 539.852 l S
+84.285 543.098 m 88.883 540.34 l 87.043 544.938 l 85.203 540.34 l 89.805
+ 543.098 l 84.285 543.098 l S
+79.426 546.344 m 84.023 543.586 l 82.184 548.184 l 80.344 543.586 l 84.945
+ 546.344 l 79.426 546.344 l S
+74.566 549.59 m 79.164 546.832 l 77.324 551.43 l 75.488 546.832 l 80.086
+ 549.59 l 74.566 549.59 l S
+69.707 552.836 m 74.309 550.078 l 72.469 554.676 l 70.629 550.078 l 75.227
+ 552.836 l 69.707 552.836 l S
+67.609 554.43 m 69.449 553.324 l 68.711 555.164 l S
+67.609 554.43 m 68.836 555.164 l S
+  Q
+Q
+q
+0 1101.6 634 -1102 re W n
+[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+  q
+1 0 1 rg
+1 w
+2 J
+2 j
+[] 0.0 d
+10 M 128.395 396.996 m 128.855 396.078 l S
+129.773 396.078 m 130.234 396.996 l 128.395 396.996 l S
+129.312 396.078 m 130.285 399.324 l S
+129.367 400.242 m 130.285 398.402 l 131.207 400.242 l 129.367 400.242 l
+ S
+130.285 399.324 m 131.258 402.57 l S
+130.336 403.488 m 131.258 401.652 l 132.176 403.488 l 130.336 403.488 l
+ S
+131.258 402.57 m 132.23 405.816 l S
+131.309 406.738 m 132.23 404.898 l 133.148 406.738 l 131.309 406.738 l S
+132.23 405.816 m 133.199 409.062 l S
+132.281 409.984 m 133.199 408.145 l 134.121 409.984 l 132.281 409.984 l
+ S
+133.199 409.062 m 134.172 412.309 l S
+133.254 413.23 m 134.172 411.391 l 135.094 413.23 l 133.254 413.23 l S
+134.172 412.309 m 135.145 415.559 l S
+134.223 416.477 m 135.145 414.637 l 136.062 416.477 l 134.223 416.477 l
+ S
+135.145 415.559 m 136.117 418.805 l S
+135.195 419.723 m 136.117 417.883 l 137.035 419.723 l 135.195 419.723 l
+ S
+136.117 418.805 m 137.086 422.051 l S
+136.168 422.969 m 137.086 421.129 l 138.008 422.969 l 136.168 422.969 l
+ S
+137.086 422.051 m 138.059 425.297 l S
+137.141 426.219 m 138.059 424.379 l 138.98 426.219 l 137.141 426.219 l S
+138.059 425.297 m 139.031 428.543 l S
+138.109 429.465 m 139.031 427.625 l 139.949 429.465 l 138.109 429.465 l
+ S
+139.031 428.543 m 140.004 431.789 l S
+139.082 432.711 m 140.004 430.871 l 140.922 432.711 l 139.082 432.711 l
+ S
+140.004 431.789 m 140.973 435.039 l S
+140.055 435.957 m 140.973 434.117 l 141.895 435.957 l 140.055 435.957 l
+ S
+140.973 435.039 m 141.945 438.285 l S
+141.027 439.203 m 141.945 437.363 l 142.867 439.203 l 141.027 439.203 l
+ S
+141.945 438.285 m 142.918 441.531 l S
+141.996 442.449 m 142.918 440.609 l 143.836 442.449 l 141.996 442.449 l
+ S
+142.918 441.531 m 143.891 444.777 l S
+142.969 445.695 m 143.891 443.855 l 144.809 445.695 l 142.969 445.695 l
+ S
+143.891 444.777 m 144.859 448.023 l S
+143.941 448.945 m 144.859 447.105 l 145.781 448.945 l 143.941 448.945 l
+ S
+144.859 448.023 m 145.832 451.27 l S
+144.914 452.191 m 145.832 450.352 l 146.754 452.191 l 144.914 452.191 l
+ S
+145.832 451.27 m 146.805 454.516 l S
+145.887 455.438 m 146.805 453.598 l 147.723 455.438 l 145.887 455.438 l
+ S
+146.805 454.516 m 147.777 457.766 l S
+146.855 458.684 m 147.777 456.844 l 148.695 458.684 l 146.855 458.684 l
+ S
+147.777 457.766 m 148.75 461.012 l S
+147.828 461.93 m 148.75 460.09 l 149.668 461.93 l 147.828 461.93 l S
+148.75 461.012 m 149.719 464.258 l S
+148.801 465.176 m 149.719 463.336 l 150.641 465.176 l 148.801 465.176 l
+ S
+149.719 464.258 m 150.691 467.504 l S
+149.773 468.426 m 150.691 466.586 l 151.613 468.426 l 149.773 468.426 l
+ S
+150.691 467.504 m 151.664 470.75 l S
+150.742 471.672 m 151.664 469.832 l 152.582 471.672 l 150.742 471.672 l
+ S
+151.664 470.75 m 152.637 473.996 l S
+151.715 474.918 m 152.637 473.078 l 153.555 474.918 l 151.715 474.918 l
+ S
+152.637 473.996 m 153.605 477.246 l S
+152.688 478.164 m 153.605 476.324 l 154.527 478.164 l 152.688 478.164 l
+ S
+153.605 477.246 m 154.578 480.492 l S
+153.66 481.41 m 154.578 479.57 l 155.5 481.41 l 153.66 481.41 l S
+154.578 480.492 m 155.551 483.738 l S
+154.629 484.656 m 155.551 482.816 l 156.469 484.656 l 154.629 484.656 l
+ S
+155.551 483.738 m 156.523 486.984 l S
+155.602 487.902 m 156.523 486.062 l 157.441 487.902 l 155.602 487.902 l
+ S
+156.523 486.984 m 157.492 490.23 l S
+156.574 491.152 m 157.492 489.312 l 158.414 491.152 l 156.574 491.152 l
+ S
+157.492 490.23 m 158.465 493.477 l S
+157.547 494.398 m 158.465 492.559 l 159.387 494.398 l 157.547 494.398 l
+ S
+158.465 493.477 m 159.438 496.723 l S
+158.516 497.645 m 159.438 495.805 l 160.355 497.645 l 158.516 497.645 l
+ S
+159.438 496.723 m 160.41 499.973 l S
+159.488 500.891 m 160.41 499.051 l 161.328 500.891 l 159.488 500.891 l S
+160.41 499.973 m 161.379 503.219 l S
+160.461 504.137 m 161.379 502.297 l 162.301 504.137 l 160.461 504.137 l
+ S
+161.379 503.219 m 162.352 506.465 l S
+161.434 507.383 m 162.352 505.543 l 163.273 507.383 l 161.434 507.383 l
+ S
+162.352 506.465 m 163.324 509.711 l S
+162.402 510.633 m 163.324 508.793 l 164.242 510.633 l 162.402 510.633 l
+ S
+163.324 509.711 m 164.297 512.957 l S
+163.375 513.879 m 164.297 512.039 l 165.215 513.879 l 163.375 513.879 l
+ S
+164.297 512.957 m 165.266 516.203 l S
+164.348 517.125 m 165.266 515.285 l 166.188 517.125 l 164.348 517.125 l
+ S
+165.266 516.203 m 166.238 519.449 l S
+165.32 520.371 m 166.238 518.531 l 167.16 520.371 l 165.32 520.371 l S
+166.238 519.449 m 167.211 522.699 l S
+166.293 523.617 m 167.211 521.777 l 168.129 523.617 l 166.293 523.617 l
+ S
+167.211 522.699 m 168.184 525.945 l S
+167.262 526.863 m 168.184 525.023 l 169.102 526.863 l 167.262 526.863 l
+ S
+168.184 525.945 m 169.156 529.191 l S
+168.234 530.109 m 169.156 528.27 l 170.074 530.109 l 168.234 530.109 l S
+169.156 529.191 m 170.125 532.438 l S
+169.207 533.359 m 170.125 531.52 l 171.047 533.359 l 169.207 533.359 l S
+170.125 532.438 m 171.098 535.684 l S
+170.18 536.605 m 171.098 534.766 l 172.02 536.605 l 170.18 536.605 l S
+171.098 535.684 m 172.07 538.93 l S
+171.148 539.852 m 172.07 538.012 l 172.988 539.852 l 171.148 539.852 l S
+172.07 538.93 m 173.043 542.18 l S
+172.121 543.098 m 173.043 541.258 l 173.961 543.098 l 172.121 543.098 l
+ S
+173.043 542.18 m 174.012 545.426 l S
+173.094 546.344 m 174.012 544.504 l 174.934 546.344 l 173.094 546.344 l
+ S
+174.012 545.426 m 174.984 548.672 l S
+174.066 549.59 m 174.984 547.75 l 175.906 549.59 l 174.066 549.59 l S
+174.984 548.672 m 175.957 551.918 l S
+175.035 552.836 m 175.957 551 l 176.875 552.836 l 175.035 552.836 l S
+175.957 551.918 m 176.93 555.164 l S
+176.469 555.164 m 176.93 554.246 l 177.387 555.164 l S
+  Q
+Q
+q
+0 1101.6 634 -1102 re W n
+[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+  q
+0 g
+1 w
+2 J
+2 j
+[] 0.0 d
+10 M 447.266 163.125 m 459.25 167.383 l 471.238 171.551 l 483.227 175.598 l 
+495.211 179.473 l 507.199 183.141 l 519.188 186.566 l 531.172 189.719 l 
+543.16 192.559 l 555.148 195.062 l 567.133 197.203 l 579.121 198.961 l 591.109
+ 200.32 l 603.094 201.262 l 615.082 201.781 l 627.07 201.871 l 639.059 201.527
+ l 651.043 200.762 l 663.031 199.574 l 675.02 197.98 l 687.004 195.996 l
+ 698.992 193.641 l 710.98 190.938 l 722.965 187.914 l 734.953 184.598 l 
+746.941 181.023 l 758.926 177.23 l 770.914 173.254 l 782.902 169.129 l 794.887
+ 164.902 l 806.875 160.617 l 818.863 156.312 l 830.848 152.035 l 842.836
+ 147.824 l 854.824 143.723 l 866.812 139.773 l 878.797 136.012 l 890.785
+ 132.48 l 902.773 129.211 l 914.758 126.238 l 926.746 123.59 l 938.734 121.297
+ l 950.719 119.375 l 962.707 117.852 l 974.695 116.734 l 986.68 116.039 
+l 998.668 115.77 l 1010.656 115.934 l 1022.641 116.523 l 1034.629 117.535
+ l S
+1 0 0 rg
+447.266 190.961 m 459.25 190.48 l 471.238 189.68 l 483.227 188.574 l 495.211
+ 187.168 l 507.199 185.48 l 519.188 183.527 l 531.172 181.328 l 543.16 178.902
+ l 555.148 176.277 l 567.133 173.477 l 579.121 170.531 l 591.109 167.465
+ l 603.094 164.316 l 615.082 161.113 l 627.07 157.883 l 639.059 154.668 
+l 651.043 151.488 l 663.031 148.387 l 675.02 145.387 l 687.004 142.523 l
+ 698.992 139.82 l 710.98 137.309 l 722.965 135.012 l 734.953 132.953 l 746.941
+ 131.152 l 758.926 129.629 l 770.914 128.398 l 782.902 127.469 l 794.887
+ 126.855 l 806.875 126.559 l 818.863 126.586 l 830.848 126.938 l 842.836
+ 127.605 l 854.824 128.582 l 866.812 129.867 l 878.797 131.438 l 890.785
+ 133.281 l 902.773 135.383 l 914.758 137.719 l 926.746 140.262 l 938.734
+ 142.992 l 950.719 145.883 l 962.707 148.902 l 974.695 152.02 l 986.68 155.207
+ l 998.668 158.426 l 1010.656 161.652 l 1022.641 164.852 l 1034.629 167.988
+ l S
+0 1 0 rg
+447.266 144.703 m 459.25 209.453 l 471.238 151.703 l 483.227 207.969 l 
+495.211 114.773 l 507.199 212.059 l 519.188 155.258 l 531.172 105.359 l 
+543.16 129.543 l 555.148 176.465 l 567.133 206.586 l 579.121 211.953 l 591.109
+ 199.605 l 603.094 178.965 l 615.082 157.043 l 627.07 137.824 l 639.059 
+123.027 l 651.043 112.961 l 663.031 107.211 l 675.02 105.066 l 687.004 105.75
+ l 698.992 108.539 l 710.98 112.82 l 722.965 118.09 l 734.953 123.965 l 
+746.941 130.141 l 758.926 136.398 l 770.914 142.578 l 782.902 148.57 l 794.887
+ 154.301 l 806.875 159.719 l 818.863 164.805 l 830.848 169.543 l 842.836
+ 173.934 l 854.824 177.98 l 866.812 181.699 l 878.797 185.105 l 890.785 
+188.211 l 902.773 191.039 l 914.758 193.609 l 926.746 195.934 l 938.734 
+198.035 l 950.719 199.93 l 962.707 201.629 l 974.695 203.156 l 986.68 204.52
+ l 998.668 205.738 l 1010.656 206.816 l 1022.641 207.77 l 1034.629 208.613
+ l S
+0 0 1 rg
+447.266 159.902 m 459.25 160.98 l 471.238 162.059 l 483.227 163.133 l 495.211
+ 164.211 l 507.199 165.285 l 519.188 166.363 l 531.172 167.438 l 555.148
+ 169.594 l 567.133 170.668 l 579.121 171.746 l 591.109 172.82 l 603.094 
+173.898 l 615.082 174.977 l 627.07 176.051 l 639.059 177.129 l 651.043 178.203
+ l 675.02 180.359 l 687.004 181.434 l 698.992 182.512 l 710.98 183.586 l
+ 722.965 184.664 l 734.953 185.738 l 746.941 186.816 l 758.926 187.895 l
+ 770.914 188.969 l 782.902 190.047 l 794.887 191.121 l 818.863 193.277 l
+ 830.848 194.352 l 842.836 195.43 l 854.824 196.504 l 866.812 197.582 l 
+878.797 198.66 l 890.785 199.734 l 902.773 200.812 l 914.758 201.887 l 926.746
+ 202.965 l 938.734 204.039 l 950.719 205.117 l 962.707 206.195 l 974.695
+ 207.27 l 986.68 208.348 l 998.668 209.422 l 1010.656 210.5 l 1022.641 211.578
+ l 1034.629 212.652 l S
+0 1 1 rg
+447.266 210.5 m 459.25 208.348 l 471.238 206.195 l 483.227 204.039 l 495.211
+ 201.887 l 519.188 197.582 l 531.172 195.43 l 543.16 193.277 l 555.148 191.121
+ l 567.133 188.969 l 591.109 184.664 l 603.094 182.512 l 615.082 180.359
+ l 627.07 178.203 l 639.059 176.051 l 651.043 173.898 l 675.02 169.594 l
+ 687.004 167.438 l 710.98 163.133 l 722.965 160.98 l 746.941 156.676 l 758.926
+ 154.52 l 782.902 150.215 l 794.887 148.062 l 818.863 143.758 l 830.848 
+141.602 l 866.812 135.145 l 878.797 132.992 l 890.785 130.836 l 902.773 
+128.684 l 914.758 126.531 l 938.734 122.227 l 950.719 120.074 l 962.707 
+117.918 l 974.695 115.766 l 986.68 113.613 l 1010.656 109.309 l 1022.641
+ 107.156 l 1034.629 105 l S
+1 0 1 rg
+447.266 132.344 m 459.25 132.777 l 483.227 133.637 l 495.211 134.066 l 
+507.199 134.496 l 519.188 134.93 l 531.172 135.359 l 555.148 136.219 l 567.133
+ 136.652 l 591.109 137.512 l 603.094 137.941 l 615.082 138.375 l 639.059
+ 139.234 l 651.043 139.664 l 663.031 140.098 l 675.02 140.527 l 687.004 
+140.957 l 710.98 141.816 l 722.965 142.25 l 746.941 143.109 l 758.926 143.539
+ l 770.914 143.973 l 782.902 144.402 l 794.887 144.832 l 806.875 145.262
+ l 818.863 145.695 l 830.848 146.125 l 854.824 146.984 l 866.812 147.418
+ l 878.797 147.848 l 902.773 148.707 l 914.758 149.137 l 926.746 149.57 
+l 938.734 150 l 950.719 150.43 l 962.707 150.859 l 974.695 151.293 l 986.68
+ 151.723 l 1010.656 152.582 l 1022.641 153.016 l 1034.629 153.445 l S
+0 g
+447.266 121.918 m 448.359 123.012 l S
+447.266 121.918 m 448.359 120.824 l S
+447.266 121.918 m 459.25 123.457 l S
+458.156 122.363 m 460.344 124.551 l S
+458.156 124.551 m 460.344 122.363 l S
+459.25 123.457 m 471.238 124.992 l S
+470.145 123.898 m 472.332 126.09 l S
+470.145 126.09 m 472.332 123.898 l S
+471.238 124.992 m 483.227 126.531 l S
+482.129 125.438 m 484.32 127.625 l S
+482.129 127.625 m 484.32 125.438 l S
+483.227 126.531 m 495.211 128.07 l S
+494.117 126.977 m 496.305 129.164 l S
+494.117 129.164 m 496.305 126.977 l S
+495.211 128.07 m 507.199 129.609 l S
+506.105 128.512 m 508.293 130.703 l S
+506.105 130.703 m 508.293 128.512 l S
+507.199 129.609 m 519.188 131.145 l S
+518.094 130.051 m 520.281 132.238 l S
+518.094 132.238 m 520.281 130.051 l S
+519.188 131.145 m 531.172 132.684 l S
+530.078 131.59 m 532.266 133.777 l S
+530.078 133.777 m 532.266 131.59 l S
+531.172 132.684 m 543.16 134.223 l S
+542.066 133.125 m 544.254 135.316 l S
+542.066 135.316 m 544.254 133.125 l S
+543.16 134.223 m 555.148 135.758 l S
+554.055 134.664 m 556.242 136.852 l S
+554.055 136.852 m 556.242 134.664 l S
+555.148 135.758 m 567.133 137.297 l S
+566.039 136.203 m 568.23 138.391 l S
+566.039 138.391 m 568.23 136.203 l S
+567.133 137.297 m 579.121 138.836 l S
+578.027 137.742 m 580.215 139.93 l S
+578.027 139.93 m 580.215 137.742 l S
+579.121 138.836 m 591.109 140.371 l S
+590.016 139.277 m 592.203 141.469 l S
+590.016 141.469 m 592.203 139.277 l S
+591.109 140.371 m 603.094 141.91 l S
+602 140.816 m 604.191 143.004 l S
+602 143.004 m 604.191 140.816 l S
+603.094 141.91 m 615.082 143.449 l S
+613.988 142.355 m 616.176 144.543 l S
+613.988 144.543 m 616.176 142.355 l S
+615.082 143.449 m 627.07 144.984 l S
+625.977 143.891 m 628.164 146.082 l S
+625.977 146.082 m 628.164 143.891 l S
+627.07 144.984 m 639.059 146.523 l S
+637.961 145.43 m 640.152 147.617 l S
+637.961 147.617 m 640.152 145.43 l S
+639.059 146.523 m 651.043 148.062 l S
+649.949 146.969 m 652.137 149.156 l S
+649.949 149.156 m 652.137 146.969 l S
+651.043 148.062 m 663.031 149.602 l S
+661.938 148.504 m 664.125 150.695 l S
+661.938 150.695 m 664.125 148.504 l S
+663.031 149.602 m 675.02 151.137 l S
+673.922 150.043 m 676.113 152.23 l S
+673.922 152.23 m 676.113 150.043 l S
+675.02 151.137 m 687.004 152.676 l S
+685.91 151.582 m 688.098 153.77 l S
+685.91 153.77 m 688.098 151.582 l S
+687.004 152.676 m 698.992 154.215 l S
+697.898 153.121 m 700.086 155.309 l S
+697.898 155.309 m 700.086 153.121 l S
+698.992 154.215 m 710.98 155.75 l S
+709.883 154.656 m 712.074 156.848 l S
+709.883 156.848 m 712.074 154.656 l S
+710.98 155.75 m 722.965 157.289 l S
+721.871 156.195 m 724.059 158.383 l S
+721.871 158.383 m 724.059 156.195 l S
+722.965 157.289 m 734.953 158.828 l S
+733.859 157.734 m 736.047 159.922 l S
+733.859 159.922 m 736.047 157.734 l S
+734.953 158.828 m 746.941 160.363 l S
+745.848 159.27 m 748.035 161.461 l S
+745.848 161.461 m 748.035 159.27 l S
+746.941 160.363 m 758.926 161.902 l S
+757.832 160.809 m 760.023 162.996 l S
+757.832 162.996 m 760.023 160.809 l S
+758.926 161.902 m 770.914 163.441 l S
+769.82 162.348 m 772.008 164.535 l S
+769.82 164.535 m 772.008 162.348 l S
+770.914 163.441 m 782.902 164.98 l S
+781.809 163.883 m 783.996 166.074 l S
+781.809 166.074 m 783.996 163.883 l S
+782.902 164.98 m 794.887 166.516 l S
+793.793 165.422 m 795.984 167.609 l S
+793.793 167.609 m 795.984 165.422 l S
+794.887 166.516 m 806.875 168.055 l S
+805.781 166.961 m 807.969 169.148 l S
+805.781 169.148 m 807.969 166.961 l S
+806.875 168.055 m 818.863 169.594 l S
+817.77 168.5 m 819.957 170.688 l S
+817.77 170.688 m 819.957 168.5 l S
+818.863 169.594 m 830.848 171.129 l S
+829.754 170.035 m 831.945 172.227 l S
+829.754 172.227 m 831.945 170.035 l S
+830.848 171.129 m 842.836 172.668 l S
+841.742 171.574 m 843.93 173.762 l S
+841.742 173.762 m 843.93 171.574 l S
+842.836 172.668 m 854.824 174.207 l S
+853.73 173.113 m 855.918 175.301 l S
+853.73 175.301 m 855.918 173.113 l S
+854.824 174.207 m 866.812 175.742 l S
+865.715 174.648 m 867.906 176.84 l S
+865.715 176.84 m 867.906 174.648 l S
+866.812 175.742 m 878.797 177.281 l S
+877.703 176.188 m 879.891 178.375 l S
+877.703 178.375 m 879.891 176.188 l S
+878.797 177.281 m 890.785 178.82 l S
+889.691 177.727 m 891.879 179.914 l S
+889.691 179.914 m 891.879 177.727 l S
+890.785 178.82 m 902.773 180.359 l S
+901.676 179.262 m 903.867 181.453 l S
+901.676 181.453 m 903.867 179.262 l S
+902.773 180.359 m 914.758 181.895 l S
+913.664 180.801 m 915.852 182.988 l S
+913.664 182.988 m 915.852 180.801 l S
+914.758 181.895 m 926.746 183.434 l S
+925.652 182.34 m 927.84 184.527 l S
+925.652 184.527 m 927.84 182.34 l S
+926.746 183.434 m 938.734 184.973 l S
+937.637 183.879 m 939.828 186.066 l S
+937.637 186.066 m 939.828 183.879 l S
+938.734 184.973 m 950.719 186.508 l S
+949.625 185.414 m 951.812 187.602 l S
+949.625 187.602 m 951.812 185.414 l S
+950.719 186.508 m 962.707 188.047 l S
+961.613 186.953 m 963.801 189.141 l S
+961.613 189.141 m 963.801 186.953 l S
+962.707 188.047 m 974.695 189.586 l S
+973.602 188.492 m 975.789 190.68 l S
+973.602 190.68 m 975.789 188.492 l S
+974.695 189.586 m 986.68 191.121 l S
+985.586 190.027 m 987.777 192.219 l S
+985.586 192.219 m 987.777 190.027 l S
+986.68 191.121 m 998.668 192.66 l S
+997.574 191.566 m 999.762 193.754 l S
+997.574 193.754 m 999.762 191.566 l S
+998.668 192.66 m 1010.656 194.199 l S
+1009.562 193.105 m 1011.75 195.293 l S
+1009.562 195.293 m 1011.75 193.105 l S
+1010.656 194.199 m 1022.641 195.738 l S
+1021.547 194.641 m 1023.738 196.832 l S
+1021.547 196.832 m 1023.738 194.641 l S
+1022.641 195.738 m 1034.629 197.273 l S
+1033.535 196.18 m 1034.629 197.273 l S
+1033.535 198.367 m 1034.629 197.273 l S
+1 0 0 rg
+447.266 140.371 m 448.359 141.469 l S
+447.266 140.371 m 448.359 139.277 l S
+447.266 140.371 m 459.25 141.141 l S
+458.156 140.047 m 460.344 142.234 l S
+458.156 142.234 m 460.344 140.047 l S
+459.25 141.141 m 471.238 141.91 l S
+470.145 140.816 m 472.332 143.004 l S
+470.145 143.004 m 472.332 140.816 l S
+471.238 141.91 m 483.227 142.68 l S
+482.129 141.586 m 484.32 143.773 l S
+482.129 143.773 m 484.32 141.586 l S
+483.227 142.68 m 495.211 143.449 l S
+494.117 142.355 m 496.305 144.543 l S
+494.117 144.543 m 496.305 142.355 l S
+495.211 143.449 m 507.199 144.219 l S
+506.105 143.125 m 508.293 145.312 l S
+506.105 145.312 m 508.293 143.125 l S
+507.199 144.219 m 519.188 144.984 l S
+518.094 143.891 m 520.281 146.082 l S
+518.094 146.082 m 520.281 143.891 l S
+519.188 144.984 m 531.172 145.754 l S
+530.078 144.66 m 532.266 146.848 l S
+530.078 146.848 m 532.266 144.66 l S
+531.172 145.754 m 543.16 146.523 l S
+542.066 145.43 m 544.254 147.617 l S
+542.066 147.617 m 544.254 145.43 l S
+543.16 146.523 m 555.148 147.293 l S
+554.055 146.199 m 556.242 148.387 l S
+554.055 148.387 m 556.242 146.199 l S
+555.148 147.293 m 567.133 148.062 l S
+566.039 146.969 m 568.23 149.156 l S
+566.039 149.156 m 568.23 146.969 l S
+567.133 148.062 m 579.121 148.832 l S
+578.027 147.738 m 580.215 149.926 l S
+578.027 149.926 m 580.215 147.738 l S
+579.121 148.832 m 591.109 149.602 l S
+590.016 148.504 m 592.203 150.695 l S
+590.016 150.695 m 592.203 148.504 l S
+591.109 149.602 m 603.094 150.367 l S
+602 149.273 m 604.191 151.465 l S
+602 151.465 m 604.191 149.273 l S
+603.094 150.367 m 615.082 151.137 l S
+613.988 150.043 m 616.176 152.23 l S
+613.988 152.23 m 616.176 150.043 l S
+615.082 151.137 m 627.07 151.906 l S
+625.977 150.812 m 628.164 153 l S
+625.977 153 m 628.164 150.812 l S
+627.07 151.906 m 639.059 152.676 l S
+637.961 151.582 m 640.152 153.77 l S
+637.961 153.77 m 640.152 151.582 l S
+639.059 152.676 m 651.043 153.445 l S
+649.949 152.352 m 652.137 154.539 l S
+649.949 154.539 m 652.137 152.352 l S
+651.043 153.445 m 663.031 154.215 l S
+661.938 153.121 m 664.125 155.309 l S
+661.938 155.309 m 664.125 153.121 l S
+663.031 154.215 m 675.02 154.984 l S
+673.922 153.887 m 676.113 156.078 l S
+673.922 156.078 m 676.113 153.887 l S
+675.02 154.984 m 687.004 155.75 l S
+685.91 154.656 m 688.098 156.848 l S
+685.91 156.848 m 688.098 154.656 l S
+687.004 155.75 m 698.992 156.52 l S
+697.898 155.426 m 700.086 157.613 l S
+697.898 157.613 m 700.086 155.426 l S
+698.992 156.52 m 710.98 157.289 l S
+709.883 156.195 m 712.074 158.383 l S
+709.883 158.383 m 712.074 156.195 l S
+710.98 157.289 m 722.965 158.059 l S
+721.871 156.965 m 724.059 159.152 l S
+721.871 159.152 m 724.059 156.965 l S
+722.965 158.059 m 734.953 158.828 l S
+733.859 157.734 m 736.047 159.922 l S
+733.859 159.922 m 736.047 157.734 l S
+734.953 158.828 m 746.941 159.598 l S
+745.848 158.5 m 748.035 160.691 l S
+745.848 160.691 m 748.035 158.5 l S
+746.941 159.598 m 758.926 160.363 l S
+757.832 159.27 m 760.023 161.461 l S
+757.832 161.461 m 760.023 159.27 l S
+758.926 160.363 m 770.914 161.133 l S
+769.82 160.039 m 772.008 162.227 l S
+769.82 162.227 m 772.008 160.039 l S
+770.914 161.133 m 782.902 161.902 l S
+781.809 160.809 m 783.996 162.996 l S
+781.809 162.996 m 783.996 160.809 l S
+782.902 161.902 m 794.887 162.672 l S
+793.793 161.578 m 795.984 163.766 l S
+793.793 163.766 m 795.984 161.578 l S
+794.887 162.672 m 806.875 163.441 l S
+805.781 162.348 m 807.969 164.535 l S
+805.781 164.535 m 807.969 162.348 l S
+806.875 163.441 m 818.863 164.211 l S
+817.77 163.117 m 819.957 165.305 l S
+817.77 165.305 m 819.957 163.117 l S
+818.863 164.211 m 830.848 164.98 l S
+829.754 163.883 m 831.945 166.074 l S
+829.754 166.074 m 831.945 163.883 l S
+830.848 164.98 m 842.836 165.746 l S
+841.742 164.652 m 843.93 166.844 l S
+841.742 166.844 m 843.93 164.652 l S
+842.836 165.746 m 854.824 166.516 l S
+853.73 165.422 m 855.918 167.609 l S
+853.73 167.609 m 855.918 165.422 l S
+854.824 166.516 m 866.812 167.285 l S
+865.715 166.191 m 867.906 168.379 l S
+865.715 168.379 m 867.906 166.191 l S
+866.812 167.285 m 878.797 168.055 l S
+877.703 166.961 m 879.891 169.148 l S
+877.703 169.148 m 879.891 166.961 l S
+878.797 168.055 m 890.785 168.824 l S
+889.691 167.73 m 891.879 169.918 l S
+889.691 169.918 m 891.879 167.73 l S
+890.785 168.824 m 902.773 169.594 l S
+901.676 168.5 m 903.867 170.688 l S
+901.676 170.688 m 903.867 168.5 l S
+902.773 169.594 m 914.758 170.363 l S
+913.664 169.266 m 915.852 171.457 l S
+913.664 171.457 m 915.852 169.266 l S
+914.758 170.363 m 926.746 171.129 l S
+925.652 170.035 m 927.84 172.227 l S
+925.652 172.227 m 927.84 170.035 l S
+926.746 171.129 m 938.734 171.898 l S
+937.637 170.805 m 939.828 172.992 l S
+937.637 172.992 m 939.828 170.805 l S
+938.734 171.898 m 950.719 172.668 l S
+949.625 171.574 m 951.812 173.762 l S
+949.625 173.762 m 951.812 171.574 l S
+950.719 172.668 m 962.707 173.438 l S
+961.613 172.344 m 963.801 174.531 l S
+961.613 174.531 m 963.801 172.344 l S
+962.707 173.438 m 974.695 174.207 l S
+973.602 173.113 m 975.789 175.301 l S
+973.602 175.301 m 975.789 173.113 l S
+974.695 174.207 m 986.68 174.977 l S
+985.586 173.879 m 987.777 176.07 l S
+985.586 176.07 m 987.777 173.879 l S
+986.68 174.977 m 998.668 175.742 l S
+997.574 174.648 m 999.762 176.84 l S
+997.574 176.84 m 999.762 174.648 l S
+998.668 175.742 m 1010.656 176.512 l S
+1009.562 175.418 m 1011.75 177.605 l S
+1009.562 177.605 m 1011.75 175.418 l S
+1010.656 176.512 m 1022.641 177.281 l S
+1021.547 176.188 m 1023.738 178.375 l S
+1021.547 178.375 m 1023.738 176.188 l S
+1022.641 177.281 m 1034.629 178.051 l S
+1033.535 176.957 m 1034.629 178.051 l S
+1033.535 179.145 m 1034.629 178.051 l S
+0 1 0 rg
+447.266 168.508 m 448.359 169.602 l S
+447.266 168.508 m 448.359 167.414 l S
+447.266 168.508 m 459.25 172.766 l S
+458.156 171.672 m 460.344 173.859 l S
+458.156 173.859 m 460.344 171.672 l S
+459.25 172.766 m 471.238 176.934 l S
+470.145 175.84 m 472.332 178.031 l S
+470.145 178.031 m 472.332 175.84 l S
+471.238 176.934 m 483.227 180.977 l S
+482.129 179.883 m 484.32 182.074 l S
+482.129 182.074 m 484.32 179.883 l S
+483.227 180.977 m 495.211 184.855 l S
+494.117 183.762 m 496.305 185.949 l S
+494.117 185.949 m 496.305 183.762 l S
+495.211 184.855 m 507.199 188.523 l S
+506.105 187.43 m 508.293 189.617 l S
+506.105 189.617 m 508.293 187.43 l S
+507.199 188.523 m 519.188 191.949 l S
+518.094 190.855 m 520.281 193.043 l S
+518.094 193.043 m 520.281 190.855 l S
+519.188 191.949 m 531.172 195.102 l S
+530.078 194.004 m 532.266 196.195 l S
+530.078 196.195 m 532.266 194.004 l S
+531.172 195.102 m 543.16 197.941 l S
+542.066 196.848 m 544.254 199.035 l S
+542.066 199.035 m 544.254 196.848 l S
+543.16 197.941 m 555.148 200.445 l S
+554.055 199.352 m 556.242 201.539 l S
+554.055 201.539 m 556.242 199.352 l S
+555.148 200.445 m 567.133 202.586 l S
+566.039 201.492 m 568.23 203.68 l S
+566.039 203.68 m 568.23 201.492 l S
+567.133 202.586 m 579.121 204.344 l S
+578.027 203.25 m 580.215 205.438 l S
+578.027 205.438 m 580.215 203.25 l S
+579.121 204.344 m 591.109 205.703 l S
+590.016 204.605 m 592.203 206.797 l S
+590.016 206.797 m 592.203 204.605 l S
+591.109 205.703 m 603.094 206.645 l S
+602 205.551 m 604.191 207.738 l S
+602 207.738 m 604.191 205.551 l S
+603.094 206.645 m 615.082 207.164 l S
+613.988 206.07 m 616.176 208.258 l S
+613.988 208.258 m 616.176 206.07 l S
+615.082 207.164 m 627.07 207.254 l S
+625.977 206.156 m 628.164 208.348 l S
+625.977 208.348 m 628.164 206.156 l S
+627.07 207.254 m 639.059 206.91 l S
+637.961 205.816 m 640.152 208.008 l S
+637.961 208.008 m 640.152 205.816 l S
+639.059 206.91 m 651.043 206.145 l S
+649.949 205.051 m 652.137 207.238 l S
+649.949 207.238 m 652.137 205.051 l S
+651.043 206.145 m 663.031 204.957 l S
+661.938 203.863 m 664.125 206.051 l S
+661.938 206.051 m 664.125 203.863 l S
+663.031 204.957 m 675.02 203.363 l S
+673.922 202.27 m 676.113 204.461 l S
+673.922 204.461 m 676.113 202.27 l S
+675.02 203.363 m 687.004 201.379 l S
+685.91 200.285 m 688.098 202.473 l S
+685.91 202.473 m 688.098 200.285 l S
+687.004 201.379 m 698.992 199.023 l S
+697.898 197.93 m 700.086 200.117 l S
+697.898 200.117 m 700.086 197.93 l S
+698.992 199.023 m 710.98 196.32 l S
+709.883 195.227 m 712.074 197.414 l S
+709.883 197.414 m 712.074 195.227 l S
+710.98 196.32 m 722.965 193.297 l S
+721.871 192.203 m 724.059 194.391 l S
+721.871 194.391 m 724.059 192.203 l S
+722.965 193.297 m 734.953 189.98 l S
+733.859 188.887 m 736.047 191.074 l S
+733.859 191.074 m 736.047 188.887 l S
+734.953 189.98 m 746.941 186.406 l S
+745.848 185.312 m 748.035 187.504 l S
+745.848 187.504 m 748.035 185.312 l S
+746.941 186.406 m 758.926 182.613 l S
+757.832 181.52 m 760.023 183.707 l S
+757.832 183.707 m 760.023 181.52 l S
+758.926 182.613 m 770.914 178.633 l S
+769.82 177.539 m 772.008 179.73 l S
+769.82 179.73 m 772.008 177.539 l S
+770.914 178.633 m 782.902 174.512 l S
+781.809 173.418 m 783.996 175.605 l S
+781.809 175.605 m 783.996 173.418 l S
+782.902 174.512 m 794.887 170.285 l S
+793.793 169.191 m 795.984 171.383 l S
+793.793 171.383 m 795.984 169.191 l S
+794.887 170.285 m 806.875 166 l S
+805.781 164.906 m 807.969 167.094 l S
+805.781 167.094 m 807.969 164.906 l S
+806.875 166 m 818.863 161.695 l S
+817.77 160.602 m 819.957 162.789 l S
+817.77 162.789 m 819.957 160.602 l S
+818.863 161.695 m 830.848 157.418 l S
+829.754 156.324 m 831.945 158.512 l S
+829.754 158.512 m 831.945 156.324 l S
+830.848 157.418 m 842.836 153.207 l S
+841.742 152.113 m 843.93 154.301 l S
+841.742 154.301 m 843.93 152.113 l S
+842.836 153.207 m 854.824 149.105 l S
+853.73 148.012 m 855.918 150.199 l S
+853.73 150.199 m 855.918 148.012 l S
+854.824 149.105 m 866.812 145.156 l S
+865.715 144.059 m 867.906 146.25 l S
+865.715 146.25 m 867.906 144.059 l S
+866.812 145.156 m 878.797 141.395 l S
+877.703 140.301 m 879.891 142.488 l S
+877.703 142.488 m 879.891 140.301 l S
+878.797 141.395 m 890.785 137.863 l S
+889.691 136.77 m 891.879 138.957 l S
+889.691 138.957 m 891.879 136.77 l S
+890.785 137.863 m 902.773 134.594 l S
+901.676 133.5 m 903.867 135.688 l S
+901.676 135.688 m 903.867 133.5 l S
+902.773 134.594 m 914.758 131.621 l S
+913.664 130.527 m 915.852 132.715 l S
+913.664 132.715 m 915.852 130.527 l S
+914.758 131.621 m 926.746 128.973 l S
+925.652 127.879 m 927.84 130.07 l S
+925.652 130.07 m 927.84 127.879 l S
+926.746 128.973 m 938.734 126.68 l S
+937.637 125.586 m 939.828 127.773 l S
+937.637 127.773 m 939.828 125.586 l S
+938.734 126.68 m 950.719 124.758 l S
+949.625 123.664 m 951.812 125.852 l S
+949.625 125.852 m 951.812 123.664 l S
+950.719 124.758 m 962.707 123.234 l S
+961.613 122.141 m 963.801 124.328 l S
+961.613 124.328 m 963.801 122.141 l S
+962.707 123.234 m 974.695 122.117 l S
+973.602 121.023 m 975.789 123.211 l S
+973.602 123.211 m 975.789 121.023 l S
+974.695 122.117 m 986.68 121.422 l S
+985.586 120.328 m 987.777 122.516 l S
+985.586 122.516 m 987.777 120.328 l S
+986.68 121.422 m 998.668 121.152 l S
+997.574 120.059 m 999.762 122.246 l S
+997.574 122.246 m 999.762 120.059 l S
+998.668 121.152 m 1010.656 121.312 l S
+1009.562 120.219 m 1011.75 122.41 l S
+1009.562 122.41 m 1011.75 120.219 l S
+1010.656 121.312 m 1022.641 121.906 l S
+1021.547 120.809 m 1023.738 123 l S
+1021.547 123 m 1023.738 120.809 l S
+1022.641 121.906 m 1034.629 122.918 l S
+1033.535 121.824 m 1034.629 122.918 l S
+1033.535 124.012 m 1034.629 122.918 l S
+0 0 1 rg
+447.266 196.344 m 448.359 197.438 l S
+447.266 196.344 m 448.359 195.25 l S
+447.266 196.344 m 459.25 195.863 l S
+458.156 194.766 m 460.344 196.957 l S
+458.156 196.957 m 460.344 194.766 l S
+459.25 195.863 m 471.238 195.062 l S
+470.145 193.969 m 472.332 196.156 l S
+470.145 196.156 m 472.332 193.969 l S
+471.238 195.062 m 483.227 193.957 l S
+482.129 192.863 m 484.32 195.051 l S
+482.129 195.051 m 484.32 192.863 l S
+483.227 193.957 m 495.211 192.551 l S
+494.117 191.457 m 496.305 193.645 l S
+494.117 193.645 m 496.305 191.457 l S
+495.211 192.551 m 507.199 190.863 l S
+506.105 189.77 m 508.293 191.957 l S
+506.105 191.957 m 508.293 189.77 l S
+507.199 190.863 m 519.188 188.91 l S
+518.094 187.816 m 520.281 190.004 l S
+518.094 190.004 m 520.281 187.816 l S
+519.188 188.91 m 531.172 186.711 l S
+530.078 185.617 m 532.266 187.805 l S
+530.078 187.805 m 532.266 185.617 l S
+531.172 186.711 m 543.16 184.285 l S
+542.066 183.191 m 544.254 185.379 l S
+542.066 185.379 m 544.254 183.191 l S
+543.16 184.285 m 555.148 181.66 l S
+554.055 180.566 m 556.242 182.754 l S
+554.055 182.754 m 556.242 180.566 l S
+555.148 181.66 m 567.133 178.859 l S
+566.039 177.766 m 568.23 179.953 l S
+566.039 179.953 m 568.23 177.766 l S
+567.133 178.859 m 579.121 175.914 l S
+578.027 174.816 m 580.215 177.008 l S
+578.027 177.008 m 580.215 174.816 l S
+579.121 175.914 m 591.109 172.848 l S
+590.016 171.754 m 592.203 173.941 l S
+590.016 173.941 m 592.203 171.754 l S
+591.109 172.848 m 603.094 169.699 l S
+602 168.605 m 604.191 170.793 l S
+602 170.793 m 604.191 168.605 l S
+603.094 169.699 m 615.082 166.496 l S
+613.988 165.398 m 616.176 167.59 l S
+613.988 167.59 m 616.176 165.398 l S
+615.082 166.496 m 627.07 163.266 l S
+625.977 162.172 m 628.164 164.359 l S
+625.977 164.359 m 628.164 162.172 l S
+627.07 163.266 m 639.059 160.047 l S
+637.961 158.953 m 640.152 161.145 l S
+637.961 161.145 m 640.152 158.953 l S
+639.059 160.047 m 651.043 156.871 l S
+649.949 155.777 m 652.137 157.965 l S
+649.949 157.965 m 652.137 155.777 l S
+651.043 156.871 m 663.031 153.77 l S
+661.938 152.676 m 664.125 154.863 l S
+661.938 154.863 m 664.125 152.676 l S
+663.031 153.77 m 675.02 150.77 l S
+673.922 149.676 m 676.113 151.863 l S
+673.922 151.863 m 676.113 149.676 l S
+675.02 150.77 m 687.004 147.906 l S
+685.91 146.812 m 688.098 149 l S
+685.91 149 m 688.098 146.812 l S
+687.004 147.906 m 698.992 145.203 l S
+697.898 144.109 m 700.086 146.297 l S
+697.898 146.297 m 700.086 144.109 l S
+698.992 145.203 m 710.98 142.691 l S
+709.883 141.598 m 712.074 143.785 l S
+709.883 143.785 m 712.074 141.598 l S
+710.98 142.691 m 722.965 140.395 l S
+721.871 139.301 m 724.059 141.488 l S
+721.871 141.488 m 724.059 139.301 l S
+722.965 140.395 m 734.953 138.336 l S
+733.859 137.242 m 736.047 139.43 l S
+733.859 139.43 m 736.047 137.242 l S
+734.953 138.336 m 746.941 136.535 l S
+745.848 135.441 m 748.035 137.629 l S
+745.848 137.629 m 748.035 135.441 l S
+746.941 136.535 m 758.926 135.012 l S
+757.832 133.918 m 760.023 136.105 l S
+757.832 136.105 m 760.023 133.918 l S
+758.926 135.012 m 770.914 133.781 l S
+769.82 132.688 m 772.008 134.875 l S
+769.82 134.875 m 772.008 132.688 l S
+770.914 133.781 m 782.902 132.852 l S
+781.809 131.758 m 783.996 133.945 l S
+781.809 133.945 m 783.996 131.758 l S
+782.902 132.852 m 794.887 132.238 l S
+793.793 131.145 m 795.984 133.332 l S
+793.793 133.332 m 795.984 131.145 l S
+794.887 132.238 m 806.875 131.941 l S
+805.781 130.848 m 807.969 133.035 l S
+805.781 133.035 m 807.969 130.848 l S
+806.875 131.941 m 818.863 131.969 l S
+817.77 130.875 m 819.957 133.062 l S
+817.77 133.062 m 819.957 130.875 l S
+818.863 131.969 m 830.848 132.32 l S
+829.754 131.223 m 831.945 133.414 l S
+829.754 133.414 m 831.945 131.223 l S
+830.848 132.32 m 842.836 132.988 l S
+841.742 131.891 m 843.93 134.082 l S
+841.742 134.082 m 843.93 131.891 l S
+842.836 132.988 m 854.824 133.965 l S
+853.73 132.871 m 855.918 135.062 l S
+853.73 135.062 m 855.918 132.871 l S
+854.824 133.965 m 866.812 135.25 l S
+865.715 134.152 m 867.906 136.344 l S
+865.715 136.344 m 867.906 134.152 l S
+866.812 135.25 m 878.797 136.82 l S
+877.703 135.727 m 879.891 137.914 l S
+877.703 137.914 m 879.891 135.727 l S
+878.797 136.82 m 890.785 138.664 l S
+889.691 137.57 m 891.879 139.758 l S
+889.691 139.758 m 891.879 137.57 l S
+890.785 138.664 m 902.773 140.766 l S
+901.676 139.672 m 903.867 141.859 l S
+901.676 141.859 m 903.867 139.672 l S
+902.773 140.766 m 914.758 143.102 l S
+913.664 142.004 m 915.852 144.195 l S
+913.664 144.195 m 915.852 142.004 l S
+914.758 143.102 m 926.746 145.645 l S
+925.652 144.551 m 927.84 146.738 l S
+925.652 146.738 m 927.84 144.551 l S
+926.746 145.645 m 938.734 148.375 l S
+937.637 147.281 m 939.828 149.473 l S
+937.637 149.473 m 939.828 147.281 l S
+938.734 148.375 m 950.719 151.266 l S
+949.625 150.172 m 951.812 152.359 l S
+949.625 152.359 m 951.812 150.172 l S
+950.719 151.266 m 962.707 154.285 l S
+961.613 153.191 m 963.801 155.379 l S
+961.613 155.379 m 963.801 153.191 l S
+962.707 154.285 m 974.695 157.402 l S
+973.602 156.309 m 975.789 158.496 l S
+973.602 158.496 m 975.789 156.309 l S
+974.695 157.402 m 986.68 160.586 l S
+985.586 159.492 m 987.777 161.684 l S
+985.586 161.684 m 987.777 159.492 l S
+986.68 160.586 m 998.668 163.809 l S
+997.574 162.715 m 999.762 164.902 l S
+997.574 164.902 m 999.762 162.715 l S
+998.668 163.809 m 1010.656 167.035 l S
+1009.562 165.941 m 1011.75 168.129 l S
+1009.562 168.129 m 1011.75 165.941 l S
+1010.656 167.035 m 1022.641 170.234 l S
+1021.547 169.141 m 1023.738 171.328 l S
+1021.547 171.328 m 1023.738 169.141 l S
+1022.641 170.234 m 1034.629 173.371 l S
+1033.535 172.277 m 1034.629 173.371 l S
+1033.535 174.465 m 1034.629 173.371 l S
+0 1 1 rg
+447.266 150.086 m 448.359 151.18 l S
+447.266 150.086 m 448.359 148.992 l S
+447.266 150.086 m 459.25 214.836 l S
+458.156 213.742 m 460.344 215.93 l S
+458.156 215.93 m 460.344 213.742 l S
+459.25 214.836 m 471.238 157.086 l S
+470.145 155.992 m 472.332 158.18 l S
+470.145 158.18 m 472.332 155.992 l S
+471.238 157.086 m 483.227 213.352 l S
+482.129 212.254 m 484.32 214.445 l S
+482.129 214.445 m 484.32 212.254 l S
+483.227 213.352 m 495.211 120.156 l S
+494.117 119.062 m 496.305 121.25 l S
+494.117 121.25 m 496.305 119.062 l S
+495.211 120.156 m 507.199 217.441 l S
+506.105 216.348 m 508.293 218.539 l S
+506.105 218.539 m 508.293 216.348 l S
+507.199 217.441 m 519.188 160.641 l S
+518.094 159.547 m 520.281 161.734 l S
+518.094 161.734 m 520.281 159.547 l S
+519.188 160.641 m 531.172 110.742 l S
+530.078 109.648 m 532.266 111.836 l S
+530.078 111.836 m 532.266 109.648 l S
+531.172 110.742 m 543.16 134.926 l S
+542.066 133.832 m 544.254 136.023 l S
+542.066 136.023 m 544.254 133.832 l S
+543.16 134.926 m 555.148 181.848 l S
+554.055 180.754 m 556.242 182.941 l S
+554.055 182.941 m 556.242 180.754 l S
+555.148 181.848 m 567.133 211.969 l S
+566.039 210.875 m 568.23 213.062 l S
+566.039 213.062 m 568.23 210.875 l S
+567.133 211.969 m 579.121 217.332 l S
+578.027 216.238 m 580.215 218.43 l S
+578.027 218.43 m 580.215 216.238 l S
+579.121 217.332 m 591.109 204.988 l S
+590.016 203.895 m 592.203 206.086 l S
+590.016 206.086 m 592.203 203.895 l S
+591.109 204.988 m 603.094 184.348 l S
+602 183.254 m 604.191 185.441 l S
+602 185.441 m 604.191 183.254 l S
+603.094 184.348 m 615.082 162.426 l S
+613.988 161.328 m 616.176 163.52 l S
+613.988 163.52 m 616.176 161.328 l S
+615.082 162.426 m 627.07 143.207 l S
+625.977 142.113 m 628.164 144.301 l S
+625.977 144.301 m 628.164 142.113 l S
+627.07 143.207 m 639.059 128.41 l S
+637.961 127.316 m 640.152 129.504 l S
+637.961 129.504 m 640.152 127.316 l S
+639.059 128.41 m 651.043 118.344 l S
+649.949 117.25 m 652.137 119.438 l S
+649.949 119.438 m 652.137 117.25 l S
+651.043 118.344 m 663.031 112.594 l S
+661.938 111.5 m 664.125 113.688 l S
+661.938 113.688 m 664.125 111.5 l S
+663.031 112.594 m 675.02 110.449 l S
+673.922 109.355 m 676.113 111.543 l S
+673.922 111.543 m 676.113 109.355 l S
+675.02 110.449 m 687.004 111.133 l S
+685.91 110.039 m 688.098 112.227 l S
+685.91 112.227 m 688.098 110.039 l S
+687.004 111.133 m 698.992 113.922 l S
+697.898 112.828 m 700.086 115.016 l S
+697.898 115.016 m 700.086 112.828 l S
+698.992 113.922 m 710.98 118.203 l S
+709.883 117.109 m 712.074 119.297 l S
+709.883 119.297 m 712.074 117.109 l S
+710.98 118.203 m 722.965 123.473 l S
+721.871 122.379 m 724.059 124.57 l S
+721.871 124.57 m 724.059 122.379 l S
+722.965 123.473 m 734.953 129.348 l S
+733.859 128.254 m 736.047 130.441 l S
+733.859 130.441 m 736.047 128.254 l S
+734.953 129.348 m 746.941 135.523 l S
+745.848 134.43 m 748.035 136.617 l S
+745.848 136.617 m 748.035 134.43 l S
+746.941 135.523 m 758.926 141.781 l S
+757.832 140.684 m 760.023 142.875 l S
+757.832 142.875 m 760.023 140.684 l S
+758.926 141.781 m 770.914 147.961 l S
+769.82 146.867 m 772.008 149.055 l S
+769.82 149.055 m 772.008 146.867 l S
+770.914 147.961 m 782.902 153.953 l S
+781.809 152.859 m 783.996 155.047 l S
+781.809 155.047 m 783.996 152.859 l S
+782.902 153.953 m 794.887 159.684 l S
+793.793 158.59 m 795.984 160.777 l S
+793.793 160.777 m 795.984 158.59 l S
+794.887 159.684 m 806.875 165.102 l S
+805.781 164.008 m 807.969 166.195 l S
+805.781 166.195 m 807.969 164.008 l S
+806.875 165.102 m 818.863 170.188 l S
+817.77 169.094 m 819.957 171.281 l S
+817.77 171.281 m 819.957 169.094 l S
+818.863 170.188 m 830.848 174.926 l S
+829.754 173.832 m 831.945 176.02 l S
+829.754 176.02 m 831.945 173.832 l S
+830.848 174.926 m 842.836 179.316 l S
+841.742 178.219 m 843.93 180.41 l S
+841.742 180.41 m 843.93 178.219 l S
+842.836 179.316 m 854.824 183.363 l S
+853.73 182.27 m 855.918 184.457 l S
+853.73 184.457 m 855.918 182.27 l S
+854.824 183.363 m 866.812 187.082 l S
+865.715 185.988 m 867.906 188.176 l S
+865.715 188.176 m 867.906 185.988 l S
+866.812 187.082 m 878.797 190.488 l S
+877.703 189.395 m 879.891 191.582 l S
+877.703 191.582 m 879.891 189.395 l S
+878.797 190.488 m 890.785 193.594 l S
+889.691 192.5 m 891.879 194.688 l S
+889.691 194.688 m 891.879 192.5 l S
+890.785 193.594 m 902.773 196.422 l S
+901.676 195.328 m 903.867 197.516 l S
+901.676 197.516 m 903.867 195.328 l S
+902.773 196.422 m 914.758 198.992 l S
+913.664 197.898 m 915.852 200.086 l S
+913.664 200.086 m 915.852 197.898 l S
+914.758 198.992 m 926.746 201.316 l S
+925.652 200.223 m 927.84 202.41 l S
+925.652 202.41 m 927.84 200.223 l S
+926.746 201.316 m 938.734 203.418 l S
+937.637 202.324 m 939.828 204.512 l S
+937.637 204.512 m 939.828 202.324 l S
+938.734 203.418 m 950.719 205.312 l S
+949.625 204.219 m 951.812 206.406 l S
+949.625 206.406 m 951.812 204.219 l S
+950.719 205.312 m 962.707 207.012 l S
+961.613 205.918 m 963.801 208.109 l S
+961.613 208.109 m 963.801 205.918 l S
+962.707 207.012 m 974.695 208.539 l S
+973.602 207.445 m 975.789 209.633 l S
+973.602 209.633 m 975.789 207.445 l S
+974.695 208.539 m 986.68 209.902 l S
+985.586 208.809 m 987.777 210.996 l S
+985.586 210.996 m 987.777 208.809 l S
+986.68 209.902 m 998.668 211.121 l S
+997.574 210.023 m 999.762 212.215 l S
+997.574 212.215 m 999.762 210.023 l S
+998.668 211.121 m 1010.656 212.199 l S
+1009.562 211.105 m 1011.75 213.293 l S
+1009.562 213.293 m 1011.75 211.105 l S
+1010.656 212.199 m 1022.641 213.152 l S
+1021.547 212.059 m 1023.738 214.246 l S
+1021.547 214.246 m 1023.738 212.059 l S
+1022.641 213.152 m 1034.629 213.996 l S
+1033.535 212.898 m 1034.629 213.996 l S
+1033.535 215.09 m 1034.629 213.996 l S
+1 0 1 rg
+447.266 165.285 m 448.359 166.379 l S
+447.266 165.285 m 448.359 164.191 l S
+447.266 165.285 m 459.25 166.363 l S
+458.156 165.27 m 460.344 167.457 l S
+458.156 167.457 m 460.344 165.27 l S
+459.25 166.363 m 471.238 167.438 l S
+470.145 166.344 m 472.332 168.535 l S
+470.145 168.535 m 472.332 166.344 l S
+471.238 167.438 m 483.227 168.516 l S
+482.129 167.422 m 484.32 169.609 l S
+482.129 169.609 m 484.32 167.422 l S
+483.227 168.516 m 495.211 169.594 l S
+494.117 168.5 m 496.305 170.688 l S
+494.117 170.688 m 496.305 168.5 l S
+495.211 169.594 m 507.199 170.668 l S
+506.105 169.574 m 508.293 171.762 l S
+506.105 171.762 m 508.293 169.574 l S
+507.199 170.668 m 519.188 171.746 l S
+518.094 170.652 m 520.281 172.84 l S
+518.094 172.84 m 520.281 170.652 l S
+519.188 171.746 m 531.172 172.82 l S
+530.078 171.727 m 532.266 173.918 l S
+530.078 173.918 m 532.266 171.727 l S
+531.172 172.82 m 543.16 173.898 l S
+542.066 172.805 m 544.254 174.992 l S
+542.066 174.992 m 544.254 172.805 l S
+543.16 173.898 m 555.148 174.977 l S
+554.055 173.879 m 556.242 176.07 l S
+554.055 176.07 m 556.242 173.879 l S
+555.148 174.977 m 567.133 176.051 l S
+566.039 174.957 m 568.23 177.145 l S
+566.039 177.145 m 568.23 174.957 l S
+567.133 176.051 m 579.121 177.129 l S
+578.027 176.035 m 580.215 178.223 l S
+578.027 178.223 m 580.215 176.035 l S
+579.121 177.129 m 591.109 178.203 l S
+590.016 177.109 m 592.203 179.301 l S
+590.016 179.301 m 592.203 177.109 l S
+591.109 178.203 m 603.094 179.281 l S
+602 178.188 m 604.191 180.375 l S
+602 180.375 m 604.191 178.188 l S
+603.094 179.281 m 615.082 180.359 l S
+613.988 179.262 m 616.176 181.453 l S
+613.988 181.453 m 616.176 179.262 l S
+615.082 180.359 m 627.07 181.434 l S
+625.977 180.34 m 628.164 182.527 l S
+625.977 182.527 m 628.164 180.34 l S
+627.07 181.434 m 639.059 182.512 l S
+637.961 181.418 m 640.152 183.605 l S
+637.961 183.605 m 640.152 181.418 l S
+639.059 182.512 m 651.043 183.586 l S
+649.949 182.492 m 652.137 184.68 l S
+649.949 184.68 m 652.137 182.492 l S
+651.043 183.586 m 663.031 184.664 l S
+661.938 183.57 m 664.125 185.758 l S
+661.938 185.758 m 664.125 183.57 l S
+663.031 184.664 m 675.02 185.738 l S
+673.922 184.645 m 676.113 186.836 l S
+673.922 186.836 m 676.113 184.645 l S
+675.02 185.738 m 687.004 186.816 l S
+685.91 185.723 m 688.098 187.91 l S
+685.91 187.91 m 688.098 185.723 l S
+687.004 186.816 m 698.992 187.895 l S
+697.898 186.801 m 700.086 188.988 l S
+697.898 188.988 m 700.086 186.801 l S
+698.992 187.895 m 710.98 188.969 l S
+709.883 187.875 m 712.074 190.062 l S
+709.883 190.062 m 712.074 187.875 l S
+710.98 188.969 m 722.965 190.047 l S
+721.871 188.953 m 724.059 191.141 l S
+721.871 191.141 m 724.059 188.953 l S
+722.965 190.047 m 734.953 191.121 l S
+733.859 190.027 m 736.047 192.219 l S
+733.859 192.219 m 736.047 190.027 l S
+734.953 191.121 m 746.941 192.199 l S
+745.848 191.105 m 748.035 193.293 l S
+745.848 193.293 m 748.035 191.105 l S
+746.941 192.199 m 758.926 193.277 l S
+757.832 192.18 m 760.023 194.371 l S
+757.832 194.371 m 760.023 192.18 l S
+758.926 193.277 m 770.914 194.352 l S
+769.82 193.258 m 772.008 195.445 l S
+769.82 195.445 m 772.008 193.258 l S
+770.914 194.352 m 782.902 195.43 l S
+781.809 194.336 m 783.996 196.523 l S
+781.809 196.523 m 783.996 194.336 l S
+782.902 195.43 m 794.887 196.504 l S
+793.793 195.41 m 795.984 197.602 l S
+793.793 197.602 m 795.984 195.41 l S
+794.887 196.504 m 806.875 197.582 l S
+805.781 196.488 m 807.969 198.676 l S
+805.781 198.676 m 807.969 196.488 l S
+806.875 197.582 m 818.863 198.66 l S
+817.77 197.562 m 819.957 199.754 l S
+817.77 199.754 m 819.957 197.562 l S
+818.863 198.66 m 830.848 199.734 l S
+829.754 198.641 m 831.945 200.828 l S
+829.754 200.828 m 831.945 198.641 l S
+830.848 199.734 m 842.836 200.812 l S
+841.742 199.719 m 843.93 201.906 l S
+841.742 201.906 m 843.93 199.719 l S
+842.836 200.812 m 854.824 201.887 l S
+853.73 200.793 m 855.918 202.98 l S
+853.73 202.98 m 855.918 200.793 l S
+854.824 201.887 m 866.812 202.965 l S
+865.715 201.871 m 867.906 204.059 l S
+865.715 204.059 m 867.906 201.871 l S
+866.812 202.965 m 878.797 204.039 l S
+877.703 202.945 m 879.891 205.137 l S
+877.703 205.137 m 879.891 202.945 l S
+878.797 204.039 m 890.785 205.117 l S
+889.691 204.023 m 891.879 206.211 l S
+889.691 206.211 m 891.879 204.023 l S
+890.785 205.117 m 902.773 206.195 l S
+901.676 205.102 m 903.867 207.289 l S
+901.676 207.289 m 903.867 205.102 l S
+902.773 206.195 m 914.758 207.27 l S
+913.664 206.176 m 915.852 208.363 l S
+913.664 208.363 m 915.852 206.176 l S
+914.758 207.27 m 926.746 208.348 l S
+925.652 207.254 m 927.84 209.441 l S
+925.652 209.441 m 927.84 207.254 l S
+926.746 208.348 m 938.734 209.422 l S
+937.637 208.328 m 939.828 210.52 l S
+937.637 210.52 m 939.828 208.328 l S
+938.734 209.422 m 950.719 210.5 l S
+949.625 209.406 m 951.812 211.594 l S
+949.625 211.594 m 951.812 209.406 l S
+950.719 210.5 m 962.707 211.578 l S
+961.613 210.48 m 963.801 212.672 l S
+961.613 212.672 m 963.801 210.48 l S
+962.707 211.578 m 974.695 212.652 l S
+973.602 211.559 m 975.789 213.746 l S
+973.602 213.746 m 975.789 211.559 l S
+974.695 212.652 m 986.68 213.73 l S
+985.586 212.637 m 987.777 214.824 l S
+985.586 214.824 m 987.777 212.637 l S
+986.68 213.73 m 998.668 214.805 l S
+997.574 213.711 m 999.762 215.902 l S
+997.574 215.902 m 999.762 213.711 l S
+998.668 214.805 m 1010.656 215.883 l S
+1009.562 214.789 m 1011.75 216.977 l S
+1009.562 216.977 m 1011.75 214.789 l S
+1010.656 215.883 m 1022.641 216.961 l S
+1021.547 215.863 m 1023.738 218.055 l S
+1021.547 218.055 m 1023.738 215.863 l S
+1022.641 216.961 m 1034.629 218.035 l S
+1033.535 216.941 m 1034.629 218.035 l S
+1033.535 219.129 m 1034.629 218.035 l S
+0 g
+447.266 214.789 m 447.266 216.977 l S
+447.266 215.883 m 448.359 215.883 l S
+447.266 215.883 m 459.25 213.73 l S
+459.25 212.637 m 459.25 214.824 l S
+458.156 213.73 m 460.344 213.73 l S
+459.25 213.73 m 471.238 211.578 l S
+471.238 210.48 m 471.238 212.672 l S
+470.145 211.578 m 472.332 211.578 l S
+471.238 211.578 m 483.227 209.422 l S
+483.227 208.328 m 483.227 210.52 l S
+482.129 209.422 m 484.32 209.422 l S
+483.227 209.422 m 495.211 207.27 l S
+495.211 206.176 m 495.211 208.363 l S
+494.117 207.27 m 496.305 207.27 l S
+495.211 207.27 m 507.199 205.117 l S
+507.199 204.023 m 507.199 206.211 l S
+506.105 205.117 m 508.293 205.117 l S
+507.199 205.117 m 519.188 202.965 l S
+519.188 201.871 m 519.188 204.059 l S
+518.094 202.965 m 520.281 202.965 l S
+519.188 202.965 m 531.172 200.812 l S
+531.172 199.719 m 531.172 201.906 l S
+530.078 200.812 m 532.266 200.812 l S
+531.172 200.812 m 543.16 198.66 l S
+543.16 197.562 m 543.16 199.754 l S
+542.066 198.66 m 544.254 198.66 l S
+543.16 198.66 m 555.148 196.504 l S
+555.148 195.41 m 555.148 197.602 l S
+554.055 196.504 m 556.242 196.504 l S
+555.148 196.504 m 567.133 194.352 l S
+567.133 193.258 m 567.133 195.445 l S
+566.039 194.352 m 568.23 194.352 l S
+567.133 194.352 m 579.121 192.199 l S
+579.121 191.105 m 579.121 193.293 l S
+578.027 192.199 m 580.215 192.199 l S
+579.121 192.199 m 591.109 190.047 l S
+591.109 188.953 m 591.109 191.141 l S
+590.016 190.047 m 592.203 190.047 l S
+591.109 190.047 m 603.094 187.895 l S
+603.094 186.801 m 603.094 188.988 l S
+602 187.895 m 604.191 187.895 l S
+603.094 187.895 m 615.082 185.738 l S
+615.082 184.645 m 615.082 186.836 l S
+613.988 185.738 m 616.176 185.738 l S
+615.082 185.738 m 627.07 183.586 l S
+627.07 182.492 m 627.07 184.68 l S
+625.977 183.586 m 628.164 183.586 l S
+627.07 183.586 m 639.059 181.434 l S
+639.059 180.34 m 639.059 182.527 l S
+637.961 181.434 m 640.152 181.434 l S
+639.059 181.434 m 651.043 179.281 l S
+651.043 178.188 m 651.043 180.375 l S
+649.949 179.281 m 652.137 179.281 l S
+651.043 179.281 m 663.031 177.129 l S
+663.031 176.035 m 663.031 178.223 l S
+661.938 177.129 m 664.125 177.129 l S
+663.031 177.129 m 675.02 174.977 l S
+675.02 173.879 m 675.02 176.07 l S
+673.922 174.977 m 676.113 174.977 l S
+675.02 174.977 m 687.004 172.82 l S
+687.004 171.727 m 687.004 173.918 l S
+685.91 172.82 m 688.098 172.82 l S
+687.004 172.82 m 698.992 170.668 l S
+698.992 169.574 m 698.992 171.762 l S
+697.898 170.668 m 700.086 170.668 l S
+698.992 170.668 m 710.98 168.516 l S
+710.98 167.422 m 710.98 169.609 l S
+709.883 168.516 m 712.074 168.516 l S
+710.98 168.516 m 722.965 166.363 l S
+722.965 165.27 m 722.965 167.457 l S
+721.871 166.363 m 724.059 166.363 l S
+722.965 166.363 m 734.953 164.211 l S
+734.953 163.117 m 734.953 165.305 l S
+733.859 164.211 m 736.047 164.211 l S
+734.953 164.211 m 746.941 162.059 l S
+746.941 160.961 m 746.941 163.152 l S
+745.848 162.059 m 748.035 162.059 l S
+746.941 162.059 m 758.926 159.902 l S
+758.926 158.809 m 758.926 161 l S
+757.832 159.902 m 760.023 159.902 l S
+758.926 159.902 m 770.914 157.75 l S
+770.914 156.656 m 770.914 158.844 l S
+769.82 157.75 m 772.008 157.75 l S
+770.914 157.75 m 782.902 155.598 l S
+782.902 154.504 m 782.902 156.691 l S
+781.809 155.598 m 783.996 155.598 l S
+782.902 155.598 m 794.887 153.445 l S
+794.887 152.352 m 794.887 154.539 l S
+793.793 153.445 m 795.984 153.445 l S
+794.887 153.445 m 806.875 151.293 l S
+806.875 150.199 m 806.875 152.387 l S
+805.781 151.293 m 807.969 151.293 l S
+806.875 151.293 m 818.863 149.137 l S
+818.863 148.043 m 818.863 150.234 l S
+817.77 149.137 m 819.957 149.137 l S
+818.863 149.137 m 830.848 146.984 l S
+830.848 145.891 m 830.848 148.078 l S
+829.754 146.984 m 831.945 146.984 l S
+830.848 146.984 m 842.836 144.832 l S
+842.836 143.738 m 842.836 145.926 l S
+841.742 144.832 m 843.93 144.832 l S
+842.836 144.832 m 854.824 142.68 l S
+854.824 141.586 m 854.824 143.773 l S
+853.73 142.68 m 855.918 142.68 l S
+854.824 142.68 m 866.812 140.527 l S
+866.812 139.434 m 866.812 141.621 l S
+865.715 140.527 m 867.906 140.527 l S
+866.812 140.527 m 878.797 138.375 l S
+878.797 137.277 m 878.797 139.469 l S
+877.703 138.375 m 879.891 138.375 l S
+878.797 138.375 m 890.785 136.219 l S
+890.785 135.125 m 890.785 137.316 l S
+889.691 136.219 m 891.879 136.219 l S
+890.785 136.219 m 902.773 134.066 l S
+902.773 132.973 m 902.773 135.16 l S
+901.676 134.066 m 903.867 134.066 l S
+902.773 134.066 m 914.758 131.914 l S
+914.758 130.82 m 914.758 133.008 l S
+913.664 131.914 m 915.852 131.914 l S
+914.758 131.914 m 926.746 129.762 l S
+926.746 128.668 m 926.746 130.855 l S
+925.652 129.762 m 927.84 129.762 l S
+926.746 129.762 m 938.734 127.609 l S
+938.734 126.516 m 938.734 128.703 l S
+937.637 127.609 m 939.828 127.609 l S
+938.734 127.609 m 950.719 125.457 l S
+950.719 124.359 m 950.719 126.551 l S
+949.625 125.457 m 951.812 125.457 l S
+950.719 125.457 m 962.707 123.301 l S
+962.707 122.207 m 962.707 124.395 l S
+961.613 123.301 m 963.801 123.301 l S
+962.707 123.301 m 974.695 121.148 l S
+974.695 120.055 m 974.695 122.242 l S
+973.602 121.148 m 975.789 121.148 l S
+974.695 121.148 m 986.68 118.996 l S
+986.68 117.902 m 986.68 120.09 l S
+985.586 118.996 m 987.777 118.996 l S
+986.68 118.996 m 998.668 116.844 l S
+998.668 115.75 m 998.668 117.938 l S
+997.574 116.844 m 999.762 116.844 l S
+998.668 116.844 m 1010.656 114.691 l S
+1010.656 113.598 m 1010.656 115.785 l S
+1009.562 114.691 m 1011.75 114.691 l S
+1010.656 114.691 m 1022.641 112.535 l S
+1022.641 111.441 m 1022.641 113.633 l S
+1021.547 112.535 m 1023.738 112.535 l S
+1022.641 112.535 m 1034.629 110.383 l S
+1034.629 109.289 m 1034.629 111.477 l S
+1033.535 110.383 m 1034.629 110.383 l S
+1 0 0 rg
+447.266 136.633 m 447.266 138.82 l S
+447.266 137.727 m 448.359 137.727 l S
+447.266 137.727 m 459.25 138.156 l S
+459.25 137.062 m 459.25 139.254 l S
+458.156 138.156 m 460.344 138.156 l S
+459.25 138.156 m 471.238 138.59 l S
+471.238 137.496 m 471.238 139.684 l S
+470.145 138.59 m 472.332 138.59 l S
+471.238 138.59 m 483.227 139.02 l S
+483.227 137.926 m 483.227 140.113 l S
+482.129 139.02 m 484.32 139.02 l S
+483.227 139.02 m 495.211 139.449 l S
+495.211 138.355 m 495.211 140.543 l S
+494.117 139.449 m 496.305 139.449 l S
+495.211 139.449 m 507.199 139.879 l S
+507.199 138.785 m 507.199 140.977 l S
+506.105 139.879 m 508.293 139.879 l S
+507.199 139.879 m 519.188 140.312 l S
+519.188 139.219 m 519.188 141.406 l S
+518.094 140.312 m 520.281 140.312 l S
+519.188 140.312 m 531.172 140.742 l S
+531.172 139.648 m 531.172 141.836 l S
+530.078 140.742 m 532.266 140.742 l S
+531.172 140.742 m 543.16 141.172 l S
+543.16 140.078 m 543.16 142.266 l S
+542.066 141.172 m 544.254 141.172 l S
+543.16 141.172 m 555.148 141.602 l S
+555.148 140.508 m 555.148 142.699 l S
+554.055 141.602 m 556.242 141.602 l S
+555.148 141.602 m 567.133 142.035 l S
+567.133 140.938 m 567.133 143.129 l S
+566.039 142.035 m 568.23 142.035 l S
+567.133 142.035 m 579.121 142.465 l S
+579.121 141.371 m 579.121 143.559 l S
+578.027 142.465 m 580.215 142.465 l S
+579.121 142.465 m 591.109 142.895 l S
+591.109 141.801 m 591.109 143.988 l S
+590.016 142.895 m 592.203 142.895 l S
+591.109 142.895 m 603.094 143.324 l S
+603.094 142.23 m 603.094 144.418 l S
+602 143.324 m 604.191 143.324 l S
+603.094 143.324 m 615.082 143.758 l S
+615.082 142.66 m 615.082 144.852 l S
+613.988 143.758 m 616.176 143.758 l S
+615.082 143.758 m 627.07 144.188 l S
+627.07 143.094 m 627.07 145.281 l S
+625.977 144.188 m 628.164 144.188 l S
+627.07 144.188 m 639.059 144.617 l S
+639.059 143.523 m 639.059 145.711 l S
+637.961 144.617 m 640.152 144.617 l S
+639.059 144.617 m 651.043 145.047 l S
+651.043 143.953 m 651.043 146.141 l S
+649.949 145.047 m 652.137 145.047 l S
+651.043 145.047 m 663.031 145.477 l S
+663.031 144.383 m 663.031 146.574 l S
+661.938 145.477 m 664.125 145.477 l S
+663.031 145.477 m 675.02 145.91 l S
+675.02 144.816 m 675.02 147.004 l S
+673.922 145.91 m 676.113 145.91 l S
+675.02 145.91 m 687.004 146.34 l S
+687.004 145.246 m 687.004 147.434 l S
+685.91 146.34 m 688.098 146.34 l S
+687.004 146.34 m 698.992 146.77 l S
+698.992 145.676 m 698.992 147.863 l S
+697.898 146.77 m 700.086 146.77 l S
+698.992 146.77 m 710.98 147.199 l S
+710.98 146.105 m 710.98 148.297 l S
+709.883 147.199 m 712.074 147.199 l S
+710.98 147.199 m 722.965 147.633 l S
+722.965 146.539 m 722.965 148.727 l S
+721.871 147.633 m 724.059 147.633 l S
+722.965 147.633 m 734.953 148.062 l S
+734.953 146.969 m 734.953 149.156 l S
+733.859 148.062 m 736.047 148.062 l S
+734.953 148.062 m 746.941 148.492 l S
+746.941 147.398 m 746.941 149.586 l S
+745.848 148.492 m 748.035 148.492 l S
+746.941 148.492 m 758.926 148.922 l S
+758.926 147.828 m 758.926 150.02 l S
+757.832 148.922 m 760.023 148.922 l S
+758.926 148.922 m 770.914 149.355 l S
+770.914 148.258 m 770.914 150.449 l S
+769.82 149.355 m 772.008 149.355 l S
+770.914 149.355 m 782.902 149.785 l S
+782.902 148.691 m 782.902 150.879 l S
+781.809 149.785 m 783.996 149.785 l S
+782.902 149.785 m 794.887 150.215 l S
+794.887 149.121 m 794.887 151.309 l S
+793.793 150.215 m 795.984 150.215 l S
+794.887 150.215 m 806.875 150.645 l S
+806.875 149.551 m 806.875 151.738 l S
+805.781 150.645 m 807.969 150.645 l S
+806.875 150.645 m 818.863 151.078 l S
+818.863 149.98 m 818.863 152.172 l S
+817.77 151.078 m 819.957 151.078 l S
+818.863 151.078 m 830.848 151.508 l S
+830.848 150.414 m 830.848 152.602 l S
+829.754 151.508 m 831.945 151.508 l S
+830.848 151.508 m 842.836 151.938 l S
+842.836 150.844 m 842.836 153.031 l S
+841.742 151.938 m 843.93 151.938 l S
+842.836 151.938 m 854.824 152.367 l S
+854.824 151.273 m 854.824 153.461 l S
+853.73 152.367 m 855.918 152.367 l S
+854.824 152.367 m 866.812 152.797 l S
+866.812 151.703 m 866.812 153.895 l S
+865.715 152.797 m 867.906 152.797 l S
+866.812 152.797 m 878.797 153.23 l S
+878.797 152.137 m 878.797 154.324 l S
+877.703 153.23 m 879.891 153.23 l S
+878.797 153.23 m 890.785 153.66 l S
+890.785 152.566 m 890.785 154.754 l S
+889.691 153.66 m 891.879 153.66 l S
+890.785 153.66 m 902.773 154.09 l S
+902.773 152.996 m 902.773 155.184 l S
+901.676 154.09 m 903.867 154.09 l S
+902.773 154.09 m 914.758 154.52 l S
+914.758 153.426 m 914.758 155.617 l S
+913.664 154.52 m 915.852 154.52 l S
+914.758 154.52 m 926.746 154.953 l S
+926.746 153.859 m 926.746 156.047 l S
+925.652 154.953 m 927.84 154.953 l S
+926.746 154.953 m 938.734 155.383 l S
+938.734 154.289 m 938.734 156.477 l S
+937.637 155.383 m 939.828 155.383 l S
+938.734 155.383 m 950.719 155.812 l S
+950.719 154.719 m 950.719 156.906 l S
+949.625 155.812 m 951.812 155.812 l S
+950.719 155.812 m 962.707 156.242 l S
+962.707 155.148 m 962.707 157.34 l S
+961.613 156.242 m 963.801 156.242 l S
+962.707 156.242 m 974.695 156.676 l S
+974.695 155.578 m 974.695 157.77 l S
+973.602 156.676 m 975.789 156.676 l S
+974.695 156.676 m 986.68 157.105 l S
+986.68 156.012 m 986.68 158.199 l S
+985.586 157.105 m 987.777 157.105 l S
+986.68 157.105 m 998.668 157.535 l S
+998.668 156.441 m 998.668 158.629 l S
+997.574 157.535 m 999.762 157.535 l S
+998.668 157.535 m 1010.656 157.965 l S
+1010.656 156.871 m 1010.656 159.059 l S
+1009.562 157.965 m 1011.75 157.965 l S
+1010.656 157.965 m 1022.641 158.398 l S
+1022.641 157.301 m 1022.641 159.492 l S
+1021.547 158.398 m 1023.738 158.398 l S
+1022.641 158.398 m 1034.629 158.828 l S
+1034.629 157.734 m 1034.629 159.922 l S
+1033.535 158.828 m 1034.629 158.828 l S
+0 1 0 rg
+447.266 126.207 m 447.266 128.395 l S
+447.266 127.301 m 448.359 127.301 l S
+447.266 127.301 m 459.25 128.84 l S
+459.25 127.746 m 459.25 129.934 l S
+458.156 128.84 m 460.344 128.84 l S
+459.25 128.84 m 471.238 130.375 l S
+471.238 129.281 m 471.238 131.473 l S
+470.145 130.375 m 472.332 130.375 l S
+471.238 130.375 m 483.227 131.914 l S
+483.227 130.82 m 483.227 133.008 l S
+482.129 131.914 m 484.32 131.914 l S
+483.227 131.914 m 495.211 133.453 l S
+495.211 132.359 m 495.211 134.547 l S
+494.117 133.453 m 496.305 133.453 l S
+495.211 133.453 m 507.199 134.988 l S
+507.199 133.895 m 507.199 136.086 l S
+506.105 134.988 m 508.293 134.988 l S
+507.199 134.988 m 519.188 136.527 l S
+519.188 135.434 m 519.188 137.621 l S
+518.094 136.527 m 520.281 136.527 l S
+519.188 136.527 m 531.172 138.066 l S
+531.172 136.973 m 531.172 139.16 l S
+530.078 138.066 m 532.266 138.066 l S
+531.172 138.066 m 543.16 139.605 l S
+543.16 138.508 m 543.16 140.699 l S
+542.066 139.605 m 544.254 139.605 l S
+543.16 139.605 m 555.148 141.141 l S
+555.148 140.047 m 555.148 142.234 l S
+554.055 141.141 m 556.242 141.141 l S
+555.148 141.141 m 567.133 142.68 l S
+567.133 141.586 m 567.133 143.773 l S
+566.039 142.68 m 568.23 142.68 l S
+567.133 142.68 m 579.121 144.219 l S
+579.121 143.125 m 579.121 145.312 l S
+578.027 144.219 m 580.215 144.219 l S
+579.121 144.219 m 591.109 145.754 l S
+591.109 144.66 m 591.109 146.848 l S
+590.016 145.754 m 592.203 145.754 l S
+591.109 145.754 m 603.094 147.293 l S
+603.094 146.199 m 603.094 148.387 l S
+602 147.293 m 604.191 147.293 l S
+603.094 147.293 m 615.082 148.832 l S
+615.082 147.738 m 615.082 149.926 l S
+613.988 148.832 m 616.176 148.832 l S
+615.082 148.832 m 627.07 150.367 l S
+627.07 149.273 m 627.07 151.465 l S
+625.977 150.367 m 628.164 150.367 l S
+627.07 150.367 m 639.059 151.906 l S
+639.059 150.812 m 639.059 153 l S
+637.961 151.906 m 640.152 151.906 l S
+639.059 151.906 m 651.043 153.445 l S
+651.043 152.352 m 651.043 154.539 l S
+649.949 153.445 m 652.137 153.445 l S
+651.043 153.445 m 663.031 154.984 l S
+663.031 153.887 m 663.031 156.078 l S
+661.938 154.984 m 664.125 154.984 l S
+663.031 154.984 m 675.02 156.52 l S
+675.02 155.426 m 675.02 157.613 l S
+673.922 156.52 m 676.113 156.52 l S
+675.02 156.52 m 687.004 158.059 l S
+687.004 156.965 m 687.004 159.152 l S
+685.91 158.059 m 688.098 158.059 l S
+687.004 158.059 m 698.992 159.598 l S
+698.992 158.5 m 698.992 160.691 l S
+697.898 159.598 m 700.086 159.598 l S
+698.992 159.598 m 710.98 161.133 l S
+710.98 160.039 m 710.98 162.227 l S
+709.883 161.133 m 712.074 161.133 l S
+710.98 161.133 m 722.965 162.672 l S
+722.965 161.578 m 722.965 163.766 l S
+721.871 162.672 m 724.059 162.672 l S
+722.965 162.672 m 734.953 164.211 l S
+734.953 163.117 m 734.953 165.305 l S
+733.859 164.211 m 736.047 164.211 l S
+734.953 164.211 m 746.941 165.746 l S
+746.941 164.652 m 746.941 166.844 l S
+745.848 165.746 m 748.035 165.746 l S
+746.941 165.746 m 758.926 167.285 l S
+758.926 166.191 m 758.926 168.379 l S
+757.832 167.285 m 760.023 167.285 l S
+758.926 167.285 m 770.914 168.824 l S
+770.914 167.73 m 770.914 169.918 l S
+769.82 168.824 m 772.008 168.824 l S
+770.914 168.824 m 782.902 170.363 l S
+782.902 169.266 m 782.902 171.457 l S
+781.809 170.363 m 783.996 170.363 l S
+782.902 170.363 m 794.887 171.898 l S
+794.887 170.805 m 794.887 172.992 l S
+793.793 171.898 m 795.984 171.898 l S
+794.887 171.898 m 806.875 173.438 l S
+806.875 172.344 m 806.875 174.531 l S
+805.781 173.438 m 807.969 173.438 l S
+806.875 173.438 m 818.863 174.977 l S
+818.863 173.879 m 818.863 176.07 l S
+817.77 174.977 m 819.957 174.977 l S
+818.863 174.977 m 830.848 176.512 l S
+830.848 175.418 m 830.848 177.605 l S
+829.754 176.512 m 831.945 176.512 l S
+830.848 176.512 m 842.836 178.051 l S
+842.836 176.957 m 842.836 179.145 l S
+841.742 178.051 m 843.93 178.051 l S
+842.836 178.051 m 854.824 179.59 l S
+854.824 178.496 m 854.824 180.684 l S
+853.73 179.59 m 855.918 179.59 l S
+854.824 179.59 m 866.812 181.125 l S
+866.812 180.031 m 866.812 182.223 l S
+865.715 181.125 m 867.906 181.125 l S
+866.812 181.125 m 878.797 182.664 l S
+878.797 181.57 m 878.797 183.758 l S
+877.703 182.664 m 879.891 182.664 l S
+878.797 182.664 m 890.785 184.203 l S
+890.785 183.109 m 890.785 185.297 l S
+889.691 184.203 m 891.879 184.203 l S
+890.785 184.203 m 902.773 185.738 l S
+902.773 184.645 m 902.773 186.836 l S
+901.676 185.738 m 903.867 185.738 l S
+902.773 185.738 m 914.758 187.277 l S
+914.758 186.184 m 914.758 188.371 l S
+913.664 187.277 m 915.852 187.277 l S
+914.758 187.277 m 926.746 188.816 l S
+926.746 187.723 m 926.746 189.91 l S
+925.652 188.816 m 927.84 188.816 l S
+926.746 188.816 m 938.734 190.355 l S
+938.734 189.258 m 938.734 191.449 l S
+937.637 190.355 m 939.828 190.355 l S
+938.734 190.355 m 950.719 191.891 l S
+950.719 190.797 m 950.719 192.984 l S
+949.625 191.891 m 951.812 191.891 l S
+950.719 191.891 m 962.707 193.43 l S
+962.707 192.336 m 962.707 194.523 l S
+961.613 193.43 m 963.801 193.43 l S
+962.707 193.43 m 974.695 194.969 l S
+974.695 193.875 m 974.695 196.062 l S
+973.602 194.969 m 975.789 194.969 l S
+974.695 194.969 m 986.68 196.504 l S
+986.68 195.41 m 986.68 197.602 l S
+985.586 196.504 m 987.777 196.504 l S
+986.68 196.504 m 998.668 198.043 l S
+998.668 196.949 m 998.668 199.137 l S
+997.574 198.043 m 999.762 198.043 l S
+998.668 198.043 m 1010.656 199.582 l S
+1010.656 198.488 m 1010.656 200.676 l S
+1009.562 199.582 m 1011.75 199.582 l S
+1010.656 199.582 m 1022.641 201.117 l S
+1022.641 200.023 m 1022.641 202.215 l S
+1021.547 201.117 m 1023.738 201.117 l S
+1022.641 201.117 m 1034.629 202.656 l S
+1034.629 201.562 m 1034.629 203.75 l S
+1033.535 202.656 m 1034.629 202.656 l S
+0 0 1 rg
+447.266 144.66 m 447.266 146.848 l S
+447.266 145.754 m 448.359 145.754 l S
+447.266 145.754 m 459.25 146.523 l S
+459.25 145.43 m 459.25 147.617 l S
+458.156 146.523 m 460.344 146.523 l S
+459.25 146.523 m 471.238 147.293 l S
+471.238 146.199 m 471.238 148.387 l S
+470.145 147.293 m 472.332 147.293 l S
+471.238 147.293 m 483.227 148.062 l S
+483.227 146.969 m 483.227 149.156 l S
+482.129 148.062 m 484.32 148.062 l S
+483.227 148.062 m 495.211 148.832 l S
+495.211 147.738 m 495.211 149.926 l S
+494.117 148.832 m 496.305 148.832 l S
+495.211 148.832 m 507.199 149.602 l S
+507.199 148.504 m 507.199 150.695 l S
+506.105 149.602 m 508.293 149.602 l S
+507.199 149.602 m 519.188 150.367 l S
+519.188 149.273 m 519.188 151.465 l S
+518.094 150.367 m 520.281 150.367 l S
+519.188 150.367 m 531.172 151.137 l S
+531.172 150.043 m 531.172 152.23 l S
+530.078 151.137 m 532.266 151.137 l S
+531.172 151.137 m 543.16 151.906 l S
+543.16 150.812 m 543.16 153 l S
+542.066 151.906 m 544.254 151.906 l S
+543.16 151.906 m 555.148 152.676 l S
+555.148 151.582 m 555.148 153.77 l S
+554.055 152.676 m 556.242 152.676 l S
+555.148 152.676 m 567.133 153.445 l S
+567.133 152.352 m 567.133 154.539 l S
+566.039 153.445 m 568.23 153.445 l S
+567.133 153.445 m 579.121 154.215 l S
+579.121 153.121 m 579.121 155.309 l S
+578.027 154.215 m 580.215 154.215 l S
+579.121 154.215 m 591.109 154.984 l S
+591.109 153.887 m 591.109 156.078 l S
+590.016 154.984 m 592.203 154.984 l S
+591.109 154.984 m 603.094 155.75 l S
+603.094 154.656 m 603.094 156.848 l S
+602 155.75 m 604.191 155.75 l S
+603.094 155.75 m 615.082 156.52 l S
+615.082 155.426 m 615.082 157.613 l S
+613.988 156.52 m 616.176 156.52 l S
+615.082 156.52 m 627.07 157.289 l S
+627.07 156.195 m 627.07 158.383 l S
+625.977 157.289 m 628.164 157.289 l S
+627.07 157.289 m 639.059 158.059 l S
+639.059 156.965 m 639.059 159.152 l S
+637.961 158.059 m 640.152 158.059 l S
+639.059 158.059 m 651.043 158.828 l S
+651.043 157.734 m 651.043 159.922 l S
+649.949 158.828 m 652.137 158.828 l S
+651.043 158.828 m 663.031 159.598 l S
+663.031 158.5 m 663.031 160.691 l S
+661.938 159.598 m 664.125 159.598 l S
+663.031 159.598 m 675.02 160.363 l S
+675.02 159.27 m 675.02 161.461 l S
+673.922 160.363 m 676.113 160.363 l S
+675.02 160.363 m 687.004 161.133 l S
+687.004 160.039 m 687.004 162.227 l S
+685.91 161.133 m 688.098 161.133 l S
+687.004 161.133 m 698.992 161.902 l S
+698.992 160.809 m 698.992 162.996 l S
+697.898 161.902 m 700.086 161.902 l S
+698.992 161.902 m 710.98 162.672 l S
+710.98 161.578 m 710.98 163.766 l S
+709.883 162.672 m 712.074 162.672 l S
+710.98 162.672 m 722.965 163.441 l S
+722.965 162.348 m 722.965 164.535 l S
+721.871 163.441 m 724.059 163.441 l S
+722.965 163.441 m 734.953 164.211 l S
+734.953 163.117 m 734.953 165.305 l S
+733.859 164.211 m 736.047 164.211 l S
+734.953 164.211 m 746.941 164.98 l S
+746.941 163.883 m 746.941 166.074 l S
+745.848 164.98 m 748.035 164.98 l S
+746.941 164.98 m 758.926 165.746 l S
+758.926 164.652 m 758.926 166.844 l S
+757.832 165.746 m 760.023 165.746 l S
+758.926 165.746 m 770.914 166.516 l S
+770.914 165.422 m 770.914 167.609 l S
+769.82 166.516 m 772.008 166.516 l S
+770.914 166.516 m 782.902 167.285 l S
+782.902 166.191 m 782.902 168.379 l S
+781.809 167.285 m 783.996 167.285 l S
+782.902 167.285 m 794.887 168.055 l S
+794.887 166.961 m 794.887 169.148 l S
+793.793 168.055 m 795.984 168.055 l S
+794.887 168.055 m 806.875 168.824 l S
+806.875 167.73 m 806.875 169.918 l S
+805.781 168.824 m 807.969 168.824 l S
+806.875 168.824 m 818.863 169.594 l S
+818.863 168.5 m 818.863 170.688 l S
+817.77 169.594 m 819.957 169.594 l S
+818.863 169.594 m 830.848 170.363 l S
+830.848 169.266 m 830.848 171.457 l S
+829.754 170.363 m 831.945 170.363 l S
+830.848 170.363 m 842.836 171.129 l S
+842.836 170.035 m 842.836 172.227 l S
+841.742 171.129 m 843.93 171.129 l S
+842.836 171.129 m 854.824 171.898 l S
+854.824 170.805 m 854.824 172.992 l S
+853.73 171.898 m 855.918 171.898 l S
+854.824 171.898 m 866.812 172.668 l S
+866.812 171.574 m 866.812 173.762 l S
+865.715 172.668 m 867.906 172.668 l S
+866.812 172.668 m 878.797 173.438 l S
+878.797 172.344 m 878.797 174.531 l S
+877.703 173.438 m 879.891 173.438 l S
+878.797 173.438 m 890.785 174.207 l S
+890.785 173.113 m 890.785 175.301 l S
+889.691 174.207 m 891.879 174.207 l S
+890.785 174.207 m 902.773 174.977 l S
+902.773 173.879 m 902.773 176.07 l S
+901.676 174.977 m 903.867 174.977 l S
+902.773 174.977 m 914.758 175.742 l S
+914.758 174.648 m 914.758 176.84 l S
+913.664 175.742 m 915.852 175.742 l S
+914.758 175.742 m 926.746 176.512 l S
+926.746 175.418 m 926.746 177.605 l S
+925.652 176.512 m 927.84 176.512 l S
+926.746 176.512 m 938.734 177.281 l S
+938.734 176.188 m 938.734 178.375 l S
+937.637 177.281 m 939.828 177.281 l S
+938.734 177.281 m 950.719 178.051 l S
+950.719 176.957 m 950.719 179.145 l S
+949.625 178.051 m 951.812 178.051 l S
+950.719 178.051 m 962.707 178.82 l S
+962.707 177.727 m 962.707 179.914 l S
+961.613 178.82 m 963.801 178.82 l S
+962.707 178.82 m 974.695 179.59 l S
+974.695 178.496 m 974.695 180.684 l S
+973.602 179.59 m 975.789 179.59 l S
+974.695 179.59 m 986.68 180.359 l S
+986.68 179.262 m 986.68 181.453 l S
+985.586 180.359 m 987.777 180.359 l S
+986.68 180.359 m 998.668 181.125 l S
+998.668 180.031 m 998.668 182.223 l S
+997.574 181.125 m 999.762 181.125 l S
+998.668 181.125 m 1010.656 181.895 l S
+1010.656 180.801 m 1010.656 182.988 l S
+1009.562 181.895 m 1011.75 181.895 l S
+1010.656 181.895 m 1022.641 182.664 l S
+1022.641 181.57 m 1022.641 183.758 l S
+1021.547 182.664 m 1023.738 182.664 l S
+1022.641 182.664 m 1034.629 183.434 l S
+1034.629 182.34 m 1034.629 184.527 l S
+1033.535 183.434 m 1034.629 183.434 l S
+0 1 1 rg
+447.266 172.797 m 447.266 174.984 l S
+447.266 173.891 m 448.359 173.891 l S
+447.266 173.891 m 459.25 178.148 l S
+459.25 177.055 m 459.25 179.242 l S
+458.156 178.148 m 460.344 178.148 l S
+459.25 178.148 m 471.238 182.316 l S
+471.238 181.223 m 471.238 183.41 l S
+470.145 182.316 m 472.332 182.316 l S
+471.238 182.316 m 483.227 186.359 l S
+483.227 185.266 m 483.227 187.457 l S
+482.129 186.359 m 484.32 186.359 l S
+483.227 186.359 m 495.211 190.238 l S
+495.211 189.141 m 495.211 191.332 l S
+494.117 190.238 m 496.305 190.238 l S
+495.211 190.238 m 507.199 193.906 l S
+507.199 192.812 m 507.199 195 l S
+506.105 193.906 m 508.293 193.906 l S
+507.199 193.906 m 519.188 197.332 l S
+519.188 196.238 m 519.188 198.426 l S
+518.094 197.332 m 520.281 197.332 l S
+519.188 197.332 m 531.172 200.48 l S
+531.172 199.387 m 531.172 201.578 l S
+530.078 200.48 m 532.266 200.48 l S
+531.172 200.48 m 543.16 203.324 l S
+543.16 202.23 m 543.16 204.418 l S
+542.066 203.324 m 544.254 203.324 l S
+543.16 203.324 m 555.148 205.828 l S
+555.148 204.734 m 555.148 206.922 l S
+554.055 205.828 m 556.242 205.828 l S
+555.148 205.828 m 567.133 207.969 l S
+567.133 206.875 m 567.133 209.062 l S
+566.039 207.969 m 568.23 207.969 l S
+567.133 207.969 m 579.121 209.727 l S
+579.121 208.633 m 579.121 210.82 l S
+578.027 209.727 m 580.215 209.727 l S
+579.121 209.727 m 591.109 211.082 l S
+591.109 209.988 m 591.109 212.18 l S
+590.016 211.082 m 592.203 211.082 l S
+591.109 211.082 m 603.094 212.027 l S
+603.094 210.934 m 603.094 213.121 l S
+602 212.027 m 604.191 212.027 l S
+603.094 212.027 m 615.082 212.547 l S
+615.082 211.449 m 615.082 213.641 l S
+613.988 212.547 m 616.176 212.547 l S
+615.082 212.547 m 627.07 212.637 l S
+627.07 211.539 m 627.07 213.73 l S
+625.977 212.637 m 628.164 212.637 l S
+627.07 212.637 m 639.059 212.293 l S
+639.059 211.199 m 639.059 213.387 l S
+637.961 212.293 m 640.152 212.293 l S
+639.059 212.293 m 651.043 211.527 l S
+651.043 210.434 m 651.043 212.621 l S
+649.949 211.527 m 652.137 211.527 l S
+651.043 211.527 m 663.031 210.34 l S
+663.031 209.246 m 663.031 211.434 l S
+661.938 210.34 m 664.125 210.34 l S
+663.031 210.34 m 675.02 208.746 l S
+675.02 207.652 m 675.02 209.84 l S
+673.922 208.746 m 676.113 208.746 l S
+675.02 208.746 m 687.004 206.762 l S
+687.004 205.668 m 687.004 207.855 l S
+685.91 206.762 m 688.098 206.762 l S
+687.004 206.762 m 698.992 204.406 l S
+698.992 203.312 m 698.992 205.5 l S
+697.898 204.406 m 700.086 204.406 l S
+698.992 204.406 m 710.98 201.703 l S
+710.98 200.609 m 710.98 202.797 l S
+709.883 201.703 m 712.074 201.703 l S
+710.98 201.703 m 722.965 198.68 l S
+722.965 197.586 m 722.965 199.773 l S
+721.871 198.68 m 724.059 198.68 l S
+722.965 198.68 m 734.953 195.363 l S
+734.953 194.27 m 734.953 196.457 l S
+733.859 195.363 m 736.047 195.363 l S
+734.953 195.363 m 746.941 191.789 l S
+746.941 190.695 m 746.941 192.883 l S
+745.848 191.789 m 748.035 191.789 l S
+746.941 191.789 m 758.926 187.996 l S
+758.926 186.902 m 758.926 189.09 l S
+757.832 187.996 m 760.023 187.996 l S
+758.926 187.996 m 770.914 184.016 l S
+770.914 182.922 m 770.914 185.113 l S
+769.82 184.016 m 772.008 184.016 l S
+770.914 184.016 m 782.902 179.895 l S
+782.902 178.801 m 782.902 180.988 l S
+781.809 179.895 m 783.996 179.895 l S
+782.902 179.895 m 794.887 175.668 l S
+794.887 174.574 m 794.887 176.762 l S
+793.793 175.668 m 795.984 175.668 l S
+794.887 175.668 m 806.875 171.383 l S
+806.875 170.289 m 806.875 172.477 l S
+805.781 171.383 m 807.969 171.383 l S
+806.875 171.383 m 818.863 167.078 l S
+818.863 165.984 m 818.863 168.172 l S
+817.77 167.078 m 819.957 167.078 l S
+818.863 167.078 m 830.848 162.801 l S
+830.848 161.707 m 830.848 163.895 l S
+829.754 162.801 m 831.945 162.801 l S
+830.848 162.801 m 842.836 158.59 l S
+842.836 157.496 m 842.836 159.684 l S
+841.742 158.59 m 843.93 158.59 l S
+842.836 158.59 m 854.824 154.488 l S
+854.824 153.395 m 854.824 155.582 l S
+853.73 154.488 m 855.918 154.488 l S
+854.824 154.488 m 866.812 150.539 l S
+866.812 149.441 m 866.812 151.633 l S
+865.715 150.539 m 867.906 150.539 l S
+866.812 150.539 m 878.797 146.777 l S
+878.797 145.684 m 878.797 147.871 l S
+877.703 146.777 m 879.891 146.777 l S
+878.797 146.777 m 890.785 143.246 l S
+890.785 142.152 m 890.785 144.34 l S
+889.691 143.246 m 891.879 143.246 l S
+890.785 143.246 m 902.773 139.977 l S
+902.773 138.883 m 902.773 141.07 l S
+901.676 139.977 m 903.867 139.977 l S
+902.773 139.977 m 914.758 137.004 l S
+914.758 135.91 m 914.758 138.098 l S
+913.664 137.004 m 915.852 137.004 l S
+914.758 137.004 m 926.746 134.355 l S
+926.746 133.262 m 926.746 135.449 l S
+925.652 134.355 m 927.84 134.355 l S
+926.746 134.355 m 938.734 132.062 l S
+938.734 130.969 m 938.734 133.156 l S
+937.637 132.062 m 939.828 132.062 l S
+938.734 132.062 m 950.719 130.141 l S
+950.719 129.047 m 950.719 131.234 l S
+949.625 130.141 m 951.812 130.141 l S
+950.719 130.141 m 962.707 128.617 l S
+962.707 127.52 m 962.707 129.711 l S
+961.613 128.617 m 963.801 128.617 l S
+962.707 128.617 m 974.695 127.5 l S
+974.695 126.406 m 974.695 128.594 l S
+973.602 127.5 m 975.789 127.5 l S
+974.695 127.5 m 986.68 126.805 l S
+986.68 125.711 m 986.68 127.898 l S
+985.586 126.805 m 987.777 126.805 l S
+986.68 126.805 m 998.668 126.535 l S
+998.668 125.441 m 998.668 127.629 l S
+997.574 126.535 m 999.762 126.535 l S
+998.668 126.535 m 1010.656 126.695 l S
+1010.656 125.602 m 1010.656 127.793 l S
+1009.562 126.695 m 1011.75 126.695 l S
+1010.656 126.695 m 1022.641 127.289 l S
+1022.641 126.191 m 1022.641 128.383 l S
+1021.547 127.289 m 1023.738 127.289 l S
+1022.641 127.289 m 1034.629 128.301 l S
+1034.629 127.207 m 1034.629 129.395 l S
+1033.535 128.301 m 1034.629 128.301 l S
+1 0 1 rg
+447.266 200.633 m 447.266 202.82 l S
+447.266 201.727 m 448.359 201.727 l S
+447.266 201.727 m 459.25 201.246 l S
+459.25 200.148 m 459.25 202.34 l S
+458.156 201.246 m 460.344 201.246 l S
+459.25 201.246 m 471.238 200.445 l S
+471.238 199.352 m 471.238 201.539 l S
+470.145 200.445 m 472.332 200.445 l S
+471.238 200.445 m 483.227 199.34 l S
+483.227 198.246 m 483.227 200.434 l S
+482.129 199.34 m 484.32 199.34 l S
+483.227 199.34 m 495.211 197.934 l S
+495.211 196.84 m 495.211 199.027 l S
+494.117 197.934 m 496.305 197.934 l S
+495.211 197.934 m 507.199 196.246 l S
+507.199 195.152 m 507.199 197.34 l S
+506.105 196.246 m 508.293 196.246 l S
+507.199 196.246 m 519.188 194.293 l S
+519.188 193.199 m 519.188 195.387 l S
+518.094 194.293 m 520.281 194.293 l S
+519.188 194.293 m 531.172 192.094 l S
+531.172 191 m 531.172 193.188 l S
+530.078 192.094 m 532.266 192.094 l S
+531.172 192.094 m 543.16 189.668 l S
+543.16 188.574 m 543.16 190.762 l S
+542.066 189.668 m 544.254 189.668 l S
+543.16 189.668 m 555.148 187.043 l S
+555.148 185.949 m 555.148 188.137 l S
+554.055 187.043 m 556.242 187.043 l S
+555.148 187.043 m 567.133 184.242 l S
+567.133 183.148 m 567.133 185.336 l S
+566.039 184.242 m 568.23 184.242 l S
+567.133 184.242 m 579.121 181.297 l S
+579.121 180.199 m 579.121 182.391 l S
+578.027 181.297 m 580.215 181.297 l S
+579.121 181.297 m 591.109 178.23 l S
+591.109 177.137 m 591.109 179.324 l S
+590.016 178.23 m 592.203 178.23 l S
+591.109 178.23 m 603.094 175.082 l S
+603.094 173.988 m 603.094 176.176 l S
+602 175.082 m 604.191 175.082 l S
+603.094 175.082 m 615.082 171.875 l S
+615.082 170.781 m 615.082 172.973 l S
+613.988 171.875 m 616.176 171.875 l S
+615.082 171.875 m 627.07 168.648 l S
+627.07 167.555 m 627.07 169.742 l S
+625.977 168.648 m 628.164 168.648 l S
+627.07 168.648 m 639.059 165.43 l S
+639.059 164.336 m 639.059 166.527 l S
+637.961 165.43 m 640.152 165.43 l S
+639.059 165.43 m 651.043 162.254 l S
+651.043 161.16 m 651.043 163.348 l S
+649.949 162.254 m 652.137 162.254 l S
+651.043 162.254 m 663.031 159.152 l S
+663.031 158.059 m 663.031 160.246 l S
+661.938 159.152 m 664.125 159.152 l S
+663.031 159.152 m 675.02 156.152 l S
+675.02 155.059 m 675.02 157.246 l S
+673.922 156.152 m 676.113 156.152 l S
+675.02 156.152 m 687.004 153.289 l S
+687.004 152.195 m 687.004 154.383 l S
+685.91 153.289 m 688.098 153.289 l S
+687.004 153.289 m 698.992 150.586 l S
+698.992 149.492 m 698.992 151.68 l S
+697.898 150.586 m 700.086 150.586 l S
+698.992 150.586 m 710.98 148.074 l S
+710.98 146.98 m 710.98 149.168 l S
+709.883 148.074 m 712.074 148.074 l S
+710.98 148.074 m 722.965 145.777 l S
+722.965 144.684 m 722.965 146.871 l S
+721.871 145.777 m 724.059 145.777 l S
+722.965 145.777 m 734.953 143.719 l S
+734.953 142.625 m 734.953 144.812 l S
+733.859 143.719 m 736.047 143.719 l S
+734.953 143.719 m 746.941 141.918 l S
+746.941 140.824 m 746.941 143.012 l S
+745.848 141.918 m 748.035 141.918 l S
+746.941 141.918 m 758.926 140.395 l S
+758.926 139.301 m 758.926 141.488 l S
+757.832 140.395 m 760.023 140.395 l S
+758.926 140.395 m 770.914 139.164 l S
+770.914 138.07 m 770.914 140.258 l S
+769.82 139.164 m 772.008 139.164 l S
+770.914 139.164 m 782.902 138.234 l S
+782.902 137.141 m 782.902 139.328 l S
+781.809 138.234 m 783.996 138.234 l S
+782.902 138.234 m 794.887 137.621 l S
+794.887 136.527 m 794.887 138.715 l S
+793.793 137.621 m 795.984 137.621 l S
+794.887 137.621 m 806.875 137.324 l S
+806.875 136.23 m 806.875 138.418 l S
+805.781 137.324 m 807.969 137.324 l S
+806.875 137.324 m 818.863 137.352 l S
+818.863 136.258 m 818.863 138.445 l S
+817.77 137.352 m 819.957 137.352 l S
+818.863 137.352 m 830.848 137.703 l S
+830.848 136.605 m 830.848 138.797 l S
+829.754 137.703 m 831.945 137.703 l S
+830.848 137.703 m 842.836 138.371 l S
+842.836 137.273 m 842.836 139.465 l S
+841.742 138.371 m 843.93 138.371 l S
+842.836 138.371 m 854.824 139.348 l S
+854.824 138.254 m 854.824 140.445 l S
+853.73 139.348 m 855.918 139.348 l S
+854.824 139.348 m 866.812 140.633 l S
+866.812 139.535 m 866.812 141.727 l S
+865.715 140.633 m 867.906 140.633 l S
+866.812 140.633 m 878.797 142.203 l S
+878.797 141.109 m 878.797 143.297 l S
+877.703 142.203 m 879.891 142.203 l S
+878.797 142.203 m 890.785 144.047 l S
+890.785 142.953 m 890.785 145.141 l S
+889.691 144.047 m 891.879 144.047 l S
+890.785 144.047 m 902.773 146.148 l S
+902.773 145.055 m 902.773 147.242 l S
+901.676 146.148 m 903.867 146.148 l S
+902.773 146.148 m 914.758 148.484 l S
+914.758 147.387 m 914.758 149.578 l S
+913.664 148.484 m 915.852 148.484 l S
+914.758 148.484 m 926.746 151.027 l S
+926.746 149.934 m 926.746 152.121 l S
+925.652 151.027 m 927.84 151.027 l S
+926.746 151.027 m 938.734 153.758 l S
+938.734 152.664 m 938.734 154.852 l S
+937.637 153.758 m 939.828 153.758 l S
+938.734 153.758 m 950.719 156.648 l S
+950.719 155.555 m 950.719 157.742 l S
+949.625 156.648 m 951.812 156.648 l S
+950.719 156.648 m 962.707 159.668 l S
+962.707 158.574 m 962.707 160.762 l S
+961.613 159.668 m 963.801 159.668 l S
+962.707 159.668 m 974.695 162.785 l S
+974.695 161.691 m 974.695 163.879 l S
+973.602 162.785 m 975.789 162.785 l S
+974.695 162.785 m 986.68 165.969 l S
+986.68 164.875 m 986.68 167.066 l S
+985.586 165.969 m 987.777 165.969 l S
+986.68 165.969 m 998.668 169.191 l S
+998.668 168.098 m 998.668 170.285 l S
+997.574 169.191 m 999.762 169.191 l S
+998.668 169.191 m 1010.656 172.418 l S
+1010.656 171.324 m 1010.656 173.512 l S
+1009.562 172.418 m 1011.75 172.418 l S
+1010.656 172.418 m 1022.641 175.617 l S
+1022.641 174.523 m 1022.641 176.711 l S
+1021.547 175.617 m 1023.738 175.617 l S
+1022.641 175.617 m 1034.629 178.754 l S
+1034.629 177.66 m 1034.629 179.848 l S
+1033.535 178.754 m 1034.629 178.754 l S
+0 g
+447.266 154.375 m 448.359 154.375 l 448.359 156.562 l 447.266 156.562 l
+ S
+447.266 155.469 m 459.25 220.219 l S
+458.156 221.312 2.188 -2.191 re S
+459.25 220.219 m 471.238 162.469 l S
+470.145 163.562 2.188 -2.188 re S
+471.238 162.469 m 483.227 218.734 l S
+482.129 219.828 2.191 -2.191 re S
+483.227 218.734 m 495.211 125.539 l S
+494.117 126.633 2.188 -2.188 re S
+495.211 125.539 m 507.199 222.824 l S
+506.105 221.73 m 508.293 221.73 l 508.293 223.418 l S
+506.105 223.418 m 506.105 221.73 l S
+507.199 222.824 m 519.188 166.023 l S
+518.094 167.117 2.188 -2.188 re S
+519.188 166.023 m 531.172 116.125 l S
+530.078 117.219 2.188 -2.188 re S
+531.172 116.125 m 543.16 140.309 l S
+542.066 141.406 2.188 -2.191 re S
+543.16 140.309 m 555.148 187.23 l S
+554.055 188.324 2.188 -2.188 re S
+555.148 187.23 m 567.133 217.352 l S
+566.039 218.445 2.191 -2.188 re S
+567.133 217.352 m 579.121 222.715 l S
+578.027 221.621 m 580.215 221.621 l 580.215 223.418 l S
+578.027 223.418 m 578.027 221.621 l S
+579.121 222.715 m 591.109 210.371 l S
+590.016 211.465 2.188 -2.188 re S
+591.109 210.371 m 603.094 189.73 l S
+602 190.824 2.191 -2.188 re S
+603.094 189.73 m 615.082 167.805 l S
+613.988 168.902 2.188 -2.191 re S
+615.082 167.805 m 627.07 148.59 l S
+625.977 149.684 2.188 -2.188 re S
+627.07 148.59 m 639.059 133.793 l S
+637.961 134.887 2.191 -2.188 re S
+639.059 133.793 m 651.043 123.727 l S
+649.949 124.82 2.188 -2.188 re S
+651.043 123.727 m 663.031 117.977 l S
+661.938 119.07 2.188 -2.188 re S
+663.031 117.977 m 675.02 115.832 l S
+673.922 116.926 2.191 -2.188 re S
+675.02 115.832 m 687.004 116.516 l S
+685.91 117.609 2.188 -2.188 re S
+687.004 116.516 m 698.992 119.305 l S
+697.898 120.398 2.188 -2.188 re S
+698.992 119.305 m 710.98 123.586 l S
+709.883 124.68 2.191 -2.188 re S
+710.98 123.586 m 722.965 128.855 l S
+721.871 129.953 2.188 -2.191 re S
+722.965 128.855 m 734.953 134.73 l S
+733.859 135.824 2.188 -2.188 re S
+734.953 134.73 m 746.941 140.906 l S
+745.848 142 2.188 -2.191 re S
+746.941 140.906 m 758.926 147.16 l S
+757.832 148.258 2.191 -2.191 re S
+758.926 147.16 m 770.914 153.344 l S
+769.82 154.438 2.188 -2.188 re S
+770.914 153.344 m 782.902 159.336 l S
+781.809 160.43 2.188 -2.188 re S
+782.902 159.336 m 794.887 165.066 l S
+793.793 166.16 2.191 -2.191 re S
+794.887 165.066 m 806.875 170.484 l S
+805.781 171.578 2.188 -2.188 re S
+806.875 170.484 m 818.863 175.57 l S
+817.77 176.664 2.188 -2.188 re S
+818.863 175.57 m 830.848 180.309 l S
+829.754 181.402 2.191 -2.188 re S
+830.848 180.309 m 842.836 184.699 l S
+841.742 185.793 2.188 -2.191 re S
+842.836 184.699 m 854.824 188.746 l S
+853.73 189.84 2.188 -2.188 re S
+854.824 188.746 m 866.812 192.465 l S
+865.715 193.559 2.191 -2.188 re S
+866.812 192.465 m 878.797 195.871 l S
+877.703 196.965 2.188 -2.191 re S
+878.797 195.871 m 890.785 198.977 l S
+889.691 200.07 2.188 -2.188 re S
+890.785 198.977 m 902.773 201.805 l S
+901.676 202.898 2.191 -2.188 re S
+902.773 201.805 m 914.758 204.375 l S
+913.664 205.469 2.188 -2.188 re S
+914.758 204.375 m 926.746 206.699 l S
+925.652 207.793 2.188 -2.188 re S
+926.746 206.699 m 938.734 208.801 l S
+937.637 209.895 2.191 -2.188 re S
+938.734 208.801 m 950.719 210.695 l S
+949.625 211.789 2.188 -2.191 re S
+950.719 210.695 m 962.707 212.395 l S
+961.613 213.488 2.188 -2.188 re S
+962.707 212.395 m 974.695 213.922 l S
+973.602 215.016 2.188 -2.188 re S
+974.695 213.922 m 986.68 215.285 l S
+985.586 216.379 2.191 -2.188 re S
+986.68 215.285 m 998.668 216.5 l S
+997.574 217.598 2.188 -2.191 re S
+998.668 216.5 m 1010.656 217.582 l S
+1009.562 218.676 2.188 -2.188 re S
+1010.656 217.582 m 1022.641 218.535 l S
+1021.547 219.629 2.191 -2.188 re S
+1022.641 218.535 m 1034.629 219.375 l S
+1033.535 218.281 m 1034.629 218.281 l S
+1034.629 220.473 m 1033.535 220.473 l 1033.535 218.281 l S
+447.266 94.234 m 438.887 94.234 l 447.266 94.234 l S
+447.266 105 m 438.887 105 l 447.266 105 l S
+447.266 115.766 m 438.887 115.766 l 447.266 115.766 l S
+447.266 126.531 m 438.887 126.531 l 447.266 126.531 l S
+447.266 137.297 m 438.887 137.297 l 447.266 137.297 l S
+447.266 148.062 m 438.887 148.062 l 447.266 148.062 l S
+447.266 158.828 m 438.887 158.828 l 447.266 158.828 l S
+447.266 169.594 m 438.887 169.594 l 447.266 169.594 l S
+447.266 180.359 m 438.887 180.359 l 447.266 180.359 l S
+447.266 191.121 m 438.887 191.121 l 447.266 191.121 l S
+447.266 201.887 m 438.887 201.887 l 447.266 201.887 l S
+447.266 212.652 m 438.887 212.652 l 447.266 212.652 l S
+447.266 223.418 m 438.887 223.418 l 447.266 223.418 l S
+447.266 94.234 m 447.266 223.418 l S
+404.496 93.758 m 410.242 93.758 l S
+413.434 96.312 m 414.07 96.629 l 415.027 97.586 l 415.027 90.887 l S
+419.496 91.523 m 419.18 91.203 l 419.496 90.887 l 419.816 91.203 l 419.496
+ 91.523 l S
+422.371 95.992 m 422.371 96.312 l 422.688 96.949 l 423.008 97.27 l 423.648
+ 97.586 l 424.922 97.586 l 425.562 97.27 l 425.879 96.949 l 426.199 96.312
+ l 426.199 95.672 l 425.879 95.035 l 425.242 94.078 l 422.051 90.887 l 426.52
+ 90.887 l S
+430.348 97.586 m 429.391 97.27 l 428.754 96.312 l 428.434 94.715 l 428.434
+ 93.758 l 428.754 92.16 l 429.391 91.203 l 430.348 90.887 l 430.988 90.887
+ l 431.945 91.203 l 432.582 92.16 l 432.902 93.758 l 432.902 94.715 l 432.582
+ 96.312 l 431.945 97.27 l 430.988 97.586 l 430.348 97.586 l S
+404.496 115.289 m 410.242 115.289 l S
+414.391 119.117 m 413.434 118.797 l 412.793 117.84 l 412.477 116.246 l 
+412.477 115.289 l 412.793 113.691 l 413.434 112.734 l 414.391 112.414 l 
+415.027 112.414 l 415.988 112.734 l 416.625 113.691 l 416.945 115.289 l 
+416.945 116.246 l 416.625 117.84 l 415.988 118.797 l 415.027 119.117 l 414.391
+ 119.117 l S
+419.496 113.055 m 419.18 112.734 l 419.496 112.414 l 419.816 112.734 l 
+419.496 113.055 l S
+423.648 119.117 m 422.688 118.797 l 422.371 118.16 l 422.371 117.523 l 
+422.688 116.883 l 423.328 116.566 l 424.605 116.246 l 425.562 115.926 l 
+426.199 115.289 l 426.52 114.648 l 426.52 113.691 l 426.199 113.055 l 425.879
+ 112.734 l 424.922 112.414 l 423.648 112.414 l 422.688 112.734 l 422.371
+ 113.055 l 422.051 113.691 l 422.051 114.648 l 422.371 115.289 l 423.008
+ 115.926 l 423.965 116.246 l 425.242 116.566 l 425.879 116.883 l 426.199
+ 117.523 l 426.199 118.16 l 425.879 118.797 l 424.922 119.117 l 423.648 
+119.117 l S
+430.348 119.117 m 429.391 118.797 l 428.754 117.84 l 428.434 116.246 l 
+428.434 115.289 l 428.754 113.691 l 429.391 112.734 l 430.348 112.414 l 
+430.988 112.414 l 431.945 112.734 l 432.582 113.691 l 432.902 115.289 l 
+432.902 116.246 l 432.582 117.84 l 431.945 118.797 l 430.988 119.117 l 430.348
+ 119.117 l S
+404.496 136.816 m 410.242 136.816 l S
+414.391 140.648 m 413.434 140.328 l 412.793 139.371 l 412.477 137.777 l
+ 412.477 136.816 l 412.793 135.223 l 413.434 134.266 l 414.391 133.945 l
+ 415.027 133.945 l 415.988 134.266 l 416.625 135.223 l 416.945 136.816 l
+ 416.945 137.777 l 416.625 139.371 l 415.988 140.328 l 415.027 140.648 l
+ 414.391 140.648 l S
+419.496 134.582 m 419.18 134.266 l 419.496 133.945 l 419.816 134.266 l 
+419.496 134.582 l S
+425.242 140.648 m 422.051 136.18 l 426.84 136.18 l S
+425.242 140.648 m 425.242 133.945 l S
+430.348 140.648 m 429.391 140.328 l 428.754 139.371 l 428.434 137.777 l
+ 428.434 136.816 l 428.754 135.223 l 429.391 134.266 l 430.348 133.945 l
+ 430.988 133.945 l 431.945 134.266 l 432.582 135.223 l 432.902 136.816 l
+ 432.902 137.777 l 432.582 139.371 l 431.945 140.328 l 430.988 140.648 l
+ 430.348 140.648 l S
+414.391 162.18 m 413.434 161.859 l 412.793 160.902 l 412.477 159.305 l 
+412.477 158.348 l 412.793 156.754 l 413.434 155.797 l 414.391 155.477 l 
+415.027 155.477 l 415.988 155.797 l 416.625 156.754 l 416.945 158.348 l 
+416.945 159.305 l 416.625 160.902 l 415.988 161.859 l 415.027 162.18 l 414.391
+ 162.18 l S
+419.496 156.113 m 419.18 155.797 l 419.496 155.477 l 419.816 155.797 l 
+419.496 156.113 l S
+423.965 162.18 m 423.008 161.859 l 422.371 160.902 l 422.051 159.305 l 
+422.051 158.348 l 422.371 156.754 l 423.008 155.797 l 423.965 155.477 l 
+424.605 155.477 l 425.562 155.797 l 426.199 156.754 l 426.52 158.348 l 426.52
+ 159.305 l 426.199 160.902 l 425.562 161.859 l 424.605 162.18 l 423.965 
+162.18 l S
+430.348 162.18 m 429.391 161.859 l 428.754 160.902 l 428.434 159.305 l 
+428.434 158.348 l 428.754 156.754 l 429.391 155.797 l 430.348 155.477 l 
+430.988 155.477 l 431.945 155.797 l 432.582 156.754 l 432.902 158.348 l 
+432.902 159.305 l 432.582 160.902 l 431.945 161.859 l 430.988 162.18 l 430.348
+ 162.18 l S
+414.391 183.707 m 413.434 183.391 l 412.793 182.434 l 412.477 180.836 l
+ 412.477 179.879 l 412.793 178.281 l 413.434 177.324 l 414.391 177.008 l
+ 415.027 177.008 l 415.988 177.324 l 416.625 178.281 l 416.945 179.879 l
+ 416.945 180.836 l 416.625 182.434 l 415.988 183.391 l 415.027 183.707 l
+ 414.391 183.707 l S
+419.496 177.645 m 419.18 177.324 l 419.496 177.008 l 419.816 177.324 l 
+419.496 177.645 l S
+425.242 183.707 m 422.051 179.242 l 426.84 179.242 l S
+425.242 183.707 m 425.242 177.008 l S
+430.348 183.707 m 429.391 183.391 l 428.754 182.434 l 428.434 180.836 l
+ 428.434 179.879 l 428.754 178.281 l 429.391 177.324 l 430.348 177.008 l
+ 430.988 177.008 l 431.945 177.324 l 432.582 178.281 l 432.902 179.879 l
+ 432.902 180.836 l 432.582 182.434 l 431.945 183.391 l 430.988 183.707 l
+ 430.348 183.707 l S
+414.391 205.238 m 413.434 204.922 l 412.793 203.961 l 412.477 202.367 l
+ 412.477 201.41 l 412.793 199.812 l 413.434 198.855 l 414.391 198.535 l 
+415.027 198.535 l 415.988 198.855 l 416.625 199.812 l 416.945 201.41 l 416.945
+ 202.367 l 416.625 203.961 l 415.988 204.922 l 415.027 205.238 l 414.391
+ 205.238 l S
+419.496 199.176 m 419.18 198.855 l 419.496 198.535 l 419.816 198.855 l 
+419.496 199.176 l S
+423.648 205.238 m 422.688 204.922 l 422.371 204.281 l 422.371 203.645 l
+ 422.688 203.004 l 423.328 202.688 l 424.605 202.367 l 425.562 202.047 l
+ 426.199 201.41 l 426.52 200.77 l 426.52 199.812 l 426.199 199.176 l 425.879
+ 198.855 l 424.922 198.535 l 423.648 198.535 l 422.688 198.855 l 422.371
+ 199.176 l 422.051 199.812 l 422.051 200.77 l 422.371 201.41 l 423.008 202.047
+ l 423.965 202.367 l 425.242 202.688 l 425.879 203.004 l 426.199 203.645
+ l 426.199 204.281 l 425.879 204.922 l 424.922 205.238 l 423.648 205.238
+ l S
+430.348 205.238 m 429.391 204.922 l 428.754 203.961 l 428.434 202.367 l
+ 428.434 201.41 l 428.754 199.812 l 429.391 198.855 l 430.348 198.535 l 
+430.988 198.535 l 431.945 198.855 l 432.582 199.812 l 432.902 201.41 l 432.902
+ 202.367 l 432.582 203.961 l 431.945 204.922 l 430.988 205.238 l 430.348
+ 205.238 l S
+413.434 225.492 m 414.07 225.812 l 415.027 226.77 l 415.027 220.066 l S
+419.496 220.707 m 419.18 220.387 l 419.496 220.066 l 419.816 220.387 l 
+419.496 220.707 l S
+422.371 225.172 m 422.371 225.492 l 422.688 226.133 l 423.008 226.449 l
+ 423.648 226.77 l 424.922 226.77 l 425.562 226.449 l 425.879 226.133 l 426.199
+ 225.492 l 426.199 224.855 l 425.879 224.215 l 425.242 223.258 l 422.051
+ 220.066 l 426.52 220.066 l S
+430.348 226.77 m 429.391 226.449 l 428.754 225.492 l 428.434 223.898 l 
+428.434 222.941 l 428.754 221.344 l 429.391 220.387 l 430.348 220.066 l 
+430.988 220.066 l 431.945 220.387 l 432.582 221.344 l 432.902 222.941 l 
+432.902 223.898 l 432.582 225.492 l 431.945 226.449 l 430.988 226.77 l 430.348
+ 226.77 l S
+1034.629 94.234 m 1043.008 94.234 l 1034.629 94.234 l S
+1034.629 105 m 1043.008 105 l 1034.629 105 l S
+1034.629 115.766 m 1043.008 115.766 l 1034.629 115.766 l S
+1034.629 126.531 m 1043.008 126.531 l 1034.629 126.531 l S
+1034.629 137.297 m 1043.008 137.297 l 1034.629 137.297 l S
+1034.629 148.062 m 1043.008 148.062 l 1034.629 148.062 l S
+1034.629 158.828 m 1043.008 158.828 l 1034.629 158.828 l S
+1034.629 169.594 m 1043.008 169.594 l 1034.629 169.594 l S
+1034.629 180.359 m 1043.008 180.359 l 1034.629 180.359 l S
+1034.629 191.121 m 1043.008 191.121 l 1034.629 191.121 l S
+1034.629 201.887 m 1043.008 201.887 l 1034.629 201.887 l S
+1034.629 212.652 m 1043.008 212.652 l 1034.629 212.652 l S
+1034.629 223.418 m 1043.008 223.418 l 1034.629 223.418 l S
+1034.629 94.234 m 1034.629 223.418 l S
+495.211 223.418 m 495.211 231.797 l 495.211 223.418 l 555.148 223.418 l
+ 555.148 231.797 l 555.148 223.418 l 615.082 223.418 l 615.082 231.797 l
+ 615.082 223.418 l 675.02 223.418 l 675.02 231.797 l 675.02 223.418 l 734.953
+ 223.418 l 734.953 231.797 l 734.953 223.418 l 794.887 223.418 l 794.887
+ 231.797 l 794.887 223.418 l 854.824 223.418 l 854.824 231.797 l 854.824
+ 223.418 l 914.758 223.418 l 914.758 231.797 l 914.758 223.418 l 974.695
+ 223.418 l 974.695 231.797 l 974.695 223.418 l 1034.629 223.418 l 1034.629
+ 231.797 l 1034.629 223.418 l S
+447.266 223.418 m 1034.629 223.418 l S
+495.211 94.234 m 495.211 85.859 l 495.211 94.234 l 555.148 94.234 l 555.148
+ 85.859 l 555.148 94.234 l 615.082 94.234 l 615.082 85.859 l 615.082 94.234
+ l 675.02 94.234 l 675.02 85.859 l 675.02 94.234 l 734.953 94.234 l 734.953
+ 85.859 l 734.953 94.234 l 794.887 94.234 l 794.887 85.859 l 794.887 94.234
+ l 854.824 94.234 l 854.824 85.859 l 854.824 94.234 l 914.758 94.234 l 914.758
+ 85.859 l 914.758 94.234 l 974.695 94.234 l 974.695 85.859 l 974.695 94.234
+ l 1034.629 94.234 l 1034.629 85.859 l 1034.629 94.234 l S
+447.266 94.234 m 1034.629 94.234 l S
+496.809 79.828 m 493.617 79.828 l 493.297 76.953 l 493.617 77.273 l 494.574
+ 77.594 l 495.531 77.594 l 496.488 77.273 l 497.129 76.637 l 497.445 75.68
+ l 497.445 75.039 l 497.129 74.082 l 496.488 73.445 l 495.531 73.125 l 494.574
+ 73.125 l 493.617 73.445 l 493.297 73.762 l 492.977 74.402 l S
+610.613 78.551 m 611.254 78.871 l 612.211 79.828 l 612.211 73.125 l S
+619.871 79.828 m 616.68 79.828 l 616.359 76.953 l 616.68 77.273 l 617.637
+ 77.594 l 618.594 77.594 l 619.551 77.273 l 620.188 76.637 l 620.508 75.68
+ l 620.508 75.039 l 620.188 74.082 l 619.551 73.445 l 618.594 73.125 l 617.637
+ 73.125 l 616.68 73.445 l 616.359 73.762 l 616.039 74.402 l S
+729.848 78.23 m 729.848 78.551 l 730.164 79.188 l 730.484 79.508 l 731.125
+ 79.828 l 732.398 79.828 l 733.039 79.508 l 733.355 79.188 l 733.676 78.551
+ l 733.676 77.91 l 733.355 77.273 l 732.719 76.316 l 729.527 73.125 l 733.996
+ 73.125 l S
+739.742 79.828 m 736.551 79.828 l 736.23 76.953 l 736.551 77.273 l 737.508
+ 77.594 l 738.465 77.594 l 739.422 77.273 l 740.059 76.637 l 740.379 75.68
+ l 740.379 75.039 l 740.059 74.082 l 739.422 73.445 l 738.465 73.125 l 737.508
+ 73.125 l 736.551 73.445 l 736.23 73.762 l 735.91 74.402 l S
+850.035 79.828 m 853.547 79.828 l 851.633 77.273 l 852.59 77.273 l 853.227
+ 76.953 l 853.547 76.637 l 853.867 75.68 l 853.867 75.039 l 853.547 74.082
+ l 852.91 73.445 l 851.949 73.125 l 850.992 73.125 l 850.035 73.445 l 849.719
+ 73.762 l 849.398 74.402 l S
+859.609 79.828 m 856.418 79.828 l 856.102 76.953 l 856.418 77.273 l 857.379
+ 77.594 l 858.336 77.594 l 859.293 77.273 l 859.93 76.637 l 860.25 75.68
+ l 860.25 75.039 l 859.93 74.082 l 859.293 73.445 l 858.336 73.125 l 857.379
+ 73.125 l 856.418 73.445 l 856.102 73.762 l 855.781 74.402 l S
+972.461 79.828 m 969.27 75.359 l 974.055 75.359 l S
+972.461 79.828 m 972.461 73.125 l S
+979.48 79.828 m 976.289 79.828 l 975.973 76.953 l 976.289 77.273 l 977.246
+ 77.594 l 978.203 77.594 l 979.164 77.273 l 979.801 76.637 l 980.121 75.68
+ l 980.121 75.039 l 979.801 74.082 l 979.164 73.445 l 978.203 73.125 l 977.246
+ 73.125 l 976.289 73.445 l 975.973 73.762 l 975.652 74.402 l S
+  Q
+Q
+q
+0 1101.6 634 -1102 re W n
+[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+  q
+0 g
+1 w
+2 J
+2 j
+[] 0.0 d
+10 M 447.266 422.762 m 459.25 539.508 l 471.238 471.344 l 483.227 411.469 l 
+495.211 440.488 l 507.199 496.793 l 519.188 532.938 l 531.172 539.375 l 
+543.16 524.562 l 555.148 499.793 l 567.133 473.484 l 579.121 450.426 l 591.109
+ 432.668 l 603.094 420.586 l 615.082 413.688 l 627.07 411.117 l 639.059 
+411.934 l 651.043 415.281 l 663.031 420.418 l 675.02 426.746 l 687.004 433.793
+ l 698.992 441.203 l 710.98 448.711 l 722.965 456.129 l 734.953 463.316 
+l 746.941 470.195 l 758.926 476.699 l 770.914 482.801 l 782.902 488.484 
+l 794.887 493.754 l 806.875 498.613 l 818.863 503.074 l 830.848 507.16 l
+ 842.836 510.891 l 854.824 514.285 l 866.812 517.363 l 878.797 520.156 l
+ 890.785 522.676 l 902.773 524.949 l 914.758 526.992 l 926.746 528.824 l
+ 938.734 530.461 l 950.719 531.918 l 962.707 533.215 l 974.695 534.359 l
+ 986.68 535.367 l 998.668 536.25 l 1010.656 537.02 l 1022.641 537.684 l 
+1034.629 538.25 l S
+447.266 411.035 m 438.887 411.035 l 447.266 411.035 l S
+447.266 423.953 m 438.887 423.953 l 447.266 423.953 l S
+447.266 436.871 m 438.887 436.871 l 447.266 436.871 l S
+447.266 449.789 m 438.887 449.789 l 447.266 449.789 l S
+447.266 462.711 m 438.887 462.711 l 447.266 462.711 l S
+447.266 475.629 m 438.887 475.629 l 447.266 475.629 l S
+447.266 488.547 m 438.887 488.547 l 447.266 488.547 l S
+447.266 501.465 m 438.887 501.465 l 447.266 501.465 l S
+447.266 514.383 m 438.887 514.383 l 447.266 514.383 l S
+447.266 527.301 m 438.887 527.301 l 447.266 527.301 l S
+447.266 540.219 m 438.887 540.219 l 447.266 540.219 l S
+447.266 411.035 m 447.266 540.219 l S
+404.496 423.477 m 410.242 423.477 l S
+414.391 427.305 m 413.434 426.988 l 412.793 426.027 l 412.477 424.434 l
+ 412.477 423.477 l 412.793 421.879 l 413.434 420.922 l 414.391 420.602 l
+ 415.027 420.602 l 415.988 420.922 l 416.625 421.879 l 416.945 423.477 l
+ 416.945 424.434 l 416.625 426.027 l 415.988 426.988 l 415.027 427.305 l
+ 414.391 427.305 l S
+419.496 421.242 m 419.18 420.922 l 419.496 420.602 l 419.816 420.922 l 
+419.496 421.242 l S
+423.648 427.305 m 422.688 426.988 l 422.371 426.348 l 422.371 425.711 l
+ 422.688 425.07 l 423.328 424.754 l 424.605 424.434 l 425.562 424.113 l 
+426.199 423.477 l 426.52 422.836 l 426.52 421.879 l 426.199 421.242 l 425.879
+ 420.922 l 424.922 420.602 l 423.648 420.602 l 422.688 420.922 l 422.371
+ 421.242 l 422.051 421.879 l 422.051 422.836 l 422.371 423.477 l 423.008
+ 424.113 l 423.965 424.434 l 425.242 424.754 l 425.879 425.07 l 426.199 
+425.711 l 426.199 426.348 l 425.879 426.988 l 424.922 427.305 l 423.648 
+427.305 l S
+430.348 427.305 m 429.391 426.988 l 428.754 426.027 l 428.434 424.434 l
+ 428.434 423.477 l 428.754 421.879 l 429.391 420.922 l 430.348 420.602 l
+ 430.988 420.602 l 431.945 420.922 l 432.582 421.879 l 432.902 423.477 l
+ 432.902 424.434 l 432.582 426.027 l 431.945 426.988 l 430.988 427.305 l
+ 430.348 427.305 l S
+404.496 449.312 m 410.242 449.312 l S
+414.391 453.141 m 413.434 452.824 l 412.793 451.867 l 412.477 450.27 l 
+412.477 449.312 l 412.793 447.715 l 413.434 446.758 l 414.391 446.441 l 
+415.027 446.441 l 415.988 446.758 l 416.625 447.715 l 416.945 449.312 l 
+416.945 450.27 l 416.625 451.867 l 415.988 452.824 l 415.027 453.141 l 414.391
+ 453.141 l S
+419.496 447.078 m 419.18 446.758 l 419.496 446.441 l 419.816 446.758 l 
+419.496 447.078 l S
+425.242 453.141 m 422.051 448.672 l 426.84 448.672 l S
+425.242 453.141 m 425.242 446.441 l S
+430.348 453.141 m 429.391 452.824 l 428.754 451.867 l 428.434 450.27 l 
+428.434 449.312 l 428.754 447.715 l 429.391 446.758 l 430.348 446.441 l 
+430.988 446.441 l 431.945 446.758 l 432.582 447.715 l 432.902 449.312 l 
+432.902 450.27 l 432.582 451.867 l 431.945 452.824 l 430.988 453.141 l 430.348
+ 453.141 l S
+414.391 478.98 m 413.434 478.66 l 412.793 477.703 l 412.477 476.105 l 412.477
+ 475.148 l 412.793 473.551 l 413.434 472.594 l 414.391 472.277 l 415.027
+ 472.277 l 415.988 472.594 l 416.625 473.551 l 416.945 475.148 l 416.945
+ 476.105 l 416.625 477.703 l 415.988 478.66 l 415.027 478.98 l 414.391 478.98
+ l S
+419.496 472.914 m 419.18 472.594 l 419.496 472.277 l 419.816 472.594 l 
+419.496 472.914 l S
+423.965 478.98 m 423.008 478.66 l 422.371 477.703 l 422.051 476.105 l 422.051
+ 475.148 l 422.371 473.551 l 423.008 472.594 l 423.965 472.277 l 424.605
+ 472.277 l 425.562 472.594 l 426.199 473.551 l 426.52 475.148 l 426.52 476.105
+ l 426.199 477.703 l 425.562 478.66 l 424.605 478.98 l 423.965 478.98 l S
+430.348 478.98 m 429.391 478.66 l 428.754 477.703 l 428.434 476.105 l 428.434
+ 475.148 l 428.754 473.551 l 429.391 472.594 l 430.348 472.277 l 430.988
+ 472.277 l 431.945 472.594 l 432.582 473.551 l 432.902 475.148 l 432.902
+ 476.105 l 432.582 477.703 l 431.945 478.66 l 430.988 478.98 l 430.348 478.98
+ l S
+414.391 504.816 m 413.434 504.496 l 412.793 503.539 l 412.477 501.941 l
+ 412.477 500.984 l 412.793 499.391 l 413.434 498.43 l 414.391 498.113 l 
+415.027 498.113 l 415.988 498.43 l 416.625 499.391 l 416.945 500.984 l 416.945
+ 501.941 l 416.625 503.539 l 415.988 504.496 l 415.027 504.816 l 414.391
+ 504.816 l S
+419.496 498.75 m 419.18 498.43 l 419.496 498.113 l 419.816 498.43 l 419.496
+ 498.75 l S
+425.242 504.816 m 422.051 500.348 l 426.84 500.348 l S
+425.242 504.816 m 425.242 498.113 l S
+430.348 504.816 m 429.391 504.496 l 428.754 503.539 l 428.434 501.941 l
+ 428.434 500.984 l 428.754 499.391 l 429.391 498.43 l 430.348 498.113 l 
+430.988 498.113 l 431.945 498.43 l 432.582 499.391 l 432.902 500.984 l 432.902
+ 501.941 l 432.582 503.539 l 431.945 504.496 l 430.988 504.816 l 430.348
+ 504.816 l S
+414.391 530.652 m 413.434 530.332 l 412.793 529.375 l 412.477 527.777 l
+ 412.477 526.82 l 412.793 525.227 l 413.434 524.27 l 414.391 523.949 l 415.027
+ 523.949 l 415.988 524.27 l 416.625 525.227 l 416.945 526.82 l 416.945 527.777
+ l 416.625 529.375 l 415.988 530.332 l 415.027 530.652 l 414.391 530.652
+ l S
+419.496 524.586 m 419.18 524.27 l 419.496 523.949 l 419.816 524.27 l 419.496
+ 524.586 l S
+423.648 530.652 m 422.688 530.332 l 422.371 529.695 l 422.371 529.055 l
+ 422.688 528.418 l 423.328 528.098 l 424.605 527.777 l 425.562 527.461 l
+ 426.199 526.82 l 426.52 526.184 l 426.52 525.227 l 426.199 524.586 l 425.879
+ 524.27 l 424.922 523.949 l 423.648 523.949 l 422.688 524.27 l 422.371 524.586
+ l 422.051 525.227 l 422.051 526.184 l 422.371 526.82 l 423.008 527.461 
+l 423.965 527.777 l 425.242 528.098 l 425.879 528.418 l 426.199 529.055 
+l 426.199 529.695 l 425.879 530.332 l 424.922 530.652 l 423.648 530.652 
+l S
+430.348 530.652 m 429.391 530.332 l 428.754 529.375 l 428.434 527.777 l
+ 428.434 526.82 l 428.754 525.227 l 429.391 524.27 l 430.348 523.949 l 430.988
+ 523.949 l 431.945 524.27 l 432.582 525.227 l 432.902 526.82 l 432.902 527.777
+ l 432.582 529.375 l 431.945 530.332 l 430.988 530.652 l 430.348 530.652
+ l S
+1034.629 411.035 m 1043.008 411.035 l 1034.629 411.035 l S
+1034.629 423.953 m 1043.008 423.953 l 1034.629 423.953 l S
+1034.629 436.871 m 1043.008 436.871 l 1034.629 436.871 l S
+1034.629 449.789 m 1043.008 449.789 l 1034.629 449.789 l S
+1034.629 462.711 m 1043.008 462.711 l 1034.629 462.711 l S
+1034.629 475.629 m 1043.008 475.629 l 1034.629 475.629 l S
+1034.629 488.547 m 1043.008 488.547 l 1034.629 488.547 l S
+1034.629 501.465 m 1043.008 501.465 l 1034.629 501.465 l S
+1034.629 514.383 m 1043.008 514.383 l 1034.629 514.383 l S
+1034.629 527.301 m 1043.008 527.301 l 1034.629 527.301 l S
+1034.629 540.219 m 1043.008 540.219 l 1034.629 540.219 l S
+1034.629 411.035 m 1034.629 540.219 l S
+495.211 540.219 m 495.211 548.594 l 495.211 540.219 l 555.148 540.219 l
+ 555.148 548.594 l 555.148 540.219 l 615.082 540.219 l 615.082 548.594 l
+ 615.082 540.219 l 675.02 540.219 l 675.02 548.594 l 675.02 540.219 l 734.953
+ 540.219 l 734.953 548.594 l 734.953 540.219 l 794.887 540.219 l 794.887
+ 548.594 l 794.887 540.219 l 854.824 540.219 l 854.824 548.594 l 854.824
+ 540.219 l 914.758 540.219 l 914.758 548.594 l 914.758 540.219 l 974.695
+ 540.219 l 974.695 548.594 l 974.695 540.219 l 1034.629 540.219 l 1034.629
+ 548.594 l 1034.629 540.219 l S
+447.266 540.219 m 1034.629 540.219 l S
+495.211 411.035 m 495.211 402.66 l 495.211 411.035 l 555.148 411.035 l 
+555.148 402.66 l 555.148 411.035 l 615.082 411.035 l 615.082 402.66 l 615.082
+ 411.035 l 675.02 411.035 l 675.02 402.66 l 675.02 411.035 l 734.953 411.035
+ l 734.953 402.66 l 734.953 411.035 l 794.887 411.035 l 794.887 402.66 l
+ 794.887 411.035 l 854.824 411.035 l 854.824 402.66 l 854.824 411.035 l 
+914.758 411.035 l 914.758 402.66 l 914.758 411.035 l 974.695 411.035 l 974.695
+ 402.66 l 974.695 411.035 l 1034.629 411.035 l 1034.629 402.66 l 1034.629
+ 411.035 l S
+447.266 411.035 m 1034.629 411.035 l S
+496.809 396.629 m 493.617 396.629 l 493.297 393.754 l 493.617 394.074 l
+ 494.574 394.395 l 495.531 394.395 l 496.488 394.074 l 497.129 393.434 l
+ 497.445 392.477 l 497.445 391.84 l 497.129 390.883 l 496.488 390.242 l 
+495.531 389.926 l 494.574 389.926 l 493.617 390.242 l 493.297 390.562 l 
+492.977 391.199 l S
+610.613 395.352 m 611.254 395.668 l 612.211 396.629 l 612.211 389.926 l
+ S
+619.871 396.629 m 616.68 396.629 l 616.359 393.754 l 616.68 394.074 l 617.637
+ 394.395 l 618.594 394.395 l 619.551 394.074 l 620.188 393.434 l 620.508
+ 392.477 l 620.508 391.84 l 620.188 390.883 l 619.551 390.242 l 618.594 
+389.926 l 617.637 389.926 l 616.68 390.242 l 616.359 390.562 l 616.039 391.199
+ l S
+729.848 395.031 m 729.848 395.352 l 730.164 395.988 l 730.484 396.309 l
+ 731.125 396.629 l 732.398 396.629 l 733.039 396.309 l 733.355 395.988 l
+ 733.676 395.352 l 733.676 394.711 l 733.355 394.074 l 732.719 393.117 l
+ 729.527 389.926 l 733.996 389.926 l S
+739.742 396.629 m 736.551 396.629 l 736.23 393.754 l 736.551 394.074 l 
+737.508 394.395 l 738.465 394.395 l 739.422 394.074 l 740.059 393.434 l 
+740.379 392.477 l 740.379 391.84 l 740.059 390.883 l 739.422 390.242 l 738.465
+ 389.926 l 737.508 389.926 l 736.551 390.242 l 736.23 390.562 l 735.91 391.199
+ l S
+850.035 396.629 m 853.547 396.629 l 851.633 394.074 l 852.59 394.074 l 
+853.227 393.754 l 853.547 393.434 l 853.867 392.477 l 853.867 391.84 l 853.547
+ 390.883 l 852.91 390.242 l 851.949 389.926 l 850.992 389.926 l 850.035 
+390.242 l 849.719 390.562 l 849.398 391.199 l S
+859.609 396.629 m 856.418 396.629 l 856.102 393.754 l 856.418 394.074 l
+ 857.379 394.395 l 858.336 394.395 l 859.293 394.074 l 859.93 393.434 l 
+860.25 392.477 l 860.25 391.84 l 859.93 390.883 l 859.293 390.242 l 858.336
+ 389.926 l 857.379 389.926 l 856.418 390.242 l 856.102 390.562 l 855.781
+ 391.199 l S
+972.461 396.629 m 969.27 392.16 l 974.055 392.16 l S
+972.461 396.629 m 972.461 389.926 l S
+979.48 396.629 m 976.289 396.629 l 975.973 393.754 l 976.289 394.074 l 
+977.246 394.395 l 978.203 394.395 l 979.164 394.074 l 979.801 393.434 l 
+980.121 392.477 l 980.121 391.84 l 979.801 390.883 l 979.164 390.242 l 978.203
+ 389.926 l 977.246 389.926 l 976.289 390.242 l 975.973 390.562 l 975.652
+ 391.199 l S
+  Q
+Q
+q
+0 1101.6 634 -1102 re W n
+[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+  q
+1 0 0 rg
+1 w
+2 J
+2 j
+[] 0.0 d
+10 M 447.266 480.785 m 459.25 485.895 l 471.238 490.898 l 483.227 495.75 l 495.211
+ 500.402 l 507.199 504.805 l 519.188 508.914 l 531.172 512.695 l 543.16 
+516.105 l 555.148 519.109 l 567.133 521.68 l 579.121 523.789 l 591.109 525.418
+ l 603.094 526.547 l 615.082 527.172 l 627.07 527.277 l 639.059 526.871 
+l 651.043 525.949 l 663.031 524.523 l 675.02 522.613 l 687.004 520.23 l 
+698.992 517.406 l 710.98 514.16 l 722.965 510.531 l 734.953 506.551 l 746.941
+ 502.266 l 758.926 497.711 l 770.914 492.938 l 782.902 487.988 l 794.887
+ 482.918 l 806.875 477.777 l 818.863 472.609 l 830.848 467.477 l 842.836
+ 462.422 l 854.824 457.5 l 866.812 452.762 l 878.797 448.25 l 890.785 444.012
+ l 902.773 440.09 l 914.758 436.52 l 926.746 433.344 l 938.734 430.59 l 
+950.719 428.285 l 962.707 426.457 l 974.695 425.117 l 986.68 424.281 l 998.668
+ 423.957 l 1010.656 424.152 l 1022.641 424.859 l 1034.629 426.078 l S
+0 1 0 rg
+447.266 514.188 m 459.25 513.609 l 471.238 512.652 l 483.227 511.324 l 
+495.211 509.637 l 507.199 507.613 l 519.188 505.27 l 531.172 502.629 l 543.16
+ 499.719 l 555.148 496.566 l 567.133 493.207 l 579.121 489.672 l 591.109
+ 485.992 l 603.094 482.215 l 615.082 478.367 l 627.07 474.496 l 639.059 
+470.633 l 651.043 466.82 l 663.031 463.098 l 675.02 459.5 l 687.004 456.062
+ l 698.992 452.82 l 710.98 449.805 l 722.965 447.051 l 734.953 444.578 l
+ 746.941 442.418 l 758.926 440.59 l 770.914 439.113 l 782.902 438 l 794.887
+ 437.262 l 806.875 436.906 l 818.863 436.938 l 830.848 437.359 l 842.836
+ 438.16 l 854.824 439.336 l 866.812 440.875 l 878.797 442.758 l 890.785 
+444.973 l 902.773 447.492 l 914.758 450.297 l 926.746 453.352 l 938.734 
+456.629 l 950.719 460.094 l 962.707 463.715 l 974.695 467.457 l 986.68 471.281
+ l 998.668 475.148 l 1010.656 479.02 l 1022.641 482.855 l 1034.629 486.621
+ l S
+0 0 1 rg
+447.266 458.68 m 459.25 536.379 l 471.238 467.078 l 483.227 534.594 l 495.211
+ 422.762 l 507.199 539.508 l 519.188 471.344 l 531.172 411.469 l 543.16 
+440.488 l 555.148 496.793 l 567.133 532.938 l 579.121 539.375 l 591.109 
+524.562 l 603.094 499.793 l 615.082 473.484 l 627.07 450.426 l 639.059 432.668
+ l 651.043 420.586 l 663.031 413.688 l 675.02 411.117 l 687.004 411.934 
+l 698.992 415.281 l 710.98 420.418 l 722.965 426.746 l 734.953 433.793 l
+ 746.941 441.203 l 758.926 448.711 l 770.914 456.129 l 782.902 463.316 l
+ 794.887 470.195 l 806.875 476.699 l 818.863 482.801 l 830.848 488.484 l
+ 842.836 493.754 l 854.824 498.613 l 866.812 503.074 l 878.797 507.16 l 
+890.785 510.891 l 902.773 514.285 l 914.758 517.363 l 926.746 520.156 l 
+938.734 522.676 l 950.719 524.949 l 962.707 526.992 l 974.695 528.824 l 
+986.68 530.461 l 998.668 531.918 l 1010.656 533.215 l 1022.641 534.359 l
+ 1034.629 535.367 l S
+0 1 1 rg
+447.266 476.918 m 459.25 478.211 l 471.238 479.504 l 483.227 480.793 l 
+495.211 482.086 l 519.188 484.672 l 531.172 485.961 l 555.148 488.547 l 
+567.133 489.836 l 591.109 492.422 l 603.094 493.711 l 639.059 497.59 l 651.043
+ 498.879 l 675.02 501.465 l 687.004 502.754 l 710.98 505.34 l 722.965 506.633
+ l 734.953 507.922 l 746.941 509.215 l 758.926 510.508 l 770.914 511.797
+ l 782.902 513.09 l 794.887 514.383 l 806.875 515.672 l 818.863 516.965 
+l 830.848 518.258 l 842.836 519.551 l 854.824 520.84 l 866.812 522.133 l
+ 878.797 523.426 l 890.785 524.715 l 902.773 526.008 l 914.758 527.301 l
+ 926.746 528.594 l 938.734 529.883 l 950.719 531.176 l 962.707 532.469 l
+ 974.695 533.758 l 986.68 535.051 l 998.668 536.344 l 1010.656 537.633 l
+ 1022.641 538.926 l 1034.629 540.219 l S
+1 0 1 rg
+447.266 537.633 m 459.25 535.051 l 471.238 532.469 l 483.227 529.883 l 
+495.211 527.301 l 507.199 524.715 l 519.188 522.133 l 531.172 519.551 l 
+543.16 516.965 l 555.148 514.383 l 567.133 511.797 l 591.109 506.633 l 603.094
+ 504.047 l 615.082 501.465 l 627.07 498.879 l 639.059 496.297 l 651.043 
+493.711 l 675.02 488.547 l 687.004 485.961 l 698.992 483.379 l 710.98 480.793
+ l 722.965 478.211 l 734.953 475.629 l 746.941 473.043 l 758.926 470.461
+ l 770.914 467.875 l 782.902 465.293 l 794.887 462.711 l 806.875 460.125
+ l 818.863 457.543 l 830.848 454.957 l 842.836 452.375 l 854.824 449.789
+ l 866.812 447.207 l 878.797 444.625 l 890.785 442.039 l 902.773 439.457
+ l 914.758 436.871 l 938.734 431.707 l 950.719 429.121 l 962.707 426.539
+ l 974.695 423.953 l 986.68 421.371 l 998.668 418.789 l 1010.656 416.203
+ l 1022.641 413.621 l 1034.629 411.035 l S
+0 g
+447.266 443.848 m 448.359 444.941 l S
+447.266 443.848 m 448.359 442.754 l S
+447.266 443.848 m 459.25 444.363 l S
+458.156 443.27 m 460.344 445.461 l S
+458.156 445.461 m 460.344 443.27 l S
+459.25 444.363 m 471.238 444.883 l S
+470.145 443.789 m 472.332 445.977 l S
+470.145 445.977 m 472.332 443.789 l S
+471.238 444.883 m 483.227 445.398 l S
+482.129 444.305 m 484.32 446.492 l S
+482.129 446.492 m 484.32 444.305 l S
+483.227 445.398 m 495.211 445.914 l S
+494.117 444.82 m 496.305 447.008 l S
+494.117 447.008 m 496.305 444.82 l S
+495.211 445.914 m 507.199 446.434 l S
+506.105 445.336 m 508.293 447.527 l S
+506.105 447.527 m 508.293 445.336 l S
+507.199 446.434 m 519.188 446.949 l S
+518.094 445.855 m 520.281 448.043 l S
+518.094 448.043 m 520.281 445.855 l S
+519.188 446.949 m 531.172 447.465 l S
+530.078 446.371 m 532.266 448.559 l S
+530.078 448.559 m 532.266 446.371 l S
+531.172 447.465 m 543.16 447.98 l S
+542.066 446.887 m 544.254 449.078 l S
+542.066 449.078 m 544.254 446.887 l S
+543.16 447.98 m 555.148 448.5 l S
+554.055 447.406 m 556.242 449.594 l S
+554.055 449.594 m 556.242 447.406 l S
+555.148 448.5 m 567.133 449.016 l S
+566.039 447.922 m 568.23 450.109 l S
+566.039 450.109 m 568.23 447.922 l S
+567.133 449.016 m 579.121 449.531 l S
+578.027 448.438 m 580.215 450.625 l S
+578.027 450.625 m 580.215 448.438 l S
+579.121 449.531 m 591.109 450.051 l S
+590.016 448.953 m 592.203 451.145 l S
+590.016 451.145 m 592.203 448.953 l S
+591.109 450.051 m 603.094 450.566 l S
+602 449.473 m 604.191 451.66 l S
+602 451.66 m 604.191 449.473 l S
+603.094 450.566 m 615.082 451.082 l S
+613.988 449.988 m 616.176 452.176 l S
+613.988 452.176 m 616.176 449.988 l S
+615.082 451.082 m 627.07 451.598 l S
+625.977 450.504 m 628.164 452.695 l S
+625.977 452.695 m 628.164 450.504 l S
+627.07 451.598 m 639.059 452.117 l S
+637.961 451.023 m 640.152 453.211 l S
+637.961 453.211 m 640.152 451.023 l S
+639.059 452.117 m 651.043 452.633 l S
+649.949 451.539 m 652.137 453.727 l S
+649.949 453.727 m 652.137 451.539 l S
+651.043 452.633 m 663.031 453.148 l S
+661.938 452.055 m 664.125 454.242 l S
+661.938 454.242 m 664.125 452.055 l S
+663.031 453.148 m 675.02 453.668 l S
+673.922 452.57 m 676.113 454.762 l S
+673.922 454.762 m 676.113 452.57 l S
+675.02 453.668 m 687.004 454.184 l S
+685.91 453.09 m 688.098 455.277 l S
+685.91 455.277 m 688.098 453.09 l S
+687.004 454.184 m 698.992 454.699 l S
+697.898 453.605 m 700.086 455.793 l S
+697.898 455.793 m 700.086 453.605 l S
+698.992 454.699 m 710.98 455.215 l S
+709.883 454.121 m 712.074 456.312 l S
+709.883 456.312 m 712.074 454.121 l S
+710.98 455.215 m 722.965 455.734 l S
+721.871 454.641 m 724.059 456.828 l S
+721.871 456.828 m 724.059 454.641 l S
+722.965 455.734 m 734.953 456.25 l S
+733.859 455.156 m 736.047 457.344 l S
+733.859 457.344 m 736.047 455.156 l S
+734.953 456.25 m 746.941 456.766 l S
+745.848 455.672 m 748.035 457.859 l S
+745.848 457.859 m 748.035 455.672 l S
+746.941 456.766 m 758.926 457.285 l S
+757.832 456.188 m 760.023 458.379 l S
+757.832 458.379 m 760.023 456.188 l S
+758.926 457.285 m 770.914 457.801 l S
+769.82 456.707 m 772.008 458.895 l S
+769.82 458.895 m 772.008 456.707 l S
+770.914 457.801 m 782.902 458.316 l S
+781.809 457.223 m 783.996 459.41 l S
+781.809 459.41 m 783.996 457.223 l S
+782.902 458.316 m 794.887 458.832 l S
+793.793 457.738 m 795.984 459.93 l S
+793.793 459.93 m 795.984 457.738 l S
+794.887 458.832 m 806.875 459.352 l S
+805.781 458.258 m 807.969 460.445 l S
+805.781 460.445 m 807.969 458.258 l S
+806.875 459.352 m 818.863 459.867 l S
+817.77 458.773 m 819.957 460.961 l S
+817.77 460.961 m 819.957 458.773 l S
+818.863 459.867 m 830.848 460.383 l S
+829.754 459.289 m 831.945 461.477 l S
+829.754 461.477 m 831.945 459.289 l S
+830.848 460.383 m 842.836 460.902 l S
+841.742 459.805 m 843.93 461.996 l S
+841.742 461.996 m 843.93 459.805 l S
+842.836 460.902 m 854.824 461.418 l S
+853.73 460.324 m 855.918 462.512 l S
+853.73 462.512 m 855.918 460.324 l S
+854.824 461.418 m 866.812 461.934 l S
+865.715 460.84 m 867.906 463.027 l S
+865.715 463.027 m 867.906 460.84 l S
+866.812 461.934 m 878.797 462.449 l S
+877.703 461.355 m 879.891 463.547 l S
+877.703 463.547 m 879.891 461.355 l S
+878.797 462.449 m 890.785 462.969 l S
+889.691 461.875 m 891.879 464.062 l S
+889.691 464.062 m 891.879 461.875 l S
+890.785 462.969 m 902.773 463.484 l S
+901.676 462.391 m 903.867 464.578 l S
+901.676 464.578 m 903.867 462.391 l S
+902.773 463.484 m 914.758 464 l S
+913.664 462.906 m 915.852 465.094 l S
+913.664 465.094 m 915.852 462.906 l S
+914.758 464 m 926.746 464.52 l S
+925.652 463.422 m 927.84 465.613 l S
+925.652 465.613 m 927.84 463.422 l S
+926.746 464.52 m 938.734 465.035 l S
+937.637 463.941 m 939.828 466.129 l S
+937.637 466.129 m 939.828 463.941 l S
+938.734 465.035 m 950.719 465.551 l S
+949.625 464.457 m 951.812 466.645 l S
+949.625 466.645 m 951.812 464.457 l S
+950.719 465.551 m 962.707 466.066 l S
+961.613 464.973 m 963.801 467.16 l S
+961.613 467.16 m 963.801 464.973 l S
+962.707 466.066 m 974.695 466.586 l S
+973.602 465.488 m 975.789 467.68 l S
+973.602 467.68 m 975.789 465.488 l S
+974.695 466.586 m 986.68 467.102 l S
+985.586 466.008 m 987.777 468.195 l S
+985.586 468.195 m 987.777 466.008 l S
+986.68 467.102 m 998.668 467.617 l S
+997.574 466.523 m 999.762 468.711 l S
+997.574 468.711 m 999.762 466.523 l S
+998.668 467.617 m 1010.656 468.133 l S
+1009.562 467.039 m 1011.75 469.23 l S
+1009.562 469.23 m 1011.75 467.039 l S
+1010.656 468.133 m 1022.641 468.652 l S
+1021.547 467.559 m 1023.738 469.746 l S
+1021.547 469.746 m 1023.738 467.559 l S
+1022.641 468.652 m 1034.629 469.168 l S
+1033.535 468.074 m 1034.629 469.168 l S
+1033.535 470.262 m 1034.629 469.168 l S
+1 0 0 rg
+447.266 431.336 m 448.359 432.43 l S
+447.266 431.336 m 448.359 430.242 l S
+447.266 431.336 m 459.25 433.184 l S
+458.156 432.086 m 460.344 434.277 l S
+458.156 434.277 m 460.344 432.086 l S
+459.25 433.184 m 471.238 435.027 l S
+470.145 433.934 m 472.332 436.121 l S
+470.145 436.121 m 472.332 433.934 l S
+471.238 435.027 m 483.227 436.871 l S
+482.129 435.777 m 484.32 437.969 l S
+482.129 437.969 m 484.32 435.777 l S
+483.227 436.871 m 495.211 438.719 l S
+494.117 437.625 m 496.305 439.812 l S
+494.117 439.812 m 496.305 437.625 l S
+495.211 438.719 m 507.199 440.562 l S
+506.105 439.469 m 508.293 441.656 l S
+506.105 441.656 m 508.293 439.469 l S
+507.199 440.562 m 519.188 442.41 l S
+518.094 441.316 m 520.281 443.504 l S
+518.094 443.504 m 520.281 441.316 l S
+519.188 442.41 m 531.172 444.254 l S
+530.078 443.16 m 532.266 445.348 l S
+530.078 445.348 m 532.266 443.16 l S
+531.172 444.254 m 543.16 446.102 l S
+542.066 445.004 m 544.254 447.195 l S
+542.066 447.195 m 544.254 445.004 l S
+543.16 446.102 m 555.148 447.945 l S
+554.055 446.852 m 556.242 449.039 l S
+554.055 449.039 m 556.242 446.852 l S
+555.148 447.945 m 567.133 449.789 l S
+566.039 448.695 m 568.23 450.887 l S
+566.039 450.887 m 568.23 448.695 l S
+567.133 449.789 m 579.121 451.637 l S
+578.027 450.543 m 580.215 452.73 l S
+578.027 452.73 m 580.215 450.543 l S
+579.121 451.637 m 591.109 453.48 l S
+590.016 452.387 m 592.203 454.574 l S
+590.016 454.574 m 592.203 452.387 l S
+591.109 453.48 m 603.094 455.328 l S
+602 454.234 m 604.191 456.422 l S
+602 456.422 m 604.191 454.234 l S
+603.094 455.328 m 615.082 457.172 l S
+613.988 456.078 m 616.176 458.266 l S
+613.988 458.266 m 616.176 456.078 l S
+615.082 457.172 m 627.07 459.02 l S
+625.977 457.926 m 628.164 460.113 l S
+625.977 460.113 m 628.164 457.926 l S
+627.07 459.02 m 639.059 460.863 l S
+637.961 459.77 m 640.152 461.957 l S
+637.961 461.957 m 640.152 459.77 l S
+639.059 460.863 m 651.043 462.711 l S
+649.949 461.613 m 652.137 463.805 l S
+649.949 463.805 m 652.137 461.613 l S
+651.043 462.711 m 663.031 464.555 l S
+661.938 463.461 m 664.125 465.648 l S
+661.938 465.648 m 664.125 463.461 l S
+663.031 464.555 m 675.02 466.398 l S
+673.922 465.305 m 676.113 467.496 l S
+673.922 467.496 m 676.113 465.305 l S
+675.02 466.398 m 687.004 468.246 l S
+685.91 467.152 m 688.098 469.34 l S
+685.91 469.34 m 688.098 467.152 l S
+687.004 468.246 m 698.992 470.09 l S
+697.898 468.996 m 700.086 471.184 l S
+697.898 471.184 m 700.086 468.996 l S
+698.992 470.09 m 710.98 471.938 l S
+709.883 470.844 m 712.074 473.031 l S
+709.883 473.031 m 712.074 470.844 l S
+710.98 471.938 m 722.965 473.781 l S
+721.871 472.688 m 724.059 474.875 l S
+721.871 474.875 m 724.059 472.688 l S
+722.965 473.781 m 734.953 475.629 l S
+733.859 474.531 m 736.047 476.723 l S
+733.859 476.723 m 736.047 474.531 l S
+734.953 475.629 m 746.941 477.473 l S
+745.848 476.379 m 748.035 478.566 l S
+745.848 478.566 m 748.035 476.379 l S
+746.941 477.473 m 758.926 479.316 l S
+757.832 478.223 m 760.023 480.414 l S
+757.832 480.414 m 760.023 478.223 l S
+758.926 479.316 m 770.914 481.164 l S
+769.82 480.07 m 772.008 482.258 l S
+769.82 482.258 m 772.008 480.07 l S
+770.914 481.164 m 782.902 483.008 l S
+781.809 481.914 m 783.996 484.102 l S
+781.809 484.102 m 783.996 481.914 l S
+782.902 483.008 m 794.887 484.855 l S
+793.793 483.762 m 795.984 485.949 l S
+793.793 485.949 m 795.984 483.762 l S
+794.887 484.855 m 806.875 486.699 l S
+805.781 485.605 m 807.969 487.793 l S
+805.781 487.793 m 807.969 485.605 l S
+806.875 486.699 m 818.863 488.547 l S
+817.77 487.453 m 819.957 489.641 l S
+817.77 489.641 m 819.957 487.453 l S
+818.863 488.547 m 830.848 490.391 l S
+829.754 489.297 m 831.945 491.484 l S
+829.754 491.484 m 831.945 489.297 l S
+830.848 490.391 m 842.836 492.238 l S
+841.742 491.141 m 843.93 493.332 l S
+841.742 493.332 m 843.93 491.141 l S
+842.836 492.238 m 854.824 494.082 l S
+853.73 492.988 m 855.918 495.176 l S
+853.73 495.176 m 855.918 492.988 l S
+854.824 494.082 m 866.812 495.926 l S
+865.715 494.832 m 867.906 497.023 l S
+865.715 497.023 m 867.906 494.832 l S
+866.812 495.926 m 878.797 497.773 l S
+877.703 496.68 m 879.891 498.867 l S
+877.703 498.867 m 879.891 496.68 l S
+878.797 497.773 m 890.785 499.617 l S
+889.691 498.523 m 891.879 500.711 l S
+889.691 500.711 m 891.879 498.523 l S
+890.785 499.617 m 902.773 501.465 l S
+901.676 500.371 m 903.867 502.559 l S
+901.676 502.559 m 903.867 500.371 l S
+902.773 501.465 m 914.758 503.309 l S
+913.664 502.215 m 915.852 504.402 l S
+913.664 504.402 m 915.852 502.215 l S
+914.758 503.309 m 926.746 505.156 l S
+925.652 504.059 m 927.84 506.25 l S
+925.652 506.25 m 927.84 504.059 l S
+926.746 505.156 m 938.734 507 l S
+937.637 505.906 m 939.828 508.094 l S
+937.637 508.094 m 939.828 505.906 l S
+938.734 507 m 950.719 508.844 l S
+949.625 507.75 m 951.812 509.941 l S
+949.625 509.941 m 951.812 507.75 l S
+950.719 508.844 m 962.707 510.691 l S
+961.613 509.598 m 963.801 511.785 l S
+961.613 511.785 m 963.801 509.598 l S
+962.707 510.691 m 974.695 512.535 l S
+973.602 511.441 m 975.789 513.629 l S
+973.602 513.629 m 975.789 511.441 l S
+974.695 512.535 m 986.68 514.383 l S
+985.586 513.289 m 987.777 515.477 l S
+985.586 515.477 m 987.777 513.289 l S
+986.68 514.383 m 998.668 516.227 l S
+997.574 515.133 m 999.762 517.32 l S
+997.574 517.32 m 999.762 515.133 l S
+998.668 516.227 m 1010.656 518.074 l S
+1009.562 516.98 m 1011.75 519.168 l S
+1009.562 519.168 m 1011.75 516.98 l S
+1010.656 518.074 m 1022.641 519.918 l S
+1021.547 518.824 m 1023.738 521.012 l S
+1021.547 521.012 m 1023.738 518.824 l S
+1022.641 519.918 m 1034.629 521.766 l S
+1033.535 520.668 m 1034.629 521.766 l S
+1033.535 522.859 m 1034.629 521.766 l S
+0 1 0 rg
+447.266 453.48 m 448.359 454.574 l S
+447.266 453.48 m 448.359 452.387 l S
+447.266 453.48 m 459.25 454.406 l S
+458.156 453.309 m 460.344 455.5 l S
+458.156 455.5 m 460.344 453.309 l S
+459.25 454.406 m 471.238 455.328 l S
+470.145 454.234 m 472.332 456.422 l S
+470.145 456.422 m 472.332 454.234 l S
+471.238 455.328 m 483.227 456.25 l S
+482.129 455.156 m 484.32 457.344 l S
+482.129 457.344 m 484.32 455.156 l S
+483.227 456.25 m 495.211 457.172 l S
+494.117 456.078 m 496.305 458.266 l S
+494.117 458.266 m 496.305 456.078 l S
+495.211 457.172 m 507.199 458.094 l S
+506.105 457 m 508.293 459.191 l S
+506.105 459.191 m 508.293 457 l S
+507.199 458.094 m 519.188 459.02 l S
+518.094 457.926 m 520.281 460.113 l S
+518.094 460.113 m 520.281 457.926 l S
+519.188 459.02 m 531.172 459.941 l S
+530.078 458.848 m 532.266 461.035 l S
+530.078 461.035 m 532.266 458.848 l S
+531.172 459.941 m 543.16 460.863 l S
+542.066 459.77 m 544.254 461.957 l S
+542.066 461.957 m 544.254 459.77 l S
+543.16 460.863 m 555.148 461.785 l S
+554.055 460.691 m 556.242 462.879 l S
+554.055 462.879 m 556.242 460.691 l S
+555.148 461.785 m 567.133 462.711 l S
+566.039 461.613 m 568.23 463.805 l S
+566.039 463.805 m 568.23 461.613 l S
+567.133 462.711 m 579.121 463.633 l S
+578.027 462.539 m 580.215 464.727 l S
+578.027 464.727 m 580.215 462.539 l S
+579.121 463.633 m 591.109 464.555 l S
+590.016 463.461 m 592.203 465.648 l S
+590.016 465.648 m 592.203 463.461 l S
+591.109 464.555 m 603.094 465.477 l S
+602 464.383 m 604.191 466.57 l S
+602 466.57 m 604.191 464.383 l S
+603.094 465.477 m 615.082 466.398 l S
+613.988 465.305 m 616.176 467.496 l S
+613.988 467.496 m 616.176 465.305 l S
+615.082 466.398 m 627.07 467.324 l S
+625.977 466.227 m 628.164 468.418 l S
+625.977 468.418 m 628.164 466.227 l S
+627.07 467.324 m 639.059 468.246 l S
+637.961 467.152 m 640.152 469.34 l S
+637.961 469.34 m 640.152 467.152 l S
+639.059 468.246 m 651.043 469.168 l S
+649.949 468.074 m 652.137 470.262 l S
+649.949 470.262 m 652.137 468.074 l S
+651.043 469.168 m 663.031 470.09 l S
+661.938 468.996 m 664.125 471.184 l S
+661.938 471.184 m 664.125 468.996 l S
+663.031 470.09 m 675.02 471.012 l S
+673.922 469.918 m 676.113 472.109 l S
+673.922 472.109 m 676.113 469.918 l S
+675.02 471.012 m 687.004 471.938 l S
+685.91 470.844 m 688.098 473.031 l S
+685.91 473.031 m 688.098 470.844 l S
+687.004 471.938 m 698.992 472.859 l S
+697.898 471.766 m 700.086 473.953 l S
+697.898 473.953 m 700.086 471.766 l S
+698.992 472.859 m 710.98 473.781 l S
+709.883 472.688 m 712.074 474.875 l S
+709.883 474.875 m 712.074 472.688 l S
+710.98 473.781 m 722.965 474.703 l S
+721.871 473.609 m 724.059 475.801 l S
+721.871 475.801 m 724.059 473.609 l S
+722.965 474.703 m 734.953 475.629 l S
+733.859 474.531 m 736.047 476.723 l S
+733.859 476.723 m 736.047 474.531 l S
+734.953 475.629 m 746.941 476.551 l S
+745.848 475.457 m 748.035 477.645 l S
+745.848 477.645 m 748.035 475.457 l S
+746.941 476.551 m 758.926 477.473 l S
+757.832 476.379 m 760.023 478.566 l S
+757.832 478.566 m 760.023 476.379 l S
+758.926 477.473 m 770.914 478.395 l S
+769.82 477.301 m 772.008 479.488 l S
+769.82 479.488 m 772.008 477.301 l S
+770.914 478.395 m 782.902 479.316 l S
+781.809 478.223 m 783.996 480.414 l S
+781.809 480.414 m 783.996 478.223 l S
+782.902 479.316 m 794.887 480.242 l S
+793.793 479.148 m 795.984 481.336 l S
+793.793 481.336 m 795.984 479.148 l S
+794.887 480.242 m 806.875 481.164 l S
+805.781 480.07 m 807.969 482.258 l S
+805.781 482.258 m 807.969 480.07 l S
+806.875 481.164 m 818.863 482.086 l S
+817.77 480.992 m 819.957 483.18 l S
+817.77 483.18 m 819.957 480.992 l S
+818.863 482.086 m 830.848 483.008 l S
+829.754 481.914 m 831.945 484.102 l S
+829.754 484.102 m 831.945 481.914 l S
+830.848 483.008 m 842.836 483.934 l S
+841.742 482.836 m 843.93 485.027 l S
+841.742 485.027 m 843.93 482.836 l S
+842.836 483.934 m 854.824 484.855 l S
+853.73 483.762 m 855.918 485.949 l S
+853.73 485.949 m 855.918 483.762 l S
+854.824 484.855 m 866.812 485.777 l S
+865.715 484.684 m 867.906 486.871 l S
+865.715 486.871 m 867.906 484.684 l S
+866.812 485.777 m 878.797 486.699 l S
+877.703 485.605 m 879.891 487.793 l S
+877.703 487.793 m 879.891 485.605 l S
+878.797 486.699 m 890.785 487.621 l S
+889.691 486.527 m 891.879 488.719 l S
+889.691 488.719 m 891.879 486.527 l S
+890.785 487.621 m 902.773 488.547 l S
+901.676 487.453 m 903.867 489.641 l S
+901.676 489.641 m 903.867 487.453 l S
+902.773 488.547 m 914.758 489.469 l S
+913.664 488.375 m 915.852 490.562 l S
+913.664 490.562 m 915.852 488.375 l S
+914.758 489.469 m 926.746 490.391 l S
+925.652 489.297 m 927.84 491.484 l S
+925.652 491.484 m 927.84 489.297 l S
+926.746 490.391 m 938.734 491.312 l S
+937.637 490.219 m 939.828 492.406 l S
+937.637 492.406 m 939.828 490.219 l S
+938.734 491.312 m 950.719 492.238 l S
+949.625 491.141 m 951.812 493.332 l S
+949.625 493.332 m 951.812 491.141 l S
+950.719 492.238 m 962.707 493.16 l S
+961.613 492.066 m 963.801 494.254 l S
+961.613 494.254 m 963.801 492.066 l S
+962.707 493.16 m 974.695 494.082 l S
+973.602 492.988 m 975.789 495.176 l S
+973.602 495.176 m 975.789 492.988 l S
+974.695 494.082 m 986.68 495.004 l S
+985.586 493.91 m 987.777 496.098 l S
+985.586 496.098 m 987.777 493.91 l S
+986.68 495.004 m 998.668 495.926 l S
+997.574 494.832 m 999.762 497.023 l S
+997.574 497.023 m 999.762 494.832 l S
+998.668 495.926 m 1010.656 496.852 l S
+1009.562 495.754 m 1011.75 497.945 l S
+1009.562 497.945 m 1011.75 495.754 l S
+1010.656 496.852 m 1022.641 497.773 l S
+1021.547 496.68 m 1023.738 498.867 l S
+1021.547 498.867 m 1023.738 496.68 l S
+1022.641 497.773 m 1034.629 498.695 l S
+1033.535 497.602 m 1034.629 498.695 l S
+1033.535 499.789 m 1034.629 498.695 l S
+0 0 1 rg
+447.266 487.246 m 448.359 488.34 l S
+447.266 487.246 m 448.359 486.152 l S
+447.266 487.246 m 459.25 492.352 l S
+458.156 491.258 m 460.344 493.445 l S
+458.156 493.445 m 460.344 491.258 l S
+459.25 492.352 m 471.238 497.355 l S
+470.145 496.262 m 472.332 498.449 l S
+470.145 498.449 m 472.332 496.262 l S
+471.238 497.355 m 483.227 502.207 l S
+482.129 501.113 m 484.32 503.305 l S
+482.129 503.305 m 484.32 501.113 l S
+483.227 502.207 m 495.211 506.859 l S
+494.117 505.766 m 496.305 507.953 l S
+494.117 507.953 m 496.305 505.766 l S
+495.211 506.859 m 507.199 511.262 l S
+506.105 510.168 m 508.293 512.355 l S
+506.105 512.355 m 508.293 510.168 l S
+507.199 511.262 m 519.188 515.375 l S
+518.094 514.281 m 520.281 516.469 l S
+518.094 516.469 m 520.281 514.281 l S
+519.188 515.375 m 531.172 519.152 l S
+530.078 518.059 m 532.266 520.25 l S
+530.078 520.25 m 532.266 518.059 l S
+531.172 519.152 m 543.16 522.562 l S
+542.066 521.469 m 544.254 523.656 l S
+542.066 523.656 m 544.254 521.469 l S
+543.16 522.562 m 555.148 525.566 l S
+554.055 524.473 m 556.242 526.66 l S
+554.055 526.66 m 556.242 524.473 l S
+555.148 525.566 m 567.133 528.137 l S
+566.039 527.043 m 568.23 529.23 l S
+566.039 529.23 m 568.23 527.043 l S
+567.133 528.137 m 579.121 530.246 l S
+578.027 529.152 m 580.215 531.344 l S
+578.027 531.344 m 580.215 529.152 l S
+579.121 530.246 m 591.109 531.875 l S
+590.016 530.781 m 592.203 532.969 l S
+590.016 532.969 m 592.203 530.781 l S
+591.109 531.875 m 603.094 533.008 l S
+602 531.914 m 604.191 534.102 l S
+602 534.102 m 604.191 531.914 l S
+603.094 533.008 m 615.082 533.629 l S
+613.988 532.535 m 616.176 534.723 l S
+613.988 534.723 m 616.176 532.535 l S
+615.082 533.629 m 627.07 533.738 l S
+625.977 532.645 m 628.164 534.832 l S
+625.977 534.832 m 628.164 532.645 l S
+627.07 533.738 m 639.059 533.328 l S
+637.961 532.234 m 640.152 534.422 l S
+637.961 534.422 m 640.152 532.234 l S
+639.059 533.328 m 651.043 532.406 l S
+649.949 531.312 m 652.137 533.504 l S
+649.949 533.504 m 652.137 531.312 l S
+651.043 532.406 m 663.031 530.984 l S
+661.938 529.891 m 664.125 532.078 l S
+661.938 532.078 m 664.125 529.891 l S
+663.031 530.984 m 675.02 529.074 l S
+673.922 527.977 m 676.113 530.168 l S
+673.922 530.168 m 676.113 527.977 l S
+675.02 529.074 m 687.004 526.691 l S
+685.91 525.598 m 688.098 527.785 l S
+685.91 527.785 m 688.098 525.598 l S
+687.004 526.691 m 698.992 523.863 l S
+697.898 522.77 m 700.086 524.957 l S
+697.898 524.957 m 700.086 522.77 l S
+698.992 523.863 m 710.98 520.617 l S
+709.883 519.523 m 712.074 521.715 l S
+709.883 521.715 m 712.074 519.523 l S
+710.98 520.617 m 722.965 516.988 l S
+721.871 515.895 m 724.059 518.082 l S
+721.871 518.082 m 724.059 515.895 l S
+722.965 516.988 m 734.953 513.012 l S
+733.859 511.918 m 736.047 514.105 l S
+733.859 514.105 m 736.047 511.918 l S
+734.953 513.012 m 746.941 508.723 l S
+745.848 507.629 m 748.035 509.816 l S
+745.848 509.816 m 748.035 507.629 l S
+746.941 508.723 m 758.926 504.172 l S
+757.832 503.074 m 760.023 505.266 l S
+757.832 505.266 m 760.023 503.074 l S
+758.926 504.172 m 770.914 499.395 l S
+769.82 498.301 m 772.008 500.492 l S
+769.82 500.492 m 772.008 498.301 l S
+770.914 499.395 m 782.902 494.449 l S
+781.809 493.355 m 783.996 495.543 l S
+781.809 495.543 m 783.996 493.355 l S
+782.902 494.449 m 794.887 489.379 l S
+793.793 488.285 m 795.984 490.473 l S
+793.793 490.473 m 795.984 488.285 l S
+794.887 489.379 m 806.875 484.234 l S
+805.781 483.141 m 807.969 485.328 l S
+805.781 485.328 m 807.969 483.141 l S
+806.875 484.234 m 818.863 479.07 l S
+817.77 477.977 m 819.957 480.164 l S
+817.77 480.164 m 819.957 477.977 l S
+818.863 479.07 m 830.848 473.934 l S
+829.754 472.84 m 831.945 475.031 l S
+829.754 475.031 m 831.945 472.84 l S
+830.848 473.934 m 842.836 468.883 l S
+841.742 467.789 m 843.93 469.977 l S
+841.742 469.977 m 843.93 467.789 l S
+842.836 468.883 m 854.824 463.961 l S
+853.73 462.867 m 855.918 465.055 l S
+853.73 465.055 m 855.918 462.867 l S
+854.824 463.961 m 866.812 459.219 l S
+865.715 458.125 m 867.906 460.312 l S
+865.715 460.312 m 867.906 458.125 l S
+866.812 459.219 m 878.797 454.707 l S
+877.703 453.613 m 879.891 455.801 l S
+877.703 455.801 m 879.891 453.613 l S
+878.797 454.707 m 890.785 450.469 l S
+889.691 449.375 m 891.879 451.562 l S
+889.691 451.562 m 891.879 449.375 l S
+890.785 450.469 m 902.773 446.547 l S
+901.676 445.453 m 903.867 447.641 l S
+901.676 447.641 m 903.867 445.453 l S
+902.773 446.547 m 914.758 442.98 l S
+913.664 441.887 m 915.852 444.074 l S
+913.664 444.074 m 915.852 441.887 l S
+914.758 442.98 m 926.746 439.805 l S
+925.652 438.711 m 927.84 440.898 l S
+925.652 440.898 m 927.84 438.711 l S
+926.746 439.805 m 938.734 437.051 l S
+937.637 435.957 m 939.828 438.145 l S
+937.637 438.145 m 939.828 435.957 l S
+938.734 437.051 m 950.719 434.746 l S
+949.625 433.652 m 951.812 435.84 l S
+949.625 435.84 m 951.812 433.652 l S
+950.719 434.746 m 962.707 432.914 l S
+961.613 431.82 m 963.801 434.008 l S
+961.613 434.008 m 963.801 431.82 l S
+962.707 432.914 m 974.695 431.574 l S
+973.602 430.48 m 975.789 432.668 l S
+973.602 432.668 m 975.789 430.48 l S
+974.695 431.574 m 986.68 430.738 l S
+985.586 429.645 m 987.777 431.832 l S
+985.586 431.832 m 987.777 429.645 l S
+986.68 430.738 m 998.668 430.418 l S
+997.574 429.324 m 999.762 431.512 l S
+997.574 431.512 m 999.762 429.324 l S
+998.668 430.418 m 1010.656 430.613 l S
+1009.562 429.516 m 1011.75 431.707 l S
+1009.562 431.707 m 1011.75 429.516 l S
+1010.656 430.613 m 1022.641 431.32 l S
+1021.547 430.227 m 1023.738 432.414 l S
+1021.547 432.414 m 1023.738 430.227 l S
+1022.641 431.32 m 1034.629 432.535 l S
+1033.535 431.441 m 1034.629 432.535 l S
+1033.535 433.629 m 1034.629 432.535 l S
+0 1 1 rg
+447.266 520.648 m 448.359 521.742 l S
+447.266 520.648 m 448.359 519.555 l S
+447.266 520.648 m 459.25 520.07 l S
+458.156 518.973 m 460.344 521.164 l S
+458.156 521.164 m 460.344 518.973 l S
+459.25 520.07 m 471.238 519.109 l S
+470.145 518.016 m 472.332 520.203 l S
+470.145 520.203 m 472.332 518.016 l S
+471.238 519.109 m 483.227 517.781 l S
+482.129 516.688 m 484.32 518.875 l S
+482.129 518.875 m 484.32 516.688 l S
+483.227 517.781 m 495.211 516.098 l S
+494.117 515.004 m 496.305 517.191 l S
+494.117 517.191 m 496.305 515.004 l S
+495.211 516.098 m 507.199 514.07 l S
+506.105 512.977 m 508.293 515.168 l S
+506.105 515.168 m 508.293 512.977 l S
+507.199 514.07 m 519.188 511.727 l S
+518.094 510.633 m 520.281 512.82 l S
+518.094 512.82 m 520.281 510.633 l S
+519.188 511.727 m 531.172 509.086 l S
+530.078 507.992 m 532.266 510.18 l S
+530.078 510.18 m 532.266 507.992 l S
+531.172 509.086 m 543.16 506.176 l S
+542.066 505.082 m 544.254 507.27 l S
+542.066 507.27 m 544.254 505.082 l S
+543.16 506.176 m 555.148 503.027 l S
+554.055 501.93 m 556.242 504.121 l S
+554.055 504.121 m 556.242 501.93 l S
+555.148 503.027 m 567.133 499.664 l S
+566.039 498.57 m 568.23 500.758 l S
+566.039 500.758 m 568.23 498.57 l S
+567.133 499.664 m 579.121 496.129 l S
+578.027 495.035 m 580.215 497.223 l S
+578.027 497.223 m 580.215 495.035 l S
+579.121 496.129 m 591.109 492.453 l S
+590.016 491.359 m 592.203 493.547 l S
+590.016 493.547 m 592.203 491.359 l S
+591.109 492.453 m 603.094 488.672 l S
+602 487.578 m 604.191 489.77 l S
+602 489.77 m 604.191 487.578 l S
+603.094 488.672 m 615.082 484.828 l S
+613.988 483.734 m 616.176 485.922 l S
+613.988 485.922 m 616.176 483.734 l S
+615.082 484.828 m 627.07 480.953 l S
+625.977 479.859 m 628.164 482.051 l S
+625.977 482.051 m 628.164 479.859 l S
+627.07 480.953 m 639.059 477.094 l S
+637.961 476 m 640.152 478.188 l S
+637.961 478.188 m 640.152 476 l S
+639.059 477.094 m 651.043 473.281 l S
+649.949 472.188 m 652.137 474.375 l S
+649.949 474.375 m 652.137 472.188 l S
+651.043 473.281 m 663.031 469.559 l S
+661.938 468.465 m 664.125 470.652 l S
+661.938 470.652 m 664.125 468.465 l S
+663.031 469.559 m 675.02 465.957 l S
+673.922 464.863 m 676.113 467.055 l S
+673.922 467.055 m 676.113 464.863 l S
+675.02 465.957 m 687.004 462.52 l S
+685.91 461.426 m 688.098 463.617 l S
+685.91 463.617 m 688.098 461.426 l S
+687.004 462.52 m 698.992 459.277 l S
+697.898 458.184 m 700.086 460.375 l S
+697.898 460.375 m 700.086 458.184 l S
+698.992 459.277 m 710.98 456.266 l S
+709.883 455.172 m 712.074 457.359 l S
+709.883 457.359 m 712.074 455.172 l S
+710.98 456.266 m 722.965 453.508 l S
+721.871 452.414 m 724.059 454.602 l S
+721.871 454.602 m 724.059 452.414 l S
+722.965 453.508 m 734.953 451.039 l S
+733.859 449.945 m 736.047 452.133 l S
+733.859 452.133 m 736.047 449.945 l S
+734.953 451.039 m 746.941 448.879 l S
+745.848 447.785 m 748.035 449.973 l S
+745.848 449.973 m 748.035 447.785 l S
+746.941 448.879 m 758.926 447.051 l S
+757.832 445.957 m 760.023 448.145 l S
+757.832 448.145 m 760.023 445.957 l S
+758.926 447.051 m 770.914 445.57 l S
+769.82 444.477 m 772.008 446.664 l S
+769.82 446.664 m 772.008 444.477 l S
+770.914 445.57 m 782.902 444.457 l S
+781.809 443.363 m 783.996 445.551 l S
+781.809 445.551 m 783.996 443.363 l S
+782.902 444.457 m 794.887 443.719 l S
+793.793 442.625 m 795.984 444.812 l S
+793.793 444.812 m 795.984 442.625 l S
+794.887 443.719 m 806.875 443.367 l S
+805.781 442.27 m 807.969 444.461 l S
+805.781 444.461 m 807.969 442.27 l S
+806.875 443.367 m 818.863 443.398 l S
+817.77 442.305 m 819.957 444.492 l S
+817.77 444.492 m 819.957 442.305 l S
+818.863 443.398 m 830.848 443.816 l S
+829.754 442.723 m 831.945 444.91 l S
+829.754 444.91 m 831.945 442.723 l S
+830.848 443.816 m 842.836 444.617 l S
+841.742 443.523 m 843.93 445.711 l S
+841.742 445.711 m 843.93 443.523 l S
+842.836 444.617 m 854.824 445.793 l S
+853.73 444.699 m 855.918 446.887 l S
+853.73 446.887 m 855.918 444.699 l S
+854.824 445.793 m 866.812 447.332 l S
+865.715 446.238 m 867.906 448.426 l S
+865.715 448.426 m 867.906 446.238 l S
+866.812 447.332 m 878.797 449.219 l S
+877.703 448.125 m 879.891 450.312 l S
+877.703 450.312 m 879.891 448.125 l S
+878.797 449.219 m 890.785 451.434 l S
+889.691 450.34 m 891.879 452.527 l S
+889.691 452.527 m 891.879 450.34 l S
+890.785 451.434 m 902.773 453.953 l S
+901.676 452.859 m 903.867 455.047 l S
+901.676 455.047 m 903.867 452.859 l S
+902.773 453.953 m 914.758 456.754 l S
+913.664 455.66 m 915.852 457.848 l S
+913.664 457.848 m 915.852 455.66 l S
+914.758 456.754 m 926.746 459.809 l S
+925.652 458.715 m 927.84 460.902 l S
+925.652 460.902 m 927.84 458.715 l S
+926.746 459.809 m 938.734 463.086 l S
+937.637 461.992 m 939.828 464.18 l S
+937.637 464.18 m 939.828 461.992 l S
+938.734 463.086 m 950.719 466.555 l S
+949.625 465.461 m 951.812 467.648 l S
+949.625 467.648 m 951.812 465.461 l S
+950.719 466.555 m 962.707 470.176 l S
+961.613 469.082 m 963.801 471.27 l S
+961.613 471.27 m 963.801 469.082 l S
+962.707 470.176 m 974.695 473.918 l S
+973.602 472.824 m 975.789 475.012 l S
+973.602 475.012 m 975.789 472.824 l S
+974.695 473.918 m 986.68 477.738 l S
+985.586 476.645 m 987.777 478.836 l S
+985.586 478.836 m 987.777 476.645 l S
+986.68 477.738 m 998.668 481.605 l S
+997.574 480.512 m 999.762 482.699 l S
+997.574 482.699 m 999.762 480.512 l S
+998.668 481.605 m 1010.656 485.477 l S
+1009.562 484.383 m 1011.75 486.57 l S
+1009.562 486.57 m 1011.75 484.383 l S
+1010.656 485.477 m 1022.641 489.316 l S
+1021.547 488.219 m 1023.738 490.41 l S
+1021.547 490.41 m 1023.738 488.219 l S
+1022.641 489.316 m 1034.629 493.078 l S
+1033.535 491.984 m 1034.629 493.078 l S
+1033.535 494.176 m 1034.629 493.078 l S
+1 0 1 rg
+447.266 465.141 m 448.359 466.234 l S
+447.266 465.141 m 448.359 464.047 l S
+447.266 465.141 m 458.848 540.219 l S
+459.703 540.219 m 471.238 473.539 l S
+470.145 472.441 m 472.332 474.633 l S
+470.145 474.633 m 472.332 472.441 l S
+471.238 473.539 m 483.078 540.219 l S
+482.129 539.961 m 482.391 540.219 l S
+484.062 540.219 m 484.32 539.961 l S
+483.316 540.219 m 495.211 429.223 l S
+494.117 428.129 m 496.305 430.316 l S
+494.117 430.316 m 496.305 428.129 l S
+495.211 429.223 m 506.609 540.219 l S
+508.211 540.219 m 519.188 477.801 l S
+518.094 476.707 m 520.281 478.898 l S
+518.094 478.898 m 520.281 476.707 l S
+519.188 477.801 m 531.172 417.926 l S
+530.078 416.832 m 532.266 419.02 l S
+530.078 419.02 m 532.266 416.832 l S
+531.172 417.926 m 543.16 446.949 l S
+542.066 445.852 m 544.254 448.043 l S
+542.066 448.043 m 544.254 445.852 l S
+543.16 446.949 m 555.148 503.254 l S
+554.055 502.16 m 556.242 504.348 l S
+554.055 504.348 m 556.242 502.16 l S
+555.148 503.254 m 567.133 539.398 l S
+566.039 538.305 m 567.953 540.219 l S
+566.312 540.219 m 568.23 538.305 l S
+567.133 539.398 m 568.664 540.219 l S
+583.668 540.219 m 591.109 531.023 l S
+590.016 529.93 m 592.203 532.117 l S
+590.016 532.117 m 592.203 529.93 l S
+591.109 531.023 m 603.094 506.254 l S
+602 505.16 m 604.191 507.348 l S
+602 507.348 m 604.191 505.16 l S
+603.094 506.254 m 615.082 479.941 l S
+613.988 478.848 m 616.176 481.039 l S
+613.988 481.039 m 616.176 478.848 l S
+615.082 479.941 m 627.07 456.883 l S
+625.977 455.789 m 628.164 457.977 l S
+625.977 457.977 m 628.164 455.789 l S
+627.07 456.883 m 639.059 439.125 l S
+637.961 438.031 m 640.152 440.223 l S
+637.961 440.223 m 640.152 438.031 l S
+639.059 439.125 m 651.043 427.047 l S
+649.949 425.953 m 652.137 428.141 l S
+649.949 428.141 m 652.137 425.953 l S
+651.043 427.047 m 663.031 420.148 l S
+661.938 419.055 m 664.125 421.242 l S
+661.938 421.242 m 664.125 419.055 l S
+663.031 420.148 m 675.02 417.574 l S
+673.922 416.48 m 676.113 418.668 l S
+673.922 418.668 m 676.113 416.48 l S
+675.02 417.574 m 687.004 418.395 l S
+685.91 417.301 m 688.098 419.488 l S
+685.91 419.488 m 688.098 417.301 l S
+687.004 418.395 m 698.992 421.742 l S
+697.898 420.645 m 700.086 422.836 l S
+697.898 422.836 m 700.086 420.645 l S
+698.992 421.742 m 710.98 426.879 l S
+709.883 425.781 m 712.074 427.973 l S
+709.883 427.973 m 712.074 425.781 l S
+710.98 426.879 m 722.965 433.203 l S
+721.871 432.109 m 724.059 434.297 l S
+721.871 434.297 m 724.059 432.109 l S
+722.965 433.203 m 734.953 440.25 l S
+733.859 439.156 m 736.047 441.344 l S
+733.859 441.344 m 736.047 439.156 l S
+734.953 440.25 m 746.941 447.66 l S
+745.848 446.566 m 748.035 448.754 l S
+745.848 448.754 m 748.035 446.566 l S
+746.941 447.66 m 758.926 455.168 l S
+757.832 454.074 m 760.023 456.266 l S
+757.832 456.266 m 760.023 454.074 l S
+758.926 455.168 m 770.914 462.586 l S
+769.82 461.492 m 772.008 463.68 l S
+769.82 463.68 m 772.008 461.492 l S
+770.914 462.586 m 782.902 469.777 l S
+781.809 468.684 m 783.996 470.871 l S
+781.809 470.871 m 783.996 468.684 l S
+782.902 469.777 m 794.887 476.652 l S
+793.793 475.559 m 795.984 477.746 l S
+793.793 477.746 m 795.984 475.559 l S
+794.887 476.652 m 806.875 483.156 l S
+805.781 482.062 m 807.969 484.254 l S
+805.781 484.254 m 807.969 482.062 l S
+806.875 483.156 m 818.863 489.262 l S
+817.77 488.164 m 819.957 490.355 l S
+817.77 490.355 m 819.957 488.164 l S
+818.863 489.262 m 830.848 494.945 l S
+829.754 493.852 m 831.945 496.039 l S
+829.754 496.039 m 831.945 493.852 l S
+830.848 494.945 m 842.836 500.211 l S
+841.742 499.117 m 843.93 501.309 l S
+841.742 501.309 m 843.93 499.117 l S
+842.836 500.211 m 854.824 505.07 l S
+853.73 503.977 m 855.918 506.164 l S
+853.73 506.164 m 855.918 503.977 l S
+854.824 505.07 m 866.812 509.535 l S
+865.715 508.438 m 867.906 510.629 l S
+865.715 510.629 m 867.906 508.438 l S
+866.812 509.535 m 878.797 513.617 l S
+877.703 512.523 m 879.891 514.715 l S
+877.703 514.715 m 879.891 512.523 l S
+878.797 513.617 m 890.785 517.348 l S
+889.691 516.254 m 891.879 518.441 l S
+889.691 518.441 m 891.879 516.254 l S
+890.785 517.348 m 902.773 520.742 l S
+901.676 519.648 m 903.867 521.836 l S
+901.676 521.836 m 903.867 519.648 l S
+902.773 520.742 m 914.758 523.824 l S
+913.664 522.73 m 915.852 524.918 l S
+913.664 524.918 m 915.852 522.73 l S
+914.758 523.824 m 926.746 526.613 l S
+925.652 525.52 m 927.84 527.707 l S
+925.652 527.707 m 927.84 525.52 l S
+926.746 526.613 m 938.734 529.137 l S
+937.637 528.043 m 939.828 530.23 l S
+937.637 530.23 m 939.828 528.043 l S
+938.734 529.137 m 950.719 531.406 l S
+949.625 530.312 m 951.812 532.504 l S
+949.625 532.504 m 951.812 530.312 l S
+950.719 531.406 m 962.707 533.449 l S
+961.613 532.355 m 963.801 534.543 l S
+961.613 534.543 m 963.801 532.355 l S
+962.707 533.449 m 974.695 535.281 l S
+973.602 534.188 m 975.789 536.375 l S
+973.602 536.375 m 975.789 534.188 l S
+974.695 535.281 m 986.68 536.918 l S
+985.586 535.824 m 987.777 538.012 l S
+985.586 538.012 m 987.777 535.824 l S
+986.68 536.918 m 998.668 538.379 l S
+997.574 537.285 m 999.762 539.473 l S
+997.574 539.473 m 999.762 537.285 l S
+998.668 538.379 m 1010.656 539.672 l S
+1009.562 538.578 m 1011.199 540.219 l S
+1010.109 540.219 m 1011.75 538.578 l S
+1010.656 539.672 m 1016.359 540.219 l S
+1021.547 539.723 m 1022.043 540.219 l S
+1023.242 540.219 m 1023.738 539.723 l S
+0 g
+447.266 482.285 m 447.266 484.473 l S
+447.266 483.379 m 448.359 483.379 l S
+447.266 483.379 m 459.25 484.672 l S
+459.25 483.574 m 459.25 485.766 l S
+458.156 484.672 m 460.344 484.672 l S
+459.25 484.672 m 471.238 485.961 l S
+471.238 484.867 m 471.238 487.055 l S
+470.145 485.961 m 472.332 485.961 l S
+471.238 485.961 m 483.227 487.254 l S
+483.227 486.16 m 483.227 488.348 l S
+482.129 487.254 m 484.32 487.254 l S
+483.227 487.254 m 495.211 488.547 l S
+495.211 487.453 m 495.211 489.641 l S
+494.117 488.547 m 496.305 488.547 l S
+495.211 488.547 m 507.199 489.836 l S
+507.199 488.742 m 507.199 490.93 l S
+506.105 489.836 m 508.293 489.836 l S
+507.199 489.836 m 519.188 491.129 l S
+519.188 490.035 m 519.188 492.223 l S
+518.094 491.129 m 520.281 491.129 l S
+519.188 491.129 m 531.172 492.422 l S
+531.172 491.328 m 531.172 493.516 l S
+530.078 492.422 m 532.266 492.422 l S
+531.172 492.422 m 543.16 493.711 l S
+543.16 492.617 m 543.16 494.809 l S
+542.066 493.711 m 544.254 493.711 l S
+543.16 493.711 m 555.148 495.004 l S
+555.148 493.91 m 555.148 496.098 l S
+554.055 495.004 m 556.242 495.004 l S
+555.148 495.004 m 567.133 496.297 l S
+567.133 495.203 m 567.133 497.391 l S
+566.039 496.297 m 568.23 496.297 l S
+567.133 496.297 m 579.121 497.59 l S
+579.121 496.492 m 579.121 498.684 l S
+578.027 497.59 m 580.215 497.59 l S
+579.121 497.59 m 591.109 498.879 l S
+591.109 497.785 m 591.109 499.973 l S
+590.016 498.879 m 592.203 498.879 l S
+591.109 498.879 m 603.094 500.172 l S
+603.094 499.078 m 603.094 501.266 l S
+602 500.172 m 604.191 500.172 l S
+603.094 500.172 m 615.082 501.465 l S
+615.082 500.371 m 615.082 502.559 l S
+613.988 501.465 m 616.176 501.465 l S
+615.082 501.465 m 627.07 502.754 l S
+627.07 501.66 m 627.07 503.852 l S
+625.977 502.754 m 628.164 502.754 l S
+627.07 502.754 m 639.059 504.047 l S
+639.059 502.953 m 639.059 505.141 l S
+637.961 504.047 m 640.152 504.047 l S
+639.059 504.047 m 651.043 505.34 l S
+651.043 504.246 m 651.043 506.434 l S
+649.949 505.34 m 652.137 505.34 l S
+651.043 505.34 m 663.031 506.633 l S
+663.031 505.535 m 663.031 507.727 l S
+661.938 506.633 m 664.125 506.633 l S
+663.031 506.633 m 675.02 507.922 l S
+675.02 506.828 m 675.02 509.016 l S
+673.922 507.922 m 676.113 507.922 l S
+675.02 507.922 m 687.004 509.215 l S
+687.004 508.121 m 687.004 510.309 l S
+685.91 509.215 m 688.098 509.215 l S
+687.004 509.215 m 698.992 510.508 l S
+698.992 509.414 m 698.992 511.602 l S
+697.898 510.508 m 700.086 510.508 l S
+698.992 510.508 m 710.98 511.797 l S
+710.98 510.703 m 710.98 512.895 l S
+709.883 511.797 m 712.074 511.797 l S
+710.98 511.797 m 722.965 513.09 l S
+722.965 511.996 m 722.965 514.184 l S
+721.871 513.09 m 724.059 513.09 l S
+722.965 513.09 m 734.953 514.383 l S
+734.953 513.289 m 734.953 515.477 l S
+733.859 514.383 m 736.047 514.383 l S
+734.953 514.383 m 746.941 515.672 l S
+746.941 514.578 m 746.941 516.77 l S
+745.848 515.672 m 748.035 515.672 l S
+746.941 515.672 m 758.926 516.965 l S
+758.926 515.871 m 758.926 518.059 l S
+757.832 516.965 m 760.023 516.965 l S
+758.926 516.965 m 770.914 518.258 l S
+770.914 517.164 m 770.914 519.352 l S
+769.82 518.258 m 772.008 518.258 l S
+770.914 518.258 m 782.902 519.551 l S
+782.902 518.453 m 782.902 520.645 l S
+781.809 519.551 m 783.996 519.551 l S
+782.902 519.551 m 794.887 520.84 l S
+794.887 519.746 m 794.887 521.934 l S
+793.793 520.84 m 795.984 520.84 l S
+794.887 520.84 m 806.875 522.133 l S
+806.875 521.039 m 806.875 523.227 l S
+805.781 522.133 m 807.969 522.133 l S
+806.875 522.133 m 818.863 523.426 l S
+818.863 522.332 m 818.863 524.52 l S
+817.77 523.426 m 819.957 523.426 l S
+818.863 523.426 m 830.848 524.715 l S
+830.848 523.621 m 830.848 525.812 l S
+829.754 524.715 m 831.945 524.715 l S
+830.848 524.715 m 842.836 526.008 l S
+842.836 524.914 m 842.836 527.102 l S
+841.742 526.008 m 843.93 526.008 l S
+842.836 526.008 m 854.824 527.301 l S
+854.824 526.207 m 854.824 528.395 l S
+853.73 527.301 m 855.918 527.301 l S
+854.824 527.301 m 866.812 528.594 l S
+866.812 527.496 m 866.812 529.688 l S
+865.715 528.594 m 867.906 528.594 l S
+866.812 528.594 m 878.797 529.883 l S
+878.797 528.789 m 878.797 530.977 l S
+877.703 529.883 m 879.891 529.883 l S
+878.797 529.883 m 890.785 531.176 l S
+890.785 530.082 m 890.785 532.27 l S
+889.691 531.176 m 891.879 531.176 l S
+890.785 531.176 m 902.773 532.469 l S
+902.773 531.375 m 902.773 533.562 l S
+901.676 532.469 m 903.867 532.469 l S
+902.773 532.469 m 914.758 533.758 l S
+914.758 532.664 m 914.758 534.855 l S
+913.664 533.758 m 915.852 533.758 l S
+914.758 533.758 m 926.746 535.051 l S
+926.746 533.957 m 926.746 536.145 l S
+925.652 535.051 m 927.84 535.051 l S
+926.746 535.051 m 938.734 536.344 l S
+938.734 535.25 m 938.734 537.438 l S
+937.637 536.344 m 939.828 536.344 l S
+938.734 536.344 m 950.719 537.633 l S
+950.719 536.539 m 950.719 538.73 l S
+949.625 537.633 m 951.812 537.633 l S
+950.719 537.633 m 962.707 538.926 l S
+962.707 537.832 m 962.707 540.02 l S
+961.613 538.926 m 963.801 538.926 l S
+962.707 538.926 m 974.695 540.219 l S
+974.695 539.125 m 974.695 540.219 l S
+973.602 540.219 m 975.789 540.219 l S
+1 0 0 rg
+465.246 540.219 m 471.238 538.926 l S
+471.238 537.832 m 471.238 540.02 l S
+470.145 538.926 m 472.332 538.926 l S
+471.238 538.926 m 483.227 536.344 l S
+483.227 535.25 m 483.227 537.438 l S
+482.129 536.344 m 484.32 536.344 l S
+483.227 536.344 m 495.211 533.758 l S
+495.211 532.664 m 495.211 534.855 l S
+494.117 533.758 m 496.305 533.758 l S
+495.211 533.758 m 507.199 531.176 l S
+507.199 530.082 m 507.199 532.27 l S
+506.105 531.176 m 508.293 531.176 l S
+507.199 531.176 m 519.188 528.594 l S
+519.188 527.496 m 519.188 529.688 l S
+518.094 528.594 m 520.281 528.594 l S
+519.188 528.594 m 531.172 526.008 l S
+531.172 524.914 m 531.172 527.102 l S
+530.078 526.008 m 532.266 526.008 l S
+531.172 526.008 m 543.16 523.426 l S
+543.16 522.332 m 543.16 524.52 l S
+542.066 523.426 m 544.254 523.426 l S
+543.16 523.426 m 555.148 520.84 l S
+555.148 519.746 m 555.148 521.934 l S
+554.055 520.84 m 556.242 520.84 l S
+555.148 520.84 m 567.133 518.258 l S
+567.133 517.164 m 567.133 519.352 l S
+566.039 518.258 m 568.23 518.258 l S
+567.133 518.258 m 579.121 515.672 l S
+579.121 514.578 m 579.121 516.77 l S
+578.027 515.672 m 580.215 515.672 l S
+579.121 515.672 m 591.109 513.09 l S
+591.109 511.996 m 591.109 514.184 l S
+590.016 513.09 m 592.203 513.09 l S
+591.109 513.09 m 603.094 510.508 l S
+603.094 509.414 m 603.094 511.602 l S
+602 510.508 m 604.191 510.508 l S
+603.094 510.508 m 615.082 507.922 l S
+615.082 506.828 m 615.082 509.016 l S
+613.988 507.922 m 616.176 507.922 l S
+615.082 507.922 m 627.07 505.34 l S
+627.07 504.246 m 627.07 506.434 l S
+625.977 505.34 m 628.164 505.34 l S
+627.07 505.34 m 639.059 502.754 l S
+639.059 501.66 m 639.059 503.852 l S
+637.961 502.754 m 640.152 502.754 l S
+639.059 502.754 m 651.043 500.172 l S
+651.043 499.078 m 651.043 501.266 l S
+649.949 500.172 m 652.137 500.172 l S
+651.043 500.172 m 663.031 497.59 l S
+663.031 496.492 m 663.031 498.684 l S
+661.938 497.59 m 664.125 497.59 l S
+663.031 497.59 m 675.02 495.004 l S
+675.02 493.91 m 675.02 496.098 l S
+673.922 495.004 m 676.113 495.004 l S
+675.02 495.004 m 687.004 492.422 l S
+687.004 491.328 m 687.004 493.516 l S
+685.91 492.422 m 688.098 492.422 l S
+687.004 492.422 m 698.992 489.836 l S
+698.992 488.742 m 698.992 490.93 l S
+697.898 489.836 m 700.086 489.836 l S
+698.992 489.836 m 710.98 487.254 l S
+710.98 486.16 m 710.98 488.348 l S
+709.883 487.254 m 712.074 487.254 l S
+710.98 487.254 m 722.965 484.672 l S
+722.965 483.574 m 722.965 485.766 l S
+721.871 484.672 m 724.059 484.672 l S
+722.965 484.672 m 734.953 482.086 l S
+734.953 480.992 m 734.953 483.18 l S
+733.859 482.086 m 736.047 482.086 l S
+734.953 482.086 m 746.941 479.504 l S
+746.941 478.41 m 746.941 480.598 l S
+745.848 479.504 m 748.035 479.504 l S
+746.941 479.504 m 758.926 476.918 l S
+758.926 475.824 m 758.926 478.012 l S
+757.832 476.918 m 760.023 476.918 l S
+758.926 476.918 m 770.914 474.336 l S
+770.914 473.242 m 770.914 475.43 l S
+769.82 474.336 m 772.008 474.336 l S
+770.914 474.336 m 782.902 471.75 l S
+782.902 470.656 m 782.902 472.848 l S
+781.809 471.75 m 783.996 471.75 l S
+782.902 471.75 m 794.887 469.168 l S
+794.887 468.074 m 794.887 470.262 l S
+793.793 469.168 m 795.984 469.168 l S
+794.887 469.168 m 806.875 466.586 l S
+806.875 465.488 m 806.875 467.68 l S
+805.781 466.586 m 807.969 466.586 l S
+806.875 466.586 m 818.863 464 l S
+818.863 462.906 m 818.863 465.094 l S
+817.77 464 m 819.957 464 l S
+818.863 464 m 830.848 461.418 l S
+830.848 460.324 m 830.848 462.512 l S
+829.754 461.418 m 831.945 461.418 l S
+830.848 461.418 m 842.836 458.832 l S
+842.836 457.738 m 842.836 459.93 l S
+841.742 458.832 m 843.93 458.832 l S
+842.836 458.832 m 854.824 456.25 l S
+854.824 455.156 m 854.824 457.344 l S
+853.73 456.25 m 855.918 456.25 l S
+854.824 456.25 m 866.812 453.668 l S
+866.812 452.57 m 866.812 454.762 l S
+865.715 453.668 m 867.906 453.668 l S
+866.812 453.668 m 878.797 451.082 l S
+878.797 449.988 m 878.797 452.176 l S
+877.703 451.082 m 879.891 451.082 l S
+878.797 451.082 m 890.785 448.5 l S
+890.785 447.406 m 890.785 449.594 l S
+889.691 448.5 m 891.879 448.5 l S
+890.785 448.5 m 902.773 445.914 l S
+902.773 444.82 m 902.773 447.008 l S
+901.676 445.914 m 903.867 445.914 l S
+902.773 445.914 m 914.758 443.332 l S
+914.758 442.238 m 914.758 444.426 l S
+913.664 443.332 m 915.852 443.332 l S
+914.758 443.332 m 926.746 440.75 l S
+926.746 439.652 m 926.746 441.844 l S
+925.652 440.75 m 927.84 440.75 l S
+926.746 440.75 m 938.734 438.164 l S
+938.734 437.07 m 938.734 439.258 l S
+937.637 438.164 m 939.828 438.164 l S
+938.734 438.164 m 950.719 435.582 l S
+950.719 434.488 m 950.719 436.676 l S
+949.625 435.582 m 951.812 435.582 l S
+950.719 435.582 m 962.707 432.996 l S
+962.707 431.902 m 962.707 434.09 l S
+961.613 432.996 m 963.801 432.996 l S
+962.707 432.996 m 974.695 430.414 l S
+974.695 429.32 m 974.695 431.508 l S
+973.602 430.414 m 975.789 430.414 l S
+974.695 430.414 m 986.68 427.828 l S
+986.68 426.734 m 986.68 428.926 l S
+985.586 427.828 m 987.777 427.828 l S
+986.68 427.828 m 998.668 425.246 l S
+998.668 424.152 m 998.668 426.34 l S
+997.574 425.246 m 999.762 425.246 l S
+998.668 425.246 m 1010.656 422.664 l S
+1010.656 421.566 m 1010.656 423.758 l S
+1009.562 422.664 m 1011.75 422.664 l S
+1010.656 422.664 m 1022.641 420.078 l S
+1022.641 418.984 m 1022.641 421.172 l S
+1021.547 420.078 m 1023.738 420.078 l S
+1022.641 420.078 m 1034.629 417.496 l S
+1034.629 416.402 m 1034.629 418.59 l S
+1033.535 417.496 m 1034.629 417.496 l S
+0 1 0 rg
+447.266 449.215 m 447.266 451.402 l S
+447.266 450.309 m 448.359 450.309 l S
+447.266 450.309 m 459.25 450.824 l S
+459.25 449.73 m 459.25 451.918 l S
+458.156 450.824 m 460.344 450.824 l S
+459.25 450.824 m 471.238 451.34 l S
+471.238 450.246 m 471.238 452.434 l S
+470.145 451.34 m 472.332 451.34 l S
+471.238 451.34 m 483.227 451.859 l S
+483.227 450.762 m 483.227 452.953 l S
+482.129 451.859 m 484.32 451.859 l S
+483.227 451.859 m 495.211 452.375 l S
+495.211 451.281 m 495.211 453.469 l S
+494.117 452.375 m 496.305 452.375 l S
+495.211 452.375 m 507.199 452.891 l S
+507.199 451.797 m 507.199 453.984 l S
+506.105 452.891 m 508.293 452.891 l S
+507.199 452.891 m 519.188 453.406 l S
+519.188 452.312 m 519.188 454.504 l S
+518.094 453.406 m 520.281 453.406 l S
+519.188 453.406 m 531.172 453.926 l S
+531.172 452.832 m 531.172 455.02 l S
+530.078 453.926 m 532.266 453.926 l S
+531.172 453.926 m 543.16 454.441 l S
+543.16 453.348 m 543.16 455.535 l S
+542.066 454.441 m 544.254 454.441 l S
+543.16 454.441 m 555.148 454.957 l S
+555.148 453.863 m 555.148 456.051 l S
+554.055 454.957 m 556.242 454.957 l S
+555.148 454.957 m 567.133 455.477 l S
+567.133 454.379 m 567.133 456.57 l S
+566.039 455.477 m 568.23 455.477 l S
+567.133 455.477 m 579.121 455.992 l S
+579.121 454.898 m 579.121 457.086 l S
+578.027 455.992 m 580.215 455.992 l S
+579.121 455.992 m 591.109 456.508 l S
+591.109 455.414 m 591.109 457.602 l S
+590.016 456.508 m 592.203 456.508 l S
+591.109 456.508 m 603.094 457.023 l S
+603.094 455.93 m 603.094 458.121 l S
+602 457.023 m 604.191 457.023 l S
+603.094 457.023 m 615.082 457.543 l S
+615.082 456.449 m 615.082 458.637 l S
+613.988 457.543 m 616.176 457.543 l S
+615.082 457.543 m 627.07 458.059 l S
+627.07 456.965 m 627.07 459.152 l S
+625.977 458.059 m 628.164 458.059 l S
+627.07 458.059 m 639.059 458.574 l S
+639.059 457.48 m 639.059 459.668 l S
+637.961 458.574 m 640.152 458.574 l S
+639.059 458.574 m 651.043 459.094 l S
+651.043 457.996 m 651.043 460.188 l S
+649.949 459.094 m 652.137 459.094 l S
+651.043 459.094 m 663.031 459.609 l S
+663.031 458.516 m 663.031 460.703 l S
+661.938 459.609 m 664.125 459.609 l S
+663.031 459.609 m 675.02 460.125 l S
+675.02 459.031 m 675.02 461.219 l S
+673.922 460.125 m 676.113 460.125 l S
+675.02 460.125 m 687.004 460.641 l S
+687.004 459.547 m 687.004 461.738 l S
+685.91 460.641 m 688.098 460.641 l S
+687.004 460.641 m 698.992 461.16 l S
+698.992 460.066 m 698.992 462.254 l S
+697.898 461.16 m 700.086 461.16 l S
+698.992 461.16 m 710.98 461.676 l S
+710.98 460.582 m 710.98 462.77 l S
+709.883 461.676 m 712.074 461.676 l S
+710.98 461.676 m 722.965 462.191 l S
+722.965 461.098 m 722.965 463.285 l S
+721.871 462.191 m 724.059 462.191 l S
+722.965 462.191 m 734.953 462.711 l S
+734.953 461.613 m 734.953 463.805 l S
+733.859 462.711 m 736.047 462.711 l S
+734.953 462.711 m 746.941 463.227 l S
+746.941 462.133 m 746.941 464.32 l S
+745.848 463.227 m 748.035 463.227 l S
+746.941 463.227 m 758.926 463.742 l S
+758.926 462.648 m 758.926 464.836 l S
+757.832 463.742 m 760.023 463.742 l S
+758.926 463.742 m 770.914 464.258 l S
+770.914 463.164 m 770.914 465.355 l S
+769.82 464.258 m 772.008 464.258 l S
+770.914 464.258 m 782.902 464.777 l S
+782.902 463.684 m 782.902 465.871 l S
+781.809 464.777 m 783.996 464.777 l S
+782.902 464.777 m 794.887 465.293 l S
+794.887 464.199 m 794.887 466.387 l S
+793.793 465.293 m 795.984 465.293 l S
+794.887 465.293 m 806.875 465.809 l S
+806.875 464.715 m 806.875 466.902 l S
+805.781 465.809 m 807.969 465.809 l S
+806.875 465.809 m 818.863 466.324 l S
+818.863 465.23 m 818.863 467.422 l S
+817.77 466.324 m 819.957 466.324 l S
+818.863 466.324 m 830.848 466.844 l S
+830.848 465.75 m 830.848 467.938 l S
+829.754 466.844 m 831.945 466.844 l S
+830.848 466.844 m 842.836 467.359 l S
+842.836 466.266 m 842.836 468.453 l S
+841.742 467.359 m 843.93 467.359 l S
+842.836 467.359 m 854.824 467.875 l S
+854.824 466.781 m 854.824 468.969 l S
+853.73 467.875 m 855.918 467.875 l S
+854.824 467.875 m 866.812 468.395 l S
+866.812 467.297 m 866.812 469.488 l S
+865.715 468.395 m 867.906 468.395 l S
+866.812 468.395 m 878.797 468.91 l S
+878.797 467.816 m 878.797 470.004 l S
+877.703 468.91 m 879.891 468.91 l S
+878.797 468.91 m 890.785 469.426 l S
+890.785 468.332 m 890.785 470.52 l S
+889.691 469.426 m 891.879 469.426 l S
+890.785 469.426 m 902.773 469.941 l S
+902.773 468.848 m 902.773 471.039 l S
+901.676 469.941 m 903.867 469.941 l S
+902.773 469.941 m 914.758 470.461 l S
+914.758 469.367 m 914.758 471.555 l S
+913.664 470.461 m 915.852 470.461 l S
+914.758 470.461 m 926.746 470.977 l S
+926.746 469.883 m 926.746 472.07 l S
+925.652 470.977 m 927.84 470.977 l S
+926.746 470.977 m 938.734 471.492 l S
+938.734 470.398 m 938.734 472.586 l S
+937.637 471.492 m 939.828 471.492 l S
+938.734 471.492 m 950.719 472.012 l S
+950.719 470.914 m 950.719 473.105 l S
+949.625 472.012 m 951.812 472.012 l S
+950.719 472.012 m 962.707 472.527 l S
+962.707 471.434 m 962.707 473.621 l S
+961.613 472.527 m 963.801 472.527 l S
+962.707 472.527 m 974.695 473.043 l S
+974.695 471.949 m 974.695 474.137 l S
+973.602 473.043 m 975.789 473.043 l S
+974.695 473.043 m 986.68 473.559 l S
+986.68 472.465 m 986.68 474.656 l S
+985.586 473.559 m 987.777 473.559 l S
+986.68 473.559 m 998.668 474.078 l S
+998.668 472.984 m 998.668 475.172 l S
+997.574 474.078 m 999.762 474.078 l S
+998.668 474.078 m 1010.656 474.594 l S
+1010.656 473.5 m 1010.656 475.688 l S
+1009.562 474.594 m 1011.75 474.594 l S
+1010.656 474.594 m 1022.641 475.109 l S
+1022.641 474.016 m 1022.641 476.203 l S
+1021.547 475.109 m 1023.738 475.109 l S
+1022.641 475.109 m 1034.629 475.629 l S
+1034.629 474.531 m 1034.629 476.723 l S
+1033.535 475.629 m 1034.629 475.629 l S
+0 0 1 rg
+447.266 436.699 m 447.266 438.891 l S
+447.266 437.797 m 448.359 437.797 l S
+447.266 437.797 m 459.25 439.641 l S
+459.25 438.547 m 459.25 440.734 l S
+458.156 439.641 m 460.344 439.641 l S
+459.25 439.641 m 471.238 441.484 l S
+471.238 440.391 m 471.238 442.582 l S
+470.145 441.484 m 472.332 441.484 l S
+471.238 441.484 m 483.227 443.332 l S
+483.227 442.238 m 483.227 444.426 l S
+482.129 443.332 m 484.32 443.332 l S
+483.227 443.332 m 495.211 445.176 l S
+495.211 444.082 m 495.211 446.273 l S
+494.117 445.176 m 496.305 445.176 l S
+495.211 445.176 m 507.199 447.023 l S
+507.199 445.93 m 507.199 448.117 l S
+506.105 447.023 m 508.293 447.023 l S
+507.199 447.023 m 519.188 448.867 l S
+519.188 447.773 m 519.188 449.961 l S
+518.094 448.867 m 520.281 448.867 l S
+519.188 448.867 m 531.172 450.715 l S
+531.172 449.621 m 531.172 451.809 l S
+530.078 450.715 m 532.266 450.715 l S
+531.172 450.715 m 543.16 452.559 l S
+543.16 451.465 m 543.16 453.652 l S
+542.066 452.559 m 544.254 452.559 l S
+543.16 452.559 m 555.148 454.406 l S
+555.148 453.309 m 555.148 455.5 l S
+554.055 454.406 m 556.242 454.406 l S
+555.148 454.406 m 567.133 456.25 l S
+567.133 455.156 m 567.133 457.344 l S
+566.039 456.25 m 568.23 456.25 l S
+567.133 456.25 m 579.121 458.094 l S
+579.121 457 m 579.121 459.191 l S
+578.027 458.094 m 580.215 458.094 l S
+579.121 458.094 m 591.109 459.941 l S
+591.109 458.848 m 591.109 461.035 l S
+590.016 459.941 m 592.203 459.941 l S
+591.109 459.941 m 603.094 461.785 l S
+603.094 460.691 m 603.094 462.879 l S
+602 461.785 m 604.191 461.785 l S
+603.094 461.785 m 615.082 463.633 l S
+615.082 462.539 m 615.082 464.727 l S
+613.988 463.633 m 616.176 463.633 l S
+615.082 463.633 m 627.07 465.477 l S
+627.07 464.383 m 627.07 466.57 l S
+625.977 465.477 m 628.164 465.477 l S
+627.07 465.477 m 639.059 467.324 l S
+639.059 466.227 m 639.059 468.418 l S
+637.961 467.324 m 640.152 467.324 l S
+639.059 467.324 m 651.043 469.168 l S
+651.043 468.074 m 651.043 470.262 l S
+649.949 469.168 m 652.137 469.168 l S
+651.043 469.168 m 663.031 471.012 l S
+663.031 469.918 m 663.031 472.109 l S
+661.938 471.012 m 664.125 471.012 l S
+663.031 471.012 m 675.02 472.859 l S
+675.02 471.766 m 675.02 473.953 l S
+673.922 472.859 m 676.113 472.859 l S
+675.02 472.859 m 687.004 474.703 l S
+687.004 473.609 m 687.004 475.801 l S
+685.91 474.703 m 688.098 474.703 l S
+687.004 474.703 m 698.992 476.551 l S
+698.992 475.457 m 698.992 477.645 l S
+697.898 476.551 m 700.086 476.551 l S
+698.992 476.551 m 710.98 478.395 l S
+710.98 477.301 m 710.98 479.488 l S
+709.883 478.395 m 712.074 478.395 l S
+710.98 478.395 m 722.965 480.242 l S
+722.965 479.148 m 722.965 481.336 l S
+721.871 480.242 m 724.059 480.242 l S
+722.965 480.242 m 734.953 482.086 l S
+734.953 480.992 m 734.953 483.18 l S
+733.859 482.086 m 736.047 482.086 l S
+734.953 482.086 m 746.941 483.934 l S
+746.941 482.836 m 746.941 485.027 l S
+745.848 483.934 m 748.035 483.934 l S
+746.941 483.934 m 758.926 485.777 l S
+758.926 484.684 m 758.926 486.871 l S
+757.832 485.777 m 760.023 485.777 l S
+758.926 485.777 m 770.914 487.621 l S
+770.914 486.527 m 770.914 488.719 l S
+769.82 487.621 m 772.008 487.621 l S
+770.914 487.621 m 782.902 489.469 l S
+782.902 488.375 m 782.902 490.562 l S
+781.809 489.469 m 783.996 489.469 l S
+782.902 489.469 m 794.887 491.312 l S
+794.887 490.219 m 794.887 492.406 l S
+793.793 491.312 m 795.984 491.312 l S
+794.887 491.312 m 806.875 493.16 l S
+806.875 492.066 m 806.875 494.254 l S
+805.781 493.16 m 807.969 493.16 l S
+806.875 493.16 m 818.863 495.004 l S
+818.863 493.91 m 818.863 496.098 l S
+817.77 495.004 m 819.957 495.004 l S
+818.863 495.004 m 830.848 496.852 l S
+830.848 495.754 m 830.848 497.945 l S
+829.754 496.852 m 831.945 496.852 l S
+830.848 496.852 m 842.836 498.695 l S
+842.836 497.602 m 842.836 499.789 l S
+841.742 498.695 m 843.93 498.695 l S
+842.836 498.695 m 854.824 500.539 l S
+854.824 499.445 m 854.824 501.637 l S
+853.73 500.539 m 855.918 500.539 l S
+854.824 500.539 m 866.812 502.387 l S
+866.812 501.293 m 866.812 503.48 l S
+865.715 502.387 m 867.906 502.387 l S
+866.812 502.387 m 878.797 504.23 l S
+878.797 503.137 m 878.797 505.328 l S
+877.703 504.23 m 879.891 504.23 l S
+878.797 504.23 m 890.785 506.078 l S
+890.785 504.984 m 890.785 507.172 l S
+889.691 506.078 m 891.879 506.078 l S
+890.785 506.078 m 902.773 507.922 l S
+902.773 506.828 m 902.773 509.016 l S
+901.676 507.922 m 903.867 507.922 l S
+902.773 507.922 m 914.758 509.77 l S
+914.758 508.676 m 914.758 510.863 l S
+913.664 509.77 m 915.852 509.77 l S
+914.758 509.77 m 926.746 511.613 l S
+926.746 510.52 m 926.746 512.707 l S
+925.652 511.613 m 927.84 511.613 l S
+926.746 511.613 m 938.734 513.461 l S
+938.734 512.363 m 938.734 514.555 l S
+937.637 513.461 m 939.828 513.461 l S
+938.734 513.461 m 950.719 515.305 l S
+950.719 514.211 m 950.719 516.398 l S
+949.625 515.305 m 951.812 515.305 l S
+950.719 515.305 m 962.707 517.148 l S
+962.707 516.055 m 962.707 518.246 l S
+961.613 517.148 m 963.801 517.148 l S
+962.707 517.148 m 974.695 518.996 l S
+974.695 517.902 m 974.695 520.09 l S
+973.602 518.996 m 975.789 518.996 l S
+974.695 518.996 m 986.68 520.84 l S
+986.68 519.746 m 986.68 521.934 l S
+985.586 520.84 m 987.777 520.84 l S
+986.68 520.84 m 998.668 522.688 l S
+998.668 521.594 m 998.668 523.781 l S
+997.574 522.688 m 999.762 522.688 l S
+998.668 522.688 m 1010.656 524.531 l S
+1010.656 523.438 m 1010.656 525.625 l S
+1009.562 524.531 m 1011.75 524.531 l S
+1010.656 524.531 m 1022.641 526.379 l S
+1022.641 525.281 m 1022.641 527.473 l S
+1021.547 526.379 m 1023.738 526.379 l S
+1022.641 526.379 m 1034.629 528.223 l S
+1034.629 527.129 m 1034.629 529.316 l S
+1033.535 528.223 m 1034.629 528.223 l S
+0 1 1 rg
+447.266 458.848 m 447.266 461.035 l S
+447.266 459.941 m 448.359 459.941 l S
+447.266 459.941 m 459.25 460.863 l S
+459.25 459.77 m 459.25 461.957 l S
+458.156 460.863 m 460.344 460.863 l S
+459.25 460.863 m 471.238 461.785 l S
+471.238 460.691 m 471.238 462.879 l S
+470.145 461.785 m 472.332 461.785 l S
+471.238 461.785 m 483.227 462.711 l S
+483.227 461.613 m 483.227 463.805 l S
+482.129 462.711 m 484.32 462.711 l S
+483.227 462.711 m 495.211 463.633 l S
+495.211 462.539 m 495.211 464.727 l S
+494.117 463.633 m 496.305 463.633 l S
+495.211 463.633 m 507.199 464.555 l S
+507.199 463.461 m 507.199 465.648 l S
+506.105 464.555 m 508.293 464.555 l S
+507.199 464.555 m 519.188 465.477 l S
+519.188 464.383 m 519.188 466.57 l S
+518.094 465.477 m 520.281 465.477 l S
+519.188 465.477 m 531.172 466.398 l S
+531.172 465.305 m 531.172 467.496 l S
+530.078 466.398 m 532.266 466.398 l S
+531.172 466.398 m 543.16 467.324 l S
+543.16 466.227 m 543.16 468.418 l S
+542.066 467.324 m 544.254 467.324 l S
+543.16 467.324 m 555.148 468.246 l S
+555.148 467.152 m 555.148 469.34 l S
+554.055 468.246 m 556.242 468.246 l S
+555.148 468.246 m 567.133 469.168 l S
+567.133 468.074 m 567.133 470.262 l S
+566.039 469.168 m 568.23 469.168 l S
+567.133 469.168 m 579.121 470.09 l S
+579.121 468.996 m 579.121 471.184 l S
+578.027 470.09 m 580.215 470.09 l S
+579.121 470.09 m 591.109 471.012 l S
+591.109 469.918 m 591.109 472.109 l S
+590.016 471.012 m 592.203 471.012 l S
+591.109 471.012 m 603.094 471.938 l S
+603.094 470.844 m 603.094 473.031 l S
+602 471.938 m 604.191 471.938 l S
+603.094 471.938 m 615.082 472.859 l S
+615.082 471.766 m 615.082 473.953 l S
+613.988 472.859 m 616.176 472.859 l S
+615.082 472.859 m 627.07 473.781 l S
+627.07 472.688 m 627.07 474.875 l S
+625.977 473.781 m 628.164 473.781 l S
+627.07 473.781 m 639.059 474.703 l S
+639.059 473.609 m 639.059 475.801 l S
+637.961 474.703 m 640.152 474.703 l S
+639.059 474.703 m 651.043 475.629 l S
+651.043 474.531 m 651.043 476.723 l S
+649.949 475.629 m 652.137 475.629 l S
+651.043 475.629 m 663.031 476.551 l S
+663.031 475.457 m 663.031 477.645 l S
+661.938 476.551 m 664.125 476.551 l S
+663.031 476.551 m 675.02 477.473 l S
+675.02 476.379 m 675.02 478.566 l S
+673.922 477.473 m 676.113 477.473 l S
+675.02 477.473 m 687.004 478.395 l S
+687.004 477.301 m 687.004 479.488 l S
+685.91 478.395 m 688.098 478.395 l S
+687.004 478.395 m 698.992 479.316 l S
+698.992 478.223 m 698.992 480.414 l S
+697.898 479.316 m 700.086 479.316 l S
+698.992 479.316 m 710.98 480.242 l S
+710.98 479.148 m 710.98 481.336 l S
+709.883 480.242 m 712.074 480.242 l S
+710.98 480.242 m 722.965 481.164 l S
+722.965 480.07 m 722.965 482.258 l S
+721.871 481.164 m 724.059 481.164 l S
+722.965 481.164 m 734.953 482.086 l S
+734.953 480.992 m 734.953 483.18 l S
+733.859 482.086 m 736.047 482.086 l S
+734.953 482.086 m 746.941 483.008 l S
+746.941 481.914 m 746.941 484.102 l S
+745.848 483.008 m 748.035 483.008 l S
+746.941 483.008 m 758.926 483.934 l S
+758.926 482.836 m 758.926 485.027 l S
+757.832 483.934 m 760.023 483.934 l S
+758.926 483.934 m 770.914 484.855 l S
+770.914 483.762 m 770.914 485.949 l S
+769.82 484.855 m 772.008 484.855 l S
+770.914 484.855 m 782.902 485.777 l S
+782.902 484.684 m 782.902 486.871 l S
+781.809 485.777 m 783.996 485.777 l S
+782.902 485.777 m 794.887 486.699 l S
+794.887 485.605 m 794.887 487.793 l S
+793.793 486.699 m 795.984 486.699 l S
+794.887 486.699 m 806.875 487.621 l S
+806.875 486.527 m 806.875 488.719 l S
+805.781 487.621 m 807.969 487.621 l S
+806.875 487.621 m 818.863 488.547 l S
+818.863 487.453 m 818.863 489.641 l S
+817.77 488.547 m 819.957 488.547 l S
+818.863 488.547 m 830.848 489.469 l S
+830.848 488.375 m 830.848 490.562 l S
+829.754 489.469 m 831.945 489.469 l S
+830.848 489.469 m 842.836 490.391 l S
+842.836 489.297 m 842.836 491.484 l S
+841.742 490.391 m 843.93 490.391 l S
+842.836 490.391 m 854.824 491.312 l S
+854.824 490.219 m 854.824 492.406 l S
+853.73 491.312 m 855.918 491.312 l S
+854.824 491.312 m 866.812 492.238 l S
+866.812 491.141 m 866.812 493.332 l S
+865.715 492.238 m 867.906 492.238 l S
+866.812 492.238 m 878.797 493.16 l S
+878.797 492.066 m 878.797 494.254 l S
+877.703 493.16 m 879.891 493.16 l S
+878.797 493.16 m 890.785 494.082 l S
+890.785 492.988 m 890.785 495.176 l S
+889.691 494.082 m 891.879 494.082 l S
+890.785 494.082 m 902.773 495.004 l S
+902.773 493.91 m 902.773 496.098 l S
+901.676 495.004 m 903.867 495.004 l S
+902.773 495.004 m 914.758 495.926 l S
+914.758 494.832 m 914.758 497.023 l S
+913.664 495.926 m 915.852 495.926 l S
+914.758 495.926 m 926.746 496.852 l S
+926.746 495.754 m 926.746 497.945 l S
+925.652 496.852 m 927.84 496.852 l S
+926.746 496.852 m 938.734 497.773 l S
+938.734 496.68 m 938.734 498.867 l S
+937.637 497.773 m 939.828 497.773 l S
+938.734 497.773 m 950.719 498.695 l S
+950.719 497.602 m 950.719 499.789 l S
+949.625 498.695 m 951.812 498.695 l S
+950.719 498.695 m 962.707 499.617 l S
+962.707 498.523 m 962.707 500.711 l S
+961.613 499.617 m 963.801 499.617 l S
+962.707 499.617 m 974.695 500.539 l S
+974.695 499.445 m 974.695 501.637 l S
+973.602 500.539 m 975.789 500.539 l S
+974.695 500.539 m 986.68 501.465 l S
+986.68 500.371 m 986.68 502.559 l S
+985.586 501.465 m 987.777 501.465 l S
+986.68 501.465 m 998.668 502.387 l S
+998.668 501.293 m 998.668 503.48 l S
+997.574 502.387 m 999.762 502.387 l S
+998.668 502.387 m 1010.656 503.309 l S
+1010.656 502.215 m 1010.656 504.402 l S
+1009.562 503.309 m 1011.75 503.309 l S
+1010.656 503.309 m 1022.641 504.23 l S
+1022.641 503.137 m 1022.641 505.328 l S
+1021.547 504.23 m 1023.738 504.23 l S
+1022.641 504.23 m 1034.629 505.156 l S
+1034.629 504.059 m 1034.629 506.25 l S
+1033.535 505.156 m 1034.629 505.156 l S
+1 0 1 rg
+447.266 492.609 m 447.266 494.797 l S
+447.266 493.703 m 448.359 493.703 l S
+447.266 493.703 m 459.25 498.812 l S
+459.25 497.719 m 459.25 499.906 l S
+458.156 498.812 m 460.344 498.812 l S
+459.25 498.812 m 471.238 503.816 l S
+471.238 502.723 m 471.238 504.91 l S
+470.145 503.816 m 472.332 503.816 l S
+471.238 503.816 m 483.227 508.668 l S
+483.227 507.574 m 483.227 509.762 l S
+482.129 508.668 m 484.32 508.668 l S
+483.227 508.668 m 495.211 513.32 l S
+495.211 512.223 m 495.211 514.414 l S
+494.117 513.32 m 496.305 513.32 l S
+495.211 513.32 m 507.199 517.723 l S
+507.199 516.629 m 507.199 518.816 l S
+506.105 517.723 m 508.293 517.723 l S
+507.199 517.723 m 519.188 521.836 l S
+519.188 520.738 m 519.188 522.93 l S
+518.094 521.836 m 520.281 521.836 l S
+519.188 521.836 m 531.172 525.613 l S
+531.172 524.52 m 531.172 526.707 l S
+530.078 525.613 m 532.266 525.613 l S
+531.172 525.613 m 543.16 529.023 l S
+543.16 527.93 m 543.16 530.117 l S
+542.066 529.023 m 544.254 529.023 l S
+543.16 529.023 m 555.148 532.027 l S
+555.148 530.934 m 555.148 533.121 l S
+554.055 532.027 m 556.242 532.027 l S
+555.148 532.027 m 567.133 534.598 l S
+567.133 533.504 m 567.133 535.691 l S
+566.039 534.598 m 568.23 534.598 l S
+567.133 534.598 m 579.121 536.707 l S
+579.121 535.613 m 579.121 537.801 l S
+578.027 536.707 m 580.215 536.707 l S
+579.121 536.707 m 591.109 538.336 l S
+591.109 537.242 m 591.109 539.43 l S
+590.016 538.336 m 592.203 538.336 l S
+591.109 538.336 m 603.094 539.465 l S
+603.094 538.371 m 603.094 540.219 l S
+602 539.465 m 604.191 539.465 l S
+603.094 539.465 m 615.082 540.09 l S
+615.082 538.996 m 615.082 540.219 l S
+613.988 540.09 m 616.176 540.09 l S
+615.082 540.09 m 627.07 540.195 l S
+627.07 539.102 m 627.07 540.219 l S
+625.977 540.195 m 628.164 540.195 l S
+627.07 540.195 m 639.059 539.789 l S
+639.059 538.691 m 639.059 540.219 l S
+637.961 539.789 m 640.152 539.789 l S
+639.059 539.789 m 651.043 538.867 l S
+651.043 537.773 m 651.043 539.961 l S
+649.949 538.867 m 652.137 538.867 l S
+651.043 538.867 m 663.031 537.445 l S
+663.031 536.348 m 663.031 538.539 l S
+661.938 537.445 m 664.125 537.445 l S
+663.031 537.445 m 675.02 535.531 l S
+675.02 534.438 m 675.02 536.625 l S
+673.922 535.531 m 676.113 535.531 l S
+675.02 535.531 m 687.004 533.148 l S
+687.004 532.055 m 687.004 534.246 l S
+685.91 533.148 m 688.098 533.148 l S
+687.004 533.148 m 698.992 530.324 l S
+698.992 529.227 m 698.992 531.418 l S
+697.898 530.324 m 700.086 530.324 l S
+698.992 530.324 m 710.98 527.078 l S
+710.98 525.984 m 710.98 528.172 l S
+709.883 527.078 m 712.074 527.078 l S
+710.98 527.078 m 722.965 523.449 l S
+722.965 522.355 m 722.965 524.543 l S
+721.871 523.449 m 724.059 523.449 l S
+722.965 523.449 m 734.953 519.469 l S
+734.953 518.375 m 734.953 520.566 l S
+733.859 519.469 m 736.047 519.469 l S
+734.953 519.469 m 746.941 515.184 l S
+746.941 514.09 m 746.941 516.277 l S
+745.848 515.184 m 748.035 515.184 l S
+746.941 515.184 m 758.926 510.629 l S
+758.926 509.535 m 758.926 511.723 l S
+757.832 510.629 m 760.023 510.629 l S
+758.926 510.629 m 770.914 505.855 l S
+770.914 504.762 m 770.914 506.949 l S
+769.82 505.855 m 772.008 505.855 l S
+770.914 505.855 m 782.902 500.906 l S
+782.902 499.812 m 782.902 502.004 l S
+781.809 500.906 m 783.996 500.906 l S
+782.902 500.906 m 794.887 495.836 l S
+794.887 494.742 m 794.887 496.934 l S
+793.793 495.836 m 795.984 495.836 l S
+794.887 495.836 m 806.875 490.695 l S
+806.875 489.602 m 806.875 491.789 l S
+805.781 490.695 m 807.969 490.695 l S
+806.875 490.695 m 818.863 485.527 l S
+818.863 484.434 m 818.863 486.625 l S
+817.77 485.527 m 819.957 485.527 l S
+818.863 485.527 m 830.848 480.395 l S
+830.848 479.301 m 830.848 481.488 l S
+829.754 480.395 m 831.945 480.395 l S
+830.848 480.395 m 842.836 475.34 l S
+842.836 474.246 m 842.836 476.434 l S
+841.742 475.34 m 843.93 475.34 l S
+842.836 475.34 m 854.824 470.418 l S
+854.824 469.324 m 854.824 471.516 l S
+853.73 470.418 m 855.918 470.418 l S
+854.824 470.418 m 866.812 465.68 l S
+866.812 464.586 m 866.812 466.773 l S
+865.715 465.68 m 867.906 465.68 l S
+866.812 465.68 m 878.797 461.168 l S
+878.797 460.074 m 878.797 462.262 l S
+877.703 461.168 m 879.891 461.168 l S
+878.797 461.168 m 890.785 456.93 l S
+890.785 455.836 m 890.785 458.023 l S
+889.691 456.93 m 891.879 456.93 l S
+890.785 456.93 m 902.773 453.008 l S
+902.773 451.914 m 902.773 454.102 l S
+901.676 453.008 m 903.867 453.008 l S
+902.773 453.008 m 914.758 449.438 l S
+914.758 448.344 m 914.758 450.535 l S
+913.664 449.438 m 915.852 449.438 l S
+914.758 449.438 m 926.746 446.262 l S
+926.746 445.168 m 926.746 447.355 l S
+925.652 446.262 m 927.84 446.262 l S
+926.746 446.262 m 938.734 443.508 l S
+938.734 442.414 m 938.734 444.602 l S
+937.637 443.508 m 939.828 443.508 l S
+938.734 443.508 m 950.719 441.203 l S
+950.719 440.109 m 950.719 442.301 l S
+949.625 441.203 m 951.812 441.203 l S
+950.719 441.203 m 962.707 439.375 l S
+962.707 438.277 m 962.707 440.469 l S
+961.613 439.375 m 963.801 439.375 l S
+962.707 439.375 m 974.695 438.035 l S
+974.695 436.938 m 974.695 439.129 l S
+973.602 438.035 m 975.789 438.035 l S
+974.695 438.035 m 986.68 437.199 l S
+986.68 436.105 m 986.68 438.293 l S
+985.586 437.199 m 987.777 437.199 l S
+986.68 437.199 m 998.668 436.875 l S
+998.668 435.781 m 998.668 437.973 l S
+997.574 436.875 m 999.762 436.875 l S
+998.668 436.875 m 1010.656 437.07 l S
+1010.656 435.977 m 1010.656 438.164 l S
+1009.562 437.07 m 1011.75 437.07 l S
+1010.656 437.07 m 1022.641 437.781 l S
+1022.641 436.684 m 1022.641 438.875 l S
+1021.547 437.781 m 1023.738 437.781 l S
+1022.641 437.781 m 1034.629 438.996 l S
+1034.629 437.902 m 1034.629 440.09 l S
+1033.535 438.996 m 1034.629 438.996 l S
+0 g
+447.266 526.012 m 448.359 526.012 l 448.359 528.199 l 447.266 528.199 l
+ S
+447.266 527.105 m 459.25 526.527 l S
+458.156 527.621 2.188 -2.188 re S
+459.25 526.527 m 471.238 525.57 l S
+470.145 526.664 2.188 -2.188 re S
+471.238 525.57 m 483.227 524.242 l S
+482.129 525.336 2.191 -2.188 re S
+483.227 524.242 m 495.211 522.555 l S
+494.117 523.648 2.188 -2.188 re S
+495.211 522.555 m 507.199 520.531 l S
+506.105 521.625 2.188 -2.188 re S
+507.199 520.531 m 519.188 518.188 l S
+518.094 519.281 2.188 -2.188 re S
+519.188 518.188 m 531.172 515.547 l S
+530.078 516.641 2.188 -2.188 re S
+531.172 515.547 m 543.16 512.637 l S
+542.066 513.73 2.188 -2.188 re S
+543.16 512.637 m 555.148 509.484 l S
+554.055 510.578 2.188 -2.188 re S
+555.148 509.484 m 567.133 506.125 l S
+566.039 507.219 2.191 -2.188 re S
+567.133 506.125 m 579.121 502.59 l S
+578.027 503.684 2.188 -2.188 re S
+579.121 502.59 m 591.109 498.914 l S
+590.016 500.008 2.188 -2.191 re S
+591.109 498.914 m 603.094 495.133 l S
+602 496.227 2.191 -2.188 re S
+603.094 495.133 m 615.082 491.285 l S
+613.988 492.383 2.188 -2.191 re S
+615.082 491.285 m 627.07 487.414 l S
+625.977 488.508 2.188 -2.188 re S
+627.07 487.414 m 639.059 483.551 l S
+637.961 484.645 2.191 -2.188 re S
+639.059 483.551 m 651.043 479.742 l S
+649.949 480.836 2.188 -2.191 re S
+651.043 479.742 m 663.031 476.016 l S
+661.938 477.109 2.188 -2.188 re S
+663.031 476.016 m 675.02 472.418 l S
+673.922 473.512 2.191 -2.188 re S
+675.02 472.418 m 687.004 468.98 l S
+685.91 470.074 2.188 -2.188 re S
+687.004 468.98 m 698.992 465.738 l S
+697.898 466.832 2.188 -2.188 re S
+698.992 465.738 m 710.98 462.723 l S
+709.883 463.82 2.191 -2.191 re S
+710.98 462.723 m 722.965 459.969 l S
+721.871 461.062 2.188 -2.188 re S
+722.965 459.969 m 734.953 457.496 l S
+733.859 458.59 2.188 -2.188 re S
+734.953 457.496 m 746.941 455.336 l S
+745.848 456.43 2.188 -2.188 re S
+746.941 455.336 m 758.926 453.508 l S
+757.832 454.602 2.191 -2.188 re S
+758.926 453.508 m 770.914 452.031 l S
+769.82 453.125 2.188 -2.188 re S
+770.914 452.031 m 782.902 450.918 l S
+781.809 452.012 2.188 -2.191 re S
+782.902 450.918 m 794.887 450.18 l S
+793.793 451.273 2.191 -2.188 re S
+794.887 450.18 m 806.875 449.824 l S
+805.781 450.918 2.188 -2.188 re S
+806.875 449.824 m 818.863 449.855 l S
+817.77 450.953 2.188 -2.191 re S
+818.863 449.855 m 830.848 450.277 l S
+829.754 451.371 2.191 -2.188 re S
+830.848 450.277 m 842.836 451.078 l S
+841.742 452.172 2.188 -2.188 re S
+842.836 451.078 m 854.824 452.254 l S
+853.73 453.348 2.188 -2.188 re S
+854.824 452.254 m 866.812 453.793 l S
+865.715 454.887 2.191 -2.188 re S
+866.812 453.793 m 878.797 455.676 l S
+877.703 456.773 2.188 -2.191 re S
+878.797 455.676 m 890.785 457.891 l S
+889.691 458.984 2.188 -2.188 re S
+890.785 457.891 m 902.773 460.414 l S
+901.676 461.508 2.191 -2.191 re S
+902.773 460.414 m 914.758 463.215 l S
+913.664 464.309 2.188 -2.188 re S
+914.758 463.215 m 926.746 466.27 l S
+925.652 467.363 2.188 -2.188 re S
+926.746 466.27 m 938.734 469.547 l S
+937.637 470.641 2.191 -2.188 re S
+938.734 469.547 m 950.719 473.012 l S
+949.625 474.105 2.188 -2.188 re S
+950.719 473.012 m 962.707 476.637 l S
+961.613 477.73 2.188 -2.191 re S
+962.707 476.637 m 974.695 480.375 l S
+973.602 481.469 2.188 -2.188 re S
+974.695 480.375 m 986.68 484.199 l S
+985.586 485.293 2.191 -2.188 re S
+986.68 484.199 m 998.668 488.066 l S
+997.574 489.16 2.188 -2.188 re S
+998.668 488.066 m 1010.656 491.938 l S
+1009.562 493.031 2.188 -2.188 re S
+1010.656 491.938 m 1022.641 495.773 l S
+1021.547 496.867 2.191 -2.188 re S
+1022.641 495.773 m 1034.629 499.539 l S
+1033.535 498.445 m 1034.629 498.445 l S
+1034.629 500.633 m 1033.535 500.633 l 1033.535 498.445 l S
+1 0 0 rg
+447.266 470.504 m 448.359 470.504 l 448.359 472.691 l 447.266 472.691 l
+ S
+447.266 471.598 m 457.852 540.219 l S
+460.82 540.219 m 471.238 479.996 l S
+470.145 481.09 2.188 -2.188 re S
+471.238 479.996 m 481.93 540.219 l S
+484.008 540.219 m 495.211 435.68 l S
+494.117 436.777 2.188 -2.191 re S
+495.211 435.68 m 505.945 540.219 l S
+509.348 540.219 m 519.188 484.262 l S
+518.094 485.355 2.188 -2.188 re S
+519.188 484.262 m 531.172 424.387 l S
+530.078 425.48 2.188 -2.191 re S
+531.172 424.387 m 543.16 453.406 l S
+542.066 454.5 2.188 -2.188 re S
+543.16 453.406 m 555.148 509.711 l S
+554.055 510.805 2.188 -2.188 re S
+555.148 509.711 m 565.266 540.219 l S
+588.895 540.219 m 591.109 537.48 l S
+590.016 538.574 2.188 -2.188 re S
+591.109 537.48 m 603.094 512.711 l S
+602 513.805 2.191 -2.188 re S
+603.094 512.711 m 615.082 486.402 l S
+613.988 487.496 2.188 -2.188 re S
+615.082 486.402 m 627.07 463.344 l S
+625.977 464.438 2.188 -2.188 re S
+627.07 463.344 m 639.059 445.586 l S
+637.961 446.68 2.191 -2.188 re S
+639.059 445.586 m 651.043 433.508 l S
+649.949 434.602 2.188 -2.191 re S
+651.043 433.508 m 663.031 426.609 l S
+661.938 427.703 2.188 -2.191 re S
+663.031 426.609 m 675.02 424.035 l S
+673.922 425.129 2.191 -2.191 re S
+675.02 424.035 m 687.004 424.852 l S
+685.91 425.945 2.188 -2.188 re S
+687.004 424.852 m 698.992 428.199 l S
+697.898 429.293 2.188 -2.188 re S
+698.992 428.199 m 710.98 433.336 l S
+709.883 434.43 2.191 -2.188 re S
+710.98 433.336 m 722.965 439.664 l S
+721.871 440.758 2.188 -2.188 re S
+722.965 439.664 m 734.953 446.711 l S
+733.859 447.805 2.188 -2.188 re S
+734.953 446.711 m 746.941 454.121 l S
+745.848 455.215 2.188 -2.188 re S
+746.941 454.121 m 758.926 461.629 l S
+757.832 462.723 2.191 -2.188 re S
+758.926 461.629 m 770.914 469.047 l S
+769.82 470.141 2.188 -2.188 re S
+770.914 469.047 m 782.902 476.238 l S
+781.809 477.332 2.188 -2.191 re S
+782.902 476.238 m 794.887 483.113 l S
+793.793 484.207 2.191 -2.188 re S
+794.887 483.113 m 806.875 489.617 l S
+805.781 490.711 2.188 -2.188 re S
+806.875 489.617 m 818.863 495.719 l S
+817.77 496.812 2.188 -2.188 re S
+818.863 495.719 m 830.848 501.402 l S
+829.754 502.5 2.191 -2.191 re S
+830.848 501.402 m 842.836 506.672 l S
+841.742 507.766 2.188 -2.188 re S
+842.836 506.672 m 854.824 511.531 l S
+853.73 512.625 2.188 -2.191 re S
+854.824 511.531 m 866.812 515.992 l S
+865.715 517.086 2.191 -2.188 re S
+866.812 515.992 m 878.797 520.078 l S
+877.703 521.172 2.188 -2.188 re S
+878.797 520.078 m 890.785 523.809 l S
+889.691 524.902 2.188 -2.188 re S
+890.785 523.809 m 902.773 527.203 l S
+901.676 528.297 2.191 -2.191 re S
+902.773 527.203 m 914.758 530.281 l S
+913.664 531.379 2.188 -2.191 re S
+914.758 530.281 m 926.746 533.074 l S
+925.652 534.168 2.188 -2.188 re S
+926.746 533.074 m 938.734 535.594 l S
+937.637 536.688 2.191 -2.188 re S
+938.734 535.594 m 950.719 537.867 l S
+949.625 538.961 2.188 -2.188 re S
+950.719 537.867 m 962.707 539.91 l S
+961.613 538.816 m 963.801 538.816 l 963.801 540.219 l S
+961.613 540.219 m 961.613 538.816 l S
+962.707 539.91 m 964.727 540.219 l S
+  Q
+Q
+q
+0 1101.6 634 -1102 re W n
+[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+  q
+0 g
+1 w
+2 J
+2 j
+[] 0.0 d
+10 M 67.609 219.281 m 67.609 219.227 l 67.617 219.117 l 67.617 219.062 l 67.625
+ 218.953 l 67.625 218.898 l 67.629 218.84 l 67.633 218.785 l 67.633 218.727
+ l 67.637 218.672 l 67.637 218.613 l 67.641 218.559 l 67.645 218.5 l 67.645
+ 218.441 l 67.652 218.324 l 67.652 218.266 l 67.656 218.211 l 67.656 218.148
+ l 67.664 218.031 l 67.664 217.973 l 67.668 217.914 l 67.672 217.852 l 67.672
+ 217.793 l 67.676 217.734 l 67.676 217.672 l 67.68 217.613 l 67.684 217.551
+ l 67.684 217.488 l 67.688 217.426 l 67.691 217.367 l 67.691 217.305 l 67.695
+ 217.242 l 67.695 217.18 l 67.703 217.055 l 67.703 216.992 l 67.707 216.93
+ l 67.711 216.863 l 67.711 216.801 l 67.715 216.738 l 67.719 216.672 l 67.719
+ 216.609 l 67.723 216.547 l 67.723 216.48 l 67.727 216.414 l 67.73 216.352
+ l 67.73 216.285 l 67.738 216.152 l 67.738 216.086 l 67.742 216.023 l 67.742
+ 215.957 l 67.746 215.891 l 67.75 215.82 l 67.75 215.754 l 67.758 215.621
+ l 67.758 215.551 l 67.762 215.484 l 67.762 215.418 l 67.766 215.348 l 67.77
+ 215.281 l 67.77 215.211 l 67.773 215.145 l 67.777 215.074 l 67.777 215.004
+ l 67.781 214.934 l 67.781 214.863 l 67.785 214.797 l 67.789 214.727 l 67.789
+ 214.656 l 67.793 214.586 l 67.797 214.512 l 67.797 214.441 l 67.801 214.371
+ l 67.801 214.301 l 67.805 214.23 l 67.809 214.156 l 67.809 214.086 l 67.812
+ 214.012 l 67.816 213.941 l 67.816 213.867 l 67.82 213.797 l 67.824 213.723
+ l 67.824 213.648 l 67.828 213.578 l 67.828 213.504 l 67.836 213.355 l 67.836
+ 213.281 l 67.844 213.133 l 67.844 213.059 l 67.848 212.984 l 67.848 212.906
+ l 67.855 212.758 l 67.855 212.68 l 67.863 212.531 l 67.863 212.453 l 67.867
+ 212.379 l 67.867 212.301 l 67.871 212.223 l 67.875 212.148 l 67.875 212.07
+ l 67.883 211.914 l 67.883 211.836 l 67.887 211.758 l 67.887 211.68 l 67.895
+ 211.523 l 67.895 211.445 l 67.902 211.289 l 67.902 211.207 l 67.906 211.129
+ l 67.906 211.051 l 67.91 210.969 l 67.914 210.891 l 67.914 210.809 l 67.918
+ 210.73 l 67.922 210.648 l 67.922 210.57 l 67.93 210.406 l 67.93 210.324
+ l 67.934 210.242 l 67.934 210.164 l 67.941 210 l 67.941 209.918 l 67.945
+ 209.836 l 67.949 209.75 l 67.949 209.668 l 67.953 209.586 l 67.953 209.504
+ l 67.957 209.422 l 67.961 209.336 l 67.961 209.254 l 67.965 209.168 l 67.969
+ 209.086 l 67.969 209 l 67.973 208.918 l 67.973 208.832 l 67.977 208.75 
+l 67.98 208.664 l 67.98 208.578 l 67.984 208.496 l 67.988 208.41 l 67.988
+ 208.324 l 67.992 208.238 l 67.992 208.152 l 68 207.98 l 68 207.895 l 68.008
+ 207.723 l 68.008 207.633 l 68.016 207.461 l 68.016 207.375 l 68.02 207.285
+ l 68.02 207.199 l 68.023 207.109 l 68.027 207.023 l 68.027 206.934 l 68.031
+ 206.848 l 68.035 206.758 l 68.035 206.668 l 68.039 206.582 l 68.039 206.492
+ l 68.047 206.312 l 68.047 206.223 l 68.051 206.133 l 68.055 206.047 l 68.055
+ 205.957 l 68.059 205.867 l 68.059 205.773 l 68.066 205.594 l 68.066 205.504
+ l 68.07 205.414 l 68.074 205.32 l 68.074 205.23 l 68.078 205.141 l 68.078
+ 205.047 l 68.086 204.867 l 68.086 204.773 l 68.09 204.68 l 68.094 204.59
+ l 68.094 204.496 l 68.098 204.406 l 68.098 204.312 l 68.105 204.125 l 68.105
+ 204.035 l 68.113 203.848 l 68.113 203.754 l 68.121 203.566 l 68.121 203.473
+ l 68.125 203.379 l 68.125 203.285 l 68.129 203.188 l 68.133 203.094 l 68.133
+ 203 l 68.141 202.812 l 68.141 202.715 l 68.145 202.621 l 68.145 202.523
+ l 68.148 202.43 l 68.152 202.332 l 68.152 202.238 l 68.156 202.141 l 68.16
+ 202.047 l 68.16 201.949 l 68.164 201.852 l 68.164 201.758 l 68.172 201.562
+ l 68.172 201.465 l 68.176 201.371 l 68.18 201.273 l 68.18 201.176 l 68.184
+ 201.078 l 68.184 200.98 l 68.191 200.785 l 68.191 200.688 l 68.199 200.492
+ l 68.199 200.391 l 68.207 200.195 l 68.207 200.098 l 68.211 199.996 l 68.211
+ 199.898 l 68.215 199.801 l 68.219 199.699 l 68.219 199.602 l 68.223 199.5
+ l 68.227 199.402 l 68.227 199.301 l 68.23 199.203 l 68.23 199.102 l 68.234
+ 199 l 68.238 198.902 l 68.238 198.801 l 68.246 198.598 l 68.246 198.5 l
+ 68.25 198.398 l 68.25 198.297 l 68.258 198.094 l 68.258 197.992 l 68.266
+ 197.789 l 68.266 197.688 l 68.27 197.586 l 68.27 197.484 l 68.273 197.383
+ l 68.277 197.277 l 68.277 197.176 l 68.285 196.973 l 68.285 196.867 l 68.289
+ 196.766 l 68.289 196.664 l 68.293 196.559 l 68.297 196.457 l 68.297 196.355
+ l 68.301 196.25 l 68.305 196.148 l 68.305 196.043 l 68.309 195.938 l 68.312
+ 195.836 l 68.312 195.73 l 68.316 195.629 l 68.316 195.523 l 68.324 195.312
+ l 68.324 195.211 l 68.332 195 l 68.332 194.895 l 68.336 194.789 l 68.336
+ 194.684 l 68.34 194.582 l 68.344 194.477 l 68.344 194.371 l 68.352 194.16
+ l 68.352 194.055 l 68.355 193.945 l 68.355 193.84 l 68.363 193.629 l 68.363
+ 193.523 l 68.367 193.418 l 68.371 193.309 l 68.371 193.203 l 68.375 193.098
+ l 68.375 192.988 l 68.383 192.777 l 68.383 192.668 l 68.387 192.562 l 68.391
+ 192.453 l 68.391 192.348 l 68.395 192.238 l 68.398 192.133 l 68.398 192.023
+ l 68.402 191.918 l 68.402 191.809 l 68.406 191.703 l 68.41 191.594 l 68.41
+ 191.484 l 68.414 191.379 l 68.418 191.27 l 68.418 191.16 l 68.422 191.051
+ l 68.422 190.941 l 68.426 190.836 l 68.43 190.727 l 68.43 190.617 l 68.438
+ 190.398 l 68.438 190.289 l 68.441 190.18 l 68.441 190.07 l 68.449 189.852
+ l 68.449 189.742 l 68.457 189.523 l 68.457 189.414 l 68.461 189.305 l 68.461
+ 189.195 l 68.465 189.086 l 68.469 188.973 l 68.469 188.863 l 68.477 188.645
+ l 68.477 188.531 l 68.48 188.422 l 68.48 188.312 l 68.484 188.199 l 68.488
+ 188.09 l 68.488 187.98 l 68.492 187.867 l 68.496 187.758 l 68.496 187.645
+ l 68.5 187.535 l 68.504 187.422 l 68.504 187.312 l 68.508 187.199 l 68.508
+ 187.09 l 68.512 186.977 l 68.516 186.867 l 68.516 186.754 l 68.52 186.641
+ l 68.523 186.531 l 68.523 186.418 l 68.527 186.305 l 68.527 186.195 l 68.535
+ 185.969 l 68.535 185.855 l 68.539 185.746 l 68.543 185.633 l 68.543 185.52
+ l 68.547 185.406 l 68.547 185.293 l 68.551 185.184 l 68.555 185.07 l 68.555
+ 184.957 l 68.562 184.73 l 68.562 184.617 l 68.566 184.504 l 68.566 184.391
+ l 68.574 184.164 l 68.574 184.051 l 68.582 183.824 l 68.582 183.711 l 68.59
+ 183.484 l 68.59 183.367 l 68.594 183.254 l 68.594 183.141 l 68.602 182.914
+ l 68.602 182.797 l 68.609 182.57 l 68.609 182.457 l 68.613 182.34 l 68.613
+ 182.227 l 68.621 182 l 68.621 181.883 l 68.629 181.656 l 68.629 181.539
+ l 68.633 181.426 l 68.633 181.309 l 68.641 181.082 l 68.641 180.965 l 68.645
+ 180.852 l 68.648 180.734 l 68.648 180.621 l 68.652 180.504 l 68.652 180.391
+ l 68.656 180.273 l 68.66 180.16 l 68.66 180.043 l 68.664 179.926 l 68.668
+ 179.812 l 68.668 179.695 l 68.672 179.582 l 68.672 179.465 l 68.676 179.348
+ l 68.68 179.234 l 68.68 179.117 l 68.684 179.004 l 68.688 178.887 l 68.688
+ 178.77 l 68.691 178.652 l 68.695 178.539 l 68.695 178.422 l 68.699 178.305
+ l 68.699 178.191 l 68.707 177.957 l 68.707 177.84 l 68.711 177.727 l 68.715
+ 177.609 l 68.715 177.492 l 68.719 177.375 l 68.719 177.258 l 68.723 177.141
+ l 68.727 177.027 l 68.727 176.91 l 68.734 176.676 l 68.734 176.559 l 68.738
+ 176.441 l 68.738 176.324 l 68.742 176.207 l 68.746 176.094 l 68.746 175.977
+ l 68.754 175.742 l 68.754 175.625 l 68.758 175.508 l 68.758 175.391 l 68.766
+ 175.156 l 68.766 175.039 l 68.773 174.805 l 68.773 174.688 l 68.781 174.453
+ l 68.781 174.336 l 68.785 174.219 l 68.785 174.102 l 68.789 173.984 l 68.793
+ 173.863 l 68.793 173.746 l 68.801 173.512 l 68.801 173.395 l 68.805 173.277
+ l 68.805 173.16 l 68.812 172.926 l 68.812 172.805 l 68.82 172.57 l 68.82
+ 172.453 l 68.824 172.336 l 68.824 172.219 l 68.828 172.102 l 68.832 171.98
+ l 68.832 171.863 l 68.84 171.629 l 68.84 171.512 l 68.844 171.391 l 68.844
+ 171.273 l 68.852 171.039 l 68.852 170.922 l 68.855 170.801 l 68.859 170.684
+ l 68.859 170.566 l 68.863 170.449 l 68.863 170.328 l 68.871 170.094 l 68.871
+ 169.977 l 68.875 169.855 l 68.879 169.738 l 68.879 169.621 l 68.883 169.504
+ l 68.887 169.383 l 68.887 169.266 l 68.891 169.148 l 68.891 169.031 l 68.895
+ 168.91 l 68.898 168.793 l 68.898 168.676 l 68.902 168.555 l 68.906 168.438
+ l 68.906 168.32 l 68.91 168.203 l 68.91 168.082 l 68.918 167.848 l 68.918
+ 167.727 l 68.926 167.492 l 68.926 167.371 l 68.93 167.254 l 68.93 167.137
+ l 68.934 167.02 l 68.938 166.898 l 68.938 166.781 l 68.941 166.664 l 68.945
+ 166.543 l 68.945 166.426 l 68.949 166.309 l 68.949 166.188 l 68.957 165.953
+ l 68.957 165.832 l 68.965 165.598 l 68.965 165.477 l 68.973 165.242 l 68.973
+ 165.125 l 68.977 165.004 l 68.977 164.887 l 68.98 164.77 l 68.984 164.648
+ l 68.984 164.531 l 68.988 164.414 l 68.992 164.293 l 68.992 164.176 l 68.996
+ 164.059 l 68.996 163.938 l 69.004 163.703 l 69.004 163.586 l 69.008 163.465
+ l 69.012 163.348 l 69.012 163.23 l 69.016 163.109 l 69.016 162.992 l 69.02
+ 162.875 l 69.023 162.754 l 69.023 162.637 l 69.031 162.402 l 69.031 162.281
+ l 69.035 162.164 l 69.035 162.047 l 69.039 161.93 l 69.043 161.809 l 69.043
+ 161.691 l 69.051 161.457 l 69.051 161.336 l 69.055 161.219 l 69.055 161.102
+ l 69.059 160.984 l 69.062 160.863 l 69.062 160.746 l 69.07 160.512 l 69.07
+ 160.391 l 69.078 160.156 l 69.078 160.039 l 69.082 159.922 l 69.082 159.801
+ l 69.09 159.566 l 69.09 159.449 l 69.098 159.215 l 69.098 159.094 l 69.102
+ 158.977 l 69.102 158.859 l 69.109 158.625 l 69.109 158.508 l 69.113 158.391
+ l 69.117 158.27 l 69.117 158.152 l 69.121 158.035 l 69.121 157.918 l 69.129
+ 157.684 l 69.129 157.566 l 69.137 157.332 l 69.137 157.215 l 69.141 157.098
+ l 69.141 156.977 l 69.148 156.742 l 69.148 156.625 l 69.156 156.391 l 69.156
+ 156.273 l 69.164 156.039 l 69.164 155.922 l 69.168 155.805 l 69.168 155.688
+ l 69.172 155.57 l 69.176 155.457 l 69.176 155.34 l 69.184 155.105 l 69.184
+ 154.988 l 69.188 154.871 l 69.188 154.754 l 69.195 154.52 l 69.195 154.402
+ l 69.199 154.285 l 69.203 154.172 l 69.203 154.055 l 69.207 153.938 l 69.207
+ 153.82 l 69.211 153.703 l 69.215 153.59 l 69.215 153.473 l 69.223 153.238
+ l 69.223 153.121 l 69.227 153.008 l 69.227 152.891 l 69.234 152.656 l 69.234
+ 152.543 l 69.242 152.309 l 69.242 152.195 l 69.246 152.078 l 69.246 151.961
+ l 69.25 151.848 l 69.254 151.73 l 69.254 151.613 l 69.258 151.5 l 69.262
+ 151.383 l 69.262 151.27 l 69.27 151.035 l 69.27 150.922 l 69.273 150.805
+ l 69.273 150.691 l 69.277 150.574 l 69.281 150.461 l 69.281 150.344 l 69.285
+ 150.23 l 69.289 150.113 l 69.289 150 l 69.293 149.883 l 69.293 149.77 l
+ 69.297 149.652 l 69.301 149.539 l 69.301 149.426 l 69.305 149.309 l 69.309
+ 149.195 l 69.309 149.082 l 69.312 148.965 l 69.312 148.852 l 69.316 148.738
+ l 69.32 148.621 l 69.32 148.508 l 69.324 148.395 l 69.328 148.277 l 69.328
+ 148.164 l 69.332 148.051 l 69.332 147.938 l 69.336 147.82 l 69.34 147.707
+ l 69.34 147.594 l 69.348 147.367 l 69.348 147.254 l 69.352 147.137 l 69.355
+ 147.023 l 69.355 146.91 l 69.359 146.797 l 69.359 146.684 l 69.367 146.457
+ l 69.367 146.344 l 69.375 146.117 l 69.375 146.004 l 69.379 145.891 l 69.379
+ 145.777 l 69.387 145.551 l 69.387 145.438 l 69.391 145.324 l 69.395 145.215
+ l 69.395 145.102 l 69.398 144.988 l 69.398 144.875 l 69.402 144.762 l 69.406
+ 144.652 l 69.406 144.539 l 69.414 144.312 l 69.414 144.203 l 69.418 144.09
+ l 69.418 143.977 l 69.422 143.863 l 69.426 143.754 l 69.426 143.641 l 69.43
+ 143.531 l 69.434 143.418 l 69.434 143.305 l 69.438 143.195 l 69.438 143.082
+ l 69.441 142.973 l 69.445 142.859 l 69.445 142.75 l 69.449 142.637 l 69.453
+ 142.527 l 69.453 142.414 l 69.457 142.305 l 69.461 142.191 l 69.461 142.082
+ l 69.465 141.973 l 69.465 141.859 l 69.473 141.641 l 69.473 141.527 l 69.48
+ 141.309 l 69.48 141.199 l 69.484 141.086 l 69.484 140.977 l 69.492 140.758
+ l 69.492 140.648 l 69.496 140.535 l 69.5 140.426 l 69.5 140.316 l 69.504
+ 140.207 l 69.504 140.098 l 69.512 139.879 l 69.512 139.77 l 69.52 139.551
+ l 69.52 139.441 l 69.523 139.332 l 69.523 139.223 l 69.527 139.113 l 69.531
+ 139.008 l 69.531 138.898 l 69.539 138.68 l 69.539 138.57 l 69.543 138.465
+ l 69.547 138.355 l 69.547 138.246 l 69.551 138.137 l 69.551 138.031 l 69.555
+ 137.922 l 69.559 137.816 l 69.559 137.707 l 69.562 137.598 l 69.566 137.492
+ l 69.566 137.383 l 69.57 137.277 l 69.57 137.168 l 69.574 137.062 l 69.578
+ 136.953 l 69.578 136.848 l 69.582 136.738 l 69.586 136.633 l 69.586 136.527
+ l 69.59 136.418 l 69.59 136.312 l 69.594 136.207 l 69.598 136.098 l 69.598
+ 135.992 l 69.605 135.781 l 69.605 135.672 l 69.609 135.566 l 69.609 135.461
+ l 69.617 135.25 l 69.617 135.145 l 69.625 134.934 l 69.625 134.828 l 69.629
+ 134.723 l 69.629 134.617 l 69.637 134.406 l 69.637 134.301 l 69.645 134.09
+ l 69.645 133.984 l 69.648 133.879 l 69.652 133.777 l 69.652 133.672 l 69.656
+ 133.566 l 69.656 133.461 l 69.66 133.359 l 69.664 133.254 l 69.664 133.148
+ l 69.668 133.047 l 69.672 132.941 l 69.672 132.84 l 69.676 132.734 l 69.676
+ 132.633 l 69.68 132.527 l 69.684 132.426 l 69.684 132.32 l 69.688 132.219
+ l 69.691 132.113 l 69.691 132.012 l 69.695 131.91 l 69.695 131.805 l 69.703
+ 131.602 l 69.703 131.496 l 69.711 131.293 l 69.711 131.191 l 69.715 131.09
+ l 69.715 130.984 l 69.723 130.781 l 69.723 130.68 l 69.73 130.477 l 69.73
+ 130.375 l 69.738 130.172 l 69.738 130.07 l 69.742 129.973 l 69.742 129.871
+ l 69.75 129.668 l 69.75 129.566 l 69.754 129.469 l 69.758 129.367 l 69.758
+ 129.266 l 69.762 129.168 l 69.762 129.066 l 69.766 128.965 l 69.77 128.867
+ l 69.77 128.766 l 69.773 128.668 l 69.777 128.566 l 69.777 128.469 l 69.781
+ 128.367 l 69.781 128.27 l 69.785 128.168 l 69.789 128.07 l 69.789 127.973
+ l 69.793 127.871 l 69.797 127.773 l 69.797 127.676 l 69.801 127.578 l 69.801
+ 127.477 l 69.809 127.281 l 69.809 127.184 l 69.816 126.988 l 69.816 126.891
+ l 69.82 126.793 l 69.82 126.695 l 69.828 126.5 l 69.828 126.402 l 69.836
+ 126.207 l 69.836 126.109 l 69.84 126.016 l 69.844 125.918 l 69.844 125.82
+ l 69.848 125.723 l 69.848 125.629 l 69.855 125.434 l 69.855 125.34 l 69.859
+ 125.242 l 69.863 125.148 l 69.863 125.051 l 69.867 124.957 l 69.867 124.859
+ l 69.871 124.766 l 69.875 124.668 l 69.875 124.574 l 69.879 124.48 l 69.883
+ 124.383 l 69.883 124.289 l 69.887 124.195 l 69.887 124.102 l 69.891 124.008
+ l 69.895 123.91 l 69.895 123.816 l 69.902 123.629 l 69.902 123.535 l 69.906
+ 123.441 l 69.906 123.348 l 69.914 123.16 l 69.914 123.066 l 69.918 122.973
+ l 69.922 122.883 l 69.922 122.789 l 69.93 122.602 l 69.93 122.512 l 69.934
+ 122.418 l 69.934 122.324 l 69.938 122.234 l 69.941 122.141 l 69.941 122.051
+ l 69.945 121.957 l 69.949 121.867 l 69.949 121.773 l 69.953 121.684 l 69.953
+ 121.59 l 69.957 121.5 l 69.961 121.406 l 69.961 121.316 l 69.969 121.137
+ l 69.969 121.043 l 69.973 120.953 l 69.973 120.863 l 69.98 120.684 l 69.98
+ 120.594 l 69.988 120.414 l 69.988 120.324 l 69.992 120.234 l 69.992 120.145
+ l 70 119.965 l 70 119.875 l 70.004 119.789 l 70.008 119.699 l 70.008 119.609
+ l 70.012 119.52 l 70.012 119.434 l 70.016 119.344 l 70.02 119.258 l 70.02
+ 119.168 l 70.023 119.082 l 70.027 118.992 l 70.027 118.906 l 70.031 118.816
+ l 70.035 118.73 l 70.035 118.641 l 70.039 118.555 l 70.039 118.469 l 70.043
+ 118.379 l 70.047 118.293 l 70.047 118.207 l 70.055 118.035 l 70.055 117.949
+ l 70.059 117.863 l 70.059 117.777 l 70.062 117.688 l 70.066 117.605 l 70.066
+ 117.52 l 70.074 117.348 l 70.074 117.262 l 70.078 117.176 l 70.078 117.09
+ l 70.082 117.008 l 70.086 116.922 l 70.086 116.836 l 70.09 116.754 l 70.094
+ 116.668 l 70.094 116.582 l 70.098 116.5 l 70.098 116.414 l 70.102 116.332
+ l 70.105 116.246 l 70.105 116.164 l 70.109 116.082 l 70.113 115.996 l 70.113
+ 115.914 l 70.117 115.832 l 70.121 115.746 l 70.121 115.664 l 70.125 115.582
+ l 70.125 115.5 l 70.133 115.336 l 70.133 115.254 l 70.141 115.09 l 70.141
+ 115.008 l 70.145 114.926 l 70.145 114.844 l 70.152 114.68 l 70.152 114.602
+ l 70.16 114.438 l 70.16 114.355 l 70.164 114.277 l 70.164 114.195 l 70.168
+ 114.117 l 70.172 114.035 l 70.172 113.957 l 70.176 113.875 l 70.18 113.797
+ l 70.18 113.715 l 70.184 113.637 l 70.184 113.559 l 70.188 113.477 l 70.191
+ 113.398 l 70.191 113.32 l 70.199 113.164 l 70.199 113.086 l 70.203 113.004
+ l 70.203 112.926 l 70.211 112.77 l 70.211 112.695 l 70.219 112.539 l 70.219
+ 112.461 l 70.227 112.305 l 70.227 112.23 l 70.23 112.152 l 70.23 112.074
+ l 70.234 112 l 70.238 111.922 l 70.238 111.848 l 70.242 111.77 l 70.246
+ 111.695 l 70.246 111.617 l 70.25 111.543 l 70.25 111.465 l 70.258 111.316
+ l 70.258 111.238 l 70.266 111.09 l 70.266 111.016 l 70.27 110.941 l 70.27
+ 110.867 l 70.277 110.719 l 70.277 110.645 l 70.285 110.496 l 70.285 110.422
+ l 70.289 110.348 l 70.289 110.273 l 70.293 110.203 l 70.297 110.129 l 70.297
+ 110.055 l 70.301 109.98 l 70.305 109.91 l 70.305 109.836 l 70.309 109.766
+ l 70.312 109.691 l 70.312 109.621 l 70.316 109.547 l 70.316 109.477 l 70.32
+ 109.406 l 70.324 109.332 l 70.324 109.262 l 70.332 109.121 l 70.332 109.047
+ l 70.336 108.977 l 70.336 108.906 l 70.344 108.766 l 70.344 108.695 l 70.352
+ 108.555 l 70.352 108.484 l 70.355 108.414 l 70.355 108.348 l 70.363 108.207
+ l 70.363 108.137 l 70.367 108.07 l 70.371 108 l 70.371 107.934 l 70.375
+ 107.863 l 70.375 107.797 l 70.379 107.727 l 70.383 107.66 l 70.383 107.59
+ l 70.391 107.457 l 70.391 107.387 l 70.395 107.32 l 70.395 107.254 l 70.398
+ 107.188 l 70.402 107.117 l 70.402 107.051 l 70.41 106.918 l 70.41 106.852
+ l 70.418 106.719 l 70.418 106.656 l 70.422 106.59 l 70.422 106.523 l 70.43
+ 106.391 l 70.43 106.328 l 70.434 106.262 l 70.438 106.199 l 70.438 106.133
+ l 70.441 106.066 l 70.441 106.004 l 70.445 105.938 l 70.449 105.875 l 70.449
+ 105.812 l 70.453 105.746 l 70.457 105.684 l 70.457 105.621 l 70.461 105.559
+ l 70.461 105.492 l 70.469 105.367 l 70.469 105.305 l 70.477 105.18 l 70.477
+ 105.117 l 70.48 105.055 l 70.48 104.992 l 70.488 104.867 l 70.488 104.809
+ l 70.496 104.684 l 70.496 104.625 l 70.504 104.5 l 70.504 104.441 l 70.508
+ 104.379 l 70.508 104.32 l 70.512 104.258 l 70.516 104.199 l 70.516 104.141
+ l 70.52 104.078 l 70.523 104.02 l 70.523 103.961 l 70.527 103.902 l 70.527
+ 103.844 l 70.531 103.781 l 70.535 103.723 l 70.535 103.664 l 70.543 103.547
+ l 70.543 103.488 l 70.547 103.434 l 70.547 103.375 l 70.555 103.258 l 70.555
+ 103.199 l 70.559 103.145 l 70.562 103.086 l 70.562 103.027 l 70.566 102.973
+ l 70.566 102.914 l 70.57 102.859 l 70.574 102.801 l 70.574 102.746 l 70.578
+ 102.691 l 70.582 102.633 l 70.582 102.578 l 70.586 102.523 l 70.586 102.465
+ l 70.594 102.355 l 70.594 102.301 l 70.602 102.191 l 70.602 102.137 l 70.609
+ 102.027 l 70.609 101.973 l 70.613 101.918 l 70.613 101.863 l 70.617 101.812
+ l 70.621 101.758 l 70.621 101.703 l 70.625 101.652 l 70.629 101.598 l 70.629
+ 101.547 l 70.633 101.492 l 70.633 101.441 l 70.637 101.387 l 70.641 101.336
+ l 70.641 101.281 l 70.648 101.18 l 70.648 101.125 l 70.652 101.074 l 70.652
+ 101.023 l 70.66 100.922 l 70.66 100.871 l 70.668 100.77 l 70.668 100.719
+ l 70.672 100.668 l 70.672 100.617 l 70.676 100.566 l 70.68 100.52 l 70.68
+ 100.469 l 70.688 100.367 l 70.688 100.32 l 70.691 100.27 l 70.695 100.223
+ l 70.695 100.172 l 70.699 100.125 l 70.699 100.074 l 70.707 99.98 l 70.707
+ 99.93 l 70.715 99.836 l 70.715 99.789 l 70.719 99.742 l 70.719 99.691 l
+ 70.727 99.598 l 70.727 99.551 l 70.73 99.504 l 70.734 99.461 l 70.734 99.414
+ l 70.738 99.367 l 70.738 99.32 l 70.742 99.273 l 70.746 99.23 l 70.746 
+99.184 l 70.75 99.137 l 70.754 99.094 l 70.754 99.047 l 70.758 99.004 l 
+70.758 98.957 l 70.762 98.914 l 70.766 98.867 l 70.766 98.824 l 70.773 98.738
+ l 70.773 98.691 l 70.777 98.648 l 70.777 98.605 l 70.785 98.52 l 70.785
+ 98.477 l 70.793 98.391 l 70.793 98.348 l 70.801 98.262 l 70.801 98.219 
+l 70.805 98.18 l 70.805 98.137 l 70.809 98.094 l 70.812 98.055 l 70.812 
+98.012 l 70.816 97.973 l 70.82 97.93 l 70.82 97.891 l 70.824 97.848 l 70.824
+ 97.809 l 70.828 97.766 l 70.832 97.727 l 70.832 97.688 l 70.836 97.648 
+l 70.84 97.605 l 70.84 97.566 l 70.844 97.527 l 70.844 97.488 l 70.852 97.41
+ l 70.852 97.371 l 70.859 97.293 l 70.859 97.258 l 70.863 97.219 l 70.863
+ 97.18 l 70.867 97.141 l 70.871 97.105 l 70.871 97.066 l 70.875 97.027 l
+ 70.879 96.992 l 70.879 96.953 l 70.883 96.918 l 70.883 96.879 l 70.891 
+96.809 l 70.891 96.77 l 70.898 96.699 l 70.898 96.664 l 70.906 96.594 l 
+70.906 96.555 l 70.91 96.52 l 70.91 96.484 l 70.914 96.449 l 70.918 96.418
+ l 70.918 96.383 l 70.926 96.312 l 70.926 96.277 l 70.93 96.246 l 70.93 
+96.211 l 70.934 96.176 l 70.938 96.145 l 70.938 96.109 l 70.941 96.078 l
+ 70.945 96.043 l 70.945 96.012 l 70.949 95.977 l 70.949 95.945 l 70.957 
+95.883 l 70.957 95.848 l 70.965 95.785 l 70.965 95.754 l 70.969 95.723 l
+ 70.969 95.691 l 70.977 95.629 l 70.977 95.598 l 70.984 95.535 l 70.984 
+95.508 l 70.992 95.445 l 70.992 95.414 l 70.996 95.387 l 70.996 95.355 l
+ 71 95.328 l 71.004 95.297 l 71.004 95.27 l 71.008 95.238 l 71.012 95.211
+ l 71.012 95.184 l 71.016 95.152 l 71.016 95.125 l 71.023 95.07 l 71.023
+ 95.039 l 71.031 94.984 l 71.031 94.957 l 71.035 94.93 l 71.035 94.902 l
+ 71.039 94.875 l 71.043 94.852 l 71.043 94.824 l 71.051 94.77 l 71.051 94.746
+ l 71.055 94.719 l 71.055 94.691 l 71.059 94.668 l 71.062 94.641 l 71.062
+ 94.617 l 71.066 94.59 l 71.07 94.566 l 71.07 94.539 l 71.074 94.516 l 71.074
+ 94.492 l 71.078 94.465 l 71.082 94.441 l 71.082 94.418 l 71.09 94.371 l
+ 71.09 94.348 l 71.098 94.301 l 71.098 94.277 l 71.102 94.254 l 71.102 94.23
+ l 71.109 94.184 l 71.109 94.164 l 71.117 94.117 l 71.117 94.098 l 71.121
+ 94.074 l 71.121 94.055 l 71.125 94.031 l 71.129 94.012 l 71.129 93.988 
+l 71.133 93.969 l 71.137 93.945 l 71.137 93.926 l 71.141 93.906 l 71.141
+ 93.887 l 71.145 93.863 l 71.148 93.844 l 71.148 93.824 l 71.156 93.785 
+l 71.156 93.766 l 71.16 93.746 l 71.16 93.727 l 71.168 93.688 l 71.168 93.672
+ l 71.176 93.633 l 71.176 93.617 l 71.184 93.578 l 71.184 93.562 l 71.188
+ 93.543 l 71.188 93.527 l 71.191 93.508 l 71.195 93.492 l 71.195 93.477 
+l 71.199 93.457 l 71.203 93.441 l 71.203 93.426 l 71.207 93.41 l 71.207 
+93.391 l 71.215 93.359 l 71.215 93.344 l 71.223 93.312 l 71.223 93.297 l
+ 71.227 93.281 l 71.227 93.27 l 71.234 93.238 l 71.234 93.223 l 71.238 93.211
+ l 71.242 93.195 l 71.242 93.18 l 71.246 93.168 l 71.246 93.152 l 71.25 
+93.141 l 71.254 93.125 l 71.254 93.113 l 71.258 93.102 l 71.262 93.086 l
+ 71.262 93.074 l 71.266 93.062 l 71.266 93.047 l 71.273 93.023 l 71.273 
+93.012 l 71.281 92.988 l 71.281 92.977 l 71.289 92.953 l 71.289 92.941 l
+ 71.293 92.93 l 71.293 92.922 l 71.301 92.898 l 71.301 92.891 l 71.309 92.867
+ l 71.309 92.859 l 71.312 92.848 l 71.312 92.84 l 71.316 92.828 l 71.32 
+92.82 l 71.32 92.812 l 71.324 92.801 l 71.328 92.793 l 71.328 92.785 l 71.332
+ 92.777 l 71.332 92.766 l 71.34 92.75 l 71.34 92.742 l 71.348 92.727 l 71.348
+ 92.719 l 71.352 92.711 l 71.352 92.703 l 71.355 92.699 l 71.359 92.691 
+l 71.359 92.684 l 71.363 92.676 l 71.367 92.672 l 71.367 92.664 l 71.371
+ 92.66 l 71.375 92.652 l 71.375 92.648 l 71.379 92.641 l 71.379 92.637 l
+ 71.383 92.629 l 71.387 92.625 l 71.387 92.621 l 71.391 92.613 l 71.395 
+92.609 l 71.395 92.605 l 71.398 92.602 l 71.398 92.598 l 71.406 92.59 l 
+71.406 92.586 l 71.414 92.578 l 71.414 92.574 l 71.418 92.57 l 71.418 92.566
+ l 71.422 92.562 l 71.426 92.562 l 71.426 92.559 l 71.43 92.555 l 71.434
+ 92.555 l 71.434 92.551 l 71.441 92.543 l 71.445 92.543 l 71.449 92.539 
+l 71.453 92.539 l 71.457 92.535 l 71.484 92.535 l 71.488 92.539 l 71.492
+ 92.539 l 71.496 92.543 l 71.5 92.543 l 71.5 92.547 l 71.504 92.547 l 71.504
+ 92.551 l 71.508 92.551 l 71.523 92.566 l 71.523 92.57 l 71.531 92.578 l
+ 71.531 92.582 l 71.539 92.59 l 71.539 92.594 l 71.543 92.598 l 71.543 92.602
+ l 71.551 92.609 l 71.551 92.613 l 71.555 92.621 l 71.559 92.625 l 71.559
+ 92.629 l 71.562 92.637 l 71.566 92.641 l 71.566 92.645 l 71.57 92.652 l
+ 71.57 92.656 l 71.578 92.672 l 71.578 92.676 l 71.586 92.691 l 71.586 92.695
+ l 71.59 92.703 l 71.59 92.711 l 71.598 92.727 l 71.598 92.734 l 71.605 
+92.75 l 71.605 92.758 l 71.609 92.766 l 71.609 92.773 l 71.617 92.789 l 
+71.617 92.797 l 71.621 92.809 l 71.625 92.816 l 71.625 92.824 l 71.629 92.836
+ l 71.629 92.844 l 71.633 92.852 l 71.637 92.863 l 71.637 92.871 l 71.641
+ 92.883 l 71.645 92.891 l 71.645 92.902 l 71.648 92.914 l 71.648 92.922 
+l 71.656 92.945 l 71.656 92.957 l 71.66 92.969 l 71.664 92.977 l 71.664 
+92.988 l 71.672 93.012 l 71.672 93.023 l 71.676 93.035 l 71.676 93.047 l
+ 71.68 93.062 l 71.684 93.074 l 71.684 93.086 l 71.691 93.109 l 71.691 93.125
+ l 71.695 93.137 l 71.695 93.148 l 71.699 93.164 l 71.703 93.176 l 71.703
+ 93.191 l 71.707 93.203 l 71.711 93.219 l 71.711 93.23 l 71.715 93.246 l
+ 71.715 93.262 l 71.719 93.273 l 71.723 93.289 l 71.723 93.305 l 71.727 
+93.32 l 71.73 93.332 l 71.73 93.348 l 71.734 93.363 l 71.734 93.379 l 71.742
+ 93.41 l 71.742 93.426 l 71.75 93.457 l 71.75 93.477 l 71.758 93.508 l 71.758
+ 93.523 l 71.762 93.539 l 71.762 93.559 l 71.766 93.574 l 71.77 93.594 l
+ 71.77 93.609 l 71.773 93.625 l 71.777 93.645 l 71.777 93.664 l 71.781 93.68
+ l 71.781 93.699 l 71.785 93.715 l 71.789 93.734 l 71.789 93.754 l 71.793
+ 93.77 l 71.797 93.789 l 71.797 93.809 l 71.801 93.828 l 71.801 93.848 l
+ 71.809 93.887 l 71.809 93.906 l 71.816 93.945 l 71.816 93.965 l 71.82 93.984
+ l 71.82 94.004 l 71.824 94.023 l 71.828 94.047 l 71.828 94.066 l 71.836
+ 94.105 l 71.836 94.129 l 71.84 94.148 l 71.84 94.172 l 71.844 94.191 l 
+71.848 94.215 l 71.848 94.234 l 71.852 94.258 l 71.855 94.277 l 71.855 94.301
+ l 71.859 94.324 l 71.863 94.344 l 71.863 94.367 l 71.867 94.391 l 71.867
+ 94.414 l 71.871 94.434 l 71.875 94.457 l 71.875 94.48 l 71.883 94.527 l
+ 71.883 94.551 l 71.887 94.574 l 71.887 94.598 l 71.891 94.621 l 71.895 
+94.648 l 71.895 94.672 l 71.902 94.719 l 71.902 94.742 l 71.906 94.77 l 
+71.906 94.793 l 71.91 94.816 l 71.914 94.844 l 71.914 94.867 l 71.918 94.895
+ l 71.922 94.918 l 71.922 94.945 l 71.926 94.969 l 71.926 94.996 l 71.93
+ 95.023 l 71.934 95.047 l 71.934 95.074 l 71.941 95.129 l 71.941 95.152 
+l 71.949 95.207 l 71.949 95.234 l 71.953 95.262 l 71.953 95.289 l 71.961
+ 95.344 l 71.961 95.371 l 71.969 95.426 l 71.969 95.453 l 71.973 95.484 
+l 71.973 95.512 l 71.98 95.566 l 71.98 95.598 l 71.988 95.652 l 71.988 95.684
+ l 71.992 95.711 l 71.992 95.742 l 71.996 95.77 l 72 95.801 l 72 95.832 
+l 72.004 95.859 l 72.008 95.891 l 72.008 95.918 l 72.012 95.949 l 72.012
+ 95.98 l 72.02 96.043 l 72.02 96.07 l 72.027 96.133 l 72.027 96.164 l 72.031
+ 96.195 l 72.031 96.227 l 72.039 96.289 l 72.039 96.32 l 72.043 96.352 l
+ 72.047 96.387 l 72.047 96.418 l 72.055 96.48 l 72.055 96.512 l 72.059 96.547
+ l 72.059 96.578 l 72.062 96.613 l 72.066 96.645 l 72.066 96.676 l 72.07
+ 96.711 l 72.074 96.742 l 72.074 96.777 l 72.078 96.809 l 72.078 96.844 
+l 72.082 96.879 l 72.086 96.91 l 72.086 96.945 l 72.09 96.98 l 72.094 97.012
+ l 72.094 97.047 l 72.098 97.082 l 72.098 97.117 l 72.105 97.188 l 72.105
+ 97.223 l 72.113 97.293 l 72.113 97.328 l 72.117 97.363 l 72.117 97.398 
+l 72.125 97.469 l 72.125 97.504 l 72.129 97.539 l 72.133 97.578 l 72.133
+ 97.613 l 72.137 97.648 l 72.141 97.688 l 72.141 97.723 l 72.145 97.758 
+l 72.145 97.797 l 72.148 97.832 l 72.152 97.871 l 72.152 97.906 l 72.156
+ 97.945 l 72.16 97.98 l 72.16 98.02 l 72.164 98.059 l 72.164 98.094 l 72.172
+ 98.172 l 72.172 98.207 l 72.18 98.285 l 72.18 98.324 l 72.184 98.363 l 
+72.184 98.402 l 72.188 98.438 l 72.191 98.477 l 72.191 98.516 l 72.199 98.594
+ l 72.199 98.637 l 72.203 98.676 l 72.203 98.715 l 72.211 98.793 l 72.211
+ 98.832 l 72.215 98.875 l 72.219 98.914 l 72.219 98.953 l 72.223 98.996 
+l 72.223 99.035 l 72.227 99.074 l 72.23 99.117 l 72.23 99.156 l 72.234 99.199
+ l 72.238 99.238 l 72.238 99.281 l 72.242 99.32 l 72.246 99.363 l 72.246
+ 99.406 l 72.25 99.445 l 72.25 99.488 l 72.254 99.531 l 72.258 99.57 l 72.258
+ 99.613 l 72.266 99.699 l 72.266 99.742 l 72.27 99.781 l 72.27 99.824 l 
+72.277 99.91 l 72.277 99.953 l 72.285 100.039 l 72.285 100.082 l 72.289 
+100.129 l 72.289 100.172 l 72.297 100.258 l 72.297 100.301 l 72.301 100.348
+ l 72.305 100.391 l 72.305 100.434 l 72.309 100.477 l 72.309 100.523 l 72.312
+ 100.566 l 72.316 100.613 l 72.316 100.656 l 72.32 100.703 l 72.324 100.746
+ l 72.324 100.793 l 72.328 100.836 l 72.332 100.883 l 72.332 100.926 l 72.336
+ 100.973 l 72.336 101.02 l 72.34 101.062 l 72.344 101.109 l 72.344 101.156
+ l 72.348 101.199 l 72.352 101.246 l 72.352 101.293 l 72.355 101.34 l 72.355
+ 101.387 l 72.363 101.48 l 72.363 101.527 l 72.371 101.621 l 72.371 101.668
+ l 72.375 101.715 l 72.375 101.762 l 72.383 101.855 l 72.383 101.902 l 72.387
+ 101.949 l 72.391 102 l 72.391 102.047 l 72.395 102.094 l 72.395 102.145
+ l 72.402 102.238 l 72.402 102.289 l 72.41 102.383 l 72.41 102.434 l 72.414
+ 102.48 l 72.414 102.531 l 72.418 102.578 l 72.422 102.629 l 72.422 102.68
+ l 72.426 102.727 l 72.43 102.777 l 72.43 102.828 l 72.434 102.875 l 72.438
+ 102.926 l 72.438 102.977 l 72.441 103.027 l 72.441 103.074 l 72.449 103.176
+ l 72.449 103.227 l 72.457 103.328 l 72.457 103.379 l 72.461 103.43 l 72.461
+ 103.48 l 72.469 103.582 l 72.469 103.633 l 72.477 103.734 l 72.477 103.785
+ l 72.48 103.836 l 72.48 103.891 l 72.488 103.992 l 72.488 104.043 l 72.492
+ 104.098 l 72.496 104.148 l 72.496 104.199 l 72.5 104.254 l 72.5 104.305
+ l 72.504 104.359 l 72.508 104.41 l 72.508 104.465 l 72.512 104.516 l 72.516
+ 104.57 l 72.516 104.621 l 72.52 104.676 l 72.523 104.727 l 72.523 104.781
+ l 72.527 104.836 l 72.527 104.887 l 72.535 104.996 l 72.535 105.047 l 72.543
+ 105.156 l 72.543 105.211 l 72.547 105.266 l 72.547 105.32 l 72.551 105.371
+ l 72.555 105.426 l 72.555 105.48 l 72.562 105.59 l 72.562 105.645 l 72.566
+ 105.699 l 72.566 105.754 l 72.57 105.809 l 72.574 105.867 l 72.574 105.922
+ l 72.582 106.031 l 72.582 106.086 l 72.586 106.141 l 72.586 106.199 l 72.594
+ 106.309 l 72.594 106.367 l 72.602 106.477 l 72.602 106.535 l 72.605 106.59
+ l 72.605 106.648 l 72.613 106.758 l 72.613 106.816 l 72.617 106.875 l 72.621
+ 106.93 l 72.621 106.988 l 72.625 107.043 l 72.629 107.102 l 72.629 107.156
+ l 72.633 107.215 l 72.633 107.273 l 72.637 107.332 l 72.641 107.387 l 72.641
+ 107.445 l 72.648 107.562 l 72.648 107.617 l 72.652 107.676 l 72.652 107.734
+ l 72.66 107.852 l 72.66 107.91 l 72.668 108.027 l 72.668 108.086 l 72.672
+ 108.145 l 72.672 108.203 l 72.68 108.32 l 72.68 108.379 l 72.688 108.496
+ l 72.688 108.559 l 72.691 108.617 l 72.691 108.676 l 72.699 108.793 l 72.699
+ 108.855 l 72.707 108.973 l 72.707 109.035 l 72.711 109.094 l 72.715 109.156
+ l 72.715 109.215 l 72.719 109.273 l 72.719 109.336 l 72.723 109.395 l 72.727
+ 109.457 l 72.727 109.516 l 72.73 109.578 l 72.734 109.637 l 72.734 109.699
+ l 72.738 109.762 l 72.738 109.82 l 72.742 109.883 l 72.746 109.941 l 72.746
+ 110.004 l 72.754 110.129 l 72.754 110.188 l 72.758 110.25 l 72.758 110.312
+ l 72.766 110.438 l 72.766 110.496 l 72.773 110.621 l 72.773 110.684 l 72.777
+ 110.746 l 72.777 110.809 l 72.785 110.934 l 72.785 110.996 l 72.793 111.121
+ l 72.793 111.184 l 72.797 111.246 l 72.797 111.309 l 72.801 111.371 l 72.805
+ 111.438 l 72.805 111.5 l 72.812 111.625 l 72.812 111.688 l 72.816 111.754
+ l 72.82 111.816 l 72.82 111.879 l 72.824 111.941 l 72.824 112.008 l 72.828
+ 112.07 l 72.832 112.137 l 72.832 112.199 l 72.836 112.262 l 72.84 112.328
+ l 72.84 112.391 l 72.844 112.457 l 72.844 112.52 l 72.848 112.586 l 72.852
+ 112.648 l 72.852 112.715 l 72.855 112.777 l 72.859 112.844 l 72.859 112.906
+ l 72.863 112.973 l 72.863 113.039 l 72.867 113.102 l 72.871 113.168 l 72.871
+ 113.234 l 72.875 113.297 l 72.879 113.363 l 72.879 113.43 l 72.883 113.496
+ l 72.883 113.559 l 72.891 113.691 l 72.891 113.758 l 72.898 113.891 l 72.898
+ 113.957 l 72.902 114.02 l 72.906 114.086 l 72.906 114.152 l 72.91 114.219
+ l 72.91 114.285 l 72.918 114.418 l 72.918 114.484 l 72.926 114.617 l 72.926
+ 114.688 l 72.93 114.754 l 72.93 114.82 l 72.938 114.953 l 72.938 115.02
+ l 72.941 115.09 l 72.945 115.156 l 72.945 115.223 l 72.949 115.289 l 72.949
+ 115.359 l 72.957 115.492 l 72.957 115.559 l 72.961 115.629 l 72.965 115.695
+ l 72.965 115.762 l 72.969 115.832 l 72.969 115.898 l 72.973 115.969 l 72.977
+ 116.035 l 72.977 116.105 l 72.98 116.172 l 72.984 116.242 l 72.984 116.309
+ l 72.988 116.379 l 72.988 116.445 l 72.992 116.516 l 72.996 116.582 l 72.996
+ 116.652 l 73 116.723 l 73.004 116.789 l 73.004 116.859 l 73.008 116.926
+ l 73.012 116.996 l 73.012 117.066 l 73.016 117.137 l 73.016 117.203 l 73.023
+ 117.344 l 73.023 117.414 l 73.027 117.48 l 73.031 117.551 l 73.031 117.621
+ l 73.035 117.691 l 73.035 117.762 l 73.039 117.828 l 73.043 117.898 l 73.043
+ 117.969 l 73.051 118.109 l 73.051 118.18 l 73.055 118.25 l 73.055 118.32
+ l 73.062 118.461 l 73.062 118.531 l 73.07 118.672 l 73.07 118.742 l 73.074
+ 118.812 l 73.074 118.883 l 73.078 118.957 l 73.082 119.027 l 73.082 119.098
+ l 73.09 119.238 l 73.09 119.309 l 73.094 119.383 l 73.098 119.453 l 73.098
+ 119.523 l 73.102 119.594 l 73.102 119.668 l 73.109 119.809 l 73.109 119.883
+ l 73.117 120.023 l 73.117 120.098 l 73.121 120.168 l 73.121 120.238 l 73.125
+ 120.312 l 73.129 120.383 l 73.129 120.457 l 73.137 120.598 l 73.137 120.672
+ l 73.141 120.742 l 73.141 120.816 l 73.145 120.887 l 73.148 120.961 l 73.148
+ 121.035 l 73.152 121.105 l 73.156 121.18 l 73.156 121.25 l 73.16 121.324
+ l 73.16 121.395 l 73.168 121.543 l 73.168 121.613 l 73.176 121.762 l 73.176
+ 121.832 l 73.18 121.906 l 73.18 121.98 l 73.184 122.055 l 73.188 122.125
+ l 73.188 122.199 l 73.195 122.348 l 73.195 122.422 l 73.199 122.492 l 73.203
+ 122.566 l 73.203 122.641 l 73.207 122.715 l 73.207 122.789 l 73.215 122.938
+ l 73.215 123.012 l 73.219 123.082 l 73.223 123.156 l 73.223 123.23 l 73.227
+ 123.305 l 73.227 123.379 l 73.234 123.527 l 73.234 123.602 l 73.242 123.75
+ l 73.242 123.824 l 73.246 123.898 l 73.246 123.977 l 73.254 124.125 l 73.254
+ 124.199 l 73.262 124.348 l 73.262 124.422 l 73.266 124.496 l 73.266 124.574
+ l 73.273 124.723 l 73.273 124.797 l 73.277 124.871 l 73.281 124.949 l 73.281
+ 125.023 l 73.285 125.098 l 73.289 125.176 l 73.289 125.25 l 73.293 125.324
+ l 73.293 125.398 l 73.297 125.477 l 73.301 125.551 l 73.301 125.625 l 73.305
+ 125.703 l 73.309 125.777 l 73.309 125.855 l 73.312 125.93 l 73.312 126.004
+ l 73.316 126.082 l 73.32 126.156 l 73.32 126.234 l 73.324 126.309 l 73.328
+ 126.387 l 73.328 126.461 l 73.332 126.535 l 73.332 126.613 l 73.336 126.688
+ l 73.34 126.766 l 73.34 126.84 l 73.348 126.996 l 73.348 127.07 l 73.352
+ 127.148 l 73.352 127.223 l 73.355 127.301 l 73.359 127.375 l 73.359 127.453
+ l 73.363 127.531 l 73.367 127.605 l 73.367 127.684 l 73.371 127.762 l 73.371
+ 127.836 l 73.379 127.992 l 73.379 128.066 l 73.387 128.223 l 73.387 128.301
+ l 73.391 128.375 l 73.395 128.453 l 73.395 128.531 l 73.398 128.609 l 73.398
+ 128.684 l 73.406 128.84 l 73.406 128.918 l 73.41 128.996 l 73.414 129.07
+ l 73.414 129.148 l 73.418 129.227 l 73.418 129.305 l 73.426 129.461 l 73.426
+ 129.539 l 73.43 129.613 l 73.434 129.691 l 73.434 129.77 l 73.438 129.848
+ l 73.438 129.926 l 73.445 130.082 l 73.445 130.16 l 73.453 130.316 l 73.453
+ 130.395 l 73.457 130.473 l 73.457 130.551 l 73.465 130.707 l 73.465 130.785
+ l 73.473 130.941 l 73.473 131.02 l 73.48 131.176 l 73.48 131.254 l 73.484
+ 131.336 l 73.484 131.414 l 73.492 131.57 l 73.492 131.648 l 73.5 131.805
+ l 73.5 131.883 l 73.504 131.965 l 73.504 132.043 l 73.512 132.199 l 73.512
+ 132.277 l 73.516 132.359 l 73.52 132.438 l 73.52 132.516 l 73.523 132.594
+ l 73.523 132.672 l 73.527 132.754 l 73.531 132.832 l 73.531 132.91 l 73.535
+ 132.992 l 73.539 133.07 l 73.539 133.148 l 73.543 133.227 l 73.543 133.309
+ l 73.551 133.465 l 73.551 133.547 l 73.559 133.703 l 73.559 133.785 l 73.562
+ 133.863 l 73.562 133.941 l 73.566 134.023 l 73.57 134.102 l 73.57 134.18
+ l 73.574 134.262 l 73.578 134.34 l 73.578 134.422 l 73.582 134.5 l 73.586
+ 134.582 l 73.586 134.66 l 73.59 134.738 l 73.59 134.82 l 73.594 134.898
+ l 73.598 134.98 l 73.598 135.059 l 73.602 135.141 l 73.605 135.219 l 73.605
+ 135.301 l 73.609 135.379 l 73.609 135.461 l 73.613 135.539 l 73.617 135.621
+ l 73.617 135.699 l 73.621 135.781 l 73.625 135.859 l 73.625 135.941 l 73.629
+ 136.02 l 73.629 136.102 l 73.633 136.18 l 73.637 136.262 l 73.637 136.344
+ l 73.641 136.422 l 73.645 136.504 l 73.645 136.582 l 73.648 136.664 l 73.648
+ 136.742 l 73.656 136.906 l 73.656 136.984 l 73.664 137.148 l 73.664 137.227
+ l 73.668 137.309 l 73.668 137.387 l 73.676 137.551 l 73.676 137.629 l 73.684
+ 137.793 l 73.684 137.871 l 73.691 138.035 l 73.691 138.117 l 73.695 138.195
+ l 73.695 138.277 l 73.699 138.359 l 73.703 138.438 l 73.703 138.52 l 73.711
+ 138.684 l 73.711 138.762 l 73.715 138.844 l 73.715 138.926 l 73.719 139.008
+ l 73.723 139.086 l 73.723 139.168 l 73.73 139.332 l 73.73 139.41 l 73.734
+ 139.492 l 73.734 139.574 l 73.742 139.738 l 73.742 139.816 l 73.75 139.98
+ l 73.75 140.062 l 73.754 140.145 l 73.754 140.223 l 73.762 140.387 l 73.762
+ 140.469 l 73.77 140.633 l 73.77 140.715 l 73.773 140.793 l 73.777 140.875
+ l 73.777 140.957 l 73.781 141.039 l 73.781 141.121 l 73.789 141.285 l 73.789
+ 141.363 l 73.797 141.527 l 73.797 141.609 l 73.801 141.691 l 73.801 141.773
+ l 73.809 141.938 l 73.809 142.02 l 73.816 142.184 l 73.816 142.262 l 73.82
+ 142.344 l 73.82 142.426 l 73.828 142.59 l 73.828 142.672 l 73.836 142.836
+ l 73.836 142.918 l 73.84 143 l 73.84 143.082 l 73.848 143.246 l 73.848 
+143.328 l 73.855 143.492 l 73.855 143.574 l 73.859 143.656 l 73.859 143.738
+ l 73.867 143.902 l 73.867 143.984 l 73.875 144.148 l 73.875 144.23 l 73.883
+ 144.395 l 73.883 144.477 l 73.887 144.559 l 73.887 144.641 l 73.895 144.805
+ l 73.895 144.887 l 73.902 145.051 l 73.902 145.133 l 73.906 145.215 l 73.906
+ 145.297 l 73.914 145.461 l 73.914 145.543 l 73.922 145.707 l 73.922 145.789
+ l 73.926 145.871 l 73.926 145.953 l 73.934 146.117 l 73.934 146.199 l 73.938
+ 146.285 l 73.941 146.367 l 73.941 146.449 l 73.945 146.531 l 73.945 146.613
+ l 73.953 146.777 l 73.953 146.859 l 73.961 147.023 l 73.961 147.105 l 73.969
+ 147.27 l 73.969 147.352 l 73.973 147.434 l 73.973 147.52 l 73.98 147.684
+ l 73.98 147.766 l 73.988 147.93 l 73.988 148.012 l 73.992 148.094 l 73.992
+ 148.176 l 74 148.34 l 74 148.426 l 74.008 148.59 l 74.008 148.672 l 74.012
+ 148.754 l 74.012 148.836 l 74.02 149 l 74.02 149.082 l 74.027 149.246 l
+ 74.027 149.332 l 74.031 149.414 l 74.031 149.496 l 74.039 149.66 l 74.039
+ 149.742 l 74.047 149.906 l 74.047 149.988 l 74.051 150.074 l 74.051 150.156
+ l 74.059 150.32 l 74.059 150.402 l 74.066 150.566 l 74.066 150.648 l 74.074
+ 150.812 l 74.074 150.898 l 74.078 150.98 l 74.078 151.062 l 74.086 151.227
+ l 74.086 151.309 l 74.094 151.473 l 74.094 151.555 l 74.098 151.637 l 74.098
+ 151.723 l 74.105 151.887 l 74.105 151.969 l 74.113 152.133 l 74.113 152.215
+ l 74.117 152.297 l 74.117 152.379 l 74.121 152.461 l 74.125 152.547 l 74.125
+ 152.629 l 74.133 152.793 l 74.133 152.875 l 74.137 152.957 l 74.137 153.039
+ l 74.145 153.203 l 74.145 153.285 l 74.148 153.367 l 74.152 153.453 l 74.152
+ 153.535 l 74.16 153.699 l 74.16 153.781 l 74.164 153.863 l 74.164 153.945
+ l 74.172 154.109 l 74.172 154.191 l 74.18 154.355 l 74.18 154.438 l 74.184
+ 154.52 l 74.184 154.605 l 74.191 154.77 l 74.191 154.852 l 74.199 155.016
+ l 74.199 155.098 l 74.203 155.18 l 74.203 155.262 l 74.211 155.426 l 74.211
+ 155.508 l 74.219 155.672 l 74.219 155.754 l 74.223 155.836 l 74.223 155.918
+ l 74.23 156.082 l 74.23 156.164 l 74.238 156.328 l 74.238 156.41 l 74.242
+ 156.492 l 74.242 156.574 l 74.25 156.738 l 74.25 156.82 l 74.254 156.906
+ l 74.258 156.988 l 74.258 157.07 l 74.262 157.152 l 74.266 157.23 l 74.266
+ 157.312 l 74.27 157.395 l 74.27 157.477 l 74.277 157.641 l 74.277 157.723
+ l 74.285 157.887 l 74.285 157.969 l 74.289 158.051 l 74.289 158.133 l 74.297
+ 158.297 l 74.297 158.379 l 74.305 158.543 l 74.305 158.625 l 74.309 158.707
+ l 74.309 158.789 l 74.316 158.953 l 74.316 159.035 l 74.32 159.117 l 74.324
+ 159.195 l 74.324 159.277 l 74.328 159.359 l 74.328 159.441 l 74.336 159.605
+ l 74.336 159.688 l 74.344 159.852 l 74.344 159.934 l 74.348 160.016 l 74.352
+ 160.094 l 74.352 160.176 l 74.355 160.258 l 74.355 160.34 l 74.363 160.504
+ l 74.363 160.586 l 74.367 160.664 l 74.371 160.746 l 74.371 160.828 l 74.375
+ 160.91 l 74.375 160.992 l 74.379 161.074 l 74.383 161.152 l 74.383 161.234
+ l 74.391 161.398 l 74.391 161.48 l 74.395 161.562 l 74.395 161.641 l 74.402
+ 161.805 l 74.402 161.887 l 74.406 161.969 l 74.41 162.047 l 74.41 162.129
+ l 74.414 162.211 l 74.414 162.293 l 74.418 162.371 l 74.422 162.453 l 74.422
+ 162.535 l 74.426 162.617 l 74.43 162.695 l 74.43 162.777 l 74.434 162.859
+ l 74.434 162.941 l 74.438 163.02 l 74.441 163.102 l 74.441 163.184 l 74.445
+ 163.266 l 74.449 163.344 l 74.449 163.426 l 74.453 163.508 l 74.457 163.586
+ l 74.457 163.668 l 74.461 163.75 l 74.461 163.828 l 74.469 163.992 l 74.469
+ 164.07 l 74.477 164.234 l 74.477 164.312 l 74.48 164.395 l 74.48 164.477
+ l 74.484 164.555 l 74.488 164.637 l 74.488 164.715 l 74.496 164.879 l 74.496
+ 164.957 l 74.5 165.039 l 74.5 165.121 l 74.504 165.199 l 74.508 165.281
+ l 74.508 165.359 l 74.512 165.441 l 74.516 165.52 l 74.516 165.602 l 74.52
+ 165.68 l 74.52 165.762 l 74.523 165.844 l 74.527 165.922 l 74.527 166.004
+ l 74.531 166.082 l 74.535 166.164 l 74.535 166.242 l 74.539 166.324 l 74.543
+ 166.402 l 74.543 166.484 l 74.547 166.562 l 74.547 166.645 l 74.551 166.723
+ l 74.555 166.805 l 74.555 166.883 l 74.559 166.965 l 74.562 167.043 l 74.562
+ 167.121 l 74.566 167.203 l 74.566 167.281 l 74.57 167.363 l 74.574 167.441
+ l 74.574 167.523 l 74.582 167.68 l 74.582 167.762 l 74.586 167.84 l 74.586
+ 167.918 l 74.59 168 l 74.594 168.078 l 74.594 168.16 l 74.602 168.316 l
+ 74.602 168.398 l 74.605 168.477 l 74.605 168.555 l 74.609 168.637 l 74.613
+ 168.715 l 74.613 168.793 l 74.617 168.871 l 74.621 168.953 l 74.621 169.031
+ l 74.625 169.109 l 74.625 169.191 l 74.633 169.348 l 74.633 169.426 l 74.637
+ 169.508 l 74.641 169.586 l 74.641 169.664 l 74.645 169.742 l 74.648 169.824
+ l 74.648 169.902 l 74.652 169.98 l 74.652 170.059 l 74.66 170.215 l 74.66
+ 170.297 l 74.668 170.453 l 74.668 170.531 l 74.672 170.609 l 74.672 170.688
+ l 74.676 170.766 l 74.68 170.848 l 74.68 170.926 l 74.688 171.082 l 74.688
+ 171.16 l 74.691 171.238 l 74.691 171.316 l 74.699 171.473 l 74.699 171.551
+ l 74.707 171.707 l 74.707 171.785 l 74.711 171.863 l 74.711 171.941 l 74.719
+ 172.098 l 74.719 172.176 l 74.727 172.332 l 74.727 172.41 l 74.734 172.566
+ l 74.734 172.645 l 74.738 172.723 l 74.738 172.801 l 74.746 172.957 l 74.746
+ 173.035 l 74.75 173.113 l 74.754 173.188 l 74.754 173.266 l 74.758 173.344
+ l 74.758 173.422 l 74.766 173.578 l 74.766 173.656 l 74.77 173.73 l 74.773
+ 173.809 l 74.773 173.887 l 74.777 173.965 l 74.777 174.043 l 74.781 174.117
+ l 74.785 174.195 l 74.785 174.273 l 74.789 174.352 l 74.793 174.426 l 74.793
+ 174.504 l 74.797 174.582 l 74.797 174.656 l 74.805 174.812 l 74.805 174.891
+ l 74.809 174.965 l 74.812 175.043 l 74.812 175.121 l 74.816 175.195 l 74.816
+ 175.273 l 74.82 175.348 l 74.824 175.426 l 74.824 175.504 l 74.828 175.578
+ l 74.832 175.656 l 74.832 175.734 l 74.836 175.809 l 74.84 175.887 l 74.84
+ 175.961 l 74.844 176.039 l 74.844 176.113 l 74.848 176.191 l 74.852 176.266
+ l 74.852 176.344 l 74.855 176.418 l 74.859 176.496 l 74.859 176.57 l 74.863
+ 176.648 l 74.863 176.723 l 74.867 176.801 l 74.871 176.875 l 74.871 176.953
+ l 74.879 177.102 l 74.879 177.18 l 74.883 177.254 l 74.883 177.332 l 74.891
+ 177.48 l 74.891 177.559 l 74.898 177.707 l 74.898 177.785 l 74.902 177.859
+ l 74.902 177.934 l 74.906 178.012 l 74.91 178.086 l 74.91 178.16 l 74.914
+ 178.238 l 74.918 178.312 l 74.918 178.387 l 74.922 178.461 l 74.926 178.539
+ l 74.926 178.613 l 74.93 178.688 l 74.93 178.762 l 74.934 178.836 l 74.938
+ 178.914 l 74.938 178.988 l 74.945 179.137 l 74.945 179.211 l 74.949 179.285
+ l 74.949 179.359 l 74.953 179.438 l 74.957 179.512 l 74.957 179.586 l 74.965
+ 179.734 l 74.965 179.809 l 74.969 179.883 l 74.969 179.957 l 74.977 180.105
+ l 74.977 180.18 l 74.984 180.328 l 74.984 180.402 l 74.988 180.477 l 74.988
+ 180.551 l 74.996 180.699 l 74.996 180.773 l 75.004 180.922 l 75.004 180.992
+ l 75.008 181.066 l 75.008 181.141 l 75.016 181.289 l 75.016 181.363 l 75.02
+ 181.438 l 75.023 181.508 l 75.023 181.582 l 75.031 181.73 l 75.031 181.801
+ l 75.035 181.875 l 75.035 181.949 l 75.039 182.023 l 75.043 182.094 l 75.043
+ 182.168 l 75.051 182.316 l 75.051 182.387 l 75.055 182.461 l 75.055 182.535
+ l 75.059 182.605 l 75.062 182.68 l 75.062 182.75 l 75.07 182.898 l 75.07
+ 182.969 l 75.074 183.043 l 75.074 183.113 l 75.078 183.188 l 75.082 183.258
+ l 75.082 183.332 l 75.086 183.406 l 75.09 183.477 l 75.09 183.551 l 75.094
+ 183.621 l 75.094 183.691 l 75.098 183.766 l 75.102 183.836 l 75.102 183.91
+ l 75.105 183.98 l 75.109 184.055 l 75.109 184.125 l 75.113 184.195 l 75.117
+ 184.27 l 75.117 184.34 l 75.121 184.414 l 75.121 184.484 l 75.125 184.555
+ l 75.129 184.629 l 75.129 184.699 l 75.137 184.84 l 75.137 184.914 l 75.141
+ 184.984 l 75.141 185.055 l 75.145 185.125 l 75.148 185.199 l 75.148 185.27
+ l 75.156 185.41 l 75.156 185.48 l 75.16 185.555 l 75.16 185.625 l 75.168
+ 185.766 l 75.168 185.836 l 75.176 185.977 l 75.176 186.047 l 75.18 186.121
+ l 75.18 186.191 l 75.188 186.332 l 75.188 186.402 l 75.195 186.543 l 75.195
+ 186.613 l 75.199 186.684 l 75.199 186.754 l 75.203 186.82 l 75.207 186.891
+ l 75.207 186.961 l 75.215 187.102 l 75.215 187.172 l 75.223 187.312 l 75.223
+ 187.383 l 75.227 187.449 l 75.227 187.52 l 75.234 187.66 l 75.234 187.73
+ l 75.238 187.797 l 75.242 187.867 l 75.242 187.938 l 75.246 188.008 l 75.246
+ 188.074 l 75.254 188.215 l 75.254 188.281 l 75.262 188.422 l 75.262 188.488
+ l 75.266 188.559 l 75.266 188.629 l 75.27 188.695 l 75.273 188.766 l 75.273
+ 188.832 l 75.277 188.902 l 75.281 188.969 l 75.281 189.039 l 75.285 189.105
+ l 75.285 189.176 l 75.289 189.242 l 75.293 189.312 l 75.293 189.379 l 75.297
+ 189.449 l 75.301 189.516 l 75.301 189.586 l 75.305 189.652 l 75.309 189.723
+ l 75.309 189.789 l 75.312 189.855 l 75.312 189.926 l 75.32 190.059 l 75.32
+ 190.129 l 75.328 190.262 l 75.328 190.332 l 75.332 190.398 l 75.332 190.465
+ l 75.336 190.531 l 75.34 190.602 l 75.34 190.668 l 75.348 190.801 l 75.348
+ 190.867 l 75.352 190.938 l 75.352 191.004 l 75.359 191.137 l 75.359 191.203
+ l 75.367 191.336 l 75.367 191.402 l 75.371 191.469 l 75.371 191.535 l 75.379
+ 191.668 l 75.379 191.734 l 75.387 191.867 l 75.387 191.934 l 75.391 192
+ l 75.391 192.066 l 75.398 192.199 l 75.398 192.266 l 75.406 192.398 l 75.406
+ 192.461 l 75.414 192.594 l 75.414 192.66 l 75.418 192.727 l 75.418 192.789
+ l 75.426 192.922 l 75.426 192.988 l 75.43 193.051 l 75.434 193.117 l 75.434
+ 193.184 l 75.438 193.246 l 75.438 193.312 l 75.441 193.379 l 75.445 193.441
+ l 75.445 193.508 l 75.449 193.574 l 75.453 193.637 l 75.453 193.703 l 75.457
+ 193.766 l 75.457 193.832 l 75.461 193.895 l 75.465 193.961 l 75.465 194.023
+ l 75.469 194.09 l 75.473 194.152 l 75.473 194.219 l 75.477 194.281 l 75.477
+ 194.348 l 75.48 194.41 l 75.484 194.477 l 75.484 194.539 l 75.488 194.602
+ l 75.492 194.668 l 75.492 194.73 l 75.496 194.793 l 75.5 194.859 l 75.5
+ 194.922 l 75.504 194.984 l 75.504 195.051 l 75.512 195.176 l 75.512 195.238
+ l 75.516 195.301 l 75.52 195.367 l 75.52 195.43 l 75.523 195.492 l 75.523
+ 195.555 l 75.531 195.68 l 75.531 195.746 l 75.539 195.871 l 75.539 195.934
+ l 75.543 195.996 l 75.543 196.059 l 75.551 196.184 l 75.551 196.246 l 75.559
+ 196.371 l 75.559 196.434 l 75.562 196.496 l 75.562 196.559 l 75.566 196.621
+ l 75.57 196.68 l 75.57 196.742 l 75.578 196.867 l 75.578 196.93 l 75.582
+ 196.992 l 75.582 197.051 l 75.59 197.176 l 75.59 197.238 l 75.594 197.297
+ l 75.598 197.359 l 75.598 197.422 l 75.602 197.484 l 75.605 197.543 l 75.605
+ 197.605 l 75.609 197.668 l 75.609 197.727 l 75.613 197.789 l 75.617 197.848
+ l 75.617 197.91 l 75.621 197.973 l 75.625 198.031 l 75.625 198.094 l 75.629
+ 198.152 l 75.629 198.215 l 75.633 198.273 l 75.637 198.336 l 75.637 198.395
+ l 75.641 198.457 l 75.645 198.516 l 75.645 198.574 l 75.648 198.637 l 75.648
+ 198.695 l 75.652 198.758 l 75.656 198.816 l 75.656 198.875 l 75.66 198.938
+ l 75.664 198.996 l 75.664 199.055 l 75.668 199.113 l 75.668 199.176 l 75.676
+ 199.293 l 75.676 199.352 l 75.68 199.414 l 75.684 199.473 l 75.684 199.531
+ l 75.691 199.648 l 75.691 199.707 l 75.695 199.77 l 75.695 199.828 l 75.703
+ 199.945 l 75.703 200.004 l 75.711 200.121 l 75.711 200.18 l 75.715 200.238
+ l 75.715 200.297 l 75.723 200.414 l 75.723 200.473 l 75.727 200.527 l 75.73
+ 200.586 l 75.73 200.645 l 75.734 200.703 l 75.734 200.762 l 75.742 200.879
+ l 75.742 200.934 l 75.75 201.051 l 75.75 201.109 l 75.754 201.164 l 75.754
+ 201.223 l 75.758 201.281 l 75.762 201.336 l 75.762 201.395 l 75.766 201.453
+ l 75.77 201.508 l 75.77 201.566 l 75.773 201.625 l 75.773 201.68 l 75.777
+ 201.738 l 75.781 201.793 l 75.781 201.852 l 75.785 201.906 l 75.789 201.965
+ l 75.789 202.02 l 75.793 202.078 l 75.797 202.133 l 75.797 202.191 l 75.801
+ 202.246 l 75.801 202.301 l 75.805 202.359 l 75.809 202.414 l 75.809 202.473
+ l 75.816 202.582 l 75.816 202.637 l 75.82 202.695 l 75.82 202.75 l 75.824
+ 202.805 l 75.828 202.863 l 75.828 202.918 l 75.836 203.027 l 75.836 203.082
+ l 75.84 203.141 l 75.84 203.195 l 75.848 203.305 l 75.848 203.359 l 75.855
+ 203.469 l 75.855 203.523 l 75.859 203.578 l 75.859 203.633 l 75.867 203.742
+ l 75.867 203.797 l 75.875 203.906 l 75.875 203.961 l 75.883 204.07 l 75.883
+ 204.125 l 75.887 204.176 l 75.887 204.23 l 75.895 204.34 l 75.895 204.395
+ l 75.898 204.445 l 75.902 204.5 l 75.902 204.555 l 75.906 204.609 l 75.906
+ 204.66 l 75.914 204.77 l 75.914 204.82 l 75.918 204.875 l 75.922 204.926
+ l 75.922 204.98 l 75.926 205.035 l 75.926 205.086 l 75.93 205.141 l 75.934
+ 205.191 l 75.934 205.246 l 75.938 205.297 l 75.941 205.352 l 75.941 205.402
+ l 75.945 205.457 l 75.945 205.508 l 75.949 205.562 l 75.953 205.613 l 75.953
+ 205.664 l 75.957 205.719 l 75.961 205.77 l 75.961 205.82 l 75.965 205.875
+ l 75.965 205.926 l 75.973 206.027 l 75.973 206.082 l 75.98 206.184 l 75.98
+ 206.234 l 75.984 206.289 l 75.988 206.34 l 75.988 206.391 l 75.992 206.441
+ l 75.992 206.492 l 76 206.594 l 76 206.645 l 76.008 206.746 l 76.008 206.797
+ l 76.012 206.848 l 76.012 206.898 l 76.02 207 l 76.02 207.051 l 76.027 
+207.152 l 76.027 207.203 l 76.031 207.254 l 76.031 207.301 l 76.039 207.402
+ l 76.039 207.453 l 76.043 207.504 l 76.047 207.551 l 76.047 207.602 l 76.051
+ 207.652 l 76.051 207.699 l 76.059 207.801 l 76.059 207.848 l 76.066 207.949
+ l 76.066 207.996 l 76.07 208.047 l 76.074 208.094 l 76.074 208.145 l 76.078
+ 208.191 l 76.078 208.242 l 76.082 208.289 l 76.086 208.34 l 76.086 208.387
+ l 76.09 208.438 l 76.094 208.484 l 76.094 208.535 l 76.098 208.582 l 76.098
+ 208.629 l 76.102 208.68 l 76.105 208.727 l 76.105 208.773 l 76.109 208.824
+ l 76.113 208.871 l 76.113 208.918 l 76.117 208.965 l 76.117 209.016 l 76.125
+ 209.109 l 76.125 209.156 l 76.129 209.203 l 76.133 209.254 l 76.133 209.301
+ l 76.137 209.348 l 76.137 209.395 l 76.145 209.488 l 76.145 209.535 l 76.152
+ 209.629 l 76.152 209.676 l 76.156 209.723 l 76.156 209.77 l 76.164 209.863
+ l 76.164 209.91 l 76.168 209.957 l 76.172 210 l 76.172 210.047 l 76.18 
+210.141 l 76.18 210.188 l 76.184 210.23 l 76.184 210.277 l 76.191 210.371
+ l 76.191 210.414 l 76.199 210.508 l 76.199 210.551 l 76.203 210.598 l 76.203
+ 210.645 l 76.207 210.688 l 76.211 210.734 l 76.211 210.777 l 76.215 210.824
+ l 76.219 210.867 l 76.219 210.914 l 76.223 210.957 l 76.223 211.004 l 76.227
+ 211.047 l 76.23 211.094 l 76.23 211.137 l 76.234 211.184 l 76.238 211.227
+ l 76.238 211.27 l 76.242 211.316 l 76.242 211.359 l 76.246 211.402 l 76.25
+ 211.449 l 76.25 211.492 l 76.258 211.578 l 76.258 211.625 l 76.266 211.711
+ l 76.266 211.754 l 76.27 211.797 l 76.27 211.844 l 76.277 211.93 l 76.277
+ 211.973 l 76.285 212.059 l 76.285 212.102 l 76.289 212.145 l 76.289 212.188
+ l 76.297 212.273 l 76.297 212.316 l 76.305 212.402 l 76.305 212.445 l 76.309
+ 212.484 l 76.309 212.527 l 76.316 212.613 l 76.316 212.656 l 76.32 212.695
+ l 76.324 212.738 l 76.324 212.781 l 76.328 212.824 l 76.328 212.863 l 76.336
+ 212.949 l 76.336 212.988 l 76.344 213.074 l 76.344 213.113 l 76.348 213.156
+ l 76.348 213.195 l 76.352 213.238 l 76.355 213.277 l 76.355 213.32 l 76.359
+ 213.359 l 76.363 213.402 l 76.363 213.441 l 76.367 213.484 l 76.371 213.523
+ l 76.371 213.566 l 76.375 213.605 l 76.375 213.645 l 76.379 213.688 l 76.383
+ 213.727 l 76.383 213.766 l 76.387 213.809 l 76.391 213.848 l 76.391 213.887
+ l 76.395 213.926 l 76.395 213.969 l 76.402 214.047 l 76.402 214.086 l 76.41
+ 214.164 l 76.41 214.203 l 76.414 214.246 l 76.414 214.285 l 76.422 214.363
+ l 76.422 214.402 l 76.43 214.48 l 76.43 214.52 l 76.434 214.559 l 76.434
+ 214.598 l 76.438 214.637 l 76.441 214.672 l 76.441 214.711 l 76.449 214.789
+ l 76.449 214.828 l 76.453 214.867 l 76.453 214.902 l 76.461 214.98 l 76.461
+ 215.02 l 76.465 215.055 l 76.469 215.094 l 76.469 215.133 l 76.473 215.168
+ l 76.477 215.207 l 76.477 215.246 l 76.48 215.281 l 76.48 215.32 l 76.484
+ 215.355 l 76.488 215.395 l 76.488 215.43 l 76.492 215.469 l 76.496 215.504
+ l 76.496 215.543 l 76.5 215.578 l 76.5 215.617 l 76.504 215.652 l 76.508
+ 215.691 l 76.508 215.727 l 76.512 215.762 l 76.516 215.801 l 76.516 215.836
+ l 76.52 215.871 l 76.52 215.91 l 76.527 215.98 l 76.527 216.016 l 76.531
+ 216.055 l 76.535 216.09 l 76.535 216.125 l 76.539 216.16 l 76.539 216.195
+ l 76.547 216.266 l 76.547 216.305 l 76.555 216.375 l 76.555 216.41 l 76.562
+ 216.48 l 76.562 216.516 l 76.566 216.551 l 76.566 216.586 l 76.57 216.621
+ l 76.574 216.652 l 76.574 216.688 l 76.582 216.758 l 76.582 216.793 l 76.586
+ 216.828 l 76.586 216.859 l 76.594 216.93 l 76.594 216.965 l 76.598 216.996
+ l 76.602 217.031 l 76.602 217.066 l 76.605 217.102 l 76.605 217.133 l 76.609
+ 217.168 l 76.613 217.199 l 76.613 217.234 l 76.617 217.27 l 76.621 217.301
+ l 76.621 217.336 l 76.625 217.367 l 76.625 217.402 l 76.629 217.434 l 76.633
+ 217.469 l 76.633 217.5 l 76.637 217.535 l 76.641 217.566 l 76.641 217.598
+ l 76.645 217.633 l 76.645 217.664 l 76.648 217.695 l 76.652 217.73 l 76.652
+ 217.762 l 76.656 217.793 l 76.66 217.828 l 76.66 217.859 l 76.668 217.922
+ l 76.668 217.953 l 76.672 217.988 l 76.672 218.02 l 76.68 218.082 l 76.68
+ 218.113 l 76.688 218.176 l 76.688 218.207 l 76.691 218.238 l 76.691 218.27
+ l 76.699 218.332 l 76.699 218.363 l 76.707 218.426 l 76.707 218.457 l 76.711
+ 218.488 l 76.711 218.52 l 76.715 218.547 l 76.719 218.578 l 76.719 218.609
+ l 76.727 218.672 l 76.727 218.699 l 76.73 218.73 l 76.73 218.762 l 76.734
+ 218.793 l 76.738 218.82 l 76.738 218.852 l 76.742 218.879 l 76.746 218.91
+ l 76.746 218.941 l 76.75 218.969 l 76.754 219 l 76.754 219.027 l 76.758
+ 219.059 l 76.758 219.086 l 76.762 219.117 l 76.766 219.145 l 76.766 219.176
+ l 76.77 219.203 l 76.773 219.234 l 76.773 219.262 l 76.777 219.289 l 76.777
+ 219.32 l 76.785 219.375 l 76.785 219.406 l 76.793 219.461 l 76.793 219.492
+ l 76.797 219.52 l 76.797 219.547 l 76.805 219.602 l 76.805 219.629 l 76.809
+ 219.66 l 76.812 219.688 l 76.812 219.715 l 76.816 219.742 l 76.816 219.77
+ l 76.824 219.824 l 76.824 219.852 l 76.832 219.906 l 76.832 219.934 l 76.836
+ 219.961 l 76.836 219.988 l 76.844 220.043 l 76.844 220.066 l 76.852 220.121
+ l 76.852 220.148 l 76.855 220.176 l 76.859 220.199 l 76.859 220.227 l 76.863
+ 220.254 l 76.863 220.281 l 76.867 220.305 l 76.871 220.332 l 76.871 220.359
+ l 76.875 220.383 l 76.879 220.41 l 76.879 220.438 l 76.883 220.461 l 76.883
+ 220.488 l 76.887 220.512 l 76.891 220.539 l 76.891 220.562 l 76.895 220.59
+ l 76.898 220.613 l 76.898 220.641 l 76.902 220.664 l 76.902 220.691 l 76.91
+ 220.738 l 76.91 220.766 l 76.918 220.812 l 76.918 220.84 l 76.922 220.863
+ l 76.922 220.887 l 76.926 220.91 l 76.93 220.938 l 76.93 220.961 l 76.938
+ 221.008 l 76.938 221.031 l 76.941 221.059 l 76.945 221.082 l 76.945 221.105
+ l 76.949 221.129 l 76.949 221.152 l 76.957 221.199 l 76.957 221.223 l 76.965
+ 221.27 l 76.965 221.293 l 76.969 221.316 l 76.969 221.34 l 76.977 221.387
+ l 76.977 221.406 l 76.984 221.453 l 76.984 221.477 l 76.988 221.5 l 76.988
+ 221.523 l 76.992 221.543 l 76.996 221.566 l 76.996 221.59 l 77 221.609 
+l 77.004 221.633 l 77.004 221.656 l 77.008 221.676 l 77.008 221.699 l 77.012
+ 221.723 l 77.016 221.742 l 77.016 221.766 l 77.02 221.785 l 77.023 221.809
+ l 77.023 221.828 l 77.027 221.852 l 77.027 221.871 l 77.031 221.895 l 77.035
+ 221.914 l 77.035 221.938 l 77.043 221.977 l 77.043 222 l 77.051 222.039
+ l 77.051 222.062 l 77.055 222.082 l 77.055 222.102 l 77.059 222.125 l 77.062
+ 222.145 l 77.062 222.164 l 77.07 222.203 l 77.07 222.227 l 77.074 222.246
+ l 77.074 222.266 l 77.082 222.305 l 77.082 222.324 l 77.09 222.363 l 77.09
+ 222.383 l 77.094 222.402 l 77.094 222.422 l 77.102 222.461 l 77.102 222.48
+ l 77.109 222.52 l 77.109 222.539 l 77.113 222.559 l 77.113 222.574 l 77.121
+ 222.613 l 77.121 222.633 l 77.125 222.652 l 77.129 222.668 l 77.129 222.688
+ l 77.133 222.707 l 77.137 222.723 l 77.137 222.742 l 77.141 222.762 l 77.141
+ 222.777 l 77.148 222.816 l 77.148 222.832 l 77.152 222.852 l 77.156 222.867
+ l 77.156 222.887 l 77.16 222.902 l 77.16 222.922 l 77.164 222.938 l 77.168
+ 222.957 l 77.168 222.973 l 77.172 222.992 l 77.176 223.008 l 77.176 223.023
+ l 77.18 223.043 l 77.18 223.059 l 77.184 223.074 l 77.188 223.094 l 77.188
+ 223.109 l 77.191 223.125 l 77.195 223.145 l 77.195 223.16 l 77.199 223.176
+ l 77.199 223.191 l 77.207 223.223 l 77.207 223.242 l 77.215 223.273 l 77.215
+ 223.289 l 77.219 223.305 l 77.219 223.32 l 77.227 223.352 l 77.227 223.367
+ l 77.234 223.398 l 77.234 223.414 l 77.242 223.445 l 77.242 223.461 l 77.246
+ 223.477 l 77.246 223.488 l 77.254 223.52 l 77.254 223.535 l 77.258 223.551
+ l 77.262 223.562 l 77.262 223.578 l 77.266 223.594 l 77.266 223.609 l 77.27
+ 223.621 l 77.273 223.637 l 77.273 223.652 l 77.277 223.664 l 77.281 223.68
+ l 77.281 223.691 l 77.285 223.707 l 77.285 223.723 l 77.289 223.734 l 77.293
+ 223.75 l 77.293 223.762 l 77.297 223.777 l 77.301 223.789 l 77.301 223.805
+ l 77.305 223.816 l 77.305 223.828 l 77.309 223.844 l 77.312 223.855 l 77.312
+ 223.867 l 77.316 223.883 l 77.32 223.895 l 77.32 223.906 l 77.324 223.922
+ l 77.328 223.934 l 77.328 223.945 l 77.332 223.961 l 77.332 223.973 l 77.34
+ 223.996 l 77.34 224.008 l 77.344 224.02 l 77.348 224.035 l 77.348 224.047
+ l 77.352 224.059 l 77.352 224.07 l 77.359 224.094 l 77.359 224.105 l 77.367
+ 224.129 l 77.367 224.141 l 77.371 224.152 l 77.371 224.164 l 77.379 224.188
+ l 77.379 224.195 l 77.387 224.219 l 77.387 224.23 l 77.391 224.242 l 77.391
+ 224.254 l 77.395 224.262 l 77.398 224.273 l 77.398 224.285 l 77.402 224.297
+ l 77.406 224.305 l 77.406 224.316 l 77.41 224.328 l 77.41 224.336 l 77.414
+ 224.348 l 77.418 224.355 l 77.418 224.367 l 77.422 224.379 l 77.426 224.387
+ l 77.426 224.398 l 77.43 224.406 l 77.434 224.418 l 77.434 224.426 l 77.438
+ 224.438 l 77.438 224.445 l 77.441 224.457 l 77.445 224.465 l 77.445 224.473
+ l 77.449 224.484 l 77.453 224.492 l 77.453 224.5 l 77.457 224.512 l 77.457
+ 224.52 l 77.461 224.527 l 77.465 224.539 l 77.465 224.547 l 77.473 224.562
+ l 77.473 224.57 l 77.477 224.582 l 77.477 224.59 l 77.484 224.605 l 77.484
+ 224.613 l 77.492 224.629 l 77.492 224.637 l 77.496 224.645 l 77.496 224.652
+ l 77.504 224.668 l 77.504 224.676 l 77.512 224.691 l 77.512 224.699 l 77.52
+ 224.715 l 77.52 224.723 l 77.523 224.73 l 77.523 224.738 l 77.527 224.742
+ l 77.531 224.75 l 77.531 224.758 l 77.535 224.766 l 77.539 224.77 l 77.539
+ 224.777 l 77.543 224.785 l 77.543 224.793 l 77.547 224.797 l 77.551 224.805
+ l 77.551 224.809 l 77.559 224.824 l 77.559 224.828 l 77.562 224.836 l 77.562
+ 224.84 l 77.566 224.848 l 77.57 224.852 l 77.57 224.859 l 77.574 224.863
+ l 77.578 224.871 l 77.578 224.875 l 77.582 224.883 l 77.582 224.887 l 77.586
+ 224.895 l 77.59 224.898 l 77.59 224.902 l 77.594 224.91 l 77.598 224.914
+ l 77.598 224.918 l 77.602 224.922 l 77.602 224.93 l 77.609 224.938 l 77.609
+ 224.941 l 77.613 224.949 l 77.617 224.953 l 77.617 224.957 l 77.625 224.965
+ l 77.625 224.969 l 77.629 224.973 l 77.629 224.98 l 77.637 224.988 l 77.637
+ 224.992 l 77.645 225 l 77.645 225.004 l 77.656 225.016 l 77.656 225.02 
+l 77.664 225.027 l 77.664 225.031 l 77.676 225.043 l 77.676 225.047 l 77.68
+ 225.047 l 77.684 225.051 l 77.684 225.055 l 77.688 225.055 l 77.688 225.059
+ l 77.691 225.062 l 77.695 225.062 l 77.695 225.066 l 77.699 225.07 l 77.703
+ 225.07 l 77.703 225.074 l 77.707 225.074 l 77.719 225.086 l 77.723 225.086
+ l 77.723 225.09 l 77.73 225.09 l 77.73 225.094 l 77.734 225.094 l 77.738
+ 225.098 l 77.742 225.098 l 77.746 225.102 l 77.754 225.102 l 77.758 225.105
+ l 77.809 225.105 l 77.809 225.102 l 77.82 225.102 l 77.82 225.098 l 77.828
+ 225.098 l 77.828 225.094 l 77.836 225.094 l 77.836 225.09 l 77.84 225.09
+ l 77.844 225.086 l 77.848 225.086 l 77.848 225.082 l 77.852 225.082 l 77.863
+ 225.07 l 77.867 225.07 l 77.867 225.066 l 77.871 225.066 l 77.875 225.062
+ l 77.875 225.059 l 77.879 225.059 l 77.879 225.055 l 77.883 225.051 l 77.887
+ 225.051 l 77.887 225.047 l 77.891 225.043 l 77.895 225.043 l 77.895 225.039
+ l 77.902 225.031 l 77.902 225.027 l 77.906 225.027 l 77.906 225.023 l 77.914
+ 225.016 l 77.914 225.012 l 77.922 225.004 l 77.922 225 l 77.926 224.996
+ l 77.926 224.992 l 77.934 224.984 l 77.934 224.98 l 77.941 224.973 l 77.941
+ 224.969 l 77.945 224.965 l 77.945 224.961 l 77.953 224.953 l 77.953 224.949
+ l 77.957 224.941 l 77.961 224.938 l 77.961 224.934 l 77.965 224.93 l 77.965
+ 224.922 l 77.973 224.914 l 77.973 224.91 l 77.977 224.902 l 77.98 224.898
+ l 77.98 224.895 l 77.984 224.887 l 77.984 224.883 l 77.988 224.879 l 77.992
+ 224.871 l 77.992 224.867 l 77.996 224.859 l 78 224.855 l 78 224.848 l 78.004
+ 224.844 l 78.008 224.836 l 78.008 224.832 l 78.012 224.824 l 78.012 224.82
+ l 78.016 224.812 l 78.02 224.809 l 78.02 224.801 l 78.023 224.793 l 78.027
+ 224.789 l 78.027 224.781 l 78.031 224.777 l 78.031 224.77 l 78.039 224.754
+ l 78.039 224.75 l 78.047 224.734 l 78.047 224.727 l 78.051 224.723 l 78.051
+ 224.715 l 78.059 224.699 l 78.059 224.691 l 78.062 224.684 l 78.066 224.68
+ l 78.066 224.672 l 78.07 224.664 l 78.07 224.656 l 78.078 224.641 l 78.078
+ 224.633 l 78.086 224.617 l 78.086 224.609 l 78.094 224.594 l 78.094 224.586
+ l 78.098 224.578 l 78.098 224.566 l 78.105 224.551 l 78.105 224.543 l 78.113
+ 224.527 l 78.113 224.516 l 78.117 224.508 l 78.117 224.5 l 78.121 224.492
+ l 78.125 224.48 l 78.125 224.473 l 78.133 224.457 l 78.133 224.445 l 78.137
+ 224.438 l 78.137 224.426 l 78.145 224.41 l 78.145 224.398 l 78.148 224.391
+ l 78.152 224.379 l 78.152 224.371 l 78.156 224.359 l 78.156 224.352 l 78.16
+ 224.34 l 78.164 224.332 l 78.164 224.32 l 78.168 224.312 l 78.172 224.301
+ l 78.172 224.293 l 78.176 224.281 l 78.176 224.27 l 78.18 224.262 l 78.184
+ 224.25 l 78.184 224.242 l 78.191 224.219 l 78.191 224.207 l 78.195 224.199
+ l 78.199 224.188 l 78.199 224.176 l 78.203 224.164 l 78.203 224.156 l 78.211
+ 224.133 l 78.211 224.121 l 78.215 224.109 l 78.219 224.102 l 78.219 224.09
+ l 78.223 224.078 l 78.223 224.066 l 78.23 224.043 l 78.23 224.031 l 78.238
+ 224.008 l 78.238 223.996 l 78.242 223.984 l 78.242 223.973 l 78.25 223.949
+ l 78.25 223.938 l 78.258 223.914 l 78.258 223.898 l 78.262 223.887 l 78.262
+ 223.875 l 78.27 223.852 l 78.27 223.84 l 78.273 223.824 l 78.277 223.812
+ l 78.277 223.801 l 78.281 223.789 l 78.285 223.773 l 78.285 223.762 l 78.289
+ 223.75 l 78.289 223.734 l 78.297 223.711 l 78.297 223.695 l 78.305 223.672
+ l 78.305 223.656 l 78.309 223.645 l 78.309 223.629 l 78.312 223.617 l 78.316
+ 223.602 l 78.316 223.59 l 78.32 223.574 l 78.324 223.562 l 78.324 223.547
+ l 78.328 223.535 l 78.328 223.52 l 78.332 223.508 l 78.336 223.492 l 78.336
+ 223.477 l 78.34 223.465 l 78.344 223.449 l 78.344 223.434 l 78.348 223.422
+ l 78.348 223.406 l 78.352 223.391 l 78.355 223.379 l 78.355 223.363 l 78.363
+ 223.332 l 78.363 223.32 l 78.367 223.305 l 78.367 223.289 l 78.375 223.258
+ l 78.375 223.242 l 78.379 223.23 l 78.383 223.215 l 78.383 223.199 l 78.391
+ 223.168 l 78.391 223.152 l 78.395 223.137 l 78.395 223.121 l 78.402 223.09
+ l 78.402 223.074 l 78.41 223.043 l 78.41 223.027 l 78.414 223.012 l 78.414
+ 222.996 l 78.422 222.965 l 78.422 222.949 l 78.426 222.93 l 78.43 222.914
+ l 78.43 222.898 l 78.434 222.883 l 78.434 222.867 l 78.438 222.848 l 78.441
+ 222.832 l 78.441 222.816 l 78.445 222.801 l 78.449 222.781 l 78.449 222.766
+ l 78.453 222.75 l 78.453 222.73 l 78.461 222.699 l 78.461 222.68 l 78.469
+ 222.648 l 78.469 222.629 l 78.473 222.613 l 78.477 222.594 l 78.477 222.578
+ l 78.48 222.559 l 78.48 222.543 l 78.484 222.523 l 78.488 222.508 l 78.488
+ 222.488 l 78.492 222.473 l 78.496 222.453 l 78.496 222.438 l 78.5 222.418
+ l 78.5 222.402 l 78.508 222.363 l 78.508 222.348 l 78.516 222.309 l 78.516
+ 222.293 l 78.52 222.273 l 78.52 222.254 l 78.523 222.238 l 78.527 222.219
+ l 78.527 222.199 l 78.531 222.18 l 78.535 222.164 l 78.535 222.145 l 78.539
+ 222.125 l 78.539 222.105 l 78.547 222.066 l 78.547 222.051 l 78.555 222.012
+ l 78.555 221.992 l 78.559 221.973 l 78.559 221.953 l 78.566 221.914 l 78.566
+ 221.895 l 78.574 221.855 l 78.574 221.836 l 78.582 221.797 l 78.582 221.777
+ l 78.586 221.758 l 78.586 221.738 l 78.594 221.699 l 78.594 221.676 l 78.602
+ 221.637 l 78.602 221.617 l 78.605 221.598 l 78.605 221.578 l 78.609 221.555
+ l 78.613 221.535 l 78.613 221.516 l 78.617 221.496 l 78.621 221.473 l 78.621
+ 221.453 l 78.625 221.434 l 78.625 221.41 l 78.633 221.371 l 78.633 221.348
+ l 78.641 221.309 l 78.641 221.285 l 78.645 221.266 l 78.645 221.242 l 78.648
+ 221.223 l 78.652 221.199 l 78.652 221.18 l 78.656 221.16 l 78.66 221.137
+ l 78.66 221.117 l 78.668 221.07 l 78.668 221.051 l 78.672 221.027 l 78.672
+ 221.008 l 78.676 220.984 l 78.68 220.965 l 78.68 220.941 l 78.684 220.918
+ l 78.688 220.898 l 78.688 220.875 l 78.691 220.852 l 78.691 220.832 l 78.699
+ 220.785 l 78.699 220.766 l 78.707 220.719 l 78.707 220.695 l 78.711 220.676
+ l 78.711 220.652 l 78.719 220.605 l 78.719 220.582 l 78.723 220.559 l 78.727
+ 220.539 l 78.727 220.516 l 78.73 220.492 l 78.73 220.469 l 78.738 220.422
+ l 78.738 220.398 l 78.746 220.352 l 78.746 220.328 l 78.75 220.305 l 78.75
+ 220.281 l 78.758 220.234 l 78.758 220.211 l 78.766 220.164 l 78.766 220.141
+ l 78.773 220.094 l 78.773 220.07 l 78.777 220.047 l 78.777 220.02 l 78.785
+ 219.973 l 78.785 219.949 l 78.789 219.926 l 78.793 219.898 l 78.793 219.875
+ l 78.797 219.852 l 78.797 219.828 l 78.801 219.801 l 78.805 219.777 l 78.805
+ 219.754 l 78.809 219.73 l 78.812 219.703 l 78.812 219.68 l 78.816 219.656
+ l 78.816 219.629 l 78.82 219.605 l 78.824 219.578 l 78.824 219.555 l 78.828
+ 219.531 l 78.832 219.504 l 78.832 219.48 l 78.836 219.453 l 78.836 219.43
+ l 78.84 219.402 l 78.844 219.379 l 78.844 219.352 l 78.848 219.328 l 78.852
+ 219.301 l 78.852 219.277 l 78.855 219.25 l 78.859 219.227 l 78.859 219.199
+ l 78.863 219.176 l 78.863 219.148 l 78.867 219.121 l 78.871 219.098 l 78.871
+ 219.07 l 78.875 219.043 l 78.879 219.02 l 78.879 218.992 l 78.883 218.965
+ l 78.883 218.941 l 78.891 218.887 l 78.891 218.859 l 78.895 218.836 l 78.898
+ 218.809 l 78.898 218.781 l 78.902 218.754 l 78.902 218.73 l 78.91 218.676
+ l 78.91 218.648 l 78.918 218.594 l 78.918 218.566 l 78.922 218.543 l 78.922
+ 218.516 l 78.93 218.461 l 78.93 218.434 l 78.938 218.379 l 78.938 218.352
+ l 78.941 218.324 l 78.941 218.297 l 78.949 218.242 l 78.949 218.215 l 78.957
+ 218.16 l 78.957 218.133 l 78.965 218.078 l 78.965 218.047 l 78.969 218.02
+ l 78.969 217.992 l 78.977 217.938 l 78.977 217.91 l 78.98 217.879 l 78.984
+ 217.852 l 78.984 217.824 l 78.988 217.797 l 78.988 217.77 l 78.992 217.738
+ l 78.996 217.711 l 78.996 217.684 l 79 217.656 l 79.004 217.625 l 79.004
+ 217.598 l 79.008 217.57 l 79.008 217.539 l 79.016 217.484 l 79.016 217.453
+ l 79.02 217.426 l 79.023 217.395 l 79.023 217.367 l 79.027 217.34 l 79.027
+ 217.309 l 79.031 217.281 l 79.035 217.25 l 79.035 217.223 l 79.039 217.191
+ l 79.043 217.164 l 79.043 217.133 l 79.047 217.105 l 79.051 217.074 l 79.051
+ 217.047 l 79.055 217.016 l 79.055 216.988 l 79.062 216.926 l 79.062 216.898
+ l 79.066 216.867 l 79.07 216.84 l 79.07 216.809 l 79.074 216.777 l 79.074
+ 216.75 l 79.082 216.688 l 79.082 216.66 l 79.09 216.598 l 79.09 216.57 
+l 79.094 216.539 l 79.094 216.508 l 79.098 216.477 l 79.102 216.449 l 79.102
+ 216.418 l 79.109 216.355 l 79.109 216.324 l 79.113 216.293 l 79.113 216.266
+ l 79.121 216.203 l 79.121 216.172 l 79.129 216.109 l 79.129 216.078 l 79.133
+ 216.047 l 79.133 216.016 l 79.137 215.988 l 79.141 215.957 l 79.141 215.926
+ l 79.148 215.863 l 79.148 215.832 l 79.156 215.77 l 79.156 215.738 l 79.16
+ 215.707 l 79.16 215.672 l 79.168 215.609 l 79.168 215.578 l 79.176 215.516
+ l 79.176 215.484 l 79.18 215.453 l 79.18 215.422 l 79.184 215.387 l 79.188
+ 215.355 l 79.188 215.324 l 79.195 215.262 l 79.195 215.227 l 79.199 215.195
+ l 79.199 215.164 l 79.203 215.133 l 79.207 215.098 l 79.207 215.066 l 79.215
+ 215.004 l 79.215 214.969 l 79.219 214.938 l 79.219 214.906 l 79.223 214.871
+ l 79.227 214.84 l 79.227 214.809 l 79.23 214.773 l 79.234 214.742 l 79.234
+ 214.707 l 79.238 214.676 l 79.238 214.645 l 79.242 214.609 l 79.246 214.578
+ l 79.246 214.543 l 79.25 214.512 l 79.254 214.477 l 79.254 214.445 l 79.258
+ 214.41 l 79.262 214.379 l 79.262 214.344 l 79.266 214.312 l 79.266 214.277
+ l 79.27 214.246 l 79.273 214.211 l 79.273 214.18 l 79.281 214.109 l 79.281
+ 214.078 l 79.285 214.043 l 79.285 214.012 l 79.293 213.941 l 79.293 213.91
+ l 79.301 213.84 l 79.301 213.809 l 79.305 213.773 l 79.305 213.738 l 79.309
+ 213.707 l 79.312 213.672 l 79.312 213.637 l 79.316 213.602 l 79.32 213.57
+ l 79.32 213.535 l 79.324 213.5 l 79.324 213.465 l 79.328 213.43 l 79.332
+ 213.398 l 79.332 213.363 l 79.34 213.293 l 79.34 213.258 l 79.348 213.188
+ l 79.348 213.156 l 79.352 213.121 l 79.352 213.086 l 79.359 213.016 l 79.359
+ 212.98 l 79.367 212.91 l 79.367 212.875 l 79.371 212.84 l 79.371 212.805
+ l 79.379 212.734 l 79.379 212.699 l 79.387 212.629 l 79.387 212.594 l 79.391
+ 212.559 l 79.391 212.523 l 79.398 212.453 l 79.398 212.418 l 79.402 212.379
+ l 79.406 212.344 l 79.406 212.309 l 79.41 212.273 l 79.41 212.238 l 79.418
+ 212.168 l 79.418 212.129 l 79.426 212.059 l 79.426 212.023 l 79.43 211.984
+ l 79.43 211.949 l 79.438 211.879 l 79.438 211.84 l 79.445 211.77 l 79.445
+ 211.734 l 79.449 211.695 l 79.453 211.66 l 79.453 211.625 l 79.457 211.586
+ l 79.457 211.551 l 79.461 211.516 l 79.465 211.477 l 79.465 211.441 l 79.469
+ 211.402 l 79.473 211.367 l 79.473 211.332 l 79.477 211.293 l 79.477 211.258
+ l 79.48 211.219 l 79.484 211.184 l 79.484 211.148 l 79.488 211.109 l 79.492
+ 211.074 l 79.492 211.035 l 79.496 211 l 79.496 210.961 l 79.5 210.926 l
+ 79.504 210.887 l 79.504 210.852 l 79.512 210.773 l 79.512 210.738 l 79.516
+ 210.699 l 79.516 210.664 l 79.52 210.625 l 79.523 210.59 l 79.523 210.551
+ l 79.527 210.512 l 79.531 210.477 l 79.531 210.438 l 79.535 210.398 l 79.539
+ 210.363 l 79.539 210.324 l 79.543 210.285 l 79.543 210.25 l 79.551 210.172
+ l 79.551 210.137 l 79.559 210.059 l 79.559 210.02 l 79.562 209.984 l 79.562
+ 209.945 l 79.57 209.867 l 79.57 209.832 l 79.578 209.754 l 79.578 209.715
+ l 79.582 209.676 l 79.582 209.637 l 79.586 209.602 l 79.59 209.562 l 79.59
+ 209.523 l 79.598 209.445 l 79.598 209.406 l 79.602 209.367 l 79.602 209.328
+ l 79.605 209.293 l 79.609 209.254 l 79.609 209.215 l 79.617 209.137 l 79.617
+ 209.098 l 79.621 209.059 l 79.621 209.02 l 79.629 208.941 l 79.629 208.902
+ l 79.637 208.824 l 79.637 208.785 l 79.645 208.707 l 79.645 208.668 l 79.648
+ 208.625 l 79.648 208.586 l 79.656 208.508 l 79.656 208.469 l 79.664 208.391
+ l 79.664 208.352 l 79.668 208.312 l 79.668 208.27 l 79.676 208.191 l 79.676
+ 208.152 l 79.684 208.074 l 79.684 208.031 l 79.688 207.992 l 79.688 207.953
+ l 79.691 207.914 l 79.695 207.871 l 79.695 207.832 l 79.703 207.754 l 79.703
+ 207.711 l 79.707 207.672 l 79.707 207.633 l 79.711 207.59 l 79.715 207.551
+ l 79.715 207.512 l 79.719 207.473 l 79.723 207.43 l 79.723 207.391 l 79.727
+ 207.348 l 79.73 207.309 l 79.73 207.27 l 79.734 207.227 l 79.734 207.188
+ l 79.738 207.148 l 79.742 207.105 l 79.742 207.066 l 79.746 207.023 l 79.75
+ 206.984 l 79.75 206.941 l 79.754 206.902 l 79.754 206.863 l 79.758 206.82
+ l 79.762 206.781 l 79.762 206.738 l 79.766 206.699 l 79.77 206.656 l 79.77
+ 206.617 l 79.773 206.574 l 79.773 206.535 l 79.777 206.492 l 79.781 206.453
+ l 79.781 206.41 l 79.785 206.367 l 79.789 206.328 l 79.789 206.285 l 79.793
+ 206.246 l 79.793 206.203 l 79.797 206.16 l 79.801 206.121 l 79.801 206.078
+ l 79.805 206.039 l 79.809 205.996 l 79.809 205.953 l 79.812 205.914 l 79.812
+ 205.871 l 79.816 205.828 l 79.82 205.789 l 79.82 205.746 l 79.824 205.703
+ l 79.828 205.664 l 79.828 205.621 l 79.832 205.578 l 79.836 205.539 l 79.836
+ 205.496 l 79.84 205.453 l 79.84 205.41 l 79.844 205.371 l 79.848 205.328
+ l 79.848 205.285 l 79.855 205.199 l 79.855 205.16 l 79.859 205.117 l 79.859
+ 205.074 l 79.867 204.988 l 79.867 204.949 l 79.875 204.863 l 79.875 204.82
+ l 79.879 204.777 l 79.879 204.734 l 79.883 204.691 l 79.887 204.652 l 79.887
+ 204.609 l 79.895 204.523 l 79.895 204.48 l 79.898 204.438 l 79.898 204.395
+ l 79.906 204.309 l 79.906 204.266 l 79.914 204.18 l 79.914 204.137 l 79.922
+ 204.051 l 79.922 204.008 l 79.926 203.965 l 79.926 203.922 l 79.934 203.836
+ l 79.934 203.793 l 79.941 203.707 l 79.941 203.664 l 79.945 203.621 l 79.945
+ 203.578 l 79.953 203.492 l 79.953 203.449 l 79.957 203.402 l 79.961 203.359
+ l 79.961 203.316 l 79.965 203.273 l 79.965 203.23 l 79.973 203.145 l 79.973
+ 203.098 l 79.98 203.012 l 79.98 202.969 l 79.984 202.926 l 79.984 202.883
+ l 79.988 202.836 l 79.992 202.793 l 79.992 202.75 l 79.996 202.707 l 80
+ 202.66 l 80 202.617 l 80.004 202.574 l 80.004 202.531 l 80.008 202.484 
+l 80.012 202.441 l 80.012 202.398 l 80.016 202.355 l 80.02 202.309 l 80.02
+ 202.266 l 80.023 202.223 l 80.027 202.176 l 80.027 202.133 l 80.031 202.09
+ l 80.031 202.043 l 80.039 201.957 l 80.039 201.91 l 80.047 201.824 l 80.047
+ 201.777 l 80.051 201.734 l 80.051 201.688 l 80.059 201.602 l 80.059 201.555
+ l 80.062 201.512 l 80.066 201.465 l 80.066 201.422 l 80.07 201.379 l 80.07
+ 201.332 l 80.074 201.289 l 80.078 201.242 l 80.078 201.199 l 80.082 201.152
+ l 80.086 201.109 l 80.086 201.062 l 80.09 201.02 l 80.09 200.973 l 80.094
+ 200.93 l 80.098 200.883 l 80.098 200.84 l 80.102 200.793 l 80.105 200.75
+ l 80.105 200.703 l 80.109 200.66 l 80.113 200.613 l 80.113 200.566 l 80.117
+ 200.523 l 80.117 200.477 l 80.121 200.434 l 80.125 200.387 l 80.125 200.34
+ l 80.129 200.297 l 80.133 200.25 l 80.133 200.207 l 80.137 200.16 l 80.137
+ 200.113 l 80.141 200.07 l 80.145 200.023 l 80.145 199.977 l 80.148 199.934
+ l 80.152 199.887 l 80.152 199.84 l 80.156 199.797 l 80.156 199.75 l 80.16
+ 199.703 l 80.164 199.66 l 80.164 199.613 l 80.168 199.566 l 80.172 199.523
+ l 80.172 199.477 l 80.176 199.43 l 80.176 199.383 l 80.18 199.34 l 80.184
+ 199.293 l 80.184 199.246 l 80.188 199.199 l 80.191 199.156 l 80.191 199.109
+ l 80.195 199.062 l 80.195 199.016 l 80.199 198.973 l 80.203 198.926 l 80.203
+ 198.879 l 80.211 198.785 l 80.211 198.742 l 80.219 198.648 l 80.219 198.602
+ l 80.223 198.555 l 80.223 198.508 l 80.227 198.461 l 80.23 198.418 l 80.23
+ 198.371 l 80.238 198.277 l 80.238 198.23 l 80.242 198.184 l 80.242 198.137
+ l 80.25 198.043 l 80.25 198 l 80.258 197.906 l 80.258 197.859 l 80.262 
+197.812 l 80.262 197.766 l 80.27 197.672 l 80.27 197.625 l 80.277 197.531
+ l 80.277 197.484 l 80.281 197.438 l 80.281 197.391 l 80.289 197.297 l 80.289
+ 197.25 l 80.297 197.156 l 80.297 197.109 l 80.305 197.016 l 80.305 196.969
+ l 80.309 196.922 l 80.309 196.875 l 80.316 196.781 l 80.316 196.73 l 80.324
+ 196.637 l 80.324 196.59 l 80.328 196.543 l 80.328 196.496 l 80.336 196.402
+ l 80.336 196.355 l 80.34 196.305 l 80.344 196.258 l 80.344 196.211 l 80.348
+ 196.164 l 80.348 196.117 l 80.355 196.023 l 80.355 195.973 l 80.363 195.879
+ l 80.363 195.832 l 80.367 195.785 l 80.367 195.734 l 80.375 195.641 l 80.375
+ 195.594 l 80.379 195.547 l 80.383 195.496 l 80.383 195.449 l 80.387 195.402
+ l 80.387 195.355 l 80.391 195.305 l 80.395 195.258 l 80.395 195.211 l 80.398
+ 195.164 l 80.402 195.113 l 80.402 195.066 l 80.41 194.973 l 80.41 194.922
+ l 80.414 194.875 l 80.414 194.828 l 80.418 194.777 l 80.422 194.73 l 80.422
+ 194.684 l 80.426 194.633 l 80.43 194.586 l 80.43 194.539 l 80.434 194.488
+ l 80.434 194.441 l 80.438 194.395 l 80.441 194.344 l 80.441 194.297 l 80.445
+ 194.25 l 80.449 194.199 l 80.449 194.152 l 80.453 194.105 l 80.453 194.055
+ l 80.457 194.008 l 80.461 193.957 l 80.461 193.91 l 80.465 193.863 l 80.469
+ 193.812 l 80.469 193.766 l 80.473 193.715 l 80.473 193.668 l 80.477 193.621
+ l 80.48 193.57 l 80.48 193.523 l 80.484 193.473 l 80.488 193.426 l 80.488
+ 193.375 l 80.492 193.328 l 80.496 193.277 l 80.496 193.23 l 80.5 193.184
+ l 80.5 193.133 l 80.504 193.086 l 80.508 193.035 l 80.508 192.988 l 80.512
+ 192.938 l 80.516 192.891 l 80.516 192.84 l 80.52 192.793 l 80.52 192.742
+ l 80.523 192.695 l 80.527 192.645 l 80.527 192.598 l 80.535 192.496 l 80.535
+ 192.449 l 80.539 192.398 l 80.539 192.352 l 80.543 192.301 l 80.547 192.254
+ l 80.547 192.203 l 80.551 192.156 l 80.555 192.105 l 80.555 192.055 l 80.559
+ 192.008 l 80.559 191.957 l 80.562 191.91 l 80.566 191.859 l 80.566 191.809
+ l 80.57 191.762 l 80.574 191.711 l 80.574 191.664 l 80.578 191.613 l 80.578
+ 191.562 l 80.582 191.516 l 80.586 191.465 l 80.586 191.414 l 80.59 191.367
+ l 80.594 191.316 l 80.594 191.266 l 80.598 191.219 l 80.602 191.168 l 80.602
+ 191.121 l 80.605 191.07 l 80.605 191.02 l 80.609 190.969 l 80.613 190.922
+ l 80.613 190.871 l 80.617 190.82 l 80.621 190.773 l 80.621 190.723 l 80.625
+ 190.672 l 80.625 190.625 l 80.633 190.523 l 80.633 190.473 l 80.637 190.426
+ l 80.641 190.375 l 80.641 190.324 l 80.645 190.277 l 80.645 190.227 l 80.652
+ 190.125 l 80.652 190.078 l 80.66 189.977 l 80.66 189.926 l 80.664 189.875
+ l 80.664 189.828 l 80.672 189.727 l 80.672 189.676 l 80.676 189.629 l 80.68
+ 189.578 l 80.68 189.527 l 80.688 189.426 l 80.688 189.379 l 80.691 189.328
+ l 80.691 189.277 l 80.699 189.176 l 80.699 189.125 l 80.703 189.078 l 80.707
+ 189.027 l 80.707 188.977 l 80.711 188.926 l 80.711 188.875 l 80.715 188.824
+ l 80.719 188.777 l 80.719 188.727 l 80.727 188.625 l 80.727 188.574 l 80.73
+ 188.523 l 80.73 188.473 l 80.738 188.371 l 80.738 188.324 l 80.746 188.223
+ l 80.746 188.172 l 80.75 188.121 l 80.75 188.07 l 80.758 187.969 l 80.758
+ 187.918 l 80.766 187.816 l 80.766 187.77 l 80.77 187.719 l 80.77 187.668
+ l 80.777 187.566 l 80.777 187.516 l 80.785 187.414 l 80.785 187.363 l 80.793
+ 187.262 l 80.793 187.211 l 80.797 187.16 l 80.797 187.109 l 80.805 187.008
+ l 80.805 186.957 l 80.812 186.855 l 80.812 186.805 l 80.816 186.754 l 80.816
+ 186.703 l 80.824 186.602 l 80.824 186.551 l 80.832 186.449 l 80.832 186.398
+ l 80.836 186.348 l 80.836 186.297 l 80.844 186.195 l 80.844 186.145 l 80.852
+ 186.043 l 80.852 185.992 l 80.855 185.941 l 80.855 185.891 l 80.859 185.836
+ l 80.863 185.785 l 80.863 185.734 l 80.871 185.633 l 80.871 185.582 l 80.879
+ 185.48 l 80.879 185.43 l 80.883 185.379 l 80.883 185.328 l 80.887 185.277
+ l 80.891 185.223 l 80.891 185.172 l 80.898 185.07 l 80.898 185.02 l 80.902
+ 184.969 l 80.902 184.918 l 80.906 184.867 l 80.91 184.812 l 80.91 184.762
+ l 80.918 184.66 l 80.918 184.609 l 80.922 184.559 l 80.922 184.508 l 80.926
+ 184.457 l 80.93 184.402 l 80.93 184.352 l 80.938 184.25 l 80.938 184.199
+ l 80.941 184.148 l 80.941 184.094 l 80.949 183.992 l 80.949 183.941 l 80.957
+ 183.84 l 80.957 183.785 l 80.961 183.734 l 80.961 183.684 l 80.969 183.582
+ l 80.969 183.527 l 80.977 183.426 l 80.977 183.375 l 80.98 183.324 l 80.984
+ 183.27 l 80.984 183.219 l 80.988 183.168 l 80.988 183.117 l 80.992 183.062
+ l 80.996 183.012 l 80.996 182.961 l 81.004 182.859 l 81.004 182.805 l 81.008
+ 182.754 l 81.008 182.703 l 81.012 182.652 l 81.016 182.598 l 81.016 182.547
+ l 81.023 182.445 l 81.023 182.391 l 81.027 182.34 l 81.027 182.289 l 81.031
+ 182.238 l 81.035 182.184 l 81.035 182.133 l 81.039 182.082 l 81.043 182.027
+ l 81.043 181.977 l 81.047 181.926 l 81.047 181.875 l 81.051 181.82 l 81.055
+ 181.77 l 81.055 181.719 l 81.059 181.664 l 81.062 181.613 l 81.062 181.562
+ l 81.066 181.512 l 81.07 181.457 l 81.07 181.406 l 81.074 181.355 l 81.074
+ 181.301 l 81.082 181.199 l 81.082 181.145 l 81.09 181.043 l 81.09 180.988
+ l 81.094 180.938 l 81.094 180.887 l 81.098 180.836 l 81.102 180.781 l 81.102
+ 180.73 l 81.105 180.68 l 81.109 180.625 l 81.109 180.574 l 81.113 180.52
+ l 81.113 180.469 l 81.117 180.418 l 81.121 180.363 l 81.121 180.312 l 81.125
+ 180.262 l 81.129 180.207 l 81.129 180.156 l 81.133 180.105 l 81.133 180.051
+ l 81.141 179.949 l 81.141 179.895 l 81.148 179.793 l 81.148 179.738 l 81.152
+ 179.688 l 81.152 179.633 l 81.16 179.531 l 81.16 179.477 l 81.164 179.426
+ l 81.168 179.371 l 81.168 179.32 l 81.172 179.27 l 81.176 179.215 l 81.176
+ 179.164 l 81.18 179.113 l 81.18 179.059 l 81.184 179.008 l 81.188 178.953
+ l 81.188 178.902 l 81.191 178.852 l 81.195 178.797 l 81.195 178.746 l 81.199
+ 178.691 l 81.199 178.641 l 81.203 178.59 l 81.207 178.535 l 81.207 178.484
+ l 81.211 178.43 l 81.215 178.379 l 81.215 178.324 l 81.219 178.273 l 81.219
+ 178.223 l 81.223 178.168 l 81.227 178.117 l 81.227 178.062 l 81.23 178.012
+ l 81.234 177.957 l 81.234 177.906 l 81.238 177.855 l 81.238 177.801 l 81.242
+ 177.75 l 81.246 177.695 l 81.246 177.645 l 81.25 177.59 l 81.254 177.539
+ l 81.254 177.484 l 81.262 177.383 l 81.262 177.328 l 81.266 177.277 l 81.266
+ 177.223 l 81.27 177.172 l 81.273 177.117 l 81.273 177.066 l 81.277 177.012
+ l 81.281 176.961 l 81.281 176.906 l 81.285 176.855 l 81.285 176.805 l 81.289
+ 176.75 l 81.293 176.699 l 81.293 176.645 l 81.297 176.594 l 81.301 176.539
+ l 81.301 176.488 l 81.305 176.434 l 81.305 176.383 l 81.309 176.328 l 81.312
+ 176.277 l 81.312 176.223 l 81.316 176.172 l 81.32 176.117 l 81.32 176.066
+ l 81.324 176.012 l 81.324 175.961 l 81.328 175.906 l 81.332 175.855 l 81.332
+ 175.801 l 81.336 175.75 l 81.34 175.695 l 81.34 175.645 l 81.344 175.59
+ l 81.344 175.539 l 81.348 175.484 l 81.352 175.434 l 81.352 175.379 l 81.355
+ 175.328 l 81.359 175.273 l 81.359 175.223 l 81.363 175.168 l 81.367 175.117
+ l 81.367 175.062 l 81.371 175.012 l 81.371 174.957 l 81.375 174.906 l 81.379
+ 174.852 l 81.379 174.801 l 81.383 174.746 l 81.387 174.695 l 81.387 174.641
+ l 81.391 174.59 l 81.391 174.535 l 81.395 174.484 l 81.398 174.43 l 81.398
+ 174.379 l 81.402 174.324 l 81.406 174.273 l 81.406 174.219 l 81.41 174.168
+ l 81.41 174.113 l 81.414 174.062 l 81.418 174.008 l 81.418 173.957 l 81.422
+ 173.902 l 81.426 173.852 l 81.426 173.797 l 81.43 173.742 l 81.43 173.691
+ l 81.434 173.637 l 81.438 173.586 l 81.438 173.531 l 81.441 173.48 l 81.445
+ 173.426 l 81.445 173.375 l 81.449 173.32 l 81.453 173.27 l 81.453 173.215
+ l 81.457 173.164 l 81.457 173.109 l 81.461 173.059 l 81.465 173.004 l 81.465
+ 172.949 l 81.469 172.898 l 81.473 172.844 l 81.473 172.793 l 81.477 172.738
+ l 81.477 172.688 l 81.48 172.633 l 81.484 172.582 l 81.484 172.527 l 81.488
+ 172.477 l 81.492 172.422 l 81.492 172.367 l 81.496 172.316 l 81.496 172.262
+ l 81.5 172.211 l 81.504 172.156 l 81.504 172.105 l 81.508 172.051 l 81.512
+ 172 l 81.512 171.945 l 81.516 171.891 l 81.516 171.84 l 81.52 171.785 l
+ 81.523 171.734 l 81.523 171.68 l 81.527 171.629 l 81.531 171.574 l 81.531
+ 171.523 l 81.535 171.469 l 81.535 171.414 l 81.539 171.363 l 81.543 171.309
+ l 81.543 171.258 l 81.547 171.203 l 81.551 171.152 l 81.551 171.098 l 81.555
+ 171.047 l 81.559 170.992 l 81.559 170.938 l 81.562 170.887 l 81.562 170.832
+ l 81.566 170.781 l 81.57 170.727 l 81.57 170.676 l 81.574 170.621 l 81.578
+ 170.57 l 81.578 170.516 l 81.582 170.461 l 81.582 170.41 l 81.586 170.355
+ l 81.59 170.305 l 81.59 170.25 l 81.594 170.199 l 81.598 170.145 l 81.598
+ 170.09 l 81.602 170.039 l 81.602 169.984 l 81.605 169.934 l 81.609 169.879
+ l 81.609 169.828 l 81.617 169.719 l 81.617 169.668 l 81.621 169.613 l 81.621
+ 169.562 l 81.625 169.508 l 81.629 169.457 l 81.629 169.402 l 81.633 169.352
+ l 81.637 169.297 l 81.637 169.242 l 81.641 169.191 l 81.645 169.137 l 81.645
+ 169.086 l 81.648 169.031 l 81.648 168.98 l 81.656 168.871 l 81.656 168.82
+ l 81.66 168.766 l 81.664 168.715 l 81.664 168.66 l 81.668 168.609 l 81.668
+ 168.555 l 81.672 168.5 l 81.676 168.449 l 81.676 168.395 l 81.68 168.344
+ l 81.684 168.289 l 81.684 168.238 l 81.688 168.184 l 81.688 168.129 l 81.691
+ 168.078 l 81.695 168.023 l 81.695 167.973 l 81.699 167.918 l 81.703 167.867
+ l 81.703 167.812 l 81.707 167.762 l 81.707 167.707 l 81.711 167.652 l 81.715
+ 167.602 l 81.715 167.547 l 81.719 167.496 l 81.723 167.441 l 81.723 167.391
+ l 81.727 167.336 l 81.727 167.281 l 81.73 167.23 l 81.734 167.176 l 81.734
+ 167.125 l 81.738 167.07 l 81.742 167.02 l 81.742 166.965 l 81.746 166.914
+ l 81.75 166.859 l 81.75 166.805 l 81.754 166.754 l 81.754 166.699 l 81.758
+ 166.648 l 81.762 166.594 l 81.762 166.543 l 81.766 166.488 l 81.77 166.438
+ l 81.77 166.383 l 81.773 166.328 l 81.773 166.277 l 81.777 166.223 l 81.781
+ 166.172 l 81.781 166.117 l 81.785 166.066 l 81.789 166.012 l 81.789 165.961
+ l 81.793 165.906 l 81.793 165.852 l 81.797 165.801 l 81.801 165.746 l 81.801
+ 165.695 l 81.805 165.641 l 81.809 165.59 l 81.809 165.535 l 81.812 165.484
+ l 81.812 165.43 l 81.816 165.379 l 81.82 165.324 l 81.82 165.27 l 81.824
+ 165.219 l 81.828 165.164 l 81.828 165.113 l 81.832 165.059 l 81.836 165.008
+ l 81.836 164.953 l 81.84 164.902 l 81.84 164.848 l 81.844 164.797 l 81.848
+ 164.742 l 81.848 164.691 l 81.855 164.582 l 81.855 164.531 l 81.859 164.477
+ l 81.859 164.426 l 81.863 164.371 l 81.867 164.32 l 81.867 164.266 l 81.871
+ 164.215 l 81.875 164.16 l 81.875 164.109 l 81.879 164.055 l 81.879 164.004
+ l 81.883 163.949 l 81.887 163.898 l 81.887 163.844 l 81.891 163.793 l 81.895
+ 163.738 l 81.895 163.688 l 81.898 163.633 l 81.898 163.578 l 81.902 163.527
+ l 81.906 163.473 l 81.906 163.422 l 81.91 163.367 l 81.914 163.316 l 81.914
+ 163.262 l 81.918 163.211 l 81.918 163.156 l 81.922 163.105 l 81.926 163.051
+ l 81.926 163 l 81.93 162.945 l 81.934 162.895 l 81.934 162.84 l 81.938 
+162.789 l 81.941 162.734 l 81.941 162.684 l 81.945 162.629 l 81.945 162.578
+ l 81.949 162.523 l 81.953 162.473 l 81.953 162.418 l 81.957 162.367 l 81.961
+ 162.312 l 81.961 162.262 l 81.965 162.207 l 81.965 162.156 l 81.969 162.102
+ l 81.973 162.051 l 81.973 161.996 l 81.977 161.945 l 81.98 161.891 l 81.98
+ 161.84 l 81.984 161.789 l 81.984 161.734 l 81.988 161.684 l 81.992 161.629
+ l 81.992 161.578 l 81.996 161.523 l 82 161.473 l 82 161.418 l 82.004 161.367
+ l 82.004 161.312 l 82.008 161.262 l 82.012 161.207 l 82.012 161.156 l 82.016
+ 161.102 l 82.02 161.051 l 82.02 160.996 l 82.023 160.945 l 82.023 160.895
+ l 82.027 160.84 l 82.031 160.789 l 82.031 160.734 l 82.035 160.684 l 82.039
+ 160.629 l 82.039 160.578 l 82.043 160.523 l 82.047 160.473 l 82.047 160.418
+ l 82.051 160.367 l 82.051 160.316 l 82.055 160.262 l 82.059 160.211 l 82.059
+ 160.156 l 82.062 160.105 l 82.066 160.051 l 82.066 160 l 82.07 159.945 
+l 82.07 159.895 l 82.074 159.844 l 82.078 159.789 l 82.078 159.738 l 82.082
+ 159.684 l 82.086 159.633 l 82.086 159.578 l 82.09 159.527 l 82.09 159.477
+ l 82.094 159.422 l 82.098 159.371 l 82.098 159.316 l 82.105 159.215 l 82.105
+ 159.16 l 82.109 159.109 l 82.109 159.055 l 82.117 158.953 l 82.117 158.898
+ l 82.121 158.848 l 82.125 158.793 l 82.125 158.742 l 82.129 158.691 l 82.133
+ 158.637 l 82.133 158.586 l 82.137 158.531 l 82.137 158.48 l 82.141 158.43
+ l 82.145 158.375 l 82.145 158.324 l 82.148 158.27 l 82.152 158.219 l 82.152
+ 158.168 l 82.156 158.113 l 82.156 158.062 l 82.16 158.012 l 82.164 157.957
+ l 82.164 157.906 l 82.168 157.852 l 82.172 157.801 l 82.172 157.75 l 82.176
+ 157.695 l 82.176 157.645 l 82.18 157.594 l 82.184 157.539 l 82.184 157.488
+ l 82.188 157.438 l 82.191 157.383 l 82.191 157.332 l 82.195 157.281 l 82.195
+ 157.227 l 82.203 157.125 l 82.203 157.07 l 82.211 156.969 l 82.211 156.914
+ l 82.215 156.863 l 82.215 156.812 l 82.219 156.758 l 82.223 156.707 l 82.223
+ 156.656 l 82.227 156.602 l 82.23 156.551 l 82.23 156.5 l 82.234 156.445
+ l 82.238 156.395 l 82.238 156.344 l 82.242 156.289 l 82.242 156.238 l 82.246
+ 156.188 l 82.25 156.133 l 82.25 156.082 l 82.258 155.98 l 82.258 155.926
+ l 82.262 155.875 l 82.262 155.824 l 82.266 155.77 l 82.27 155.719 l 82.27
+ 155.668 l 82.273 155.617 l 82.277 155.562 l 82.277 155.512 l 82.281 155.461
+ l 82.281 155.406 l 82.289 155.305 l 82.289 155.254 l 82.293 155.199 l 82.297
+ 155.148 l 82.297 155.098 l 82.301 155.047 l 82.301 154.992 l 82.309 154.891
+ l 82.309 154.84 l 82.312 154.785 l 82.316 154.734 l 82.316 154.684 l 82.32
+ 154.633 l 82.324 154.578 l 82.324 154.527 l 82.328 154.477 l 82.328 154.426
+ l 82.332 154.371 l 82.336 154.32 l 82.336 154.27 l 82.344 154.168 l 82.344
+ 154.113 l 82.348 154.062 l 82.348 154.012 l 82.355 153.91 l 82.355 153.855
+ l 82.363 153.754 l 82.363 153.703 l 82.367 153.652 l 82.367 153.598 l 82.375
+ 153.496 l 82.375 153.445 l 82.379 153.395 l 82.383 153.34 l 82.383 153.289
+ l 82.387 153.238 l 82.387 153.188 l 82.395 153.086 l 82.395 153.031 l 82.402
+ 152.93 l 82.402 152.879 l 82.406 152.828 l 82.406 152.777 l 82.41 152.723
+ l 82.414 152.672 l 82.414 152.621 l 82.422 152.52 l 82.422 152.469 l 82.43
+ 152.367 l 82.43 152.312 l 82.434 152.262 l 82.434 152.211 l 82.441 152.109
+ l 82.441 152.059 l 82.449 151.957 l 82.449 151.902 l 82.453 151.852 l 82.453
+ 151.801 l 82.461 151.699 l 82.461 151.648 l 82.469 151.547 l 82.469 151.496
+ l 82.473 151.445 l 82.473 151.395 l 82.477 151.34 l 82.48 151.289 l 82.48
+ 151.238 l 82.488 151.137 l 82.488 151.086 l 82.492 151.035 l 82.492 150.984
+ l 82.5 150.883 l 82.5 150.832 l 82.508 150.73 l 82.508 150.68 l 82.516 
+150.578 l 82.516 150.527 l 82.52 150.477 l 82.52 150.426 l 82.527 150.324
+ l 82.527 150.273 l 82.535 150.172 l 82.535 150.121 l 82.539 150.07 l 82.539
+ 150.02 l 82.547 149.918 l 82.547 149.867 l 82.555 149.766 l 82.555 149.715
+ l 82.559 149.664 l 82.559 149.613 l 82.566 149.512 l 82.566 149.461 l 82.574
+ 149.359 l 82.574 149.309 l 82.578 149.258 l 82.578 149.207 l 82.586 149.105
+ l 82.586 149.055 l 82.594 148.953 l 82.594 148.902 l 82.598 148.852 l 82.598
+ 148.801 l 82.602 148.75 l 82.605 148.703 l 82.605 148.652 l 82.613 148.551
+ l 82.613 148.5 l 82.621 148.398 l 82.621 148.348 l 82.625 148.297 l 82.625
+ 148.246 l 82.629 148.195 l 82.633 148.148 l 82.633 148.098 l 82.641 147.996
+ l 82.641 147.945 l 82.645 147.895 l 82.645 147.844 l 82.648 147.793 l 82.652
+ 147.746 l 82.652 147.695 l 82.66 147.594 l 82.66 147.543 l 82.664 147.492
+ l 82.664 147.445 l 82.672 147.344 l 82.672 147.293 l 82.68 147.191 l 82.68
+ 147.145 l 82.684 147.094 l 82.684 147.043 l 82.691 146.941 l 82.691 146.891
+ l 82.695 146.844 l 82.699 146.793 l 82.699 146.742 l 82.703 146.691 l 82.707
+ 146.645 l 82.707 146.594 l 82.711 146.543 l 82.711 146.492 l 82.715 146.441
+ l 82.719 146.395 l 82.719 146.344 l 82.727 146.242 l 82.727 146.195 l 82.73
+ 146.145 l 82.73 146.094 l 82.734 146.043 l 82.738 145.996 l 82.738 145.945
+ l 82.746 145.844 l 82.746 145.797 l 82.75 145.746 l 82.75 145.695 l 82.754
+ 145.645 l 82.758 145.598 l 82.758 145.547 l 82.762 145.496 l 82.766 145.449
+ l 82.766 145.398 l 82.77 145.348 l 82.77 145.301 l 82.777 145.199 l 82.777
+ 145.148 l 82.781 145.102 l 82.785 145.051 l 82.785 145 l 82.789 144.953
+ l 82.789 144.902 l 82.793 144.852 l 82.797 144.805 l 82.797 144.754 l 82.801
+ 144.707 l 82.805 144.656 l 82.805 144.605 l 82.809 144.559 l 82.812 144.508
+ l 82.812 144.457 l 82.816 144.41 l 82.816 144.359 l 82.82 144.309 l 82.824
+ 144.262 l 82.824 144.211 l 82.828 144.164 l 82.832 144.113 l 82.832 144.062
+ l 82.836 144.016 l 82.836 143.965 l 82.84 143.918 l 82.844 143.867 l 82.844
+ 143.816 l 82.848 143.77 l 82.852 143.719 l 82.852 143.672 l 82.855 143.621
+ l 82.855 143.574 l 82.863 143.473 l 82.863 143.426 l 82.867 143.375 l 82.871
+ 143.328 l 82.871 143.277 l 82.875 143.23 l 82.875 143.18 l 82.879 143.133
+ l 82.883 143.082 l 82.883 143.035 l 82.887 142.984 l 82.891 142.938 l 82.891
+ 142.887 l 82.895 142.84 l 82.898 142.789 l 82.898 142.742 l 82.902 142.691
+ l 82.902 142.645 l 82.906 142.594 l 82.91 142.547 l 82.91 142.496 l 82.914
+ 142.449 l 82.918 142.398 l 82.918 142.352 l 82.922 142.301 l 82.922 142.254
+ l 82.926 142.203 l 82.93 142.156 l 82.93 142.105 l 82.938 142.012 l 82.938
+ 141.961 l 82.941 141.914 l 82.941 141.863 l 82.945 141.816 l 82.949 141.766
+ l 82.949 141.719 l 82.953 141.672 l 82.957 141.621 l 82.957 141.574 l 82.961
+ 141.523 l 82.961 141.477 l 82.965 141.43 l 82.969 141.379 l 82.969 141.332
+ l 82.973 141.285 l 82.977 141.234 l 82.977 141.188 l 82.98 141.137 l 82.98
+ 141.09 l 82.984 141.043 l 82.988 140.992 l 82.988 140.945 l 82.992 140.898
+ l 82.996 140.848 l 82.996 140.801 l 83 140.754 l 83.004 140.703 l 83.004
+ 140.656 l 83.008 140.609 l 83.008 140.559 l 83.016 140.465 l 83.016 140.414
+ l 83.023 140.32 l 83.023 140.273 l 83.027 140.223 l 83.027 140.176 l 83.031
+ 140.129 l 83.035 140.078 l 83.035 140.031 l 83.043 139.938 l 83.043 139.887
+ l 83.047 139.84 l 83.047 139.793 l 83.051 139.746 l 83.055 139.695 l 83.055
+ 139.648 l 83.062 139.555 l 83.062 139.504 l 83.066 139.457 l 83.066 139.41
+ l 83.074 139.316 l 83.074 139.266 l 83.082 139.172 l 83.082 139.125 l 83.086
+ 139.078 l 83.09 139.027 l 83.09 138.98 l 83.094 138.934 l 83.094 138.887
+ l 83.102 138.793 l 83.102 138.742 l 83.109 138.648 l 83.109 138.602 l 83.113
+ 138.555 l 83.113 138.508 l 83.117 138.461 l 83.121 138.41 l 83.121 138.363
+ l 83.129 138.27 l 83.129 138.223 l 83.133 138.176 l 83.133 138.129 l 83.141
+ 138.035 l 83.141 137.988 l 83.145 137.941 l 83.148 137.891 l 83.148 137.844
+ l 83.152 137.797 l 83.152 137.75 l 83.16 137.656 l 83.16 137.609 l 83.168
+ 137.516 l 83.168 137.469 l 83.172 137.422 l 83.172 137.375 l 83.18 137.281
+ l 83.18 137.234 l 83.188 137.141 l 83.188 137.094 l 83.195 137 l 83.195
+ 136.953 l 83.199 136.906 l 83.199 136.859 l 83.207 136.766 l 83.207 136.719
+ l 83.215 136.625 l 83.215 136.578 l 83.219 136.531 l 83.219 136.484 l 83.227
+ 136.391 l 83.227 136.348 l 83.234 136.254 l 83.234 136.207 l 83.238 136.16
+ l 83.238 136.113 l 83.246 136.02 l 83.246 135.973 l 83.25 135.926 l 83.254
+ 135.883 l 83.254 135.836 l 83.258 135.789 l 83.258 135.742 l 83.266 135.648
+ l 83.266 135.602 l 83.27 135.559 l 83.273 135.512 l 83.273 135.465 l 83.281
+ 135.371 l 83.281 135.324 l 83.285 135.281 l 83.285 135.234 l 83.293 135.141
+ l 83.293 135.094 l 83.297 135.051 l 83.301 135.004 l 83.301 134.957 l 83.305
+ 134.91 l 83.305 134.867 l 83.312 134.773 l 83.312 134.727 l 83.316 134.68
+ l 83.32 134.637 l 83.32 134.59 l 83.324 134.543 l 83.324 134.5 l 83.332
+ 134.406 l 83.332 134.359 l 83.336 134.316 l 83.34 134.27 l 83.34 134.223
+ l 83.344 134.18 l 83.344 134.133 l 83.352 134.039 l 83.352 133.996 l 83.359
+ 133.902 l 83.359 133.859 l 83.363 133.812 l 83.363 133.766 l 83.367 133.723
+ l 83.371 133.676 l 83.371 133.633 l 83.379 133.539 l 83.379 133.496 l 83.387
+ 133.402 l 83.387 133.359 l 83.391 133.312 l 83.391 133.27 l 83.398 133.176
+ l 83.398 133.133 l 83.402 133.086 l 83.406 133.043 l 83.406 132.996 l 83.41
+ 132.953 l 83.41 132.906 l 83.414 132.859 l 83.418 132.816 l 83.418 132.77
+ l 83.422 132.727 l 83.426 132.68 l 83.426 132.637 l 83.43 132.59 l 83.43
+ 132.547 l 83.434 132.5 l 83.438 132.457 l 83.438 132.41 l 83.441 132.367
+ l 83.445 132.32 l 83.445 132.277 l 83.449 132.23 l 83.449 132.188 l 83.453
+ 132.141 l 83.457 132.098 l 83.457 132.051 l 83.461 132.008 l 83.465 131.961
+ l 83.465 131.918 l 83.469 131.875 l 83.473 131.828 l 83.473 131.785 l 83.477
+ 131.738 l 83.477 131.695 l 83.48 131.648 l 83.484 131.605 l 83.484 131.562
+ l 83.488 131.516 l 83.492 131.473 l 83.492 131.426 l 83.496 131.383 l 83.496
+ 131.34 l 83.5 131.293 l 83.504 131.25 l 83.504 131.207 l 83.508 131.16 
+l 83.512 131.117 l 83.512 131.07 l 83.516 131.027 l 83.516 130.984 l 83.52
+ 130.938 l 83.523 130.895 l 83.523 130.852 l 83.527 130.805 l 83.531 130.762
+ l 83.531 130.719 l 83.535 130.676 l 83.535 130.629 l 83.543 130.543 l 83.543
+ 130.496 l 83.551 130.41 l 83.551 130.367 l 83.555 130.32 l 83.555 130.277
+ l 83.562 130.191 l 83.562 130.145 l 83.57 130.059 l 83.57 130.016 l 83.574
+ 129.969 l 83.578 129.926 l 83.578 129.883 l 83.582 129.84 l 83.582 129.797
+ l 83.586 129.75 l 83.59 129.707 l 83.59 129.664 l 83.598 129.578 l 83.598
+ 129.535 l 83.602 129.488 l 83.602 129.445 l 83.609 129.359 l 83.609 129.316
+ l 83.617 129.23 l 83.617 129.184 l 83.621 129.141 l 83.621 129.098 l 83.629
+ 129.012 l 83.629 128.969 l 83.637 128.883 l 83.637 128.84 l 83.641 128.797
+ l 83.641 128.754 l 83.645 128.711 l 83.648 128.664 l 83.648 128.621 l 83.656
+ 128.535 l 83.656 128.492 l 83.664 128.406 l 83.664 128.363 l 83.668 128.32
+ l 83.668 128.277 l 83.676 128.191 l 83.676 128.148 l 83.684 128.062 l 83.684
+ 128.02 l 83.688 127.977 l 83.688 127.934 l 83.695 127.848 l 83.695 127.809
+ l 83.703 127.723 l 83.703 127.68 l 83.707 127.637 l 83.707 127.594 l 83.715
+ 127.508 l 83.715 127.465 l 83.723 127.379 l 83.723 127.34 l 83.727 127.297
+ l 83.727 127.254 l 83.734 127.168 l 83.734 127.125 l 83.742 127.039 l 83.742
+ 127 l 83.746 126.957 l 83.746 126.914 l 83.754 126.828 l 83.754 126.789
+ l 83.762 126.703 l 83.762 126.66 l 83.766 126.617 l 83.77 126.578 l 83.77
+ 126.535 l 83.773 126.492 l 83.773 126.449 l 83.777 126.41 l 83.781 126.367
+ l 83.781 126.324 l 83.785 126.281 l 83.789 126.242 l 83.789 126.199 l 83.793
+ 126.156 l 83.793 126.113 l 83.797 126.074 l 83.801 126.031 l 83.801 125.988
+ l 83.805 125.949 l 83.809 125.906 l 83.809 125.863 l 83.812 125.82 l 83.812
+ 125.781 l 83.82 125.695 l 83.82 125.656 l 83.824 125.613 l 83.828 125.574
+ l 83.828 125.531 l 83.832 125.488 l 83.832 125.449 l 83.84 125.363 l 83.84
+ 125.324 l 83.844 125.281 l 83.848 125.242 l 83.848 125.199 l 83.852 125.156
+ l 83.855 125.117 l 83.855 125.074 l 83.859 125.035 l 83.859 124.992 l 83.863
+ 124.953 l 83.867 124.91 l 83.867 124.867 l 83.871 124.828 l 83.875 124.785
+ l 83.875 124.746 l 83.879 124.703 l 83.879 124.664 l 83.883 124.621 l 83.887
+ 124.582 l 83.887 124.539 l 83.891 124.5 l 83.895 124.457 l 83.895 124.418
+ l 83.898 124.375 l 83.898 124.336 l 83.902 124.293 l 83.906 124.254 l 83.906
+ 124.211 l 83.914 124.133 l 83.914 124.09 l 83.918 124.051 l 83.918 124.008
+ l 83.922 123.969 l 83.926 123.926 l 83.926 123.887 l 83.93 123.848 l 83.934
+ 123.805 l 83.934 123.766 l 83.938 123.727 l 83.938 123.684 l 83.941 123.645
+ l 83.945 123.602 l 83.945 123.562 l 83.949 123.523 l 83.953 123.48 l 83.953
+ 123.441 l 83.957 123.402 l 83.961 123.359 l 83.961 123.32 l 83.965 123.281
+ l 83.965 123.238 l 83.973 123.16 l 83.973 123.117 l 83.98 123.039 l 83.98
+ 123 l 83.984 122.957 l 83.984 122.918 l 83.992 122.84 l 83.992 122.797 
+l 84 122.719 l 84 122.68 l 84.004 122.637 l 84.004 122.598 l 84.012 122.52
+ l 84.012 122.48 l 84.016 122.438 l 84.02 122.398 l 84.02 122.359 l 84.023
+ 122.32 l 84.023 122.281 l 84.027 122.242 l 84.031 122.199 l 84.031 122.16
+ l 84.039 122.082 l 84.039 122.043 l 84.047 121.965 l 84.047 121.922 l 84.051
+ 121.883 l 84.051 121.844 l 84.059 121.766 l 84.059 121.727 l 84.066 121.648
+ l 84.066 121.609 l 84.07 121.57 l 84.07 121.531 l 84.078 121.453 l 84.078
+ 121.414 l 84.086 121.336 l 84.086 121.297 l 84.09 121.254 l 84.09 121.215
+ l 84.094 121.176 l 84.098 121.141 l 84.098 121.102 l 84.105 121.023 l 84.105
+ 120.984 l 84.109 120.945 l 84.109 120.906 l 84.117 120.828 l 84.117 120.789
+ l 84.125 120.711 l 84.125 120.672 l 84.129 120.633 l 84.129 120.594 l 84.137
+ 120.516 l 84.137 120.48 l 84.145 120.402 l 84.145 120.363 l 84.152 120.285
+ l 84.152 120.246 l 84.156 120.211 l 84.156 120.172 l 84.164 120.094 l 84.164
+ 120.055 l 84.168 120.016 l 84.172 119.98 l 84.172 119.941 l 84.176 119.902
+ l 84.176 119.863 l 84.18 119.824 l 84.184 119.789 l 84.184 119.75 l 84.191
+ 119.672 l 84.191 119.637 l 84.195 119.598 l 84.195 119.559 l 84.199 119.52
+ l 84.203 119.484 l 84.203 119.445 l 84.207 119.406 l 84.211 119.371 l 84.211
+ 119.332 l 84.215 119.293 l 84.215 119.258 l 84.223 119.18 l 84.223 119.145
+ l 84.23 119.066 l 84.23 119.031 l 84.238 118.953 l 84.238 118.918 l 84.242
+ 118.879 l 84.242 118.84 l 84.246 118.805 l 84.25 118.766 l 84.25 118.73
+ l 84.258 118.652 l 84.258 118.617 l 84.262 118.578 l 84.262 118.543 l 84.266
+ 118.504 l 84.27 118.469 l 84.27 118.43 l 84.273 118.391 l 84.277 118.355
+ l 84.277 118.316 l 84.281 118.281 l 84.281 118.242 l 84.285 118.207 l 84.289
+ 118.168 l 84.289 118.133 l 84.293 118.094 l 84.297 118.059 l 84.297 118.02
+ l 84.301 117.984 l 84.301 117.945 l 84.309 117.875 l 84.309 117.836 l 84.312
+ 117.801 l 84.316 117.762 l 84.316 117.727 l 84.32 117.688 l 84.32 117.652
+ l 84.324 117.617 l 84.328 117.578 l 84.328 117.543 l 84.332 117.504 l 84.336
+ 117.469 l 84.336 117.434 l 84.34 117.395 l 84.344 117.359 l 84.344 117.324
+ l 84.348 117.285 l 84.348 117.25 l 84.352 117.215 l 84.355 117.176 l 84.355
+ 117.141 l 84.359 117.105 l 84.363 117.066 l 84.363 117.031 l 84.367 116.996
+ l 84.367 116.957 l 84.375 116.887 l 84.375 116.848 l 84.383 116.777 l 84.383
+ 116.742 l 84.387 116.703 l 84.387 116.668 l 84.395 116.598 l 84.395 116.562
+ l 84.398 116.523 l 84.402 116.488 l 84.402 116.453 l 84.406 116.418 l 84.406
+ 116.383 l 84.41 116.344 l 84.414 116.309 l 84.414 116.273 l 84.422 116.203
+ l 84.422 116.168 l 84.426 116.129 l 84.43 116.094 l 84.43 116.059 l 84.434
+ 116.023 l 84.434 115.988 l 84.441 115.918 l 84.441 115.883 l 84.445 115.844
+ l 84.449 115.809 l 84.449 115.773 l 84.453 115.738 l 84.453 115.703 l 84.461
+ 115.633 l 84.461 115.598 l 84.469 115.527 l 84.469 115.492 l 84.473 115.457
+ l 84.473 115.422 l 84.48 115.352 l 84.48 115.316 l 84.488 115.246 l 84.488
+ 115.211 l 84.492 115.176 l 84.492 115.141 l 84.5 115.07 l 84.5 115.035 
+l 84.508 114.965 l 84.508 114.93 l 84.512 114.895 l 84.512 114.863 l 84.52
+ 114.793 l 84.52 114.758 l 84.527 114.688 l 84.527 114.652 l 84.531 114.617
+ l 84.535 114.586 l 84.535 114.551 l 84.539 114.516 l 84.539 114.48 l 84.547
+ 114.41 l 84.547 114.379 l 84.555 114.309 l 84.555 114.273 l 84.559 114.238
+ l 84.559 114.207 l 84.566 114.137 l 84.566 114.102 l 84.57 114.07 l 84.574
+ 114.035 l 84.574 114 l 84.578 113.965 l 84.578 113.934 l 84.586 113.863
+ l 84.586 113.828 l 84.59 113.797 l 84.594 113.762 l 84.594 113.727 l 84.598
+ 113.695 l 84.598 113.66 l 84.602 113.625 l 84.605 113.594 l 84.605 113.559
+ l 84.609 113.523 l 84.613 113.492 l 84.613 113.457 l 84.617 113.422 l 84.621
+ 113.391 l 84.621 113.355 l 84.625 113.324 l 84.625 113.289 l 84.629 113.254
+ l 84.633 113.223 l 84.633 113.188 l 84.637 113.156 l 84.641 113.121 l 84.641
+ 113.086 l 84.645 113.055 l 84.645 113.02 l 84.648 112.988 l 84.652 112.953
+ l 84.652 112.922 l 84.656 112.887 l 84.66 112.855 l 84.66 112.82 l 84.664
+ 112.789 l 84.664 112.754 l 84.668 112.723 l 84.672 112.688 l 84.672 112.656
+ l 84.676 112.621 l 84.68 112.59 l 84.68 112.555 l 84.684 112.523 l 84.684
+ 112.492 l 84.688 112.457 l 84.691 112.426 l 84.691 112.391 l 84.695 112.359
+ l 84.699 112.324 l 84.699 112.293 l 84.703 112.262 l 84.703 112.227 l 84.707
+ 112.195 l 84.711 112.16 l 84.711 112.129 l 84.715 112.098 l 84.719 112.062
+ l 84.719 112.031 l 84.723 112 l 84.727 111.965 l 84.727 111.934 l 84.73
+ 111.902 l 84.73 111.867 l 84.738 111.805 l 84.738 111.773 l 84.742 111.738
+ l 84.746 111.707 l 84.746 111.676 l 84.75 111.641 l 84.75 111.609 l 84.758
+ 111.547 l 84.758 111.512 l 84.766 111.449 l 84.766 111.418 l 84.77 111.387
+ l 84.77 111.352 l 84.777 111.289 l 84.777 111.258 l 84.781 111.227 l 84.785
+ 111.191 l 84.785 111.16 l 84.789 111.129 l 84.789 111.098 l 84.797 111.035
+ l 84.797 111.004 l 84.801 110.969 l 84.805 110.938 l 84.805 110.906 l 84.809
+ 110.875 l 84.809 110.844 l 84.816 110.781 l 84.816 110.75 l 84.824 110.688
+ l 84.824 110.656 l 84.828 110.621 l 84.832 110.59 l 84.832 110.559 l 84.836
+ 110.527 l 84.836 110.496 l 84.844 110.434 l 84.844 110.402 l 84.852 110.34
+ l 84.852 110.309 l 84.855 110.277 l 84.855 110.246 l 84.859 110.215 l 84.863
+ 110.188 l 84.863 110.156 l 84.871 110.094 l 84.871 110.062 l 84.875 110.031
+ l 84.875 110 l 84.883 109.938 l 84.883 109.906 l 84.891 109.844 l 84.891
+ 109.816 l 84.895 109.785 l 84.895 109.754 l 84.902 109.691 l 84.902 109.66
+ l 84.906 109.633 l 84.91 109.602 l 84.91 109.57 l 84.918 109.508 l 84.918
+ 109.477 l 84.922 109.449 l 84.922 109.418 l 84.93 109.355 l 84.93 109.328
+ l 84.938 109.266 l 84.938 109.234 l 84.941 109.207 l 84.941 109.176 l 84.949
+ 109.113 l 84.949 109.086 l 84.957 109.023 l 84.957 108.996 l 84.961 108.965
+ l 84.961 108.934 l 84.965 108.906 l 84.969 108.875 l 84.969 108.844 l 84.973
+ 108.816 l 84.977 108.785 l 84.977 108.754 l 84.98 108.727 l 84.98 108.695
+ l 84.984 108.668 l 84.988 108.637 l 84.988 108.605 l 84.992 108.578 l 84.996
+ 108.547 l 84.996 108.52 l 85 108.488 l 85 108.461 l 85.008 108.398 l 85.008
+ 108.371 l 85.012 108.34 l 85.016 108.312 l 85.016 108.281 l 85.02 108.254
+ l 85.023 108.223 l 85.023 108.195 l 85.027 108.164 l 85.027 108.137 l 85.031
+ 108.105 l 85.035 108.078 l 85.035 108.047 l 85.043 107.992 l 85.043 107.961
+ l 85.047 107.934 l 85.047 107.902 l 85.051 107.875 l 85.055 107.844 l 85.055
+ 107.816 l 85.059 107.789 l 85.062 107.758 l 85.062 107.73 l 85.066 107.699
+ l 85.066 107.672 l 85.07 107.645 l 85.074 107.613 l 85.074 107.586 l 85.078
+ 107.559 l 85.082 107.527 l 85.082 107.5 l 85.086 107.473 l 85.086 107.441
+ l 85.094 107.387 l 85.094 107.355 l 85.102 107.301 l 85.102 107.273 l 85.105
+ 107.242 l 85.109 107.215 l 85.109 107.188 l 85.113 107.16 l 85.113 107.129
+ l 85.121 107.074 l 85.121 107.047 l 85.125 107.016 l 85.129 106.988 l 85.129
+ 106.961 l 85.133 106.934 l 85.133 106.906 l 85.137 106.875 l 85.141 106.848
+ l 85.141 106.82 l 85.148 106.766 l 85.148 106.738 l 85.152 106.711 l 85.152
+ 106.68 l 85.16 106.625 l 85.16 106.598 l 85.168 106.543 l 85.168 106.516
+ l 85.172 106.488 l 85.172 106.461 l 85.18 106.406 l 85.18 106.379 l 85.184
+ 106.348 l 85.188 106.32 l 85.188 106.293 l 85.191 106.266 l 85.191 106.238
+ l 85.199 106.184 l 85.199 106.156 l 85.207 106.102 l 85.207 106.074 l 85.215
+ 106.02 l 85.215 105.996 l 85.219 105.969 l 85.219 105.941 l 85.227 105.887
+ l 85.227 105.859 l 85.234 105.805 l 85.234 105.777 l 85.238 105.75 l 85.238
+ 105.723 l 85.242 105.699 l 85.246 105.672 l 85.246 105.645 l 85.254 105.59
+ l 85.254 105.562 l 85.258 105.535 l 85.258 105.512 l 85.266 105.457 l 85.266
+ 105.43 l 85.27 105.402 l 85.273 105.379 l 85.273 105.352 l 85.277 105.324
+ l 85.277 105.297 l 85.281 105.27 l 85.285 105.246 l 85.285 105.219 l 85.293
+ 105.164 l 85.293 105.141 l 85.301 105.086 l 85.301 105.062 l 85.305 105.035
+ l 85.305 105.008 l 85.309 104.984 l 85.312 104.957 l 85.312 104.93 l 85.316
+ 104.906 l 85.32 104.879 l 85.32 104.852 l 85.324 104.828 l 85.324 104.801
+ l 85.328 104.773 l 85.332 104.75 l 85.332 104.723 l 85.336 104.695 l 85.34
+ 104.672 l 85.34 104.645 l 85.344 104.621 l 85.344 104.594 l 85.348 104.57
+ l 85.352 104.543 l 85.352 104.516 l 85.355 104.492 l 85.359 104.465 l 85.359
+ 104.441 l 85.363 104.414 l 85.363 104.391 l 85.367 104.363 l 85.371 104.34
+ l 85.371 104.312 l 85.375 104.289 l 85.379 104.262 l 85.379 104.238 l 85.383
+ 104.211 l 85.383 104.188 l 85.387 104.16 l 85.391 104.137 l 85.391 104.109
+ l 85.398 104.062 l 85.398 104.035 l 85.402 104.012 l 85.406 103.984 l 85.406
+ 103.961 l 85.41 103.938 l 85.41 103.91 l 85.414 103.887 l 85.418 103.859
+ l 85.418 103.836 l 85.422 103.812 l 85.426 103.785 l 85.426 103.762 l 85.43
+ 103.738 l 85.43 103.711 l 85.438 103.664 l 85.438 103.637 l 85.445 103.59
+ l 85.445 103.562 l 85.449 103.539 l 85.449 103.516 l 85.453 103.492 l 85.457
+ 103.465 l 85.457 103.441 l 85.465 103.395 l 85.465 103.367 l 85.469 103.344
+ l 85.469 103.32 l 85.477 103.273 l 85.477 103.246 l 85.484 103.199 l 85.484
+ 103.176 l 85.488 103.152 l 85.492 103.125 l 85.492 103.102 l 85.496 103.078
+ l 85.496 103.055 l 85.504 103.008 l 85.504 102.984 l 85.508 102.961 l 85.512
+ 102.934 l 85.512 102.91 l 85.516 102.887 l 85.516 102.863 l 85.523 102.816
+ l 85.523 102.793 l 85.531 102.746 l 85.531 102.723 l 85.535 102.699 l 85.535
+ 102.676 l 85.543 102.629 l 85.543 102.605 l 85.551 102.559 l 85.551 102.535
+ l 85.555 102.512 l 85.555 102.488 l 85.562 102.441 l 85.562 102.418 l 85.57
+ 102.371 l 85.57 102.348 l 85.574 102.324 l 85.574 102.301 l 85.582 102.254
+ l 85.582 102.234 l 85.59 102.188 l 85.59 102.164 l 85.598 102.117 l 85.598
+ 102.094 l 85.602 102.074 l 85.602 102.051 l 85.609 102.004 l 85.609 101.98
+ l 85.613 101.957 l 85.617 101.938 l 85.617 101.914 l 85.621 101.891 l 85.621
+ 101.867 l 85.625 101.848 l 85.629 101.824 l 85.629 101.801 l 85.633 101.777
+ l 85.637 101.758 l 85.637 101.734 l 85.641 101.711 l 85.641 101.688 l 85.645
+ 101.668 l 85.648 101.645 l 85.648 101.621 l 85.652 101.602 l 85.656 101.578
+ l 85.656 101.555 l 85.66 101.531 l 85.66 101.512 l 85.664 101.488 l 85.668
+ 101.469 l 85.668 101.445 l 85.672 101.422 l 85.676 101.402 l 85.676 101.379
+ l 85.68 101.355 l 85.684 101.336 l 85.684 101.312 l 85.688 101.293 l 85.688
+ 101.27 l 85.691 101.246 l 85.695 101.227 l 85.695 101.203 l 85.699 101.184
+ l 85.703 101.16 l 85.703 101.141 l 85.707 101.117 l 85.707 101.098 l 85.711
+ 101.074 l 85.715 101.055 l 85.715 101.031 l 85.719 101.012 l 85.723 100.988
+ l 85.723 100.969 l 85.727 100.945 l 85.727 100.926 l 85.73 100.902 l 85.734
+ 100.883 l 85.734 100.859 l 85.738 100.84 l 85.742 100.816 l 85.742 100.797
+ l 85.746 100.773 l 85.746 100.754 l 85.75 100.734 l 85.754 100.711 l 85.754
+ 100.691 l 85.758 100.668 l 85.762 100.648 l 85.762 100.629 l 85.766 100.605
+ l 85.766 100.586 l 85.77 100.566 l 85.773 100.543 l 85.773 100.523 l 85.777
+ 100.504 l 85.781 100.48 l 85.781 100.461 l 85.785 100.441 l 85.789 100.418
+ l 85.789 100.398 l 85.793 100.379 l 85.793 100.359 l 85.797 100.336 l 85.801
+ 100.316 l 85.801 100.297 l 85.805 100.277 l 85.809 100.254 l 85.809 100.234
+ l 85.812 100.215 l 85.812 100.195 l 85.816 100.172 l 85.82 100.152 l 85.82
+ 100.133 l 85.828 100.094 l 85.828 100.07 l 85.832 100.051 l 85.832 100.031
+ l 85.84 99.992 l 85.84 99.973 l 85.844 99.949 l 85.848 99.93 l 85.848 99.91
+ l 85.852 99.891 l 85.852 99.871 l 85.859 99.832 l 85.859 99.812 l 85.867
+ 99.773 l 85.867 99.75 l 85.875 99.711 l 85.875 99.691 l 85.879 99.672 l
+ 85.879 99.652 l 85.887 99.613 l 85.887 99.594 l 85.895 99.555 l 85.895 
+99.535 l 85.898 99.516 l 85.898 99.496 l 85.906 99.457 l 85.906 99.438 l
+ 85.91 99.418 l 85.914 99.402 l 85.914 99.383 l 85.918 99.363 l 85.918 99.344
+ l 85.926 99.305 l 85.926 99.285 l 85.934 99.246 l 85.934 99.227 l 85.938
+ 99.211 l 85.938 99.191 l 85.945 99.152 l 85.945 99.133 l 85.953 99.094 
+l 85.953 99.078 l 85.957 99.059 l 85.957 99.039 l 85.965 99 l 85.965 98.984
+ l 85.973 98.945 l 85.973 98.926 l 85.977 98.91 l 85.98 98.891 l 85.98 98.871
+ l 85.984 98.852 l 85.984 98.836 l 85.992 98.797 l 85.992 98.781 l 86 98.742
+ l 86 98.723 l 86.004 98.707 l 86.004 98.688 l 86.008 98.668 l 86.012 98.652
+ l 86.012 98.633 l 86.016 98.617 l 86.02 98.598 l 86.02 98.578 l 86.023 
+98.562 l 86.023 98.543 l 86.027 98.523 l 86.031 98.508 l 86.031 98.488 l
+ 86.035 98.473 l 86.039 98.453 l 86.039 98.438 l 86.043 98.418 l 86.043 
+98.398 l 86.047 98.383 l 86.051 98.363 l 86.051 98.348 l 86.055 98.328 l
+ 86.059 98.312 l 86.059 98.293 l 86.062 98.277 l 86.066 98.258 l 86.066 
+98.242 l 86.07 98.223 l 86.07 98.207 l 86.074 98.188 l 86.078 98.172 l 86.078
+ 98.152 l 86.086 98.121 l 86.086 98.102 l 86.09 98.086 l 86.09 98.066 l 
+86.094 98.051 l 86.098 98.031 l 86.098 98.016 l 86.102 98 l 86.105 97.98
+ l 86.105 97.965 l 86.109 97.949 l 86.109 97.93 l 86.113 97.914 l 86.117
+ 97.895 l 86.117 97.879 l 86.121 97.863 l 86.125 97.844 l 86.125 97.828 
+l 86.129 97.812 l 86.129 97.793 l 86.137 97.762 l 86.137 97.746 l 86.141
+ 97.727 l 86.145 97.711 l 86.145 97.695 l 86.148 97.68 l 86.148 97.66 l 
+86.156 97.629 l 86.156 97.613 l 86.16 97.594 l 86.164 97.578 l 86.164 97.562
+ l 86.172 97.531 l 86.172 97.512 l 86.176 97.496 l 86.176 97.48 l 86.184
+ 97.449 l 86.184 97.434 l 86.188 97.414 l 86.191 97.398 l 86.191 97.383 
+l 86.195 97.367 l 86.195 97.352 l 86.203 97.32 l 86.203 97.305 l 86.207 
+97.289 l 86.211 97.27 l 86.211 97.254 l 86.215 97.238 l 86.215 97.223 l 
+86.223 97.191 l 86.223 97.176 l 86.23 97.145 l 86.23 97.129 l 86.234 97.113
+ l 86.234 97.098 l 86.242 97.066 l 86.242 97.051 l 86.25 97.02 l 86.25 97.004
+ l 86.258 96.973 l 86.258 96.957 l 86.262 96.941 l 86.262 96.926 l 86.266
+ 96.914 l 86.27 96.898 l 86.27 96.883 l 86.277 96.852 l 86.277 96.836 l 
+86.281 96.82 l 86.281 96.805 l 86.285 96.789 l 86.289 96.777 l 86.289 96.762
+ l 86.297 96.73 l 86.297 96.715 l 86.301 96.699 l 86.301 96.688 l 86.309
+ 96.656 l 86.309 96.641 l 86.312 96.625 l 86.316 96.613 l 86.316 96.598 
+l 86.32 96.582 l 86.32 96.566 l 86.324 96.555 l 86.328 96.539 l 86.328 96.523
+ l 86.332 96.508 l 86.336 96.496 l 86.336 96.48 l 86.34 96.465 l 86.34 96.453
+ l 86.348 96.422 l 86.348 96.41 l 86.355 96.379 l 86.355 96.367 l 86.363
+ 96.336 l 86.363 96.324 l 86.367 96.309 l 86.367 96.293 l 86.371 96.281 
+l 86.375 96.266 l 86.375 96.254 l 86.383 96.223 l 86.383 96.211 l 86.387
+ 96.195 l 86.387 96.184 l 86.391 96.168 l 86.395 96.156 l 86.395 96.141 
+l 86.398 96.125 l 86.402 96.113 l 86.402 96.098 l 86.406 96.086 l 86.406
+ 96.07 l 86.41 96.059 l 86.414 96.043 l 86.414 96.031 l 86.418 96.016 l 
+86.422 96.004 l 86.422 95.988 l 86.426 95.977 l 86.426 95.965 l 86.43 95.949
+ l 86.434 95.938 l 86.434 95.922 l 86.438 95.91 l 86.441 95.895 l 86.441
+ 95.883 l 86.445 95.871 l 86.449 95.855 l 86.449 95.844 l 86.453 95.828 
+l 86.453 95.816 l 86.457 95.805 l 86.461 95.789 l 86.461 95.777 l 86.465
+ 95.766 l 86.469 95.75 l 86.469 95.738 l 86.473 95.727 l 86.473 95.711 l
+ 86.48 95.688 l 86.48 95.672 l 86.488 95.648 l 86.488 95.633 l 86.492 95.621
+ l 86.492 95.609 l 86.496 95.598 l 86.5 95.582 l 86.5 95.57 l 86.508 95.547
+ l 86.508 95.531 l 86.512 95.52 l 86.512 95.508 l 86.52 95.484 l 86.52 95.469
+ l 86.527 95.445 l 86.527 95.434 l 86.531 95.422 l 86.531 95.41 l 86.535
+ 95.395 l 86.539 95.383 l 86.539 95.371 l 86.547 95.348 l 86.547 95.336 
+l 86.555 95.312 l 86.555 95.301 l 86.559 95.285 l 86.559 95.273 l 86.566
+ 95.25 l 86.566 95.238 l 86.574 95.215 l 86.574 95.203 l 86.578 95.191 l
+ 86.578 95.18 l 86.586 95.156 l 86.586 95.145 l 86.594 95.121 l 86.594 95.109
+ l 86.598 95.098 l 86.598 95.086 l 86.605 95.062 l 86.605 95.051 l 86.613
+ 95.027 l 86.613 95.016 l 86.617 95.004 l 86.617 94.996 l 86.625 94.973 
+l 86.625 94.961 l 86.633 94.938 l 86.633 94.926 l 86.637 94.914 l 86.641
+ 94.906 l 86.641 94.895 l 86.645 94.883 l 86.645 94.871 l 86.652 94.848 
+l 86.652 94.84 l 86.66 94.816 l 86.66 94.805 l 86.664 94.793 l 86.664 94.785
+ l 86.672 94.762 l 86.672 94.75 l 86.676 94.742 l 86.68 94.73 l 86.68 94.719
+ l 86.684 94.707 l 86.684 94.699 l 86.691 94.676 l 86.691 94.664 l 86.695
+ 94.656 l 86.699 94.645 l 86.699 94.633 l 86.703 94.625 l 86.703 94.613 
+l 86.707 94.602 l 86.711 94.594 l 86.711 94.582 l 86.715 94.57 l 86.719 
+94.562 l 86.719 94.551 l 86.723 94.543 l 86.723 94.531 l 86.727 94.52 l 
+86.73 94.512 l 86.73 94.5 l 86.734 94.492 l 86.738 94.48 l 86.738 94.469
+ l 86.742 94.461 l 86.746 94.449 l 86.746 94.441 l 86.75 94.43 l 86.75 94.422
+ l 86.754 94.41 l 86.758 94.402 l 86.758 94.391 l 86.762 94.383 l 86.766
+ 94.371 l 86.766 94.359 l 86.77 94.352 l 86.77 94.344 l 86.773 94.332 l 
+86.777 94.324 l 86.777 94.312 l 86.781 94.305 l 86.785 94.293 l 86.785 94.285
+ l 86.789 94.273 l 86.789 94.266 l 86.793 94.254 l 86.797 94.246 l 86.797
+ 94.238 l 86.801 94.227 l 86.805 94.219 l 86.805 94.207 l 86.809 94.199 
+l 86.809 94.191 l 86.812 94.18 l 86.816 94.172 l 86.816 94.164 l 86.82 94.152
+ l 86.824 94.145 l 86.824 94.137 l 86.828 94.125 l 86.832 94.117 l 86.832
+ 94.109 l 86.836 94.098 l 86.836 94.09 l 86.84 94.082 l 86.844 94.07 l 86.844
+ 94.062 l 86.852 94.047 l 86.852 94.035 l 86.855 94.027 l 86.855 94.02 l
+ 86.859 94.012 l 86.863 94 l 86.863 93.992 l 86.871 93.977 l 86.871 93.969
+ l 86.875 93.957 l 86.875 93.949 l 86.883 93.934 l 86.883 93.926 l 86.887
+ 93.914 l 86.891 93.906 l 86.891 93.898 l 86.895 93.891 l 86.895 93.883 
+l 86.902 93.867 l 86.902 93.855 l 86.91 93.84 l 86.91 93.832 l 86.914 93.824
+ l 86.914 93.816 l 86.922 93.801 l 86.922 93.793 l 86.93 93.777 l 86.93 
+93.77 l 86.938 93.754 l 86.938 93.746 l 86.941 93.734 l 86.941 93.727 l 
+86.949 93.711 l 86.949 93.707 l 86.957 93.691 l 86.957 93.684 l 86.961 93.676
+ l 86.961 93.668 l 86.969 93.652 l 86.969 93.645 l 86.977 93.629 l 86.977
+ 93.621 l 86.98 93.613 l 86.98 93.605 l 86.988 93.59 l 86.988 93.586 l 86.996
+ 93.57 l 86.996 93.562 l 87 93.555 l 87 93.547 l 87.004 93.539 l 87.008 
+93.535 l 87.008 93.527 l 87.016 93.512 l 87.016 93.504 l 87.02 93.5 l 87.023
+ 93.492 l 87.023 93.484 l 87.027 93.477 l 87.027 93.469 l 87.031 93.465 
+l 87.035 93.457 l 87.035 93.449 l 87.039 93.441 l 87.043 93.438 l 87.043
+ 93.43 l 87.047 93.422 l 87.047 93.414 l 87.051 93.41 l 87.055 93.402 l 
+87.055 93.395 l 87.059 93.391 l 87.062 93.383 l 87.062 93.375 l 87.066 93.371
+ l 87.066 93.363 l 87.07 93.355 l 87.074 93.352 l 87.074 93.344 l 87.078
+ 93.336 l 87.082 93.332 l 87.082 93.324 l 87.086 93.316 l 87.086 93.312 
+l 87.09 93.305 l 87.094 93.301 l 87.094 93.293 l 87.098 93.285 l 87.102 
+93.281 l 87.102 93.273 l 87.105 93.27 l 87.105 93.262 l 87.109 93.258 l 
+87.113 93.25 l 87.113 93.246 l 87.121 93.23 l 87.121 93.227 l 87.125 93.219
+ l 87.129 93.215 l 87.129 93.207 l 87.133 93.203 l 87.133 93.195 l 87.137
+ 93.191 l 87.141 93.184 l 87.141 93.18 l 87.145 93.176 l 87.148 93.168 l
+ 87.148 93.164 l 87.152 93.156 l 87.152 93.152 l 87.156 93.145 l 87.16 93.141
+ l 87.16 93.133 l 87.168 93.125 l 87.168 93.117 l 87.172 93.113 l 87.172
+ 93.109 l 87.176 93.102 l 87.18 93.098 l 87.18 93.09 l 87.188 93.082 l 87.188
+ 93.074 l 87.191 93.07 l 87.191 93.066 l 87.195 93.059 l 87.199 93.055 l
+ 87.199 93.051 l 87.203 93.043 l 87.207 93.039 l 87.207 93.035 l 87.211 
+93.031 l 87.215 93.023 l 87.215 93.02 l 87.219 93.016 l 87.219 93.012 l 
+87.223 93.004 l 87.227 93 l 87.227 92.996 l 87.23 92.992 l 87.234 92.984
+ l 87.234 92.98 l 87.238 92.977 l 87.238 92.973 l 87.242 92.965 l 87.246
+ 92.961 l 87.246 92.957 l 87.254 92.949 l 87.254 92.945 l 87.258 92.938 
+l 87.258 92.934 l 87.266 92.926 l 87.266 92.922 l 87.273 92.914 l 87.273
+ 92.91 l 87.277 92.902 l 87.277 92.898 l 87.285 92.891 l 87.285 92.887 l
+ 87.293 92.879 l 87.293 92.875 l 87.297 92.871 l 87.297 92.867 l 87.305 
+92.859 l 87.305 92.855 l 87.312 92.848 l 87.312 92.844 l 87.32 92.836 l 
+87.32 92.832 l 87.324 92.828 l 87.324 92.824 l 87.332 92.816 l 87.332 92.812
+ l 87.34 92.805 l 87.34 92.801 l 87.344 92.797 l 87.344 92.793 l 87.352 
+92.785 l 87.352 92.781 l 87.355 92.777 l 87.359 92.777 l 87.359 92.773 l
+ 87.363 92.77 l 87.363 92.766 l 87.371 92.758 l 87.371 92.754 l 87.375 92.754
+ l 87.379 92.75 l 87.379 92.746 l 87.383 92.742 l 87.383 92.738 l 87.387
+ 92.734 l 87.391 92.734 l 87.391 92.73 l 87.398 92.723 l 87.398 92.719 l
+ 87.402 92.719 l 87.406 92.715 l 87.406 92.711 l 87.418 92.699 l 87.418 
+92.695 l 87.422 92.695 l 87.426 92.691 l 87.426 92.688 l 87.43 92.688 l 
+87.43 92.684 l 87.449 92.664 l 87.449 92.66 l 87.453 92.66 l 87.48 92.633
+ l 87.484 92.633 l 87.484 92.629 l 87.488 92.629 l 87.488 92.625 l 87.492
+ 92.621 l 87.496 92.621 l 87.496 92.617 l 87.5 92.617 l 87.508 92.609 l 
+87.512 92.609 l 87.512 92.605 l 87.516 92.605 l 87.516 92.602 l 87.52 92.602
+ l 87.523 92.598 l 87.527 92.598 l 87.539 92.586 l 87.543 92.586 l 87.547
+ 92.582 l 87.551 92.582 l 87.551 92.578 l 87.555 92.578 l 87.559 92.574 
+l 87.562 92.574 l 87.566 92.57 l 87.57 92.57 l 87.574 92.566 l 87.578 92.566
+ l 87.582 92.562 l 87.586 92.562 l 87.59 92.559 l 87.594 92.559 l 87.598
+ 92.555 l 87.605 92.555 l 87.609 92.551 l 87.617 92.551 l 87.617 92.547 
+l 87.629 92.547 l 87.629 92.543 l 87.641 92.543 l 87.645 92.539 l 87.66 
+92.539 l 87.664 92.535 l 87.738 92.535 l 87.742 92.539 l 87.758 92.539 l
+ 87.762 92.543 l 87.773 92.543 l 87.773 92.547 l 87.785 92.547 l 87.785 
+92.551 l 87.797 92.551 l 87.801 92.555 l 87.809 92.555 l 87.809 92.559 l
+ 87.812 92.559 l 87.816 92.562 l 87.824 92.562 l 87.828 92.566 l 87.832 
+92.566 l 87.832 92.57 l 87.84 92.57 l 87.84 92.574 l 87.848 92.574 l 87.848
+ 92.578 l 87.852 92.578 l 87.852 92.582 l 87.859 92.582 l 87.859 92.586 
+l 87.863 92.586 l 87.867 92.59 l 87.871 92.59 l 87.871 92.594 l 87.875 92.594
+ l 87.883 92.602 l 87.887 92.602 l 87.891 92.605 l 87.895 92.605 l 87.895
+ 92.609 l 87.898 92.609 l 87.898 92.613 l 87.902 92.613 l 87.91 92.621 l
+ 87.914 92.621 l 87.914 92.625 l 87.918 92.625 l 87.918 92.629 l 87.922 
+92.633 l 87.926 92.633 l 87.926 92.637 l 87.93 92.637 l 87.938 92.645 l 
+87.938 92.648 l 87.941 92.648 l 87.977 92.684 l 87.977 92.688 l 87.98 92.688
+ l 87.984 92.691 l 87.984 92.695 l 87.988 92.699 l 87.992 92.699 l 87.992
+ 92.703 l 87.996 92.707 l 88 92.707 l 88 92.711 l 88.004 92.715 l 88.004
+ 92.719 l 88.008 92.719 l 88.012 92.723 l 88.012 92.727 l 88.023 92.738 
+l 88.023 92.742 l 88.027 92.746 l 88.031 92.746 l 88.031 92.75 l 88.039 
+92.758 l 88.039 92.762 l 88.051 92.773 l 88.051 92.777 l 88.059 92.785 l
+ 88.059 92.789 l 88.07 92.801 l 88.07 92.805 l 88.078 92.812 l 88.078 92.816
+ l 88.086 92.824 l 88.086 92.828 l 88.09 92.832 l 88.09 92.836 l 88.098 
+92.844 l 88.098 92.848 l 88.102 92.848 l 88.105 92.852 l 88.105 92.855 l
+ 88.109 92.859 l 88.109 92.863 l 88.117 92.871 l 88.117 92.879 l 88.125 
+92.887 l 88.125 92.891 l 88.129 92.895 l 88.129 92.898 l 88.137 92.906 l
+ 88.137 92.91 l 88.145 92.918 l 88.145 92.922 l 88.148 92.926 l 88.148 92.93
+ l 88.152 92.934 l 88.156 92.941 l 88.156 92.945 l 88.164 92.953 l 88.164
+ 92.957 l 88.168 92.961 l 88.168 92.965 l 88.172 92.969 l 88.176 92.977 
+l 88.176 92.98 l 88.184 92.988 l 88.184 92.992 l 88.188 92.996 l 88.191 
+93.004 l 88.191 93.008 l 88.195 93.012 l 88.195 93.016 l 88.199 93.02 l 
+88.203 93.027 l 88.203 93.031 l 88.211 93.039 l 88.211 93.047 l 88.215 93.051
+ l 88.215 93.055 l 88.219 93.059 l 88.223 93.066 l 88.223 93.07 l 88.23 
+93.078 l 88.23 93.086 l 88.234 93.09 l 88.234 93.094 l 88.238 93.102 l 88.242
+ 93.105 l 88.242 93.109 l 88.246 93.117 l 88.25 93.121 l 88.25 93.125 l 
+88.254 93.133 l 88.254 93.137 l 88.258 93.141 l 88.262 93.148 l 88.262 93.152
+ l 88.266 93.156 l 88.27 93.164 l 88.27 93.168 l 88.273 93.172 l 88.277 
+93.18 l 88.277 93.184 l 88.281 93.191 l 88.281 93.195 l 88.285 93.199 l 
+88.289 93.207 l 88.289 93.211 l 88.293 93.219 l 88.297 93.223 l 88.297 93.23
+ l 88.301 93.234 l 88.301 93.238 l 88.305 93.246 l 88.309 93.25 l 88.309
+ 93.258 l 88.312 93.262 l 88.316 93.27 l 88.316 93.273 l 88.32 93.281 l 
+88.32 93.285 l 88.324 93.293 l 88.328 93.297 l 88.328 93.305 l 88.332 93.309
+ l 88.336 93.316 l 88.336 93.32 l 88.34 93.328 l 88.34 93.332 l 88.348 93.348
+ l 88.348 93.352 l 88.352 93.359 l 88.355 93.363 l 88.355 93.371 l 88.359
+ 93.375 l 88.359 93.383 l 88.363 93.391 l 88.367 93.395 l 88.367 93.402 
+l 88.371 93.406 l 88.375 93.414 l 88.375 93.422 l 88.379 93.426 l 88.383
+ 93.434 l 88.383 93.438 l 88.387 93.445 l 88.387 93.453 l 88.391 93.457 
+l 88.395 93.465 l 88.395 93.473 l 88.398 93.477 l 88.402 93.484 l 88.402
+ 93.492 l 88.406 93.496 l 88.406 93.504 l 88.414 93.52 l 88.414 93.523 l
+ 88.422 93.539 l 88.422 93.543 l 88.426 93.551 l 88.426 93.559 l 88.43 93.566
+ l 88.434 93.57 l 88.434 93.578 l 88.441 93.594 l 88.441 93.598 l 88.445
+ 93.605 l 88.445 93.613 l 88.453 93.629 l 88.453 93.633 l 88.461 93.648 
+l 88.461 93.656 l 88.465 93.664 l 88.469 93.668 l 88.469 93.676 l 88.473
+ 93.684 l 88.473 93.691 l 88.48 93.707 l 88.48 93.711 l 88.488 93.727 l 
+88.488 93.734 l 88.492 93.742 l 88.492 93.75 l 88.5 93.766 l 88.5 93.773
+ l 88.504 93.777 l 88.508 93.785 l 88.508 93.793 l 88.512 93.801 l 88.512
+ 93.809 l 88.52 93.824 l 88.52 93.832 l 88.527 93.848 l 88.527 93.855 l 
+88.531 93.863 l 88.531 93.871 l 88.539 93.887 l 88.539 93.895 l 88.547 93.91
+ l 88.547 93.918 l 88.551 93.926 l 88.551 93.934 l 88.559 93.949 l 88.559
+ 93.957 l 88.566 93.973 l 88.566 93.98 l 88.574 93.996 l 88.574 94.004 l
+ 88.578 94.012 l 88.578 94.02 l 88.586 94.035 l 88.586 94.047 l 88.594 94.062
+ l 88.594 94.07 l 88.598 94.078 l 88.598 94.086 l 88.605 94.102 l 88.605
+ 94.109 l 88.609 94.121 l 88.613 94.129 l 88.613 94.137 l 88.617 94.145 
+l 88.617 94.152 l 88.621 94.16 l 88.625 94.172 l 88.625 94.18 l 88.633 94.195
+ l 88.633 94.203 l 88.637 94.211 l 88.637 94.223 l 88.645 94.238 l 88.645
+ 94.246 l 88.648 94.258 l 88.652 94.266 l 88.652 94.273 l 88.66 94.289 l
+ 88.66 94.301 l 88.664 94.309 l 88.664 94.316 l 88.668 94.328 l 88.672 94.336
+ l 88.672 94.344 l 88.676 94.352 l 88.68 94.363 l 88.68 94.371 l 88.684 
+94.379 l 88.684 94.391 l 88.691 94.406 l 88.691 94.414 l 88.695 94.426 l
+ 88.699 94.434 l 88.699 94.441 l 88.703 94.453 l 88.703 94.461 l 88.707 
+94.469 l 88.711 94.48 l 88.711 94.488 l 88.715 94.5 l 88.719 94.508 l 88.719
+ 94.516 l 88.723 94.527 l 88.723 94.535 l 88.727 94.543 l 88.73 94.555 l
+ 88.73 94.562 l 88.734 94.574 l 88.738 94.582 l 88.738 94.594 l 88.742 94.602
+ l 88.742 94.609 l 88.746 94.621 l 88.75 94.629 l 88.75 94.641 l 88.754 
+94.648 l 88.758 94.66 l 88.758 94.668 l 88.762 94.68 l 88.766 94.688 l 88.766
+ 94.699 l 88.77 94.707 l 88.77 94.715 l 88.773 94.727 l 88.777 94.734 l 
+88.777 94.746 l 88.781 94.754 l 88.785 94.766 l 88.785 94.777 l 88.789 94.785
+ l 88.789 94.797 l 88.793 94.805 l 88.797 94.816 l 88.797 94.824 l 88.801
+ 94.836 l 88.805 94.844 l 88.805 94.855 l 88.809 94.863 l 88.809 94.875 
+l 88.812 94.887 l 88.816 94.895 l 88.816 94.906 l 88.82 94.914 l 88.824 
+94.926 l 88.824 94.938 l 88.828 94.945 l 88.828 94.957 l 88.832 94.965 l
+ 88.836 94.977 l 88.836 94.988 l 88.84 94.996 l 88.844 95.008 l 88.844 95.016
+ l 88.852 95.039 l 88.852 95.047 l 88.855 95.059 l 88.855 95.07 l 88.859
+ 95.078 l 88.863 95.09 l 88.863 95.102 l 88.867 95.109 l 88.871 95.121 l
+ 88.871 95.133 l 88.875 95.145 l 88.875 95.152 l 88.883 95.176 l 88.883 
+95.184 l 88.891 95.207 l 88.891 95.219 l 88.895 95.227 l 88.895 95.238 l
+ 88.902 95.262 l 88.902 95.27 l 88.91 95.293 l 88.91 95.305 l 88.914 95.316
+ l 88.914 95.324 l 88.922 95.348 l 88.922 95.359 l 88.926 95.371 l 88.93
+ 95.379 l 88.93 95.391 l 88.934 95.402 l 88.934 95.414 l 88.938 95.426 l
+ 88.941 95.434 l 88.941 95.445 l 88.949 95.469 l 88.949 95.48 l 88.957 95.504
+ l 88.957 95.512 l 88.961 95.523 l 88.961 95.535 l 88.969 95.559 l 88.969
+ 95.57 l 88.977 95.594 l 88.977 95.605 l 88.98 95.617 l 88.98 95.629 l 88.984
+ 95.637 l 88.988 95.648 l 88.988 95.66 l 88.996 95.684 l 88.996 95.695 l
+ 89 95.707 l 89 95.719 l 89.008 95.742 l 89.008 95.754 l 89.016 95.777 l
+ 89.016 95.789 l 89.02 95.801 l 89.02 95.812 l 89.027 95.836 l 89.027 95.848
+ l 89.035 95.871 l 89.035 95.883 l 89.043 95.906 l 89.043 95.918 l 89.047
+ 95.93 l 89.047 95.941 l 89.055 95.965 l 89.055 95.98 l 89.062 96.004 l 
+89.062 96.016 l 89.066 96.027 l 89.066 96.039 l 89.074 96.062 l 89.074 96.074
+ l 89.078 96.086 l 89.082 96.102 l 89.082 96.113 l 89.086 96.125 l 89.086
+ 96.137 l 89.094 96.16 l 89.094 96.172 l 89.098 96.184 l 89.102 96.199 l
+ 89.102 96.211 l 89.105 96.223 l 89.105 96.234 l 89.109 96.246 l 89.113 
+96.262 l 89.113 96.273 l 89.121 96.297 l 89.121 96.309 l 89.125 96.324 l
+ 89.125 96.336 l 89.133 96.359 l 89.133 96.371 l 89.137 96.387 l 89.141 
+96.398 l 89.141 96.41 l 89.145 96.422 l 89.148 96.438 l 89.148 96.449 l 
+89.152 96.461 l 89.152 96.473 l 89.156 96.488 l 89.16 96.5 l 89.16 96.512
+ l 89.164 96.523 l 89.168 96.539 l 89.168 96.551 l 89.172 96.562 l 89.172
+ 96.578 l 89.18 96.602 l 89.18 96.617 l 89.188 96.641 l 89.188 96.656 l 
+89.191 96.668 l 89.191 96.68 l 89.195 96.695 l 89.199 96.707 l 89.199 96.719
+ l 89.203 96.734 l 89.207 96.746 l 89.207 96.758 l 89.211 96.773 l 89.211
+ 96.785 l 89.215 96.801 l 89.219 96.812 l 89.219 96.824 l 89.223 96.84 l
+ 89.227 96.852 l 89.227 96.867 l 89.234 96.891 l 89.234 96.906 l 89.238 
+96.918 l 89.238 96.934 l 89.242 96.945 l 89.246 96.961 l 89.246 96.973 l
+ 89.25 96.984 l 89.254 97 l 89.254 97.012 l 89.258 97.027 l 89.258 97.039
+ l 89.262 97.055 l 89.266 97.066 l 89.266 97.082 l 89.27 97.094 l 89.273
+ 97.109 l 89.273 97.121 l 89.277 97.137 l 89.277 97.148 l 89.281 97.164 
+l 89.285 97.176 l 89.285 97.191 l 89.289 97.203 l 89.293 97.219 l 89.293
+ 97.23 l 89.297 97.246 l 89.297 97.258 l 89.305 97.289 l 89.305 97.301 l
+ 89.309 97.316 l 89.312 97.328 l 89.312 97.344 l 89.316 97.355 l 89.316 
+97.371 l 89.32 97.387 l 89.324 97.398 l 89.324 97.414 l 89.328 97.426 l 
+89.332 97.441 l 89.332 97.457 l 89.336 97.469 l 89.34 97.484 l 89.34 97.496
+ l 89.344 97.512 l 89.344 97.527 l 89.348 97.539 l 89.352 97.555 l 89.352
+ 97.57 l 89.355 97.582 l 89.359 97.598 l 89.359 97.609 l 89.363 97.625 l
+ 89.363 97.641 l 89.367 97.652 l 89.371 97.668 l 89.371 97.684 l 89.375 
+97.699 l 89.379 97.711 l 89.379 97.727 l 89.383 97.742 l 89.383 97.754 l
+ 89.391 97.785 l 89.391 97.797 l 89.398 97.828 l 89.398 97.844 l 89.402 
+97.855 l 89.402 97.871 l 89.41 97.902 l 89.41 97.914 l 89.418 97.945 l 89.418
+ 97.961 l 89.422 97.973 l 89.426 97.988 l 89.426 98.004 l 89.43 98.02 l 
+89.43 98.035 l 89.434 98.047 l 89.438 98.062 l 89.438 98.078 l 89.445 98.109
+ l 89.445 98.121 l 89.449 98.137 l 89.449 98.152 l 89.457 98.184 l 89.457
+ 98.199 l 89.461 98.211 l 89.465 98.227 l 89.465 98.242 l 89.469 98.258 
+l 89.469 98.273 l 89.477 98.305 l 89.477 98.316 l 89.484 98.348 l 89.484
+ 98.363 l 89.488 98.379 l 89.488 98.395 l 89.496 98.426 l 89.496 98.441 
+l 89.5 98.453 l 89.504 98.469 l 89.504 98.484 l 89.508 98.5 l 89.508 98.516
+ l 89.516 98.547 l 89.516 98.562 l 89.523 98.594 l 89.523 98.609 l 89.531
+ 98.641 l 89.531 98.656 l 89.535 98.672 l 89.535 98.688 l 89.543 98.719 
+l 89.543 98.734 l 89.551 98.766 l 89.551 98.781 l 89.555 98.797 l 89.555
+ 98.812 l 89.562 98.844 l 89.562 98.859 l 89.57 98.891 l 89.57 98.906 l 
+89.574 98.922 l 89.574 98.938 l 89.582 98.969 l 89.582 98.984 l 89.59 99.016
+ l 89.59 99.031 l 89.594 99.047 l 89.594 99.062 l 89.598 99.082 l 89.602
+ 99.098 l 89.602 99.113 l 89.609 99.145 l 89.609 99.16 l 89.617 99.191 l
+ 89.617 99.207 l 89.621 99.227 l 89.621 99.242 l 89.629 99.273 l 89.629 
+99.289 l 89.637 99.32 l 89.637 99.34 l 89.641 99.355 l 89.641 99.371 l 89.648
+ 99.402 l 89.648 99.418 l 89.652 99.438 l 89.656 99.453 l 89.656 99.469 
+l 89.66 99.484 l 89.66 99.5 l 89.664 99.52 l 89.668 99.535 l 89.668 99.551
+ l 89.676 99.582 l 89.676 99.602 l 89.68 99.617 l 89.68 99.633 l 89.684 
+99.648 l 89.688 99.668 l 89.688 99.684 l 89.695 99.715 l 89.695 99.734 l
+ 89.699 99.75 l 89.699 99.766 l 89.703 99.781 l 89.707 99.801 l 89.707 99.816
+ l 89.711 99.832 l 89.715 99.852 l 89.715 99.867 l 89.723 99.898 l 89.723
+ 99.918 l 89.727 99.934 l 89.727 99.949 l 89.73 99.969 l 89.734 99.984 l
+ 89.734 100 l 89.738 100.02 l 89.742 100.035 l 89.742 100.051 l 89.746 100.07
+ l 89.746 100.086 l 89.75 100.102 l 89.754 100.121 l 89.754 100.137 l 89.758
+ 100.152 l 89.762 100.172 l 89.762 100.188 l 89.766 100.207 l 89.766 100.223
+ l 89.77 100.238 l 89.773 100.258 l 89.773 100.273 l 89.777 100.289 l 89.781
+ 100.309 l 89.781 100.324 l 89.785 100.344 l 89.785 100.359 l 89.789 100.375
+ l 89.793 100.395 l 89.793 100.41 l 89.797 100.43 l 89.801 100.445 l 89.801
+ 100.465 l 89.809 100.496 l 89.809 100.516 l 89.812 100.531 l 89.812 100.551
+ l 89.816 100.566 l 89.82 100.586 l 89.82 100.602 l 89.824 100.621 l 89.828
+ 100.637 l 89.828 100.656 l 89.832 100.672 l 89.832 100.691 l 89.836 100.707
+ l 89.84 100.727 l 89.84 100.742 l 89.844 100.762 l 89.848 100.777 l 89.848
+ 100.797 l 89.852 100.812 l 89.852 100.832 l 89.855 100.848 l 89.859 100.867
+ l 89.859 100.883 l 89.863 100.902 l 89.867 100.918 l 89.867 100.938 l 89.871
+ 100.953 l 89.871 100.973 l 89.875 100.992 l 89.879 101.008 l 89.879 101.027
+ l 89.883 101.043 l 89.887 101.062 l 89.887 101.078 l 89.891 101.098 l 89.891
+ 101.117 l 89.895 101.133 l 89.898 101.152 l 89.898 101.168 l 89.906 101.207
+ l 89.906 101.223 l 89.91 101.242 l 89.914 101.258 l 89.914 101.277 l 89.918
+ 101.297 l 89.918 101.312 l 89.926 101.352 l 89.926 101.367 l 89.93 101.387
+ l 89.934 101.402 l 89.934 101.422 l 89.938 101.441 l 89.938 101.457 l 89.945
+ 101.496 l 89.945 101.512 l 89.953 101.551 l 89.953 101.566 l 89.957 101.586
+ l 89.957 101.605 l 89.961 101.625 l 89.965 101.641 l 89.965 101.66 l 89.969
+ 101.68 l 89.973 101.695 l 89.973 101.715 l 89.977 101.734 l 89.977 101.754
+ l 89.98 101.77 l 89.984 101.789 l 89.984 101.809 l 89.988 101.824 l 89.992
+ 101.844 l 89.992 101.863 l 89.996 101.883 l 90 101.898 l 90 101.918 l 90.004
+ 101.938 l 90.004 101.957 l 90.008 101.973 l 90.012 101.992 l 90.012 102.012
+ l 90.02 102.051 l 90.02 102.066 l 90.023 102.086 l 90.023 102.105 l 90.031
+ 102.145 l 90.031 102.16 l 90.039 102.199 l 90.039 102.219 l 90.043 102.238
+ l 90.043 102.254 l 90.051 102.293 l 90.051 102.312 l 90.059 102.352 l 90.059
+ 102.371 l 90.062 102.387 l 90.062 102.406 l 90.07 102.445 l 90.07 102.465
+ l 90.078 102.504 l 90.078 102.52 l 90.082 102.539 l 90.082 102.559 l 90.09
+ 102.598 l 90.09 102.617 l 90.098 102.656 l 90.098 102.676 l 90.102 102.695
+ l 90.105 102.711 l 90.105 102.73 l 90.109 102.75 l 90.109 102.77 l 90.117
+ 102.809 l 90.117 102.828 l 90.125 102.867 l 90.125 102.887 l 90.129 102.906
+ l 90.129 102.926 l 90.137 102.965 l 90.137 102.984 l 90.145 103.023 l 90.145
+ 103.043 l 90.148 103.062 l 90.148 103.082 l 90.156 103.121 l 90.156 103.141
+ l 90.164 103.18 l 90.164 103.199 l 90.168 103.219 l 90.168 103.238 l 90.176
+ 103.277 l 90.176 103.297 l 90.184 103.336 l 90.184 103.355 l 90.191 103.395
+ l 90.191 103.414 l 90.195 103.434 l 90.195 103.453 l 90.203 103.492 l 90.203
+ 103.512 l 90.211 103.551 l 90.211 103.57 l 90.215 103.594 l 90.215 103.613
+ l 90.223 103.652 l 90.223 103.672 l 90.23 103.711 l 90.23 103.73 l 90.234
+ 103.75 l 90.234 103.77 l 90.238 103.793 l 90.242 103.812 l 90.242 103.832
+ l 90.25 103.871 l 90.25 103.891 l 90.254 103.91 l 90.254 103.93 l 90.258
+ 103.953 l 90.262 103.973 l 90.262 103.992 l 90.27 104.031 l 90.27 104.051
+ l 90.273 104.074 l 90.273 104.094 l 90.281 104.133 l 90.281 104.152 l 90.285
+ 104.172 l 90.289 104.195 l 90.289 104.215 l 90.297 104.254 l 90.297 104.273
+ l 90.301 104.297 l 90.301 104.316 l 90.309 104.355 l 90.309 104.379 l 90.316
+ 104.418 l 90.316 104.438 l 90.32 104.457 l 90.32 104.48 l 90.328 104.52
+ l 90.328 104.539 l 90.332 104.562 l 90.336 104.582 l 90.336 104.602 l 90.34
+ 104.621 l 90.34 104.645 l 90.348 104.684 l 90.348 104.707 l 90.355 104.746
+ l 90.355 104.766 l 90.359 104.789 l 90.359 104.809 l 90.363 104.828 l 90.367
+ 104.852 l 90.367 104.871 l 90.371 104.891 l 90.375 104.914 l 90.375 104.934
+ l 90.379 104.953 l 90.379 104.973 l 90.383 104.996 l 90.387 105.016 l 90.387
+ 105.035 l 90.391 105.059 l 90.395 105.078 l 90.395 105.098 l 90.398 105.121
+ l 90.402 105.141 l 90.402 105.164 l 90.406 105.184 l 90.406 105.203 l 90.41
+ 105.227 l 90.414 105.246 l 90.414 105.266 l 90.418 105.289 l 90.422 105.309
+ l 90.422 105.328 l 90.426 105.352 l 90.426 105.371 l 90.43 105.395 l 90.434
+ 105.414 l 90.434 105.434 l 90.438 105.457 l 90.441 105.477 l 90.441 105.5
+ l 90.445 105.52 l 90.445 105.539 l 90.449 105.562 l 90.453 105.582 l 90.453
+ 105.605 l 90.457 105.625 l 90.461 105.648 l 90.461 105.668 l 90.465 105.688
+ l 90.465 105.711 l 90.469 105.73 l 90.473 105.754 l 90.473 105.773 l 90.477
+ 105.797 l 90.48 105.816 l 90.48 105.84 l 90.484 105.859 l 90.488 105.883
+ l 90.488 105.902 l 90.492 105.926 l 90.492 105.945 l 90.496 105.965 l 90.5
+ 105.988 l 90.5 106.008 l 90.504 106.031 l 90.508 106.051 l 90.508 106.074
+ l 90.512 106.094 l 90.512 106.117 l 90.516 106.137 l 90.52 106.16 l 90.52
+ 106.18 l 90.527 106.227 l 90.527 106.246 l 90.531 106.27 l 90.531 106.289
+ l 90.535 106.312 l 90.539 106.332 l 90.539 106.355 l 90.543 106.375 l 90.547
+ 106.398 l 90.547 106.418 l 90.551 106.441 l 90.551 106.461 l 90.559 106.508
+ l 90.559 106.527 l 90.562 106.551 l 90.566 106.57 l 90.566 106.594 l 90.57
+ 106.613 l 90.57 106.637 l 90.574 106.66 l 90.578 106.68 l 90.578 106.703
+ l 90.582 106.723 l 90.586 106.746 l 90.586 106.77 l 90.59 106.789 l 90.594
+ 106.812 l 90.594 106.832 l 90.598 106.855 l 90.598 106.879 l 90.602 106.898
+ l 90.605 106.922 l 90.605 106.945 l 90.609 106.965 l 90.613 106.988 l 90.613
+ 107.008 l 90.617 107.031 l 90.617 107.055 l 90.621 107.074 l 90.625 107.098
+ l 90.625 107.121 l 90.629 107.141 l 90.633 107.164 l 90.633 107.188 l 90.637
+ 107.207 l 90.637 107.23 l 90.641 107.254 l 90.645 107.273 l 90.645 107.297
+ l 90.648 107.32 l 90.652 107.34 l 90.652 107.363 l 90.656 107.387 l 90.656
+ 107.406 l 90.664 107.453 l 90.664 107.477 l 90.668 107.496 l 90.672 107.52
+ l 90.672 107.543 l 90.676 107.562 l 90.68 107.586 l 90.68 107.609 l 90.684
+ 107.633 l 90.684 107.652 l 90.691 107.699 l 90.691 107.719 l 90.699 107.766
+ l 90.699 107.789 l 90.703 107.809 l 90.703 107.832 l 90.711 107.879 l 90.711
+ 107.898 l 90.719 107.945 l 90.719 107.969 l 90.723 107.992 l 90.723 108.012
+ l 90.73 108.059 l 90.73 108.082 l 90.734 108.102 l 90.738 108.125 l 90.738
+ 108.148 l 90.742 108.172 l 90.742 108.195 l 90.746 108.215 l 90.75 108.238
+ l 90.75 108.262 l 90.758 108.309 l 90.758 108.332 l 90.762 108.352 l 90.762
+ 108.375 l 90.77 108.422 l 90.77 108.445 l 90.773 108.469 l 90.777 108.488
+ l 90.777 108.512 l 90.785 108.559 l 90.785 108.582 l 90.789 108.605 l 90.789
+ 108.625 l 90.797 108.672 l 90.797 108.695 l 90.805 108.742 l 90.805 108.766
+ l 90.809 108.789 l 90.809 108.809 l 90.816 108.855 l 90.816 108.879 l 90.824
+ 108.926 l 90.824 108.949 l 90.828 108.973 l 90.828 108.996 l 90.832 109.02
+ l 90.836 109.039 l 90.836 109.062 l 90.844 109.109 l 90.844 109.133 l 90.848
+ 109.156 l 90.848 109.18 l 90.855 109.227 l 90.855 109.25 l 90.863 109.297
+ l 90.863 109.32 l 90.871 109.367 l 90.871 109.391 l 90.875 109.41 l 90.875
+ 109.434 l 90.883 109.48 l 90.883 109.504 l 90.891 109.551 l 90.891 109.574
+ l 90.895 109.598 l 90.895 109.621 l 90.902 109.668 l 90.902 109.691 l 90.91
+ 109.738 l 90.91 109.762 l 90.914 109.785 l 90.914 109.809 l 90.922 109.855
+ l 90.922 109.879 l 90.93 109.926 l 90.93 109.949 l 90.934 109.973 l 90.934
+ 109.996 l 90.941 110.043 l 90.941 110.066 l 90.945 110.094 l 90.949 110.117
+ l 90.949 110.141 l 90.953 110.164 l 90.953 110.188 l 90.961 110.234 l 90.961
+ 110.258 l 90.969 110.305 l 90.969 110.328 l 90.977 110.375 l 90.977 110.398
+ l 90.98 110.422 l 90.98 110.449 l 90.988 110.496 l 90.988 110.52 l 90.996
+ 110.566 l 90.996 110.59 l 91 110.613 l 91 110.637 l 91.004 110.66 l 91.008
+ 110.688 l 91.008 110.711 l 91.016 110.758 l 91.016 110.781 l 91.02 110.805
+ l 91.02 110.828 l 91.023 110.852 l 91.027 110.879 l 91.027 110.902 l 91.035
+ 110.949 l 91.035 110.973 l 91.039 110.996 l 91.039 111.02 l 91.043 111.047
+ l 91.047 111.07 l 91.047 111.094 l 91.055 111.141 l 91.055 111.164 l 91.059
+ 111.191 l 91.062 111.215 l 91.062 111.238 l 91.066 111.262 l 91.066 111.285
+ l 91.07 111.309 l 91.074 111.336 l 91.074 111.359 l 91.082 111.406 l 91.082
+ 111.43 l 91.086 111.457 l 91.086 111.48 l 91.094 111.527 l 91.094 111.551
+ l 91.098 111.578 l 91.102 111.602 l 91.102 111.625 l 91.105 111.648 l 91.105
+ 111.672 l 91.109 111.699 l 91.113 111.723 l 91.113 111.746 l 91.117 111.77
+ l 91.121 111.797 l 91.121 111.82 l 91.125 111.844 l 91.125 111.867 l 91.129
+ 111.895 l 91.133 111.918 l 91.133 111.941 l 91.137 111.965 l 91.141 111.992
+ l 91.141 112.016 l 91.145 112.039 l 91.145 112.062 l 91.148 112.09 l 91.152
+ 112.113 l 91.152 112.137 l 91.156 112.16 l 91.16 112.188 l 91.16 112.211
+ l 91.164 112.234 l 91.168 112.262 l 91.168 112.285 l 91.172 112.309 l 91.172
+ 112.332 l 91.176 112.359 l 91.18 112.383 l 91.18 112.406 l 91.184 112.434
+ l 91.188 112.457 l 91.188 112.48 l 91.191 112.508 l 91.191 112.531 l 91.195
+ 112.555 l 91.199 112.582 l 91.199 112.605 l 91.203 112.629 l 91.207 112.656
+ l 91.207 112.68 l 91.211 112.703 l 91.211 112.73 l 91.219 112.777 l 91.219
+ 112.805 l 91.227 112.852 l 91.227 112.879 l 91.23 112.902 l 91.23 112.926
+ l 91.234 112.953 l 91.238 112.977 l 91.238 113 l 91.242 113.027 l 91.246
+ 113.051 l 91.246 113.074 l 91.25 113.102 l 91.254 113.125 l 91.254 113.152
+ l 91.258 113.176 l 91.258 113.199 l 91.262 113.227 l 91.266 113.25 l 91.266
+ 113.277 l 91.273 113.324 l 91.273 113.352 l 91.277 113.375 l 91.277 113.402
+ l 91.285 113.449 l 91.285 113.477 l 91.289 113.5 l 91.293 113.527 l 91.293
+ 113.551 l 91.297 113.574 l 91.297 113.602 l 91.301 113.625 l 91.305 113.652
+ l 91.305 113.676 l 91.309 113.703 l 91.312 113.727 l 91.312 113.75 l 91.316
+ 113.777 l 91.316 113.801 l 91.32 113.828 l 91.324 113.852 l 91.324 113.879
+ l 91.328 113.902 l 91.332 113.93 l 91.332 113.953 l 91.336 113.977 l 91.336
+ 114.004 l 91.34 114.027 l 91.344 114.055 l 91.344 114.078 l 91.348 114.105
+ l 91.352 114.129 l 91.352 114.156 l 91.355 114.18 l 91.359 114.207 l 91.359
+ 114.23 l 91.363 114.258 l 91.363 114.281 l 91.367 114.309 l 91.371 114.332
+ l 91.371 114.359 l 91.375 114.383 l 91.379 114.41 l 91.379 114.434 l 91.383
+ 114.461 l 91.383 114.484 l 91.387 114.512 l 91.391 114.535 l 91.391 114.562
+ l 91.395 114.586 l 91.398 114.613 l 91.398 114.637 l 91.402 114.664 l 91.402
+ 114.688 l 91.406 114.715 l 91.41 114.738 l 91.41 114.766 l 91.414 114.789
+ l 91.418 114.816 l 91.418 114.84 l 91.422 114.867 l 91.422 114.895 l 91.426
+ 114.918 l 91.43 114.945 l 91.43 114.969 l 91.434 114.996 l 91.438 115.02
+ l 91.438 115.047 l 91.441 115.07 l 91.445 115.098 l 91.445 115.125 l 91.449
+ 115.148 l 91.449 115.176 l 91.453 115.199 l 91.457 115.227 l 91.457 115.25
+ l 91.465 115.305 l 91.465 115.328 l 91.469 115.355 l 91.469 115.379 l 91.477
+ 115.434 l 91.477 115.457 l 91.48 115.484 l 91.484 115.508 l 91.484 115.535
+ l 91.488 115.562 l 91.488 115.586 l 91.492 115.613 l 91.496 115.637 l 91.496
+ 115.664 l 91.5 115.691 l 91.504 115.715 l 91.504 115.742 l 91.508 115.766
+ l 91.508 115.793 l 91.512 115.82 l 91.516 115.844 l 91.516 115.871 l 91.52
+ 115.898 l 91.523 115.922 l 91.523 115.949 l 91.527 115.973 l 91.527 116
+ l 91.531 116.027 l 91.535 116.051 l 91.535 116.078 l 91.539 116.105 l 91.543
+ 116.129 l 91.543 116.156 l 91.547 116.184 l 91.551 116.207 l 91.551 116.234
+ l 91.555 116.262 l 91.555 116.285 l 91.562 116.34 l 91.562 116.363 l 91.57
+ 116.418 l 91.57 116.441 l 91.574 116.469 l 91.574 116.496 l 91.578 116.52
+ l 91.582 116.547 l 91.582 116.574 l 91.586 116.598 l 91.59 116.625 l 91.59
+ 116.652 l 91.594 116.68 l 91.594 116.703 l 91.602 116.758 l 91.602 116.781
+ l 91.609 116.836 l 91.609 116.863 l 91.613 116.887 l 91.613 116.914 l 91.617
+ 116.941 l 91.621 116.965 l 91.621 116.992 l 91.629 117.047 l 91.629 117.07
+ l 91.637 117.125 l 91.637 117.148 l 91.641 117.176 l 91.641 117.203 l 91.645
+ 117.23 l 91.648 117.254 l 91.648 117.281 l 91.656 117.336 l 91.656 117.359
+ l 91.66 117.387 l 91.66 117.414 l 91.664 117.441 l 91.668 117.465 l 91.668
+ 117.492 l 91.676 117.547 l 91.676 117.574 l 91.68 117.598 l 91.68 117.625
+ l 91.688 117.68 l 91.688 117.703 l 91.695 117.758 l 91.695 117.785 l 91.699
+ 117.812 l 91.699 117.836 l 91.707 117.891 l 91.707 117.918 l 91.711 117.945
+ l 91.715 117.969 l 91.715 117.996 l 91.719 118.023 l 91.719 118.051 l 91.723
+ 118.078 l 91.727 118.102 l 91.727 118.129 l 91.734 118.184 l 91.734 118.211
+ l 91.738 118.234 l 91.742 118.262 l 91.742 118.289 l 91.746 118.316 l 91.746
+ 118.344 l 91.75 118.371 l 91.754 118.395 l 91.754 118.422 l 91.762 118.477
+ l 91.762 118.504 l 91.766 118.531 l 91.766 118.555 l 91.773 118.609 l 91.773
+ 118.637 l 91.781 118.691 l 91.781 118.719 l 91.785 118.742 l 91.785 118.77
+ l 91.793 118.824 l 91.793 118.852 l 91.801 118.906 l 91.801 118.93 l 91.805
+ 118.957 l 91.805 118.984 l 91.812 119.039 l 91.812 119.066 l 91.82 119.121
+ l 91.82 119.148 l 91.824 119.172 l 91.828 119.199 l 91.828 119.227 l 91.832
+ 119.254 l 91.832 119.281 l 91.84 119.336 l 91.84 119.363 l 91.844 119.391
+ l 91.848 119.414 l 91.848 119.441 l 91.852 119.469 l 91.852 119.496 l 91.859
+ 119.551 l 91.859 119.578 l 91.867 119.633 l 91.867 119.66 l 91.871 119.688
+ l 91.871 119.715 l 91.875 119.742 l 91.879 119.766 l 91.879 119.793 l 91.887
+ 119.848 l 91.887 119.875 l 91.891 119.902 l 91.891 119.93 l 91.898 119.984
+ l 91.898 120.012 l 91.906 120.066 l 91.906 120.094 l 91.91 120.121 l 91.91
+ 120.148 l 91.918 120.203 l 91.918 120.23 l 91.922 120.254 l 91.926 120.281
+ l 91.926 120.309 l 91.934 120.363 l 91.934 120.391 l 91.938 120.418 l 91.938
+ 120.445 l 91.945 120.5 l 91.945 120.527 l 91.953 120.582 l 91.953 120.609
+ l 91.957 120.637 l 91.957 120.664 l 91.965 120.719 l 91.965 120.746 l 91.973
+ 120.801 l 91.973 120.828 l 91.977 120.855 l 91.977 120.883 l 91.984 120.938
+ l 91.984 120.965 l 91.992 121.02 l 91.992 121.047 l 91.996 121.074 l 91.996
+ 121.102 l 92.004 121.156 l 92.004 121.184 l 92.012 121.238 l 92.012 121.266
+ l 92.02 121.32 l 92.02 121.348 l 92.023 121.379 l 92.023 121.406 l 92.031
+ 121.461 l 92.031 121.488 l 92.039 121.543 l 92.039 121.57 l 92.043 121.598
+ l 92.043 121.625 l 92.051 121.68 l 92.051 121.707 l 92.059 121.762 l 92.059
+ 121.789 l 92.062 121.816 l 92.062 121.844 l 92.066 121.871 l 92.07 121.902
+ l 92.07 121.93 l 92.078 121.984 l 92.078 122.012 l 92.082 122.039 l 92.082
+ 122.066 l 92.09 122.121 l 92.09 122.148 l 92.098 122.203 l 92.098 122.23
+ l 92.102 122.262 l 92.102 122.289 l 92.109 122.344 l 92.109 122.371 l 92.117
+ 122.426 l 92.117 122.453 l 92.125 122.508 l 92.125 122.539 l 92.129 122.566
+ l 92.129 122.594 l 92.137 122.648 l 92.137 122.676 l 92.145 122.73 l 92.145
+ 122.758 l S
+92.145 122.758 m 92.148 122.789 l 92.148 122.816 l 92.156 122.871 l 92.156
+ 122.898 l 92.164 122.953 l 92.164 122.98 l 92.168 123.012 l 92.168 123.039
+ l 92.176 123.094 l 92.176 123.121 l 92.184 123.176 l 92.184 123.207 l 92.188
+ 123.234 l 92.188 123.262 l 92.195 123.316 l 92.195 123.344 l 92.199 123.371
+ l 92.203 123.402 l 92.203 123.43 l 92.211 123.484 l 92.211 123.512 l 92.215
+ 123.539 l 92.215 123.57 l 92.223 123.625 l 92.223 123.652 l 92.23 123.707
+ l 92.23 123.738 l 92.234 123.766 l 92.234 123.793 l 92.242 123.848 l 92.242
+ 123.875 l 92.246 123.906 l 92.25 123.934 l 92.25 123.961 l 92.254 123.988
+ l 92.254 124.016 l 92.258 124.047 l 92.262 124.074 l 92.262 124.102 l 92.27
+ 124.156 l 92.27 124.188 l 92.273 124.215 l 92.273 124.242 l 92.281 124.297
+ l 92.281 124.328 l 92.289 124.383 l 92.289 124.41 l 92.293 124.438 l 92.293
+ 124.469 l 92.301 124.523 l 92.301 124.551 l 92.305 124.578 l 92.309 124.609
+ l 92.309 124.637 l 92.316 124.691 l 92.316 124.723 l 92.32 124.75 l 92.32
+ 124.777 l 92.328 124.832 l 92.328 124.863 l 92.336 124.918 l 92.336 124.945
+ l 92.34 124.977 l 92.34 125.004 l 92.348 125.059 l 92.348 125.09 l 92.355
+ 125.145 l 92.355 125.172 l 92.359 125.203 l 92.359 125.23 l 92.367 125.285
+ l 92.367 125.316 l 92.375 125.371 l 92.375 125.398 l 92.379 125.43 l 92.379
+ 125.457 l 92.387 125.512 l 92.387 125.543 l 92.395 125.598 l 92.395 125.625
+ l 92.398 125.656 l 92.402 125.684 l 92.402 125.711 l 92.406 125.742 l 92.406
+ 125.77 l 92.414 125.824 l 92.414 125.855 l 92.422 125.91 l 92.422 125.941
+ l 92.426 125.969 l 92.426 125.996 l 92.43 126.023 l 92.434 126.055 l 92.434
+ 126.082 l 92.438 126.109 l 92.441 126.141 l 92.441 126.168 l 92.445 126.195
+ l 92.445 126.223 l 92.449 126.254 l 92.453 126.281 l 92.453 126.309 l 92.457
+ 126.34 l 92.461 126.367 l 92.461 126.395 l 92.465 126.426 l 92.465 126.453
+ l 92.473 126.508 l 92.473 126.539 l 92.48 126.594 l 92.48 126.625 l 92.484
+ 126.652 l 92.484 126.68 l 92.488 126.711 l 92.492 126.738 l 92.492 126.766
+ l 92.496 126.797 l 92.5 126.824 l 92.5 126.852 l 92.504 126.883 l 92.508
+ 126.91 l 92.508 126.938 l 92.512 126.969 l 92.512 126.996 l 92.516 127.023
+ l 92.52 127.055 l 92.52 127.082 l 92.523 127.109 l 92.527 127.141 l 92.527
+ 127.168 l 92.531 127.195 l 92.531 127.227 l 92.539 127.281 l 92.539 127.312
+ l 92.547 127.367 l 92.547 127.398 l 92.551 127.426 l 92.551 127.453 l 92.555
+ 127.484 l 92.559 127.512 l 92.559 127.543 l 92.566 127.598 l 92.566 127.629
+ l 92.57 127.656 l 92.57 127.684 l 92.574 127.715 l 92.578 127.742 l 92.578
+ 127.77 l 92.582 127.801 l 92.586 127.828 l 92.586 127.855 l 92.59 127.887
+ l 92.594 127.914 l 92.594 127.945 l 92.598 127.973 l 92.598 128 l 92.602
+ 128.031 l 92.605 128.059 l 92.605 128.086 l 92.609 128.117 l 92.613 128.145
+ l 92.613 128.176 l 92.617 128.203 l 92.617 128.23 l 92.621 128.262 l 92.625
+ 128.289 l 92.625 128.32 l 92.633 128.375 l 92.633 128.406 l 92.637 128.434
+ l 92.637 128.461 l 92.641 128.492 l 92.645 128.52 l 92.645 128.551 l 92.652
+ 128.605 l 92.652 128.637 l 92.656 128.664 l 92.656 128.695 l 92.664 128.75
+ l 92.664 128.781 l 92.668 128.809 l 92.672 128.84 l 92.672 128.867 l 92.676
+ 128.898 l 92.676 128.926 l 92.68 128.953 l 92.684 128.984 l 92.684 129.012
+ l 92.688 129.043 l 92.691 129.07 l 92.691 129.098 l 92.695 129.129 l 92.699
+ 129.156 l 92.699 129.188 l 92.703 129.215 l 92.703 129.246 l 92.711 129.301
+ l 92.711 129.332 l 92.715 129.359 l 92.719 129.391 l 92.719 129.418 l 92.723
+ 129.445 l 92.723 129.477 l 92.727 129.504 l 92.73 129.535 l 92.73 129.562
+ l 92.734 129.594 l 92.738 129.621 l 92.738 129.652 l 92.742 129.68 l 92.742
+ 129.707 l 92.746 129.738 l 92.75 129.766 l 92.75 129.797 l 92.754 129.824
+ l 92.758 129.855 l 92.758 129.883 l 92.762 129.914 l 92.762 129.941 l 92.766
+ 129.969 l 92.77 130 l 92.77 130.027 l 92.773 130.059 l 92.777 130.086 l
+ 92.777 130.117 l 92.781 130.145 l 92.785 130.176 l 92.785 130.203 l 92.789
+ 130.234 l 92.789 130.262 l 92.793 130.289 l 92.797 130.32 l 92.797 130.348
+ l 92.801 130.379 l 92.805 130.406 l 92.805 130.438 l 92.809 130.465 l 92.809
+ 130.496 l 92.812 130.523 l 92.816 130.555 l 92.816 130.582 l 92.82 130.613
+ l 92.824 130.641 l 92.824 130.668 l 92.828 130.699 l 92.828 130.727 l 92.832
+ 130.758 l 92.836 130.785 l 92.836 130.816 l 92.84 130.844 l 92.844 130.875
+ l 92.844 130.902 l 92.848 130.934 l 92.848 130.961 l 92.852 130.992 l 92.855
+ 131.02 l 92.855 131.051 l 92.859 131.078 l 92.863 131.109 l 92.863 131.137
+ l 92.867 131.168 l 92.867 131.195 l 92.871 131.227 l 92.875 131.254 l 92.875
+ 131.285 l 92.879 131.312 l 92.883 131.344 l 92.883 131.371 l 92.887 131.402
+ l 92.891 131.43 l 92.891 131.461 l 92.895 131.488 l 92.895 131.52 l 92.898
+ 131.547 l 92.902 131.578 l 92.902 131.605 l 92.906 131.637 l 92.91 131.664
+ l 92.91 131.695 l 92.914 131.723 l 92.914 131.754 l 92.918 131.781 l 92.922
+ 131.812 l 92.922 131.84 l 92.926 131.871 l 92.93 131.898 l 92.93 131.93
+ l 92.934 131.957 l 92.934 131.988 l 92.938 132.016 l 92.941 132.047 l 92.941
+ 132.074 l 92.945 132.105 l 92.949 132.133 l 92.949 132.164 l 92.953 132.191
+ l 92.953 132.223 l 92.957 132.25 l 92.961 132.281 l 92.961 132.309 l 92.965
+ 132.34 l 92.969 132.367 l 92.969 132.398 l 92.973 132.43 l 92.973 132.457
+ l 92.977 132.488 l 92.98 132.516 l 92.98 132.547 l 92.984 132.574 l 92.988
+ 132.605 l 92.988 132.633 l 92.992 132.664 l 92.996 132.691 l 92.996 132.723
+ l 93 132.75 l 93 132.781 l 93.004 132.809 l 93.008 132.84 l 93.008 132.871
+ l 93.012 132.898 l 93.016 132.93 l 93.016 132.957 l 93.02 132.988 l 93.02
+ 133.016 l 93.023 133.047 l 93.027 133.074 l 93.027 133.105 l 93.031 133.133
+ l 93.035 133.164 l 93.035 133.195 l 93.039 133.223 l 93.039 133.254 l 93.043
+ 133.281 l 93.047 133.312 l 93.047 133.34 l 93.051 133.371 l 93.055 133.398
+ l 93.055 133.43 l 93.059 133.457 l 93.059 133.488 l 93.062 133.52 l 93.066
+ 133.547 l 93.066 133.578 l 93.07 133.605 l 93.074 133.637 l 93.074 133.664
+ l 93.082 133.727 l 93.082 133.754 l 93.086 133.785 l 93.086 133.812 l 93.09
+ 133.844 l 93.094 133.871 l 93.094 133.902 l 93.098 133.93 l 93.102 133.961
+ l 93.102 133.992 l 93.105 134.02 l 93.105 134.051 l 93.109 134.078 l 93.113
+ 134.109 l 93.113 134.137 l 93.121 134.199 l 93.121 134.227 l 93.125 134.258
+ l 93.125 134.285 l 93.129 134.316 l 93.133 134.344 l 93.133 134.375 l 93.137
+ 134.406 l 93.141 134.434 l 93.141 134.465 l 93.145 134.492 l 93.145 134.523
+ l 93.148 134.555 l 93.152 134.582 l 93.152 134.613 l 93.156 134.641 l 93.16
+ 134.672 l 93.16 134.699 l 93.164 134.73 l 93.164 134.762 l 93.168 134.789
+ l 93.172 134.82 l 93.172 134.848 l 93.18 134.91 l 93.18 134.938 l 93.184
+ 134.969 l 93.188 134.996 l 93.188 135.027 l 93.191 135.059 l 93.191 135.086
+ l 93.195 135.117 l 93.199 135.145 l 93.199 135.176 l 93.203 135.207 l 93.207
+ 135.234 l 93.207 135.266 l 93.211 135.293 l 93.211 135.324 l 93.215 135.355
+ l 93.219 135.383 l 93.219 135.414 l 93.223 135.441 l 93.227 135.473 l 93.227
+ 135.504 l 93.23 135.531 l 93.23 135.562 l 93.234 135.59 l 93.238 135.621
+ l 93.238 135.652 l 93.242 135.68 l 93.246 135.711 l 93.246 135.738 l 93.25
+ 135.77 l 93.25 135.801 l 93.254 135.828 l 93.258 135.859 l 93.258 135.887
+ l 93.266 135.949 l 93.266 135.977 l 93.27 136.008 l 93.273 136.035 l 93.273
+ 136.066 l 93.277 136.098 l 93.277 136.125 l 93.285 136.188 l 93.285 136.215
+ l 93.289 136.246 l 93.293 136.273 l 93.293 136.305 l 93.297 136.336 l 93.297
+ 136.363 l 93.305 136.426 l 93.305 136.453 l 93.309 136.484 l 93.312 136.512
+ l 93.312 136.543 l 93.316 136.574 l 93.316 136.602 l 93.324 136.664 l 93.324
+ 136.691 l 93.328 136.723 l 93.332 136.75 l 93.332 136.781 l 93.336 136.812
+ l 93.336 136.84 l 93.344 136.902 l 93.344 136.93 l 93.348 136.961 l 93.352
+ 136.988 l 93.352 137.02 l 93.355 137.051 l 93.355 137.078 l 93.363 137.141
+ l 93.363 137.168 l 93.371 137.23 l 93.371 137.258 l 93.375 137.289 l 93.379
+ 137.316 l 93.379 137.348 l 93.383 137.379 l 93.383 137.406 l 93.391 137.469
+ l 93.391 137.496 l 93.398 137.559 l 93.398 137.586 l 93.402 137.617 l 93.402
+ 137.645 l 93.41 137.707 l 93.41 137.734 l 93.418 137.797 l 93.418 137.824
+ l 93.422 137.855 l 93.422 137.887 l 93.426 137.914 l 93.43 137.945 l 93.43
+ 137.977 l 93.434 138.004 l 93.438 138.035 l 93.438 138.066 l 93.441 138.094
+ l 93.441 138.125 l 93.445 138.152 l 93.449 138.184 l 93.449 138.215 l 93.453
+ 138.242 l 93.457 138.273 l 93.457 138.305 l 93.461 138.332 l 93.465 138.363
+ l 93.465 138.395 l 93.469 138.422 l 93.469 138.453 l 93.473 138.484 l 93.477
+ 138.512 l 93.477 138.543 l 93.48 138.574 l 93.484 138.602 l 93.484 138.633
+ l 93.488 138.664 l 93.488 138.691 l 93.496 138.754 l 93.496 138.781 l 93.504
+ 138.844 l 93.504 138.871 l 93.508 138.902 l 93.508 138.934 l 93.512 138.961
+ l 93.516 138.992 l 93.516 139.023 l 93.52 139.051 l 93.523 139.082 l 93.523
+ 139.113 l 93.527 139.141 l 93.527 139.172 l 93.531 139.199 l 93.535 139.23
+ l 93.535 139.262 l 93.539 139.289 l 93.543 139.32 l 93.543 139.352 l 93.547
+ 139.379 l 93.547 139.41 l 93.555 139.473 l 93.555 139.5 l 93.562 139.562
+ l 93.562 139.59 l 93.57 139.652 l 93.57 139.68 l 93.574 139.711 l 93.574
+ 139.742 l 93.578 139.77 l 93.582 139.801 l 93.582 139.832 l 93.586 139.859
+ l 93.59 139.891 l 93.59 139.922 l 93.594 139.949 l 93.594 139.98 l 93.598
+ 140.012 l 93.602 140.039 l 93.602 140.07 l 93.605 140.102 l 93.609 140.129
+ l 93.609 140.16 l 93.613 140.191 l 93.613 140.219 l 93.621 140.281 l 93.621
+ 140.309 l 93.629 140.371 l 93.629 140.398 l 93.633 140.43 l 93.633 140.461
+ l 93.637 140.488 l 93.641 140.52 l 93.641 140.551 l 93.645 140.578 l 93.648
+ 140.609 l 93.648 140.641 l 93.652 140.672 l 93.656 140.699 l 93.656 140.73
+ l 93.66 140.762 l 93.66 140.789 l 93.668 140.852 l 93.668 140.879 l 93.676
+ 140.941 l 93.676 140.969 l 93.68 141 l 93.68 141.031 l 93.684 141.059 l
+ 93.688 141.09 l 93.688 141.121 l 93.691 141.148 l 93.695 141.18 l 93.695
+ 141.211 l 93.699 141.242 l 93.699 141.27 l 93.707 141.332 l 93.707 141.359
+ l 93.715 141.422 l 93.715 141.449 l 93.719 141.48 l 93.719 141.512 l 93.723
+ 141.539 l 93.727 141.57 l 93.727 141.602 l 93.73 141.629 l 93.734 141.66
+ l 93.734 141.691 l 93.738 141.723 l 93.738 141.75 l 93.746 141.812 l 93.746
+ 141.84 l 93.754 141.902 l 93.754 141.93 l 93.762 141.992 l 93.762 142.02
+ l 93.766 142.051 l 93.766 142.082 l 93.77 142.113 l 93.773 142.141 l 93.773
+ 142.172 l 93.777 142.203 l 93.781 142.23 l 93.781 142.262 l 93.785 142.293
+ l 93.785 142.32 l 93.793 142.383 l 93.793 142.41 l 93.801 142.473 l 93.801
+ 142.504 l 93.805 142.531 l 93.805 142.562 l 93.809 142.594 l 93.812 142.621
+ l 93.812 142.652 l 93.816 142.684 l 93.82 142.711 l 93.82 142.742 l 93.824
+ 142.773 l 93.824 142.805 l 93.828 142.832 l 93.832 142.863 l 93.832 142.895
+ l 93.836 142.922 l 93.84 142.953 l 93.84 142.984 l 93.844 143.012 l 93.848
+ 143.043 l 93.848 143.074 l 93.852 143.102 l 93.852 143.133 l 93.859 143.195
+ l 93.859 143.223 l 93.867 143.285 l 93.867 143.312 l 93.871 143.344 l 93.871
+ 143.375 l 93.875 143.402 l 93.879 143.434 l 93.879 143.465 l 93.883 143.496
+ l 93.887 143.523 l 93.887 143.555 l 93.891 143.586 l 93.891 143.613 l 93.898
+ 143.676 l 93.898 143.703 l 93.906 143.766 l 93.906 143.797 l 93.91 143.824
+ l 93.91 143.855 l 93.914 143.887 l 93.918 143.914 l 93.918 143.945 l 93.922
+ 143.977 l 93.926 144.004 l 93.926 144.035 l 93.93 144.066 l 93.93 144.098
+ l 93.934 144.125 l 93.938 144.156 l 93.938 144.188 l 93.941 144.215 l 93.945
+ 144.246 l 93.945 144.277 l 93.949 144.309 l 93.953 144.336 l 93.953 144.367
+ l 93.957 144.398 l 93.957 144.426 l 93.965 144.488 l 93.965 144.516 l 93.973
+ 144.578 l 93.973 144.609 l 93.977 144.637 l 93.977 144.668 l 93.98 144.699
+ l 93.984 144.727 l 93.984 144.758 l 93.988 144.789 l 93.992 144.816 l 93.992
+ 144.848 l 93.996 144.879 l 93.996 144.91 l 94 144.938 l 94.004 144.969 
+l 94.004 145 l 94.008 145.027 l 94.012 145.059 l 94.012 145.09 l 94.016 
+145.117 l 94.016 145.148 l 94.023 145.211 l 94.023 145.238 l 94.031 145.301
+ l 94.031 145.328 l 94.039 145.391 l 94.039 145.422 l 94.043 145.449 l 94.043
+ 145.48 l 94.047 145.512 l 94.051 145.539 l 94.051 145.57 l 94.055 145.602
+ l 94.059 145.629 l 94.059 145.66 l 94.062 145.691 l 94.062 145.723 l 94.066
+ 145.75 l 94.07 145.781 l 94.07 145.812 l 94.074 145.84 l 94.078 145.871
+ l 94.078 145.902 l 94.082 145.93 l 94.082 145.961 l 94.09 146.023 l 94.09
+ 146.051 l 94.098 146.113 l 94.098 146.141 l 94.102 146.172 l 94.102 146.203
+ l 94.105 146.23 l 94.109 146.262 l 94.109 146.293 l 94.113 146.324 l 94.117
+ 146.352 l 94.117 146.383 l 94.121 146.414 l 94.121 146.441 l 94.129 146.504
+ l 94.129 146.535 l 94.133 146.562 l 94.137 146.594 l 94.137 146.625 l 94.141
+ 146.652 l 94.145 146.684 l 94.145 146.715 l 94.148 146.742 l 94.148 146.773
+ l 94.156 146.836 l 94.156 146.863 l 94.164 146.926 l 94.164 146.953 l 94.168
+ 146.984 l 94.168 147.016 l 94.172 147.043 l 94.176 147.074 l 94.176 147.105
+ l 94.18 147.137 l 94.184 147.164 l 94.184 147.195 l 94.188 147.227 l 94.188
+ 147.254 l 94.195 147.316 l 94.195 147.344 l 94.203 147.406 l 94.203 147.438
+ l 94.207 147.465 l 94.207 147.496 l 94.211 147.527 l 94.215 147.555 l 94.215
+ 147.586 l 94.219 147.617 l 94.223 147.645 l 94.223 147.676 l 94.23 147.738
+ l 94.23 147.766 l 94.234 147.797 l 94.234 147.828 l 94.238 147.855 l 94.242
+ 147.887 l 94.242 147.918 l 94.246 147.945 l 94.25 147.977 l 94.25 148.008
+ l 94.254 148.035 l 94.254 148.066 l 94.262 148.129 l 94.262 148.156 l 94.27
+ 148.219 l 94.27 148.246 l 94.273 148.277 l 94.273 148.309 l 94.277 148.336
+ l 94.281 148.367 l 94.281 148.398 l 94.285 148.43 l 94.289 148.457 l 94.289
+ 148.488 l 94.293 148.52 l 94.293 148.547 l 94.301 148.609 l 94.301 148.637
+ l 94.309 148.699 l 94.309 148.727 l 94.312 148.758 l 94.312 148.789 l 94.316
+ 148.82 l 94.32 148.848 l 94.32 148.879 l 94.324 148.91 l 94.328 148.938
+ l 94.328 148.969 l 94.332 149 l 94.336 149.027 l 94.336 149.059 l 94.34
+ 149.09 l 94.34 149.117 l 94.348 149.18 l 94.348 149.211 l 94.352 149.238
+ l 94.355 149.27 l 94.355 149.301 l 94.359 149.328 l 94.359 149.359 l 94.363
+ 149.391 l 94.367 149.418 l 94.367 149.449 l 94.371 149.48 l 94.375 149.508
+ l 94.375 149.539 l 94.379 149.57 l 94.379 149.598 l 94.387 149.66 l 94.387
+ 149.691 l 94.391 149.719 l 94.395 149.75 l 94.395 149.781 l 94.398 149.809
+ l 94.398 149.84 l 94.402 149.871 l 94.406 149.898 l 94.406 149.93 l 94.41
+ 149.961 l 94.414 149.988 l 94.414 150.02 l 94.418 150.051 l 94.422 150.078
+ l 94.422 150.109 l 94.426 150.141 l 94.426 150.168 l 94.434 150.23 l 94.434
+ 150.258 l 94.441 150.32 l 94.441 150.352 l 94.445 150.379 l 94.445 150.41
+ l 94.449 150.441 l 94.453 150.469 l 94.453 150.5 l 94.457 150.531 l 94.461
+ 150.559 l 94.461 150.59 l 94.465 150.621 l 94.465 150.648 l 94.473 150.711
+ l 94.473 150.738 l 94.48 150.801 l 94.48 150.828 l 94.484 150.859 l 94.484
+ 150.891 l 94.488 150.918 l 94.492 150.949 l 94.492 150.98 l 94.496 151.008
+ l 94.5 151.039 l 94.5 151.07 l 94.504 151.098 l 94.504 151.129 l 94.508
+ 151.16 l 94.512 151.188 l 94.512 151.219 l 94.516 151.25 l 94.52 151.277
+ l 94.52 151.309 l 94.523 151.34 l 94.527 151.367 l 94.527 151.398 l 94.531
+ 151.43 l 94.531 151.457 l 94.539 151.52 l 94.539 151.547 l 94.547 151.609
+ l 94.547 151.637 l 94.551 151.668 l 94.551 151.699 l 94.555 151.727 l 94.559
+ 151.758 l 94.559 151.789 l 94.562 151.816 l 94.566 151.848 l 94.566 151.879
+ l 94.57 151.906 l 94.57 151.938 l 94.574 151.969 l 94.578 151.996 l 94.578
+ 152.027 l 94.582 152.059 l 94.586 152.086 l 94.586 152.117 l 94.59 152.148
+ l 94.59 152.176 l 94.598 152.238 l 94.598 152.266 l 94.605 152.328 l 94.605
+ 152.355 l 94.613 152.418 l 94.613 152.445 l 94.617 152.477 l 94.617 152.508
+ l 94.621 152.535 l 94.625 152.566 l 94.625 152.598 l 94.629 152.625 l 94.633
+ 152.656 l 94.633 152.688 l 94.637 152.715 l 94.637 152.746 l 94.641 152.773
+ l 94.645 152.805 l 94.645 152.836 l 94.648 152.863 l 94.652 152.895 l 94.652
+ 152.926 l 94.656 152.953 l 94.656 152.984 l 94.66 153.016 l 94.664 153.043
+ l 94.664 153.074 l 94.668 153.105 l 94.672 153.133 l 94.672 153.164 l 94.676
+ 153.195 l 94.676 153.223 l 94.684 153.285 l 94.684 153.312 l 94.688 153.344
+ l 94.691 153.371 l 94.691 153.402 l 94.695 153.434 l 94.695 153.461 l 94.703
+ 153.523 l 94.703 153.551 l 94.711 153.613 l 94.711 153.641 l 94.715 153.672
+ l 94.719 153.699 l 94.719 153.73 l 94.723 153.762 l 94.723 153.789 l 94.73
+ 153.852 l 94.73 153.879 l 94.738 153.941 l 94.738 153.969 l 94.742 154 
+l 94.742 154.027 l 94.75 154.09 l 94.75 154.117 l 94.758 154.18 l 94.758
+ 154.207 l 94.762 154.238 l 94.762 154.27 l 94.766 154.297 l 94.77 154.328
+ l 94.77 154.355 l 94.777 154.418 l 94.777 154.445 l 94.781 154.477 l 94.781
+ 154.508 l 94.785 154.535 l 94.789 154.566 l 94.789 154.594 l 94.797 154.656
+ l 94.797 154.684 l 94.805 154.746 l 94.805 154.773 l 94.809 154.805 l 94.809
+ 154.832 l 94.816 154.895 l 94.816 154.922 l 94.82 154.953 l 94.824 154.98
+ l 94.824 155.012 l 94.828 155.043 l 94.828 155.07 l 94.836 155.133 l 94.836
+ 155.16 l 94.84 155.191 l 94.844 155.219 l 94.844 155.25 l 94.848 155.281
+ l 94.848 155.309 l 94.852 155.34 l 94.855 155.367 l 94.855 155.398 l 94.859
+ 155.43 l 94.863 155.457 l 94.863 155.488 l 94.867 155.516 l 94.867 155.547
+ l 94.871 155.578 l 94.875 155.605 l 94.875 155.637 l 94.879 155.668 l 94.883
+ 155.695 l 94.883 155.727 l 94.887 155.754 l 94.887 155.785 l 94.891 155.816
+ l 94.895 155.844 l 94.895 155.875 l 94.898 155.902 l 94.902 155.934 l 94.902
+ 155.965 l 94.906 155.992 l 94.91 156.023 l 94.91 156.051 l 94.914 156.082
+ l 94.914 156.113 l 94.918 156.141 l 94.922 156.172 l 94.922 156.199 l 94.926
+ 156.23 l 94.93 156.258 l 94.93 156.289 l 94.934 156.32 l 94.934 156.348
+ l 94.938 156.379 l 94.941 156.406 l 94.941 156.438 l 94.945 156.469 l 94.949
+ 156.496 l 94.949 156.527 l 94.953 156.555 l 94.953 156.586 l 94.957 156.617
+ l 94.961 156.645 l 94.961 156.676 l 94.965 156.703 l 94.969 156.734 l 94.969
+ 156.762 l 94.973 156.793 l 94.973 156.824 l 94.977 156.852 l 94.98 156.883
+ l 94.98 156.91 l 94.988 156.973 l 94.988 157 l 94.992 157.031 l 94.996 
+157.059 l 94.996 157.09 l 95 157.117 l 95 157.148 l 95.004 157.18 l 95.008
+ 157.207 l 95.008 157.238 l 95.012 157.266 l 95.016 157.297 l 95.016 157.324
+ l 95.02 157.355 l 95.02 157.387 l 95.023 157.414 l 95.027 157.445 l 95.027
+ 157.473 l 95.031 157.504 l 95.035 157.531 l 95.035 157.562 l 95.039 157.594
+ l 95.039 157.621 l 95.043 157.652 l 95.047 157.68 l 95.047 157.711 l 95.051
+ 157.738 l 95.055 157.77 l 95.055 157.797 l 95.059 157.828 l 95.059 157.859
+ l 95.062 157.887 l 95.066 157.918 l 95.066 157.945 l 95.07 157.977 l 95.074
+ 158.004 l 95.074 158.035 l 95.078 158.066 l 95.078 158.094 l 95.082 158.125
+ l 95.086 158.152 l 95.086 158.184 l 95.09 158.211 l 95.094 158.242 l 95.094
+ 158.27 l 95.098 158.301 l 95.102 158.328 l 95.102 158.359 l 95.105 158.391
+ l 95.105 158.418 l 95.109 158.449 l 95.113 158.477 l 95.113 158.508 l 95.117
+ 158.535 l 95.121 158.566 l 95.121 158.594 l 95.125 158.625 l 95.125 158.652
+ l 95.133 158.715 l 95.133 158.742 l 95.137 158.773 l 95.141 158.801 l 95.141
+ 158.832 l 95.145 158.859 l 95.145 158.891 l 95.148 158.918 l 95.152 158.949
+ l 95.152 158.977 l 95.156 159.008 l 95.16 159.035 l 95.16 159.066 l 95.164
+ 159.094 l 95.164 159.125 l 95.168 159.156 l 95.172 159.184 l 95.172 159.215
+ l 95.176 159.242 l 95.18 159.273 l 95.18 159.301 l 95.184 159.332 l 95.188
+ 159.359 l 95.188 159.391 l 95.191 159.418 l 95.191 159.449 l 95.195 159.477
+ l 95.199 159.508 l 95.199 159.535 l 95.203 159.566 l 95.207 159.594 l 95.207
+ 159.625 l 95.211 159.652 l 95.211 159.684 l 95.215 159.711 l 95.219 159.742
+ l 95.219 159.77 l 95.227 159.832 l 95.227 159.859 l 95.23 159.891 l 95.23
+ 159.918 l 95.234 159.949 l 95.238 159.977 l 95.238 160.008 l 95.242 160.035
+ l 95.246 160.066 l 95.246 160.094 l 95.25 160.125 l 95.25 160.152 l 95.254
+ 160.184 l 95.258 160.211 l 95.258 160.242 l 95.262 160.27 l 95.266 160.301
+ l 95.266 160.328 l 95.27 160.359 l 95.27 160.387 l 95.273 160.418 l 95.277
+ 160.445 l 95.277 160.477 l 95.281 160.504 l 95.285 160.535 l 95.285 160.562
+ l 95.289 160.594 l 95.293 160.621 l 95.293 160.652 l 95.297 160.68 l 95.297
+ 160.711 l 95.305 160.766 l 95.305 160.797 l 95.309 160.824 l 95.312 160.855
+ l 95.312 160.883 l 95.316 160.914 l 95.316 160.941 l 95.32 160.973 l 95.324
+ 161 l 95.324 161.031 l 95.328 161.059 l 95.332 161.09 l 95.332 161.117 
+l 95.336 161.148 l 95.336 161.176 l 95.34 161.207 l 95.344 161.234 l 95.344
+ 161.266 l 95.348 161.293 l 95.352 161.324 l 95.352 161.352 l 95.355 161.383
+ l 95.355 161.41 l 95.359 161.438 l 95.363 161.469 l 95.363 161.496 l 95.367
+ 161.527 l 95.371 161.555 l 95.371 161.586 l 95.375 161.613 l 95.379 161.645
+ l 95.379 161.672 l 95.383 161.703 l 95.383 161.73 l 95.387 161.762 l 95.391
+ 161.789 l 95.391 161.816 l 95.395 161.848 l 95.398 161.875 l 95.398 161.906
+ l 95.402 161.934 l 95.402 161.965 l 95.406 161.992 l 95.41 162.023 l 95.41
+ 162.051 l 95.414 162.082 l 95.418 162.109 l 95.418 162.137 l 95.422 162.168
+ l 95.422 162.195 l 95.426 162.227 l 95.43 162.254 l 95.43 162.285 l 95.434
+ 162.312 l 95.438 162.344 l 95.438 162.371 l 95.441 162.398 l 95.441 162.43
+ l 95.445 162.457 l 95.449 162.488 l 95.449 162.516 l 95.453 162.547 l 95.457
+ 162.574 l 95.457 162.602 l 95.461 162.633 l 95.461 162.66 l 95.465 162.691
+ l 95.469 162.719 l 95.469 162.75 l 95.477 162.805 l 95.477 162.836 l 95.48
+ 162.863 l 95.484 162.895 l 95.484 162.922 l 95.488 162.953 l 95.488 162.98
+ l 95.492 163.008 l 95.496 163.039 l 95.496 163.066 l 95.5 163.098 l 95.504
+ 163.125 l 95.504 163.156 l 95.508 163.184 l 95.508 163.211 l 95.512 163.242
+ l 95.516 163.27 l 95.516 163.301 l 95.523 163.355 l 95.523 163.387 l 95.527
+ 163.414 l 95.527 163.445 l 95.535 163.5 l 95.535 163.531 l 95.539 163.559
+ l 95.543 163.59 l 95.543 163.617 l 95.547 163.648 l 95.547 163.676 l 95.551
+ 163.703 l 95.555 163.734 l 95.555 163.762 l 95.559 163.793 l 95.562 163.82
+ l 95.562 163.848 l 95.566 163.879 l 95.57 163.906 l 95.57 163.934 l 95.574
+ 163.965 l 95.574 163.992 l 95.578 164.023 l 95.582 164.051 l 95.582 164.078
+ l 95.586 164.109 l 95.59 164.137 l 95.59 164.168 l 95.594 164.195 l 95.594
+ 164.223 l 95.598 164.254 l 95.602 164.281 l 95.602 164.309 l 95.605 164.34
+ l 95.609 164.367 l 95.609 164.398 l 95.613 164.426 l 95.613 164.453 l 95.617
+ 164.484 l 95.621 164.512 l 95.621 164.539 l 95.625 164.57 l 95.629 164.598
+ l 95.629 164.629 l 95.633 164.656 l 95.633 164.684 l 95.637 164.715 l 95.641
+ 164.742 l 95.641 164.77 l 95.645 164.801 l 95.648 164.828 l 95.648 164.859
+ l 95.652 164.887 l 95.652 164.914 l 95.656 164.945 l 95.66 164.973 l 95.66
+ 165 l 95.664 165.031 l 95.668 165.059 l 95.668 165.086 l 95.672 165.117
+ l 95.676 165.145 l 95.676 165.172 l 95.68 165.203 l 95.68 165.23 l 95.684
+ 165.258 l 95.688 165.289 l 95.688 165.316 l 95.691 165.348 l 95.695 165.375
+ l 95.695 165.402 l 95.699 165.434 l 95.699 165.461 l 95.703 165.488 l 95.707
+ 165.52 l 95.707 165.547 l 95.711 165.574 l 95.715 165.605 l 95.715 165.633
+ l 95.719 165.66 l 95.719 165.691 l 95.727 165.746 l 95.727 165.777 l 95.734
+ 165.832 l 95.734 165.863 l 95.738 165.891 l 95.738 165.918 l 95.742 165.949
+ l 95.746 165.977 l 95.746 166.004 l 95.75 166.031 l 95.754 166.062 l 95.754
+ 166.09 l 95.758 166.117 l 95.758 166.148 l 95.766 166.203 l 95.766 166.234
+ l 95.773 166.289 l 95.773 166.32 l 95.781 166.375 l 95.781 166.406 l 95.785
+ 166.434 l 95.785 166.461 l 95.789 166.488 l 95.793 166.52 l 95.793 166.547
+ l 95.797 166.574 l 95.801 166.605 l 95.801 166.633 l 95.805 166.66 l 95.805
+ 166.691 l 95.812 166.746 l 95.812 166.773 l 95.816 166.805 l 95.82 166.832
+ l 95.82 166.859 l 95.824 166.891 l 95.824 166.918 l 95.832 166.973 l 95.832
+ 167.004 l 95.84 167.059 l 95.84 167.09 l 95.844 167.117 l 95.844 167.145
+ l 95.848 167.172 l 95.852 167.203 l 95.852 167.23 l 95.855 167.258 l 95.859
+ 167.289 l 95.859 167.316 l 95.867 167.371 l 95.867 167.402 l 95.871 167.43
+ l 95.871 167.457 l 95.875 167.484 l 95.879 167.516 l 95.879 167.543 l 95.887
+ 167.598 l 95.887 167.629 l 95.891 167.656 l 95.891 167.684 l 95.895 167.711
+ l 95.898 167.742 l 95.898 167.77 l 95.902 167.797 l 95.906 167.828 l 95.906
+ 167.855 l 95.91 167.883 l 95.91 167.91 l 95.914 167.941 l 95.918 167.969
+ l 95.918 167.996 l 95.926 168.051 l 95.926 168.082 l 95.93 168.109 l 95.93
+ 168.137 l 95.934 168.164 l 95.938 168.195 l 95.938 168.223 l 95.945 168.277
+ l 95.945 168.309 l 95.949 168.336 l 95.949 168.363 l 95.953 168.391 l 95.957
+ 168.422 l 95.957 168.449 l 95.965 168.504 l 95.965 168.531 l 95.969 168.562
+ l 95.973 168.59 l 95.973 168.617 l 95.977 168.645 l 95.977 168.676 l 95.984
+ 168.73 l 95.984 168.758 l 95.988 168.785 l 95.992 168.816 l 95.992 168.844
+ l 95.996 168.871 l 95.996 168.898 l 96 168.926 l 96.004 168.957 l 96.004
+ 168.984 l 96.012 169.039 l 96.012 169.07 l 96.016 169.098 l 96.016 169.125
+ l 96.023 169.18 l 96.023 169.211 l 96.031 169.266 l 96.031 169.293 l 96.035
+ 169.32 l 96.035 169.348 l 96.039 169.379 l 96.043 169.406 l 96.043 169.434
+ l 96.051 169.488 l 96.051 169.52 l 96.059 169.574 l 96.059 169.602 l 96.062
+ 169.629 l 96.062 169.66 l 96.07 169.715 l 96.07 169.742 l 96.078 169.797
+ l 96.078 169.828 l 96.082 169.855 l 96.082 169.883 l 96.09 169.938 l 96.09
+ 169.965 l 96.094 169.996 l 96.098 170.023 l 96.098 170.051 l 96.102 170.078
+ l 96.102 170.105 l 96.105 170.133 l 96.109 170.164 l 96.109 170.191 l 96.117
+ 170.246 l 96.117 170.273 l 96.121 170.301 l 96.121 170.328 l 96.125 170.359
+ l 96.129 170.387 l 96.129 170.414 l 96.137 170.469 l 96.137 170.496 l 96.141
+ 170.523 l 96.141 170.555 l 96.148 170.609 l 96.148 170.637 l 96.156 170.691
+ l 96.156 170.719 l 96.16 170.75 l 96.164 170.777 l 96.164 170.805 l 96.168
+ 170.832 l 96.168 170.859 l 96.176 170.914 l 96.176 170.941 l 96.18 170.973
+ l 96.184 171 l 96.184 171.027 l 96.188 171.055 l 96.188 171.082 l 96.195
+ 171.137 l 96.195 171.164 l 96.199 171.195 l 96.203 171.223 l 96.203 171.25
+ l 96.207 171.277 l 96.207 171.305 l 96.215 171.359 l 96.215 171.387 l 96.223
+ 171.441 l 96.223 171.473 l 96.227 171.5 l 96.227 171.527 l 96.234 171.582
+ l 96.234 171.609 l 96.242 171.664 l 96.242 171.691 l 96.246 171.719 l 96.25
+ 171.75 l 96.25 171.777 l 96.254 171.805 l 96.254 171.832 l 96.262 171.887
+ l 96.262 171.914 l 96.27 171.969 l 96.27 171.996 l 96.273 172.023 l 96.273
+ 172.051 l 96.277 172.078 l 96.281 172.109 l 96.281 172.137 l 96.289 172.191
+ l 96.289 172.219 l 96.293 172.246 l 96.293 172.273 l 96.301 172.328 l 96.301
+ 172.355 l 96.309 172.41 l 96.309 172.438 l 96.312 172.465 l 96.312 172.492
+ l 96.316 172.52 l 96.32 172.551 l 96.32 172.578 l 96.328 172.633 l 96.328
+ 172.66 l 96.332 172.688 l 96.332 172.715 l 96.34 172.77 l 96.34 172.797
+ l 96.348 172.852 l 96.348 172.879 l 96.355 172.934 l 96.355 172.961 l 96.359
+ 172.988 l 96.359 173.016 l 96.367 173.07 l 96.367 173.098 l 96.375 173.152
+ l 96.375 173.18 l 96.379 173.207 l 96.379 173.234 l 96.387 173.289 l 96.387
+ 173.316 l 96.395 173.371 l 96.395 173.398 l 96.398 173.426 l 96.398 173.453
+ l 96.406 173.508 l 96.406 173.539 l 96.414 173.594 l 96.414 173.621 l 96.418
+ 173.648 l 96.418 173.676 l 96.422 173.703 l 96.426 173.727 l 96.426 173.754
+ l 96.434 173.809 l 96.434 173.836 l 96.441 173.891 l 96.441 173.918 l 96.445
+ 173.945 l 96.445 173.973 l 96.453 174.027 l 96.453 174.055 l 96.461 174.109
+ l 96.461 174.137 l 96.465 174.164 l 96.465 174.191 l 96.473 174.246 l 96.473
+ 174.273 l 96.48 174.328 l 96.48 174.355 l 96.484 174.383 l 96.484 174.41
+ l 96.492 174.465 l 96.492 174.492 l 96.5 174.547 l 96.5 174.574 l 96.504
+ 174.602 l 96.504 174.629 l 96.508 174.656 l 96.512 174.68 l 96.512 174.707
+ l 96.52 174.762 l 96.52 174.789 l 96.523 174.816 l 96.523 174.844 l 96.531
+ 174.898 l 96.531 174.926 l 96.539 174.98 l 96.539 175.008 l 96.547 175.062
+ l 96.547 175.09 l 96.551 175.113 l 96.551 175.141 l 96.559 175.195 l 96.559
+ 175.223 l 96.566 175.277 l 96.566 175.305 l 96.57 175.332 l 96.57 175.359
+ l 96.578 175.414 l 96.578 175.438 l 96.586 175.492 l 96.586 175.52 l 96.59
+ 175.547 l 96.59 175.574 l 96.598 175.629 l 96.598 175.656 l 96.602 175.684
+ l 96.605 175.707 l 96.605 175.734 l 96.609 175.762 l 96.609 175.789 l 96.617
+ 175.844 l 96.617 175.871 l 96.625 175.926 l 96.625 175.949 l 96.633 176.004
+ l 96.633 176.031 l 96.637 176.059 l 96.637 176.086 l 96.645 176.141 l 96.645
+ 176.164 l 96.652 176.219 l 96.652 176.246 l 96.656 176.273 l 96.656 176.301
+ l 96.664 176.355 l 96.664 176.379 l 96.672 176.434 l 96.672 176.461 l 96.676
+ 176.488 l 96.676 176.516 l 96.68 176.543 l 96.684 176.566 l 96.684 176.594
+ l 96.691 176.648 l 96.691 176.676 l 96.695 176.703 l 96.695 176.727 l 96.703
+ 176.781 l 96.703 176.809 l 96.711 176.863 l 96.711 176.891 l 96.715 176.914
+ l 96.715 176.941 l 96.723 176.996 l 96.723 177.023 l 96.727 177.047 l 96.73
+ 177.074 l 96.73 177.102 l 96.738 177.156 l 96.738 177.184 l 96.742 177.207
+ l 96.742 177.234 l 96.75 177.289 l 96.75 177.316 l 96.754 177.34 l 96.758
+ 177.367 l 96.758 177.395 l 96.762 177.422 l 96.762 177.449 l 96.766 177.473
+ l 96.77 177.5 l 96.77 177.527 l 96.777 177.582 l 96.777 177.605 l 96.781
+ 177.633 l 96.781 177.66 l 96.789 177.715 l 96.789 177.738 l 96.797 177.793
+ l 96.797 177.82 l 96.801 177.848 l 96.801 177.871 l 96.809 177.926 l 96.809
+ 177.953 l 96.812 177.977 l 96.816 178.004 l 96.816 178.031 l 96.824 178.086
+ l 96.824 178.109 l 96.828 178.137 l 96.828 178.164 l 96.832 178.191 l 96.836
+ 178.215 l 96.836 178.242 l 96.844 178.297 l 96.844 178.32 l 96.848 178.348
+ l 96.848 178.375 l 96.852 178.402 l 96.855 178.426 l 96.855 178.453 l 96.863
+ 178.508 l 96.863 178.531 l 96.867 178.559 l 96.867 178.586 l 96.871 178.613
+ l 96.875 178.637 l 96.875 178.664 l 96.879 178.691 l 96.883 178.715 l 96.883
+ 178.742 l 96.887 178.77 l 96.887 178.797 l 96.891 178.82 l 96.895 178.848
+ l 96.895 178.875 l 96.898 178.902 l 96.902 178.926 l 96.902 178.953 l 96.906
+ 178.98 l 96.906 179.004 l 96.914 179.059 l 96.914 179.086 l 96.918 179.109
+ l 96.922 179.137 l 96.922 179.164 l 96.926 179.188 l 96.93 179.215 l 96.93
+ 179.242 l 96.934 179.27 l 96.934 179.293 l 96.941 179.348 l 96.941 179.371
+ l 96.949 179.426 l 96.949 179.449 l 96.953 179.477 l 96.953 179.504 l 96.957
+ 179.527 l 96.961 179.555 l 96.961 179.582 l 96.965 179.605 l 96.969 179.633
+ l 96.969 179.66 l 96.973 179.688 l 96.973 179.711 l 96.98 179.766 l 96.98
+ 179.789 l 96.988 179.844 l 96.988 179.867 l 96.992 179.895 l 96.992 179.922
+ l 96.996 179.945 l 97 179.973 l 97 180 l 97.004 180.023 l 97.008 180.051
+ l 97.008 180.074 l 97.016 180.129 l 97.016 180.152 l 97.02 180.18 l 97.02
+ 180.207 l 97.023 180.23 l 97.027 180.258 l 97.027 180.285 l 97.031 180.309
+ l 97.035 180.336 l 97.035 180.363 l 97.039 180.387 l 97.039 180.414 l 97.043
+ 180.438 l 97.047 180.465 l 97.047 180.492 l 97.051 180.516 l 97.055 180.543
+ l 97.055 180.57 l 97.059 180.594 l 97.059 180.621 l 97.062 180.645 l 97.066
+ 180.672 l 97.066 180.699 l 97.07 180.723 l 97.074 180.75 l 97.074 180.777
+ l 97.078 180.801 l 97.078 180.828 l 97.082 180.852 l 97.086 180.879 l 97.086
+ 180.906 l 97.09 180.93 l 97.094 180.957 l 97.094 180.98 l 97.098 181.008
+ l 97.098 181.035 l 97.102 181.059 l 97.105 181.086 l 97.105 181.109 l 97.113
+ 181.164 l 97.113 181.188 l 97.117 181.215 l 97.121 181.238 l 97.121 181.266
+ l 97.125 181.289 l 97.125 181.316 l 97.129 181.344 l 97.133 181.367 l 97.133
+ 181.395 l 97.137 181.418 l 97.141 181.445 l 97.141 181.469 l 97.145 181.496
+ l 97.145 181.523 l 97.148 181.547 l 97.152 181.574 l 97.152 181.598 l 97.156
+ 181.625 l 97.16 181.648 l 97.16 181.676 l 97.164 181.703 l 97.164 181.727
+ l 97.168 181.754 l 97.172 181.777 l 97.172 181.805 l 97.176 181.828 l 97.18
+ 181.855 l 97.18 181.879 l 97.184 181.906 l 97.184 181.93 l 97.191 181.984
+ l 97.191 182.008 l 97.195 182.035 l 97.199 182.059 l 97.199 182.086 l 97.203
+ 182.109 l 97.207 182.137 l 97.207 182.16 l 97.211 182.188 l 97.211 182.211
+ l 97.215 182.238 l 97.219 182.262 l 97.219 182.289 l 97.223 182.312 l 97.227
+ 182.34 l 97.227 182.363 l 97.23 182.391 l 97.23 182.414 l 97.234 182.441
+ l 97.238 182.465 l 97.238 182.492 l 97.242 182.516 l 97.246 182.543 l 97.246
+ 182.566 l 97.25 182.594 l 97.25 182.617 l 97.254 182.645 l 97.258 182.668
+ l 97.258 182.695 l 97.262 182.719 l 97.266 182.746 l 97.266 182.77 l 97.27
+ 182.797 l 97.27 182.82 l 97.273 182.848 l 97.277 182.871 l 97.277 182.898
+ l 97.281 182.922 l 97.285 182.949 l 97.285 182.973 l 97.289 183 l 97.289
+ 183.023 l 97.293 183.051 l 97.297 183.074 l 97.297 183.102 l 97.301 183.125
+ l 97.305 183.152 l 97.305 183.176 l 97.309 183.199 l 97.312 183.227 l 97.312
+ 183.25 l 97.316 183.277 l 97.316 183.301 l 97.32 183.328 l 97.324 183.352
+ l 97.324 183.379 l 97.328 183.402 l 97.332 183.43 l 97.332 183.453 l 97.336
+ 183.477 l 97.336 183.504 l 97.34 183.527 l 97.344 183.555 l 97.344 183.578
+ l 97.348 183.605 l 97.352 183.629 l 97.352 183.652 l 97.355 183.68 l 97.355
+ 183.703 l 97.359 183.73 l 97.363 183.754 l 97.363 183.781 l 97.371 183.828
+ l 97.371 183.855 l 97.375 183.879 l 97.375 183.906 l 97.383 183.953 l 97.383
+ 183.98 l 97.387 184.004 l 97.391 184.031 l 97.391 184.055 l 97.395 184.082
+ l 97.398 184.105 l 97.398 184.129 l 97.402 184.156 l 97.402 184.18 l 97.406
+ 184.207 l 97.41 184.23 l 97.41 184.254 l 97.414 184.281 l 97.418 184.305
+ l 97.418 184.328 l 97.422 184.355 l 97.422 184.379 l 97.426 184.406 l 97.43
+ 184.43 l 97.43 184.453 l 97.434 184.48 l 97.438 184.504 l 97.438 184.527
+ l 97.441 184.555 l 97.441 184.578 l 97.445 184.605 l 97.449 184.629 l 97.449
+ 184.652 l 97.453 184.68 l 97.457 184.703 l 97.457 184.727 l 97.461 184.754
+ l 97.461 184.777 l 97.465 184.801 l 97.469 184.828 l 97.469 184.852 l 97.473
+ 184.879 l 97.477 184.902 l 97.477 184.926 l 97.48 184.953 l 97.48 184.977
+ l 97.484 185 l 97.488 185.027 l 97.488 185.051 l 97.492 185.074 l 97.496
+ 185.102 l 97.496 185.125 l 97.5 185.148 l 97.504 185.176 l 97.504 185.199
+ l 97.508 185.223 l 97.508 185.25 l 97.516 185.297 l 97.516 185.324 l 97.523
+ 185.371 l 97.523 185.395 l 97.527 185.422 l 97.527 185.445 l 97.531 185.469
+ l 97.535 185.496 l 97.535 185.52 l 97.539 185.543 l 97.543 185.57 l 97.543
+ 185.594 l 97.547 185.617 l 97.547 185.645 l 97.555 185.691 l 97.555 185.715
+ l 97.559 185.742 l 97.562 185.766 l 97.562 185.789 l 97.566 185.816 l 97.566
+ 185.84 l 97.574 185.887 l 97.574 185.914 l 97.582 185.961 l 97.582 185.988
+ l 97.59 186.035 l 97.59 186.059 l 97.594 186.086 l 97.594 186.109 l 97.602
+ 186.156 l 97.602 186.184 l 97.609 186.23 l 97.609 186.254 l 97.613 186.281
+ l 97.613 186.305 l 97.621 186.352 l 97.621 186.379 l 97.629 186.426 l 97.629
+ 186.449 l 97.633 186.477 l 97.633 186.5 l 97.641 186.547 l 97.641 186.574
+ l 97.648 186.621 l 97.648 186.645 l 97.652 186.668 l 97.652 186.695 l 97.66
+ 186.742 l 97.66 186.766 l 97.664 186.793 l 97.668 186.816 l 97.668 186.84
+ l 97.672 186.863 l 97.672 186.887 l 97.676 186.914 l 97.68 186.938 l 97.68
+ 186.961 l 97.688 187.008 l 97.688 187.035 l 97.695 187.082 l 97.695 187.105
+ l 97.699 187.129 l 97.699 187.156 l 97.707 187.203 l 97.707 187.227 l 97.711
+ 187.25 l 97.715 187.277 l 97.715 187.301 l 97.719 187.324 l 97.719 187.348
+ l 97.727 187.395 l 97.727 187.422 l 97.734 187.469 l 97.734 187.492 l 97.738
+ 187.516 l 97.738 187.539 l 97.742 187.566 l 97.746 187.59 l 97.746 187.613
+ l 97.754 187.66 l 97.754 187.684 l 97.758 187.711 l 97.758 187.734 l 97.766
+ 187.781 l 97.766 187.805 l 97.773 187.852 l 97.773 187.879 l 97.781 187.926
+ l 97.781 187.949 l 97.785 187.973 l 97.785 187.996 l 97.793 188.043 l 97.793
+ 188.07 l 97.801 188.117 l 97.801 188.141 l 97.805 188.164 l 97.805 188.188
+ l 97.812 188.234 l 97.812 188.258 l 97.816 188.285 l 97.82 188.309 l 97.82
+ 188.332 l 97.824 188.355 l 97.824 188.379 l 97.832 188.426 l 97.832 188.449
+ l 97.836 188.473 l 97.84 188.5 l 97.84 188.523 l 97.844 188.547 l 97.844
+ 188.57 l 97.852 188.617 l 97.852 188.641 l 97.859 188.688 l 97.859 188.711
+ l 97.863 188.734 l 97.863 188.758 l 97.867 188.781 l 97.871 188.809 l 97.871
+ 188.832 l 97.879 188.879 l 97.879 188.902 l 97.887 188.949 l 97.887 188.973
+ l 97.891 188.996 l 97.891 189.02 l 97.898 189.066 l 97.898 189.09 l 97.906
+ 189.137 l 97.906 189.16 l 97.91 189.184 l 97.91 189.207 l 97.914 189.23
+ l 97.918 189.258 l 97.918 189.281 l 97.926 189.328 l 97.926 189.352 l 97.93
+ 189.375 l 97.93 189.398 l 97.938 189.445 l 97.938 189.469 l 97.945 189.516
+ l 97.945 189.539 l 97.949 189.562 l 97.949 189.586 l 97.957 189.633 l 97.957
+ 189.656 l 97.965 189.703 l 97.965 189.727 l 97.973 189.773 l 97.973 189.797
+ l 97.977 189.82 l 97.977 189.844 l 97.984 189.891 l 97.984 189.914 l 97.992
+ 189.961 l 97.992 189.984 l 97.996 190.008 l 97.996 190.031 l 98.004 190.078
+ l 98.004 190.102 l 98.012 190.148 l 98.012 190.172 l 98.016 190.191 l 98.016
+ 190.215 l 98.023 190.262 l 98.023 190.285 l 98.031 190.332 l 98.031 190.355
+ l 98.035 190.379 l 98.035 190.402 l 98.043 190.449 l 98.043 190.473 l 98.051
+ 190.52 l 98.051 190.543 l 98.055 190.566 l 98.055 190.59 l 98.059 190.613
+ l 98.062 190.633 l 98.062 190.656 l 98.07 190.703 l 98.07 190.727 l 98.078
+ 190.773 l 98.078 190.797 l 98.082 190.82 l 98.082 190.844 l 98.09 190.891
+ l 98.09 190.91 l 98.098 190.957 l 98.098 190.98 l 98.102 191.004 l 98.102
+ 191.027 l 98.109 191.074 l 98.109 191.098 l 98.113 191.121 l 98.117 191.141
+ l 98.117 191.164 l 98.121 191.188 l 98.121 191.211 l 98.129 191.258 l 98.129
+ 191.281 l 98.133 191.305 l 98.137 191.324 l 98.137 191.348 l 98.141 191.371
+ l 98.141 191.395 l 98.148 191.441 l 98.148 191.465 l 98.152 191.488 l 98.156
+ 191.508 l 98.156 191.531 l 98.164 191.578 l 98.164 191.602 l 98.168 191.625
+ l 98.168 191.648 l 98.172 191.668 l 98.176 191.691 l 98.176 191.715 l 98.184
+ 191.762 l 98.184 191.785 l 98.188 191.805 l 98.188 191.828 l 98.195 191.875
+ l 98.195 191.898 l 98.199 191.922 l 98.203 191.941 l 98.203 191.965 l 98.207
+ 191.988 l 98.207 192.012 l 98.211 192.035 l 98.215 192.055 l 98.215 192.078
+ l 98.223 192.125 l 98.223 192.148 l 98.227 192.172 l 98.227 192.191 l 98.234
+ 192.238 l 98.234 192.262 l 98.238 192.285 l 98.242 192.305 l 98.242 192.328
+ l 98.246 192.352 l 98.246 192.375 l 98.25 192.395 l 98.254 192.418 l 98.254
+ 192.441 l 98.262 192.488 l 98.262 192.508 l 98.27 192.555 l 98.27 192.578
+ l 98.273 192.598 l 98.273 192.621 l 98.281 192.668 l 98.281 192.691 l 98.285
+ 192.711 l 98.289 192.734 l 98.289 192.758 l 98.293 192.781 l 98.293 192.801
+ l 98.301 192.848 l 98.301 192.871 l 98.305 192.891 l 98.309 192.914 l 98.309
+ 192.938 l 98.312 192.961 l 98.312 192.98 l 98.32 193.027 l 98.32 193.047
+ l 98.328 193.094 l 98.328 193.117 l 98.332 193.137 l 98.332 193.16 l 98.34
+ 193.207 l 98.34 193.227 l 98.348 193.273 l 98.348 193.293 l 98.355 193.34
+ l 98.355 193.363 l 98.359 193.383 l 98.359 193.406 l 98.363 193.43 l 98.367
+ 193.449 l 98.367 193.473 l 98.371 193.496 l 98.375 193.516 l 98.375 193.539
+ l 98.379 193.562 l 98.379 193.586 l 98.383 193.605 l 98.387 193.629 l 98.387
+ 193.652 l 98.391 193.672 l 98.395 193.695 l 98.395 193.719 l 98.398 193.738
+ l 98.398 193.762 l 98.402 193.785 l 98.406 193.805 l 98.406 193.828 l 98.41
+ 193.852 l 98.414 193.871 l 98.414 193.895 l 98.418 193.918 l 98.418 193.938
+ l 98.426 193.984 l 98.426 194.004 l 98.434 194.051 l 98.434 194.07 l 98.438
+ 194.094 l 98.438 194.113 l 98.445 194.16 l 98.445 194.18 l 98.453 194.227
+ l 98.453 194.246 l 98.461 194.293 l 98.461 194.312 l 98.465 194.336 l 98.465
+ 194.355 l 98.473 194.402 l 98.473 194.422 l 98.48 194.469 l 98.48 194.488
+ l 98.484 194.512 l 98.484 194.531 l 98.492 194.578 l 98.492 194.598 l 98.496
+ 194.621 l 98.5 194.641 l 98.5 194.664 l 98.504 194.688 l 98.504 194.707
+ l 98.508 194.73 l 98.512 194.75 l 98.512 194.773 l 98.516 194.793 l 98.52
+ 194.816 l 98.52 194.84 l 98.523 194.859 l 98.523 194.883 l 98.527 194.902
+ l 98.531 194.926 l 98.531 194.949 l 98.535 194.969 l 98.539 194.992 l 98.539
+ 195.012 l 98.543 195.035 l 98.543 195.055 l 98.547 195.078 l 98.551 195.098
+ l 98.551 195.121 l 98.555 195.145 l 98.559 195.164 l 98.559 195.188 l 98.562
+ 195.207 l 98.566 195.23 l 98.566 195.25 l 98.57 195.273 l 98.57 195.293
+ l 98.574 195.316 l 98.578 195.336 l 98.578 195.359 l 98.582 195.383 l 98.586
+ 195.402 l 98.586 195.426 l 98.59 195.445 l 98.59 195.469 l 98.594 195.488
+ l 98.598 195.512 l 98.598 195.531 l 98.602 195.555 l 98.605 195.574 l 98.605
+ 195.598 l 98.609 195.617 l 98.609 195.641 l 98.613 195.66 l 98.617 195.684
+ l 98.617 195.703 l 98.621 195.727 l 98.625 195.746 l 98.625 195.77 l 98.629
+ 195.789 l 98.629 195.812 l 98.633 195.832 l 98.637 195.855 l 98.637 195.875
+ l 98.641 195.898 l 98.645 195.918 l 98.645 195.941 l 98.648 195.961 l 98.652
+ 195.984 l 98.652 196.004 l 98.656 196.027 l 98.656 196.047 l 98.66 196.07
+ l 98.664 196.09 l 98.664 196.109 l 98.668 196.133 l 98.672 196.152 l 98.672
+ 196.176 l 98.676 196.195 l 98.676 196.219 l 98.68 196.238 l 98.684 196.262
+ l 98.684 196.281 l 98.688 196.305 l 98.691 196.324 l 98.691 196.344 l 98.695
+ 196.367 l 98.695 196.387 l 98.699 196.41 l 98.703 196.43 l 98.703 196.453
+ l 98.707 196.473 l 98.711 196.496 l 98.711 196.516 l 98.715 196.535 l 98.715
+ 196.559 l 98.719 196.578 l 98.723 196.602 l 98.723 196.621 l 98.727 196.645
+ l 98.73 196.664 l 98.73 196.684 l 98.734 196.707 l 98.734 196.727 l 98.738
+ 196.75 l 98.742 196.77 l 98.742 196.789 l 98.746 196.812 l 98.75 196.832
+ l 98.75 196.855 l 98.758 196.895 l 98.758 196.918 l 98.762 196.938 l 98.762
+ 196.961 l 98.77 197 l 98.77 197.023 l 98.777 197.062 l 98.777 197.086 l
+ 98.781 197.105 l 98.781 197.129 l 98.789 197.168 l 98.789 197.191 l 98.797
+ 197.23 l 98.797 197.254 l 98.801 197.273 l 98.801 197.297 l 98.809 197.336
+ l 98.809 197.359 l 98.816 197.398 l 98.816 197.422 l 98.82 197.441 l 98.82
+ 197.461 l 98.824 197.484 l 98.828 197.504 l 98.828 197.523 l 98.832 197.547
+ l 98.836 197.566 l 98.836 197.586 l 98.84 197.609 l 98.844 197.629 l 98.844
+ 197.648 l 98.848 197.672 l 98.848 197.691 l 98.852 197.711 l 98.855 197.734
+ l 98.855 197.754 l 98.859 197.773 l 98.863 197.797 l 98.863 197.816 l 98.867
+ 197.836 l 98.867 197.855 l 98.871 197.879 l 98.875 197.898 l 98.875 197.918
+ l 98.879 197.941 l 98.883 197.961 l 98.883 197.98 l 98.887 198.004 l 98.887
+ 198.023 l 98.895 198.062 l 98.895 198.086 l 98.902 198.125 l 98.902 198.148
+ l 98.906 198.168 l 98.906 198.188 l 98.91 198.207 l 98.914 198.23 l 98.914
+ 198.25 l 98.922 198.289 l 98.922 198.312 l 98.926 198.332 l 98.926 198.352
+ l 98.93 198.371 l 98.934 198.395 l 98.934 198.414 l 98.941 198.453 l 98.941
+ 198.477 l 98.949 198.516 l 98.949 198.535 l 98.953 198.559 l 98.953 198.578
+ l 98.961 198.617 l 98.961 198.641 l 98.969 198.68 l 98.969 198.699 l 98.973
+ 198.723 l 98.973 198.742 l 98.98 198.781 l 98.98 198.801 l 98.984 198.824
+ l 98.988 198.844 l 98.988 198.863 l 98.992 198.883 l 98.992 198.902 l 98.996
+ 198.926 l 99 198.945 l 99 198.965 l 99.008 199.004 l 99.008 199.027 l 99.012
+ 199.047 l 99.012 199.066 l 99.02 199.105 l 99.02 199.129 l 99.027 199.168
+ l 99.027 199.188 l 99.035 199.227 l 99.035 199.25 l 99.039 199.27 l 99.039
+ 199.289 l 99.047 199.328 l 99.047 199.348 l 99.051 199.371 l 99.055 199.391
+ l 99.055 199.41 l 99.059 199.43 l 99.059 199.449 l 99.062 199.469 l 99.066
+ 199.492 l 99.066 199.512 l 99.074 199.551 l 99.074 199.57 l 99.078 199.59
+ l 99.078 199.609 l 99.082 199.629 l 99.086 199.652 l 99.086 199.672 l 99.094
+ 199.711 l 99.094 199.73 l 99.098 199.75 l 99.098 199.77 l 99.102 199.789
+ l 99.105 199.812 l 99.105 199.832 l 99.113 199.871 l 99.113 199.891 l 99.117
+ 199.91 l 99.117 199.93 l 99.125 199.969 l 99.125 199.992 l 99.133 200.031
+ l 99.133 200.051 l 99.141 200.09 l 99.141 200.109 l 99.145 200.129 l 99.145
+ 200.148 l 99.152 200.188 l 99.152 200.207 l 99.156 200.23 l 99.16 200.25
+ l 99.16 200.27 l 99.164 200.289 l 99.164 200.309 l 99.172 200.348 l 99.172
+ 200.367 l 99.18 200.406 l 99.18 200.426 l 99.184 200.445 l 99.184 200.465
+ l 99.191 200.504 l 99.191 200.523 l 99.195 200.543 l 99.199 200.566 l 99.199
+ 200.586 l 99.203 200.605 l 99.203 200.625 l 99.211 200.664 l 99.211 200.684
+ l 99.219 200.723 l 99.219 200.742 l 99.227 200.781 l 99.227 200.801 l 99.23
+ 200.82 l 99.23 200.84 l 99.238 200.879 l 99.238 200.898 l 99.246 200.938
+ l 99.246 200.957 l 99.25 200.977 l 99.25 200.996 l 99.258 201.035 l 99.258
+ 201.055 l 99.266 201.094 l 99.266 201.113 l 99.27 201.133 l 99.27 201.152
+ l 99.277 201.191 l 99.277 201.211 l 99.285 201.25 l 99.285 201.27 l 99.289
+ 201.289 l 99.289 201.309 l 99.293 201.324 l 99.297 201.344 l 99.297 201.363
+ l 99.305 201.402 l 99.305 201.422 l 99.309 201.441 l 99.309 201.461 l 99.316
+ 201.5 l 99.316 201.52 l 99.324 201.559 l 99.324 201.578 l 99.332 201.617
+ l 99.332 201.637 l 99.336 201.656 l 99.336 201.672 l 99.344 201.711 l 99.344
+ 201.73 l 99.352 201.77 l 99.352 201.789 l 99.355 201.809 l 99.355 201.828
+ l 99.363 201.867 l 99.363 201.887 l 99.367 201.902 l 99.371 201.922 l 99.371
+ 201.941 l 99.375 201.961 l 99.375 201.98 l 99.383 202.02 l 99.383 202.039
+ l 99.387 202.059 l 99.391 202.074 l 99.391 202.094 l 99.395 202.113 l 99.395
+ 202.133 l 99.402 202.172 l 99.402 202.191 l 99.406 202.211 l 99.41 202.227
+ l 99.41 202.246 l 99.418 202.285 l 99.418 202.305 l 99.422 202.324 l 99.422
+ 202.344 l 99.426 202.359 l 99.43 202.379 l 99.43 202.398 l 99.438 202.438
+ l 99.438 202.457 l 99.441 202.473 l 99.441 202.492 l 99.449 202.531 l 99.449
+ 202.551 l 99.453 202.57 l 99.457 202.586 l 99.457 202.605 l 99.461 202.625
+ l 99.461 202.645 l 99.469 202.684 l 99.469 202.699 l 99.477 202.738 l 99.477
+ 202.758 l 99.48 202.777 l 99.48 202.793 l 99.488 202.832 l 99.488 202.852
+ l 99.492 202.871 l 99.496 202.887 l 99.496 202.906 l 99.5 202.926 l 99.5
+ 202.945 l 99.504 202.965 l 99.508 202.98 l 99.508 203 l 99.516 203.039 
+l 99.516 203.059 l 99.52 203.074 l 99.523 203.094 l 99.523 203.113 l 99.527
+ 203.133 l 99.527 203.148 l 99.535 203.188 l 99.535 203.207 l 99.539 203.223
+ l 99.543 203.242 l 99.543 203.262 l 99.547 203.281 l 99.547 203.297 l 99.555
+ 203.336 l 99.555 203.355 l 99.559 203.371 l 99.562 203.391 l 99.562 203.41
+ l 99.566 203.43 l 99.566 203.445 l 99.574 203.484 l 99.574 203.504 l 99.578
+ 203.52 l 99.582 203.539 l 99.582 203.559 l 99.586 203.574 l 99.586 203.594
+ l 99.594 203.633 l 99.594 203.648 l 99.602 203.688 l 99.602 203.703 l 99.609
+ 203.742 l 99.609 203.762 l 99.613 203.777 l 99.613 203.797 l 99.617 203.816
+ l 99.621 203.832 l 99.621 203.852 l 99.625 203.871 l 99.629 203.887 l 99.629
+ 203.906 l 99.633 203.926 l 99.633 203.941 l 99.641 203.98 l 99.641 203.996
+ l 99.648 204.035 l 99.648 204.051 l 99.652 204.07 l 99.652 204.09 l 99.656
+ 204.105 l 99.66 204.125 l 99.66 204.145 l 99.664 204.16 l 99.668 204.18
+ l 99.668 204.199 l 99.672 204.215 l 99.672 204.234 l 99.676 204.254 l 99.68
+ 204.27 l 99.68 204.289 l 99.684 204.309 l 99.688 204.324 l 99.688 204.344
+ l 99.691 204.363 l 99.691 204.379 l 99.695 204.398 l 99.699 204.414 l 99.699
+ 204.434 l 99.703 204.453 l 99.707 204.469 l 99.707 204.488 l 99.711 204.508
+ l 99.715 204.523 l 99.715 204.543 l 99.719 204.559 l 99.719 204.578 l 99.723
+ 204.598 l 99.727 204.613 l 99.727 204.633 l 99.73 204.648 l 99.734 204.668
+ l 99.734 204.688 l 99.738 204.703 l 99.738 204.723 l 99.742 204.738 l 99.746
+ 204.758 l 99.746 204.777 l 99.75 204.793 l 99.754 204.812 l 99.754 204.828
+ l 99.758 204.848 l 99.758 204.863 l 99.766 204.902 l 99.766 204.918 l 99.77
+ 204.938 l 99.773 204.953 l 99.773 204.973 l 99.777 204.988 l 99.777 205.008
+ l 99.781 205.023 l 99.785 205.043 l 99.785 205.062 l 99.789 205.078 l 99.793
+ 205.098 l 99.793 205.113 l 99.797 205.133 l 99.801 205.148 l 99.801 205.168
+ l 99.805 205.184 l 99.805 205.203 l 99.809 205.219 l 99.812 205.238 l 99.812
+ 205.258 l 99.816 205.273 l 99.82 205.293 l 99.82 205.309 l 99.824 205.328
+ l 99.824 205.344 l 99.828 205.363 l 99.832 205.379 l 99.832 205.398 l 99.836
+ 205.414 l 99.84 205.434 l 99.84 205.449 l 99.844 205.469 l 99.844 205.484
+ l 99.848 205.504 l 99.852 205.52 l 99.852 205.539 l 99.855 205.555 l 99.859
+ 205.574 l 99.859 205.59 l 99.863 205.609 l 99.863 205.625 l 99.867 205.645
+ l 99.871 205.66 l 99.871 205.68 l 99.875 205.695 l 99.879 205.715 l 99.879
+ 205.73 l 99.883 205.75 l 99.883 205.766 l 99.887 205.781 l 99.891 205.801
+ l 99.891 205.816 l 99.895 205.836 l 99.898 205.852 l 99.898 205.871 l 99.902
+ 205.887 l 99.906 205.906 l 99.906 205.922 l 99.91 205.941 l 99.91 205.957
+ l 99.914 205.977 l 99.918 205.992 l 99.918 206.008 l 99.922 206.027 l 99.926
+ 206.043 l 99.926 206.062 l 99.93 206.078 l 99.93 206.098 l 99.938 206.129
+ l 99.938 206.148 l 99.941 206.164 l 99.945 206.184 l 99.945 206.199 l 99.949
+ 206.219 l 99.949 206.234 l 99.953 206.25 l 99.957 206.27 l 99.957 206.285
+ l 99.961 206.305 l 99.965 206.32 l 99.965 206.336 l 99.969 206.355 l 99.969
+ 206.371 l 99.973 206.391 l 99.977 206.406 l 99.977 206.422 l 99.98 206.441
+ l 99.984 206.457 l 99.984 206.477 l 99.992 206.508 l 99.992 206.527 l 99.996
+ 206.543 l 99.996 206.559 l 100 206.578 l 100.004 206.594 l 100.004 206.613
+ l 100.012 206.645 l 100.012 206.664 l 100.016 206.68 l 100.016 206.695 
+l 100.02 206.715 l 100.023 206.73 l 100.023 206.746 l 100.027 206.766 l 
+100.031 206.781 l 100.031 206.797 l 100.035 206.816 l 100.035 206.832 l 
+100.039 206.848 l 100.043 206.867 l 100.043 206.883 l 100.047 206.902 l 
+100.051 206.918 l 100.051 206.934 l 100.055 206.949 l 100.055 206.969 l 
+100.062 207 l 100.062 207.02 l 100.07 207.051 l 100.07 207.07 l 100.074 
+207.086 l 100.074 207.102 l 100.078 207.121 l 100.082 207.137 l 100.082 
+207.152 l 100.086 207.172 l 100.09 207.188 l 100.09 207.203 l 100.094 207.219
+ l 100.098 207.238 l 100.098 207.254 l 100.102 207.27 l 100.102 207.289 
+l 100.109 207.32 l 100.109 207.336 l 100.113 207.355 l 100.117 207.371 l
+ 100.117 207.387 l 100.121 207.406 l 100.121 207.422 l 100.129 207.453 l
+ 100.129 207.473 l 100.137 207.504 l 100.137 207.52 l 100.141 207.539 l 
+100.141 207.555 l 100.148 207.586 l 100.148 207.605 l 100.156 207.637 l 
+100.156 207.652 l 100.16 207.672 l 100.16 207.688 l 100.168 207.719 l 100.168
+ 207.738 l 100.176 207.77 l 100.176 207.785 l 100.18 207.801 l 100.184 207.82
+ l 100.184 207.836 l 100.188 207.852 l 100.188 207.867 l 100.191 207.887
+ l 100.195 207.902 l 100.195 207.918 l 100.203 207.949 l 100.203 207.969
+ l 100.207 207.984 l 100.207 208 l 100.215 208.031 l 100.215 208.051 l 100.223
+ 208.082 l 100.223 208.098 l 100.227 208.113 l 100.227 208.129 l 100.23 
+208.148 l 100.234 208.164 l 100.234 208.18 l 100.242 208.211 l 100.242 208.23
+ l 100.246 208.246 l 100.246 208.262 l 100.254 208.293 l 100.254 208.309
+ l 100.258 208.328 l 100.262 208.344 l 100.262 208.359 l 100.266 208.375
+ l 100.266 208.391 l 100.273 208.422 l 100.273 208.441 l 100.281 208.473
+ l 100.281 208.488 l 100.289 208.52 l 100.289 208.535 l 100.293 208.551 
+l 100.293 208.57 l 100.301 208.602 l 100.301 208.617 l 100.309 208.648 l
+ 100.309 208.664 l 100.312 208.68 l 100.312 208.699 l 100.32 208.73 l 100.32
+ 208.746 l 100.328 208.777 l 100.328 208.793 l 100.332 208.809 l 100.332
+ 208.824 l 100.336 208.84 l 100.34 208.859 l 100.34 208.875 l 100.348 208.906
+ l 100.348 208.922 l 100.352 208.938 l 100.352 208.953 l 100.359 208.984
+ l 100.359 209 l 100.367 209.031 l 100.367 209.047 l 100.371 209.062 l 100.375
+ 209.082 l 100.375 209.098 l 100.379 209.113 l 100.379 209.129 l 100.387
+ 209.16 l 100.387 209.176 l 100.395 209.207 l 100.395 209.223 l 100.398 
+209.238 l 100.398 209.254 l 100.406 209.285 l 100.406 209.301 l 100.414 
+209.332 l 100.414 209.348 l 100.418 209.363 l 100.418 209.379 l 100.426 
+209.41 l 100.426 209.426 l 100.434 209.457 l 100.434 209.473 l 100.438 209.488
+ l 100.438 209.504 l 100.445 209.535 l 100.445 209.551 l 100.453 209.582
+ l 100.453 209.598 l 100.457 209.613 l 100.457 209.629 l 100.465 209.66 
+l 100.465 209.676 l 100.473 209.707 l 100.473 209.723 l 100.48 209.754 l
+ 100.48 209.77 l 100.484 209.785 l 100.484 209.801 l 100.492 209.832 l 100.492
+ 209.848 l 100.5 209.879 l 100.5 209.895 l 100.504 209.91 l 100.504 209.926
+ l 100.508 209.941 l 100.512 209.953 l 100.512 209.969 l 100.52 210 l 100.52
+ 210.016 l 100.523 210.031 l 100.523 210.047 l 100.531 210.078 l 100.531
+ 210.094 l 100.539 210.125 l 100.539 210.141 l 100.543 210.156 l 100.543
+ 210.168 l 100.551 210.199 l 100.551 210.215 l 100.559 210.246 l 100.559
+ 210.262 l 100.566 210.293 l 100.566 210.309 l 100.57 210.32 l 100.57 210.336
+ l 100.578 210.367 l 100.578 210.383 l 100.586 210.414 l 100.586 210.43 
+l 100.59 210.445 l 100.59 210.457 l 100.598 210.488 l 100.598 210.504 l 
+100.605 210.535 l 100.605 210.551 l 100.609 210.562 l 100.609 210.578 l 
+100.617 210.609 l 100.617 210.625 l 100.625 210.656 l 100.625 210.668 l 
+100.629 210.684 l 100.629 210.699 l 100.637 210.73 l 100.637 210.746 l 100.641
+ 210.758 l 100.645 210.773 l 100.645 210.789 l 100.648 210.805 l 100.648
+ 210.82 l 100.652 210.836 l 100.656 210.848 l 100.656 210.863 l 100.664 
+210.895 l 100.664 210.91 l 100.668 210.922 l 100.672 210.938 l 100.672 210.953
+ l 100.676 210.969 l 100.676 210.984 l 100.68 210.996 l 100.684 211.012 
+l 100.684 211.027 l 100.691 211.059 l 100.691 211.07 l 100.695 211.086 l
+ 100.695 211.102 l 100.703 211.133 l 100.703 211.145 l 100.711 211.176 l
+ 100.711 211.191 l 100.715 211.203 l 100.715 211.219 l 100.723 211.25 l 
+100.723 211.262 l 100.73 211.293 l 100.73 211.309 l 100.734 211.32 l 100.734
+ 211.336 l 100.742 211.367 l 100.742 211.379 l 100.75 211.41 l 100.75 211.426
+ l 100.754 211.438 l 100.758 211.453 l 100.758 211.469 l 100.762 211.484
+ l 100.762 211.496 l 100.77 211.527 l 100.77 211.543 l 100.773 211.555 l
+ 100.777 211.57 l 100.777 211.586 l 100.781 211.598 l 100.781 211.613 l 
+100.789 211.645 l 100.789 211.656 l 100.797 211.688 l 100.797 211.699 l 
+100.801 211.715 l 100.801 211.73 l 100.805 211.742 l 100.809 211.758 l 100.809
+ 211.773 l 100.812 211.785 l 100.816 211.801 l 100.816 211.816 l 100.82 
+211.832 l 100.82 211.844 l 100.828 211.875 l 100.828 211.887 l 100.836 211.918
+ l 100.836 211.93 l 100.84 211.945 l 100.84 211.961 l 100.844 211.973 l 
+100.848 211.988 l 100.848 212.004 l 100.852 212.016 l 100.855 212.031 l 
+100.855 212.043 l 100.863 212.074 l 100.863 212.086 l 100.867 212.102 l 
+100.867 212.117 l 100.871 212.129 l 100.875 212.145 l 100.875 212.16 l 100.879
+ 212.172 l 100.883 212.188 l 100.883 212.199 l 100.887 212.215 l 100.887
+ 212.23 l 100.891 212.242 l 100.895 212.258 l 100.895 212.273 l 100.898 
+212.285 l 100.902 212.301 l 100.902 212.312 l 100.906 212.328 l 100.906 
+212.344 l 100.91 212.355 l 100.914 212.371 l 100.914 212.383 l 100.922 212.414
+ l 100.922 212.426 l 100.926 212.441 l 100.926 212.453 l 100.934 212.484
+ l 100.934 212.496 l 100.938 212.512 l 100.941 212.523 l 100.941 212.539
+ l 100.945 212.551 l 100.949 212.566 l 100.949 212.582 l 100.953 212.594
+ l 100.953 212.609 l 100.957 212.621 l 100.961 212.637 l 100.961 212.648
+ l 100.969 212.68 l 100.969 212.691 l 100.973 212.707 l 100.973 212.719 
+l 100.977 212.734 l 100.98 212.746 l 100.98 212.762 l 100.984 212.773 l 
+100.988 212.789 l 100.988 212.801 l 100.992 212.816 l 100.992 212.828 l 
+101 212.859 l 101 212.871 l 101.004 212.887 l 101.008 212.898 l 101.008 
+212.914 l 101.012 212.926 l 101.012 212.941 l 101.016 212.953 l 101.02 212.969
+ l 101.02 212.98 l 101.023 212.996 l 101.027 213.008 l 101.027 213.023 l
+ 101.031 213.035 l 101.031 213.051 l 101.035 213.062 l 101.039 213.078 l
+ 101.039 213.09 l 101.043 213.105 l 101.047 213.117 l 101.047 213.133 l 
+101.051 213.145 l 101.055 213.16 l 101.055 213.172 l 101.059 213.188 l 101.059
+ 213.199 l 101.062 213.215 l 101.066 213.227 l 101.066 213.238 l 101.07 
+213.254 l 101.074 213.266 l 101.074 213.281 l 101.078 213.293 l 101.078 
+213.309 l 101.082 213.32 l 101.086 213.336 l 101.086 213.348 l 101.09 213.363
+ l 101.094 213.375 l 101.094 213.387 l 101.098 213.402 l 101.098 213.414
+ l 101.102 213.43 l 101.105 213.441 l 101.105 213.457 l 101.109 213.469 
+l 101.113 213.484 l 101.113 213.496 l 101.117 213.508 l 101.117 213.523 
+l 101.121 213.535 l 101.125 213.551 l 101.125 213.562 l 101.129 213.578 
+l 101.133 213.59 l 101.133 213.602 l 101.137 213.617 l 101.141 213.629 l
+ 101.141 213.645 l 101.145 213.656 l 101.145 213.668 l 101.148 213.684 l
+ 101.152 213.695 l 101.152 213.711 l 101.16 213.734 l 101.16 213.75 l 101.164
+ 213.762 l 101.164 213.777 l 101.172 213.801 l 101.172 213.816 l 101.18 
+213.84 l 101.18 213.855 l 101.184 213.867 l 101.184 213.883 l 101.191 213.906
+ l 101.191 213.922 l 101.199 213.945 l 101.199 213.961 l 101.203 213.973
+ l 101.203 213.984 l 101.207 214 l 101.211 214.012 l 101.211 214.027 l 101.219
+ 214.051 l 101.219 214.066 l 101.223 214.078 l 101.223 214.09 l 101.227 
+214.105 l 101.23 214.117 l 101.23 214.129 l 101.234 214.145 l 101.238 214.156
+ l 101.238 214.168 l 101.242 214.184 l 101.246 214.195 l 101.246 214.207
+ l 101.25 214.219 l 101.25 214.234 l 101.258 214.258 l 101.258 214.273 l
+ 101.266 214.297 l 101.266 214.312 l 101.27 214.324 l 101.27 214.336 l 101.273
+ 214.352 l 101.277 214.363 l 101.277 214.375 l 101.281 214.387 l 101.285
+ 214.402 l 101.285 214.414 l 101.289 214.426 l 101.289 214.441 l 101.297
+ 214.465 l 101.297 214.477 l 101.301 214.492 l 101.305 214.504 l 101.305
+ 214.516 l 101.309 214.527 l 101.309 214.543 l 101.316 214.566 l 101.316
+ 214.578 l 101.32 214.594 l 101.324 214.605 l 101.324 214.617 l 101.328 
+214.629 l 101.328 214.645 l 101.336 214.668 l 101.336 214.68 l 101.34 214.695
+ l 101.344 214.707 l 101.344 214.719 l 101.348 214.73 l 101.352 214.746 
+l 101.352 214.758 l 101.355 214.77 l 101.355 214.781 l 101.359 214.797 l
+ 101.363 214.809 l 101.363 214.82 l 101.371 214.844 l 101.371 214.859 l 
+101.375 214.871 l 101.375 214.883 l 101.383 214.906 l 101.383 214.922 l 
+101.391 214.945 l 101.391 214.957 l 101.395 214.969 l 101.395 214.984 l 
+101.402 215.008 l 101.402 215.02 l 101.406 215.031 l 101.41 215.047 l 101.41
+ 215.059 l 101.414 215.07 l 101.414 215.082 l 101.422 215.105 l 101.422 
+215.121 l 101.43 215.145 l 101.43 215.156 l 101.438 215.18 l 101.438 215.195
+ l 101.441 215.207 l 101.441 215.219 l 101.449 215.242 l 101.449 215.254
+ l 101.453 215.266 l 101.457 215.281 l 101.457 215.293 l 101.461 215.305
+ l 101.461 215.316 l 101.469 215.34 l 101.469 215.352 l 101.473 215.367 
+l 101.477 215.379 l 101.477 215.391 l 101.48 215.402 l 101.48 215.414 l 
+101.488 215.438 l 101.488 215.449 l 101.492 215.461 l 101.496 215.477 l 
+101.496 215.488 l 101.5 215.5 l 101.5 215.512 l 101.508 215.535 l 101.508
+ 215.547 l 101.516 215.57 l 101.516 215.582 l 101.52 215.598 l 101.52 215.609
+ l 101.527 215.633 l 101.527 215.645 l 101.535 215.668 l 101.535 215.68 
+l 101.543 215.703 l 101.543 215.715 l 101.547 215.727 l 101.547 215.738 
+l 101.551 215.754 l 101.555 215.766 l 101.555 215.777 l 101.562 215.801 
+l 101.562 215.812 l 101.566 215.824 l 101.566 215.836 l 101.574 215.859 
+l 101.574 215.871 l 101.582 215.895 l 101.582 215.906 l 101.586 215.918 
+l 101.586 215.93 l 101.594 215.953 l 101.594 215.965 l 101.602 215.988 l
+ 101.602 216 l 101.605 216.012 l 101.605 216.023 l 101.613 216.047 l 101.613
+ 216.059 l 101.621 216.082 l 101.621 216.094 l 101.629 216.117 l 101.629
+ 216.129 l 101.633 216.141 l 101.633 216.152 l 101.641 216.176 l 101.641
+ 216.188 l 101.648 216.211 l 101.648 216.223 l 101.652 216.234 l 101.652
+ 216.246 l 101.66 216.27 l 101.66 216.281 l 101.668 216.305 l 101.668 216.316
+ l 101.672 216.328 l 101.672 216.34 l 101.68 216.363 l 101.68 216.375 l 
+101.688 216.398 l 101.688 216.41 l 101.691 216.422 l 101.691 216.434 l 101.695
+ 216.445 l 101.699 216.453 l 101.699 216.465 l 101.707 216.488 l 101.707
+ 216.5 l 101.711 216.512 l 101.711 216.523 l 101.719 216.547 l 101.719 216.559
+ l 101.727 216.582 l 101.727 216.594 l 101.73 216.602 l 101.734 216.613 
+l 101.734 216.625 l 101.738 216.637 l 101.738 216.648 l 101.746 216.672 
+l 101.746 216.684 l 101.754 216.707 l 101.754 216.715 l 101.758 216.727 
+l 101.758 216.738 l 101.766 216.762 l 101.766 216.773 l 101.773 216.797 
+l 101.773 216.805 l 101.777 216.816 l 101.777 216.828 l 101.785 216.852 
+l 101.785 216.863 l 101.793 216.887 l 101.793 216.895 l 101.797 216.906 
+l 101.797 216.918 l 101.805 216.941 l 101.805 216.953 l 101.809 216.965 
+l 101.812 216.973 l 101.812 216.984 l 101.82 217.008 l 101.82 217.02 l 101.824
+ 217.031 l 101.824 217.039 l 101.832 217.062 l 101.832 217.074 l 101.84 
+217.098 l 101.84 217.105 l 101.844 217.117 l 101.844 217.129 l 101.852 217.152
+ l 101.852 217.16 l 101.859 217.184 l 101.859 217.195 l 101.863 217.207 
+l 101.863 217.215 l 101.871 217.238 l 101.871 217.25 l 101.875 217.262 l
+ 101.879 217.27 l 101.879 217.281 l 101.883 217.293 l 101.883 217.305 l 
+101.887 217.312 l 101.891 217.324 l 101.891 217.336 l 101.898 217.359 l 
+101.898 217.367 l 101.902 217.379 l 101.902 217.391 l 101.906 217.402 l 
+101.91 217.41 l 101.91 217.422 l 101.918 217.445 l 101.918 217.453 l 101.926
+ 217.477 l 101.926 217.488 l 101.93 217.496 l 101.93 217.508 l 101.938 217.531
+ l 101.938 217.539 l 101.945 217.562 l 101.945 217.574 l 101.949 217.582
+ l 101.949 217.594 l 101.953 217.605 l 101.957 217.613 l 101.957 217.625
+ l 101.965 217.648 l 101.965 217.656 l 101.969 217.668 l 101.969 217.68 
+l 101.973 217.688 l 101.977 217.699 l 101.977 217.711 l 101.98 217.723 l
+ 101.984 217.73 l 101.984 217.742 l 101.988 217.754 l 101.988 217.762 l 
+101.996 217.785 l 101.996 217.793 l 102.004 217.816 l 102.004 217.828 l 
+102.008 217.836 l 102.012 217.848 l 102.012 217.859 l 102.016 217.867 l 
+102.016 217.879 l 102.02 217.891 l 102.023 217.898 l 102.023 217.91 l 102.027
+ 217.922 l 102.031 217.93 l 102.031 217.941 l 102.035 217.953 l 102.035 
+217.961 l 102.043 217.984 l 102.043 217.992 l 102.047 218.004 l 102.051 
+218.012 l 102.051 218.023 l 102.055 218.035 l 102.055 218.043 l 102.062 
+218.066 l 102.062 218.074 l 102.07 218.098 l 102.07 218.105 l 102.074 218.117
+ l 102.074 218.125 l 102.082 218.148 l 102.082 218.156 l 102.086 218.168
+ l 102.09 218.176 l 102.09 218.188 l 102.094 218.199 l 102.094 218.207 l
+ 102.102 218.23 l 102.102 218.238 l 102.105 218.25 l 102.109 218.258 l 102.109
+ 218.27 l 102.113 218.277 l 102.117 218.289 l 102.117 218.301 l 102.121 
+218.309 l 102.121 218.32 l 102.125 218.328 l 102.129 218.34 l 102.129 218.352
+ l 102.133 218.359 l 102.137 218.371 l 102.137 218.379 l 102.141 218.391
+ l 102.141 218.398 l 102.148 218.422 l 102.148 218.43 l 102.152 218.441 
+l 102.156 218.449 l 102.156 218.461 l 102.16 218.469 l 102.16 218.48 l 102.164
+ 218.488 l 102.168 218.5 l 102.168 218.512 l 102.172 218.52 l 102.176 218.531
+ l 102.176 218.539 l 102.18 218.551 l 102.18 218.559 l 102.184 218.57 l 
+102.188 218.578 l 102.188 218.59 l 102.191 218.598 l 102.195 218.609 l 102.195
+ 218.617 l 102.199 218.629 l 102.203 218.637 l 102.203 218.648 l 102.207
+ 218.66 l 102.207 218.668 l 102.211 218.68 l 102.215 218.688 l 102.215 218.699
+ l 102.219 218.707 l 102.223 218.719 l 102.223 218.727 l 102.227 218.738
+ l 102.227 218.746 l 102.23 218.758 l 102.234 218.766 l 102.234 218.777 
+l 102.242 218.793 l 102.242 218.805 l 102.246 218.812 l 102.246 218.824 
+l 102.25 218.832 l 102.254 218.844 l 102.254 218.852 l 102.258 218.863 l
+ 102.262 218.871 l 102.262 218.883 l 102.266 218.891 l 102.266 218.902 l
+ 102.27 218.91 l 102.273 218.922 l 102.273 218.93 l 102.277 218.941 l 102.281
+ 218.949 l 102.281 218.957 l 102.285 218.969 l 102.285 218.977 l 102.289
+ 218.988 l 102.293 218.996 l 102.293 219.008 l 102.297 219.016 l 102.301
+ 219.027 l 102.301 219.035 l 102.305 219.043 l 102.309 219.055 l 102.309
+ 219.062 l 102.312 219.074 l 102.312 219.082 l 102.316 219.094 l 102.32 
+219.102 l 102.32 219.109 l 102.324 219.121 l 102.328 219.129 l 102.328 219.141
+ l 102.332 219.148 l 102.332 219.156 l 102.336 219.168 l 102.34 219.176 
+l 102.34 219.188 l 102.344 219.195 l 102.348 219.207 l 102.348 219.215 l
+ 102.352 219.223 l 102.352 219.234 l 102.359 219.25 l 102.359 219.262 l 
+102.363 219.27 l 102.367 219.281 l 102.367 219.289 l 102.371 219.297 l 102.371
+ 219.309 l 102.375 219.316 l 102.379 219.328 l 102.379 219.336 l 102.383
+ 219.344 l 102.387 219.355 l 102.387 219.363 l 102.391 219.371 l 102.395
+ 219.383 l 102.395 219.391 l 102.398 219.398 l 102.398 219.41 l 102.402 
+219.418 l 102.406 219.43 l 102.406 219.438 l 102.41 219.445 l 102.414 219.457
+ l 102.414 219.465 l 102.418 219.473 l 102.418 219.484 l 102.426 219.5 l
+ 102.426 219.512 l 102.434 219.527 l 102.434 219.539 l 102.438 219.547 l
+ 102.438 219.555 l 102.441 219.566 l 102.445 219.574 l 102.445 219.582 l
+ 102.449 219.594 l 102.453 219.602 l 102.453 219.609 l 102.457 219.617 l
+ 102.457 219.629 l 102.465 219.645 l 102.465 219.656 l 102.473 219.672 l
+ 102.473 219.684 l 102.477 219.691 l 102.477 219.699 l 102.48 219.707 l 
+102.484 219.719 l 102.484 219.727 l 102.488 219.734 l 102.492 219.746 l 
+102.492 219.754 l 102.5 219.77 l 102.5 219.781 l 102.504 219.789 l 102.504
+ 219.797 l 102.508 219.805 l 102.512 219.816 l 102.512 219.824 l 102.516
+ 219.832 l 102.52 219.844 l 102.52 219.852 l 102.523 219.859 l 102.523 219.867
+ l 102.527 219.879 l 102.531 219.887 l 102.531 219.895 l 102.535 219.902
+ l 102.539 219.914 l 102.539 219.922 l 102.543 219.93 l 102.543 219.938 
+l 102.547 219.945 l 102.551 219.957 l 102.551 219.965 l 102.559 219.98 l
+ 102.559 219.992 l 102.562 220 l 102.562 220.008 l 102.566 220.016 l 102.57
+ 220.027 l 102.57 220.035 l 102.578 220.051 l 102.578 220.059 l 102.582 
+220.07 l 102.586 220.078 l 102.586 220.086 l 102.59 220.094 l 102.59 220.102
+ l 102.594 220.113 l 102.598 220.121 l 102.598 220.129 l 102.605 220.145
+ l 102.605 220.156 l 102.609 220.164 l 102.609 220.172 l 102.617 220.188
+ l 102.617 220.195 l 102.621 220.207 l 102.625 220.215 l 102.625 220.223
+ l 102.629 220.23 l 102.629 220.238 l 102.633 220.246 l 102.637 220.258 
+l 102.637 220.266 l 102.645 220.281 l 102.645 220.289 l 102.648 220.297 
+l 102.648 220.309 l 102.656 220.324 l 102.656 220.332 l 102.664 220.348 
+l 102.664 220.355 l 102.668 220.367 l 102.668 220.375 l 102.676 220.391 
+l 102.676 220.398 l 102.684 220.414 l 102.684 220.422 l 102.688 220.434 
+l 102.691 220.441 l 102.691 220.449 l 102.695 220.457 l 102.695 220.465 
+l 102.703 220.48 l 102.703 220.488 l 102.707 220.5 l 102.711 220.508 l 102.711
+ 220.516 l 102.715 220.523 l 102.715 220.531 l 102.723 220.547 l 102.723
+ 220.555 l 102.73 220.57 l 102.73 220.578 l 102.734 220.59 l 102.734 220.598
+ l 102.742 220.613 l 102.742 220.621 l 102.75 220.637 l 102.75 220.645 l
+ 102.754 220.652 l 102.754 220.66 l 102.762 220.676 l 102.762 220.684 l 
+102.766 220.691 l 102.77 220.703 l 102.77 220.711 l 102.777 220.727 l 102.777
+ 220.734 l 102.781 220.742 l 102.781 220.75 l 102.789 220.766 l 102.789 
+220.773 l 102.797 220.789 l 102.797 220.797 l 102.801 220.805 l 102.801 
+220.812 l 102.809 220.828 l 102.809 220.836 l 102.816 220.852 l 102.816 
+220.859 l 102.82 220.867 l 102.82 220.875 l 102.828 220.891 l 102.828 220.898
+ l 102.836 220.914 l 102.836 220.922 l 102.84 220.93 l 102.84 220.938 l 
+102.848 220.953 l 102.848 220.961 l 102.855 220.977 l 102.855 220.984 l 
+102.859 220.992 l 102.859 221 l 102.867 221.016 l 102.867 221.023 l 102.875
+ 221.039 l 102.875 221.047 l 102.883 221.062 l 102.883 221.07 l 102.887 
+221.078 l 102.887 221.086 l 102.895 221.102 l 102.895 221.109 l 102.902 
+221.125 l 102.902 221.133 l 102.906 221.141 l 102.906 221.145 l 102.914 
+221.16 l 102.914 221.168 l 102.922 221.184 l 102.922 221.191 l 102.926 221.199
+ l 102.926 221.207 l 102.934 221.223 l 102.934 221.23 l 102.941 221.246 
+l 102.941 221.25 l 102.945 221.258 l 102.945 221.266 l 102.953 221.281 l
+ 102.953 221.289 l 102.961 221.305 l 102.961 221.312 l 102.969 221.328 l
+ 102.969 221.332 l 102.973 221.34 l 102.973 221.348 l 102.98 221.363 l 102.98
+ 221.371 l 102.988 221.387 l 102.988 221.395 l 102.992 221.398 l 102.992
+ 221.406 l 103 221.422 l 103 221.43 l 103.008 221.445 l 103.008 221.453 
+l 103.012 221.457 l 103.012 221.465 l 103.02 221.48 l 103.02 221.488 l 103.027
+ 221.504 l 103.027 221.508 l 103.031 221.516 l 103.031 221.523 l 103.039
+ 221.539 l 103.039 221.547 l 103.043 221.551 l 103.047 221.559 l 103.047
+ 221.566 l 103.051 221.574 l 103.051 221.582 l 103.055 221.59 l 103.059 
+221.594 l 103.059 221.602 l 103.066 221.617 l 103.066 221.625 l 103.07 221.629
+ l 103.074 221.637 l 103.074 221.645 l 103.078 221.652 l 103.078 221.66 
+l 103.082 221.668 l 103.086 221.672 l 103.086 221.68 l 103.094 221.695 l
+ 103.094 221.703 l 103.098 221.707 l 103.098 221.715 l 103.105 221.73 l 
+103.105 221.734 l 103.113 221.75 l 103.113 221.758 l 103.117 221.766 l 103.117
+ 221.77 l 103.125 221.785 l 103.125 221.793 l 103.129 221.797 l 103.133 
+221.805 l 103.133 221.812 l 103.137 221.82 l 103.137 221.828 l 103.141 221.832
+ l 103.145 221.84 l 103.145 221.848 l 103.148 221.855 l 103.152 221.859 
+l 103.152 221.867 l 103.16 221.883 l 103.16 221.887 l 103.164 221.895 l 
+103.164 221.902 l 103.168 221.906 l 103.172 221.914 l 103.172 221.922 l 
+103.176 221.93 l 103.18 221.934 l 103.18 221.941 l 103.184 221.949 l 103.184
+ 221.957 l 103.188 221.961 l 103.191 221.969 l 103.191 221.977 l 103.195
+ 221.98 l 103.199 221.988 l 103.199 221.996 l 103.203 222.004 l 103.203 
+222.008 l 103.211 222.023 l 103.211 222.027 l 103.219 222.043 l 103.219 
+222.051 l 103.223 222.055 l 103.223 222.062 l 103.227 222.07 l 103.23 222.074
+ l 103.23 222.082 l 103.234 222.09 l 103.238 222.094 l 103.238 222.102 l
+ 103.242 222.109 l 103.242 222.113 l 103.25 222.129 l 103.25 222.133 l 103.258
+ 222.148 l 103.258 222.152 l 103.266 222.168 l 103.266 222.172 l 103.27 
+222.18 l 103.27 222.188 l 103.273 222.191 l 103.277 222.199 l 103.277 222.207
+ l 103.281 222.211 l 103.285 222.219 l 103.285 222.227 l 103.289 222.23 
+l 103.289 222.238 l 103.293 222.246 l 103.297 222.25 l 103.297 222.258 l
+ 103.301 222.262 l 103.305 222.27 l 103.305 222.277 l 103.309 222.281 l 
+103.309 222.289 l 103.312 222.297 l 103.316 222.301 l 103.316 222.309 l 
+103.32 222.312 l 103.324 222.32 l 103.324 222.328 l 103.328 222.332 l 103.328
+ 222.34 l 103.332 222.344 l 103.336 222.352 l 103.336 222.359 l 103.34 222.363
+ l 103.344 222.371 l 103.344 222.379 l 103.348 222.383 l 103.352 222.391
+ l 103.352 222.395 l 103.355 222.402 l 103.355 222.406 l 103.363 222.422
+ l 103.363 222.426 l 103.367 222.434 l 103.371 222.438 l 103.371 222.445
+ l 103.375 222.453 l 103.375 222.457 l 103.379 222.465 l 103.383 222.469
+ l 103.383 222.477 l 103.387 222.48 l 103.391 222.488 l 103.391 222.496 
+l 103.395 222.5 l 103.395 222.508 l 103.398 222.512 l 103.402 222.52 l 103.402
+ 222.523 l 103.406 222.531 l 103.41 222.535 l 103.41 222.543 l 103.414 222.547
+ l 103.414 222.555 l 103.418 222.562 l 103.422 222.566 l 103.422 222.574
+ l 103.426 222.578 l 103.43 222.586 l 103.43 222.59 l 103.434 222.598 l 
+103.434 222.602 l 103.438 222.609 l 103.441 222.613 l 103.441 222.621 l 
+103.445 222.625 l 103.449 222.633 l 103.449 222.637 l 103.453 222.645 l 
+103.457 222.648 l 103.457 222.656 l 103.461 222.66 l 103.461 222.668 l 103.465
+ 222.672 l 103.469 222.68 l 103.469 222.688 l 103.477 222.695 l 103.477 
+222.703 l 103.48 222.707 l 103.48 222.715 l 103.484 222.719 l 103.488 222.727
+ l 103.488 222.73 l 103.492 222.738 l 103.496 222.742 l 103.496 222.75 l
+ 103.5 222.754 l 103.5 222.762 l 103.504 222.766 l 103.508 222.773 l 103.508
+ 222.777 l 103.512 222.785 l 103.516 222.789 l 103.516 222.797 l 103.52 
+222.801 l 103.52 222.809 l 103.523 222.812 l 103.527 222.82 l 103.527 222.824
+ l 103.531 222.828 l 103.535 222.836 l 103.535 222.84 l 103.539 222.848 
+l 103.543 222.852 l 103.543 222.859 l 103.547 222.863 l 103.547 222.871 
+l 103.555 222.879 l 103.555 222.887 l 103.559 222.891 l 103.562 222.898 
+l 103.562 222.902 l 103.566 222.91 l 103.566 222.914 l 103.57 222.918 l 
+103.574 222.926 l 103.574 222.93 l 103.578 222.938 l 103.582 222.941 l 103.582
+ 222.949 l 103.586 222.953 l 103.586 222.957 l 103.59 222.965 l 103.594 
+222.969 l 103.594 222.977 l 103.602 222.984 l 103.602 222.992 l 103.605 
+222.996 l 103.605 223.004 l 103.613 223.012 l 103.613 223.02 l 103.621 223.027
+ l 103.621 223.035 l 103.625 223.039 l 103.625 223.047 l 103.633 223.055
+ l 103.633 223.062 l 103.641 223.07 l 103.641 223.078 l 103.645 223.082 
+l 103.648 223.09 l 103.648 223.094 l 103.652 223.098 l 103.652 223.105 l
+ 103.66 223.113 l 103.66 223.121 l 103.668 223.129 l 103.668 223.137 l 103.672
+ 223.141 l 103.672 223.145 l 103.676 223.152 l 103.68 223.156 l 103.68 223.164
+ l 103.688 223.172 l 103.688 223.18 l 103.691 223.184 l 103.691 223.188 
+l 103.695 223.195 l 103.699 223.199 l 103.699 223.203 l 103.703 223.207 
+l 103.707 223.215 l 103.707 223.219 l 103.711 223.223 l 103.711 223.23 l
+ 103.719 223.238 l 103.719 223.246 l 103.727 223.254 l 103.727 223.262 l
+ 103.734 223.27 l 103.734 223.273 l 103.738 223.281 l 103.738 223.285 l 
+103.742 223.289 l 103.746 223.297 l 103.746 223.301 l 103.75 223.305 l 103.754
+ 223.312 l 103.754 223.316 l 103.758 223.32 l 103.758 223.324 l 103.762 
+223.332 l 103.766 223.336 l 103.766 223.34 l 103.77 223.344 l 103.773 223.352
+ l 103.773 223.355 l 103.777 223.359 l 103.777 223.367 l 103.785 223.375
+ l 103.785 223.379 l 103.789 223.387 l 103.793 223.391 l 103.793 223.395
+ l 103.797 223.398 l 103.797 223.406 l 103.805 223.414 l 103.805 223.418
+ l 103.809 223.426 l 103.812 223.43 l 103.812 223.434 l 103.816 223.438 
+l 103.816 223.441 l 103.82 223.449 l 103.824 223.453 l 103.824 223.457 l
+ 103.828 223.461 l 103.832 223.469 l 103.832 223.473 l 103.84 223.48 l 103.84
+ 223.488 l 103.844 223.492 l 103.844 223.496 l 103.852 223.504 l 103.852
+ 223.512 l 103.859 223.52 l 103.859 223.523 l 103.863 223.527 l 103.863 
+223.535 l 103.871 223.543 l 103.871 223.547 l 103.875 223.551 l 103.879 
+223.559 l 103.879 223.562 l 103.883 223.566 l 103.883 223.57 l 103.891 223.578
+ l 103.891 223.586 l 103.898 223.594 l 103.898 223.598 l 103.902 223.602
+ l 103.902 223.605 l 103.906 223.613 l 103.91 223.617 l 103.91 223.621 l
+ 103.918 223.629 l 103.918 223.633 l 103.922 223.641 l 103.926 223.645 l
+ 103.926 223.648 l 103.93 223.652 l 103.93 223.656 l 103.934 223.66 l 103.938
+ 223.668 l 103.938 223.672 l 103.945 223.68 l 103.945 223.684 l 103.949 
+223.688 l 103.949 223.691 l 103.953 223.695 l 103.957 223.703 l 103.957 
+223.707 l 103.965 223.715 l 103.965 223.719 l 103.969 223.723 l 103.969 
+223.727 l 103.973 223.73 l 103.977 223.738 l 103.977 223.742 l 103.984 223.75
+ l 103.984 223.754 l 103.988 223.758 l 103.988 223.762 l 103.996 223.77 
+l 103.996 223.777 l 104.004 223.785 l 104.004 223.789 l 104.008 223.793 
+l 104.008 223.797 l 104.016 223.805 l 104.016 223.809 l 104.023 223.816 
+l 104.023 223.824 l 104.031 223.832 l 104.031 223.836 l 104.035 223.84 l
+ 104.035 223.844 l 104.043 223.852 l 104.043 223.855 l 104.051 223.863 l
+ 104.051 223.867 l 104.055 223.871 l 104.055 223.875 l 104.062 223.883 l
+ 104.062 223.891 l 104.07 223.898 l 104.07 223.902 l 104.074 223.906 l 104.074
+ 223.91 l 104.082 223.918 l 104.082 223.922 l 104.09 223.93 l 104.09 223.934
+ l 104.094 223.938 l 104.094 223.941 l 104.102 223.949 l 104.102 223.953
+ l 104.109 223.961 l 104.109 223.965 l 104.113 223.969 l 104.113 223.973
+ l 104.121 223.98 l 104.121 223.984 l 104.129 223.992 l 104.129 223.996 
+l 104.137 224.004 l 104.137 224.008 l 104.141 224.012 l 104.141 224.016 
+l 104.148 224.023 l 104.148 224.027 l 104.156 224.035 l 104.156 224.039 
+l 104.16 224.043 l 104.16 224.047 l 104.168 224.055 l 104.168 224.059 l 
+104.176 224.066 l 104.176 224.07 l 104.18 224.074 l 104.18 224.078 l 104.188
+ 224.086 l 104.188 224.09 l 104.199 224.102 l 104.199 224.105 l 104.207 
+224.113 l 104.207 224.117 l 104.215 224.125 l 104.215 224.129 l 104.223 
+224.137 l 104.223 224.141 l 104.227 224.145 l 104.227 224.148 l 104.242 
+224.164 l 104.242 224.168 l 104.246 224.172 l 104.246 224.176 l 104.254 
+224.184 l 104.254 224.188 l 104.266 224.199 l 104.266 224.203 l 104.273 
+224.211 l 104.273 224.215 l 104.281 224.223 l 104.281 224.227 l 104.293 
+224.238 l 104.293 224.242 l 104.301 224.25 l 104.301 224.254 l 104.312 224.266
+ l 104.312 224.27 l 104.32 224.277 l 104.32 224.281 l 104.324 224.281 l 
+104.328 224.285 l 104.328 224.289 l 104.332 224.293 l 104.332 224.297 l 
+104.348 224.312 l 104.348 224.316 l 104.352 224.32 l 104.352 224.324 l 104.355
+ 224.324 l 104.359 224.328 l 104.359 224.332 l 104.367 224.34 l 104.367 
+224.344 l 104.371 224.344 l 104.371 224.348 l 104.379 224.355 l 104.379 
+224.359 l 104.383 224.359 l 104.387 224.363 l 104.387 224.367 l 104.391 
+224.371 l 104.391 224.375 l 104.395 224.379 l 104.398 224.379 l 104.398 
+224.383 l 104.406 224.391 l 104.406 224.395 l 104.41 224.395 l 104.414 224.398
+ l 104.414 224.402 l 104.426 224.414 l 104.426 224.418 l 104.43 224.422 
+l 104.434 224.422 l 104.434 224.426 l 104.438 224.43 l 104.438 224.434 l
+ 104.441 224.434 l 104.445 224.438 l 104.445 224.441 l 104.457 224.453 l
+ 104.457 224.457 l 104.461 224.461 l 104.465 224.461 l 104.465 224.465 l
+ 104.477 224.477 l 104.477 224.48 l 104.48 224.484 l 104.484 224.484 l 104.484
+ 224.488 l 104.496 224.5 l 104.496 224.504 l 104.5 224.504 l 104.504 224.508
+ l 104.504 224.512 l 104.508 224.516 l 104.512 224.516 l 104.512 224.52 
+l 104.523 224.531 l 104.523 224.535 l 104.527 224.535 l 104.531 224.539 
+l 104.531 224.543 l 104.535 224.543 l 104.539 224.547 l 104.539 224.551 
+l 104.562 224.574 l 104.562 224.578 l 104.566 224.578 l 104.57 224.582 l
+ 104.57 224.586 l 104.574 224.59 l 104.578 224.59 l 104.578 224.594 l 104.602
+ 224.617 l 104.605 224.617 l 104.605 224.621 l 104.629 224.645 l 104.629
+ 224.648 l 104.633 224.648 l 104.648 224.664 l 104.648 224.668 l 104.652
+ 224.668 l 104.691 224.707 l 104.695 224.707 l 104.695 224.711 l 104.699
+ 224.715 l 104.703 224.715 l 104.703 224.719 l 104.707 224.719 l 104.711
+ 224.723 l 104.711 224.727 l 104.715 224.727 l 104.715 224.73 l 104.719 
+224.73 l 104.738 224.75 l 104.742 224.75 l 104.742 224.754 l 104.746 224.754
+ l 104.75 224.758 l 104.75 224.762 l 104.754 224.762 l 104.754 224.766 l
+ 104.758 224.766 l 104.766 224.773 l 104.77 224.773 l 104.77 224.777 l 104.773
+ 224.777 l 104.773 224.781 l 104.777 224.781 l 104.781 224.785 l 104.781
+ 224.789 l 104.785 224.789 l 104.793 224.797 l 104.797 224.797 l 104.797
+ 224.801 l 104.801 224.801 l 104.801 224.805 l 104.805 224.805 l 104.812
+ 224.812 l 104.816 224.812 l 104.816 224.816 l 104.82 224.816 l 104.82 224.82
+ l 104.824 224.82 l 104.832 224.828 l 104.836 224.828 l 104.836 224.832 
+l 104.84 224.832 l 104.84 224.836 l 104.844 224.836 l 104.852 224.844 l 
+104.855 224.844 l 104.855 224.848 l 104.859 224.848 l 104.859 224.852 l 
+104.867 224.852 l 104.867 224.855 l 104.871 224.855 l 104.883 224.867 l 
+104.887 224.867 l 104.887 224.871 l 104.891 224.871 l 104.895 224.875 l 
+104.898 224.875 l 104.91 224.887 l 104.914 224.887 l 104.918 224.891 l 104.922
+ 224.891 l 104.922 224.895 l 104.926 224.895 l 104.926 224.898 l 104.934
+ 224.898 l 104.934 224.902 l 104.938 224.902 l 104.945 224.91 l 104.949 
+224.91 l 104.957 224.918 l 104.961 224.918 l 104.969 224.926 l 104.973 224.926
+ l 104.977 224.93 l 104.98 224.93 l 104.98 224.934 l 104.988 224.934 l 104.988
+ 224.938 l 104.992 224.938 l 104.996 224.941 l 105 224.941 l 105 224.945
+ l 105.008 224.945 l 105.008 224.949 l 105.012 224.949 l 105.016 224.953
+ l 105.02 224.953 l 105.02 224.957 l 105.027 224.957 l 105.027 224.961 l
+ 105.031 224.961 l 105.035 224.965 l 105.039 224.965 l 105.043 224.969 l
+ 105.047 224.969 l 105.051 224.973 l 105.055 224.973 l 105.059 224.977 l
+ 105.062 224.977 l 105.066 224.98 l 105.07 224.98 l 105.07 224.984 l 105.078
+ 224.984 l 105.078 224.988 l 105.086 224.988 l 105.086 224.992 l 105.094
+ 224.992 l 105.094 224.996 l 105.098 224.996 l 105.102 225 l 105.109 225
+ l 105.113 225.004 l 105.117 225.004 l 105.117 225.008 l 105.125 225.008
+ l 105.129 225.012 l 105.133 225.012 l 105.137 225.016 l 105.145 225.016
+ l 105.145 225.02 l 105.152 225.02 l 105.152 225.023 l 105.16 225.023 l 
+105.164 225.027 l 105.172 225.027 l 105.172 225.031 l 105.18 225.031 l 105.184
+ 225.035 l 105.191 225.035 l 105.191 225.039 l 105.199 225.039 l 105.203
+ 225.043 l 105.211 225.043 l 105.211 225.047 l 105.223 225.047 l 105.223
+ 225.051 l 105.23 225.051 l 105.234 225.055 l 105.242 225.055 l 105.246 
+225.059 l 105.258 225.059 l 105.258 225.062 l 105.27 225.062 l 105.27 225.066
+ l 105.285 225.066 l 105.285 225.07 l 105.297 225.07 l 105.297 225.074 l
+ 105.309 225.074 l 105.312 225.078 l 105.328 225.078 l 105.328 225.082 l
+ 105.344 225.082 l 105.348 225.086 l 105.363 225.086 l 105.363 225.09 l 
+105.383 225.09 l 105.383 225.094 l 105.406 225.094 l 105.41 225.098 l 105.434
+ 225.098 l 105.434 225.102 l 105.469 225.102 l 105.469 225.105 l 105.641
+ 225.105 l 105.641 225.102 l 105.676 225.102 l 105.68 225.098 l 105.703 
+225.098 l 105.707 225.094 l 105.727 225.094 l 105.73 225.09 l 105.746 225.09
+ l 105.75 225.086 l 105.766 225.086 l 105.77 225.082 l 105.785 225.082 l
+ 105.785 225.078 l 105.797 225.078 l 105.801 225.074 l 105.812 225.074 l
+ 105.816 225.07 l 105.828 225.07 l 105.832 225.066 l 105.84 225.066 l 105.844
+ 225.062 l 105.855 225.062 l 105.859 225.059 l 105.867 225.059 l 105.871
+ 225.055 l 105.879 225.055 l 105.883 225.051 l 105.891 225.051 l 105.891
+ 225.047 l 105.902 225.047 l 105.902 225.043 l 105.91 225.043 l 105.914 
+225.039 l 105.922 225.039 l 105.922 225.035 l 105.934 225.035 l 105.938 
+225.031 l 105.945 225.031 l 105.945 225.027 l 105.953 225.027 l 105.957 
+225.023 l 105.961 225.023 l 105.965 225.02 l 105.969 225.02 l 105.973 225.016
+ l 105.98 225.016 l 105.984 225.012 l 105.988 225.012 l 105.988 225.008 
+l 105.996 225.008 l 106 225.004 l 106.004 225.004 l 106.008 225 l 106.016
+ 225 l 106.016 224.996 l 106.023 224.996 l 106.023 224.992 l 106.031 224.992
+ l 106.035 224.988 l 106.039 224.988 l 106.043 224.984 l 106.047 224.984
+ l 106.051 224.98 l 106.055 224.98 l 106.055 224.977 l 106.062 224.977 l
+ 106.062 224.973 l 106.07 224.973 l 106.07 224.969 l 106.074 224.969 l 106.078
+ 224.965 l 106.082 224.965 l 106.086 224.961 l 106.09 224.961 l 106.094 
+224.957 l 106.098 224.957 l 106.102 224.953 l 106.105 224.953 l 106.109 
+224.949 l 106.113 224.949 l 106.113 224.945 l 106.117 224.945 l 106.121 
+224.941 l 106.125 224.941 l 106.129 224.938 l 106.133 224.938 l 106.137 
+224.934 l 106.141 224.934 l 106.141 224.93 l 106.145 224.93 l 106.148 224.926
+ l 106.152 224.926 l 106.156 224.922 l 106.16 224.922 l 106.16 224.918 l
+ 106.164 224.918 l 106.168 224.914 l 106.172 224.914 l 106.18 224.906 l 
+106.184 224.906 l 106.191 224.898 l 106.195 224.898 l 106.203 224.891 l 
+106.207 224.891 l 106.207 224.887 l 106.215 224.887 l 106.215 224.883 l 
+106.219 224.883 l 106.219 224.879 l 106.227 224.879 l 106.227 224.875 l 
+106.23 224.875 l 106.238 224.867 l 106.242 224.867 l 106.25 224.859 l 106.254
+ 224.859 l 106.254 224.855 l 106.258 224.855 l 106.262 224.852 l 106.266
+ 224.852 l 106.266 224.848 l 106.27 224.848 l 106.277 224.84 l 106.281 224.84
+ l 106.281 224.836 l 106.285 224.836 l 106.285 224.832 l 106.289 224.832
+ l 106.293 224.828 l 106.297 224.828 l 106.309 224.816 l 106.312 224.816
+ l 106.312 224.812 l 106.316 224.812 l 106.324 224.805 l 106.328 224.805
+ l 106.328 224.801 l 106.332 224.801 l 106.332 224.797 l 106.336 224.797
+ l 106.344 224.789 l 106.348 224.789 l 106.348 224.785 l 106.352 224.785
+ l 106.352 224.781 l 106.355 224.781 l 106.363 224.773 l 106.367 224.773
+ l 106.367 224.77 l 106.371 224.77 l 106.371 224.766 l 106.375 224.766 l
+ 106.383 224.758 l 106.387 224.758 l 106.387 224.754 l 106.391 224.754 l
+ 106.391 224.75 l 106.395 224.75 l 106.398 224.746 l 106.398 224.742 l 106.402
+ 224.742 l 106.414 224.73 l 106.418 224.73 l 106.418 224.727 l 106.422 224.727
+ l 106.441 224.707 l 106.445 224.707 l 106.445 224.703 l 106.449 224.703
+ l 106.453 224.699 l 106.453 224.695 l 106.457 224.695 l 106.457 224.691
+ l 106.461 224.691 l 106.48 224.672 l 106.484 224.672 l 106.484 224.668 
+l 106.488 224.664 l 106.492 224.664 l 106.492 224.66 l 106.496 224.66 l 
+106.496 224.656 l 106.5 224.652 l 106.504 224.652 l 106.504 224.648 l 106.508
+ 224.648 l 106.512 224.645 l 106.512 224.641 l 106.516 224.641 l 106.523
+ 224.633 l 106.523 224.629 l 106.527 224.629 l 106.543 224.613 l 106.543
+ 224.609 l 106.547 224.609 l 106.562 224.594 l 106.562 224.59 l 106.566 
+224.59 l 106.582 224.574 l 106.582 224.57 l 106.586 224.57 l 106.59 224.566
+ l 106.59 224.562 l 106.594 224.562 l 106.602 224.555 l 106.602 224.551 
+l 106.605 224.551 l 106.609 224.547 l 106.609 224.543 l 106.613 224.543 
+l 106.617 224.539 l 106.617 224.535 l 106.621 224.535 l 106.625 224.531 
+l 106.625 224.527 l 106.629 224.527 l 106.629 224.523 l 106.633 224.52 l
+ 106.637 224.52 l 106.637 224.516 l 106.641 224.512 l 106.645 224.512 l 
+106.645 224.508 l 106.656 224.496 l 106.656 224.492 l 106.66 224.492 l 106.664
+ 224.488 l 106.664 224.484 l 106.668 224.484 l 106.668 224.48 l 106.672 
+224.477 l 106.676 224.477 l 106.676 224.473 l 106.68 224.469 l 106.684 224.469
+ l 106.684 224.465 l 106.688 224.461 l 106.688 224.457 l 106.691 224.457
+ l 106.695 224.453 l 106.695 224.449 l 106.699 224.449 l 106.703 224.445
+ l 106.703 224.441 l 106.707 224.438 l 106.711 224.438 l 106.711 224.434
+ l 106.723 224.422 l 106.723 224.418 l 106.727 224.418 l 106.73 224.414 
+l 106.73 224.41 l 106.75 224.391 l 106.75 224.387 l 106.754 224.387 l 106.754
+ 224.383 l 106.77 224.367 l 106.77 224.363 l 106.773 224.363 l 106.773 224.359
+ l 106.789 224.344 l 106.789 224.34 l 106.793 224.34 l 106.793 224.336 l
+ 106.801 224.328 l 106.801 224.324 l 106.805 224.324 l 106.809 224.32 l 
+106.809 224.316 l 106.812 224.312 l 106.816 224.312 l 106.816 224.309 l 
+106.82 224.305 l 106.82 224.301 l 106.824 224.301 l 106.828 224.297 l 106.828
+ 224.293 l 106.84 224.281 l 106.84 224.277 l 106.855 224.262 l 106.855 224.258
+ l 106.867 224.246 l 106.867 224.242 l 106.871 224.238 l 106.875 224.238
+ l 106.875 224.234 l 106.879 224.23 l 106.879 224.227 l 106.895 224.211 
+l 106.895 224.207 l 106.906 224.195 l 106.906 224.191 l 106.922 224.176 
+l 106.922 224.172 l 106.926 224.168 l 106.926 224.164 l 106.93 224.164 l
+ 106.934 224.16 l 106.934 224.156 l 106.941 224.148 l 106.941 224.145 l 
+106.953 224.133 l 106.953 224.129 l 106.961 224.121 l 106.961 224.117 l 
+106.965 224.117 l 106.965 224.113 l 106.973 224.105 l 106.973 224.102 l 
+106.984 224.09 l 106.984 224.086 l 106.992 224.078 l 106.992 224.074 l 107.008
+ 224.059 l 107.008 224.055 l 107.012 224.051 l 107.012 224.047 l 107.02 
+224.039 l 107.02 224.035 l 107.023 224.035 l 107.027 224.031 l 107.027 224.027
+ l 107.031 224.023 l 107.031 224.02 l 107.039 224.012 l 107.039 224.008 
+l 107.047 224 l 107.047 223.996 l 107.051 223.996 l 107.051 223.992 l 107.059
+ 223.984 l 107.059 223.98 l 107.066 223.973 l 107.066 223.969 l 107.07 223.965
+ l 107.07 223.961 l 107.086 223.945 l 107.086 223.941 l 107.09 223.938 l
+ 107.09 223.934 l 107.098 223.926 l 107.098 223.922 l 107.105 223.914 l 
+107.105 223.91 l 107.113 223.902 l 107.113 223.898 l 107.125 223.887 l 107.125
+ 223.883 l 107.133 223.875 l 107.133 223.871 l 107.137 223.867 l 107.137
+ 223.863 l 107.145 223.855 l 107.145 223.852 l 107.152 223.844 l 107.152
+ 223.84 l 107.156 223.836 l 107.156 223.832 l 107.164 223.824 l 107.164 
+223.82 l 107.172 223.812 l 107.172 223.809 l 107.176 223.805 l 107.176 223.801
+ l 107.184 223.793 l 107.184 223.789 l 107.191 223.781 l 107.191 223.777
+ l 107.199 223.77 l 107.199 223.766 l 107.203 223.762 l 107.203 223.758 
+l 107.211 223.75 l 107.211 223.746 l 107.219 223.738 l 107.219 223.734 l
+ 107.223 223.73 l 107.223 223.727 l 107.23 223.719 l 107.23 223.715 l 107.238
+ 223.707 l 107.238 223.703 l 107.242 223.699 l 107.242 223.695 l 107.25 
+223.688 l 107.25 223.684 l 107.258 223.676 l 107.258 223.672 l 107.262 223.668
+ l 107.262 223.664 l 107.27 223.656 l 107.27 223.652 l 107.277 223.645 l
+ 107.277 223.641 l 107.281 223.637 l 107.281 223.633 l 107.289 223.625 l
+ 107.289 223.621 l 107.297 223.613 l 107.297 223.609 l 107.305 223.602 l
+ 107.305 223.594 l 107.309 223.59 l 107.309 223.586 l 107.316 223.578 l 
+107.316 223.574 l 107.324 223.566 l 107.324 223.562 l 107.328 223.559 l 
+107.328 223.555 l 107.336 223.547 l 107.336 223.543 l 107.344 223.535 l 
+107.344 223.527 l 107.348 223.523 l 107.348 223.52 l 107.355 223.512 l 107.355
+ 223.508 l 107.363 223.5 l 107.363 223.496 l 107.367 223.492 l 107.367 223.488
+ l 107.375 223.48 l 107.375 223.473 l 107.383 223.465 l 107.383 223.461 
+l 107.391 223.453 l 107.391 223.449 l 107.395 223.445 l 107.395 223.441 
+l 107.398 223.438 l 107.402 223.43 l 107.402 223.426 l 107.41 223.418 l 
+107.41 223.414 l 107.414 223.41 l 107.414 223.406 l 107.422 223.398 l 107.422
+ 223.391 l 107.43 223.383 l 107.43 223.379 l 107.434 223.375 l 107.434 223.371
+ l 107.441 223.363 l 107.441 223.359 l 107.445 223.352 l 107.449 223.348
+ l 107.449 223.344 l 107.453 223.34 l 107.453 223.336 l 107.461 223.328 
+l 107.461 223.32 l 107.469 223.312 l 107.469 223.309 l 107.473 223.305 l
+ 107.473 223.301 l 107.477 223.297 l 107.48 223.289 l 107.48 223.285 l 107.488
+ 223.277 l 107.488 223.273 l 107.496 223.266 l 107.496 223.258 l 107.5 223.254
+ l 107.5 223.25 l 107.508 223.242 l 107.508 223.238 l 107.512 223.23 l 107.516
+ 223.227 l 107.516 223.223 l 107.52 223.219 l 107.52 223.215 l 107.523 223.211
+ l 107.527 223.203 l 107.527 223.199 l 107.535 223.191 l 107.535 223.188
+ l 107.539 223.184 l 107.539 223.176 l 107.547 223.168 l 107.547 223.164
+ l 107.555 223.156 l 107.555 223.148 l 107.559 223.145 l 107.559 223.141
+ l 107.566 223.133 l 107.566 223.125 l 107.574 223.117 l 107.574 223.113
+ l 107.578 223.109 l 107.582 223.102 l 107.582 223.098 l 107.586 223.094
+ l 107.586 223.09 l 107.59 223.086 l 107.594 223.078 l 107.594 223.074 l
+ 107.602 223.066 l 107.602 223.062 l 107.605 223.055 l 107.605 223.051 l
+ 107.613 223.043 l 107.613 223.039 l 107.617 223.031 l 107.621 223.027 l
+ 107.621 223.023 l 107.625 223.02 l 107.625 223.012 l 107.633 223.004 l 
+107.633 223 l 107.637 222.996 l 107.641 222.988 l 107.641 222.984 l 107.645
+ 222.98 l 107.645 222.977 l 107.648 222.969 l 107.652 222.965 l 107.652 
+222.961 l 107.656 222.957 l 107.66 222.949 l 107.66 222.945 l 107.664 222.941
+ l 107.664 222.938 l 107.668 222.93 l 107.672 222.926 l 107.672 222.922 
+l 107.676 222.918 l 107.68 222.91 l 107.68 222.906 l 107.688 222.898 l 107.688
+ 222.891 l 107.691 222.887 l 107.691 222.883 l 107.695 222.879 l 107.699
+ 222.871 l 107.699 222.867 l 107.707 222.859 l 107.707 222.852 l 107.711
+ 222.848 l 107.711 222.844 l 107.715 222.84 l 107.719 222.832 l 107.719 
+222.828 l 107.727 222.82 l 107.727 222.812 l 107.73 222.809 l 107.73 222.805
+ l 107.734 222.797 l 107.738 222.793 l 107.738 222.789 l 107.742 222.785
+ l 107.746 222.777 l 107.746 222.773 l 107.75 222.77 l 107.75 222.762 l 
+107.758 222.754 l 107.758 222.75 l 107.762 222.742 l 107.766 222.738 l 107.766
+ 222.734 l 107.77 222.727 l 107.773 222.723 l 107.773 222.719 l 107.777 
+222.711 l 107.777 222.707 l 107.785 222.699 l 107.785 222.691 l 107.793 
+222.684 l 107.793 222.676 l 107.797 222.672 l 107.797 222.668 l 107.801 
+222.66 l 107.805 222.656 l 107.805 222.652 l 107.809 222.645 l 107.812 222.641
+ l 107.812 222.637 l 107.816 222.633 l 107.816 222.625 l 107.824 222.617
+ l 107.824 222.609 l 107.832 222.602 l 107.832 222.594 l 107.836 222.59 
+l 107.836 222.586 l 107.84 222.578 l 107.844 222.574 l 107.844 222.57 l 
+107.848 222.562 l 107.852 222.559 l 107.852 222.555 l 107.855 222.547 l 
+107.855 222.543 l 107.859 222.539 l 107.863 222.531 l 107.863 222.527 l 
+107.867 222.523 l 107.871 222.516 l 107.871 222.512 l 107.875 222.504 l 
+107.879 222.5 l 107.879 222.496 l 107.883 222.488 l 107.883 222.484 l 107.887
+ 222.48 l 107.891 222.473 l 107.891 222.469 l 107.895 222.465 l 107.898 
+222.457 l 107.898 222.453 l 107.902 222.449 l 107.902 222.441 l 107.906 
+222.438 l 107.91 222.43 l 107.91 222.426 l 107.914 222.422 l 107.918 222.414
+ l 107.918 222.41 l 107.922 222.406 l 107.922 222.398 l 107.926 222.395 
+l 107.93 222.387 l 107.93 222.383 l 107.934 222.379 l 107.938 222.371 l 
+107.938 222.367 l 107.941 222.363 l 107.941 222.355 l 107.945 222.352 l 
+107.949 222.344 l 107.949 222.34 l 107.953 222.336 l 107.957 222.328 l 107.957
+ 222.324 l 107.961 222.316 l 107.965 222.312 l 107.965 222.309 l 107.969
+ 222.301 l 107.969 222.297 l 107.973 222.293 l 107.977 222.285 l 107.977
+ 222.281 l 107.98 222.273 l 107.984 222.27 l 107.984 222.262 l 107.988 222.258
+ l 107.988 222.254 l 107.992 222.246 l 107.996 222.242 l 107.996 222.234
+ l 108.004 222.227 l 108.004 222.219 l 108.008 222.215 l 108.008 222.207
+ l 108.016 222.199 l 108.016 222.191 l 108.02 222.188 l 108.023 222.18 l
+ 108.023 222.176 l 108.027 222.168 l 108.027 222.164 l 108.031 222.16 l 
+108.035 222.152 l 108.035 222.148 l 108.039 222.141 l 108.043 222.137 l 
+108.043 222.129 l 108.047 222.125 l 108.047 222.121 l 108.051 222.113 l 
+108.055 222.109 l 108.055 222.102 l 108.059 222.098 l 108.062 222.09 l 108.062
+ 222.086 l 108.066 222.078 l 108.07 222.074 l 108.07 222.07 l 108.074 222.062
+ l 108.074 222.059 l 108.078 222.051 l 108.082 222.047 l 108.082 222.039
+ l 108.086 222.035 l 108.09 222.027 l 108.09 222.023 l 108.094 222.016 l
+ 108.094 222.012 l 108.098 222.008 l 108.102 222 l 108.102 221.996 l 108.105
+ 221.988 l 108.109 221.984 l 108.109 221.977 l 108.113 221.973 l 108.113
+ 221.965 l 108.117 221.961 l 108.121 221.953 l 108.121 221.949 l 108.125
+ 221.941 l 108.129 221.938 l 108.129 221.93 l 108.133 221.926 l 108.133 
+221.922 l 108.137 221.914 l 108.141 221.91 l 108.141 221.902 l 108.145 221.898
+ l 108.148 221.891 l 108.148 221.887 l 108.152 221.879 l 108.156 221.875
+ l 108.156 221.867 l 108.16 221.863 l 108.16 221.855 l 108.164 221.852 l
+ 108.168 221.844 l 108.168 221.84 l 108.172 221.832 l 108.176 221.828 l 
+108.176 221.82 l 108.18 221.816 l 108.18 221.809 l 108.184 221.805 l 108.188
+ 221.797 l 108.188 221.793 l 108.191 221.785 l 108.195 221.781 l 108.195
+ 221.773 l 108.199 221.77 l 108.199 221.762 l 108.203 221.758 l 108.207 
+221.75 l 108.207 221.746 l 108.211 221.738 l 108.215 221.734 l 108.215 221.727
+ l 108.219 221.723 l 108.219 221.715 l 108.223 221.711 l 108.227 221.703
+ l 108.227 221.695 l 108.23 221.691 l 108.234 221.684 l 108.234 221.68 l
+ 108.238 221.672 l 108.238 221.668 l 108.242 221.66 l 108.246 221.656 l 
+108.246 221.648 l 108.25 221.645 l 108.254 221.637 l 108.254 221.633 l 108.258
+ 221.625 l 108.262 221.621 l 108.262 221.613 l 108.266 221.605 l 108.266
+ 221.602 l 108.27 221.594 l 108.273 221.59 l 108.273 221.582 l 108.277 221.578
+ l 108.281 221.57 l 108.281 221.566 l 108.285 221.559 l 108.285 221.555 
+l 108.293 221.539 l 108.293 221.535 l 108.297 221.527 l 108.301 221.523 
+l 108.301 221.516 l 108.305 221.512 l 108.305 221.504 l 108.309 221.5 l 
+108.312 221.492 l 108.312 221.484 l 108.316 221.48 l 108.32 221.473 l 108.32
+ 221.469 l 108.324 221.461 l 108.324 221.457 l 108.332 221.441 l 108.332
+ 221.438 l 108.336 221.43 l 108.34 221.426 l 108.34 221.418 l 108.344 221.414
+ l 108.348 221.406 l 108.348 221.398 l 108.352 221.395 l 108.352 221.387
+ l 108.355 221.383 l 108.359 221.375 l 108.359 221.367 l 108.363 221.363
+ l 108.367 221.355 l 108.367 221.352 l 108.371 221.344 l 108.371 221.34 
+l 108.379 221.324 l 108.379 221.32 l 108.383 221.312 l 108.387 221.309 l
+ 108.387 221.301 l 108.391 221.293 l 108.391 221.289 l 108.395 221.281 l
+ 108.398 221.277 l 108.398 221.27 l 108.402 221.262 l 108.406 221.258 l 
+108.406 221.25 l 108.41 221.242 l 108.41 221.238 l 108.414 221.23 l 108.418
+ 221.227 l 108.418 221.219 l 108.422 221.211 l 108.426 221.207 l 108.426
+ 221.199 l 108.43 221.195 l 108.43 221.188 l 108.434 221.18 l 108.438 221.176
+ l 108.438 221.168 l 108.441 221.16 l 108.445 221.156 l 108.445 221.148 
+l 108.449 221.145 l 108.453 221.137 l 108.453 221.129 l 108.457 221.125 
+l 108.457 221.117 l 108.461 221.109 l 108.465 221.105 l 108.465 221.098 
+l 108.469 221.094 l 108.473 221.086 l 108.473 221.078 l 108.477 221.074 
+l 108.477 221.066 l 108.48 221.059 l 108.484 221.055 l 108.484 221.047 l
+ 108.488 221.039 l 108.492 221.035 l 108.492 221.027 l 108.496 221.02 l 
+108.496 221.016 l 108.504 221 l 108.504 220.996 l 108.508 220.988 l 108.512
+ 220.984 l 108.512 220.977 l 108.516 220.969 l 108.516 220.965 l 108.523
+ 220.949 l 108.523 220.945 l 108.531 220.93 l 108.531 220.926 l 108.539 
+220.91 l 108.539 220.906 l 108.543 220.898 l 108.543 220.891 l 108.547 220.887
+ l 108.551 220.879 l 108.551 220.871 l 108.555 220.867 l 108.559 220.859
+ l 108.559 220.852 l 108.562 220.844 l 108.562 220.84 l 108.57 220.824 l
+ 108.57 220.82 l 108.578 220.805 l 108.578 220.801 l 108.582 220.793 l 108.582
+ 220.785 l 108.586 220.781 l 108.59 220.773 l 108.59 220.766 l 108.594 220.762
+ l 108.598 220.754 l 108.598 220.746 l 108.602 220.738 l 108.602 220.734
+ l 108.609 220.719 l 108.609 220.715 l 108.617 220.699 l 108.617 220.695
+ l 108.621 220.688 l 108.621 220.68 l 108.625 220.672 l 108.629 220.668 
+l 108.629 220.66 l 108.633 220.652 l 108.637 220.648 l 108.637 220.641 l
+ 108.645 220.625 l 108.645 220.621 l 108.648 220.613 l 108.648 220.605 l
+ 108.652 220.602 l 108.656 220.594 l 108.656 220.586 l 108.66 220.578 l 
+108.664 220.574 l 108.664 220.566 l 108.668 220.559 l 108.668 220.551 l 
+108.672 220.547 l 108.676 220.539 l 108.676 220.531 l 108.68 220.527 l 108.684
+ 220.52 l 108.684 220.512 l 108.688 220.504 l 108.688 220.5 l 108.695 220.484
+ l 108.695 220.477 l 108.699 220.473 l 108.703 220.465 l 108.703 220.457
+ l 108.707 220.449 l 108.707 220.445 l 108.715 220.43 l 108.715 220.422 
+l 108.719 220.418 l 108.723 220.41 l 108.723 220.402 l 108.727 220.395 l
+ 108.73 220.391 l 108.73 220.383 l 108.734 220.375 l 108.734 220.367 l 108.738
+ 220.363 l 108.742 220.355 l 108.742 220.348 l 108.746 220.34 l 108.75 220.336
+ l 108.75 220.328 l 108.754 220.32 l 108.754 220.312 l 108.758 220.305 l
+ 108.762 220.301 l 108.762 220.293 l 108.77 220.277 l 108.77 220.273 l 108.773
+ 220.266 l 108.773 220.258 l 108.781 220.242 l 108.781 220.238 l 108.789
+ 220.223 l 108.789 220.215 l 108.793 220.211 l 108.793 220.203 l 108.801
+ 220.188 l 108.801 220.18 l 108.805 220.176 l 108.809 220.168 l 108.809 
+220.16 l 108.812 220.152 l 108.812 220.145 l 108.816 220.141 l 108.82 220.133
+ l 108.82 220.125 l 108.828 220.109 l 108.828 220.105 l 108.836 220.09 l
+ 108.836 220.082 l 108.84 220.074 l 108.84 220.07 l 108.848 220.055 l 108.848
+ 220.047 l 108.852 220.039 l 108.855 220.035 l 108.855 220.027 l 108.859
+ 220.02 l 108.859 220.012 l 108.863 220.004 l 108.867 220 l 108.867 219.992
+ l 108.875 219.977 l 108.875 219.969 l 108.879 219.961 l 108.879 219.957
+ l 108.887 219.941 l 108.887 219.934 l 108.895 219.918 l 108.895 219.914
+ l 108.898 219.906 l 108.898 219.898 l 108.906 219.883 l 108.906 219.875
+ l 108.91 219.871 l 108.914 219.863 l 108.914 219.855 l 108.922 219.84 l
+ 108.922 219.832 l 108.926 219.828 l 108.926 219.82 l 108.934 219.805 l 
+108.934 219.797 l 108.938 219.789 l 108.941 219.785 l 108.941 219.777 l 
+108.945 219.77 l 108.945 219.762 l 108.953 219.746 l 108.953 219.738 l 108.957
+ 219.734 l 108.961 219.727 l 108.961 219.719 l 108.965 219.711 l 108.965
+ 219.703 l 108.973 219.688 l 108.973 219.684 l 108.98 219.668 l 108.98 219.66
+ l 108.984 219.652 l 108.984 219.645 l 108.992 219.629 l 108.992 219.625
+ l 109 219.609 l 109 219.602 l 109.004 219.594 l 109.004 219.586 l 109.012
+ 219.57 l 109.012 219.566 l 109.02 219.551 l 109.02 219.543 l 109.027 219.527
+ l 109.027 219.52 l 109.031 219.512 l 109.031 219.504 l 109.035 219.5 l 
+109.039 219.492 l 109.039 219.484 l 109.047 219.469 l 109.047 219.461 l 
+109.051 219.453 l 109.051 219.445 l 109.055 219.438 l 109.059 219.434 l 
+109.059 219.426 l 109.066 219.41 l 109.066 219.402 l 109.07 219.395 l 109.07
+ 219.387 l 109.078 219.371 l 109.078 219.363 l 109.082 219.355 l 109.086
+ 219.352 l 109.086 219.344 l 109.09 219.336 l 109.09 219.328 l 109.098 219.312
+ l 109.098 219.305 l 109.105 219.289 l 109.105 219.281 l 109.113 219.266
+ l 109.113 219.262 l 109.117 219.254 l 109.117 219.246 l 109.125 219.23 
+l 109.125 219.223 l 109.133 219.207 l 109.133 219.199 l 109.137 219.191 
+l 109.137 219.184 l 109.145 219.168 l 109.145 219.16 l 109.148 219.156 l
+ 109.152 219.148 l 109.152 219.141 l 109.156 219.133 l 109.156 219.125 l
+ 109.164 219.109 l 109.164 219.102 l 109.172 219.086 l 109.172 219.078 l
+ 109.176 219.07 l 109.176 219.062 l 109.184 219.047 l 109.184 219.039 l 
+109.191 219.023 l 109.191 219.016 l 109.195 219.012 l 109.195 219.004 l 
+109.203 218.988 l 109.203 218.98 l 109.211 218.965 l 109.211 218.957 l 109.219
+ 218.941 l 109.219 218.934 l 109.223 218.926 l 109.223 218.918 l 109.23 
+218.902 l 109.23 218.895 l 109.238 218.879 l 109.238 218.871 l 109.242 218.863
+ l 109.242 218.855 l 109.25 218.84 l 109.25 218.832 l 109.258 218.816 l 
+109.258 218.809 l 109.262 218.801 l 109.262 218.793 l 109.27 218.777 l 109.27
+ 218.77 l 109.277 218.754 l 109.277 218.746 l 109.281 218.738 l 109.281 
+218.73 l 109.289 218.715 l 109.289 218.707 l 109.297 218.691 l 109.297 218.684
+ l 109.305 218.668 l 109.305 218.66 l 109.309 218.652 l 109.309 218.645 
+l 109.316 218.629 l 109.316 218.621 l 109.324 218.605 l 109.324 218.598 
+l 109.328 218.59 l 109.328 218.582 l 109.336 218.566 l 109.336 218.559 l
+ 109.344 218.543 l 109.344 218.535 l 109.348 218.527 l 109.348 218.52 l 
+109.355 218.504 l 109.355 218.496 l 109.363 218.48 l 109.363 218.473 l 109.367
+ 218.465 l 109.367 218.457 l 109.375 218.441 l 109.375 218.434 l 109.383
+ 218.418 l 109.383 218.41 l 109.387 218.402 l 109.387 218.395 l 109.395 
+218.379 l 109.395 218.371 l 109.398 218.363 l 109.402 218.352 l 109.402 
+218.344 l 109.41 218.328 l 109.41 218.32 l 109.414 218.312 l 109.414 218.305
+ l 109.422 218.289 l 109.422 218.281 l 109.43 218.266 l 109.43 218.258 l
+ 109.434 218.25 l 109.434 218.242 l 109.441 218.227 l 109.441 218.219 l 
+109.445 218.211 l 109.449 218.199 l 109.449 218.191 l 109.453 218.184 l 
+109.453 218.176 l 109.461 218.16 l 109.461 218.152 l 109.469 218.137 l 109.469
+ 218.129 l 109.473 218.121 l 109.473 218.113 l 109.48 218.098 l 109.48 218.09
+ l 109.484 218.078 l 109.488 218.07 l 109.488 218.062 l 109.496 218.047 
+l 109.496 218.039 l 109.5 218.031 l 109.5 218.023 l 109.508 218.008 l 109.508
+ 218 l 109.512 217.992 l 109.516 217.98 l 109.516 217.973 l 109.52 217.965
+ l 109.52 217.957 l 109.527 217.941 l 109.527 217.934 l 109.535 217.918 
+l 109.535 217.91 l 109.539 217.902 l 109.539 217.891 l 109.547 217.875 l
+ 109.547 217.867 l 109.555 217.852 l 109.555 217.844 l 109.559 217.836 l
+ 109.559 217.828 l 109.562 217.82 l 109.566 217.809 l 109.566 217.801 l 
+109.574 217.785 l 109.574 217.777 l 109.578 217.77 l 109.578 217.762 l 109.586
+ 217.746 l 109.586 217.734 l 109.594 217.719 l 109.594 217.711 l 109.602
+ 217.695 l 109.602 217.688 l 109.605 217.68 l 109.605 217.668 l 109.613 
+217.652 l 109.613 217.645 l 109.621 217.629 l 109.621 217.621 l 109.625 
+217.613 l 109.625 217.602 l 109.633 217.586 l 109.633 217.578 l 109.641 
+217.562 l 109.641 217.555 l 109.645 217.543 l 109.645 217.535 l 109.652 
+217.52 l 109.652 217.512 l 109.66 217.496 l 109.66 217.484 l 109.664 217.477
+ l 109.664 217.469 l 109.672 217.453 l 109.672 217.445 l 109.676 217.438
+ l 109.68 217.426 l 109.68 217.418 l 109.684 217.41 l 109.684 217.402 l 
+109.691 217.387 l 109.691 217.379 l 109.695 217.367 l 109.699 217.359 l 
+109.699 217.352 l 109.707 217.336 l 109.707 217.328 l 109.711 217.316 l 
+109.711 217.309 l 109.719 217.293 l 109.719 217.285 l 109.723 217.277 l 
+109.727 217.266 l 109.727 217.258 l 109.73 217.25 l 109.73 217.242 l 109.738
+ 217.227 l 109.738 217.215 l 109.746 217.199 l 109.746 217.191 l 109.75 
+217.184 l 109.75 217.172 l 109.758 217.156 l 109.758 217.148 l 109.766 217.133
+ l 109.766 217.121 l 109.77 217.113 l 109.77 217.105 l 109.777 217.09 l 
+109.777 217.078 l 109.785 217.062 l 109.785 217.055 l 109.789 217.047 l 
+109.793 217.035 l 109.793 217.027 l 109.797 217.02 l 109.797 217.012 l 109.801
+ 217.004 l 109.805 216.992 l 109.805 216.984 l 109.812 216.969 l 109.812
+ 216.961 l 109.816 216.949 l 109.816 216.941 l 109.824 216.926 l 109.824
+ 216.918 l 109.828 216.906 l 109.832 216.898 l 109.832 216.891 l 109.836
+ 216.883 l 109.836 216.875 l 109.84 216.863 l 109.844 216.855 l 109.844 
+216.848 l 109.852 216.832 l 109.852 216.82 l 109.855 216.812 l 109.855 216.805
+ l 109.859 216.797 l 109.863 216.785 l 109.863 216.777 l 109.871 216.762
+ l 109.871 216.754 l 109.875 216.742 l 109.875 216.734 l 109.883 216.719
+ l 109.883 216.707 l 109.891 216.691 l 109.891 216.684 l 109.895 216.672
+ l 109.898 216.664 l 109.898 216.656 l 109.902 216.648 l 109.902 216.641
+ l 109.906 216.629 l 109.91 216.621 l 109.91 216.613 l 109.914 216.605 l
+ 109.918 216.594 l 109.918 216.586 l 109.922 216.578 l 109.922 216.57 l 
+109.926 216.559 l 109.93 216.551 l 109.93 216.543 l 109.934 216.535 l 109.938
+ 216.523 l 109.938 216.516 l 109.941 216.508 l 109.941 216.5 l 109.945 216.488
+ l 109.949 216.48 l 109.949 216.473 l 109.953 216.465 l 109.957 216.453 
+l 109.957 216.445 l 109.961 216.438 l 109.961 216.43 l 109.965 216.418 l
+ 109.969 216.41 l 109.969 216.402 l 109.973 216.391 l 109.977 216.383 l 
+109.977 216.375 l 109.98 216.367 l 109.984 216.355 l 109.984 216.348 l 109.988
+ 216.34 l 109.988 216.332 l 109.992 216.32 l 109.996 216.312 l 109.996 216.305
+ l 110 216.297 l 110.004 216.285 l 110.004 216.277 l 110.008 216.27 l 110.008
+ 216.258 l 110.016 216.242 l 110.016 216.234 l 110.02 216.223 l 110.023 
+216.215 l 110.023 216.207 l 110.027 216.195 l 110.027 216.188 l 110.035 
+216.172 l 110.035 216.16 l 110.043 216.145 l 110.043 216.133 l 110.047 216.125
+ l 110.047 216.117 l 110.051 216.109 l 110.055 216.098 l 110.055 216.09 
+l 110.059 216.082 l 110.062 216.07 l 110.062 216.062 l 110.066 216.055 l
+ 110.066 216.047 l 110.07 216.035 l 110.074 216.027 l 110.074 216.02 l 110.078
+ 216.008 l 110.082 216 l 110.082 215.992 l 110.086 215.98 l 110.09 215.973
+ l 110.09 215.965 l 110.094 215.957 l 110.094 215.945 l 110.102 215.93 l
+ 110.102 215.918 l 110.109 215.902 l 110.109 215.891 l 110.113 215.883 l
+ 110.113 215.875 l 110.117 215.863 l 110.121 215.855 l 110.121 215.848 l
+ 110.125 215.836 l 110.129 215.828 l 110.129 215.82 l 110.133 215.812 l 
+110.133 215.801 l 110.141 215.785 l 110.141 215.773 l 110.148 215.758 l 
+110.148 215.746 l 110.152 215.738 l 110.152 215.73 l 110.156 215.719 l 110.16
+ 215.711 l 110.16 215.703 l 110.164 215.691 l 110.168 215.684 l 110.168 
+215.676 l 110.172 215.664 l 110.176 215.656 l 110.176 215.648 l 110.18 215.637
+ l 110.18 215.629 l 110.184 215.621 l 110.188 215.609 l 110.188 215.602 
+l 110.191 215.594 l 110.195 215.582 l 110.195 215.574 l 110.199 215.566 
+l 110.199 215.555 l 110.207 215.539 l 110.207 215.527 l 110.211 215.52 l
+ 110.215 215.508 l 110.215 215.5 l 110.219 215.492 l 110.219 215.48 l 110.227
+ 215.465 l 110.227 215.453 l 110.234 215.438 l 110.234 215.426 l 110.238
+ 215.418 l 110.238 215.41 l 110.242 215.398 l 110.246 215.391 l 110.246 
+215.383 l 110.25 215.371 l 110.254 215.363 l 110.254 215.352 l 110.258 215.344
+ l 110.258 215.336 l 110.262 215.324 l 110.266 215.316 l 110.266 215.309
+ l 110.27 215.297 l 110.273 215.289 l 110.273 215.277 l 110.281 215.262 
+l 110.281 215.25 l 110.285 215.242 l 110.285 215.234 l 110.289 215.223 l
+ 110.293 215.215 l 110.293 215.203 l 110.301 215.188 l 110.301 215.176 l
+ 110.305 215.168 l 110.305 215.16 l 110.309 215.148 l 110.312 215.141 l 
+110.312 215.129 l 110.32 215.113 l 110.32 215.102 l 110.324 215.094 l 110.324
+ 215.082 l 110.332 215.066 l 110.332 215.055 l 110.34 215.039 l 110.34 215.027
+ l 110.344 215.02 l 110.344 215.008 l 110.352 214.992 l 110.352 214.98 l
+ 110.355 214.973 l 110.359 214.961 l 110.359 214.953 l 110.363 214.945 l
+ 110.367 214.934 l 110.367 214.926 l 110.371 214.914 l 110.371 214.906 l
+ 110.375 214.898 l 110.379 214.887 l 110.379 214.879 l 110.383 214.867 l
+ 110.387 214.859 l 110.387 214.852 l 110.391 214.84 l 110.391 214.832 l 
+110.395 214.82 l 110.398 214.812 l 110.398 214.801 l 110.406 214.785 l 110.406
+ 214.773 l 110.41 214.766 l 110.41 214.754 l 110.418 214.738 l 110.418 214.727
+ l 110.422 214.719 l 110.426 214.707 l 110.426 214.699 l 110.43 214.688 
+l 110.43 214.68 l 110.434 214.672 l 110.438 214.66 l 110.438 214.652 l 110.441
+ 214.641 l 110.445 214.633 l 110.445 214.621 l 110.449 214.613 l 110.449
+ 214.605 l 110.453 214.594 l 110.457 214.586 l 110.457 214.574 l 110.461
+ 214.566 l 110.465 214.555 l 110.465 214.547 l 110.469 214.539 l 110.473
+ 214.527 l 110.473 214.52 l 110.477 214.508 l 110.477 214.5 l 110.48 214.488
+ l 110.484 214.48 l 110.484 214.469 l 110.492 214.453 l 110.492 214.441 
+l 110.496 214.434 l 110.496 214.422 l 110.5 214.414 l 110.504 214.402 l 
+110.504 214.395 l 110.508 214.383 l 110.512 214.375 l 110.512 214.367 l 
+110.516 214.355 l 110.516 214.348 l 110.52 214.336 l 110.523 214.328 l 110.523
+ 214.316 l 110.527 214.309 l 110.531 214.297 l 110.531 214.289 l 110.535
+ 214.277 l 110.535 214.27 l 110.539 214.262 l 110.543 214.25 l 110.543 214.242
+ l 110.547 214.23 l 110.551 214.223 l 110.551 214.211 l 110.555 214.203 
+l 110.559 214.191 l 110.559 214.184 l 110.562 214.172 l 110.562 214.164 
+l 110.566 214.152 l 110.57 214.145 l 110.57 214.133 l 110.578 214.117 l 
+110.578 214.105 l 110.582 214.098 l 110.582 214.086 l 110.586 214.078 l 
+110.59 214.066 l 110.59 214.059 l 110.594 214.047 l 110.598 214.039 l 110.598
+ 214.027 l 110.602 214.02 l 110.602 214.008 l 110.605 214 l 110.609 213.988
+ l 110.609 213.98 l 110.613 213.969 l 110.617 213.961 l 110.617 213.949 
+l 110.621 213.941 l 110.621 213.93 l 110.625 213.922 l 110.629 213.91 l 
+110.629 213.902 l 110.633 213.891 l 110.637 213.883 l 110.637 213.871 l 
+110.641 213.863 l 110.641 213.852 l 110.645 213.844 l 110.648 213.832 l 
+110.648 213.824 l 110.652 213.812 l 110.656 213.805 l 110.656 213.793 l 
+110.66 213.785 l 110.664 213.773 l 110.664 213.766 l 110.668 213.754 l 110.668
+ 213.746 l 110.672 213.734 l 110.676 213.727 l 110.676 213.715 l 110.68 
+213.707 l 110.684 213.695 l 110.684 213.688 l 110.688 213.676 l 110.688 
+213.668 l 110.691 213.656 l 110.695 213.648 l 110.695 213.637 l 110.699 
+213.629 l 110.703 213.617 l 110.703 213.609 l 110.707 213.598 l 110.707 
+213.59 l 110.711 213.578 l 110.715 213.57 l 110.715 213.559 l 110.719 213.551
+ l 110.723 213.539 l 110.723 213.531 l 110.727 213.52 l 110.727 213.512 
+l 110.73 213.5 l 110.734 213.492 l 110.734 213.48 l 110.738 213.473 l 110.742
+ 213.461 l 110.742 213.453 l 110.75 213.43 l 110.75 213.422 l 110.754 213.41
+ l 110.754 213.402 l 110.758 213.391 l 110.762 213.383 l 110.762 213.371
+ l 110.766 213.363 l 110.77 213.352 l 110.77 213.344 l 110.773 213.332 l
+ 110.773 213.324 l 110.777 213.312 l 110.781 213.305 l 110.781 213.293 l
+ 110.785 213.281 l 110.789 213.273 l 110.789 213.262 l 110.793 213.254 l
+ 110.793 213.242 l 110.797 213.234 l 110.801 213.223 l 110.801 213.215 l
+ 110.805 213.203 l 110.809 213.195 l 110.809 213.184 l 110.812 213.172 l
+ 110.812 213.164 l 110.816 213.152 l 110.82 213.145 l 110.82 213.133 l 110.824
+ 213.125 l 110.828 213.113 l 110.828 213.105 l 110.832 213.094 l 110.832
+ 213.082 l 110.836 213.074 l 110.84 213.062 l 110.84 213.055 l 110.844 213.043
+ l 110.848 213.035 l 110.848 213.023 l 110.852 213.016 l 110.855 213.004
+ l 110.855 212.992 l 110.859 212.984 l 110.859 212.973 l 110.863 212.965
+ l 110.867 212.953 l 110.867 212.945 l 110.875 212.922 l 110.875 212.914
+ l 110.879 212.902 l 110.879 212.895 l 110.883 212.883 l 110.887 212.875
+ l 110.887 212.863 l 110.891 212.852 l 110.895 212.844 l 110.895 212.832
+ l 110.898 212.824 l 110.898 212.812 l 110.902 212.805 l 110.906 212.793
+ l 110.906 212.781 l 110.91 212.773 l 110.914 212.762 l 110.914 212.754 
+l 110.918 212.742 l 110.918 212.734 l 110.926 212.711 l 110.926 212.703 
+l 110.93 212.691 l 110.934 212.684 l 110.934 212.672 l 110.938 212.66 l 
+110.941 212.652 l 110.941 212.641 l 110.945 212.633 l 110.945 212.621 l 
+110.949 212.613 l 110.953 212.602 l 110.953 212.59 l 110.957 212.582 l 110.961
+ 212.57 l 110.961 212.562 l 110.965 212.551 l 110.965 212.539 l 110.969 
+212.531 l 110.973 212.52 l 110.973 212.512 l 110.98 212.488 l 110.98 212.48
+ l 110.984 212.469 l 110.984 212.461 l 110.992 212.438 l 110.992 212.43 
+l 110.996 212.418 l 111 212.41 l 111 212.398 l 111.004 212.387 l 111.004
+ 212.379 l 111.012 212.355 l 111.012 212.348 l 111.016 212.336 l 111.02 
+212.328 l 111.02 212.316 l 111.023 212.305 l 111.023 212.297 l 111.027 212.285
+ l 111.031 212.277 l 111.031 212.266 l 111.035 212.254 l 111.039 212.246
+ l 111.039 212.234 l 111.043 212.223 l 111.047 212.215 l 111.047 212.203
+ l 111.051 212.195 l 111.051 212.184 l 111.055 212.172 l 111.059 212.164
+ l 111.059 212.152 l 111.062 212.141 l 111.066 212.133 l 111.066 212.121
+ l 111.07 212.113 l 111.07 212.102 l 111.074 212.09 l 111.078 212.082 l 
+111.078 212.07 l 111.082 212.059 l 111.086 212.051 l 111.086 212.039 l 111.09
+ 212.031 l 111.09 212.02 l 111.094 212.008 l 111.098 212 l 111.098 211.988
+ l 111.102 211.977 l 111.105 211.969 l 111.105 211.957 l 111.109 211.945
+ l 111.109 211.938 l 111.113 211.926 l 111.117 211.918 l 111.117 211.906
+ l 111.121 211.895 l 111.125 211.887 l 111.125 211.875 l 111.129 211.863
+ l 111.133 211.855 l 111.133 211.844 l 111.137 211.832 l 111.137 211.824
+ l 111.145 211.801 l 111.145 211.793 l 111.152 211.77 l 111.152 211.762 
+l 111.156 211.75 l 111.156 211.742 l 111.164 211.719 l 111.164 211.711 l
+ 111.172 211.688 l 111.172 211.68 l 111.176 211.668 l 111.176 211.656 l 
+111.18 211.648 l 111.184 211.637 l 111.184 211.625 l 111.188 211.617 l 111.191
+ 211.605 l 111.191 211.594 l 111.195 211.586 l 111.195 211.574 l 111.199
+ 211.562 l 111.203 211.555 l 111.203 211.543 l 111.207 211.531 l 111.211
+ 211.523 l 111.211 211.512 l 111.215 211.5 l 111.215 211.492 l 111.223 211.469
+ l 111.223 211.461 l 111.23 211.438 l 111.23 211.43 l 111.238 211.406 l 
+111.238 211.398 l 111.242 211.387 l 111.242 211.375 l 111.246 211.363 l 
+111.25 211.355 l 111.25 211.344 l 111.254 211.332 l 111.258 211.324 l 111.258
+ 211.312 l 111.262 211.301 l 111.262 211.293 l 111.27 211.27 l 111.27 211.262
+ l 111.277 211.238 l 111.277 211.23 l 111.281 211.219 l 111.281 211.207 
+l 111.285 211.199 l 111.289 211.188 l 111.289 211.176 l 111.293 211.164 
+l 111.297 211.156 l 111.297 211.145 l 111.301 211.133 l 111.301 211.125 
+l 111.309 211.102 l 111.309 211.094 l 111.316 211.07 l 111.316 211.059 l
+ 111.32 211.051 l 111.324 211.039 l 111.324 211.027 l 111.328 211.02 l 111.328
+ 211.008 l 111.332 210.996 l 111.336 210.988 l 111.336 210.977 l 111.344
+ 210.953 l 111.344 210.945 l 111.348 210.934 l 111.348 210.922 l 111.352
+ 210.914 l 111.355 210.902 l 111.355 210.891 l 111.359 210.879 l 111.363
+ 210.871 l 111.363 210.859 l 111.367 210.848 l 111.367 210.84 l 111.375 
+210.816 l 111.375 210.805 l 111.379 210.797 l 111.383 210.785 l 111.383 
+210.773 l 111.387 210.766 l 111.387 210.754 l 111.395 210.73 l 111.395 210.723
+ l 111.402 210.699 l 111.402 210.691 l 111.406 210.68 l 111.406 210.668 
+l 111.41 210.656 l 111.414 210.648 l 111.414 210.637 l 111.422 210.613 l
+ 111.422 210.605 l 111.43 210.582 l 111.43 210.574 l 111.434 210.562 l 111.434
+ 210.551 l 111.438 210.539 l 111.441 210.531 l 111.441 210.52 l 111.449 
+210.496 l 111.449 210.488 l 111.453 210.477 l 111.453 210.465 l 111.457 
+210.453 l 111.461 210.445 l 111.461 210.434 l 111.469 210.41 l 111.469 210.402
+ l 111.473 210.391 l 111.473 210.379 l 111.477 210.367 l 111.48 210.359 
+l 111.48 210.348 l 111.488 210.324 l 111.488 210.316 l 111.492 210.305 l
+ 111.492 210.293 l 111.496 210.281 l 111.5 210.273 l 111.5 210.262 l 111.508
+ 210.238 l 111.508 210.23 l 111.516 210.207 l 111.516 210.195 l 111.52 210.188
+ l 111.52 210.176 l 111.527 210.152 l 111.527 210.145 l 111.535 210.121 
+l 111.535 210.109 l 111.539 210.102 l 111.539 210.09 l 111.547 210.066 l
+ 111.547 210.059 l 111.555 210.035 l 111.555 210.023 l 111.559 210.012 l
+ 111.559 210.004 l 111.566 209.98 l 111.566 209.969 l 111.57 209.961 l 111.574
+ 209.949 l 111.574 209.938 l 111.578 209.926 l 111.578 209.918 l 111.586
+ 209.895 l 111.586 209.883 l 111.59 209.871 l 111.594 209.863 l 111.594 
+209.852 l 111.598 209.84 l 111.598 209.828 l 111.602 209.82 l 111.605 209.809
+ l 111.605 209.797 l 111.613 209.773 l 111.613 209.766 l 111.621 209.742
+ l 111.621 209.73 l 111.625 209.723 l 111.625 209.711 l 111.633 209.688 
+l 111.633 209.676 l 111.637 209.668 l 111.641 209.656 l 111.641 209.645 
+l 111.645 209.633 l 111.645 209.621 l 111.648 209.613 l 111.652 209.602 
+l 111.652 209.59 l 111.66 209.566 l 111.66 209.559 l 111.664 209.547 l 111.664
+ 209.535 l 111.672 209.512 l 111.672 209.504 l 111.68 209.48 l 111.68 209.469
+ l 111.684 209.457 l 111.684 209.449 l 111.691 209.426 l 111.691 209.414
+ l 111.695 209.402 l 111.699 209.395 l 111.699 209.383 l 111.707 209.359
+ l 111.707 209.348 l 111.711 209.34 l 111.711 209.328 l 111.719 209.305 
+l 111.719 209.293 l 111.723 209.285 l 111.727 209.273 l 111.727 209.262 
+l 111.73 209.25 l 111.73 209.238 l 111.734 209.23 l 111.738 209.219 l 111.738
+ 209.207 l 111.746 209.184 l 111.746 209.172 l 111.75 209.164 l 111.75 209.152
+ l 111.758 209.129 l 111.758 209.117 l 111.762 209.109 l 111.766 209.098
+ l 111.766 209.086 l 111.77 209.074 l 111.77 209.062 l 111.773 209.051 l
+ 111.777 209.043 l 111.777 209.031 l 111.785 209.008 l 111.785 208.996 l
+ 111.789 208.984 l 111.789 208.977 l 111.797 208.953 l 111.797 208.941 l
+ 111.805 208.918 l 111.805 208.91 l 111.812 208.887 l 111.812 208.875 l 
+111.816 208.863 l 111.816 208.852 l 111.82 208.844 l 111.824 208.832 l 111.824
+ 208.82 l 111.832 208.797 l 111.832 208.785 l 111.836 208.777 l 111.836 
+208.766 l 111.844 208.742 l 111.844 208.73 l 111.848 208.719 l 111.852 208.711
+ l 111.852 208.699 l 111.855 208.688 l 111.855 208.676 l 111.863 208.652
+ l 111.863 208.641 l 111.867 208.633 l 111.871 208.621 l 111.871 208.609
+ l 111.875 208.598 l 111.875 208.586 l 111.879 208.574 l 111.883 208.566
+ l 111.883 208.555 l 111.891 208.531 l 111.891 208.52 l 111.898 208.496 
+l 111.898 208.488 l 111.902 208.477 l 111.902 208.465 l 111.91 208.441 l
+ 111.91 208.43 l 111.914 208.418 l 111.918 208.41 l 111.918 208.398 l 111.922
+ 208.387 l 111.922 208.375 l 111.93 208.352 l 111.93 208.34 l 111.934 208.328
+ l 111.938 208.32 l 111.938 208.309 l 111.941 208.297 l 111.941 208.285 
+l 111.949 208.262 l 111.949 208.25 l 111.953 208.242 l 111.957 208.23 l 
+111.957 208.219 l 111.961 208.207 l 111.961 208.195 l 111.969 208.172 l 
+111.969 208.16 l 111.973 208.152 l 111.977 208.141 l 111.977 208.129 l 111.98
+ 208.117 l 111.98 208.105 l 111.988 208.082 l 111.988 208.07 l 111.992 208.062
+ l 111.996 208.051 l 111.996 208.039 l 112.004 208.016 l 112.004 208.004
+ l 112.008 207.992 l 112.008 207.98 l 112.012 207.969 l 112.016 207.961 
+l 112.016 207.949 l 112.023 207.926 l 112.023 207.914 l 112.027 207.902 
+l 112.027 207.891 l 112.035 207.867 l 112.035 207.859 l 112.043 207.836 
+l 112.043 207.824 l 112.047 207.812 l 112.047 207.801 l 112.055 207.777 
+l 112.055 207.766 l 112.059 207.758 l 112.062 207.746 l 112.062 207.734 
+l 112.066 207.723 l 112.066 207.711 l 112.074 207.688 l 112.074 207.676 
+l 112.082 207.652 l 112.082 207.645 l 112.09 207.621 l 112.09 207.609 l 
+112.094 207.598 l 112.094 207.586 l 112.102 207.562 l 112.102 207.551 l 
+112.105 207.539 l 112.109 207.531 l 112.109 207.52 l 112.113 207.508 l 112.113
+ 207.496 l 112.121 207.473 l 112.121 207.461 l 112.129 207.438 l 112.129
+ 207.426 l 112.133 207.414 l 112.133 207.402 l 112.137 207.395 l 112.141
+ 207.383 l 112.141 207.371 l 112.148 207.348 l 112.148 207.336 l 112.152
+ 207.324 l 112.152 207.312 l 112.16 207.289 l 112.16 207.277 l 112.164 207.266
+ l 112.168 207.258 l 112.168 207.246 l 112.172 207.234 l 112.172 207.223
+ l 112.18 207.199 l 112.18 207.188 l 112.188 207.164 l 112.188 207.152 l
+ 112.195 207.129 l 112.195 207.117 l 112.199 207.109 l 112.199 207.098 l
+ 112.207 207.074 l 112.207 207.062 l 112.215 207.039 l 112.215 207.027 l
+ 112.219 207.016 l 112.219 207.004 l 112.227 206.98 l 112.227 206.969 l 
+112.234 206.945 l 112.234 206.938 l 112.238 206.926 l 112.238 206.914 l 
+112.246 206.891 l 112.246 206.879 l 112.254 206.855 l 112.254 206.844 l 
+112.258 206.832 l 112.258 206.82 l 112.266 206.797 l 112.266 206.785 l 112.273
+ 206.762 l 112.273 206.75 l 112.277 206.738 l 112.281 206.73 l 112.281 206.719
+ l 112.285 206.707 l 112.285 206.695 l 112.293 206.672 l 112.293 206.66 
+l 112.301 206.637 l 112.301 206.625 l 112.305 206.613 l 112.305 206.602 
+l 112.312 206.578 l 112.312 206.566 l 112.32 206.543 l 112.32 206.531 l 
+112.324 206.52 l 112.324 206.508 l 112.332 206.484 l 112.332 206.477 l 112.34
+ 206.453 l 112.34 206.441 l 112.344 206.43 l 112.344 206.418 l 112.352 206.395
+ l 112.352 206.383 l 112.359 206.359 l 112.359 206.348 l 112.363 206.336
+ l 112.363 206.324 l 112.371 206.301 l 112.371 206.289 l 112.379 206.266
+ l 112.379 206.254 l 112.387 206.23 l 112.387 206.219 l 112.391 206.207 
+l 112.391 206.195 l 112.398 206.172 l 112.398 206.16 l 112.406 206.137 l
+ 112.406 206.125 l 112.41 206.113 l 112.41 206.102 l 112.414 206.094 l 112.418
+ 206.082 l 112.418 206.07 l 112.426 206.047 l 112.426 206.035 l 112.43 206.023
+ l 112.43 206.012 l 112.438 205.988 l 112.438 205.977 l 112.445 205.953 
+l 112.445 205.941 l 112.449 205.93 l 112.449 205.918 l 112.457 205.895 l
+ 112.457 205.883 l 112.465 205.859 l 112.465 205.848 l 112.469 205.836 l
+ 112.469 205.824 l 112.477 205.801 l 112.477 205.789 l 112.484 205.766 l
+ 112.484 205.754 l 112.492 205.73 l 112.492 205.719 l 112.496 205.707 l 
+112.496 205.695 l 112.504 205.672 l 112.504 205.66 l 112.512 205.637 l 112.512
+ 205.625 l 112.516 205.613 l 112.516 205.602 l 112.523 205.578 l 112.523
+ 205.566 l 112.531 205.543 l 112.531 205.531 l 112.535 205.52 l 112.535 
+205.508 l 112.543 205.484 l 112.543 205.473 l 112.551 205.449 l 112.551 
+205.438 l 112.555 205.426 l 112.555 205.414 l 112.562 205.391 l 112.562 
+205.379 l 112.57 205.355 l 112.57 205.344 l 112.578 205.32 l 112.578 205.309
+ l 112.582 205.297 l 112.582 205.285 l 112.59 205.262 l 112.59 205.25 l 
+112.598 205.227 l 112.598 205.215 l 112.602 205.203 l 112.602 205.191 l 
+112.605 205.176 l 112.609 205.164 l 112.609 205.152 l 112.617 205.129 l 
+112.617 205.117 l 112.621 205.105 l 112.621 205.094 l 112.629 205.07 l 112.629
+ 205.059 l 112.637 205.035 l 112.637 205.023 l 112.641 205.012 l 112.641
+ 205 l 112.648 204.977 l 112.648 204.965 l 112.656 204.941 l 112.656 204.93
+ l 112.66 204.918 l 112.66 204.906 l 112.668 204.883 l 112.668 204.871 l
+ 112.676 204.848 l 112.676 204.836 l 112.684 204.812 l 112.684 204.801 l
+ 112.688 204.789 l 112.688 204.773 l 112.695 204.75 l 112.695 204.738 l 
+112.703 204.715 l 112.703 204.703 l 112.707 204.691 l 112.707 204.68 l 112.715
+ 204.656 l 112.715 204.645 l 112.723 204.621 l 112.723 204.609 l 112.727
+ 204.598 l 112.727 204.586 l 112.734 204.562 l 112.734 204.551 l 112.742
+ 204.527 l 112.742 204.516 l 112.746 204.5 l 112.746 204.488 l 112.754 204.465
+ l 112.754 204.453 l 112.762 204.43 l 112.762 204.418 l 112.77 204.395 l
+ 112.77 204.383 l 112.773 204.371 l 112.773 204.359 l 112.781 204.336 l 
+112.781 204.324 l 112.789 204.301 l 112.789 204.285 l 112.793 204.273 l 
+112.793 204.262 l 112.801 204.238 l 112.801 204.227 l 112.809 204.203 l 
+112.809 204.191 l 112.812 204.18 l 112.812 204.168 l 112.82 204.145 l 112.82
+ 204.133 l 112.828 204.109 l 112.828 204.094 l 112.832 204.082 l 112.832
+ 204.07 l 112.84 204.047 l 112.84 204.035 l 112.848 204.012 l 112.848 204
+ l 112.852 203.988 l 112.852 203.977 l 112.859 203.953 l 112.859 203.941
+ l 112.863 203.926 l 112.867 203.914 l 112.867 203.902 l 112.875 203.879
+ l 112.875 203.867 l 112.879 203.855 l 112.879 203.844 l 112.887 203.82 
+l 112.887 203.809 l 112.895 203.785 l 112.895 203.77 l 112.898 203.758 l
+ 112.898 203.746 l 112.906 203.723 l 112.906 203.711 l 112.914 203.688 l
+ 112.914 203.676 l 112.918 203.664 l 112.918 203.652 l 112.922 203.641 l
+ 112.926 203.625 l 112.926 203.613 l 112.934 203.59 l 112.934 203.578 l 
+112.938 203.566 l 112.938 203.555 l 112.945 203.531 l 112.945 203.52 l 112.953
+ 203.496 l 112.953 203.48 l 112.961 203.457 l 112.961 203.445 l 112.965 
+203.434 l 112.965 203.422 l 112.973 203.398 l 112.973 203.387 l 112.977 
+203.375 l 112.98 203.359 l 112.98 203.348 l 112.984 203.336 l 112.984 203.324
+ l 112.992 203.301 l 112.992 203.289 l 113 203.266 l 113 203.254 l 113.004
+ 203.238 l 113.004 203.227 l 113.012 203.203 l 113.012 203.191 l 113.02 
+203.168 l 113.02 203.156 l 113.023 203.145 l 113.023 203.133 l 113.027 203.117
+ l 113.031 203.105 l 113.031 203.094 l 113.039 203.07 l 113.039 203.059 
+l 113.043 203.047 l 113.043 203.035 l 113.047 203.023 l 113.051 203.008 
+l 113.051 202.996 l 113.059 202.973 l 113.059 202.961 l 113.066 202.938 
+l 113.066 202.926 l 113.07 202.914 l 113.07 202.898 l 113.078 202.875 l 
+113.078 202.863 l 113.086 202.84 l 113.086 202.828 l 113.09 202.816 l 113.09
+ 202.805 l 113.094 202.789 l 113.098 202.777 l 113.098 202.766 l 113.105
+ 202.742 l 113.105 202.73 l 113.109 202.719 l 113.109 202.707 l 113.113 
+202.691 l 113.117 202.68 l 113.117 202.668 l 113.125 202.645 l 113.125 202.633
+ l 113.129 202.621 l 113.129 202.609 l 113.133 202.594 l 113.137 202.582
+ l 113.137 202.57 l 113.145 202.547 l 113.145 202.535 l 113.152 202.512 
+l 113.152 202.496 l 113.156 202.484 l 113.156 202.473 l 113.164 202.449 
+l 113.164 202.438 l 113.172 202.414 l 113.172 202.398 l 113.176 202.387 
+l 113.176 202.375 l 113.184 202.352 l 113.184 202.34 l 113.188 202.328 l
+ 113.191 202.312 l 113.191 202.301 l 113.195 202.289 l 113.195 202.277 l
+ 113.203 202.254 l 113.203 202.242 l 113.207 202.227 l 113.211 202.215 l
+ 113.211 202.203 l 113.215 202.191 l 113.215 202.18 l 113.223 202.156 l 
+113.223 202.141 l 113.23 202.117 l 113.23 202.105 l 113.234 202.094 l 113.234
+ 202.082 l 113.238 202.07 l 113.242 202.055 l 113.242 202.043 l 113.25 202.02
+ l 113.25 202.008 l 113.258 201.984 l 113.258 201.969 l 113.262 201.957 
+l 113.262 201.945 l 113.27 201.922 l 113.27 201.91 l 113.273 201.898 l 113.277
+ 201.883 l 113.277 201.871 l 113.281 201.859 l 113.281 201.848 l 113.289
+ 201.824 l 113.289 201.809 l 113.297 201.785 l 113.297 201.773 l 113.301
+ 201.762 l 113.301 201.75 l 113.305 201.738 l 113.309 201.723 l 113.309 
+201.711 l 113.316 201.688 l 113.316 201.676 l 113.32 201.664 l 113.32 201.648
+ l 113.328 201.625 l 113.328 201.613 l 113.336 201.59 l 113.336 201.574 
+l 113.344 201.551 l 113.344 201.539 l 113.348 201.527 l 113.348 201.516 
+l 113.352 201.5 l 113.355 201.488 l 113.355 201.477 l 113.363 201.453 l 
+113.363 201.441 l 113.367 201.426 l 113.367 201.414 l 113.375 201.391 l 
+113.375 201.379 l 113.379 201.367 l 113.383 201.352 l 113.383 201.34 l 113.387
+ 201.328 l 113.387 201.316 l 113.395 201.293 l 113.395 201.277 l 113.402
+ 201.254 l 113.402 201.242 l 113.406 201.23 l 113.406 201.219 l 113.41 201.203
+ l 113.414 201.191 l 113.414 201.18 l 113.422 201.156 l 113.422 201.141 
+l 113.426 201.129 l 113.426 201.117 l 113.434 201.094 l 113.434 201.082 
+l 113.438 201.066 l 113.441 201.055 l 113.441 201.043 l 113.449 201.02 l
+ 113.449 201.008 l 113.453 200.992 l 113.453 200.98 l 113.461 200.957 l 
+113.461 200.945 l 113.465 200.93 l 113.469 200.918 l 113.469 200.906 l 113.473
+ 200.895 l 113.473 200.883 l 113.477 200.867 l 113.48 200.855 l 113.48 200.844
+ l 113.488 200.82 l 113.488 200.809 l 113.492 200.793 l 113.492 200.781 
+l 113.5 200.758 l 113.5 200.746 l 113.504 200.73 l 113.508 200.719 l 113.508
+ 200.707 l 113.512 200.695 l 113.512 200.684 l 113.516 200.668 l 113.52 
+200.656 l 113.52 200.645 l 113.527 200.621 l 113.527 200.605 l 113.535 200.582
+ l 113.535 200.57 l 113.539 200.559 l 113.539 200.543 l 113.547 200.52 l
+ 113.547 200.508 l 113.551 200.496 l 113.555 200.48 l 113.555 200.469 l 
+113.559 200.457 l 113.559 200.445 l 113.562 200.434 l 113.566 200.418 l 
+113.566 200.406 l 113.574 200.383 l 113.574 200.371 l 113.578 200.355 l 
+113.578 200.344 l 113.586 200.32 l 113.586 200.309 l 113.59 200.293 l 113.594
+ 200.281 l 113.594 200.27 l 113.598 200.258 l 113.598 200.246 l 113.602 
+200.23 l 113.605 200.219 l 113.605 200.207 l 113.613 200.184 l 113.613 200.168
+ l 113.617 200.156 l 113.617 200.145 l 113.625 200.121 l 113.625 200.105
+ l 113.633 200.082 l 113.633 200.07 l 113.637 200.055 l 113.641 200.043 
+l 113.641 200.031 l 113.645 200.02 l 113.645 200.008 l 113.648 199.992 l
+ 113.652 199.98 l 113.652 199.969 l 113.66 199.945 l 113.66 199.93 l 113.664
+ 199.918 l 113.664 199.906 l 113.668 199.895 l 113.672 199.879 l 113.672
+ 199.867 l 113.68 199.844 l 113.68 199.832 l 113.684 199.816 l 113.684 199.805
+ l 113.691 199.781 l 113.691 199.766 l 113.699 199.742 l 113.699 199.73 
+l 113.703 199.719 l 113.703 199.703 l 113.711 199.68 l 113.711 199.668 l
+ 113.715 199.652 l 113.719 199.641 l 113.719 199.629 l 113.727 199.605 l
+ 113.727 199.59 l 113.73 199.578 l 113.73 199.566 l 113.734 199.555 l 113.738
+ 199.539 l 113.738 199.527 l 113.746 199.504 l 113.746 199.492 l 113.75 
+199.477 l 113.75 199.465 l 113.758 199.441 l 113.758 199.426 l 113.766 199.402
+ l 113.766 199.391 l 113.77 199.375 l 113.77 199.363 l 113.777 199.34 l 
+113.777 199.324 l 113.785 199.301 l 113.785 199.289 l 113.789 199.277 l 
+113.789 199.262 l 113.797 199.238 l 113.797 199.227 l 113.801 199.211 l 
+113.805 199.199 l 113.805 199.188 l 113.809 199.176 l 113.809 199.16 l 113.816
+ 199.137 l 113.816 199.125 l 113.82 199.109 l 113.824 199.098 l 113.824 
+199.086 l 113.828 199.074 l 113.832 199.059 l 113.832 199.047 l 113.836 
+199.035 l 113.836 199.023 l 113.84 199.008 l 113.844 198.996 l 113.844 198.984
+ l 113.848 198.973 l 113.852 198.957 l 113.852 198.945 l 113.855 198.934
+ l 113.855 198.922 l 113.859 198.91 l 113.863 198.895 l 113.863 198.883 
+l 113.871 198.859 l 113.871 198.844 l 113.875 198.832 l 113.875 198.82 l
+ 113.879 198.809 l 113.883 198.793 l 113.883 198.781 l 113.891 198.758 l
+ 113.891 198.742 l 113.895 198.73 l 113.895 198.719 l 113.898 198.703 l 
+113.902 198.691 l 113.902 198.68 l 113.906 198.668 l 113.91 198.652 l 113.91
+ 198.641 l 113.918 198.617 l 113.918 198.602 l 113.922 198.59 l 113.922 
+198.578 l 113.926 198.566 l 113.93 198.551 l 113.93 198.539 l 113.938 198.516
+ l 113.938 198.5 l 113.941 198.488 l 113.941 198.477 l 113.945 198.465 l
+ 113.949 198.449 l 113.949 198.438 l 113.957 198.414 l 113.957 198.398 l
+ 113.961 198.387 l 113.961 198.375 l 113.965 198.363 l 113.969 198.348 l
+ 113.969 198.336 l 113.973 198.324 l 113.977 198.309 l 113.977 198.297 l
+ 113.98 198.285 l 113.98 198.273 l 113.984 198.258 l 113.988 198.246 l 113.988
+ 198.234 l 113.992 198.223 l 113.996 198.207 l 113.996 198.195 l 114 198.184
+ l 114 198.172 l 114.004 198.156 l 114.008 198.145 l 114.008 198.133 l 114.012
+ 198.117 l 114.016 198.105 l 114.016 198.094 l 114.02 198.082 l 114.023 
+198.066 l 114.023 198.055 l 114.027 198.043 l 114.027 198.031 l 114.031 
+198.016 l 114.035 198.004 l 114.035 197.992 l 114.039 197.977 l 114.043 
+197.965 l 114.043 197.953 l 114.047 197.941 l 114.047 197.926 l 114.055 
+197.902 l 114.055 197.891 l 114.059 197.875 l 114.062 197.863 l 114.062 
+197.852 l 114.066 197.836 l 114.066 197.824 l 114.074 197.801 l 114.074 
+197.785 l 114.082 197.762 l 114.082 197.746 l 114.086 197.734 l 114.086 
+197.723 l 114.09 197.711 l 114.094 197.695 l 114.094 197.684 l 114.102 197.66
+ l 114.102 197.645 l 114.109 197.621 l 114.109 197.605 l 114.113 197.594
+ l 114.113 197.582 l 114.117 197.57 l 114.121 197.555 l 114.121 197.543 
+l 114.125 197.531 l 114.129 197.516 l 114.129 197.504 l 114.133 197.492 
+l 114.133 197.48 l 114.137 197.465 l 114.141 197.453 l 114.141 197.441 l
+ 114.145 197.426 l 114.148 197.414 l 114.148 197.402 l 114.152 197.391 l
+ 114.152 197.375 l 114.16 197.352 l 114.16 197.336 l 114.168 197.312 l 114.168
+ 197.297 l 114.172 197.285 l 114.172 197.273 l 114.176 197.262 l 114.18 
+197.246 l 114.18 197.234 l 114.184 197.223 l 114.188 197.207 l 114.188 197.195
+ l 114.191 197.184 l 114.191 197.172 l 114.195 197.156 l 114.199 197.145
+ l 114.199 197.133 l 114.203 197.117 l 114.207 197.105 l 114.207 197.094
+ l 114.211 197.078 l 114.215 197.066 l 114.215 197.055 l 114.219 197.043
+ l 114.219 197.027 l 114.227 197.004 l 114.227 196.988 l 114.234 196.965
+ l 114.234 196.949 l 114.238 196.938 l 114.238 196.926 l 114.242 196.914
+ l 114.246 196.898 l 114.246 196.887 l 114.25 196.875 l 114.254 196.859 
+l 114.254 196.848 l 114.258 196.836 l 114.258 196.82 l 114.266 196.797 l
+ 114.266 196.785 l 114.27 196.77 l 114.273 196.758 l 114.273 196.746 l 114.277
+ 196.73 l 114.277 196.719 l 114.281 196.707 l 114.285 196.691 l 114.285 
+196.68 l 114.289 196.668 l 114.293 196.652 l 114.293 196.641 l 114.301 196.617
+ l 114.301 196.602 l 114.305 196.59 l 114.305 196.578 l 114.309 196.562 
+l 114.312 196.551 l 114.312 196.539 l 114.316 196.523 l 114.32 196.512 l
+ 114.32 196.5 l 114.324 196.484 l 114.324 196.473 l 114.332 196.449 l 114.332
+ 196.434 l 114.34 196.41 l 114.34 196.395 l 114.344 196.383 l 114.344 196.371
+ l 114.348 196.355 l 114.352 196.344 l 114.352 196.332 l 114.355 196.316
+ l 114.359 196.305 l 114.359 196.293 l 114.363 196.277 l 114.363 196.266
+ l 114.367 196.254 l 114.371 196.238 l 114.371 196.227 l 114.379 196.203
+ l 114.379 196.188 l 114.383 196.176 l 114.383 196.164 l 114.387 196.148
+ l 114.391 196.137 l 114.391 196.125 l 114.395 196.109 l 114.398 196.098
+ l 114.398 196.086 l 114.402 196.07 l 114.406 196.059 l 114.406 196.047 
+l 114.41 196.031 l 114.41 196.02 l 114.414 196.008 l 114.418 195.992 l 114.418
+ 195.98 l 114.422 195.969 l 114.426 195.953 l 114.426 195.941 l 114.43 195.93
+ l 114.43 195.914 l 114.438 195.891 l 114.438 195.875 l 114.445 195.852 
+l 114.445 195.836 l 114.449 195.824 l 114.449 195.812 l 114.453 195.797 
+l 114.457 195.785 l 114.457 195.773 l 114.461 195.758 l 114.465 195.746 
+l 114.465 195.734 l 114.469 195.723 l 114.469 195.707 l 114.477 195.684 
+l 114.477 195.668 l 114.484 195.645 l 114.484 195.629 l 114.492 195.605 
+l 114.492 195.59 l 114.496 195.578 l 114.496 195.566 l 114.5 195.551 l 114.504
+ 195.539 l 114.504 195.527 l 114.508 195.512 l 114.512 195.5 l 114.512 195.488
+ l 114.516 195.473 l 114.516 195.461 l 114.52 195.449 l 114.523 195.434 
+l 114.523 195.422 l 114.527 195.406 l 114.531 195.395 l 114.531 195.383 
+l 114.535 195.367 l 114.535 195.355 l 114.539 195.344 l 114.543 195.328 
+l 114.543 195.316 l 114.547 195.305 l 114.551 195.289 l 114.551 195.277 
+l 114.555 195.266 l 114.555 195.25 l 114.562 195.227 l 114.562 195.211 l
+ 114.57 195.188 l 114.57 195.172 l 114.574 195.16 l 114.574 195.148 l 114.578
+ 195.133 l 114.582 195.121 l 114.582 195.109 l 114.586 195.094 l 114.59 
+195.082 l 114.59 195.07 l 114.594 195.055 l 114.598 195.043 l 114.598 195.031
+ l 114.602 195.016 l 114.602 195.004 l 114.605 194.992 l 114.609 194.977
+ l 114.609 194.965 l 114.613 194.953 l 114.617 194.938 l 114.617 194.926
+ l 114.621 194.91 l 114.621 194.898 l 114.625 194.887 l 114.629 194.871 
+l 114.629 194.859 l 114.633 194.848 l 114.637 194.832 l 114.637 194.82 l
+ 114.641 194.809 l 114.641 194.793 l 114.648 194.77 l 114.648 194.754 l 
+114.656 194.73 l 114.656 194.715 l 114.66 194.703 l 114.66 194.691 l 114.664
+ 194.676 l 114.668 194.664 l 114.668 194.648 l 114.676 194.625 l 114.676
+ 194.609 l 114.684 194.586 l 114.684 194.57 l 114.688 194.559 l 114.688 
+194.547 l 114.691 194.531 l 114.695 194.52 l 114.695 194.508 l 114.699 194.492
+ l 114.703 194.48 l 114.703 194.465 l 114.707 194.453 l 114.707 194.441 
+l 114.711 194.426 l 114.715 194.414 l 114.715 194.402 l 114.719 194.387 
+l 114.723 194.375 l 114.723 194.363 l 114.727 194.348 l 114.727 194.336 
+l 114.73 194.324 l 114.734 194.309 l 114.734 194.297 l 114.738 194.281 l
+ 114.742 194.27 l 114.742 194.258 l 114.746 194.242 l 114.746 194.23 l 114.75
+ 194.219 l 114.754 194.203 l 114.754 194.191 l 114.758 194.18 l 114.762 
+194.164 l 114.762 194.152 l 114.766 194.137 l 114.766 194.125 l 114.77 194.113
+ l 114.773 194.098 l 114.773 194.086 l 114.777 194.074 l 114.781 194.059
+ l 114.781 194.047 l 114.785 194.035 l 114.789 194.02 l 114.789 194.008 
+l 114.793 193.992 l 114.793 193.98 l 114.797 193.969 l 114.801 193.953 l
+ 114.801 193.941 l 114.805 193.93 l 114.809 193.914 l 114.809 193.902 l 
+114.812 193.887 l 114.812 193.875 l 114.816 193.863 l 114.82 193.848 l 114.82
+ 193.836 l 114.824 193.824 l 114.828 193.809 l 114.828 193.797 l 114.832
+ 193.785 l 114.832 193.77 l 114.836 193.758 l 114.84 193.742 l 114.84 193.73
+ l 114.844 193.719 l 114.848 193.703 l 114.848 193.691 l 114.852 193.68 
+l 114.852 193.664 l 114.855 193.652 l 114.859 193.637 l 114.859 193.625 
+l 114.863 193.613 l 114.867 193.598 l 114.867 193.586 l 114.871 193.574 
+l 114.875 193.559 l 114.875 193.547 l 114.879 193.531 l 114.879 193.52 l
+ 114.883 193.508 l 114.887 193.492 l 114.887 193.48 l 114.891 193.469 l 
+114.895 193.453 l 114.895 193.441 l 114.898 193.426 l 114.898 193.414 l 
+114.902 193.402 l 114.906 193.387 l 114.906 193.375 l 114.91 193.363 l 114.914
+ 193.348 l 114.914 193.336 l 114.918 193.32 l 114.918 193.309 l 114.922 
+193.297 l 114.926 193.281 l 114.926 193.27 l 114.93 193.254 l 114.934 193.242
+ l 114.934 193.23 l 114.938 193.215 l 114.938 193.203 l 114.941 193.191 
+l 114.945 193.176 l 114.945 193.164 l 114.949 193.148 l 114.953 193.137 
+l 114.953 193.125 l 114.957 193.109 l 114.957 193.098 l 114.961 193.082 
+l 114.965 193.07 l 114.965 193.059 l 114.969 193.043 l 114.973 193.031 l
+ 114.973 193.02 l 114.977 193.004 l 114.98 192.992 l 114.98 192.977 l 114.984
+ 192.965 l 114.984 192.953 l 114.988 192.938 l 114.992 192.926 l 114.992
+ 192.91 l 115 192.887 l 115 192.871 l 115.004 192.859 l 115.004 192.848 
+l 115.008 192.832 l 115.012 192.82 l 115.012 192.805 l 115.02 192.781 l 
+115.02 192.766 l 115.023 192.754 l 115.023 192.738 l 115.031 192.715 l 115.031
+ 192.699 l 115.035 192.688 l 115.039 192.672 l 115.039 192.66 l 115.043 
+192.648 l 115.043 192.633 l 115.047 192.621 l 115.051 192.605 l 115.051 
+192.594 l 115.055 192.582 l 115.059 192.566 l 115.059 192.555 l 115.062 
+192.543 l 115.066 192.527 l 115.066 192.516 l 115.07 192.5 l 115.07 192.488
+ l 115.074 192.477 l 115.078 192.461 l 115.078 192.449 l 115.082 192.434
+ l 115.086 192.422 l 115.086 192.41 l 115.09 192.395 l 115.09 192.383 l 
+115.094 192.367 l 115.098 192.355 l 115.098 192.344 l 115.102 192.328 l 
+115.105 192.316 l 115.105 192.301 l 115.109 192.289 l 115.109 192.277 l 
+115.113 192.262 l 115.117 192.25 l 115.117 192.234 l 115.125 192.211 l 115.125
+ 192.195 l 115.129 192.184 l 115.129 192.168 l 115.137 192.145 l 115.137
+ 192.129 l 115.141 192.117 l 115.145 192.102 l 115.145 192.09 l 115.148 
+192.078 l 115.148 192.062 l 115.152 192.051 l 115.156 192.035 l 115.156 
+192.023 l 115.16 192.012 l 115.164 191.996 l 115.164 191.984 l 115.168 191.969
+ l 115.172 191.957 l 115.172 191.945 l 115.176 191.93 l 115.176 191.918 
+l 115.18 191.902 l 115.184 191.891 l 115.184 191.879 l 115.188 191.863 l
+ 115.191 191.852 l 115.191 191.836 l 115.195 191.824 l 115.195 191.809 l
+ 115.203 191.785 l 115.203 191.77 l 115.207 191.758 l 115.211 191.742 l 
+115.211 191.73 l 115.215 191.719 l 115.215 191.703 l 115.219 191.691 l 115.223
+ 191.676 l 115.223 191.664 l 115.227 191.652 l 115.23 191.637 l 115.23 191.625
+ l 115.234 191.609 l 115.234 191.598 l 115.238 191.586 l 115.242 191.57 
+l 115.242 191.559 l 115.246 191.543 l 115.25 191.531 l 115.25 191.516 l 
+115.254 191.504 l 115.254 191.492 l 115.258 191.477 l 115.262 191.465 l 
+115.262 191.449 l 115.27 191.426 l 115.27 191.41 l 115.273 191.398 l 115.277
+ 191.383 l 115.277 191.371 l 115.281 191.359 l 115.281 191.344 l 115.285
+ 191.332 l 115.289 191.316 l 115.289 191.305 l 115.293 191.289 l 115.297
+ 191.277 l 115.297 191.266 l 115.301 191.25 l 115.301 191.238 l 115.305 
+191.223 l 115.309 191.211 l 115.309 191.199 l 115.312 191.184 l 115.316 
+191.172 l 115.316 191.156 l 115.32 191.145 l 115.32 191.129 l 115.328 191.105
+ l 115.328 191.09 l 115.332 191.078 l 115.336 191.062 l 115.336 191.051 
+l 115.34 191.035 l 115.34 191.023 l 115.344 191.012 l 115.348 190.996 l 
+115.348 190.984 l 115.352 190.969 l 115.355 190.957 l 115.355 190.945 l 
+115.359 190.93 l 115.363 190.918 l 115.363 190.902 l 115.367 190.891 l 115.367
+ 190.875 l 115.375 190.852 l 115.375 190.836 l 115.379 190.824 l 115.383
+ 190.809 l 115.383 190.797 l 115.387 190.781 l 115.387 190.77 l 115.391 
+190.758 l 115.395 190.742 l 115.395 190.73 l 115.398 190.715 l 115.402 190.703
+ l 115.402 190.691 l 115.406 190.676 l 115.406 190.664 l 115.41 190.648 
+l 115.414 190.637 l 115.414 190.621 l 115.422 190.598 l 115.422 190.582 
+l 115.426 190.57 l 115.426 190.555 l 115.43 190.543 l 115.434 190.527 l 
+115.434 190.516 l 115.438 190.504 l 115.441 190.488 l 115.441 190.477 l 
+115.445 190.461 l 115.445 190.449 l 115.449 190.434 l 115.453 190.422 l 
+115.453 190.41 l 115.457 190.395 l 115.461 190.383 l 115.461 190.367 l 115.465
+ 190.355 l 115.469 190.34 l 115.469 190.328 l 115.473 190.316 l 115.473 
+190.301 l 115.477 190.289 l 115.48 190.273 l 115.48 190.262 l 115.484 190.246
+ l 115.488 190.234 l 115.488 190.223 l 115.492 190.207 l 115.492 190.195
+ l 115.496 190.18 l 115.5 190.168 l 115.5 190.152 l 115.508 190.129 l 115.508
+ 190.113 l 115.512 190.102 l 115.512 190.086 l 115.516 190.074 l 115.52 
+190.059 l 115.52 190.047 l 115.523 190.031 l 115.527 190.02 l 115.527 190.008
+ l 115.531 189.992 l 115.531 189.98 l 115.535 189.965 l 115.539 189.953 
+l 115.539 189.938 l 115.547 189.914 l 115.547 189.898 l 115.551 189.887 
+l 115.555 189.871 l 115.555 189.859 l 115.559 189.844 l 115.559 189.832 
+l 115.562 189.82 l 115.566 189.805 l 115.566 189.793 l 115.57 189.777 l 
+115.574 189.766 l 115.574 189.75 l 115.578 189.738 l 115.578 189.723 l 115.586
+ 189.699 l 115.586 189.684 l 115.59 189.672 l 115.594 189.656 l 115.594 
+189.645 l 115.598 189.629 l 115.598 189.617 l 115.602 189.602 l 115.605 
+189.59 l 115.605 189.578 l 115.609 189.562 l 115.613 189.551 l 115.613 189.535
+ l 115.617 189.523 l 115.617 189.508 l 115.625 189.484 l 115.625 189.469
+ l 115.629 189.457 l 115.633 189.441 l 115.633 189.43 l 115.637 189.414 
+l 115.637 189.402 l 115.641 189.387 l 115.645 189.375 l 115.645 189.363 
+l 115.648 189.348 l 115.652 189.336 l 115.652 189.32 l 115.656 189.309 l
+ 115.66 189.293 l 115.66 189.281 l 115.664 189.266 l 115.664 189.254 l 115.668
+ 189.242 l 115.672 189.227 l 115.672 189.215 l 115.676 189.199 l 115.68 
+189.188 l 115.68 189.172 l 115.684 189.16 l 115.684 189.145 l 115.691 189.121
+ l 115.691 189.105 l 115.695 189.094 l 115.699 189.078 l 115.699 189.066
+ l 115.703 189.051 l 115.703 189.039 l 115.707 189.023 l 115.711 189.012
+ l 115.711 189 l 115.715 188.984 l 115.719 188.973 l 115.719 188.957 l 115.723
+ 188.945 l 115.723 188.93 l 115.727 188.918 l 115.73 188.902 l 115.73 188.891
+ l 115.734 188.875 l 115.738 188.863 l 115.738 188.852 l 115.742 188.836
+ l 115.746 188.824 l 115.746 188.809 l 115.75 188.797 l 115.75 188.781 l
+ 115.754 188.77 l 115.758 188.754 l 115.758 188.742 l 115.762 188.73 l 115.766
+ 188.715 l 115.766 188.703 l 115.77 188.688 l 115.77 188.676 l 115.773 188.66
+ l 115.777 188.648 l 115.777 188.633 l 115.781 188.621 l 115.785 188.605
+ l 115.785 188.594 l 115.789 188.582 l 115.789 188.566 l 115.793 188.555
+ l 115.797 188.539 l 115.797 188.527 l 115.801 188.512 l 115.805 188.5 l
+ 115.805 188.484 l 115.809 188.473 l 115.809 188.457 l 115.816 188.434 l
+ 115.816 188.418 l 115.82 188.406 l 115.824 188.391 l 115.824 188.379 l 
+115.828 188.363 l 115.828 188.352 l 115.832 188.336 l 115.836 188.324 l 
+115.836 188.309 l 115.844 188.285 l 115.844 188.27 l 115.848 188.258 l 115.852
+ 188.242 l 115.852 188.23 l 115.855 188.215 l 115.855 188.203 l 115.859 
+188.188 l 115.863 188.176 l 115.863 188.16 l 115.871 188.137 l 115.871 188.121
+ l 115.875 188.109 l 115.875 188.094 l 115.879 188.082 l 115.883 188.066
+ l 115.883 188.055 l 115.887 188.039 l 115.891 188.027 l 115.891 188.012
+ l 115.895 188 l 115.895 187.984 l 115.902 187.961 l 115.902 187.945 l 115.906
+ 187.934 l 115.91 187.918 l 115.91 187.906 l 115.914 187.891 l 115.914 187.879
+ l 115.918 187.863 l 115.922 187.852 l 115.922 187.836 l 115.926 187.824
+ l 115.93 187.809 l 115.93 187.797 l 115.934 187.785 l 115.938 187.77 l 
+115.938 187.758 l 115.941 187.742 l 115.941 187.73 l 115.945 187.715 l 115.949
+ 187.703 l 115.949 187.688 l 115.953 187.676 l 115.957 187.66 l 115.957 
+187.648 l 115.961 187.633 l 115.961 187.621 l 115.965 187.609 l 115.969 
+187.594 l 115.969 187.582 l 115.973 187.566 l 115.977 187.555 l 115.977 
+187.539 l 115.98 187.527 l 115.98 187.512 l 115.984 187.5 l 115.988 187.484
+ l 115.988 187.473 l 115.992 187.457 l 115.996 187.445 l 115.996 187.43 
+l 116 187.418 l 116 187.406 l 116.004 187.391 l 116.008 187.379 l 116.008
+ 187.363 l 116.012 187.352 l 116.016 187.336 l 116.016 187.324 l 116.02 
+187.309 l 116.02 187.297 l 116.023 187.281 l 116.027 187.27 l 116.027 187.254
+ l 116.031 187.242 l 116.035 187.227 l 116.035 187.215 l 116.039 187.203
+ l 116.043 187.188 l 116.043 187.176 l 116.047 187.16 l 116.047 187.148 
+l 116.051 187.133 l 116.055 187.121 l 116.055 187.105 l 116.059 187.094 
+l 116.062 187.078 l 116.062 187.066 l 116.066 187.051 l 116.066 187.039 
+l 116.07 187.023 l 116.074 187.012 l 116.074 186.996 l 116.082 186.973 l
+ 116.082 186.957 l 116.086 186.945 l 116.086 186.93 l 116.09 186.918 l 116.094
+ 186.902 l 116.094 186.891 l 116.098 186.875 l 116.102 186.863 l 116.102
+ 186.848 l 116.105 186.836 l 116.105 186.82 l 116.109 186.809 l 116.113 
+186.793 l 116.113 186.781 l 116.117 186.766 l 116.121 186.754 l 116.121 
+186.742 l 116.125 186.727 l 116.129 186.715 l 116.129 186.699 l 116.133 
+186.688 l 116.133 186.672 l 116.137 186.66 l 116.141 186.645 l 116.141 186.633
+ l 116.145 186.617 l 116.148 186.605 l 116.148 186.59 l 116.152 186.578 
+l 116.152 186.562 l 116.156 186.551 l 116.16 186.535 l 116.16 186.523 l 
+116.164 186.508 l 116.168 186.496 l 116.168 186.484 l 116.172 186.469 l 
+116.172 186.457 l 116.176 186.441 l 116.18 186.43 l 116.18 186.414 l 116.184
+ 186.402 l 116.188 186.387 l 116.188 186.375 l 116.191 186.359 l 116.191
+ 186.348 l 116.195 186.332 l 116.199 186.32 l 116.199 186.305 l 116.203 
+186.293 l 116.207 186.277 l 116.207 186.266 l 116.211 186.25 l 116.211 186.238
+ l 116.215 186.223 l 116.219 186.211 l 116.219 186.195 l 116.227 186.172
+ l 116.227 186.156 l 116.23 186.145 l 116.234 186.129 l 116.234 186.117 
+l 116.238 186.102 l 116.238 186.09 l 116.242 186.074 l 116.246 186.062 l
+ 116.246 186.047 l 116.25 186.035 l 116.254 186.02 l 116.254 186.008 l 116.258
+ 185.992 l 116.258 185.98 l 116.262 185.965 l 116.266 185.953 l 116.266 
+185.938 l 116.27 185.926 l 116.273 185.91 l 116.273 185.898 l 116.277 185.883
+ l 116.277 185.871 l 116.281 185.859 l 116.285 185.844 l 116.285 185.832
+ l 116.289 185.816 l 116.293 185.805 l 116.293 185.789 l 116.297 185.777
+ l 116.297 185.762 l 116.301 185.75 l 116.305 185.734 l 116.305 185.723 
+l 116.309 185.707 l 116.312 185.695 l 116.312 185.68 l 116.316 185.668 l
+ 116.32 185.652 l 116.32 185.641 l 116.324 185.625 l 116.324 185.613 l 116.328
+ 185.598 l 116.332 185.586 l 116.332 185.57 l 116.336 185.559 l 116.34 185.543
+ l 116.34 185.531 l 116.344 185.516 l 116.344 185.504 l 116.348 185.488 
+l 116.352 185.477 l 116.352 185.465 l 116.355 185.449 l 116.359 185.438 
+l 116.359 185.422 l 116.363 185.41 l 116.363 185.395 l 116.367 185.383 l
+ 116.371 185.367 l 116.371 185.355 l 116.375 185.34 l 116.379 185.328 l 
+116.379 185.312 l 116.383 185.301 l 116.383 185.285 l 116.387 185.273 l 
+116.391 185.258 l 116.391 185.246 l 116.395 185.23 l 116.398 185.219 l 116.398
+ 185.203 l 116.402 185.191 l 116.402 185.176 l 116.406 185.164 l 116.41 
+185.148 l 116.41 185.137 l 116.414 185.121 l 116.418 185.109 l 116.418 185.094
+ l 116.422 185.082 l 116.426 185.066 l 116.426 185.055 l 116.43 185.039 
+l 116.43 185.027 l 116.434 185.012 l 116.438 185 l 116.438 184.984 l 116.445
+ 184.961 l 116.445 184.945 l 116.449 184.934 l 116.449 184.918 l 116.453
+ 184.906 l 116.457 184.891 l 116.457 184.879 l 116.461 184.863 l 116.465
+ 184.852 l 116.465 184.836 l 116.469 184.824 l 116.469 184.809 l 116.473
+ 184.797 l 116.477 184.781 l 116.477 184.77 l 116.48 184.754 l 116.484 184.742
+ l 116.484 184.727 l 116.488 184.715 l 116.488 184.699 l 116.492 184.688
+ l 116.496 184.672 l 116.496 184.66 l 116.5 184.645 l 116.504 184.633 l 
+116.504 184.617 l 116.508 184.605 l 116.512 184.59 l 116.512 184.578 l 116.516
+ 184.562 l 116.516 184.551 l 116.52 184.535 l 116.523 184.523 l 116.523 
+184.508 l 116.527 184.496 l 116.531 184.48 l 116.531 184.469 l 116.535 184.453
+ l 116.535 184.441 l 116.539 184.426 l 116.543 184.414 l 116.543 184.398
+ l 116.547 184.387 l 116.551 184.371 l 116.551 184.359 l 116.555 184.344
+ l 116.555 184.332 l 116.559 184.316 l 116.562 184.305 l 116.562 184.289
+ l 116.566 184.277 l 116.57 184.262 l 116.57 184.25 l 116.574 184.238 l 
+116.574 184.223 l 116.578 184.211 l 116.582 184.195 l 116.582 184.184 l 
+116.586 184.168 l 116.59 184.156 l 116.59 184.141 l 116.594 184.129 l 116.594
+ 184.113 l 116.598 184.102 l 116.602 184.086 l 116.602 184.074 l 116.605
+ 184.059 l 116.609 184.047 l 116.609 184.031 l 116.613 184.02 l 116.617 
+184.004 l 116.617 183.992 l 116.621 183.977 l 116.621 183.965 l 116.625 
+183.949 l 116.629 183.938 l 116.629 183.922 l 116.633 183.91 l 116.637 183.895
+ l 116.637 183.883 l 116.641 183.867 l 116.641 183.855 l 116.645 183.84 
+l 116.648 183.828 l 116.648 183.812 l 116.652 183.801 l 116.656 183.785 
+l 116.656 183.773 l 116.66 183.758 l 116.66 183.746 l 116.664 183.73 l 116.668
+ 183.719 l 116.668 183.703 l 116.672 183.691 l 116.676 183.676 l 116.676
+ 183.664 l 116.68 183.648 l 116.68 183.637 l S
+116.68 183.637 m 116.684 183.621 l 116.688 183.609 l 116.688 183.594 l 
+116.691 183.582 l 116.695 183.566 l 116.695 183.555 l 116.699 183.539 l 
+116.703 183.527 l 116.703 183.512 l 116.707 183.5 l 116.707 183.484 l 116.711
+ 183.473 l 116.715 183.457 l 116.715 183.445 l 116.719 183.43 l 116.723 
+183.418 l 116.723 183.402 l 116.727 183.391 l 116.727 183.375 l 116.73 183.363
+ l 116.734 183.348 l 116.734 183.336 l 116.738 183.32 l 116.742 183.309 
+l 116.742 183.293 l 116.746 183.281 l 116.746 183.266 l 116.75 183.254 l
+ 116.754 183.238 l 116.754 183.227 l 116.758 183.211 l 116.762 183.199 l
+ 116.762 183.184 l 116.766 183.172 l 116.766 183.156 l 116.77 183.145 l 
+116.773 183.129 l 116.773 183.117 l 116.777 183.102 l 116.781 183.09 l 116.781
+ 183.074 l 116.785 183.062 l 116.785 183.047 l 116.789 183.035 l 116.793
+ 183.02 l 116.793 183.008 l 116.797 182.992 l 116.801 182.98 l 116.801 182.965
+ l 116.805 182.953 l 116.809 182.938 l 116.809 182.926 l 116.812 182.91 
+l 116.812 182.898 l 116.816 182.883 l 116.82 182.871 l 116.82 182.855 l 
+116.824 182.844 l 116.828 182.828 l 116.828 182.816 l 116.832 182.801 l 
+116.832 182.789 l 116.836 182.773 l 116.84 182.762 l 116.84 182.746 l 116.844
+ 182.734 l 116.848 182.719 l 116.848 182.707 l 116.852 182.691 l 116.852
+ 182.68 l 116.855 182.664 l 116.859 182.652 l 116.859 182.637 l 116.863 
+182.625 l 116.867 182.609 l 116.867 182.598 l 116.871 182.582 l 116.871 
+182.57 l 116.875 182.555 l 116.879 182.543 l 116.879 182.527 l 116.883 182.516
+ l 116.887 182.5 l 116.887 182.488 l 116.891 182.473 l 116.895 182.461 l
+ 116.895 182.445 l 116.898 182.434 l 116.898 182.418 l 116.902 182.406 l
+ 116.906 182.391 l 116.906 182.379 l 116.91 182.363 l 116.914 182.352 l 
+116.914 182.336 l 116.918 182.324 l 116.918 182.309 l 116.922 182.297 l 
+116.926 182.281 l 116.926 182.27 l 116.93 182.254 l 116.934 182.242 l 116.934
+ 182.227 l 116.938 182.215 l 116.938 182.199 l 116.941 182.188 l 116.945
+ 182.172 l 116.945 182.16 l 116.949 182.145 l 116.953 182.133 l 116.953 
+182.117 l 116.957 182.105 l 116.957 182.09 l 116.961 182.078 l 116.965 182.062
+ l 116.965 182.051 l 116.969 182.035 l 116.973 182.023 l 116.973 182.008
+ l 116.977 181.996 l 116.977 181.98 l 116.98 181.969 l 116.984 181.953 l
+ 116.984 181.941 l 116.988 181.926 l 116.992 181.914 l 116.992 181.898 l
+ 116.996 181.887 l 117 181.871 l 117 181.859 l 117.004 181.844 l 117.004
+ 181.832 l 117.012 181.801 l 117.012 181.789 l 117.016 181.773 l 117.02 
+181.762 l 117.02 181.746 l 117.023 181.734 l 117.023 181.719 l 117.027 181.707
+ l 117.031 181.691 l 117.031 181.68 l 117.035 181.664 l 117.039 181.652 
+l 117.039 181.637 l 117.043 181.625 l 117.043 181.609 l 117.047 181.598 
+l 117.051 181.582 l 117.051 181.57 l 117.055 181.555 l 117.059 181.543 l
+ 117.059 181.527 l 117.062 181.516 l 117.062 181.5 l 117.066 181.488 l 117.07
+ 181.473 l 117.07 181.461 l 117.074 181.445 l 117.078 181.434 l 117.078 
+181.418 l 117.082 181.406 l 117.086 181.391 l 117.086 181.379 l 117.09 181.363
+ l 117.09 181.352 l 117.094 181.336 l 117.098 181.324 l 117.098 181.309 
+l 117.102 181.297 l 117.105 181.281 l 117.105 181.27 l 117.109 181.254 l
+ 117.109 181.242 l 117.113 181.227 l 117.117 181.215 l 117.117 181.199 l
+ 117.121 181.188 l 117.125 181.172 l 117.125 181.16 l 117.129 181.145 l 
+117.129 181.133 l 117.133 181.117 l 117.137 181.105 l 117.137 181.09 l 117.141
+ 181.078 l 117.145 181.062 l 117.145 181.051 l 117.148 181.035 l 117.148
+ 181.023 l 117.152 181.008 l 117.156 180.996 l 117.156 180.98 l 117.16 180.969
+ l 117.164 180.953 l 117.164 180.941 l 117.168 180.926 l 117.168 180.914
+ l 117.176 180.883 l 117.176 180.871 l 117.18 180.855 l 117.184 180.844 
+l 117.184 180.828 l 117.188 180.816 l 117.191 180.801 l 117.191 180.789 
+l 117.195 180.773 l 117.195 180.762 l 117.199 180.746 l 117.203 180.734 
+l 117.203 180.719 l 117.207 180.707 l 117.211 180.691 l 117.211 180.68 l
+ 117.215 180.664 l 117.215 180.652 l 117.219 180.637 l 117.223 180.625 l
+ 117.223 180.609 l 117.227 180.598 l 117.23 180.582 l 117.23 180.57 l 117.234
+ 180.555 l 117.234 180.543 l 117.238 180.527 l 117.242 180.516 l 117.242
+ 180.5 l 117.246 180.488 l 117.25 180.473 l 117.25 180.461 l 117.254 180.445
+ l 117.254 180.434 l 117.258 180.418 l 117.262 180.406 l 117.262 180.391
+ l 117.266 180.379 l 117.27 180.363 l 117.27 180.352 l 117.273 180.336 l
+ 117.277 180.324 l 117.277 180.309 l 117.281 180.297 l 117.281 180.281 l
+ 117.285 180.27 l 117.289 180.254 l 117.289 180.242 l 117.293 180.227 l 
+117.297 180.215 l 117.297 180.199 l 117.301 180.184 l 117.301 180.172 l 
+117.305 180.156 l 117.309 180.145 l 117.309 180.129 l 117.312 180.117 l 
+117.316 180.102 l 117.316 180.09 l 117.32 180.074 l 117.32 180.062 l 117.324
+ 180.047 l 117.328 180.035 l 117.328 180.02 l 117.332 180.008 l 117.336 
+179.992 l 117.336 179.98 l 117.34 179.965 l 117.34 179.953 l 117.344 179.938
+ l 117.348 179.926 l 117.348 179.91 l 117.352 179.898 l 117.355 179.883 
+l 117.355 179.871 l 117.359 179.855 l 117.359 179.844 l 117.363 179.828 
+l 117.367 179.816 l 117.367 179.801 l 117.371 179.789 l 117.375 179.773 
+l 117.375 179.762 l 117.379 179.746 l 117.383 179.734 l 117.383 179.719 
+l 117.387 179.707 l 117.387 179.691 l 117.391 179.68 l 117.395 179.664 l
+ 117.395 179.652 l 117.398 179.637 l 117.402 179.625 l 117.402 179.609 l
+ 117.406 179.594 l 117.406 179.582 l 117.41 179.566 l 117.414 179.555 l 
+117.414 179.539 l 117.418 179.527 l 117.422 179.512 l 117.422 179.5 l 117.426
+ 179.484 l 117.426 179.473 l 117.43 179.457 l 117.434 179.445 l 117.434 
+179.43 l 117.438 179.418 l 117.441 179.402 l 117.441 179.391 l 117.445 179.375
+ l 117.445 179.363 l 117.449 179.348 l 117.453 179.336 l 117.453 179.32 
+l 117.457 179.309 l 117.461 179.293 l 117.461 179.281 l 117.465 179.266 
+l 117.469 179.254 l 117.469 179.238 l 117.473 179.227 l 117.473 179.211 
+l 117.477 179.199 l 117.48 179.184 l 117.48 179.172 l 117.484 179.156 l 
+117.488 179.145 l 117.488 179.129 l 117.492 179.117 l 117.492 179.102 l 
+117.496 179.09 l 117.5 179.074 l 117.5 179.062 l 117.508 179.031 l 117.508
+ 179.02 l 117.512 179.004 l 117.512 178.992 l 117.516 178.977 l 117.52 178.965
+ l 117.52 178.949 l 117.523 178.938 l 117.527 178.922 l 117.527 178.91 l
+ 117.531 178.895 l 117.531 178.883 l 117.535 178.867 l 117.539 178.855 l
+ 117.539 178.84 l 117.543 178.828 l 117.547 178.812 l 117.547 178.801 l 
+117.551 178.785 l 117.551 178.773 l 117.555 178.758 l 117.559 178.746 l 
+117.559 178.73 l 117.562 178.719 l 117.566 178.703 l 117.566 178.691 l 117.57
+ 178.676 l 117.574 178.664 l 117.574 178.648 l 117.578 178.637 l 117.578
+ 178.621 l 117.582 178.609 l 117.586 178.594 l 117.586 178.582 l 117.59 
+178.566 l 117.594 178.555 l 117.594 178.539 l 117.598 178.527 l 117.598 
+178.512 l 117.602 178.496 l 117.605 178.484 l 117.605 178.469 l 117.609 
+178.457 l 117.613 178.441 l 117.613 178.43 l 117.617 178.414 l 117.617 178.402
+ l 117.621 178.387 l 117.625 178.375 l 117.625 178.359 l 117.629 178.348
+ l 117.633 178.332 l 117.633 178.32 l 117.637 178.305 l 117.637 178.293 
+l 117.641 178.277 l 117.645 178.266 l 117.645 178.25 l 117.648 178.238 l
+ 117.652 178.223 l 117.652 178.211 l 117.656 178.195 l 117.66 178.184 l 
+117.66 178.168 l 117.664 178.156 l 117.664 178.141 l 117.668 178.129 l 117.672
+ 178.113 l 117.672 178.102 l 117.676 178.086 l 117.68 178.074 l 117.68 178.059
+ l 117.684 178.047 l 117.684 178.031 l 117.688 178.02 l 117.691 178.004 
+l 117.691 177.992 l 117.699 177.961 l 117.699 177.949 l 117.703 177.934 
+l 117.703 177.922 l 117.707 177.906 l 117.711 177.895 l 117.711 177.879 
+l 117.715 177.867 l 117.719 177.852 l 117.719 177.84 l 117.723 177.824 l
+ 117.723 177.812 l 117.727 177.797 l 117.73 177.785 l 117.73 177.77 l 117.734
+ 177.758 l 117.738 177.742 l 117.738 177.73 l 117.742 177.715 l 117.742 
+177.703 l 117.746 177.688 l 117.75 177.676 l 117.75 177.66 l 117.754 177.648
+ l 117.758 177.633 l 117.758 177.621 l 117.762 177.605 l 117.766 177.594
+ l 117.766 177.578 l 117.77 177.566 l 117.77 177.551 l 117.773 177.539 l
+ 117.777 177.523 l 117.777 177.512 l 117.781 177.496 l 117.785 177.484 l
+ 117.785 177.469 l 117.789 177.457 l 117.789 177.441 l 117.793 177.426 l
+ 117.797 177.414 l 117.797 177.398 l 117.801 177.387 l 117.805 177.371 l
+ 117.805 177.359 l 117.809 177.344 l 117.809 177.332 l 117.812 177.316 l
+ 117.816 177.305 l 117.816 177.289 l 117.82 177.277 l 117.824 177.262 l 
+117.824 177.25 l 117.828 177.234 l 117.828 177.223 l 117.832 177.207 l 117.836
+ 177.195 l 117.836 177.18 l 117.84 177.168 l 117.844 177.152 l 117.844 177.141
+ l 117.848 177.125 l 117.852 177.113 l 117.852 177.098 l 117.855 177.086
+ l 117.855 177.07 l 117.859 177.059 l 117.863 177.043 l 117.863 177.031 
+l 117.867 177.016 l 117.871 177.004 l 117.871 176.988 l 117.875 176.977 
+l 117.875 176.961 l 117.879 176.949 l 117.883 176.934 l 117.883 176.922 
+l 117.887 176.906 l 117.891 176.895 l 117.891 176.879 l 117.895 176.863 
+l 117.895 176.852 l 117.898 176.836 l 117.902 176.824 l 117.902 176.809 
+l 117.906 176.797 l 117.91 176.781 l 117.91 176.77 l 117.914 176.754 l 117.914
+ 176.742 l 117.918 176.727 l 117.922 176.715 l 117.922 176.699 l 117.926
+ 176.688 l 117.93 176.672 l 117.93 176.66 l 117.934 176.645 l 117.934 176.633
+ l 117.938 176.617 l 117.941 176.605 l 117.941 176.59 l 117.945 176.578 
+l 117.949 176.562 l 117.949 176.551 l 117.953 176.535 l 117.957 176.523 
+l 117.957 176.508 l 117.961 176.496 l 117.961 176.48 l 117.965 176.469 l
+ 117.969 176.453 l 117.969 176.441 l 117.973 176.426 l 117.977 176.414 l
+ 117.977 176.398 l 117.98 176.387 l 117.98 176.371 l 117.984 176.359 l 117.988
+ 176.344 l 117.988 176.332 l 117.996 176.301 l 117.996 176.289 l 118 176.273
+ l 118 176.262 l 118.004 176.246 l 118.008 176.234 l 118.008 176.219 l 118.012
+ 176.207 l 118.016 176.191 l 118.016 176.18 l 118.02 176.164 l 118.02 176.152
+ l 118.023 176.137 l 118.027 176.125 l 118.027 176.109 l 118.031 176.098
+ l 118.035 176.082 l 118.035 176.07 l 118.039 176.055 l 118.043 176.043 
+l 118.043 176.027 l 118.047 176.016 l 118.047 176 l 118.051 175.988 l 118.055
+ 175.973 l 118.055 175.961 l 118.059 175.945 l 118.062 175.934 l 118.062
+ 175.918 l 118.066 175.906 l 118.066 175.891 l 118.07 175.879 l 118.074 
+175.863 l 118.074 175.852 l 118.078 175.836 l 118.082 175.824 l 118.082 
+175.809 l 118.086 175.797 l 118.086 175.781 l 118.09 175.77 l 118.094 175.754
+ l 118.094 175.742 l 118.098 175.727 l 118.102 175.715 l 118.102 175.699
+ l 118.105 175.688 l 118.105 175.672 l 118.109 175.656 l 118.113 175.645
+ l 118.113 175.629 l 118.117 175.617 l 118.121 175.602 l 118.121 175.59 
+l 118.125 175.574 l 118.125 175.562 l 118.129 175.547 l 118.133 175.535 
+l 118.133 175.52 l 118.137 175.508 l 118.141 175.492 l 118.141 175.48 l 
+118.145 175.465 l 118.148 175.453 l 118.148 175.438 l 118.152 175.426 l 
+118.152 175.41 l 118.156 175.398 l 118.16 175.383 l 118.16 175.371 l 118.164
+ 175.355 l 118.168 175.344 l 118.168 175.328 l 118.172 175.316 l 118.172
+ 175.301 l 118.176 175.289 l 118.18 175.273 l 118.18 175.262 l 118.184 175.246
+ l 118.188 175.234 l 118.188 175.219 l 118.191 175.207 l 118.191 175.191
+ l 118.195 175.18 l 118.199 175.164 l 118.199 175.152 l 118.203 175.137 
+l 118.207 175.125 l 118.207 175.109 l 118.211 175.098 l 118.211 175.082 
+l 118.215 175.07 l 118.219 175.055 l 118.219 175.043 l 118.223 175.027 l
+ 118.227 175.016 l 118.227 175 l 118.23 174.988 l 118.23 174.973 l 118.234
+ 174.961 l 118.238 174.945 l 118.238 174.934 l 118.242 174.918 l 118.246
+ 174.906 l 118.246 174.891 l 118.25 174.875 l 118.254 174.863 l 118.254 
+174.848 l 118.258 174.836 l 118.258 174.82 l 118.262 174.809 l 118.266 174.793
+ l 118.266 174.781 l 118.27 174.766 l 118.273 174.754 l 118.273 174.738 
+l 118.277 174.727 l 118.277 174.711 l 118.281 174.699 l 118.285 174.684 
+l 118.285 174.672 l 118.289 174.656 l 118.293 174.645 l 118.293 174.629 
+l 118.297 174.617 l 118.297 174.602 l 118.301 174.59 l 118.305 174.574 l
+ 118.305 174.562 l 118.309 174.547 l 118.312 174.535 l 118.312 174.52 l 
+118.316 174.508 l 118.316 174.492 l 118.32 174.48 l 118.324 174.465 l 118.324
+ 174.453 l 118.328 174.438 l 118.332 174.426 l 118.332 174.41 l 118.336 
+174.398 l 118.34 174.383 l 118.34 174.371 l 118.344 174.355 l 118.344 174.344
+ l 118.348 174.328 l 118.352 174.316 l 118.352 174.301 l 118.355 174.289
+ l 118.359 174.273 l 118.359 174.262 l 118.363 174.246 l 118.363 174.234
+ l 118.367 174.219 l 118.371 174.207 l 118.371 174.191 l 118.375 174.18 
+l 118.379 174.164 l 118.379 174.152 l 118.383 174.137 l 118.383 174.125 
+l 118.387 174.109 l 118.391 174.098 l 118.391 174.082 l 118.395 174.07 l
+ 118.398 174.055 l 118.398 174.043 l 118.402 174.027 l 118.402 174.016 l
+ 118.406 174 l 118.41 173.988 l 118.41 173.973 l 118.414 173.961 l 118.418
+ 173.945 l 118.418 173.934 l 118.422 173.918 l 118.422 173.906 l 118.426
+ 173.891 l 118.43 173.879 l 118.43 173.863 l 118.434 173.852 l 118.438 173.836
+ l 118.438 173.824 l 118.441 173.809 l 118.445 173.797 l 118.445 173.781
+ l 118.449 173.766 l 118.449 173.754 l 118.453 173.738 l 118.457 173.727
+ l 118.457 173.711 l 118.461 173.699 l 118.465 173.684 l 118.465 173.672
+ l 118.469 173.656 l 118.469 173.645 l 118.473 173.629 l 118.477 173.617
+ l 118.477 173.602 l 118.48 173.59 l 118.484 173.574 l 118.484 173.562 l
+ 118.488 173.547 l 118.488 173.535 l 118.492 173.52 l 118.496 173.508 l 
+118.496 173.492 l 118.5 173.48 l 118.504 173.465 l 118.504 173.453 l 118.508
+ 173.438 l 118.508 173.426 l 118.512 173.41 l 118.516 173.398 l 118.516 
+173.383 l 118.52 173.371 l 118.523 173.355 l 118.523 173.344 l 118.527 173.328
+ l 118.531 173.316 l 118.531 173.301 l 118.535 173.289 l 118.535 173.273
+ l 118.539 173.262 l 118.543 173.246 l 118.543 173.234 l 118.547 173.219
+ l 118.551 173.207 l 118.551 173.191 l 118.555 173.18 l 118.555 173.164 
+l 118.559 173.152 l 118.562 173.137 l 118.562 173.125 l 118.566 173.109 
+l 118.57 173.098 l 118.57 173.082 l 118.574 173.07 l 118.574 173.055 l 118.578
+ 173.043 l 118.582 173.027 l 118.582 173.016 l 118.586 173 l 118.59 172.988
+ l 118.59 172.973 l 118.594 172.961 l 118.594 172.945 l 118.598 172.934 
+l 118.602 172.918 l 118.602 172.906 l 118.605 172.891 l 118.609 172.879 
+l 118.609 172.863 l 118.613 172.852 l 118.613 172.836 l 118.617 172.824 
+l 118.621 172.809 l 118.621 172.797 l 118.625 172.781 l 118.629 172.77 l
+ 118.629 172.754 l 118.633 172.742 l 118.637 172.727 l 118.637 172.715 l
+ 118.641 172.699 l 118.641 172.688 l 118.645 172.672 l 118.648 172.66 l 
+118.648 172.645 l 118.652 172.633 l 118.656 172.617 l 118.656 172.605 l 
+118.66 172.59 l 118.66 172.578 l 118.664 172.562 l 118.668 172.551 l 118.668
+ 172.535 l 118.672 172.523 l 118.676 172.508 l 118.676 172.496 l 118.68 
+172.48 l 118.68 172.469 l 118.684 172.453 l 118.688 172.441 l 118.688 172.426
+ l 118.691 172.414 l 118.695 172.398 l 118.695 172.387 l 118.699 172.371
+ l 118.699 172.359 l 118.703 172.344 l 118.707 172.332 l 118.707 172.316
+ l 118.711 172.305 l 118.715 172.289 l 118.715 172.277 l 118.719 172.262
+ l 118.723 172.25 l 118.723 172.234 l 118.727 172.223 l 118.727 172.207 
+l 118.73 172.195 l 118.734 172.18 l 118.734 172.168 l 118.738 172.152 l 
+118.742 172.141 l 118.742 172.125 l 118.746 172.113 l 118.746 172.098 l 
+118.754 172.074 l 118.754 172.059 l 118.758 172.047 l 118.762 172.031 l 
+118.762 172.02 l 118.766 172.004 l 118.766 171.992 l 118.77 171.977 l 118.773
+ 171.965 l 118.773 171.949 l 118.777 171.938 l 118.781 171.922 l 118.781
+ 171.91 l 118.785 171.895 l 118.785 171.883 l 118.789 171.867 l 118.793 
+171.855 l 118.793 171.84 l 118.797 171.828 l 118.801 171.812 l 118.801 171.801
+ l 118.805 171.785 l 118.805 171.773 l 118.809 171.758 l 118.812 171.746
+ l 118.812 171.73 l 118.816 171.719 l 118.82 171.703 l 118.82 171.691 l 
+118.824 171.676 l 118.828 171.664 l 118.828 171.648 l 118.832 171.637 l 
+118.832 171.621 l 118.836 171.609 l 118.84 171.594 l 118.84 171.582 l 118.844
+ 171.566 l 118.848 171.555 l 118.848 171.539 l 118.852 171.527 l 118.852
+ 171.512 l 118.855 171.5 l 118.859 171.484 l 118.859 171.473 l 118.863 171.457
+ l 118.867 171.445 l 118.867 171.43 l 118.871 171.418 l 118.871 171.402 
+l 118.875 171.391 l 118.879 171.375 l 118.879 171.363 l 118.883 171.348 
+l 118.887 171.336 l 118.887 171.32 l 118.891 171.309 l 118.891 171.293 l
+ 118.895 171.281 l 118.898 171.266 l 118.898 171.254 l 118.902 171.238 l
+ 118.906 171.227 l 118.906 171.211 l 118.91 171.199 l 118.914 171.184 l 
+118.914 171.172 l 118.918 171.156 l 118.918 171.145 l 118.922 171.129 l 
+118.926 171.117 l 118.926 171.105 l 118.93 171.09 l 118.934 171.078 l 118.934
+ 171.062 l 118.938 171.051 l 118.938 171.035 l 118.941 171.023 l 118.945
+ 171.008 l 118.945 170.996 l 118.949 170.98 l 118.953 170.969 l 118.953 
+170.953 l 118.957 170.941 l 118.957 170.926 l 118.961 170.914 l 118.965 
+170.898 l 118.965 170.887 l 118.969 170.871 l 118.973 170.859 l 118.973 
+170.844 l 118.977 170.832 l 118.977 170.816 l 118.98 170.805 l 118.984 170.789
+ l 118.984 170.777 l 118.988 170.762 l 118.992 170.75 l 118.992 170.734 
+l 118.996 170.723 l 118.996 170.707 l 119 170.695 l 119.004 170.68 l 119.004
+ 170.668 l 119.008 170.652 l 119.012 170.641 l 119.012 170.625 l 119.016
+ 170.613 l 119.02 170.598 l 119.02 170.586 l 119.023 170.57 l 119.023 170.559
+ l 119.027 170.547 l 119.031 170.531 l 119.031 170.52 l 119.035 170.504 
+l 119.039 170.492 l 119.039 170.477 l 119.043 170.465 l 119.043 170.449 
+l 119.047 170.438 l 119.051 170.422 l 119.051 170.41 l 119.055 170.395 l
+ 119.059 170.383 l 119.059 170.367 l 119.062 170.355 l 119.062 170.34 l 
+119.066 170.328 l 119.07 170.312 l 119.07 170.301 l 119.074 170.285 l 119.078
+ 170.273 l 119.078 170.258 l 119.082 170.246 l 119.082 170.23 l 119.086 
+170.219 l 119.09 170.203 l 119.09 170.191 l 119.094 170.176 l 119.098 170.164
+ l 119.098 170.148 l 119.102 170.137 l 119.105 170.121 l 119.105 170.109
+ l 119.109 170.098 l 119.109 170.082 l 119.113 170.07 l 119.117 170.055 
+l 119.117 170.043 l 119.121 170.027 l 119.125 170.016 l 119.125 170 l 119.129
+ 169.988 l 119.129 169.973 l 119.133 169.961 l 119.137 169.945 l 119.137
+ 169.934 l 119.141 169.918 l 119.145 169.906 l 119.145 169.891 l 119.148
+ 169.879 l 119.148 169.863 l 119.152 169.852 l 119.156 169.836 l 119.156
+ 169.824 l 119.16 169.809 l 119.164 169.797 l 119.164 169.781 l 119.168 
+169.77 l 119.168 169.754 l 119.176 169.73 l 119.176 169.715 l 119.18 169.703
+ l 119.184 169.688 l 119.184 169.676 l 119.188 169.66 l 119.188 169.648 
+l 119.191 169.633 l 119.195 169.621 l 119.195 169.605 l 119.199 169.594 
+l 119.203 169.578 l 119.203 169.566 l 119.207 169.551 l 119.211 169.539 
+l 119.211 169.523 l 119.215 169.512 l 119.215 169.496 l 119.219 169.484 
+l 119.223 169.469 l 119.223 169.457 l 119.227 169.441 l 119.23 169.43 l 
+119.23 169.418 l 119.234 169.402 l 119.234 169.391 l 119.238 169.375 l 119.242
+ 169.363 l 119.242 169.348 l 119.246 169.336 l 119.25 169.32 l 119.25 169.309
+ l 119.254 169.293 l 119.254 169.281 l 119.258 169.266 l 119.262 169.254
+ l 119.262 169.238 l 119.266 169.227 l 119.27 169.211 l 119.27 169.199 l
+ 119.273 169.184 l 119.273 169.172 l 119.277 169.156 l 119.281 169.145 l
+ 119.281 169.133 l 119.285 169.117 l 119.289 169.105 l 119.289 169.09 l 
+119.293 169.078 l 119.297 169.062 l 119.297 169.051 l 119.301 169.035 l 
+119.301 169.023 l 119.305 169.008 l 119.309 168.996 l 119.309 168.98 l 119.312
+ 168.969 l 119.316 168.953 l 119.316 168.941 l 119.32 168.926 l 119.32 168.914
+ l 119.324 168.898 l 119.328 168.887 l 119.328 168.871 l 119.336 168.848
+ l 119.336 168.832 l 119.34 168.82 l 119.34 168.805 l 119.344 168.793 l 
+119.348 168.777 l 119.348 168.766 l 119.352 168.75 l 119.355 168.738 l 119.355
+ 168.723 l 119.359 168.711 l 119.359 168.695 l 119.363 168.684 l 119.367
+ 168.668 l 119.367 168.656 l 119.371 168.641 l 119.375 168.629 l 119.375
+ 168.617 l 119.379 168.602 l 119.379 168.59 l 119.383 168.574 l 119.387 
+168.562 l 119.387 168.547 l 119.391 168.535 l 119.395 168.52 l 119.395 168.508
+ l 119.398 168.492 l 119.402 168.48 l 119.402 168.465 l 119.406 168.453 
+l 119.406 168.438 l 119.41 168.426 l 119.414 168.41 l 119.414 168.398 l 
+119.418 168.387 l 119.422 168.371 l 119.422 168.359 l 119.426 168.344 l 
+119.426 168.332 l 119.43 168.316 l 119.434 168.305 l 119.434 168.289 l 119.438
+ 168.277 l 119.441 168.262 l 119.441 168.25 l 119.445 168.234 l 119.445 
+168.223 l 119.449 168.207 l 119.453 168.195 l 119.453 168.184 l 119.457 
+168.168 l 119.461 168.156 l 119.461 168.141 l 119.465 168.129 l 119.465 
+168.113 l 119.469 168.102 l 119.473 168.086 l 119.473 168.074 l 119.477 
+168.059 l 119.48 168.047 l 119.48 168.031 l 119.484 168.02 l 119.488 168.004
+ l 119.488 167.992 l 119.492 167.98 l 119.492 167.965 l 119.496 167.953 
+l 119.5 167.938 l 119.5 167.926 l 119.504 167.91 l 119.508 167.898 l 119.508
+ 167.883 l 119.512 167.871 l 119.512 167.855 l 119.516 167.844 l 119.52 
+167.828 l 119.52 167.816 l 119.523 167.801 l 119.527 167.789 l 119.527 167.777
+ l 119.531 167.762 l 119.531 167.75 l 119.535 167.734 l 119.539 167.723 
+l 119.539 167.707 l 119.543 167.695 l 119.547 167.68 l 119.547 167.668 l
+ 119.551 167.652 l 119.551 167.641 l 119.555 167.625 l 119.559 167.613 l
+ 119.559 167.602 l 119.562 167.586 l 119.566 167.574 l 119.566 167.559 l
+ 119.57 167.547 l 119.57 167.531 l 119.574 167.52 l 119.578 167.504 l 119.578
+ 167.492 l 119.582 167.477 l 119.586 167.465 l 119.586 167.449 l 119.594
+ 167.426 l 119.594 167.41 l 119.598 167.398 l 119.598 167.383 l 119.602 
+167.371 l 119.605 167.355 l 119.605 167.344 l 119.609 167.328 l 119.613 
+167.316 l 119.613 167.301 l 119.617 167.289 l 119.617 167.273 l 119.625 
+167.25 l 119.625 167.234 l 119.629 167.223 l 119.633 167.207 l 119.633 167.195
+ l 119.637 167.18 l 119.637 167.168 l 119.641 167.152 l 119.645 167.141 
+l 119.645 167.125 l 119.652 167.102 l 119.652 167.086 l 119.656 167.074 
+l 119.656 167.059 l 119.66 167.047 l 119.664 167.031 l 119.664 167.02 l 
+119.668 167.004 l 119.672 166.992 l 119.672 166.977 l 119.676 166.965 l 
+119.68 166.949 l 119.68 166.938 l 119.684 166.926 l 119.684 166.91 l 119.688
+ 166.898 l 119.691 166.883 l 119.691 166.871 l 119.695 166.855 l 119.699
+ 166.844 l 119.699 166.828 l 119.703 166.816 l 119.703 166.801 l 119.711
+ 166.777 l 119.711 166.762 l 119.715 166.75 l 119.719 166.734 l 119.719 
+166.723 l 119.723 166.707 l 119.723 166.695 l 119.727 166.68 l 119.73 166.668
+ l 119.73 166.656 l 119.734 166.641 l 119.738 166.629 l 119.738 166.613 
+l 119.742 166.602 l 119.742 166.586 l 119.746 166.574 l 119.75 166.559 l
+ 119.75 166.547 l 119.754 166.531 l 119.758 166.52 l 119.758 166.508 l 119.762
+ 166.492 l 119.762 166.48 l 119.766 166.465 l 119.77 166.453 l 119.77 166.438
+ l 119.773 166.426 l 119.777 166.41 l 119.777 166.398 l 119.781 166.383 
+l 119.785 166.371 l 119.785 166.359 l 119.789 166.344 l 119.789 166.332 
+l 119.793 166.316 l 119.797 166.305 l 119.797 166.289 l 119.801 166.277 
+l 119.805 166.262 l 119.805 166.25 l 119.809 166.238 l 119.809 166.223 l
+ 119.812 166.211 l 119.816 166.195 l 119.816 166.184 l 119.82 166.168 l 
+119.824 166.156 l 119.824 166.141 l 119.828 166.129 l 119.828 166.117 l 
+119.832 166.102 l 119.836 166.09 l 119.836 166.074 l 119.84 166.062 l 119.844
+ 166.047 l 119.844 166.035 l 119.848 166.02 l 119.848 166.008 l 119.852 
+165.992 l 119.855 165.98 l 119.855 165.969 l 119.859 165.953 l 119.863 165.941
+ l 119.863 165.926 l 119.867 165.914 l 119.871 165.898 l 119.871 165.887
+ l 119.875 165.871 l 119.875 165.859 l 119.879 165.848 l 119.883 165.832
+ l 119.883 165.82 l 119.887 165.805 l 119.891 165.793 l 119.891 165.777 
+l 119.895 165.766 l 119.895 165.75 l 119.902 165.727 l 119.902 165.711 l
+ 119.906 165.699 l 119.91 165.684 l 119.91 165.672 l 119.914 165.656 l 119.914
+ 165.645 l 119.918 165.633 l 119.922 165.617 l 119.922 165.605 l 119.926
+ 165.59 l 119.93 165.578 l 119.93 165.562 l 119.934 165.551 l 119.934 165.535
+ l 119.941 165.512 l 119.941 165.496 l 119.945 165.484 l 119.949 165.469
+ l 119.949 165.457 l 119.953 165.441 l 119.953 165.43 l 119.957 165.414 
+l 119.961 165.402 l 119.961 165.391 l 119.965 165.375 l 119.969 165.363 
+l 119.969 165.348 l 119.973 165.336 l 119.977 165.32 l 119.977 165.309 l
+ 119.98 165.293 l 119.98 165.281 l 119.984 165.27 l 119.988 165.254 l 119.988
+ 165.242 l 119.992 165.227 l 119.996 165.215 l 119.996 165.199 l 120 165.188
+ l 120 165.176 l 120.004 165.16 l 120.008 165.148 l 120.008 165.133 l 120.012
+ 165.121 l 120.016 165.105 l 120.016 165.094 l 120.02 165.082 l 120.02 165.066
+ l 120.023 165.055 l 120.027 165.039 l 120.027 165.027 l 120.031 165.012
+ l 120.035 165 l 120.035 164.984 l 120.039 164.973 l 120.039 164.961 l 120.043
+ 164.945 l 120.047 164.934 l 120.047 164.918 l 120.051 164.906 l 120.055
+ 164.891 l 120.055 164.879 l 120.059 164.867 l 120.062 164.852 l 120.062
+ 164.84 l 120.066 164.824 l 120.066 164.812 l 120.07 164.797 l 120.074 164.785
+ l 120.074 164.773 l 120.078 164.758 l 120.082 164.746 l 120.082 164.73 
+l 120.086 164.719 l 120.086 164.703 l 120.094 164.68 l 120.094 164.664 l
+ 120.098 164.652 l 120.102 164.637 l 120.102 164.625 l 120.105 164.609 l
+ 120.105 164.598 l 120.109 164.582 l 120.113 164.57 l 120.113 164.559 l 
+120.117 164.543 l 120.121 164.531 l 120.121 164.516 l 120.125 164.504 l 
+120.125 164.488 l 120.133 164.465 l 120.133 164.449 l 120.137 164.438 l 
+120.141 164.422 l 120.141 164.41 l 120.145 164.395 l 120.145 164.383 l 120.148
+ 164.371 l 120.152 164.355 l 120.152 164.344 l 120.156 164.328 l 120.16 
+164.316 l 120.16 164.301 l 120.168 164.277 l 120.168 164.262 l 120.172 164.25
+ l 120.172 164.234 l 120.18 164.211 l 120.18 164.195 l 120.184 164.184 l
+ 120.188 164.168 l 120.188 164.156 l 120.191 164.141 l 120.191 164.129 l
+ 120.195 164.117 l 120.199 164.102 l 120.199 164.09 l 120.203 164.074 l 
+120.207 164.062 l 120.207 164.047 l 120.211 164.035 l 120.211 164.023 l 
+120.215 164.008 l 120.219 163.996 l 120.219 163.98 l 120.223 163.969 l 120.227
+ 163.953 l 120.227 163.941 l 120.23 163.93 l 120.23 163.914 l 120.234 163.902
+ l 120.238 163.887 l 120.238 163.875 l 120.242 163.863 l 120.246 163.848
+ l 120.246 163.836 l 120.25 163.82 l 120.254 163.809 l 120.254 163.793 l
+ 120.258 163.781 l 120.258 163.77 l 120.262 163.754 l 120.266 163.742 l 
+120.266 163.727 l 120.27 163.715 l 120.273 163.699 l 120.273 163.688 l 120.277
+ 163.676 l 120.277 163.66 l 120.281 163.648 l 120.285 163.633 l 120.285 
+163.621 l 120.289 163.609 l 120.293 163.594 l 120.293 163.582 l 120.297 
+163.566 l 120.297 163.555 l 120.301 163.539 l 120.305 163.527 l 120.305 
+163.516 l 120.309 163.5 l 120.312 163.488 l 120.312 163.473 l 120.316 163.461
+ l 120.316 163.449 l 120.32 163.434 l 120.324 163.422 l 120.324 163.406 
+l 120.328 163.395 l 120.332 163.379 l 120.332 163.367 l 120.336 163.355 
+l 120.336 163.34 l 120.34 163.328 l 120.344 163.312 l 120.344 163.301 l 
+120.348 163.289 l 120.352 163.273 l 120.352 163.262 l 120.355 163.246 l 
+120.359 163.234 l 120.359 163.219 l 120.363 163.207 l 120.363 163.195 l 
+120.367 163.18 l 120.371 163.168 l 120.371 163.152 l 120.379 163.129 l 120.379
+ 163.113 l 120.383 163.102 l 120.383 163.086 l 120.391 163.062 l 120.391
+ 163.047 l 120.395 163.035 l 120.398 163.02 l 120.398 163.008 l 120.402 
+162.992 l 120.402 162.98 l 120.406 162.969 l 120.41 162.953 l 120.41 162.941
+ l 120.414 162.926 l 120.418 162.914 l 120.418 162.902 l 120.422 162.887
+ l 120.422 162.875 l 120.426 162.859 l 120.43 162.848 l 120.43 162.836 l
+ 120.434 162.82 l 120.438 162.809 l 120.438 162.793 l 120.445 162.77 l 120.445
+ 162.754 l 120.449 162.742 l 120.449 162.727 l 120.453 162.715 l 120.457
+ 162.699 l 120.457 162.688 l 120.461 162.676 l 120.465 162.66 l 120.465 
+162.648 l 120.469 162.633 l 120.469 162.621 l 120.473 162.609 l 120.477 
+162.594 l 120.477 162.582 l 120.48 162.566 l 120.484 162.555 l 120.484 162.543
+ l 120.488 162.527 l 120.488 162.516 l 120.492 162.5 l 120.496 162.488 l
+ 120.496 162.477 l 120.5 162.461 l 120.504 162.449 l 120.504 162.434 l 120.508
+ 162.422 l 120.508 162.41 l 120.512 162.395 l 120.516 162.383 l 120.516 
+162.367 l 120.523 162.344 l 120.523 162.328 l 120.527 162.316 l 120.527 
+162.301 l 120.535 162.277 l 120.535 162.262 l 120.539 162.25 l 120.543 162.234
+ l 120.543 162.223 l 120.547 162.211 l 120.551 162.195 l 120.551 162.184
+ l 120.555 162.168 l 120.555 162.156 l 120.559 162.145 l 120.562 162.129
+ l 120.562 162.117 l 120.566 162.102 l 120.57 162.09 l 120.57 162.078 l 
+120.574 162.062 l 120.574 162.051 l 120.578 162.035 l 120.582 162.023 l 
+120.582 162.012 l 120.586 161.996 l 120.59 161.984 l 120.59 161.969 l 120.594
+ 161.957 l 120.594 161.945 l 120.598 161.93 l 120.602 161.918 l 120.602 
+161.902 l 120.609 161.879 l 120.609 161.863 l 120.613 161.852 l 120.613 
+161.836 l 120.621 161.812 l 120.621 161.797 l 120.625 161.785 l 120.629 
+161.77 l 120.629 161.758 l 120.633 161.746 l 120.637 161.73 l 120.637 161.719
+ l 120.641 161.703 l 120.641 161.691 l 120.645 161.68 l 120.648 161.664 
+l 120.648 161.652 l 120.652 161.641 l 120.656 161.625 l 120.656 161.613 
+l 120.66 161.598 l 120.66 161.586 l 120.664 161.574 l 120.668 161.559 l 
+120.668 161.547 l 120.672 161.531 l 120.676 161.52 l 120.676 161.508 l 120.68
+ 161.492 l 120.68 161.48 l 120.684 161.465 l 120.688 161.453 l 120.688 161.441
+ l 120.691 161.426 l 120.695 161.414 l 120.695 161.402 l 120.699 161.387
+ l 120.699 161.375 l 120.703 161.359 l 120.707 161.348 l 120.707 161.336
+ l 120.711 161.32 l 120.715 161.309 l 120.715 161.293 l 120.719 161.281 
+l 120.719 161.27 l 120.723 161.254 l 120.727 161.242 l 120.727 161.227 l
+ 120.734 161.203 l 120.734 161.188 l 120.742 161.164 l 120.742 161.148 l
+ 120.746 161.137 l 120.746 161.121 l 120.754 161.098 l 120.754 161.082 l
+ 120.758 161.07 l 120.762 161.055 l 120.762 161.043 l 120.766 161.031 l 
+120.766 161.016 l 120.773 160.992 l 120.773 160.977 l 120.777 160.965 l 
+120.781 160.949 l 120.781 160.938 l 120.785 160.926 l 120.785 160.91 l 120.789
+ 160.898 l 120.793 160.883 l 120.793 160.871 l 120.797 160.859 l 120.801
+ 160.844 l 120.801 160.832 l 120.805 160.82 l 120.805 160.805 l 120.809 
+160.793 l 120.812 160.777 l 120.812 160.766 l 120.816 160.754 l 120.82 160.738
+ l 120.82 160.727 l 120.824 160.715 l 120.828 160.699 l 120.828 160.688 
+l 120.832 160.672 l 120.832 160.66 l 120.836 160.648 l 120.84 160.633 l 
+120.84 160.621 l 120.844 160.609 l 120.848 160.594 l 120.848 160.582 l 120.852
+ 160.566 l 120.852 160.555 l 120.855 160.543 l 120.859 160.527 l 120.859
+ 160.516 l 120.863 160.504 l 120.867 160.488 l 120.867 160.477 l 120.871
+ 160.461 l 120.871 160.449 l 120.875 160.438 l 120.879 160.422 l 120.879
+ 160.41 l 120.883 160.398 l 120.887 160.383 l 120.887 160.371 l 120.891 
+160.355 l 120.891 160.344 l 120.895 160.332 l 120.898 160.316 l 120.898 
+160.305 l 120.902 160.293 l 120.906 160.277 l 120.906 160.266 l 120.91 160.25
+ l 120.91 160.238 l 120.914 160.227 l 120.918 160.211 l 120.918 160.199 
+l 120.922 160.188 l 120.926 160.172 l 120.926 160.16 l 120.93 160.145 l 
+120.934 160.133 l 120.934 160.121 l 120.938 160.105 l 120.938 160.094 l 
+120.941 160.082 l 120.945 160.066 l 120.945 160.055 l 120.949 160.039 l 
+120.953 160.027 l 120.953 160.016 l 120.957 160 l 120.957 159.988 l 120.961
+ 159.977 l 120.965 159.961 l 120.965 159.949 l 120.969 159.938 l 120.973
+ 159.922 l 120.973 159.91 l 120.977 159.895 l 120.977 159.883 l 120.98 159.871
+ l 120.984 159.855 l 120.984 159.844 l 120.988 159.832 l 120.992 159.816
+ l 120.992 159.805 l 120.996 159.793 l 120.996 159.777 l 121 159.766 l 121.004
+ 159.75 l 121.004 159.738 l 121.008 159.727 l 121.012 159.711 l 121.012 
+159.699 l 121.016 159.688 l 121.016 159.672 l 121.023 159.648 l 121.023 
+159.633 l 121.027 159.621 l 121.031 159.605 l 121.031 159.594 l 121.035 
+159.582 l 121.039 159.566 l 121.039 159.555 l 121.043 159.543 l 121.043 
+159.527 l 121.051 159.504 l 121.051 159.488 l 121.055 159.477 l 121.059 
+159.461 l 121.059 159.449 l 121.062 159.438 l 121.062 159.422 l 121.07 159.398
+ l 121.07 159.383 l 121.078 159.359 l 121.078 159.344 l 121.082 159.332 
+l 121.082 159.32 l 121.086 159.305 l 121.09 159.293 l 121.09 159.277 l 121.098
+ 159.254 l 121.098 159.238 l 121.102 159.227 l 121.102 159.215 l 121.105
+ 159.199 l 121.109 159.188 l 121.109 159.176 l 121.113 159.16 l 121.117 
+159.148 l 121.117 159.137 l 121.121 159.121 l 121.125 159.109 l 121.125 
+159.094 l 121.129 159.082 l 121.129 159.07 l 121.133 159.055 l 121.137 159.043
+ l 121.137 159.031 l 121.141 159.016 l 121.145 159.004 l 121.145 158.992
+ l 121.148 158.977 l 121.148 158.965 l 121.152 158.953 l 121.156 158.938
+ l 121.156 158.926 l 121.16 158.914 l 121.164 158.898 l 121.164 158.887 
+l 121.168 158.871 l 121.168 158.859 l 121.172 158.848 l 121.176 158.832 
+l 121.176 158.82 l 121.18 158.809 l 121.184 158.793 l 121.184 158.781 l 
+121.188 158.77 l 121.188 158.754 l 121.195 158.73 l 121.195 158.715 l 121.203
+ 158.691 l 121.203 158.676 l 121.207 158.664 l 121.207 158.652 l 121.211
+ 158.637 l 121.215 158.625 l 121.215 158.613 l 121.219 158.598 l 121.223
+ 158.586 l 121.223 158.57 l 121.23 158.547 l 121.23 158.531 l 121.234 158.52
+ l 121.234 158.508 l 121.238 158.492 l 121.242 158.48 l 121.242 158.469 
+l 121.246 158.453 l 121.25 158.441 l 121.25 158.43 l 121.254 158.414 l 121.254
+ 158.402 l 121.258 158.391 l 121.262 158.375 l 121.262 158.363 l 121.266
+ 158.352 l 121.27 158.336 l 121.27 158.324 l 121.273 158.312 l 121.273 158.297
+ l 121.281 158.273 l 121.281 158.258 l 121.289 158.234 l 121.289 158.219
+ l 121.293 158.207 l 121.293 158.195 l 121.297 158.18 l 121.301 158.168 
+l 121.301 158.156 l 121.305 158.141 l 121.309 158.129 l 121.309 158.117 
+l 121.312 158.102 l 121.316 158.09 l 121.316 158.078 l 121.32 158.062 l 
+121.32 158.051 l 121.324 158.035 l 121.328 158.023 l 121.328 158.012 l 121.332
+ 157.996 l 121.336 157.984 l 121.336 157.973 l 121.34 157.957 l 121.34 157.945
+ l 121.344 157.934 l 121.348 157.918 l 121.348 157.906 l 121.352 157.895
+ l 121.355 157.879 l 121.355 157.867 l 121.359 157.855 l 121.359 157.84 
+l 121.367 157.816 l 121.367 157.801 l 121.375 157.777 l 121.375 157.762 
+l 121.379 157.75 l 121.379 157.738 l 121.383 157.723 l 121.387 157.711 l
+ 121.387 157.699 l 121.391 157.684 l 121.395 157.672 l 121.395 157.66 l 
+121.398 157.645 l 121.398 157.633 l 121.402 157.621 l 121.406 157.605 l 
+121.406 157.594 l 121.414 157.57 l 121.414 157.555 l 121.422 157.531 l 121.422
+ 157.516 l 121.426 157.504 l 121.426 157.492 l 121.43 157.477 l 121.434 
+157.465 l 121.434 157.453 l 121.438 157.438 l 121.441 157.426 l 121.441 
+157.414 l 121.445 157.398 l 121.445 157.387 l 121.449 157.375 l 121.453 
+157.359 l 121.453 157.348 l 121.457 157.336 l 121.461 157.32 l 121.461 157.309
+ l 121.465 157.297 l 121.465 157.281 l 121.473 157.258 l 121.473 157.242
+ l 121.48 157.219 l 121.48 157.203 l 121.484 157.191 l 121.484 157.18 l 
+121.488 157.164 l 121.492 157.152 l 121.492 157.141 l 121.496 157.125 l 
+121.5 157.113 l 121.5 157.102 l 121.504 157.086 l 121.508 157.074 l 121.508
+ 157.062 l 121.512 157.051 l 121.512 157.035 l 121.52 157.012 l 121.52 156.996
+ l 121.527 156.973 l 121.527 156.957 l 121.531 156.945 l 121.531 156.934
+ l 121.535 156.918 l 121.539 156.906 l 121.539 156.895 l 121.543 156.879
+ l 121.547 156.867 l 121.547 156.855 l 121.551 156.84 l 121.551 156.828 
+l 121.555 156.816 l 121.559 156.801 l 121.559 156.789 l 121.566 156.766 
+l 121.566 156.75 l 121.57 156.738 l 121.57 156.727 l 121.574 156.711 l 121.578
+ 156.699 l 121.578 156.688 l 121.582 156.672 l 121.586 156.66 l 121.586 
+156.648 l 121.59 156.633 l 121.59 156.621 l 121.594 156.609 l 121.598 156.594
+ l 121.598 156.582 l 121.605 156.559 l 121.605 156.543 l 121.613 156.52 
+l 121.613 156.504 l 121.617 156.492 l 121.617 156.48 l 121.621 156.465 l
+ 121.625 156.453 l 121.625 156.441 l 121.629 156.426 l 121.633 156.414 l
+ 121.633 156.402 l 121.637 156.391 l 121.637 156.375 l 121.645 156.352 l
+ 121.645 156.336 l 121.652 156.312 l 121.652 156.297 l 121.656 156.285 l
+ 121.656 156.273 l 121.66 156.258 l 121.664 156.246 l 121.664 156.234 l 
+121.668 156.223 l 121.672 156.207 l 121.672 156.195 l 121.676 156.184 l 
+121.676 156.168 l 121.684 156.145 l 121.684 156.129 l 121.691 156.105 l 
+121.691 156.09 l 121.699 156.066 l 121.699 156.055 l 121.703 156.039 l 121.703
+ 156.027 l 121.707 156.016 l 121.711 156 l 121.711 155.988 l 121.715 155.977
+ l 121.719 155.961 l 121.719 155.949 l 121.723 155.938 l 121.723 155.926
+ l 121.727 155.91 l 121.73 155.898 l 121.73 155.887 l 121.734 155.871 l 
+121.738 155.859 l 121.738 155.848 l 121.742 155.832 l 121.742 155.82 l 121.75
+ 155.797 l 121.75 155.781 l 121.758 155.758 l 121.758 155.742 l 121.762 
+155.73 l 121.762 155.719 l 121.766 155.703 l 121.77 155.691 l 121.77 155.68
+ l 121.773 155.668 l 121.777 155.652 l 121.777 155.641 l 121.781 155.629
+ l 121.781 155.613 l 121.789 155.59 l 121.789 155.578 l 121.793 155.562 
+l 121.797 155.551 l 121.797 155.539 l 121.801 155.523 l 121.805 155.512 
+l 121.805 155.5 l 121.809 155.484 l 121.809 155.473 l 121.816 155.449 l 
+121.816 155.434 l 121.824 155.41 l 121.824 155.395 l 121.828 155.383 l 121.828
+ 155.371 l 121.832 155.359 l 121.836 155.344 l 121.836 155.332 l 121.84 
+155.32 l 121.844 155.305 l 121.844 155.293 l 121.848 155.281 l 121.848 155.27
+ l 121.852 155.254 l 121.855 155.242 l 121.855 155.23 l 121.859 155.215 
+l 121.863 155.203 l 121.863 155.191 l 121.867 155.18 l 121.867 155.164 l
+ 121.875 155.141 l 121.875 155.125 l 121.883 155.102 l 121.883 155.09 l 
+121.887 155.074 l 121.891 155.062 l 121.891 155.051 l 121.895 155.035 l 
+121.895 155.023 l 121.902 155 l 121.902 154.984 l 121.91 154.961 l 121.91
+ 154.945 l 121.914 154.934 l 121.914 154.922 l 121.918 154.91 l 121.922 
+154.895 l 121.922 154.883 l 121.926 154.871 l 121.93 154.855 l 121.93 154.844
+ l 121.934 154.832 l 121.934 154.82 l 121.938 154.805 l 121.941 154.793 
+l 121.941 154.781 l 121.945 154.77 l 121.949 154.754 l 121.949 154.742 l
+ 121.953 154.73 l 121.953 154.715 l 121.961 154.691 l 121.961 154.68 l 121.965
+ 154.664 l 121.969 154.652 l 121.969 154.641 l 121.973 154.625 l 121.973
+ 154.613 l 121.98 154.59 l 121.98 154.574 l 121.988 154.551 l 121.988 154.539
+ l 121.992 154.523 l 121.996 154.512 l 121.996 154.5 l 122 154.484 l 122
+ 154.473 l 122.008 154.449 l 122.008 154.434 l 122.016 154.41 l 122.016 
+154.398 l 122.02 154.383 l 122.02 154.371 l 122.023 154.359 l 122.027 154.344
+ l 122.027 154.332 l 122.035 154.309 l 122.035 154.293 l 122.039 154.281
+ l 122.039 154.27 l 122.043 154.258 l 122.047 154.242 l 122.047 154.23 l
+ 122.051 154.219 l 122.055 154.203 l 122.055 154.191 l 122.059 154.18 l 
+122.059 154.168 l 122.062 154.152 l 122.066 154.141 l 122.066 154.129 l 
+122.07 154.117 l 122.074 154.102 l 122.074 154.09 l 122.082 154.066 l 122.082
+ 154.051 l 122.086 154.039 l 122.086 154.027 l 122.09 154.016 l 122.094 
+154 l 122.094 153.988 l 122.098 153.977 l 122.102 153.961 l 122.102 153.949
+ l 122.105 153.938 l 122.105 153.926 l 122.109 153.91 l 122.113 153.898 
+l 122.113 153.887 l 122.117 153.875 l 122.121 153.859 l 122.121 153.848 
+l 122.125 153.836 l 122.125 153.824 l 122.129 153.809 l 122.133 153.797 
+l 122.133 153.785 l 122.137 153.773 l 122.141 153.758 l 122.141 153.746 
+l 122.145 153.734 l 122.145 153.719 l 122.152 153.695 l 122.152 153.684 
+l 122.156 153.668 l 122.16 153.656 l 122.16 153.645 l 122.164 153.633 l 
+122.164 153.617 l 122.172 153.594 l 122.172 153.582 l 122.176 153.566 l 
+122.18 153.555 l 122.18 153.543 l 122.184 153.531 l 122.188 153.516 l 122.188
+ 153.504 l 122.191 153.492 l 122.191 153.48 l 122.195 153.465 l 122.199 
+153.453 l 122.199 153.441 l 122.203 153.43 l 122.207 153.414 l 122.207 153.402
+ l 122.211 153.391 l 122.211 153.379 l 122.215 153.363 l 122.219 153.352
+ l 122.219 153.34 l 122.223 153.328 l 122.227 153.312 l 122.227 153.301 
+l 122.23 153.289 l 122.23 153.277 l 122.234 153.262 l 122.238 153.25 l 122.238
+ 153.238 l 122.242 153.227 l 122.246 153.211 l 122.246 153.199 l 122.25 
+153.188 l 122.25 153.176 l 122.254 153.16 l 122.258 153.148 l 122.258 153.137
+ l 122.262 153.125 l 122.266 153.109 l 122.266 153.098 l 122.273 153.074
+ l 122.273 153.059 l 122.277 153.047 l 122.277 153.035 l 122.281 153.023
+ l 122.285 153.008 l 122.285 152.996 l 122.293 152.973 l 122.293 152.957
+ l 122.297 152.945 l 122.297 152.934 l 122.301 152.922 l 122.305 152.906
+ l 122.305 152.895 l 122.312 152.871 l 122.312 152.859 l 122.316 152.844
+ l 122.316 152.832 l 122.324 152.809 l 122.324 152.793 l 122.332 152.77 
+l 122.332 152.758 l 122.336 152.742 l 122.336 152.73 l 122.344 152.707 l
+ 122.344 152.691 l 122.352 152.668 l 122.352 152.656 l 122.355 152.641 l
+ 122.355 152.629 l 122.363 152.605 l 122.363 152.594 l 122.367 152.578 l
+ 122.371 152.566 l 122.371 152.555 l 122.375 152.543 l 122.379 152.527 l
+ 122.379 152.516 l 122.383 152.504 l 122.383 152.492 l 122.387 152.477 l
+ 122.391 152.465 l 122.391 152.453 l 122.395 152.441 l 122.398 152.426 l
+ 122.398 152.414 l 122.402 152.402 l 122.402 152.391 l 122.406 152.379 l
+ 122.41 152.363 l 122.41 152.352 l 122.418 152.328 l 122.418 152.312 l 122.422
+ 152.301 l 122.422 152.289 l 122.426 152.277 l 122.43 152.262 l 122.43 152.25
+ l 122.438 152.227 l 122.438 152.215 l 122.441 152.199 l 122.441 152.188
+ l 122.449 152.164 l 122.449 152.148 l 122.457 152.125 l 122.457 152.113
+ l 122.461 152.102 l 122.465 152.086 l 122.465 152.074 l 122.469 152.062
+ l 122.469 152.051 l 122.473 152.035 l 122.477 152.023 l 122.477 152.012
+ l 122.48 152 l 122.484 151.984 l 122.484 151.973 l 122.488 151.961 l 122.488
+ 151.949 l 122.492 151.938 l 122.496 151.922 l 122.496 151.91 l 122.504 
+151.887 l 122.504 151.875 l 122.508 151.859 l 122.508 151.848 l 122.516 
+151.824 l 122.516 151.809 l 122.523 151.785 l 122.523 151.773 l 122.527 
+151.762 l 122.527 151.746 l 122.535 151.723 l 122.535 151.711 l 122.539 
+151.695 l 122.543 151.684 l 122.543 151.672 l 122.547 151.66 l 122.547 151.648
+ l 122.551 151.633 l 122.555 151.621 l 122.555 151.609 l 122.559 151.598
+ l 122.562 151.582 l 122.562 151.57 l 122.57 151.547 l 122.57 151.535 l 
+122.574 151.52 l 122.574 151.508 l 122.582 151.484 l 122.582 151.473 l 122.586
+ 151.457 l 122.59 151.445 l 122.59 151.434 l 122.594 151.422 l 122.594 151.41
+ l 122.598 151.395 l 122.602 151.383 l 122.602 151.371 l 122.605 151.359
+ l 122.609 151.344 l 122.609 151.332 l 122.613 151.32 l 122.613 151.309 
+l 122.617 151.297 l 122.621 151.281 l 122.621 151.27 l 122.629 151.246 l
+ 122.629 151.234 l 122.633 151.219 l 122.633 151.207 l 122.641 151.184 l
+ 122.641 151.172 l 122.645 151.156 l 122.648 151.145 l 122.648 151.133 l
+ 122.656 151.109 l 122.656 151.094 l 122.66 151.082 l 122.66 151.07 l 122.668
+ 151.047 l 122.668 151.031 l 122.676 151.008 l 122.676 150.996 l 122.68 
+150.98 l 122.68 150.969 l 122.688 150.945 l 122.688 150.934 l 122.691 150.918
+ l 122.695 150.906 l 122.695 150.895 l 122.699 150.883 l 122.699 150.871
+ l 122.703 150.855 l 122.707 150.844 l 122.707 150.832 l 122.715 150.809
+ l 122.715 150.797 l 122.719 150.781 l 122.719 150.77 l 122.727 150.746 
+l 122.727 150.734 l 122.73 150.719 l 122.734 150.707 l 122.734 150.695 l
+ 122.738 150.684 l 122.738 150.672 l 122.742 150.656 l 122.746 150.645 l
+ 122.746 150.633 l 122.754 150.609 l 122.754 150.594 l 122.762 150.57 l 
+122.762 150.559 l 122.766 150.547 l 122.766 150.531 l 122.773 150.508 l 
+122.773 150.496 l 122.777 150.484 l 122.781 150.469 l 122.781 150.457 l 
+122.785 150.445 l 122.785 150.434 l 122.789 150.422 l 122.793 150.406 l 
+122.793 150.395 l 122.801 150.371 l 122.801 150.359 l 122.805 150.348 l 
+122.805 150.332 l 122.812 150.309 l 122.812 150.297 l 122.816 150.285 l 
+122.82 150.27 l 122.82 150.258 l 122.824 150.246 l 122.824 150.234 l 122.832
+ 150.211 l 122.832 150.195 l 122.84 150.172 l 122.84 150.16 l 122.844 150.148
+ l 122.848 150.133 l 122.848 150.121 l 122.852 150.109 l 122.852 150.098
+ l 122.855 150.086 l 122.859 150.07 l 122.859 150.059 l 122.867 150.035 
+l 122.867 150.023 l 122.871 150.012 l 122.871 149.996 l 122.879 149.973 
+l 122.879 149.961 l 122.887 149.938 l 122.887 149.922 l 122.891 149.91 l
+ 122.891 149.898 l 122.898 149.875 l 122.898 149.859 l 122.906 149.836 l
+ 122.906 149.824 l 122.91 149.812 l 122.91 149.801 l 122.914 149.785 l 122.918
+ 149.773 l 122.918 149.762 l 122.926 149.738 l 122.926 149.727 l 122.93 
+149.711 l 122.93 149.699 l 122.938 149.676 l 122.938 149.664 l 122.941 149.648
+ l 122.945 149.637 l 122.945 149.625 l 122.953 149.602 l 122.953 149.59 
+l 122.957 149.574 l 122.957 149.562 l 122.965 149.539 l 122.965 149.527 
+l 122.969 149.516 l 122.973 149.5 l 122.973 149.488 l 122.977 149.477 l 
+122.977 149.465 l 122.984 149.441 l 122.984 149.426 l 122.992 149.402 l 
+122.992 149.391 l 122.996 149.379 l 122.996 149.367 l 123 149.352 l 123.004
+ 149.34 l 123.004 149.328 l 123.012 149.305 l 123.012 149.293 l 123.016 
+149.277 l 123.016 149.266 l 123.023 149.242 l 123.023 149.23 l 123.027 149.219
+ l 123.031 149.203 l 123.031 149.191 l 123.039 149.168 l 123.039 149.156
+ l 123.043 149.145 l 123.043 149.129 l 123.051 149.105 l 123.051 149.094
+ l 123.059 149.07 l 123.059 149.059 l 123.062 149.043 l 123.062 149.031 
+l 123.07 149.008 l 123.07 148.996 l 123.074 148.984 l 123.078 148.969 l 
+123.078 148.957 l 123.082 148.945 l 123.082 148.934 l 123.09 148.91 l 123.09
+ 148.895 l 123.098 148.871 l 123.098 148.859 l 123.102 148.848 l 123.102
+ 148.836 l 123.105 148.824 l 123.109 148.809 l 123.109 148.797 l 123.117
+ 148.773 l 123.117 148.762 l 123.121 148.75 l 123.121 148.734 l 123.129 
+148.711 l 123.129 148.699 l 123.137 148.676 l 123.137 148.664 l 123.141 
+148.648 l 123.145 148.637 l 123.145 148.625 l 123.148 148.613 l 123.148 
+148.602 l 123.156 148.578 l 123.156 148.562 l 123.164 148.539 l 123.164 
+148.527 l 123.168 148.516 l 123.168 148.504 l 123.172 148.488 l 123.176 
+148.477 l 123.176 148.465 l 123.184 148.441 l 123.184 148.43 l 123.188 148.418
+ l 123.188 148.402 l 123.195 148.379 l 123.195 148.367 l 123.203 148.344
+ l 123.203 148.332 l 123.207 148.316 l 123.207 148.305 l 123.215 148.281
+ l 123.215 148.27 l 123.223 148.246 l 123.223 148.23 l 123.23 148.207 l 
+123.23 148.195 l 123.234 148.184 l 123.234 148.172 l 123.242 148.148 l 123.242
+ 148.133 l 123.25 148.109 l 123.25 148.098 l 123.254 148.086 l 123.254 148.074
+ l 123.258 148.062 l 123.262 148.047 l 123.262 148.035 l 123.27 148.012 
+l 123.27 148 l 123.273 147.988 l 123.273 147.977 l 123.277 147.961 l 123.281
+ 147.949 l 123.281 147.938 l 123.289 147.914 l 123.289 147.902 l 123.293
+ 147.891 l 123.293 147.879 l 123.297 147.863 l 123.301 147.852 l 123.301
+ 147.84 l 123.309 147.816 l 123.309 147.805 l 123.312 147.793 l 123.312 
+147.781 l 123.316 147.766 l 123.32 147.754 l 123.32 147.742 l 123.328 147.719
+ l 123.328 147.707 l 123.332 147.695 l 123.336 147.68 l 123.336 147.668 
+l 123.34 147.656 l 123.34 147.645 l 123.348 147.621 l 123.348 147.609 l 
+123.352 147.598 l 123.355 147.582 l 123.355 147.57 l 123.359 147.559 l 123.359
+ 147.547 l 123.367 147.523 l 123.367 147.512 l 123.371 147.5 l 123.375 147.484
+ l 123.375 147.473 l 123.379 147.461 l 123.379 147.449 l 123.387 147.426
+ l 123.387 147.414 l 123.395 147.391 l 123.395 147.375 l 123.398 147.363
+ l 123.398 147.352 l 123.406 147.328 l 123.406 147.316 l 123.414 147.293
+ l 123.414 147.277 l 123.422 147.254 l 123.422 147.242 l 123.426 147.23 
+l 123.426 147.219 l 123.434 147.195 l 123.434 147.184 l 123.438 147.168 
+l 123.441 147.156 l 123.441 147.145 l 123.445 147.133 l 123.445 147.121 
+l 123.453 147.098 l 123.453 147.086 l 123.457 147.074 l 123.461 147.059 
+l 123.461 147.047 l 123.465 147.035 l 123.465 147.023 l 123.473 147 l 123.473
+ 146.988 l 123.48 146.965 l 123.48 146.949 l 123.484 146.938 l 123.484 146.926
+ l 123.492 146.902 l 123.492 146.891 l 123.5 146.867 l 123.5 146.855 l 123.504
+ 146.84 l 123.504 146.828 l 123.512 146.805 l 123.512 146.793 l 123.52 146.77
+ l 123.52 146.758 l 123.523 146.746 l 123.527 146.73 l 123.527 146.719 l
+ 123.531 146.707 l 123.531 146.695 l 123.539 146.672 l 123.539 146.66 l 
+123.547 146.637 l 123.547 146.625 l 123.551 146.609 l 123.551 146.598 l 
+123.559 146.574 l 123.559 146.562 l 123.566 146.539 l 123.566 146.527 l 
+123.57 146.516 l 123.57 146.504 l 123.574 146.488 l 123.578 146.477 l 123.578
+ 146.465 l 123.586 146.441 l 123.586 146.43 l 123.59 146.418 l 123.59 146.406
+ l 123.598 146.383 l 123.598 146.367 l 123.605 146.344 l 123.605 146.332
+ l 123.613 146.309 l 123.613 146.297 l 123.617 146.285 l 123.617 146.273
+ l 123.625 146.25 l 123.625 146.234 l 123.633 146.211 l 123.633 146.199 
+l 123.637 146.188 l 123.637 146.176 l 123.645 146.152 l 123.645 146.141 
+l 123.652 146.117 l 123.652 146.102 l 123.656 146.09 l 123.656 146.078 l
+ 123.664 146.055 l 123.664 146.043 l 123.672 146.02 l 123.672 146.008 l 
+123.676 145.996 l 123.676 145.984 l 123.68 145.973 l 123.684 145.957 l 123.684
+ 145.945 l 123.691 145.922 l 123.691 145.91 l 123.695 145.898 l 123.695 
+145.887 l 123.703 145.863 l 123.703 145.852 l 123.711 145.828 l 123.711 
+145.812 l 123.719 145.789 l 123.719 145.777 l 123.723 145.766 l 123.723 
+145.754 l 123.73 145.73 l 123.73 145.719 l 123.738 145.695 l 123.738 145.684
+ l 123.742 145.668 l 123.742 145.656 l 123.75 145.633 l 123.75 145.621 l
+ 123.758 145.598 l 123.758 145.586 l 123.762 145.574 l 123.762 145.562 l
+ 123.77 145.539 l 123.77 145.527 l 123.773 145.516 l 123.777 145.5 l 123.777
+ 145.488 l 123.781 145.477 l 123.781 145.465 l 123.789 145.441 l 123.789
+ 145.43 l 123.797 145.406 l 123.797 145.395 l 123.801 145.383 l 123.801 
+145.371 l 123.805 145.359 l 123.809 145.344 l 123.809 145.332 l 123.816 
+145.309 l 123.816 145.297 l 123.824 145.273 l 123.824 145.262 l 123.828 
+145.25 l 123.828 145.238 l 123.836 145.215 l 123.836 145.203 l 123.844 145.18
+ l 123.844 145.164 l 123.848 145.152 l 123.848 145.141 l 123.855 145.117
+ l 123.855 145.105 l 123.863 145.082 l 123.863 145.07 l 123.867 145.059 
+l 123.867 145.047 l 123.875 145.023 l 123.875 145.012 l 123.883 144.988 
+l 123.883 144.973 l 123.887 144.961 l 123.887 144.949 l 123.895 144.926 
+l 123.895 144.914 l 123.902 144.891 l 123.902 144.879 l 123.91 144.855 l
+ 123.91 144.844 l 123.914 144.832 l 123.914 144.82 l 123.922 144.797 l 123.922
+ 144.785 l 123.926 144.773 l 123.93 144.758 l 123.93 144.746 l 123.934 144.734
+ l 123.934 144.723 l 123.941 144.699 l 123.941 144.688 l 123.949 144.664
+ l 123.949 144.652 l 123.953 144.641 l 123.953 144.629 l 123.961 144.605
+ l 123.961 144.594 l 123.969 144.57 l 123.969 144.559 l 123.973 144.547 
+l 123.973 144.531 l 123.98 144.508 l 123.98 144.496 l 123.988 144.473 l 
+123.988 144.461 l 123.992 144.449 l 123.992 144.438 l 124 144.414 l 124 
+144.402 l 124.008 144.379 l 124.008 144.367 l 124.016 144.344 l 124.016 
+144.332 l 124.02 144.32 l 124.02 144.309 l 124.027 144.285 l 124.027 144.27
+ l 124.035 144.246 l 124.035 144.234 l 124.039 144.223 l 124.039 144.211
+ l 124.047 144.188 l 124.047 144.176 l 124.055 144.152 l 124.055 144.141
+ l 124.059 144.129 l 124.059 144.117 l 124.066 144.094 l 124.066 144.082
+ l 124.074 144.059 l 124.074 144.047 l 124.078 144.035 l 124.078 144.023
+ l 124.086 144 l 124.086 143.988 l 124.094 143.965 l 124.094 143.949 l 124.102
+ 143.926 l 124.102 143.914 l 124.105 143.902 l 124.105 143.891 l 124.113
+ 143.867 l 124.113 143.855 l 124.121 143.832 l 124.121 143.82 l 124.125 
+143.809 l 124.125 143.797 l 124.133 143.773 l 124.133 143.762 l 124.141 
+143.738 l 124.141 143.727 l 124.145 143.715 l 124.145 143.703 l 124.152 
+143.68 l 124.152 143.668 l 124.16 143.645 l 124.16 143.633 l 124.164 143.621
+ l 124.164 143.609 l 124.172 143.586 l 124.172 143.574 l 124.18 143.551 
+l 124.18 143.535 l 124.184 143.523 l 124.184 143.512 l 124.191 143.488 l
+ 124.191 143.477 l 124.199 143.453 l 124.199 143.441 l 124.207 143.418 l
+ 124.207 143.406 l 124.211 143.395 l 124.211 143.383 l 124.219 143.359 l
+ 124.219 143.348 l 124.227 143.324 l 124.227 143.312 l 124.23 143.301 l 
+124.23 143.289 l 124.238 143.266 l 124.238 143.254 l 124.246 143.23 l 124.246
+ 143.219 l 124.25 143.207 l 124.25 143.195 l 124.258 143.172 l 124.258 143.16
+ l 124.266 143.137 l 124.266 143.125 l 124.27 143.113 l 124.27 143.102 l
+ 124.277 143.078 l 124.277 143.066 l 124.285 143.043 l 124.285 143.031 l
+ 124.293 143.008 l 124.293 142.996 l 124.297 142.984 l 124.297 142.973 l
+ 124.305 142.949 l 124.305 142.938 l 124.312 142.914 l 124.312 142.902 l
+ 124.316 142.891 l 124.316 142.879 l 124.324 142.855 l 124.324 142.844 l
+ 124.332 142.82 l 124.332 142.809 l 124.336 142.797 l 124.336 142.785 l 
+124.344 142.762 l 124.344 142.75 l 124.352 142.727 l 124.352 142.715 l 124.355
+ 142.703 l 124.355 142.691 l 124.363 142.668 l 124.363 142.656 l 124.371
+ 142.633 l 124.371 142.621 l 124.375 142.609 l 124.375 142.598 l 124.383
+ 142.574 l 124.383 142.562 l 124.391 142.539 l 124.391 142.527 l 124.398
+ 142.504 l 124.398 142.492 l 124.402 142.48 l 124.402 142.469 l 124.41 142.445
+ l 124.41 142.434 l 124.418 142.41 l 124.418 142.398 l 124.422 142.387 l
+ 124.422 142.375 l 124.43 142.352 l 124.43 142.34 l 124.438 142.316 l 124.438
+ 142.305 l 124.441 142.293 l 124.441 142.281 l 124.449 142.258 l 124.449
+ 142.246 l 124.457 142.223 l 124.457 142.211 l 124.461 142.199 l 124.461
+ 142.188 l 124.469 142.164 l 124.469 142.152 l 124.477 142.129 l 124.477
+ 142.117 l 124.484 142.094 l 124.484 142.082 l 124.488 142.07 l 124.488 
+142.059 l 124.496 142.035 l 124.496 142.023 l 124.504 142 l 124.504 141.988
+ l 124.508 141.977 l 124.508 141.965 l 124.516 141.941 l 124.516 141.93 
+l 124.523 141.906 l 124.523 141.895 l 124.527 141.883 l 124.527 141.875 
+l 124.535 141.852 l 124.535 141.84 l 124.543 141.816 l 124.543 141.805 l
+ 124.547 141.793 l 124.547 141.781 l 124.555 141.758 l 124.555 141.746 l
+ 124.562 141.723 l 124.562 141.711 l 124.566 141.699 l 124.566 141.688 l
+ 124.574 141.664 l 124.574 141.652 l 124.582 141.629 l 124.582 141.617 l
+ 124.59 141.594 l 124.59 141.582 l 124.594 141.57 l 124.594 141.559 l 124.602
+ 141.535 l 124.602 141.523 l 124.609 141.5 l 124.609 141.488 l 124.613 141.477
+ l 124.613 141.465 l 124.617 141.457 l 124.621 141.445 l 124.621 141.434
+ l 124.629 141.41 l 124.629 141.398 l 124.633 141.387 l 124.633 141.375 
+l 124.641 141.352 l 124.641 141.34 l 124.648 141.316 l 124.648 141.305 l
+ 124.652 141.293 l 124.652 141.281 l 124.66 141.258 l 124.66 141.246 l 124.668
+ 141.223 l 124.668 141.211 l 124.676 141.188 l 124.676 141.176 l 124.68 
+141.164 l 124.68 141.156 l 124.688 141.133 l 124.688 141.121 l 124.695 141.098
+ l 124.695 141.086 l 124.699 141.074 l 124.699 141.062 l 124.707 141.039
+ l 124.707 141.027 l 124.715 141.004 l 124.715 140.992 l 124.719 140.98 
+l 124.719 140.969 l 124.727 140.945 l 124.727 140.934 l 124.73 140.922 l
+ 124.734 140.914 l 124.734 140.902 l 124.738 140.891 l 124.738 140.879 l
+ 124.746 140.855 l 124.746 140.844 l 124.754 140.82 l 124.754 140.809 l 
+124.758 140.797 l 124.758 140.785 l 124.766 140.762 l 124.766 140.75 l 124.773
+ 140.727 l 124.773 140.715 l 124.777 140.703 l 124.781 140.695 l 124.781
+ 140.684 l 124.785 140.672 l 124.785 140.66 l 124.793 140.637 l 124.793 
+140.625 l 124.801 140.602 l 124.801 140.59 l 124.805 140.578 l 124.805 140.566
+ l 124.812 140.543 l 124.812 140.531 l 124.82 140.508 l 124.82 140.5 l 124.824
+ 140.488 l 124.824 140.477 l 124.832 140.453 l 124.832 140.441 l 124.84 
+140.418 l 124.84 140.406 l 124.844 140.395 l 124.844 140.383 l 124.852 140.359
+ l 124.852 140.348 l 124.859 140.324 l 124.859 140.316 l 124.867 140.293
+ l 124.867 140.281 l 124.871 140.27 l 124.871 140.258 l 124.879 140.234 
+l 124.879 140.223 l 124.887 140.199 l 124.887 140.188 l 124.891 140.176 
+l 124.891 140.164 l 124.895 140.152 l 124.898 140.145 l 124.898 140.133 
+l 124.906 140.109 l 124.906 140.098 l 124.91 140.086 l 124.91 140.074 l 
+124.918 140.051 l 124.918 140.039 l 124.926 140.016 l 124.926 140.004 l 
+124.93 139.996 l 124.93 139.984 l 124.938 139.961 l 124.938 139.949 l 124.945
+ 139.926 l 124.945 139.914 l 124.949 139.902 l 124.949 139.891 l 124.957
+ 139.867 l 124.957 139.855 l 124.961 139.848 l 124.965 139.836 l 124.965
+ 139.824 l 124.973 139.801 l 124.973 139.789 l 124.977 139.777 l 124.977
+ 139.766 l 124.984 139.742 l 124.984 139.73 l 124.988 139.719 l 124.992 
+139.711 l 124.992 139.699 l 124.996 139.688 l 124.996 139.676 l 125.004 
+139.652 l 125.004 139.641 l 125.012 139.617 l 125.012 139.605 l 125.016 
+139.594 l 125.016 139.582 l 125.02 139.574 l 125.023 139.562 l 125.023 139.551
+ l 125.031 139.527 l 125.031 139.516 l 125.035 139.504 l 125.035 139.492
+ l 125.043 139.469 l 125.043 139.457 l 125.047 139.449 l 125.051 139.438
+ l 125.051 139.426 l 125.059 139.402 l 125.059 139.391 l 125.062 139.379
+ l 125.062 139.367 l 125.07 139.344 l 125.07 139.332 l 125.074 139.324 l
+ 125.078 139.312 l 125.078 139.301 l 125.082 139.289 l 125.082 139.277 l
+ 125.09 139.254 l 125.09 139.242 l 125.098 139.219 l 125.098 139.211 l 125.102
+ 139.199 l 125.102 139.188 l 125.109 139.164 l 125.109 139.152 l 125.117
+ 139.129 l 125.117 139.117 l 125.121 139.105 l 125.121 139.098 l 125.129
+ 139.074 l 125.129 139.062 l 125.137 139.039 l 125.137 139.027 l 125.141
+ 139.016 l 125.141 139.004 l 125.145 138.996 l 125.148 138.984 l 125.148
+ 138.973 l 125.156 138.949 l 125.156 138.938 l 125.164 138.914 l 125.164
+ 138.902 l 125.168 138.891 l 125.168 138.883 l 125.176 138.859 l 125.176
+ 138.848 l 125.184 138.824 l 125.184 138.812 l 125.188 138.801 l 125.188
+ 138.789 l 125.191 138.781 l 125.195 138.77 l 125.195 138.758 l 125.203 
+138.734 l 125.203 138.723 l 125.207 138.711 l 125.207 138.699 l 125.211 
+138.688 l 125.215 138.68 l 125.215 138.668 l 125.223 138.645 l 125.223 138.633
+ l 125.227 138.621 l 125.227 138.609 l 125.23 138.598 l 125.234 138.59 l
+ 125.234 138.578 l 125.242 138.555 l 125.242 138.543 l 125.25 138.52 l 125.25
+ 138.508 l 125.254 138.496 l 125.254 138.488 l 125.262 138.465 l 125.262
+ 138.453 l 125.27 138.43 l 125.27 138.418 l 125.273 138.406 l 125.273 138.398
+ l 125.281 138.375 l 125.281 138.363 l 125.289 138.34 l 125.289 138.328 
+l 125.293 138.316 l 125.293 138.309 l 125.301 138.285 l 125.301 138.273 
+l 125.309 138.25 l 125.309 138.238 l 125.312 138.227 l 125.312 138.219 l
+ 125.32 138.195 l 125.32 138.184 l 125.328 138.16 l 125.328 138.148 l 125.332
+ 138.137 l 125.332 138.129 l 125.34 138.105 l 125.34 138.094 l 125.348 138.07
+ l 125.348 138.059 l 125.352 138.051 l 125.355 138.039 l 125.355 138.027
+ l 125.359 138.016 l 125.359 138.004 l 125.367 137.98 l 125.367 137.969 
+l 125.371 137.961 l 125.375 137.949 l 125.375 137.938 l 125.379 137.926 
+l 125.379 137.914 l 125.387 137.891 l 125.387 137.883 l 125.395 137.859 
+l 125.395 137.848 l 125.398 137.836 l 125.398 137.824 l 125.402 137.812 
+l 125.406 137.805 l 125.406 137.793 l 125.414 137.77 l 125.414 137.758 l
+ 125.418 137.746 l 125.418 137.734 l 125.422 137.727 l 125.426 137.715 l
+ 125.426 137.703 l 125.434 137.68 l 125.434 137.668 l 125.438 137.656 l 
+125.441 137.648 l 125.441 137.637 l 125.445 137.625 l 125.445 137.613 l 
+125.453 137.59 l 125.453 137.578 l 125.457 137.57 l 125.461 137.559 l 125.461
+ 137.547 l 125.465 137.535 l 125.465 137.523 l 125.473 137.5 l 125.473 137.492
+ l 125.48 137.469 l 125.48 137.457 l 125.484 137.445 l 125.484 137.434 l
+ 125.488 137.426 l 125.492 137.414 l 125.492 137.402 l 125.5 137.379 l 125.5
+ 137.367 l 125.504 137.355 l 125.504 137.348 l 125.512 137.324 l 125.512
+ 137.312 l 125.52 137.289 l 125.52 137.281 l 125.523 137.27 l 125.523 137.258
+ l 125.531 137.234 l 125.531 137.223 l 125.535 137.215 l 125.539 137.203
+ l 125.539 137.191 l 125.547 137.168 l 125.547 137.156 l 125.551 137.145
+ l 125.551 137.137 l 125.559 137.113 l 125.559 137.102 l 125.566 137.078
+ l 125.566 137.07 l 125.57 137.059 l 125.57 137.047 l 125.578 137.023 l 
+125.578 137.012 l 125.582 137.004 l 125.586 136.992 l 125.586 136.98 l 125.59
+ 136.969 l 125.59 136.957 l 125.594 136.945 l 125.598 136.938 l 125.598 
+136.926 l 125.605 136.902 l 125.605 136.891 l 125.609 136.879 l 125.609 
+136.871 l 125.617 136.848 l 125.617 136.836 l 125.625 136.812 l 125.625 
+136.805 l 125.633 136.781 l 125.633 136.77 l 125.637 136.758 l 125.637 136.75
+ l 125.645 136.727 l 125.645 136.715 l 125.652 136.691 l 125.652 136.684
+ l 125.656 136.672 l 125.656 136.66 l 125.664 136.637 l 125.664 136.625 
+l 125.668 136.617 l 125.672 136.605 l 125.672 136.594 l 125.676 136.582 
+l 125.676 136.57 l 125.68 136.562 l 125.684 136.551 l 125.684 136.539 l 
+125.691 136.516 l 125.691 136.504 l 125.695 136.496 l 125.695 136.484 l 
+125.703 136.461 l 125.703 136.449 l 125.707 136.441 l 125.711 136.43 l 125.711
+ 136.418 l 125.715 136.406 l 125.715 136.395 l 125.719 136.383 l 125.723
+ 136.375 l 125.723 136.363 l 125.73 136.34 l 125.73 136.328 l 125.734 136.32
+ l 125.738 136.309 l 125.738 136.297 l 125.742 136.285 l 125.742 136.273
+ l 125.746 136.262 l 125.75 136.254 l 125.75 136.242 l 125.758 136.219 l
+ 125.758 136.207 l 125.762 136.199 l 125.762 136.188 l 125.77 136.164 l 
+125.77 136.152 l 125.773 136.145 l 125.777 136.133 l 125.777 136.121 l 125.781
+ 136.109 l 125.781 136.098 l 125.785 136.09 l 125.789 136.078 l 125.789 
+136.066 l 125.797 136.043 l 125.797 136.035 l 125.801 136.023 l 125.801 
+136.012 l 125.809 135.988 l 125.809 135.98 l 125.816 135.957 l 125.816 135.945
+ l 125.824 135.922 l 125.824 135.914 l 125.828 135.902 l 125.828 135.891
+ l 125.836 135.867 l 125.836 135.859 l 125.844 135.836 l 125.844 135.824
+ l 125.848 135.816 l 125.848 135.805 l 125.855 135.781 l 125.855 135.77 
+l 125.859 135.762 l 125.863 135.75 l 125.863 135.738 l 125.867 135.727 l
+ 125.867 135.715 l 125.871 135.707 l 125.875 135.695 l 125.875 135.684 l
+ 125.883 135.66 l 125.883 135.652 l 125.887 135.641 l 125.887 135.629 l 
+125.895 135.605 l 125.895 135.598 l 125.902 135.574 l 125.902 135.562 l 
+125.906 135.551 l 125.906 135.543 l 125.914 135.52 l 125.914 135.508 l 125.918
+ 135.5 l 125.922 135.488 l 125.922 135.477 l 125.93 135.453 l 125.93 135.445
+ l 125.934 135.434 l 125.934 135.422 l 125.941 135.398 l 125.941 135.391
+ l 125.949 135.367 l 125.949 135.355 l 125.953 135.348 l 125.953 135.336
+ l 125.961 135.312 l 125.961 135.301 l 125.965 135.293 l 125.969 135.281
+ l 125.969 135.27 l 125.973 135.258 l 125.973 135.25 l 125.98 135.227 l 
+125.98 135.215 l 125.984 135.203 l 125.988 135.195 l 125.988 135.184 l 125.992
+ 135.172 l 125.992 135.16 l 125.996 135.152 l 126 135.141 l 126 135.129 
+l 126.008 135.105 l 126.008 135.098 l 126.016 135.074 l 126.016 135.062 
+l 126.02 135.055 l 126.02 135.043 l 126.027 135.02 l 126.027 135.008 l 126.031
+ 135 l 126.035 134.988 l 126.035 134.977 l 126.039 134.965 l 126.039 134.957
+ l 126.047 134.934 l 126.047 134.922 l 126.051 134.914 l 126.055 134.902
+ l 126.055 134.891 l 126.059 134.879 l 126.059 134.867 l 126.062 134.859
+ l 126.066 134.848 l 126.066 134.836 l 126.07 134.824 l 126.074 134.816 
+l 126.074 134.805 l 126.078 134.793 l 126.078 134.781 l 126.082 134.773 
+l 126.086 134.762 l 126.086 134.75 l 126.09 134.738 l 126.094 134.73 l 126.094
+ 134.719 l 126.098 134.707 l 126.098 134.695 l 126.102 134.688 l 126.105
+ 134.676 l 126.105 134.664 l 126.113 134.641 l 126.113 134.633 l 126.121
+ 134.609 l 126.121 134.598 l 126.125 134.59 l 126.125 134.578 l 126.133 
+134.555 l 126.133 134.547 l 126.141 134.523 l 126.141 134.512 l 126.145 
+134.504 l 126.145 134.492 l 126.152 134.469 l 126.152 134.461 l 126.16 134.438
+ l 126.16 134.426 l 126.164 134.418 l 126.164 134.406 l 126.172 134.383 
+l 126.172 134.375 l 126.18 134.352 l 126.18 134.34 l 126.184 134.332 l 126.184
+ 134.32 l 126.191 134.297 l 126.191 134.289 l 126.199 134.266 l 126.199 
+134.254 l 126.203 134.246 l 126.207 134.234 l 126.207 134.223 l 126.211 
+134.211 l 126.211 134.203 l 126.219 134.18 l 126.219 134.168 l 126.223 134.16
+ l 126.227 134.148 l 126.227 134.137 l 126.23 134.125 l 126.23 134.117 l
+ 126.238 134.094 l 126.238 134.082 l 126.242 134.074 l 126.246 134.062 l
+ 126.246 134.051 l 126.25 134.043 l 126.25 134.031 l 126.258 134.008 l 126.258
+ 134 l 126.266 133.977 l 126.266 133.965 l 126.27 133.957 l 126.27 133.945
+ l 126.277 133.922 l 126.277 133.914 l 126.285 133.891 l 126.285 133.879
+ l 126.289 133.871 l 126.289 133.859 l 126.293 133.848 l 126.297 133.84 
+l 126.297 133.828 l 126.305 133.805 l 126.305 133.797 l 126.312 133.773 
+l 126.312 133.762 l 126.316 133.754 l 126.316 133.742 l 126.324 133.719 
+l 126.324 133.711 l 126.332 133.688 l 126.332 133.68 l 126.336 133.668 l
+ 126.336 133.656 l 126.34 133.645 l 126.344 133.637 l 126.344 133.625 l 
+126.352 133.602 l 126.352 133.594 l 126.355 133.582 l 126.355 133.57 l 126.359
+ 133.562 l 126.363 133.551 l 126.363 133.539 l 126.367 133.527 l 126.371
+ 133.52 l 126.371 133.508 l 126.375 133.496 l 126.375 133.488 l 126.383 
+133.465 l 126.383 133.453 l 126.387 133.445 l 126.391 133.434 l 126.391 
+133.422 l 126.395 133.414 l 126.398 133.402 l 126.398 133.391 l 126.402 
+133.379 l 126.402 133.371 l 126.41 133.348 l 126.41 133.336 l 126.414 133.328
+ l 126.418 133.316 l 126.418 133.305 l 126.422 133.297 l 126.422 133.285
+ l 126.43 133.262 l 126.43 133.254 l 126.438 133.23 l 126.438 133.223 l 
+126.441 133.211 l 126.441 133.199 l 126.445 133.188 l 126.449 133.18 l 126.449
+ 133.168 l 126.453 133.156 l 126.457 133.148 l 126.457 133.137 l 126.461
+ 133.125 l 126.461 133.117 l 126.469 133.094 l 126.469 133.082 l 126.473
+ 133.074 l 126.477 133.062 l 126.477 133.051 l 126.48 133.043 l 126.48 133.031
+ l 126.488 133.008 l 126.488 133 l 126.496 132.977 l 126.496 132.969 l 126.504
+ 132.945 l 126.504 132.938 l 126.508 132.926 l 126.508 132.914 l 126.512
+ 132.902 l 126.516 132.895 l 126.516 132.883 l 126.52 132.871 l 126.523 
+132.863 l 126.523 132.852 l 126.527 132.84 l 126.527 132.832 l 126.535 132.809
+ l 126.535 132.797 l 126.539 132.789 l 126.543 132.777 l 126.543 132.766
+ l 126.547 132.758 l 126.547 132.746 l 126.551 132.734 l 126.555 132.727
+ l 126.555 132.715 l 126.562 132.691 l 126.562 132.684 l 126.566 132.672
+ l 126.566 132.66 l 126.57 132.652 l 126.574 132.641 l 126.574 132.629 l
+ 126.578 132.621 l 126.582 132.609 l 126.582 132.598 l 126.586 132.59 l 
+126.586 132.578 l 126.594 132.555 l 126.594 132.547 l 126.602 132.523 l 
+126.602 132.516 l 126.609 132.492 l 126.609 132.484 l 126.613 132.473 l 
+126.613 132.461 l 126.617 132.453 l 126.621 132.441 l 126.621 132.43 l 126.625
+ 132.422 l 126.629 132.41 l 126.629 132.398 l 126.633 132.387 l 126.633 
+132.379 l 126.641 132.355 l 126.641 132.348 l 126.648 132.324 l 126.648 
+132.316 l 126.652 132.305 l 126.652 132.293 l 126.656 132.285 l 126.66 132.273
+ l 126.66 132.262 l 126.664 132.254 l 126.668 132.242 l 126.668 132.23 l
+ 126.672 132.223 l 126.672 132.211 l 126.676 132.199 l 126.68 132.191 l 
+126.68 132.18 l 126.684 132.168 l 126.688 132.16 l 126.688 132.148 l 126.691
+ 132.137 l 126.695 132.129 l 126.695 132.117 l 126.699 132.105 l 126.699
+ 132.094 l 126.703 132.086 l 126.707 132.074 l 126.707 132.062 l 126.711
+ 132.055 l 126.715 132.043 l 126.715 132.031 l 126.719 132.023 l 126.719
+ 132.012 l 126.723 132 l 126.727 131.992 l 126.727 131.98 l 126.73 131.969
+ l 126.734 131.961 l 126.734 131.949 l 126.738 131.938 l 126.738 131.93 
+l 126.746 131.906 l 126.746 131.898 l 126.754 131.875 l 126.754 131.867 
+l 126.758 131.855 l 126.758 131.844 l 126.762 131.836 l 126.766 131.824 
+l 126.766 131.812 l 126.77 131.805 l 126.773 131.793 l 126.773 131.781 l
+ 126.777 131.773 l 126.777 131.762 l 126.781 131.75 l 126.785 131.742 l 
+126.785 131.73 l 126.789 131.719 l 126.793 131.711 l 126.793 131.699 l 126.797
+ 131.688 l 126.801 131.68 l 126.801 131.668 l 126.805 131.656 l 126.805 
+131.648 l 126.809 131.637 l 126.812 131.629 l 126.812 131.617 l 126.816 
+131.605 l 126.82 131.598 l 126.82 131.586 l 126.824 131.574 l 126.824 131.566
+ l 126.832 131.543 l 126.832 131.535 l 126.84 131.512 l 126.84 131.504 l
+ 126.844 131.492 l 126.844 131.48 l 126.848 131.473 l 126.852 131.461 l 
+126.852 131.449 l 126.855 131.441 l 126.859 131.43 l 126.859 131.418 l 126.863
+ 131.41 l 126.863 131.398 l 126.867 131.387 l 126.871 131.379 l 126.871 
+131.367 l 126.875 131.359 l 126.879 131.348 l 126.879 131.336 l 126.883 
+131.328 l 126.887 131.316 l 126.887 131.305 l 126.891 131.297 l 126.891 
+131.285 l 126.895 131.273 l 126.898 131.266 l 126.898 131.254 l 126.902 
+131.242 l 126.906 131.234 l 126.906 131.223 l 126.91 131.215 l 126.91 131.203
+ l 126.914 131.191 l 126.918 131.184 l 126.918 131.172 l 126.922 131.16 
+l 126.926 131.152 l 126.926 131.141 l 126.93 131.129 l 126.93 131.121 l 
+126.938 131.098 l 126.938 131.09 l 126.941 131.078 l 126.945 131.07 l 126.945
+ 131.059 l 126.949 131.047 l 126.949 131.039 l 126.957 131.016 l 126.957
+ 131.008 l 126.965 130.984 l 126.965 130.977 l 126.969 130.965 l 126.969
+ 130.957 l 126.977 130.934 l 126.977 130.926 l 126.984 130.902 l 126.984
+ 130.895 l 126.992 130.871 l 126.992 130.863 l 126.996 130.852 l 126.996
+ 130.844 l 127.004 130.82 l 127.004 130.812 l 127.012 130.789 l 127.012 
+130.781 l 127.016 130.77 l 127.016 130.762 l 127.023 130.738 l 127.023 130.73
+ l 127.031 130.707 l 127.031 130.699 l 127.035 130.688 l 127.035 130.68 
+l 127.043 130.656 l 127.043 130.648 l 127.051 130.625 l 127.051 130.617 
+l 127.055 130.605 l 127.055 130.598 l 127.062 130.574 l 127.062 130.566 
+l 127.07 130.543 l 127.07 130.535 l 127.074 130.523 l 127.078 130.516 l 
+127.078 130.504 l 127.082 130.492 l 127.082 130.484 l 127.086 130.473 l 
+127.09 130.465 l 127.09 130.453 l 127.094 130.441 l 127.098 130.434 l 127.098
+ 130.422 l 127.102 130.41 l 127.102 130.402 l 127.105 130.391 l 127.109 
+130.383 l 127.109 130.371 l 127.113 130.359 l 127.117 130.352 l 127.117 
+130.34 l 127.121 130.332 l 127.121 130.32 l 127.125 130.309 l 127.129 130.301
+ l 127.129 130.289 l 127.133 130.277 l 127.137 130.27 l 127.137 130.258 
+l 127.141 130.25 l 127.141 130.238 l 127.145 130.227 l 127.148 130.219 l
+ 127.148 130.207 l 127.152 130.199 l 127.156 130.188 l 127.156 130.176 l
+ 127.16 130.168 l 127.16 130.156 l 127.164 130.148 l 127.168 130.137 l 127.168
+ 130.125 l 127.172 130.117 l 127.176 130.105 l 127.176 130.098 l 127.184
+ 130.074 l 127.184 130.066 l 127.188 130.055 l 127.188 130.047 l 127.195
+ 130.023 l 127.195 130.016 l 127.199 130.004 l 127.203 129.996 l 127.203
+ 129.984 l 127.207 129.973 l 127.207 129.965 l 127.211 129.953 l 127.215
+ 129.945 l 127.215 129.934 l 127.219 129.922 l 127.223 129.914 l 127.223
+ 129.902 l 127.227 129.895 l 127.227 129.883 l 127.23 129.871 l 127.234 
+129.863 l 127.234 129.852 l 127.238 129.844 l 127.242 129.832 l 127.242 
+129.82 l 127.246 129.812 l 127.246 129.801 l 127.25 129.793 l 127.254 129.781
+ l 127.254 129.77 l 127.258 129.762 l 127.262 129.75 l 127.262 129.742 l
+ 127.27 129.719 l 127.27 129.711 l 127.273 129.699 l 127.273 129.691 l 127.277
+ 129.68 l 127.281 129.672 l 127.281 129.66 l 127.285 129.648 l 127.289 129.641
+ l 127.289 129.629 l 127.293 129.621 l 127.293 129.609 l 127.297 129.598
+ l 127.301 129.59 l 127.301 129.578 l 127.305 129.57 l 127.309 129.559 l
+ 127.309 129.551 l 127.312 129.539 l 127.312 129.527 l 127.316 129.52 l 
+127.32 129.508 l 127.32 129.5 l 127.328 129.477 l 127.328 129.469 l 127.332
+ 129.457 l 127.332 129.449 l 127.336 129.438 l 127.34 129.43 l 127.34 129.418
+ l 127.344 129.406 l 127.348 129.398 l 127.348 129.387 l 127.352 129.379
+ l 127.352 129.367 l 127.355 129.355 l 127.359 129.348 l 127.359 129.336
+ l 127.363 129.328 l 127.367 129.316 l 127.367 129.309 l 127.375 129.285
+ l 127.375 129.277 l 127.379 129.266 l 127.379 129.258 l 127.383 129.246
+ l 127.387 129.238 l 127.387 129.227 l 127.391 129.215 l 127.395 129.207
+ l 127.395 129.195 l 127.398 129.188 l 127.398 129.176 l 127.402 129.168
+ l 127.406 129.156 l 127.406 129.145 l 127.41 129.137 l 127.414 129.125 
+l 127.414 129.117 l 127.418 129.105 l 127.418 129.098 l 127.426 129.074 
+l 127.426 129.066 l 127.43 129.055 l 127.434 129.047 l 127.434 129.035 l
+ 127.438 129.027 l 127.438 129.016 l 127.441 129.008 l 127.445 128.996 l
+ 127.445 128.984 l 127.449 128.977 l 127.453 128.965 l 127.453 128.957 l
+ 127.457 128.945 l 127.461 128.938 l 127.461 128.926 l 127.465 128.914 l
+ 127.465 128.906 l 127.469 128.895 l 127.473 128.887 l 127.473 128.875 l
+ 127.477 128.867 l 127.48 128.855 l 127.48 128.848 l 127.484 128.836 l 127.484
+ 128.824 l 127.488 128.816 l 127.492 128.805 l 127.492 128.797 l 127.496
+ 128.785 l 127.5 128.777 l 127.5 128.766 l 127.504 128.758 l 127.504 128.746
+ l 127.508 128.734 l 127.512 128.727 l 127.512 128.715 l 127.516 128.707
+ l 127.52 128.695 l 127.52 128.688 l 127.523 128.676 l 127.523 128.668 l
+ 127.531 128.645 l 127.531 128.637 l 127.535 128.625 l 127.539 128.617 l
+ 127.539 128.605 l 127.543 128.598 l 127.543 128.586 l 127.547 128.578 l
+ 127.551 128.566 l 127.551 128.559 l 127.559 128.535 l 127.559 128.527 l
+ 127.562 128.516 l 127.566 128.508 l 127.566 128.496 l 127.57 128.488 l 
+127.57 128.477 l 127.574 128.469 l 127.578 128.457 l 127.578 128.449 l 127.586
+ 128.426 l 127.586 128.418 l 127.59 128.406 l 127.59 128.398 l 127.594 128.387
+ l 127.598 128.379 l 127.598 128.367 l 127.602 128.359 l 127.605 128.348
+ l 127.605 128.34 l 127.609 128.328 l 127.609 128.32 l 127.617 128.297 l
+ 127.617 128.289 l 127.621 128.277 l 127.625 128.27 l 127.625 128.258 l 
+127.629 128.25 l 127.629 128.238 l 127.633 128.23 l 127.637 128.219 l 127.637
+ 128.211 l 127.641 128.199 l 127.645 128.191 l 127.645 128.18 l 127.648 
+128.168 l 127.652 128.16 l 127.652 128.148 l 127.656 128.141 l 127.656 128.129
+ l 127.66 128.121 l 127.664 128.109 l 127.664 128.102 l 127.668 128.09 l
+ 127.672 128.082 l 127.672 128.07 l 127.676 128.062 l 127.676 128.051 l 
+127.68 128.043 l 127.684 128.031 l 127.684 128.023 l 127.691 128 l 127.691
+ 127.992 l 127.695 127.98 l 127.695 127.973 l 127.699 127.961 l 127.703 
+127.953 l 127.703 127.941 l 127.707 127.934 l 127.711 127.922 l 127.711 
+127.914 l 127.715 127.902 l 127.715 127.895 l 127.719 127.883 l 127.723 
+127.875 l 127.723 127.863 l 127.727 127.855 l 127.73 127.844 l 127.73 127.836
+ l 127.734 127.824 l 127.734 127.816 l 127.742 127.793 l 127.742 127.785
+ l 127.746 127.773 l 127.75 127.766 l 127.75 127.754 l 127.754 127.746 l
+ 127.758 127.734 l 127.758 127.727 l 127.762 127.715 l 127.762 127.707 l
+ 127.766 127.695 l 127.77 127.688 l 127.77 127.676 l 127.773 127.668 l 127.777
+ 127.656 l 127.777 127.648 l 127.781 127.637 l 127.781 127.629 l 127.785
+ 127.617 l 127.789 127.609 l 127.789 127.598 l 127.793 127.59 l 127.797 
+127.578 l 127.797 127.57 l 127.801 127.559 l 127.801 127.551 l 127.805 127.539
+ l 127.809 127.531 l 127.809 127.52 l 127.812 127.512 l 127.816 127.5 l 
+127.816 127.492 l 127.82 127.48 l 127.82 127.473 l 127.824 127.461 l 127.828
+ 127.453 l 127.828 127.441 l 127.832 127.434 l 127.836 127.422 l 127.836
+ 127.414 l 127.84 127.402 l 127.844 127.395 l 127.844 127.383 l 127.848 
+127.375 l 127.848 127.363 l 127.852 127.355 l 127.855 127.344 l 127.855 
+127.332 l 127.859 127.324 l 127.863 127.312 l 127.863 127.305 l 127.867 
+127.293 l 127.867 127.285 l 127.871 127.277 l 127.875 127.266 l 127.875 
+127.258 l 127.879 127.246 l 127.883 127.238 l 127.883 127.227 l 127.887 
+127.219 l 127.887 127.207 l 127.891 127.199 l 127.895 127.188 l 127.895 
+127.18 l 127.898 127.168 l 127.902 127.16 l 127.902 127.148 l 127.906 127.141
+ l 127.906 127.129 l 127.91 127.121 l 127.914 127.109 l 127.914 127.102 
+l 127.918 127.09 l 127.922 127.082 l 127.922 127.07 l 127.926 127.062 l 
+127.926 127.051 l 127.93 127.043 l 127.934 127.031 l 127.934 127.023 l 127.938
+ 127.012 l 127.941 127.004 l 127.941 126.992 l 127.945 126.984 l 127.949
+ 126.973 l 127.949 126.965 l 127.953 126.953 l 127.953 126.945 l 127.957
+ 126.934 l 127.961 126.926 l 127.961 126.914 l 127.965 126.906 l 127.969
+ 126.895 l 127.969 126.887 l 127.973 126.875 l 127.973 126.867 l 127.977
+ 126.855 l 127.98 126.848 l 127.98 126.836 l 127.984 126.828 l 127.988 126.816
+ l 127.988 126.809 l 127.992 126.797 l 127.992 126.789 l 127.996 126.781
+ l 128 126.77 l 128 126.762 l 128.004 126.75 l 128.008 126.742 l 128.008
+ 126.73 l 128.012 126.723 l 128.012 126.711 l 128.016 126.703 l 128.02 126.691
+ l 128.02 126.684 l 128.023 126.672 l 128.027 126.664 l 128.027 126.652 
+l 128.031 126.645 l 128.035 126.633 l 128.035 126.625 l 128.039 126.613 
+l 128.039 126.605 l 128.043 126.594 l 128.047 126.586 l 128.047 126.578 
+l 128.051 126.566 l 128.055 126.559 l 128.055 126.547 l 128.059 126.539 
+l 128.059 126.527 l 128.062 126.52 l 128.066 126.508 l 128.066 126.5 l 128.07
+ 126.488 l 128.074 126.48 l 128.074 126.469 l 128.078 126.461 l 128.078 
+126.449 l 128.082 126.441 l 128.086 126.43 l 128.086 126.422 l 128.09 126.414
+ l 128.094 126.402 l 128.094 126.395 l 128.098 126.383 l 128.098 126.375
+ l 128.102 126.363 l 128.105 126.355 l 128.105 126.344 l 128.109 126.336
+ l 128.113 126.324 l 128.113 126.316 l 128.117 126.305 l 128.117 126.297
+ l 128.121 126.289 l 128.125 126.277 l 128.125 126.27 l 128.129 126.258 
+l 128.133 126.25 l 128.133 126.238 l 128.137 126.23 l 128.141 126.219 l 
+128.141 126.211 l 128.145 126.199 l 128.145 126.191 l 128.148 126.18 l 128.152
+ 126.172 l 128.152 126.164 l 128.156 126.152 l 128.16 126.145 l 128.16 126.133
+ l 128.164 126.125 l 128.164 126.113 l 128.168 126.105 l 128.172 126.094
+ l 128.172 126.086 l 128.176 126.074 l 128.18 126.066 l 128.18 126.059 l
+ 128.184 126.047 l 128.184 126.039 l 128.188 126.027 l 128.191 126.02 l 
+128.191 126.008 l 128.195 126 l 128.199 125.988 l 128.199 125.98 l 128.203
+ 125.969 l 128.203 125.961 l 128.207 125.953 l 128.211 125.941 l 128.211
+ 125.934 l 128.215 125.922 l 128.219 125.914 l 128.219 125.902 l 128.223
+ 125.895 l 128.227 125.883 l 128.227 125.875 l 128.23 125.867 l 128.23 125.855
+ l 128.234 125.848 l 128.238 125.836 l 128.238 125.828 l 128.242 125.816
+ l 128.246 125.809 l 128.246 125.797 l 128.25 125.789 l 128.25 125.781 l
+ 128.254 125.77 l 128.258 125.762 l 128.258 125.75 l 128.262 125.742 l 128.266
+ 125.73 l 128.266 125.723 l 128.27 125.715 l 128.27 125.703 l 128.273 125.695
+ l 128.277 125.684 l 128.277 125.676 l 128.281 125.664 l 128.285 125.656
+ l 128.285 125.645 l 128.289 125.637 l 128.289 125.629 l 128.293 125.617
+ l 128.297 125.609 l 128.297 125.598 l 128.301 125.59 l 128.305 125.578 
+l 128.305 125.57 l 128.309 125.562 l 128.309 125.551 l 128.312 125.543 l
+ 128.316 125.531 l 128.316 125.523 l 128.32 125.512 l 128.324 125.504 l 
+128.324 125.496 l 128.328 125.484 l 128.332 125.477 l 128.332 125.465 l 
+128.336 125.457 l 128.336 125.445 l 128.344 125.43 l 128.344 125.418 l 128.348
+ 125.41 l 128.352 125.398 l 128.352 125.391 l 128.355 125.379 l 128.355 
+125.371 l 128.359 125.363 l 128.363 125.352 l 128.363 125.344 l 128.367 
+125.332 l 128.371 125.324 l 128.371 125.312 l 128.375 125.305 l 128.375 
+125.297 l 128.379 125.285 l 128.383 125.277 l 128.383 125.266 l 128.387 
+125.258 l 128.391 125.246 l 128.391 125.238 l 128.395 125.23 l 128.395 125.219
+ l 128.398 125.211 l 128.402 125.199 l 128.402 125.191 l 128.406 125.184
+ l 128.41 125.172 l 128.41 125.164 l 128.414 125.152 l 128.418 125.145 l
+ 128.418 125.133 l 128.422 125.125 l 128.422 125.117 l 128.426 125.105 l
+ 128.43 125.098 l 128.43 125.086 l 128.438 125.07 l 128.438 125.059 l 128.441
+ 125.051 l 128.441 125.039 l 128.445 125.031 l 128.449 125.02 l 128.449 
+125.012 l 128.453 125.004 l 128.457 124.992 l 128.457 124.984 l 128.461 
+124.973 l 128.461 124.965 l 128.465 124.957 l 128.469 124.945 l 128.469 
+124.938 l 128.473 124.926 l 128.477 124.918 l 128.477 124.91 l 128.48 124.898
+ l 128.48 124.891 l 128.484 124.879 l 128.488 124.871 l 128.488 124.863 
+l 128.492 124.852 l 128.496 124.844 l 128.496 124.832 l 128.5 124.824 l 
+128.5 124.812 l 128.508 124.797 l 128.508 124.785 l 128.512 124.777 l 128.516
+ 124.766 l 128.516 124.758 l 128.52 124.75 l 128.523 124.738 l 128.523 124.73
+ l 128.527 124.719 l 128.527 124.711 l 128.531 124.703 l 128.535 124.691
+ l 128.535 124.684 l 128.539 124.672 l 128.543 124.664 l 128.543 124.656
+ l 128.547 124.645 l 128.547 124.637 l 128.551 124.629 l 128.555 124.617
+ l 128.555 124.609 l 128.559 124.598 l 128.562 124.59 l 128.562 124.582 
+l 128.566 124.57 l 128.566 124.562 l 128.57 124.551 l 128.574 124.543 l 
+128.574 124.535 l 128.578 124.523 l 128.582 124.516 l 128.582 124.504 l 
+128.586 124.496 l 128.586 124.488 l 128.59 124.477 l 128.594 124.469 l 128.594
+ 124.457 l 128.602 124.441 l 128.602 124.43 l 128.605 124.422 l 128.609 
+124.41 l 128.609 124.402 l 128.613 124.395 l 128.613 124.383 l 128.621 124.367
+ l 128.621 124.355 l 128.625 124.348 l 128.629 124.336 l 128.629 124.328
+ l 128.633 124.32 l 128.633 124.309 l 128.637 124.301 l 128.641 124.289 
+l 128.641 124.281 l 128.645 124.273 l 128.648 124.262 l 128.648 124.254 
+l 128.652 124.246 l 128.652 124.234 l 128.656 124.227 l 128.66 124.215 l
+ 128.66 124.207 l 128.664 124.199 l 128.668 124.188 l 128.668 124.18 l 128.672
+ 124.172 l 128.672 124.16 l 128.676 124.152 l 128.68 124.141 l 128.68 124.133
+ l 128.684 124.125 l 128.688 124.113 l 128.688 124.105 l 128.691 124.098
+ l 128.691 124.086 l 128.695 124.078 l 128.699 124.066 l 128.699 124.059
+ l 128.703 124.051 l 128.707 124.039 l 128.707 124.031 l 128.711 124.023
+ l 128.715 124.012 l 128.715 124.004 l 128.719 123.992 l 128.719 123.984
+ l 128.723 123.977 l 128.727 123.965 l 128.727 123.957 l 128.73 123.949 
+l 128.734 123.938 l 128.734 123.93 l 128.738 123.922 l 128.738 123.91 l 
+128.742 123.902 l 128.746 123.891 l 128.746 123.883 l 128.75 123.875 l 128.754
+ 123.863 l 128.754 123.855 l 128.758 123.848 l 128.758 123.836 l 128.762
+ 123.828 l 128.766 123.816 l 128.766 123.809 l 128.77 123.801 l 128.773 
+123.789 l 128.773 123.781 l 128.777 123.773 l 128.777 123.762 l 128.785 
+123.746 l 128.785 123.734 l 128.793 123.719 l 128.793 123.707 l 128.797 
+123.699 l 128.797 123.688 l 128.805 123.672 l 128.805 123.66 l 128.812 123.645
+ l 128.812 123.633 l 128.82 123.617 l 128.82 123.605 l 128.824 123.598 l
+ 128.824 123.59 l 128.828 123.578 l 128.832 123.57 l 128.832 123.559 l 128.84
+ 123.543 l 128.84 123.531 l 128.844 123.523 l 128.844 123.516 l 128.848 
+123.504 l 128.852 123.496 l 128.852 123.488 l 128.855 123.477 l 128.859 
+123.469 l 128.859 123.461 l 128.863 123.449 l 128.863 123.441 l 128.867 
+123.434 l 128.871 123.422 l 128.871 123.414 l 128.875 123.406 l 128.879 
+123.395 l 128.879 123.387 l 128.883 123.375 l 128.883 123.367 l 128.887 
+123.359 l 128.891 123.348 l 128.891 123.34 l 128.895 123.332 l 128.898 123.32
+ l 128.898 123.312 l 128.902 123.305 l 128.906 123.293 l 128.906 123.285
+ l 128.91 123.277 l 128.91 123.266 l 128.918 123.25 l 128.918 123.238 l 
+128.926 123.223 l 128.926 123.211 l 128.93 123.203 l 128.93 123.195 l 128.934
+ 123.184 l 128.938 123.176 l 128.938 123.168 l 128.941 123.156 l 128.945
+ 123.148 l 128.945 123.141 l 128.949 123.129 l 128.949 123.121 l 128.953
+ 123.113 l 128.957 123.102 l 128.957 123.094 l 128.961 123.086 l 128.965
+ 123.074 l 128.965 123.066 l 128.969 123.059 l 128.969 123.047 l 128.977
+ 123.031 l 128.977 123.02 l 128.984 123.004 l 128.984 122.992 l 128.988 
+122.984 l 128.988 122.977 l 128.992 122.965 l 128.996 122.957 l 128.996 
+122.949 l 129 122.938 l 129.004 122.93 l 129.004 122.922 l 129.008 122.91
+ l 129.012 122.902 l 129.012 122.895 l 129.016 122.883 l 129.016 122.875
+ l 129.02 122.867 l 129.023 122.855 l 129.023 122.848 l 129.027 122.84 l
+ 129.031 122.828 l 129.031 122.82 l 129.035 122.812 l 129.035 122.801 l 
+129.043 122.785 l 129.043 122.777 l 129.047 122.766 l 129.051 122.758 l 
+129.051 122.75 l 129.055 122.738 l 129.055 122.73 l 129.059 122.723 l 129.062
+ 122.711 l 129.062 122.703 l 129.066 122.695 l 129.07 122.684 l 129.07 122.676
+ l 129.074 122.668 l 129.074 122.656 l 129.082 122.641 l 129.082 122.629
+ l 129.09 122.613 l 129.09 122.605 l 129.094 122.594 l 129.098 122.586 l
+ 129.098 122.578 l 129.102 122.566 l 129.102 122.559 l 129.105 122.551 l
+ 129.109 122.539 l 129.109 122.531 l 129.113 122.523 l 129.117 122.512 l
+ 129.117 122.504 l 129.121 122.496 l 129.121 122.484 l 129.129 122.469 l
+ 129.129 122.461 l 129.133 122.449 l 129.137 122.441 l 129.137 122.434 l
+ 129.141 122.422 l 129.141 122.414 l 129.145 122.406 l 129.148 122.395 l
+ 129.148 122.387 l 129.156 122.371 l 129.156 122.359 l 129.16 122.352 l 
+129.16 122.344 l 129.164 122.332 l 129.168 122.324 l 129.168 122.316 l 129.172
+ 122.305 l 129.176 122.297 l 129.176 122.289 l 129.18 122.277 l 129.18 122.27
+ l 129.188 122.254 l 129.188 122.242 l 129.195 122.227 l 129.195 122.215
+ l 129.203 122.199 l 129.203 122.191 l 129.207 122.18 l 129.207 122.172 
+l 129.211 122.164 l 129.215 122.152 l 129.215 122.145 l 129.219 122.137 
+l 129.223 122.125 l 129.223 122.117 l 129.227 122.109 l 129.227 122.102 
+l 129.23 122.09 l 129.234 122.082 l 129.234 122.074 l 129.238 122.062 l 
+129.242 122.055 l 129.242 122.047 l 129.246 122.039 l 129.246 122.027 l 
+129.254 122.012 l 129.254 122 l 129.262 121.984 l 129.262 121.977 l 129.266
+ 121.965 l 129.266 121.957 l 129.27 121.949 l 129.273 121.938 l 129.273 
+121.93 l 129.281 121.914 l 129.281 121.902 l 129.289 121.887 l 129.289 121.875
+ l 129.293 121.867 l 129.293 121.859 l 129.297 121.852 l 129.301 121.84 
+l 129.301 121.832 l 129.305 121.824 l 129.309 121.812 l 129.309 121.805 
+l 129.312 121.797 l 129.312 121.789 l 129.316 121.777 l 129.32 121.77 l 
+129.32 121.762 l 129.324 121.75 l 129.328 121.742 l 129.328 121.734 l 129.332
+ 121.727 l 129.332 121.715 l 129.34 121.699 l 129.34 121.691 l 129.344 121.68
+ l 129.348 121.672 l 129.348 121.664 l 129.352 121.652 l 129.352 121.645
+ l 129.359 121.629 l 129.359 121.617 l 129.367 121.602 l 129.367 121.594
+ l 129.371 121.582 l 129.371 121.574 l 129.375 121.566 l 129.379 121.555
+ l 129.379 121.547 l 129.387 121.531 l 129.387 121.52 l 129.395 121.504 
+l 129.395 121.496 l 129.398 121.484 l 129.398 121.477 l 129.406 121.461 
+l 129.406 121.449 l 129.414 121.434 l 129.414 121.422 l 129.418 121.414 
+l 129.418 121.406 l 129.422 121.398 l 129.426 121.387 l 129.426 121.379 
+l 129.434 121.363 l 129.434 121.352 l 129.438 121.344 l 129.438 121.336 
+l 129.441 121.328 l 129.445 121.316 l 129.445 121.309 l 129.453 121.293 
+l 129.453 121.281 l 129.457 121.273 l 129.457 121.266 l 129.461 121.258 
+l 129.465 121.246 l 129.465 121.238 l 129.473 121.223 l 129.473 121.211 
+l 129.48 121.195 l 129.48 121.188 l 129.484 121.176 l 129.484 121.168 l 
+129.492 121.152 l 129.492 121.141 l 129.5 121.125 l 129.5 121.117 l 129.504
+ 121.105 l 129.504 121.098 l 129.512 121.082 l 129.512 121.07 l 129.52 121.055
+ l 129.52 121.047 l 129.523 121.035 l 129.523 121.027 l 129.531 121.012 
+l 129.531 121 l 129.539 120.984 l 129.539 120.977 l 129.543 120.965 l 129.543
+ 120.957 l 129.551 120.941 l 129.551 120.93 l 129.559 120.914 l 129.559 
+120.906 l 129.562 120.895 l 129.562 120.887 l 129.57 120.871 l 129.57 120.859
+ l 129.578 120.844 l 129.578 120.836 l 129.582 120.824 l 129.586 120.816
+ l 129.586 120.809 l 129.59 120.801 l 129.59 120.793 l 129.594 120.781 l
+ 129.598 120.773 l 129.598 120.766 l 129.602 120.758 l 129.605 120.746 l
+ 129.605 120.738 l 129.609 120.73 l 129.609 120.723 l 129.613 120.711 l 
+129.617 120.703 l 129.617 120.695 l 129.621 120.688 l 129.625 120.676 l 
+129.625 120.668 l 129.629 120.66 l 129.629 120.652 l 129.633 120.645 l 129.637
+ 120.633 l 129.637 120.625 l 129.645 120.609 l 129.645 120.598 l 129.648
+ 120.59 l 129.648 120.582 l 129.656 120.566 l 129.656 120.555 l 129.664 
+120.539 l 129.664 120.531 l 129.668 120.52 l 129.672 120.512 l 129.672 120.504
+ l 129.676 120.496 l 129.676 120.488 l 129.68 120.477 l 129.684 120.469 
+l 129.684 120.461 l 129.688 120.453 l 129.691 120.441 l 129.691 120.434 
+l 129.695 120.426 l 129.695 120.418 l 129.699 120.41 l 129.703 120.398 l
+ 129.703 120.391 l 129.711 120.375 l 129.711 120.363 l 129.715 120.355 l
+ 129.715 120.348 l 129.723 120.332 l 129.723 120.32 l 129.73 120.305 l 129.73
+ 120.297 l 129.734 120.285 l 129.734 120.277 l 129.742 120.262 l 129.742
+ 120.254 l 129.746 120.242 l 129.75 120.234 l 129.75 120.227 l 129.754 120.219
+ l 129.754 120.211 l 129.758 120.199 l 129.762 120.191 l 129.762 120.184
+ l 129.77 120.168 l 129.77 120.156 l 129.777 120.141 l 129.777 120.133 l
+ 129.781 120.121 l 129.781 120.113 l 129.789 120.098 l 129.789 120.09 l 
+129.793 120.078 l 129.797 120.07 l 129.797 120.062 l 129.801 120.055 l 129.801
+ 120.047 l 129.805 120.035 l 129.809 120.027 l 129.809 120.02 l 129.816 
+120.004 l 129.816 119.992 l 129.82 119.984 l 129.82 119.977 l 129.828 119.961
+ l 129.828 119.949 l 129.836 119.934 l 129.836 119.926 l 129.84 119.918 
+l 129.84 119.906 l 129.848 119.891 l 129.848 119.883 l 129.852 119.875 l
+ 129.855 119.863 l 129.855 119.855 l 129.863 119.84 l 129.863 119.832 l 
+129.867 119.82 l 129.867 119.812 l 129.875 119.797 l 129.875 119.789 l 129.879
+ 119.781 l 129.883 119.77 l 129.883 119.762 l 129.887 119.754 l 129.887 
+119.746 l 129.891 119.738 l 129.895 119.727 l 129.895 119.719 l 129.902 
+119.703 l 129.902 119.695 l 129.906 119.684 l 129.906 119.676 l 129.914 
+119.66 l 129.914 119.652 l 129.918 119.645 l 129.922 119.633 l 129.922 119.625
+ l 129.926 119.617 l 129.926 119.609 l 129.93 119.602 l 129.934 119.59 l
+ 129.934 119.582 l 129.941 119.566 l 129.941 119.559 l 129.945 119.547 l
+ 129.945 119.539 l 129.953 119.523 l 129.953 119.516 l 129.957 119.508 l
+ 129.961 119.496 l 129.961 119.488 l 129.969 119.473 l 129.969 119.465 l
+ 129.973 119.457 l 129.973 119.445 l 129.98 119.43 l 129.98 119.422 l 129.984
+ 119.414 l 129.988 119.402 l 129.988 119.395 l 129.992 119.387 l 129.992
+ 119.379 l 130 119.363 l 130 119.352 l 130.008 119.336 l 130.008 119.328
+ l 130.012 119.32 l 130.012 119.312 l 130.016 119.301 l 130.02 119.293 l
+ 130.02 119.285 l 130.027 119.27 l 130.027 119.262 l 130.031 119.25 l 130.031
+ 119.242 l 130.039 119.227 l 130.039 119.219 l 130.043 119.211 l 130.047
+ 119.199 l 130.047 119.191 l 130.055 119.176 l 130.055 119.168 l 130.059
+ 119.16 l 130.059 119.148 l 130.066 119.133 l 130.066 119.125 l 130.074 
+119.109 l 130.074 119.098 l 130.078 119.09 l 130.078 119.082 l 130.086 119.066
+ l 130.086 119.059 l 130.09 119.047 l 130.094 119.039 l 130.094 119.031 
+l 130.098 119.023 l 130.098 119.016 l 130.105 119 l 130.105 118.988 l 130.113
+ 118.973 l 130.113 118.965 l 130.117 118.957 l 130.117 118.949 l 130.121
+ 118.938 l 130.125 118.93 l 130.125 118.922 l 130.133 118.906 l 130.133 
+118.898 l 130.137 118.891 l 130.137 118.879 l 130.145 118.863 l 130.145 
+118.855 l 130.152 118.84 l 130.152 118.828 l 130.16 118.812 l 130.16 118.805
+ l 130.164 118.797 l 130.164 118.789 l 130.168 118.781 l 130.172 118.77 
+l 130.172 118.762 l 130.18 118.746 l 130.18 118.738 l 130.184 118.73 l 130.184
+ 118.723 l 130.188 118.711 l 130.191 118.703 l 130.191 118.695 l 130.199
+ 118.68 l 130.199 118.672 l 130.203 118.664 l 130.203 118.652 l 130.211 
+118.637 l 130.211 118.629 l 130.219 118.613 l 130.219 118.605 l 130.223 
+118.594 l 130.223 118.586 l 130.23 118.57 l 130.23 118.562 l 130.238 118.547
+ l 130.238 118.535 l 130.246 118.52 l 130.246 118.512 l 130.25 118.504 l
+ 130.25 118.496 l 130.258 118.48 l 130.258 118.469 l 130.266 118.453 l 130.266
+ 118.445 l 130.27 118.438 l 130.27 118.43 l 130.273 118.422 l 130.277 118.41
+ l 130.277 118.402 l 130.285 118.387 l 130.285 118.379 l 130.289 118.371
+ l 130.289 118.363 l 130.293 118.355 l 130.297 118.344 l 130.297 118.336
+ l 130.305 118.32 l 130.305 118.312 l 130.309 118.305 l 130.309 118.297 
+l 130.312 118.289 l 130.316 118.277 l 130.316 118.27 l 130.324 118.254 l
+ 130.324 118.246 l 130.328 118.238 l 130.328 118.23 l 130.332 118.223 l 
+130.336 118.211 l 130.336 118.203 l 130.344 118.188 l 130.344 118.18 l 130.352
+ 118.164 l 130.352 118.156 l 130.355 118.148 l 130.355 118.137 l 130.363
+ 118.121 l 130.363 118.113 l 130.371 118.098 l 130.371 118.09 l 130.375 
+118.082 l 130.375 118.07 l 130.383 118.055 l 130.383 118.047 l 130.391 118.031
+ l 130.391 118.023 l 130.395 118.016 l 130.395 118.008 l 130.398 117.996
+ l 130.402 117.988 l 130.402 117.98 l 130.41 117.965 l 130.41 117.957 l 
+130.414 117.949 l 130.414 117.941 l 130.418 117.934 l 130.422 117.922 l 
+130.422 117.914 l 130.43 117.898 l 130.43 117.891 l 130.438 117.875 l 130.438
+ 117.867 l 130.441 117.859 l 130.441 117.852 l 130.445 117.84 l 130.449 
+117.832 l 130.449 117.824 l 130.457 117.809 l 130.457 117.801 l 130.461 
+117.793 l 130.461 117.785 l 130.465 117.777 l 130.469 117.766 l 130.469 
+117.758 l 130.477 117.742 l 130.477 117.734 l 130.48 117.727 l 130.48 117.719
+ l 130.488 117.703 l 130.488 117.695 l 130.492 117.688 l 130.496 117.676
+ l 130.496 117.668 l 130.5 117.66 l 130.5 117.652 l 130.508 117.637 l 130.508
+ 117.629 l 130.516 117.613 l 130.516 117.605 l 130.52 117.594 l 130.52 117.586
+ l 130.527 117.57 l 130.527 117.562 l 130.535 117.547 l 130.535 117.539 
+l 130.543 117.523 l 130.543 117.516 l 130.547 117.504 l 130.547 117.496 
+l 130.555 117.48 l 130.555 117.473 l 130.562 117.457 l 130.562 117.449 l
+ 130.566 117.441 l 130.566 117.434 l 130.574 117.418 l 130.574 117.406 l
+ 130.582 117.391 l 130.582 117.383 l 130.586 117.375 l 130.586 117.367 l
+ 130.594 117.352 l 130.594 117.344 l 130.602 117.328 l 130.602 117.32 l 
+130.605 117.309 l 130.605 117.301 l 130.613 117.285 l 130.613 117.277 l 
+130.621 117.262 l 130.621 117.254 l 130.629 117.238 l 130.629 117.23 l 130.633
+ 117.223 l 130.633 117.215 l 130.637 117.203 l 130.641 117.195 l 130.641
+ 117.188 l 130.648 117.172 l 130.648 117.164 l 130.652 117.156 l 130.652
+ 117.148 l 130.66 117.133 l 130.66 117.125 l 130.668 117.109 l 130.668 117.102
+ l 130.672 117.09 l 130.672 117.082 l 130.68 117.066 l 130.68 117.059 l 
+130.688 117.043 l 130.688 117.035 l 130.691 117.027 l 130.691 117.02 l 130.699
+ 117.004 l 130.699 116.996 l 130.707 116.98 l 130.707 116.969 l 130.711 
+116.961 l 130.711 116.953 l 130.719 116.938 l 130.719 116.93 l 130.727 116.914
+ l 130.727 116.906 l 130.734 116.891 l 130.734 116.883 l 130.738 116.875
+ l 130.738 116.867 l 130.746 116.852 l 130.746 116.84 l 130.754 116.824 
+l 130.754 116.816 l 130.758 116.809 l 130.758 116.801 l 130.766 116.785 
+l 130.766 116.777 l 130.773 116.762 l 130.773 116.754 l 130.777 116.746 
+l 130.777 116.738 l 130.785 116.723 l 130.785 116.715 l 130.793 116.699 
+l 130.793 116.688 l 130.797 116.68 l 130.797 116.672 l 130.805 116.656 l
+ 130.805 116.648 l 130.812 116.633 l 130.812 116.625 l 130.82 116.609 l 
+130.82 116.602 l 130.824 116.594 l 130.824 116.586 l 130.832 116.57 l 130.832
+ 116.562 l 130.84 116.547 l 130.84 116.539 l 130.844 116.531 l 130.844 116.523
+ l 130.848 116.512 l 130.852 116.504 l 130.852 116.496 l 130.859 116.48 
+l 130.859 116.473 l 130.863 116.465 l 130.863 116.457 l 130.871 116.441 
+l 130.871 116.434 l 130.879 116.418 l 130.879 116.41 l 130.883 116.402 l
+ 130.883 116.395 l 130.891 116.379 l 130.891 116.371 l 130.898 116.355 l
+ 130.898 116.348 l 130.902 116.34 l 130.902 116.332 l 130.91 116.316 l 130.91
+ 116.309 l 130.914 116.297 l 130.918 116.289 l 130.918 116.281 l 130.926
+ 116.266 l 130.926 116.258 l 130.93 116.25 l 130.93 116.242 l 130.938 116.227
+ l 130.938 116.219 l 130.945 116.203 l 130.945 116.195 l 130.949 116.188
+ l 130.949 116.18 l 130.957 116.164 l 130.957 116.156 l 130.965 116.141 
+l 130.965 116.133 l 130.969 116.125 l 130.969 116.117 l 130.977 116.102 
+l 130.977 116.094 l 130.984 116.078 l 130.984 116.07 l 130.988 116.062 l
+ 130.988 116.055 l 130.996 116.039 l 130.996 116.031 l 131.004 116.016 l
+ 131.004 116.008 l 131.012 115.992 l 131.012 115.984 l 131.016 115.977 l
+ 131.016 115.965 l 131.023 115.949 l 131.023 115.941 l 131.031 115.926 l
+ 131.031 115.918 l 131.035 115.91 l 131.035 115.902 l 131.043 115.887 l 
+131.043 115.879 l 131.051 115.863 l 131.051 115.855 l 131.055 115.848 l 
+131.055 115.84 l 131.062 115.824 l 131.062 115.816 l 131.07 115.801 l 131.07
+ 115.793 l 131.074 115.785 l 131.074 115.777 l 131.082 115.762 l 131.082
+ 115.754 l 131.09 115.738 l 131.09 115.73 l 131.094 115.723 l 131.094 115.715
+ l 131.102 115.699 l 131.102 115.691 l 131.109 115.676 l 131.109 115.668
+ l 131.117 115.652 l 131.117 115.645 l 131.121 115.637 l 131.121 115.629
+ l 131.129 115.613 l 131.129 115.605 l 131.137 115.59 l 131.137 115.582 
+l 131.141 115.574 l 131.141 115.566 l 131.148 115.551 l 131.148 115.543 
+l 131.156 115.527 l 131.156 115.52 l 131.16 115.512 l 131.16 115.504 l 131.168
+ 115.488 l 131.168 115.48 l 131.176 115.465 l 131.176 115.457 l 131.18 115.449
+ l 131.18 115.441 l 131.188 115.426 l 131.188 115.418 l 131.195 115.402 
+l 131.195 115.395 l 131.203 115.379 l 131.203 115.371 l 131.207 115.363 
+l 131.207 115.355 l 131.215 115.34 l 131.215 115.332 l 131.223 115.316 l
+ 131.223 115.312 l 131.227 115.305 l 131.227 115.297 l 131.234 115.281 l
+ 131.234 115.273 l 131.242 115.258 l 131.242 115.25 l 131.246 115.242 l 
+131.246 115.234 l 131.254 115.219 l 131.254 115.211 l 131.262 115.195 l 
+131.262 115.188 l 131.266 115.18 l 131.266 115.172 l 131.273 115.156 l 131.273
+ 115.148 l 131.281 115.133 l 131.281 115.125 l 131.285 115.117 l 131.285
+ 115.109 l 131.293 115.094 l 131.293 115.086 l 131.301 115.07 l 131.301 
+115.062 l 131.309 115.047 l 131.309 115.039 l 131.312 115.031 l 131.312 
+115.023 l 131.32 115.008 l 131.32 115 l 131.324 114.992 l 131.328 114.988
+ l 131.328 114.98 l 131.332 114.973 l 131.332 114.965 l 131.34 114.949 l
+ 131.34 114.941 l 131.348 114.926 l 131.348 114.918 l 131.352 114.91 l 131.352
+ 114.902 l 131.359 114.887 l 131.359 114.879 l 131.367 114.863 l 131.367
+ 114.855 l 131.371 114.848 l 131.371 114.84 l 131.379 114.824 l 131.379 
+114.816 l 131.387 114.801 l 131.387 114.793 l 131.391 114.785 l 131.395 
+114.781 l 131.395 114.773 l 131.398 114.766 l 131.398 114.758 l 131.406 
+114.742 l 131.406 114.734 l 131.414 114.719 l 131.414 114.711 l 131.418 
+114.703 l 131.418 114.695 l 131.426 114.68 l 131.426 114.672 l 131.434 114.656
+ l 131.434 114.648 l 131.438 114.641 l 131.438 114.633 l 131.445 114.617
+ l 131.445 114.613 l 131.453 114.598 l 131.453 114.59 l 131.457 114.582 
+l 131.457 114.574 l 131.465 114.559 l 131.465 114.551 l 131.473 114.535 
+l 131.473 114.527 l 131.477 114.52 l 131.477 114.512 l 131.484 114.496 l
+ 131.484 114.488 l 131.488 114.48 l 131.492 114.477 l 131.492 114.469 l 
+131.5 114.453 l 131.5 114.445 l 131.504 114.438 l 131.504 114.43 l 131.512
+ 114.414 l 131.512 114.406 l 131.52 114.391 l 131.52 114.383 l 131.523 114.375
+ l 131.523 114.367 l 131.531 114.352 l 131.531 114.348 l 131.539 114.332
+ l 131.539 114.324 l 131.543 114.316 l 131.543 114.309 l 131.551 114.293
+ l 131.551 114.285 l 131.559 114.27 l 131.559 114.262 l 131.562 114.254 
+l 131.562 114.246 l 131.566 114.238 l 131.57 114.234 l 131.57 114.227 l 
+131.578 114.211 l 131.578 114.203 l 131.586 114.188 l 131.586 114.18 l 131.59
+ 114.172 l 131.59 114.164 l 131.598 114.148 l 131.598 114.141 l 131.602 
+114.133 l 131.605 114.129 l 131.605 114.121 l 131.609 114.113 l 131.609 
+114.105 l 131.617 114.09 l 131.617 114.082 l 131.625 114.066 l 131.625 114.059
+ l 131.629 114.051 l 131.629 114.043 l 131.633 114.035 l 131.637 114.031
+ l 131.637 114.023 l 131.645 114.008 l 131.645 114 l 131.648 113.992 l 131.648
+ 113.984 l 131.656 113.969 l 131.656 113.961 l 131.664 113.945 l 131.664
+ 113.941 l 131.668 113.934 l 131.668 113.926 l 131.676 113.91 l 131.676 
+113.902 l 131.684 113.887 l 131.684 113.879 l 131.691 113.863 l 131.691 
+113.855 l 131.695 113.852 l 131.695 113.844 l 131.703 113.828 l 131.703 
+113.82 l 131.711 113.805 l 131.711 113.797 l 131.715 113.789 l 131.715 113.781
+ l 131.719 113.773 l 131.723 113.77 l 131.723 113.762 l 131.73 113.746 l
+ 131.73 113.738 l 131.734 113.73 l 131.734 113.723 l 131.742 113.707 l 131.742
+ 113.699 l 131.746 113.695 l 131.75 113.688 l 131.75 113.68 l 131.754 113.672
+ l 131.754 113.664 l 131.762 113.648 l 131.762 113.641 l 131.77 113.625 
+l 131.77 113.617 l 131.773 113.613 l 131.777 113.605 l 131.777 113.598 l
+ 131.781 113.59 l 131.781 113.582 l 131.789 113.566 l 131.789 113.559 l 
+131.793 113.551 l 131.797 113.547 l 131.797 113.539 l 131.801 113.531 l 
+131.801 113.523 l 131.809 113.508 l 131.809 113.5 l 131.816 113.484 l 131.816
+ 113.477 l 131.82 113.473 l 131.82 113.465 l 131.828 113.449 l 131.828 113.441
+ l 131.836 113.426 l 131.836 113.418 l 131.84 113.41 l 131.84 113.406 l 
+131.848 113.391 l 131.848 113.383 l 131.855 113.367 l 131.855 113.359 l 
+131.859 113.352 l 131.859 113.344 l 131.863 113.34 l 131.867 113.332 l 131.867
+ 113.324 l 131.875 113.309 l 131.875 113.301 l 131.883 113.285 l 131.883
+ 113.277 l 131.887 113.273 l 131.887 113.266 l 131.895 113.25 l 131.895 
+113.242 l 131.902 113.227 l 131.902 113.219 l 131.906 113.215 l 131.906 
+113.207 l 131.914 113.191 l 131.914 113.184 l 131.922 113.168 l 131.922 
+113.16 l 131.926 113.156 l 131.926 113.148 l 131.934 113.133 l 131.934 113.125
+ l 131.941 113.109 l 131.941 113.102 l 131.945 113.098 l 131.945 113.09 
+l 131.953 113.074 l 131.953 113.066 l 131.961 113.051 l 131.961 113.043 
+l 131.965 113.039 l 131.969 113.031 l 131.969 113.023 l 131.973 113.016 
+l 131.973 113.008 l 131.98 112.992 l 131.98 112.984 l 131.984 112.98 l 131.988
+ 112.973 l 131.988 112.965 l 131.992 112.957 l 131.992 112.949 l 132 112.934
+ l 132 112.93 l 132.008 112.914 l 132.008 112.906 l 132.012 112.898 l 132.012
+ 112.891 l 132.016 112.883 l 132.02 112.879 l 132.02 112.871 l 132.027 112.855
+ l 132.027 112.848 l 132.031 112.84 l 132.031 112.832 l 132.035 112.828 
+l 132.039 112.82 l 132.039 112.812 l 132.047 112.797 l 132.047 112.789 l
+ 132.051 112.781 l 132.051 112.773 l 132.055 112.77 l 132.059 112.762 l 
+132.059 112.754 l 132.066 112.738 l 132.066 112.73 l 132.07 112.727 l 132.074
+ 112.719 l 132.074 112.711 l 132.078 112.703 l 132.078 112.695 l 132.086
+ 112.68 l 132.086 112.676 l 132.094 112.66 l 132.094 112.652 l 132.098 112.645
+ l 132.098 112.637 l 132.102 112.629 l 132.105 112.625 l 132.105 112.617
+ l 132.113 112.602 l 132.113 112.594 l 132.117 112.586 l 132.117 112.582
+ l 132.125 112.566 l 132.125 112.559 l 132.133 112.543 l 132.133 112.535
+ l 132.137 112.531 l 132.137 112.523 l 132.145 112.508 l 132.145 112.5 l
+ 132.148 112.492 l 132.152 112.488 l 132.152 112.48 l 132.156 112.473 l 
+132.156 112.465 l 132.164 112.449 l 132.164 112.441 l 132.168 112.438 l 
+132.172 112.43 l 132.172 112.422 l 132.18 112.406 l 132.18 112.398 l 132.184
+ 112.395 l 132.184 112.387 l 132.191 112.371 l 132.191 112.363 l 132.195
+ 112.355 l 132.199 112.352 l 132.199 112.344 l 132.203 112.336 l 132.203
+ 112.328 l 132.211 112.312 l 132.211 112.309 l 132.219 112.293 l 132.219
+ 112.285 l 132.223 112.277 l 132.223 112.27 l 132.227 112.266 l 132.23 112.258
+ l 132.23 112.25 l 132.238 112.234 l 132.238 112.227 l 132.242 112.223 l
+ 132.242 112.215 l 132.25 112.199 l 132.25 112.191 l 132.254 112.188 l 132.258
+ 112.18 l 132.258 112.172 l 132.266 112.156 l 132.266 112.148 l 132.27 112.145
+ l 132.27 112.137 l 132.277 112.121 l 132.277 112.113 l 132.281 112.105 
+l 132.285 112.102 l 132.285 112.094 l 132.289 112.086 l 132.289 112.078 
+l 132.293 112.07 l 132.297 112.066 l 132.297 112.059 l 132.305 112.043 l
+ 132.305 112.035 l 132.309 112.027 l 132.309 112.023 l 132.316 112.008 l
+ 132.316 112 l 132.32 111.992 l 132.324 111.988 l 132.324 111.98 l 132.328
+ 111.973 l 132.328 111.965 l 132.336 111.949 l 132.336 111.945 l 132.344
+ 111.93 l 132.344 111.922 l 132.348 111.914 l 132.348 111.91 l 132.355 111.895
+ l 132.355 111.887 l 132.359 111.879 l 132.363 111.875 l 132.363 111.867
+ l 132.371 111.852 l 132.371 111.844 l 132.375 111.836 l 132.375 111.832
+ l 132.383 111.816 l 132.383 111.809 l 132.387 111.801 l 132.391 111.797
+ l 132.391 111.789 l 132.395 111.781 l 132.395 111.773 l 132.398 111.766
+ l 132.402 111.762 l 132.402 111.754 l 132.41 111.738 l 132.41 111.73 l 
+132.414 111.727 l 132.414 111.719 l 132.422 111.703 l 132.422 111.695 l 
+132.426 111.691 l 132.43 111.684 l 132.43 111.676 l 132.434 111.668 l 132.434
+ 111.66 l 132.438 111.656 l 132.441 111.648 l 132.441 111.641 l 132.449 
+111.625 l 132.449 111.621 l 132.457 111.605 l 132.457 111.598 l 132.461 
+111.59 l 132.461 111.586 l 132.469 111.57 l 132.469 111.562 l 132.473 111.555
+ l 132.477 111.551 l 132.477 111.543 l 132.48 111.535 l 132.48 111.527 l
+ 132.484 111.523 l 132.488 111.516 l 132.488 111.508 l 132.496 111.492 l
+ 132.496 111.488 l 132.5 111.48 l 132.5 111.473 l 132.508 111.457 l 132.508
+ 111.453 l 132.516 111.438 l 132.516 111.43 l 132.52 111.426 l 132.52 111.418
+ l 132.527 111.402 l 132.527 111.395 l 132.531 111.391 l 132.535 111.383
+ l 132.535 111.375 l 132.539 111.367 l 132.539 111.359 l 132.543 111.355
+ l 132.547 111.348 l 132.547 111.34 l 132.551 111.332 l 132.555 111.328 
+l 132.555 111.32 l 132.562 111.305 l 132.562 111.297 l 132.566 111.293 l
+ 132.566 111.285 l 132.574 111.27 l 132.574 111.266 l 132.582 111.25 l 132.582
+ 111.242 l 132.586 111.234 l 132.586 111.23 l 132.594 111.215 l 132.594 
+111.207 l 132.598 111.203 l 132.602 111.195 l 132.602 111.188 l 132.605 
+111.18 l 132.605 111.172 l 132.609 111.168 l 132.613 111.16 l 132.613 111.152
+ l 132.617 111.145 l 132.621 111.141 l 132.621 111.133 l 132.625 111.125
+ l 132.625 111.117 l 132.629 111.113 l 132.633 111.105 l 132.633 111.098
+ l 132.641 111.082 l 132.641 111.078 l 132.648 111.062 l 132.648 111.055
+ l 132.652 111.051 l 132.652 111.043 l 132.66 111.027 l 132.66 111.023 l
+ 132.668 111.008 l 132.668 111 l 132.672 110.996 l 132.672 110.988 l 132.68
+ 110.973 l 132.68 110.965 l 132.684 110.961 l 132.688 110.953 l 132.688 
+110.945 l 132.691 110.938 l 132.691 110.934 l 132.699 110.918 l 132.699 
+110.91 l 132.703 110.906 l 132.707 110.898 l 132.707 110.891 l 132.711 110.883
+ l 132.711 110.879 l 132.719 110.863 l 132.719 110.855 l 132.723 110.852
+ l 132.727 110.844 l 132.727 110.836 l 132.73 110.828 l 132.73 110.824 l
+ 132.738 110.809 l 132.738 110.801 l 132.742 110.797 l 132.746 110.789 l
+ 132.746 110.781 l 132.75 110.773 l 132.754 110.77 l 132.754 110.762 l 132.758
+ 110.754 l 132.758 110.746 l 132.762 110.742 l 132.766 110.734 l 132.766
+ 110.727 l 132.77 110.719 l 132.773 110.715 l 132.773 110.707 l 132.777 
+110.699 l 132.777 110.691 l 132.781 110.688 l 132.785 110.68 l 132.785 110.672
+ l 132.789 110.664 l 132.793 110.66 l 132.793 110.652 l 132.797 110.645 
+l 132.797 110.637 l 132.801 110.633 l 132.805 110.625 l 132.805 110.617 
+l 132.809 110.609 l 132.812 110.605 l 132.812 110.598 l 132.816 110.59 l
+ 132.816 110.582 l 132.82 110.578 l 132.824 110.57 l 132.824 110.562 l 132.828
+ 110.555 l 132.832 110.551 l 132.832 110.543 l 132.836 110.535 l 132.84 
+110.531 l 132.84 110.523 l 132.844 110.516 l 132.844 110.508 l 132.848 110.504
+ l 132.852 110.496 l 132.852 110.488 l 132.855 110.48 l 132.859 110.477 
+l 132.859 110.469 l 132.863 110.461 l 132.863 110.453 l 132.867 110.449 
+l 132.871 110.441 l 132.871 110.434 l 132.875 110.43 l 132.879 110.422 l
+ 132.879 110.414 l 132.883 110.406 l 132.883 110.402 l 132.891 110.387 l
+ 132.891 110.379 l 132.895 110.375 l 132.898 110.367 l 132.898 110.359 l
+ 132.902 110.352 l 132.902 110.348 l 132.91 110.332 l 132.91 110.328 l 132.918
+ 110.312 l 132.918 110.305 l 132.922 110.301 l 132.922 110.293 l 132.926
+ 110.285 l 132.93 110.281 l 132.93 110.273 l 132.938 110.258 l 132.938 110.254
+ l 132.945 110.238 l 132.945 110.23 l 132.949 110.227 l 132.949 110.219 
+l 132.953 110.211 l 132.957 110.207 l 132.957 110.199 l 132.965 110.184 
+l 132.965 110.18 l 132.969 110.172 l 132.969 110.164 l 132.973 110.16 l 
+132.977 110.152 l 132.977 110.145 l 132.98 110.137 l 132.984 110.133 l 132.984
+ 110.125 l 132.988 110.117 l 132.988 110.113 l 132.996 110.098 l 132.996
+ 110.09 l 133 110.086 l 133.004 110.078 l 133.004 110.07 l 133.008 110.066
+ l 133.008 110.059 l 133.016 110.043 l 133.016 110.039 l 133.023 110.023
+ l 133.023 110.02 l 133.031 110.004 l 133.031 109.996 l 133.035 109.992 
+l 133.035 109.984 l 133.039 109.977 l 133.043 109.973 l 133.043 109.965 
+l 133.047 109.957 l 133.051 109.953 l 133.051 109.945 l 133.055 109.938 
+l 133.055 109.93 l 133.059 109.926 l 133.062 109.918 l 133.062 109.91 l 
+133.066 109.906 l 133.07 109.898 l 133.07 109.891 l 133.074 109.883 l 133.074
+ 109.879 l 133.082 109.863 l 133.082 109.859 l 133.09 109.844 l 133.09 109.84
+ l 133.094 109.832 l 133.094 109.824 l 133.098 109.816 l 133.102 109.812
+ l 133.102 109.805 l 133.105 109.797 l 133.109 109.793 l 133.109 109.785
+ l 133.113 109.777 l 133.113 109.773 l 133.121 109.758 l 133.121 109.754
+ l 133.129 109.738 l 133.129 109.73 l 133.133 109.727 l 133.137 109.719 
+l 133.137 109.711 l 133.141 109.707 l 133.141 109.699 l 133.145 109.691 
+l 133.148 109.688 l 133.148 109.68 l 133.152 109.672 l 133.156 109.668 l
+ 133.156 109.66 l 133.16 109.652 l 133.16 109.645 l 133.164 109.641 l 133.168
+ 109.633 l 133.168 109.625 l 133.172 109.621 l 133.176 109.613 l 133.176
+ 109.605 l 133.18 109.602 l 133.18 109.594 l 133.184 109.586 l 133.188 109.582
+ l 133.188 109.574 l 133.191 109.566 l 133.195 109.562 l 133.195 109.555
+ l 133.199 109.547 l 133.199 109.539 l 133.203 109.535 l 133.207 109.527
+ l 133.207 109.52 l 133.211 109.516 l 133.215 109.508 l 133.215 109.5 l 
+133.219 109.496 l 133.223 109.488 l 133.223 109.48 l 133.227 109.477 l 133.227
+ 109.469 l 133.23 109.461 l 133.234 109.457 l 133.234 109.449 l 133.238 
+109.441 l 133.242 109.438 l 133.242 109.43 l 133.246 109.422 l 133.246 109.418
+ l 133.254 109.402 l 133.254 109.398 l 133.262 109.383 l 133.262 109.379
+ l 133.266 109.371 l 133.266 109.363 l 133.27 109.359 l 133.273 109.352 
+l 133.273 109.344 l 133.277 109.34 l 133.281 109.332 l 133.281 109.324 l
+ 133.285 109.32 l 133.285 109.312 l 133.293 109.297 l 133.293 109.293 l 
+133.301 109.277 l 133.301 109.273 l 133.305 109.266 l 133.305 109.258 l 
+133.309 109.254 l 133.312 109.246 l 133.312 109.238 l 133.316 109.234 l 
+133.32 109.227 l 133.32 109.219 l 133.324 109.215 l 133.328 109.207 l 133.328
+ 109.203 l 133.332 109.195 l 133.332 109.188 l 133.336 109.184 l 133.34 
+109.176 l 133.34 109.168 l 133.344 109.164 l 133.348 109.156 l 133.348 109.148
+ l 133.352 109.145 l 133.352 109.137 l 133.355 109.129 l 133.359 109.125
+ l 133.359 109.117 l 133.363 109.109 l 133.367 109.105 l 133.367 109.098
+ l 133.371 109.09 l 133.371 109.086 l 133.379 109.07 l 133.379 109.066 l
+ 133.387 109.051 l 133.387 109.047 l 133.391 109.039 l 133.391 109.031 l
+ 133.395 109.027 l 133.398 109.02 l 133.398 109.012 l 133.402 109.008 l 
+133.406 109 l 133.406 108.992 l 133.41 108.988 l 133.414 108.98 l 133.414
+ 108.977 l 133.418 108.969 l 133.418 108.961 l 133.422 108.957 l 133.426
+ 108.949 l 133.426 108.941 l 133.43 108.938 l 133.434 108.93 l 133.434 108.922
+ l 133.438 108.918 l 133.438 108.91 l 133.441 108.902 l 133.445 108.898 
+l 133.445 108.891 l 133.449 108.883 l 133.453 108.879 l 133.453 108.871 
+l 133.457 108.867 l 133.457 108.859 l 133.461 108.852 l 133.465 108.848 
+l 133.465 108.84 l 133.469 108.832 l 133.473 108.828 l 133.473 108.82 l 
+133.477 108.812 l 133.477 108.809 l 133.484 108.793 l 133.484 108.789 l 
+133.488 108.781 l 133.492 108.777 l 133.492 108.77 l 133.496 108.762 l 133.496
+ 108.758 l 133.504 108.742 l 133.504 108.738 l 133.512 108.723 l 133.512
+ 108.719 l 133.516 108.711 l 133.52 108.707 l 133.52 108.699 l 133.523 108.691
+ l 133.523 108.688 l 133.531 108.672 l 133.531 108.668 l 133.539 108.652
+ l 133.539 108.648 l 133.543 108.641 l 133.543 108.637 l 133.551 108.621
+ l 133.551 108.617 l 133.559 108.602 l 133.559 108.598 l 133.562 108.59 
+l 133.562 108.586 l 133.57 108.57 l 133.57 108.566 l 133.578 108.551 l 133.578
+ 108.547 l 133.582 108.539 l 133.582 108.535 l 133.59 108.52 l 133.59 108.516
+ l 133.598 108.5 l 133.598 108.496 l 133.602 108.488 l 133.605 108.484 l
+ 133.605 108.477 l 133.609 108.469 l 133.609 108.465 l 133.617 108.449 l
+ 133.617 108.445 l 133.621 108.438 l 133.625 108.434 l 133.625 108.426 l
+ 133.629 108.418 l 133.629 108.414 l 133.637 108.398 l 133.637 108.395 l
+ 133.641 108.387 l 133.645 108.383 l 133.645 108.375 l 133.648 108.367 l
+ 133.648 108.363 l 133.652 108.355 l 133.656 108.352 l 133.656 108.344 l
+ 133.66 108.336 l 133.664 108.332 l 133.664 108.324 l 133.668 108.316 l 
+133.668 108.312 l 133.672 108.305 l 133.676 108.301 l 133.676 108.293 l 
+133.68 108.285 l 133.684 108.281 l 133.684 108.273 l 133.688 108.27 l 133.688
+ 108.262 l 133.691 108.254 l 133.695 108.25 l 133.695 108.242 l 133.699 
+108.238 l 133.703 108.23 l 133.703 108.223 l 133.707 108.219 l 133.711 108.211
+ l 133.711 108.207 l 133.715 108.199 l 133.715 108.191 l 133.719 108.188
+ l 133.723 108.18 l 133.723 108.172 l 133.727 108.168 l 133.73 108.16 l 
+133.73 108.156 l 133.734 108.148 l 133.734 108.141 l 133.738 108.137 l 133.742
+ 108.129 l 133.742 108.125 l 133.75 108.109 l 133.75 108.105 l 133.754 108.098
+ l 133.754 108.094 l 133.762 108.078 l 133.762 108.074 l 133.766 108.066
+ l 133.77 108.062 l 133.77 108.055 l 133.773 108.047 l 133.773 108.043 l
+ 133.777 108.035 l 133.781 108.031 l 133.781 108.023 l 133.785 108.016 l
+ 133.789 108.012 l 133.789 108.004 l 133.793 108 l 133.797 107.992 l 133.797
+ 107.988 l 133.801 107.98 l 133.801 107.973 l 133.805 107.969 l 133.809 
+107.961 l 133.809 107.957 l 133.816 107.941 l 133.816 107.938 l 133.82 107.93
+ l 133.82 107.926 l 133.828 107.91 l 133.828 107.906 l 133.832 107.898 l
+ 133.836 107.895 l 133.836 107.887 l 133.84 107.879 l 133.84 107.875 l 133.844
+ 107.867 l 133.848 107.863 l 133.848 107.855 l 133.852 107.852 l 133.855
+ 107.844 l 133.855 107.836 l 133.859 107.832 l 133.859 107.824 l 133.863
+ 107.82 l 133.867 107.812 l 133.867 107.805 l 133.871 107.801 l 133.875 
+107.793 l 133.875 107.789 l 133.879 107.781 l 133.879 107.777 l 133.887 
+107.762 l 133.887 107.758 l 133.891 107.75 l 133.895 107.746 l 133.895 107.738
+ l 133.898 107.73 l 133.902 107.727 l 133.902 107.719 l 133.906 107.715 
+l 133.906 107.707 l 133.91 107.703 l 133.914 107.695 l 133.914 107.688 l
+ 133.918 107.684 l 133.922 107.676 l 133.922 107.672 l 133.926 107.664 l
+ 133.926 107.66 l 133.934 107.645 l 133.934 107.641 l 133.938 107.633 l 
+133.941 107.629 l 133.941 107.621 l 133.945 107.617 l 133.945 107.609 l 
+133.949 107.602 l 133.953 107.598 l 133.953 107.59 l 133.957 107.586 l 133.961
+ 107.578 l 133.961 107.574 l 133.965 107.566 l 133.965 107.559 l 133.969
+ 107.555 l 133.973 107.547 l 133.973 107.543 l 133.977 107.535 l 133.98 
+107.531 l 133.98 107.523 l 133.984 107.516 l 133.988 107.512 l 133.988 107.504
+ l 133.992 107.5 l 133.992 107.492 l 133.996 107.488 l 134 107.48 l 134 
+107.477 l 134.008 107.461 l 134.008 107.457 l 134.012 107.449 l 134.012 
+107.445 l 134.016 107.438 l 134.02 107.434 l 134.02 107.426 l 134.023 107.418
+ l 134.027 107.414 l 134.027 107.406 l 134.031 107.402 l 134.031 107.395
+ l 134.035 107.391 l 134.039 107.383 l 134.039 107.379 l 134.047 107.363
+ l 134.047 107.359 l 134.051 107.352 l 134.051 107.348 l 134.055 107.34 
+l 134.059 107.336 l 134.059 107.328 l 134.062 107.324 l 134.066 107.316 
+l 134.066 107.309 l 134.07 107.305 l 134.07 107.297 l 134.074 107.293 l 
+134.078 107.285 l 134.078 107.281 l 134.082 107.273 l 134.086 107.27 l 134.086
+ 107.262 l 134.09 107.254 l 134.094 107.25 l 134.094 107.242 l 134.098 107.238
+ l 134.098 107.23 l 134.102 107.227 l 134.105 107.219 l 134.105 107.215 
+l 134.109 107.207 l 134.113 107.203 l 134.113 107.195 l 134.117 107.188 
+l 134.117 107.184 l 134.121 107.176 l 134.125 107.172 l 134.125 107.164 
+l 134.129 107.16 l 134.133 107.152 l 134.133 107.148 l 134.137 107.141 l
+ 134.137 107.137 l 134.145 107.121 l 134.145 107.117 l 134.148 107.109 l
+ 134.152 107.105 l 134.152 107.098 l 134.156 107.094 l 134.156 107.086 l
+ 134.16 107.082 l 134.164 107.074 l 134.164 107.07 l 134.168 107.062 l 134.172
+ 107.059 l 134.172 107.051 l 134.176 107.043 l 134.18 107.039 l 134.18 107.031
+ l 134.184 107.027 l 134.184 107.02 l 134.188 107.016 l 134.191 107.008 
+l 134.191 107.004 l 134.195 106.996 l 134.199 106.992 l 134.199 106.984 
+l 134.203 106.98 l 134.203 106.973 l 134.207 106.969 l 134.211 106.961 l
+ 134.211 106.953 l 134.215 106.949 l 134.219 106.941 l 134.219 106.938 l
+ 134.223 106.93 l 134.223 106.926 l 134.227 106.918 l 134.23 106.914 l 134.23
+ 106.906 l 134.234 106.902 l 134.238 106.895 l 134.238 106.891 l 134.242
+ 106.883 l 134.242 106.879 l 134.246 106.871 l 134.25 106.867 l 134.25 106.859
+ l 134.254 106.852 l 134.258 106.848 l 134.258 106.84 l 134.262 106.836 
+l 134.262 106.828 l 134.266 106.824 l 134.27 106.816 l 134.27 106.812 l 
+134.273 106.805 l 134.277 106.801 l 134.277 106.793 l 134.281 106.789 l 
+134.285 106.781 l 134.285 106.777 l 134.289 106.77 l 134.289 106.766 l 134.293
+ 106.758 l 134.297 106.754 l 134.297 106.746 l 134.301 106.742 l 134.305
+ 106.734 l 134.305 106.727 l 134.309 106.723 l 134.309 106.715 l 134.312
+ 106.711 l 134.316 106.703 l 134.316 106.699 l 134.32 106.691 l 134.324 
+106.688 l 134.324 106.68 l 134.328 106.676 l 134.328 106.668 l 134.332 106.664
+ l 134.336 106.656 l 134.336 106.652 l 134.34 106.645 l 134.344 106.641 
+l 134.344 106.633 l 134.348 106.629 l 134.348 106.621 l 134.352 106.617 
+l 134.355 106.609 l 134.355 106.605 l 134.359 106.598 l 134.363 106.594 
+l 134.363 106.586 l 134.367 106.582 l 134.367 106.574 l 134.371 106.57 l
+ 134.375 106.562 l 134.375 106.559 l 134.379 106.551 l 134.383 106.547 l
+ 134.383 106.539 l 134.387 106.535 l 134.391 106.527 l 134.391 106.523 l
+ 134.395 106.516 l 134.395 106.512 l 134.398 106.504 l 134.402 106.5 l 134.402
+ 106.492 l 134.406 106.488 l 134.41 106.48 l 134.41 106.477 l 134.414 106.469
+ l 134.414 106.465 l 134.418 106.457 l 134.422 106.453 l 134.422 106.445
+ l 134.426 106.441 l 134.43 106.434 l 134.43 106.43 l 134.434 106.422 l 
+134.434 106.418 l 134.438 106.41 l 134.441 106.406 l 134.441 106.398 l 134.445
+ 106.395 l 134.449 106.387 l 134.449 106.383 l 134.453 106.375 l 134.453
+ 106.371 l 134.457 106.363 l 134.461 106.359 l 134.461 106.352 l 134.465
+ 106.348 l 134.469 106.34 l 134.469 106.336 l 134.473 106.328 l 134.477 
+106.324 l 134.477 106.316 l 134.48 106.312 l 134.48 106.305 l 134.484 106.301
+ l 134.488 106.293 l 134.488 106.289 l 134.492 106.281 l 134.496 106.277
+ l 134.496 106.27 l 134.5 106.266 l 134.5 106.258 l 134.504 106.254 l 134.508
+ 106.246 l 134.508 106.242 l 134.512 106.234 l 134.516 106.23 l 134.516 
+106.223 l 134.52 106.219 l 134.52 106.211 l 134.523 106.207 l 134.527 106.199
+ l 134.527 106.195 l 134.531 106.188 l 134.535 106.184 l 134.535 106.176
+ l 134.539 106.172 l 134.539 106.164 l 134.543 106.16 l 134.547 106.152 
+l 134.547 106.148 l 134.551 106.141 l 134.555 106.137 l 134.555 106.133 
+l 134.559 106.125 l 134.559 106.121 l 134.562 106.113 l 134.566 106.109 
+l 134.566 106.102 l 134.57 106.098 l 134.574 106.09 l 134.574 106.086 l 
+134.578 106.078 l 134.582 106.074 l 134.582 106.066 l 134.586 106.062 l 
+134.586 106.055 l 134.59 106.051 l 134.594 106.043 l 134.594 106.039 l 134.598
+ 106.031 l 134.602 106.027 l 134.602 106.02 l 134.605 106.016 l 134.605 
+106.008 l 134.613 106 l 134.613 105.992 l 134.617 105.988 l 134.621 105.98
+ l 134.621 105.977 l 134.625 105.969 l 134.625 105.965 l 134.629 105.957
+ l 134.633 105.953 l 134.633 105.945 l 134.637 105.941 l 134.641 105.934
+ l 134.641 105.93 l 134.645 105.922 l 134.645 105.918 l 134.648 105.91 l
+ 134.652 105.906 l 134.652 105.902 l 134.656 105.895 l 134.66 105.891 l 
+134.66 105.883 l 134.664 105.879 l 134.668 105.871 l 134.668 105.867 l 134.672
+ 105.859 l 134.672 105.855 l 134.676 105.848 l 134.68 105.844 l 134.68 105.836
+ l 134.688 105.828 l 134.688 105.82 l 134.691 105.816 l 134.691 105.809 
+l 134.695 105.805 l 134.699 105.797 l 134.699 105.793 l 134.703 105.785 
+l 134.707 105.781 l 134.707 105.773 l 134.711 105.77 l 134.711 105.762 l
+ 134.719 105.754 l 134.719 105.746 l 134.723 105.742 l 134.727 105.734 l
+ 134.727 105.73 l 134.73 105.723 l 134.73 105.719 l 134.734 105.711 l 134.738
+ 105.707 l 134.738 105.699 l 134.746 105.691 l 134.746 105.684 l 134.75 
+105.68 l 134.75 105.672 l 134.754 105.668 l 134.758 105.66 l 134.758 105.656
+ l 134.762 105.648 l 134.766 105.645 l 134.766 105.637 l 134.773 105.629
+ l 134.773 105.621 l 134.777 105.617 l 134.777 105.609 l 134.781 105.605
+ l 134.785 105.598 l 134.785 105.594 l 134.789 105.586 l 134.793 105.582
+ l 134.793 105.574 l 134.797 105.57 l 134.797 105.566 l 134.801 105.559 
+l 134.805 105.555 l 134.805 105.547 l 134.809 105.543 l 134.812 105.535 
+l 134.812 105.531 l 134.816 105.523 l 134.816 105.52 l 134.82 105.516 l 
+134.824 105.508 l 134.824 105.504 l 134.828 105.496 l 134.832 105.492 l 
+134.832 105.484 l 134.836 105.48 l 134.836 105.477 l 134.84 105.469 l 134.844
+ 105.465 l 134.844 105.457 l 134.848 105.453 l 134.852 105.445 l 134.852
+ 105.441 l 134.855 105.434 l 134.859 105.43 l 134.859 105.426 l 134.863 
+105.418 l 134.863 105.414 l 134.867 105.406 l 134.871 105.402 l 134.871 
+105.395 l 134.879 105.387 l 134.879 105.379 l 134.883 105.375 l 134.883 
+105.367 l 134.887 105.363 l 134.891 105.355 l 134.891 105.352 l 134.895 
+105.344 l 134.898 105.34 l 134.898 105.336 l 134.902 105.328 l 134.902 105.324
+ l 134.906 105.316 l 134.91 105.312 l 134.91 105.305 l 134.918 105.297 l
+ 134.918 105.289 l 134.922 105.285 l 134.922 105.277 l 134.926 105.273 l
+ 134.93 105.266 l 134.93 105.262 l 134.934 105.258 l 134.938 105.25 l 134.938
+ 105.246 l 134.941 105.238 l 134.941 105.234 l 134.945 105.227 l 134.949
+ 105.223 l 134.949 105.219 l 134.953 105.211 l 134.957 105.207 l 134.957
+ 105.199 l 134.965 105.191 l 134.965 105.184 l 134.969 105.18 l 134.969 
+105.172 l 134.973 105.168 l 134.977 105.16 l 134.977 105.156 l 134.98 105.152
+ l 134.984 105.145 l 134.984 105.141 l 134.988 105.133 l 134.988 105.129
+ l 134.992 105.121 l 134.996 105.117 l 134.996 105.113 l 135 105.105 l 135.004
+ 105.102 l 135.004 105.094 l 135.008 105.09 l 135.008 105.086 l 135.012 
+105.078 l 135.016 105.074 l 135.016 105.066 l 135.02 105.062 l 135.023 105.055
+ l 135.023 105.051 l 135.027 105.047 l 135.027 105.039 l 135.031 105.035
+ l 135.035 105.027 l 135.035 105.023 l 135.039 105.02 l 135.043 105.012 
+l 135.043 105.008 l 135.047 105 l 135.051 104.996 l 135.051 104.992 l 135.055
+ 104.984 l 135.055 104.98 l 135.059 104.973 l 135.062 104.969 l 135.062 
+104.965 l 135.066 104.957 l 135.07 104.953 l 135.07 104.945 l 135.074 104.941
+ l 135.074 104.934 l 135.082 104.926 l 135.082 104.918 l 135.086 104.914
+ l 135.09 104.906 l 135.09 104.902 l 135.094 104.898 l 135.094 104.891 l
+ 135.098 104.887 l 135.102 104.879 l 135.102 104.875 l 135.105 104.871 l
+ 135.109 104.863 l 135.109 104.859 l 135.113 104.852 l 135.113 104.848 l
+ 135.117 104.844 l 135.121 104.836 l 135.121 104.832 l 135.125 104.824 l
+ 135.129 104.82 l 135.129 104.816 l 135.133 104.809 l 135.133 104.805 l 
+135.137 104.797 l 135.141 104.793 l 135.141 104.789 l 135.145 104.781 l 
+135.148 104.777 l 135.148 104.77 l 135.156 104.762 l 135.156 104.754 l 135.16
+ 104.75 l 135.16 104.742 l 135.168 104.734 l 135.168 104.727 l 135.176 104.719
+ l 135.176 104.711 l 135.18 104.707 l 135.18 104.699 l 135.188 104.691 l
+ 135.188 104.684 l 135.191 104.68 l 135.195 104.672 l 135.195 104.668 l 
+135.199 104.664 l 135.199 104.656 l 135.203 104.652 l 135.207 104.645 l 
+135.207 104.641 l 135.211 104.637 l 135.215 104.629 l 135.215 104.625 l 
+135.219 104.621 l 135.219 104.613 l 135.223 104.609 l 135.227 104.602 l 
+135.227 104.598 l 135.23 104.594 l 135.234 104.586 l 135.234 104.582 l 135.238
+ 104.574 l 135.242 104.57 l 135.242 104.566 l 135.246 104.559 l 135.246 
+104.555 l 135.25 104.551 l 135.254 104.543 l 135.254 104.539 l 135.258 104.531
+ l 135.262 104.527 l 135.262 104.523 l 135.266 104.516 l 135.266 104.512
+ l 135.27 104.508 l 135.273 104.5 l 135.273 104.496 l 135.277 104.488 l 
+135.281 104.484 l 135.281 104.48 l 135.285 104.473 l 135.285 104.469 l 135.289
+ 104.461 l 135.293 104.457 l 135.293 104.453 l 135.297 104.445 l 135.301
+ 104.441 l 135.301 104.438 l 135.305 104.43 l 135.305 104.426 l 135.309 
+104.422 l 135.312 104.414 l 135.312 104.41 l 135.316 104.402 l 135.32 104.398
+ l 135.32 104.395 l 135.324 104.387 l 135.324 104.383 l 135.328 104.379 
+l 135.332 104.371 l 135.332 104.367 l 135.336 104.359 l 135.34 104.355 l
+ 135.34 104.352 l 135.344 104.344 l 135.348 104.34 l 135.348 104.336 l 135.352
+ 104.328 l 135.352 104.324 l 135.355 104.316 l 135.359 104.312 l 135.359
+ 104.309 l 135.363 104.301 l 135.367 104.297 l 135.367 104.293 l 135.371
+ 104.285 l 135.371 104.281 l 135.375 104.277 l 135.379 104.27 l 135.379 
+104.266 l 135.383 104.258 l 135.387 104.254 l 135.387 104.25 l 135.391 104.242
+ l 135.391 104.238 l 135.395 104.234 l 135.398 104.227 l 135.398 104.223
+ l 135.402 104.219 l 135.406 104.211 l 135.406 104.207 l 135.41 104.203 
+l 135.41 104.195 l 135.414 104.191 l 135.418 104.184 l 135.418 104.18 l 
+135.422 104.176 l 135.426 104.168 l 135.426 104.164 l 135.43 104.16 l 135.434
+ 104.152 l 135.434 104.148 l 135.438 104.145 l 135.438 104.137 l 135.445
+ 104.129 l 135.445 104.121 l 135.449 104.117 l 135.453 104.109 l 135.453
+ 104.105 l 135.457 104.102 l 135.457 104.094 l 135.465 104.086 l 135.465
+ 104.078 l 135.473 104.07 l 135.473 104.062 l 135.477 104.059 l 135.477 
+104.055 l 135.48 104.047 l 135.484 104.043 l 135.484 104.039 l 135.488 104.031
+ l 135.492 104.027 l 135.492 104.023 l 135.496 104.016 l 135.496 104.012
+ l 135.5 104.008 l 135.504 104 l 135.504 103.996 l 135.508 103.988 l 135.512
+ 103.984 l 135.512 103.98 l 135.516 103.973 l 135.516 103.969 l 135.52 103.965
+ l 135.523 103.957 l 135.523 103.953 l 135.527 103.949 l 135.531 103.941
+ l 135.531 103.938 l 135.535 103.934 l 135.539 103.926 l 135.539 103.922
+ l 135.543 103.918 l 135.543 103.91 l 135.551 103.902 l 135.551 103.895 
+l 135.559 103.887 l 135.559 103.879 l 135.562 103.875 l 135.562 103.871 
+l 135.566 103.863 l 135.57 103.859 l 135.57 103.855 l 135.574 103.848 l 
+135.578 103.844 l 135.578 103.84 l 135.582 103.832 l 135.582 103.828 l 135.586
+ 103.824 l 135.59 103.816 l 135.59 103.812 l 135.594 103.809 l 135.598 103.801
+ l 135.598 103.797 l 135.602 103.793 l 135.602 103.785 l 135.609 103.777
+ l 135.609 103.77 l 135.617 103.762 l 135.617 103.754 l 135.625 103.746 
+l 135.625 103.738 l 135.629 103.734 l 135.629 103.73 l 135.633 103.723 l
+ 135.637 103.719 l 135.637 103.715 l 135.641 103.707 l 135.645 103.703 l
+ 135.645 103.699 l 135.648 103.691 l 135.648 103.688 l 135.652 103.684 l
+ 135.656 103.676 l 135.656 103.672 l 135.664 103.664 l 135.664 103.656 l
+ 135.668 103.652 l 135.668 103.648 l 135.672 103.641 l 135.676 103.637 l
+ 135.676 103.633 l 135.68 103.625 l 135.684 103.621 l 135.684 103.617 l 
+135.688 103.609 l 135.688 103.605 l 135.691 103.602 l 135.695 103.594 l 
+135.695 103.59 l 135.699 103.586 l 135.703 103.578 l 135.703 103.574 l 135.707
+ 103.57 l 135.707 103.562 l 135.715 103.555 l 135.715 103.551 l 135.719 
+103.543 l 135.723 103.539 l 135.723 103.535 l 135.727 103.527 l 135.73 103.523
+ l 135.73 103.52 l 135.734 103.512 l 135.734 103.508 l 135.738 103.504 l
+ 135.742 103.496 l 135.742 103.492 l 135.746 103.488 l 135.75 103.48 l 135.75
+ 103.477 l 135.754 103.473 l 135.754 103.469 l 135.758 103.461 l 135.762
+ 103.457 l 135.762 103.453 l 135.766 103.445 l 135.77 103.441 l 135.77 103.438
+ l 135.773 103.43 l 135.773 103.426 l 135.777 103.422 l 135.781 103.414 
+l 135.781 103.41 l 135.789 103.402 l 135.789 103.395 l 135.793 103.391 l
+ 135.793 103.387 l 135.797 103.379 l 135.801 103.375 l 135.801 103.371 l
+ 135.805 103.363 l 135.809 103.359 l 135.809 103.355 l 135.812 103.352 l
+ 135.816 103.344 l 135.816 103.34 l 135.82 103.336 l 135.82 103.328 l 135.828
+ 103.32 l 135.828 103.312 l 135.836 103.305 l 135.836 103.301 l 135.84 103.293
+ l 135.84 103.289 l 135.844 103.285 l 135.848 103.277 l 135.848 103.273 
+l 135.852 103.27 l 135.855 103.262 l 135.855 103.258 l 135.859 103.254 l
+ 135.859 103.25 l 135.863 103.242 l 135.867 103.238 l 135.867 103.234 l 
+135.871 103.227 l 135.875 103.223 l 135.875 103.219 l 135.879 103.215 l 
+135.879 103.207 l 135.887 103.199 l 135.887 103.191 l 135.895 103.184 l 
+135.895 103.18 l 135.898 103.172 l 135.898 103.168 l 135.902 103.164 l 135.906
+ 103.156 l 135.906 103.152 l 135.91 103.148 l 135.914 103.141 l 135.914 
+103.137 l 135.922 103.129 l 135.922 103.121 l 135.926 103.117 l 135.926 
+103.113 l 135.93 103.105 l 135.934 103.102 l 135.934 103.098 l 135.938 103.094
+ l 135.941 103.086 l 135.941 103.082 l 135.945 103.078 l 135.945 103.074
+ l 135.949 103.066 l 135.953 103.062 l 135.953 103.059 l 135.957 103.051
+ l 135.961 103.047 l 135.961 103.043 l 135.965 103.039 l 135.965 103.031
+ l 135.973 103.023 l 135.973 103.016 l 135.98 103.008 l 135.98 103.004 l
+ 135.984 102.996 l 135.984 102.992 l 135.992 102.984 l 135.992 102.977 l
+ 136 102.969 l 136 102.961 l 136.008 102.953 l 136.008 102.949 l 136.012
+ 102.941 l 136.012 102.938 l 136.016 102.934 l 136.02 102.926 l 136.02 102.922
+ l 136.027 102.914 l 136.027 102.906 l 136.031 102.902 l 136.031 102.898
+ l 136.035 102.895 l 136.039 102.887 l 136.039 102.883 l 136.047 102.875
+ l 136.047 102.867 l 136.051 102.863 l 136.051 102.859 l 136.055 102.852
+ l 136.059 102.848 l 136.059 102.844 l 136.062 102.84 l 136.066 102.832 
+l 136.066 102.828 l 136.07 102.824 l 136.07 102.82 l 136.074 102.812 l 136.078
+ 102.809 l 136.078 102.805 l 136.082 102.801 l 136.086 102.793 l 136.086
+ 102.789 l 136.09 102.785 l 136.09 102.781 l 136.094 102.773 l 136.098 102.77
+ l 136.098 102.766 l 136.102 102.758 l 136.105 102.754 l 136.105 102.75 
+l 136.109 102.746 l 136.113 102.738 l 136.113 102.734 l 136.117 102.73 l
+ 136.117 102.727 l 136.121 102.719 l 136.125 102.715 l 136.125 102.711 l
+ 136.129 102.707 l 136.133 102.699 l 136.133 102.695 l 136.137 102.691 l
+ 136.137 102.688 l 136.141 102.68 l 136.145 102.676 l 136.145 102.672 l 
+136.148 102.668 l 136.152 102.66 l 136.152 102.656 l 136.156 102.652 l 136.156
+ 102.648 l 136.16 102.641 l 136.164 102.637 l 136.164 102.633 l 136.168 
+102.629 l 136.172 102.621 l 136.172 102.617 l 136.176 102.613 l 136.176 
+102.609 l 136.18 102.602 l 136.184 102.598 l 136.184 102.594 l 136.188 102.59
+ l 136.191 102.582 l 136.191 102.578 l 136.199 102.57 l 136.199 102.562 
+l 136.203 102.559 l 136.203 102.555 l 136.207 102.551 l 136.211 102.543 
+l 136.211 102.539 l 136.219 102.531 l 136.219 102.523 l 136.223 102.52 l
+ 136.223 102.516 l 136.227 102.512 l 136.23 102.504 l 136.23 102.5 l 136.238
+ 102.492 l 136.238 102.484 l 136.242 102.48 l 136.242 102.477 l 136.246 
+102.473 l 136.25 102.465 l 136.25 102.461 l 136.258 102.453 l 136.258 102.449
+ l 136.262 102.441 l 136.262 102.438 l 136.27 102.43 l 136.27 102.422 l 
+136.277 102.414 l 136.277 102.41 l 136.281 102.402 l 136.281 102.398 l 136.289
+ 102.391 l 136.289 102.383 l 136.297 102.375 l 136.297 102.371 l 136.301
+ 102.367 l 136.305 102.359 l 136.305 102.355 l 136.309 102.352 l 136.309
+ 102.348 l 136.312 102.34 l 136.316 102.336 l 136.316 102.332 l 136.32 102.328
+ l 136.324 102.32 l 136.324 102.316 l 136.328 102.312 l 136.328 102.309 
+l 136.332 102.305 l 136.336 102.297 l 136.336 102.293 l 136.344 102.285 
+l 136.344 102.277 l 136.348 102.273 l 136.348 102.27 l 136.355 102.262 l
+ 136.355 102.254 l 136.363 102.246 l 136.363 102.242 l 136.367 102.234 l
+ 136.367 102.23 l 136.375 102.223 l 136.375 102.219 l 136.379 102.211 l 
+136.383 102.207 l 136.383 102.203 l 136.387 102.199 l 136.391 102.191 l 
+136.391 102.188 l 136.395 102.184 l 136.395 102.18 l 136.398 102.176 l 136.402
+ 102.168 l 136.402 102.164 l 136.41 102.156 l 136.41 102.148 l 136.414 102.145
+ l 136.414 102.141 l 136.422 102.133 l 136.422 102.125 l 136.43 102.117 
+l 136.43 102.113 l 136.434 102.109 l 136.434 102.102 l 136.441 102.094 l
+ 136.441 102.09 l 136.445 102.082 l 136.449 102.078 l 136.449 102.074 l 
+136.453 102.07 l 136.453 102.066 l 136.457 102.059 l 136.461 102.055 l 136.461
+ 102.051 l 136.469 102.043 l 136.469 102.035 l 136.473 102.031 l 136.473
+ 102.027 l 136.48 102.02 l 136.48 102.012 l 136.488 102.004 l 136.488 102
+ l 136.492 101.992 l 136.496 101.988 l 136.496 101.984 l 136.5 101.98 l 
+136.5 101.977 l 136.504 101.969 l 136.508 101.965 l 136.508 101.961 l 136.516
+ 101.953 l 136.516 101.945 l 136.52 101.941 l 136.52 101.938 l 136.527 101.93
+ l 136.527 101.922 l 136.535 101.914 l 136.535 101.91 l 136.539 101.906 
+l 136.539 101.898 l 136.547 101.891 l 136.547 101.887 l 136.551 101.883 
+l 136.555 101.875 l 136.555 101.871 l 136.559 101.867 l 136.559 101.863 
+l 136.562 101.859 l 136.566 101.852 l 136.566 101.848 l 136.574 101.84 l
+ 136.574 101.836 l 136.578 101.828 l 136.582 101.824 l 136.582 101.82 l 
+136.586 101.816 l 136.586 101.812 l 136.59 101.809 l 136.594 101.801 l 136.594
+ 101.797 l 136.602 101.789 l 136.602 101.785 l 136.605 101.777 l 136.605
+ 101.773 l 136.613 101.766 l 136.613 101.762 l 136.617 101.754 l 136.621
+ 101.75 l 136.621 101.746 l 136.625 101.742 l 136.625 101.738 l 136.629 
+101.734 l 136.633 101.727 l 136.633 101.723 l 136.641 101.715 l 136.641 
+101.711 l 136.645 101.703 l 136.645 101.699 l 136.652 101.691 l 136.652 
+101.688 l 136.656 101.68 l 136.66 101.676 l 136.66 101.672 l 136.664 101.668
+ l 136.664 101.664 l 136.668 101.66 l 136.672 101.652 l 136.672 101.648 
+l 136.68 101.641 l 136.68 101.637 l 136.684 101.629 l 136.688 101.625 l 
+136.688 101.621 l 136.691 101.617 l 136.691 101.613 l 136.695 101.609 l 
+136.699 101.602 l 136.699 101.598 l 136.707 101.59 l 136.707 101.586 l 136.711
+ 101.582 l 136.711 101.574 l 136.719 101.566 l 136.719 101.562 l 136.723
+ 101.559 l 136.727 101.551 l 136.727 101.547 l 136.73 101.543 l 136.73 101.539
+ l 136.738 101.531 l 136.738 101.523 l 136.746 101.516 l 136.746 101.512
+ l 136.75 101.508 l 136.75 101.504 l 136.754 101.496 l 136.758 101.492 l
+ 136.758 101.488 l 136.766 101.48 l 136.766 101.477 l 136.77 101.469 l 136.773
+ 101.465 l 136.773 101.461 l 136.777 101.457 l 136.777 101.453 l 136.781
+ 101.449 l 136.785 101.441 l 136.785 101.438 l 136.793 101.43 l 136.793 
+101.426 l 136.797 101.422 l 136.797 101.414 l 136.805 101.406 l 136.805 
+101.402 l 136.812 101.395 l 136.812 101.387 l 136.816 101.383 l 136.816 
+101.379 l 136.824 101.371 l 136.824 101.367 l 136.828 101.363 l 136.832 
+101.355 l 136.832 101.352 l 136.836 101.348 l 136.836 101.344 l 136.844 
+101.336 l 136.844 101.328 l 136.852 101.32 l 136.852 101.316 l 136.855 101.312
+ l 136.855 101.309 l 136.859 101.301 l 136.863 101.297 l 136.863 101.293
+ l 136.871 101.285 l 136.871 101.281 l 136.875 101.277 l 136.879 101.27 
+l 136.879 101.266 l 136.883 101.262 l 136.883 101.258 l 136.891 101.25 l
+ 136.891 101.242 l 136.898 101.234 l 136.898 101.23 l 136.902 101.227 l 
+136.902 101.223 l 136.906 101.219 l 136.91 101.211 l 136.91 101.207 l 136.918
+ 101.199 l 136.918 101.195 l 136.922 101.191 l 136.922 101.188 l 136.926
+ 101.18 l 136.93 101.176 l 136.93 101.172 l 136.938 101.164 l 136.938 101.16
+ l 136.941 101.156 l 136.941 101.148 l 136.949 101.141 l 136.949 101.137
+ l 136.957 101.129 l 136.957 101.125 l 136.961 101.117 l 136.965 101.113
+ l 136.965 101.109 l 136.969 101.105 l 136.969 101.102 l 136.977 101.094
+ l 136.977 101.086 l 136.984 101.078 l 136.984 101.074 l 136.988 101.07 
+l 136.988 101.066 l 136.992 101.062 l 136.996 101.055 l 136.996 101.051 
+l 137.004 101.043 l 137.004 101.039 l 137.008 101.035 l 137.008 101.031 
+l 137.012 101.027 l 137.016 101.02 l 137.016 101.016 l 137.023 101.008 l
+ 137.023 101.004 l 137.027 101 l 137.027 100.996 l 137.031 100.988 l 137.035
+ 100.984 l 137.035 100.98 l 137.043 100.973 l 137.043 100.969 l 137.047 
+100.965 l 137.047 100.961 l 137.051 100.953 l 137.055 100.949 l 137.055 
+100.945 l 137.062 100.938 l 137.062 100.934 l 137.07 100.926 l 137.07 100.918
+ l 137.074 100.914 l 137.074 100.91 l 137.082 100.902 l 137.082 100.898 
+l 137.09 100.891 l 137.09 100.883 l 137.094 100.879 l 137.094 100.875 l 
+137.102 100.867 l 137.102 100.863 l 137.109 100.855 l 137.109 100.848 l 
+137.113 100.844 l 137.113 100.84 l 137.121 100.832 l 137.121 100.828 l 137.129
+ 100.82 l 137.129 100.812 l 137.133 100.809 l 137.133 100.805 l 137.141 
+100.797 l 137.141 100.793 l 137.148 100.785 l 137.148 100.781 l 137.152 
+100.773 l 137.156 100.77 l 137.156 100.766 l 137.16 100.762 l 137.16 100.758
+ l 137.168 100.75 l 137.168 100.746 l 137.172 100.742 l 137.176 100.734 
+l 137.176 100.73 l 137.18 100.727 l 137.18 100.723 l 137.188 100.715 l 137.188
+ 100.711 l 137.195 100.703 l 137.195 100.695 l 137.199 100.691 l 137.199
+ 100.688 l 137.207 100.68 l 137.207 100.676 l 137.215 100.668 l 137.215 
+100.664 l 137.219 100.656 l 137.219 100.652 l 137.227 100.645 l 137.227 
+100.641 l 137.234 100.633 l 137.234 100.629 l 137.238 100.625 l 137.238 
+100.621 l 137.242 100.613 l 137.246 100.609 l 137.246 100.605 l 137.254 
+100.598 l 137.254 100.594 l 137.262 100.586 l 137.262 100.582 l 137.266 
+100.578 l 137.266 100.57 l 137.273 100.562 l 137.273 100.559 l 137.281 100.551
+ l 137.281 100.547 l 137.285 100.543 l 137.285 100.539 l 137.289 100.535
+ l 137.293 100.527 l 137.293 100.523 l 137.301 100.516 l 137.301 100.512
+ l 137.305 100.508 l 137.305 100.504 l 137.312 100.496 l 137.312 100.492
+ l 137.316 100.484 l 137.32 100.48 l 137.32 100.477 l 137.324 100.473 l 
+137.324 100.469 l 137.332 100.461 l 137.332 100.457 l 137.34 100.449 l 137.34
+ 100.445 l 137.344 100.438 l 137.348 100.434 l 137.348 100.43 l 137.352 
+100.426 l 137.352 100.422 l 137.359 100.414 l 137.359 100.41 l 137.367 100.402
+ l 137.367 100.398 l 137.371 100.395 l 137.371 100.387 l 137.379 100.379
+ l 137.379 100.375 l 137.387 100.367 l 137.387 100.363 l 137.391 100.359
+ l 137.391 100.355 l 137.398 100.348 l 137.398 100.344 l 137.402 100.336
+ l 137.406 100.332 l 137.406 100.328 l 137.41 100.324 l 137.41 100.32 l 
+137.418 100.312 l 137.418 100.309 l 137.426 100.301 l 137.426 100.297 l 
+137.43 100.293 l 137.43 100.285 l 137.438 100.277 l 137.438 100.273 l 137.445
+ 100.266 l 137.445 100.262 l 137.453 100.254 l 137.453 100.25 l 137.457 
+100.246 l 137.457 100.242 l 137.465 100.234 l 137.465 100.227 l 137.473 
+100.219 l 137.473 100.215 l 137.477 100.211 l 137.477 100.207 l 137.484 
+100.199 l 137.484 100.195 l 137.492 100.188 l 137.492 100.184 l 137.496 
+100.18 l 137.496 100.176 l 137.5 100.168 l 137.504 100.164 l 137.504 100.16
+ l 137.512 100.152 l 137.512 100.148 l 137.516 100.145 l 137.516 100.141
+ l 137.523 100.133 l 137.523 100.129 l 137.531 100.121 l 137.531 100.117
+ l 137.535 100.113 l 137.539 100.105 l 137.539 100.102 l 137.543 100.098
+ l 137.543 100.094 l 137.551 100.086 l 137.551 100.082 l 137.559 100.074
+ l 137.559 100.07 l 137.562 100.066 l 137.562 100.062 l 137.57 100.055 l
+ 137.57 100.051 l 137.578 100.043 l 137.578 100.035 l 137.582 100.031 l 
+137.582 100.027 l 137.59 100.02 l 137.59 100.016 l 137.598 100.008 l 137.598
+ 100.004 l 137.602 100 l 137.602 99.996 l 137.609 99.988 l 137.609 99.984
+ l 137.617 99.977 l 137.617 99.973 l 137.621 99.969 l 137.621 99.961 l 137.629
+ 99.953 l 137.629 99.949 l 137.637 99.941 l 137.637 99.938 l 137.645 99.93
+ l 137.645 99.926 l 137.648 99.922 l 137.648 99.918 l 137.656 99.91 l 137.656
+ 99.906 l 137.664 99.898 l 137.664 99.895 l 137.668 99.891 l 137.668 99.887
+ l 137.672 99.883 l 137.676 99.875 l 137.676 99.871 l 137.684 99.863 l 137.684
+ 99.859 l 137.688 99.855 l 137.688 99.852 l 137.695 99.844 l 137.695 99.84
+ l 137.703 99.832 l 137.703 99.828 l 137.707 99.824 l 137.707 99.82 l 137.715
+ 99.812 l 137.715 99.809 l 137.723 99.801 l 137.723 99.797 l 137.727 99.793
+ l 137.727 99.789 l 137.734 99.781 l 137.734 99.773 l 137.742 99.766 l 137.742
+ 99.762 l 137.75 99.754 l 137.75 99.75 l 137.754 99.746 l 137.754 99.742
+ l 137.762 99.734 l 137.762 99.73 l 137.77 99.723 l 137.77 99.719 l 137.773
+ 99.715 l 137.773 99.711 l 137.781 99.703 l 137.781 99.699 l 137.789 99.691
+ l 137.789 99.688 l 137.793 99.684 l 137.793 99.68 l 137.801 99.672 l 137.801
+ 99.668 l 137.809 99.66 l 137.809 99.656 l 137.812 99.652 l 137.812 99.645
+ l 137.82 99.637 l 137.82 99.633 l 137.828 99.625 l 137.828 99.621 l 137.836
+ 99.613 l 137.836 99.609 l 137.84 99.605 l 137.84 99.602 l 137.848 99.594
+ l 137.848 99.59 l 137.855 99.582 l 137.855 99.578 l 137.859 99.574 l 137.859
+ 99.57 l 137.867 99.562 l 137.867 99.559 l 137.875 99.551 l 137.875 99.547
+ l 137.879 99.543 l 137.879 99.539 l 137.887 99.531 l 137.887 99.527 l 137.895
+ 99.52 l 137.895 99.516 l 137.898 99.512 l 137.898 99.508 l 137.906 99.5
+ l 137.906 99.496 l 137.914 99.488 l 137.914 99.484 l 137.918 99.48 l 137.918
+ 99.477 l 137.926 99.469 l 137.926 99.465 l 137.934 99.457 l 137.934 99.453
+ l 137.941 99.445 l 137.941 99.441 l 137.945 99.438 l 137.945 99.434 l 137.953
+ 99.426 l 137.953 99.422 l 137.961 99.414 l 137.961 99.41 l 137.965 99.406
+ l 137.965 99.398 l 137.973 99.391 l 137.973 99.387 l 137.98 99.379 l 137.98
+ 99.375 l 137.984 99.371 l 137.984 99.367 l 137.992 99.359 l 137.992 99.355
+ l 138 99.348 l 138 99.344 l 138.004 99.34 l 138.004 99.336 l 138.012 99.328
+ l 138.012 99.324 l 138.02 99.316 l 138.02 99.312 l 138.027 99.305 l 138.027
+ 99.301 l 138.031 99.297 l 138.031 99.293 l 138.039 99.285 l 138.039 99.281
+ l 138.047 99.273 l 138.047 99.27 l 138.051 99.266 l 138.051 99.262 l 138.055
+ 99.262 l 138.059 99.258 l 138.059 99.254 l 138.066 99.246 l 138.066 99.242
+ l 138.07 99.238 l 138.07 99.234 l 138.078 99.227 l 138.078 99.223 l 138.086
+ 99.215 l 138.086 99.211 l 138.09 99.207 l 138.09 99.203 l 138.098 99.195
+ l 138.098 99.191 l 138.105 99.184 l 138.105 99.18 l 138.109 99.176 l 138.109
+ 99.172 l 138.117 99.164 l 138.117 99.16 l 138.125 99.152 l 138.125 99.148
+ l 138.133 99.141 l 138.133 99.137 l 138.137 99.133 l 138.137 99.129 l 138.145
+ 99.121 l 138.145 99.117 l 138.152 99.109 l 138.152 99.105 l 138.156 99.102
+ l 138.156 99.098 l 138.164 99.09 l 138.164 99.086 l 138.172 99.078 l 138.172
+ 99.074 l 138.176 99.07 l 138.176 99.066 l 138.184 99.059 l 138.184 99.055
+ l 138.191 99.047 l 138.191 99.043 l 138.195 99.039 l 138.195 99.035 l 138.203
+ 99.027 l 138.203 99.023 l 138.207 99.02 l 138.211 99.02 l 138.211 99.016
+ l 138.219 99.008 l 138.219 99.004 l 138.223 99 l 138.223 98.996 l 138.23
+ 98.988 l 138.23 98.984 l 138.238 98.977 l 138.238 98.973 l 138.242 98.969
+ l 138.242 98.965 l 138.25 98.957 l 138.25 98.953 l 138.258 98.945 l 138.258
+ 98.941 l 138.262 98.938 l 138.262 98.934 l 138.27 98.926 l 138.27 98.922
+ l 138.277 98.914 l 138.277 98.91 l 138.281 98.906 l 138.281 98.902 l 138.285
+ 98.898 l 138.289 98.898 l 138.289 98.895 l 138.297 98.887 l 138.297 98.883
+ l 138.301 98.879 l 138.301 98.875 l 138.309 98.867 l 138.309 98.863 l 138.316
+ 98.855 l 138.316 98.852 l 138.324 98.844 l 138.324 98.84 l 138.328 98.836
+ l 138.328 98.832 l 138.336 98.824 l 138.336 98.82 l 138.344 98.812 l 138.344
+ 98.809 l 138.355 98.797 l 138.355 98.793 l 138.363 98.785 l 138.363 98.781
+ l 138.367 98.777 l 138.367 98.773 l 138.375 98.766 l 138.375 98.762 l 138.383
+ 98.754 l 138.383 98.75 l 138.387 98.746 l 138.387 98.742 l 138.395 98.734
+ l 138.395 98.73 l 138.398 98.727 l 138.402 98.727 l 138.402 98.723 l 138.41
+ 98.715 l 138.41 98.711 l 138.414 98.707 l 138.414 98.703 l 138.422 98.695
+ l 138.422 98.691 l 138.43 98.684 l 138.43 98.68 l 138.434 98.676 l 138.434
+ 98.672 l 138.441 98.664 l 138.441 98.66 l 138.445 98.66 l 138.449 98.656
+ l 138.449 98.652 l 138.453 98.648 l 138.453 98.645 l 138.461 98.637 l 138.461
+ 98.633 l 138.469 98.625 l 138.469 98.621 l 138.473 98.617 l 138.473 98.613
+ l 138.48 98.605 l 138.48 98.602 l 138.484 98.598 l 138.488 98.598 l 138.488
+ 98.594 l 138.492 98.59 l 138.492 98.586 l 138.5 98.578 l 138.5 98.574 l
+ 138.508 98.566 l 138.508 98.562 l 138.516 98.555 l 138.516 98.551 l 138.52
+ 98.547 l 138.52 98.543 l 138.523 98.539 l 138.527 98.539 l 138.527 98.535
+ l 138.535 98.527 l 138.535 98.523 l 138.539 98.52 l 138.539 98.516 l 138.547
+ 98.508 l 138.547 98.504 l 138.555 98.496 l 138.555 98.492 l 138.566 98.48
+ l 138.566 98.477 l 138.574 98.469 l 138.574 98.465 l 138.578 98.461 l 138.578
+ 98.457 l 138.586 98.449 l 138.586 98.445 l 138.602 98.43 l 138.602 98.426
+ l 138.605 98.422 l 138.605 98.418 l 138.613 98.41 l 138.613 98.406 l 138.621
+ 98.398 l 138.621 98.395 l 138.625 98.395 l 138.625 98.391 l 138.633 98.383
+ l 138.633 98.379 l 138.641 98.371 l 138.641 98.367 l 138.645 98.363 l 138.645
+ 98.359 l 138.652 98.352 l 138.652 98.348 l 138.656 98.348 l 138.66 98.344
+ l 138.66 98.34 l 138.664 98.336 l 138.664 98.332 l 138.672 98.324 l 138.672
+ 98.32 l 138.68 98.312 l 138.68 98.309 l 138.684 98.309 l 138.684 98.305
+ l 138.691 98.297 l 138.691 98.293 l 138.699 98.285 l 138.699 98.281 l 138.707
+ 98.273 l 138.707 98.27 l 138.719 98.258 l 138.719 98.254 l 138.727 98.246
+ l 138.727 98.242 l 138.73 98.238 l 138.73 98.234 l 138.734 98.23 l 138.738
+ 98.23 l 138.738 98.227 l 138.746 98.219 l 138.746 98.215 l 138.75 98.211
+ l 138.75 98.207 l 138.758 98.199 l 138.758 98.195 l 138.762 98.191 l 138.766
+ 98.191 l 138.766 98.188 l 138.77 98.184 l 138.77 98.18 l 138.777 98.172
+ l 138.777 98.168 l 138.785 98.16 l 138.785 98.156 l 138.789 98.156 l 138.793
+ 98.152 l 138.793 98.148 l 138.797 98.145 l 138.797 98.141 l 138.805 98.133
+ l 138.805 98.129 l 138.809 98.125 l 138.812 98.125 l 138.812 98.121 l 138.816
+ 98.117 l 138.816 98.113 l 138.824 98.105 l 138.824 98.102 l 138.832 98.094
+ l 138.832 98.09 l 138.836 98.09 l 138.836 98.086 l 138.844 98.078 l 138.844
+ 98.074 l 138.852 98.066 l 138.852 98.062 l 138.863 98.051 l 138.863 98.047
+ l 138.871 98.039 l 138.871 98.035 l 138.875 98.031 l 138.875 98.027 l 138.879
+ 98.027 l 138.883 98.023 l 138.883 98.02 l 138.891 98.012 l 138.891 98.008
+ l 138.898 98 l 138.898 97.996 l 138.902 97.996 l 138.902 97.992 l 138.91
+ 97.984 l 138.91 97.98 l 138.918 97.973 l 138.918 97.969 l 138.93 97.957
+ l 138.93 97.953 l 138.938 97.945 l 138.938 97.941 l 138.949 97.93 l 138.949
+ 97.926 l 138.957 97.918 l 138.957 97.914 l 138.969 97.902 l 138.969 97.898
+ l 138.977 97.891 l 138.977 97.887 l 138.98 97.883 l 138.984 97.883 l 138.984
+ 97.879 l 138.988 97.875 l 138.988 97.871 l 138.996 97.863 l 138.996 97.859
+ l 139 97.855 l 139.004 97.855 l 139.004 97.852 l 139.008 97.848 l 139.008
+ 97.844 l 139.016 97.836 l 139.016 97.832 l 139.02 97.828 l 139.023 97.828
+ l 139.023 97.824 l 139.027 97.82 l 139.027 97.816 l 139.035 97.809 l 139.035
+ 97.805 l 139.039 97.805 l 139.043 97.801 l 139.043 97.797 l 139.047 97.793
+ l 139.047 97.789 l 139.055 97.781 l 139.055 97.777 l 139.059 97.777 l 139.062
+ 97.773 l 139.062 97.77 l 139.066 97.766 l 139.066 97.762 l 139.082 97.746
+ l 139.082 97.742 l 139.09 97.734 l 139.09 97.73 l 139.094 97.73 l 139.094
+ 97.727 l 139.102 97.719 l 139.102 97.715 l 139.113 97.703 l 139.113 97.699
+ l 139.121 97.691 l 139.121 97.688 l 139.125 97.684 l 139.129 97.684 l 139.129
+ 97.68 l 139.133 97.676 l 139.133 97.672 l 139.141 97.664 l 139.141 97.66
+ l 139.145 97.66 l 139.148 97.656 l 139.148 97.652 l 139.152 97.648 l 139.152
+ 97.645 l 139.168 97.629 l 139.168 97.625 l 139.176 97.617 l 139.176 97.613
+ l 139.18 97.613 l 139.18 97.609 l 139.188 97.602 l 139.188 97.598 l 139.191
+ 97.594 l 139.195 97.594 l 139.195 97.59 l 139.199 97.586 l 139.199 97.582
+ l 139.207 97.574 l 139.207 97.57 l 139.211 97.57 l 139.215 97.566 l 139.215
+ 97.562 l 139.219 97.559 l 139.219 97.555 l 139.223 97.551 l 139.227 97.551
+ l 139.227 97.547 l 139.234 97.539 l 139.234 97.535 l 139.238 97.531 l 139.238
+ 97.527 l 139.242 97.527 l 139.246 97.523 l 139.246 97.52 l 139.254 97.512
+ l 139.254 97.508 l 139.258 97.508 l 139.258 97.504 l 139.266 97.496 l 139.266
+ 97.492 l 139.27 97.488 l 139.273 97.488 l 139.273 97.484 l 139.281 97.477
+ l 139.281 97.473 l 139.293 97.461 l 139.293 97.457 l 139.305 97.445 l 139.305
+ 97.441 l 139.312 97.434 l 139.312 97.43 l 139.316 97.43 l 139.32 97.426
+ l 139.32 97.422 l 139.324 97.418 l 139.324 97.414 l 139.328 97.41 l 139.332
+ 97.41 l 139.332 97.406 l 139.34 97.398 l 139.34 97.395 l 139.352 97.383
+ l 139.352 97.379 l 139.367 97.363 l 139.367 97.359 l 139.371 97.355 l 139.371
+ 97.352 l 139.375 97.352 l 139.379 97.348 l 139.379 97.344 l 139.391 97.332
+ l 139.391 97.328 l 139.398 97.32 l 139.398 97.316 l 139.402 97.316 l 139.406
+ 97.312 l 139.406 97.309 l 139.41 97.305 l 139.41 97.301 l 139.414 97.301
+ l 139.418 97.297 l 139.418 97.293 l 139.426 97.285 l 139.426 97.281 l 139.43
+ 97.281 l 139.43 97.277 l 139.438 97.27 l 139.438 97.266 l 139.441 97.266
+ l 139.445 97.262 l 139.445 97.258 l 139.449 97.254 l 139.449 97.25 l 139.453
+ 97.246 l 139.457 97.246 l 139.457 97.242 l 139.465 97.234 l 139.465 97.23
+ l 139.469 97.23 l 139.473 97.227 l 139.473 97.223 l 139.477 97.219 l 139.477
+ 97.215 l 139.48 97.215 l 139.484 97.211 l 139.484 97.207 l 139.492 97.199
+ l 139.492 97.195 l 139.496 97.195 l 139.496 97.191 l 139.504 97.184 l 139.504
+ 97.18 l 139.508 97.18 l 139.512 97.176 l 139.512 97.172 l 139.516 97.168
+ l 139.516 97.164 l 139.52 97.164 l 139.523 97.16 l 139.523 97.156 l 139.535
+ 97.145 l 139.535 97.141 l 139.551 97.125 l 139.551 97.121 l 139.562 97.109
+ l 139.562 97.105 l 139.578 97.09 l 139.578 97.086 l 139.59 97.074 l 139.59
+ 97.07 l 139.594 97.07 l 139.598 97.066 l 139.598 97.062 l 139.602 97.059
+ l 139.602 97.055 l 139.605 97.055 l 139.609 97.051 l 139.609 97.047 l 139.621
+ 97.035 l 139.621 97.031 l 139.637 97.016 l 139.637 97.012 l 139.648 97 
+l 139.648 96.996 l 139.652 96.992 l 139.656 96.992 l 139.656 96.988 l 139.668
+ 96.977 l 139.668 96.973 l 139.684 96.957 l 139.684 96.953 l 139.695 96.941
+ l 139.695 96.938 l 139.699 96.938 l 139.703 96.934 l 139.703 96.93 l 139.707
+ 96.926 l 139.707 96.922 l 139.711 96.922 l 139.715 96.918 l 139.715 96.914
+ l 139.727 96.902 l 139.727 96.898 l 139.73 96.895 l 139.734 96.895 l 139.734
+ 96.891 l 139.742 96.883 l 139.742 96.879 l 139.746 96.879 l 139.75 96.875
+ l 139.75 96.871 l 139.762 96.859 l 139.762 96.855 l 139.766 96.852 l 139.77
+ 96.852 l 139.77 96.848 l 139.773 96.844 l 139.773 96.84 l 139.777 96.84
+ l 139.781 96.836 l 139.781 96.832 l 139.793 96.82 l 139.793 96.816 l 139.797
+ 96.812 l 139.801 96.812 l 139.801 96.809 l 139.812 96.797 l 139.812 96.793
+ l 139.828 96.777 l 139.828 96.773 l 139.832 96.773 l 139.832 96.77 l 139.848
+ 96.754 l 139.848 96.75 l 139.852 96.746 l 139.855 96.746 l 139.855 96.742
+ l 139.859 96.738 l 139.859 96.734 l 139.863 96.734 l 139.867 96.73 l 139.867
+ 96.727 l 139.871 96.723 l 139.875 96.723 l 139.875 96.719 l 139.879 96.715
+ l 139.879 96.711 l 139.883 96.711 l 139.887 96.707 l 139.887 96.703 l 139.898
+ 96.691 l 139.898 96.688 l 139.902 96.684 l 139.906 96.684 l 139.906 96.68
+ l 139.918 96.668 l 139.918 96.664 l 139.922 96.66 l 139.926 96.66 l 139.926
+ 96.656 l 139.938 96.645 l 139.938 96.641 l 139.941 96.637 l 139.945 96.637
+ l 139.945 96.633 l 139.961 96.617 l 139.961 96.613 l 139.965 96.613 l 139.965
+ 96.609 l 139.98 96.594 l 139.98 96.59 l 139.984 96.59 l 139.984 96.586 
+l 140 96.57 l 140 96.566 l 140.004 96.566 l 140.004 96.562 l 140.02 96.547
+ l 140.02 96.543 l 140.023 96.543 l 140.023 96.539 l 140.039 96.523 l 140.039
+ 96.52 l 140.043 96.52 l 140.047 96.516 l 140.047 96.512 l 140.059 96.5 
+l 140.059 96.496 l 140.062 96.496 l 140.066 96.492 l 140.066 96.488 l 140.07
+ 96.488 l 140.07 96.484 l 140.086 96.469 l 140.086 96.465 l 140.09 96.465
+ l 140.09 96.461 l 140.105 96.445 l 140.105 96.441 l 140.109 96.441 l 140.109
+ 96.438 l 140.113 96.434 l 140.117 96.434 l 140.117 96.43 l 140.129 96.418
+ l 140.129 96.414 l 140.133 96.41 l 140.137 96.41 l 140.137 96.406 l 140.141
+ 96.402 l 140.145 96.402 l 140.145 96.398 l 140.156 96.387 l 140.156 96.383
+ l 140.16 96.379 l 140.164 96.379 l 140.164 96.375 l 140.176 96.363 l 140.176
+ 96.359 l 140.18 96.359 l 140.184 96.355 l 140.184 96.352 l 140.188 96.348
+ l 140.191 96.348 l 140.191 96.344 l 140.203 96.332 l 140.203 96.328 l 140.207
+ 96.328 l 140.211 96.324 l 140.211 96.32 l 140.23 96.301 l 140.23 96.297
+ l 140.234 96.297 l 140.238 96.293 l 140.238 96.289 l 140.242 96.289 l 140.242
+ 96.285 l 140.262 96.266 l 140.262 96.262 l 140.266 96.258 l 140.27 96.258
+ l 140.27 96.254 l 140.273 96.25 l 140.277 96.25 l 140.277 96.246 l 140.281
+ 96.242 l 140.281 96.238 l 140.285 96.238 l 140.289 96.234 l 140.289 96.23
+ l 140.293 96.23 l 140.297 96.227 l 140.297 96.223 l 140.316 96.203 l 140.316
+ 96.199 l 140.32 96.199 l 140.32 96.195 l 140.324 96.191 l 140.328 96.191
+ l 140.328 96.188 l 140.348 96.168 l 140.348 96.164 l 140.352 96.164 l 140.355
+ 96.16 l 140.355 96.156 l 140.359 96.152 l 140.363 96.152 l 140.363 96.148
+ l 140.383 96.129 l 140.383 96.125 l 140.387 96.125 l 140.387 96.121 l 140.391
+ 96.117 l 140.395 96.117 l 140.395 96.113 l 140.398 96.109 l 140.402 96.109
+ l 140.402 96.105 l 140.406 96.102 l 140.406 96.098 l 140.41 96.098 l 140.414
+ 96.094 l 140.414 96.09 l 140.418 96.09 l 140.422 96.086 l 140.422 96.082
+ l 140.426 96.082 l 140.43 96.078 l 140.43 96.074 l 140.453 96.051 l 140.453
+ 96.047 l 140.457 96.047 l 140.461 96.043 l 140.461 96.039 l 140.465 96.035
+ l 140.469 96.035 l 140.469 96.031 l 140.492 96.008 l 140.492 96.004 l 140.496
+ 96 l 140.5 96 l 140.5 95.996 l 140.504 95.992 l 140.508 95.992 l 140.508
+ 95.988 l 140.539 95.957 l 140.539 95.953 l 140.543 95.949 l 140.547 95.949
+ l 140.547 95.945 l 140.551 95.941 l 140.555 95.941 l 140.555 95.938 l 140.578
+ 95.914 l 140.578 95.91 l 140.582 95.91 l 140.586 95.906 l 140.586 95.902
+ l 140.59 95.902 l 140.594 95.898 l 140.594 95.895 l 140.598 95.895 l 140.598
+ 95.891 l 140.602 95.887 l 140.605 95.887 l 140.605 95.883 l 140.609 95.879
+ l 140.613 95.879 l 140.613 95.875 l 140.625 95.863 l 140.625 95.859 l 140.629
+ 95.859 l 140.633 95.855 l 140.633 95.852 l 140.637 95.852 l 140.641 95.848
+ l 140.641 95.844 l 140.645 95.844 l 140.645 95.84 l 140.648 95.836 l 140.652
+ 95.836 l 140.652 95.832 l 140.656 95.828 l 140.66 95.828 l 140.66 95.824
+ l 140.684 95.801 l 140.684 95.797 l 140.688 95.797 l 140.691 95.793 l 140.691
+ 95.789 l 140.695 95.789 l 140.699 95.785 l 140.699 95.781 l 140.703 95.781
+ l 140.703 95.777 l 140.707 95.773 l 140.711 95.773 l 140.711 95.77 l 140.715
+ 95.766 l 140.719 95.766 l 140.719 95.762 l 140.723 95.762 l 140.727 95.758
+ l 140.727 95.754 l 140.73 95.754 l 140.73 95.75 l 140.734 95.746 l 140.738
+ 95.746 l 140.738 95.742 l 140.742 95.738 l 140.746 95.738 l 140.746 95.734
+ l 140.77 95.711 l 140.77 95.707 l 140.773 95.707 l 140.777 95.703 l 140.777
+ 95.699 l 140.781 95.699 l 140.785 95.695 l 140.785 95.691 l 140.789 95.691
+ l 140.789 95.688 l 140.793 95.684 l 140.797 95.684 l 140.797 95.68 l 140.801
+ 95.68 l 140.805 95.676 l 140.805 95.672 l 140.809 95.672 l 140.812 95.668
+ l 140.812 95.664 l 140.816 95.664 l 140.816 95.66 l 140.82 95.656 l 140.824
+ 95.656 l 140.824 95.652 l 140.828 95.648 l 140.832 95.648 l 140.832 95.645
+ l 140.848 95.629 l 140.852 95.629 l 140.852 95.625 l 140.875 95.602 l 140.875
+ 95.598 l 140.879 95.598 l 140.895 95.582 l 140.895 95.578 l 140.898 95.578
+ l 140.902 95.574 l 140.902 95.57 l 140.906 95.57 l 140.922 95.555 l 140.922
+ 95.551 l 140.926 95.551 l 140.93 95.547 l 140.93 95.543 l 140.934 95.543
+ l 140.941 95.535 l 140.941 95.531 l 140.945 95.531 l 140.949 95.527 l 140.949
+ 95.523 l 140.953 95.523 l 140.957 95.52 l 140.957 95.516 l 140.961 95.516
+ l 140.961 95.512 l 140.965 95.512 l 140.969 95.508 l 140.969 95.504 l 140.973
+ 95.504 l 140.977 95.5 l 140.977 95.496 l 140.98 95.496 l 140.98 95.492 
+l 140.984 95.492 l 140.988 95.488 l 140.988 95.484 l 140.992 95.484 l 140.996
+ 95.48 l 140.996 95.477 l 141 95.477 l 141.004 95.473 l 141.004 95.469 l
+ 141.008 95.469 l 141.008 95.465 l 141.012 95.465 l 141.016 95.461 l 141.016
+ 95.457 l 141.02 95.457 l 141.023 95.453 l 141.023 95.449 l 141.027 95.449
+ l 141.027 95.445 l 141.031 95.445 l 141.035 95.441 l 141.035 95.438 l 141.039
+ 95.438 l 141.043 95.434 l 141.043 95.43 l 141.047 95.43 l 141.047 95.426
+ l 141.051 95.426 l 141.055 95.422 l 141.055 95.418 l 141.059 95.418 l 141.066
+ 95.41 l 141.066 95.406 l 141.07 95.406 l 141.074 95.402 l 141.074 95.398
+ l 141.078 95.398 l 141.086 95.391 l 141.086 95.387 l 141.09 95.387 l 141.094
+ 95.383 l 141.094 95.379 l 141.098 95.379 l 141.145 95.332 l 141.148 95.332
+ l 141.148 95.328 l 141.156 95.32 l 141.16 95.32 l 141.16 95.316 l 141.164
+ 95.312 l 141.168 95.312 l 141.168 95.309 l 141.176 95.301 l 141.18 95.301
+ l 141.18 95.297 l 141.184 95.293 l 141.188 95.293 l 141.188 95.289 l 141.191
+ 95.289 l 141.195 95.285 l 141.195 95.281 l 141.199 95.281 l 141.199 95.277
+ l 141.203 95.277 l 141.207 95.273 l 141.207 95.27 l 141.211 95.27 l 141.219
+ 95.262 l S
+141.219 95.262 m 141.219 95.258 l 141.223 95.258 l 141.25 95.23 l 141.254
+ 95.23 l 141.254 95.227 l 141.262 95.219 l 141.266 95.219 l 141.266 95.215
+ l 141.27 95.211 l 141.273 95.211 l 141.273 95.207 l 141.277 95.207 l 141.277
+ 95.203 l 141.281 95.199 l 141.285 95.199 l 141.285 95.195 l 141.289 95.195
+ l 141.293 95.191 l 141.293 95.188 l 141.297 95.188 l 141.316 95.168 l 141.32
+ 95.168 l 141.32 95.164 l 141.328 95.156 l 141.332 95.156 l 141.332 95.152
+ l 141.336 95.148 l 141.34 95.148 l 141.34 95.145 l 141.344 95.145 l 141.344
+ 95.141 l 141.348 95.137 l 141.352 95.137 l 141.352 95.133 l 141.355 95.133
+ l 141.363 95.125 l 141.363 95.121 l 141.367 95.121 l 141.383 95.105 l 141.387
+ 95.105 l 141.387 95.102 l 141.391 95.102 l 141.391 95.098 l 141.395 95.094
+ l 141.398 95.094 l 141.398 95.09 l 141.402 95.09 l 141.406 95.086 l 141.406
+ 95.082 l 141.41 95.082 l 141.41 95.078 l 141.414 95.078 l 141.434 95.059
+ l 141.438 95.059 l 141.438 95.055 l 141.441 95.051 l 141.445 95.051 l 141.445
+ 95.047 l 141.449 95.047 l 141.449 95.043 l 141.453 95.039 l 141.457 95.039
+ l 141.457 95.035 l 141.461 95.035 l 141.469 95.027 l 141.469 95.023 l 141.473
+ 95.023 l 141.48 95.016 l 141.484 95.016 l 141.484 95.012 l 141.488 95.008
+ l 141.492 95.008 l 141.492 95.004 l 141.496 95.004 l 141.496 95 l 141.5
+ 95 l 141.504 94.996 l 141.504 94.992 l 141.508 94.992 l 141.527 94.973 
+l 141.531 94.973 l 141.531 94.969 l 141.535 94.969 l 141.535 94.965 l 141.539
+ 94.965 l 141.543 94.961 l 141.543 94.957 l 141.547 94.957 l 141.566 94.938
+ l 141.57 94.938 l 141.57 94.934 l 141.574 94.934 l 141.582 94.926 l 141.582
+ 94.922 l 141.586 94.922 l 141.594 94.914 l 141.598 94.914 l 141.598 94.91
+ l 141.605 94.902 l 141.609 94.902 l 141.609 94.898 l 141.613 94.898 l 141.621
+ 94.891 l 141.621 94.887 l 141.625 94.887 l 141.633 94.879 l 141.637 94.879
+ l 141.637 94.875 l 141.641 94.875 l 141.641 94.871 l 141.645 94.867 l 141.648
+ 94.867 l 141.648 94.863 l 141.652 94.863 l 141.664 94.852 l 141.668 94.852
+ l 141.668 94.848 l 141.672 94.844 l 141.676 94.844 l 141.676 94.84 l 141.68
+ 94.84 l 141.699 94.82 l 141.703 94.82 l 141.703 94.816 l 141.707 94.816
+ l 141.707 94.812 l 141.711 94.812 l 141.73 94.793 l 141.734 94.793 l 141.734
+ 94.789 l 141.738 94.789 l 141.746 94.781 l 141.746 94.777 l 141.75 94.777
+ l 141.758 94.77 l 141.762 94.77 l 141.762 94.766 l 141.766 94.766 l 141.785
+ 94.746 l 141.789 94.746 l 141.789 94.742 l 141.793 94.742 l 141.793 94.738
+ l 141.797 94.738 l 141.805 94.73 l 141.809 94.73 l 141.809 94.727 l 141.812
+ 94.727 l 141.812 94.723 l 141.816 94.719 l 141.82 94.719 l 141.82 94.715
+ l 141.824 94.715 l 141.836 94.703 l 141.84 94.703 l 141.84 94.699 l 141.844
+ 94.699 l 141.852 94.691 l 141.852 94.688 l 141.855 94.688 l 141.863 94.68
+ l 141.867 94.68 l 141.867 94.676 l 141.871 94.676 l 141.883 94.664 l 141.887
+ 94.664 l 141.887 94.66 l 141.891 94.66 l 141.895 94.656 l 141.895 94.652
+ l 141.898 94.652 l 141.898 94.648 l 141.902 94.648 l 141.91 94.641 l 141.914
+ 94.641 l 141.914 94.637 l 141.918 94.637 l 141.918 94.633 l 141.922 94.633
+ l 141.93 94.625 l 141.934 94.625 l 141.934 94.621 l 141.938 94.621 l 141.938
+ 94.617 l 141.941 94.617 l 141.957 94.602 l 141.961 94.602 l 141.961 94.598
+ l 141.965 94.598 l 141.965 94.594 l 141.969 94.594 l 141.977 94.586 l 141.98
+ 94.586 l 141.98 94.582 l 141.984 94.582 l 141.984 94.578 l 141.988 94.578
+ l 141.996 94.57 l 142 94.57 l 142 94.566 l 142.004 94.566 l 142.004 94.562
+ l 142.008 94.562 l 142.016 94.555 l 142.02 94.555 l 142.02 94.551 l 142.023
+ 94.551 l 142.023 94.547 l 142.027 94.547 l 142.035 94.539 l 142.039 94.539
+ l 142.039 94.535 l 142.047 94.527 l 142.051 94.527 l 142.051 94.523 l 142.055
+ 94.523 l 142.062 94.516 l 142.066 94.516 l 142.066 94.512 l 142.07 94.512
+ l 142.07 94.508 l 142.074 94.508 l 142.082 94.5 l 142.086 94.5 l 142.086
+ 94.496 l 142.09 94.496 l 142.09 94.492 l 142.094 94.492 l 142.102 94.484
+ l 142.105 94.484 l 142.105 94.48 l 142.109 94.48 l 142.109 94.477 l 142.113
+ 94.477 l 142.121 94.469 l 142.125 94.469 l 142.125 94.465 l 142.129 94.465
+ l 142.129 94.461 l 142.133 94.461 l 142.141 94.453 l 142.145 94.453 l 142.145
+ 94.449 l 142.148 94.449 l 142.16 94.438 l 142.164 94.438 l 142.164 94.434
+ l 142.168 94.434 l 142.18 94.422 l 142.184 94.422 l 142.184 94.418 l 142.188
+ 94.418 l 142.195 94.41 l 142.199 94.41 l 142.207 94.402 l 142.211 94.402
+ l 142.211 94.398 l 142.215 94.398 l 142.215 94.395 l 142.219 94.395 l 142.227
+ 94.387 l 142.23 94.387 l 142.23 94.383 l 142.234 94.383 l 142.234 94.379
+ l 142.238 94.379 l 142.246 94.371 l 142.25 94.371 l 142.25 94.367 l 142.254
+ 94.367 l 142.266 94.355 l 142.27 94.355 l 142.27 94.352 l 142.273 94.352
+ l 142.285 94.34 l 142.289 94.34 l 142.293 94.336 l 142.297 94.336 l 142.297
+ 94.332 l 142.301 94.332 l 142.301 94.328 l 142.305 94.328 l 142.312 94.32
+ l 142.316 94.32 l 142.316 94.316 l 142.32 94.316 l 142.32 94.312 l 142.324
+ 94.312 l 142.332 94.305 l 142.336 94.305 l 142.336 94.301 l 142.34 94.301
+ l 142.344 94.297 l 142.348 94.297 l 142.348 94.293 l 142.352 94.293 l 142.359
+ 94.285 l 142.363 94.285 l 142.363 94.281 l 142.367 94.281 l 142.367 94.277
+ l 142.371 94.277 l 142.379 94.27 l 142.383 94.27 l 142.383 94.266 l 142.387
+ 94.266 l 142.391 94.262 l 142.395 94.262 l 142.395 94.258 l 142.398 94.258
+ l 142.41 94.246 l 142.414 94.246 l 142.414 94.242 l 142.418 94.242 l 142.426
+ 94.234 l 142.43 94.234 l 142.438 94.227 l 142.441 94.227 l 142.441 94.223
+ l 142.445 94.223 l 142.457 94.211 l 142.461 94.211 l 142.465 94.207 l 142.469
+ 94.207 l 142.469 94.203 l 142.473 94.203 l 142.473 94.199 l 142.477 94.199
+ l 142.484 94.191 l 142.488 94.191 l 142.488 94.188 l 142.492 94.188 l 142.496
+ 94.184 l 142.5 94.184 l 142.5 94.18 l 142.504 94.18 l 142.516 94.168 l 
+142.52 94.168 l 142.523 94.164 l 142.527 94.164 l 142.527 94.16 l 142.531
+ 94.16 l 142.543 94.148 l 142.547 94.148 l 142.551 94.145 l 142.555 94.145
+ l 142.555 94.141 l 142.559 94.141 l 142.559 94.137 l 142.562 94.137 l 142.57
+ 94.129 l 142.574 94.129 l 142.582 94.121 l 142.586 94.121 l 142.586 94.117
+ l 142.59 94.117 l 142.594 94.113 l 142.598 94.113 l 142.598 94.109 l 142.602
+ 94.109 l 142.609 94.102 l 142.613 94.102 l 142.613 94.098 l 142.617 94.098
+ l 142.621 94.094 l 142.625 94.094 l 142.625 94.09 l 142.629 94.09 l 142.637
+ 94.082 l 142.641 94.082 l 142.648 94.074 l 142.652 94.074 l 142.652 94.07
+ l 142.656 94.07 l 142.66 94.066 l 142.664 94.066 l 142.664 94.062 l 142.668
+ 94.062 l 142.676 94.055 l 142.68 94.055 l 142.68 94.051 l 142.684 94.051
+ l 142.688 94.047 l 142.691 94.047 l 142.691 94.043 l 142.695 94.043 l 142.699
+ 94.039 l 142.703 94.039 l 142.703 94.035 l 142.707 94.035 l 142.715 94.027
+ l 142.719 94.027 l 142.719 94.023 l 142.727 94.023 l 142.727 94.02 l 142.73
+ 94.02 l 142.73 94.016 l 142.734 94.016 l 142.738 94.012 l 142.742 94.012
+ l 142.754 94 l 142.758 94 l 142.762 93.996 l 142.766 93.996 l 142.766 93.992
+ l 142.77 93.992 l 142.77 93.988 l 142.777 93.988 l 142.777 93.984 l 142.781
+ 93.984 l 142.789 93.977 l 142.793 93.977 l 142.801 93.969 l 142.805 93.969
+ l 142.805 93.965 l 142.809 93.965 l 142.812 93.961 l 142.816 93.961 l 142.816
+ 93.957 l 142.82 93.957 l 142.824 93.953 l 142.828 93.953 l 142.836 93.945
+ l 142.84 93.945 l 142.848 93.938 l 142.852 93.938 l 142.852 93.934 l 142.855
+ 93.934 l 142.859 93.93 l 142.863 93.93 l 142.863 93.926 l 142.871 93.926
+ l 142.871 93.922 l 142.875 93.922 l 142.875 93.918 l 142.879 93.918 l 142.883
+ 93.914 l 142.887 93.914 l 142.895 93.906 l 142.898 93.906 l 142.906 93.898
+ l 142.91 93.898 l 142.91 93.895 l 142.918 93.895 l 142.918 93.891 l 142.922
+ 93.891 l 142.922 93.887 l 142.93 93.887 l 142.93 93.883 l 142.934 93.883
+ l 142.941 93.875 l 142.945 93.875 l 142.953 93.867 l 142.957 93.867 l 142.965
+ 93.859 l 142.969 93.859 l 142.973 93.855 l 142.977 93.855 l 142.977 93.852
+ l 142.98 93.852 l 142.984 93.848 l 142.988 93.848 l 142.988 93.844 l 142.996
+ 93.844 l 142.996 93.84 l 143 93.84 l 143 93.836 l 143.008 93.836 l 143.008
+ 93.832 l 143.012 93.832 l 143.02 93.824 l 143.023 93.824 l 143.031 93.816
+ l 143.035 93.816 l 143.039 93.812 l 143.043 93.812 l 143.043 93.809 l 143.047
+ 93.809 l 143.051 93.805 l 143.055 93.805 l 143.055 93.801 l 143.062 93.801
+ l 143.062 93.797 l 143.066 93.797 l 143.07 93.793 l 143.074 93.793 l 143.074
+ 93.789 l 143.082 93.789 l 143.082 93.785 l 143.086 93.785 l 143.086 93.781
+ l 143.094 93.781 l 143.094 93.777 l 143.098 93.777 l 143.102 93.773 l 143.105
+ 93.773 l 143.113 93.766 l 143.117 93.766 l 143.125 93.758 l 143.129 93.758
+ l 143.133 93.754 l 143.137 93.754 l 143.145 93.746 l 143.148 93.746 l 143.156
+ 93.738 l 143.16 93.738 l 143.164 93.734 l 143.168 93.734 l 143.168 93.73
+ l 143.172 93.73 l 143.176 93.727 l 143.18 93.727 l 143.184 93.723 l 143.188
+ 93.723 l 143.188 93.719 l 143.191 93.719 l 143.195 93.715 l 143.199 93.715
+ l 143.199 93.711 l 143.207 93.711 l 143.207 93.707 l 143.215 93.707 l 143.215
+ 93.703 l 143.219 93.703 l 143.219 93.699 l 143.227 93.699 l 143.227 93.695
+ l 143.234 93.695 l 143.234 93.691 l 143.238 93.691 l 143.238 93.688 l 143.246
+ 93.688 l 143.246 93.684 l 143.25 93.684 l 143.254 93.68 l 143.258 93.68
+ l 143.258 93.676 l 143.266 93.676 l 143.266 93.672 l 143.27 93.672 l 143.273
+ 93.668 l 143.277 93.668 l 143.277 93.664 l 143.285 93.664 l 143.285 93.66
+ l 143.289 93.66 l 143.293 93.656 l 143.297 93.656 l 143.301 93.652 l 143.305
+ 93.652 l 143.305 93.648 l 143.312 93.648 l 143.312 93.645 l 143.316 93.645
+ l 143.32 93.641 l 143.324 93.641 l 143.324 93.637 l 143.332 93.637 l 143.332
+ 93.633 l 143.336 93.633 l 143.34 93.629 l 143.344 93.629 l 143.344 93.625
+ l 143.352 93.625 l 143.352 93.621 l 143.359 93.621 l 143.359 93.617 l 143.363
+ 93.617 l 143.363 93.613 l 143.371 93.613 l 143.371 93.609 l 143.379 93.609
+ l 143.379 93.605 l 143.383 93.605 l 143.383 93.602 l 143.391 93.602 l 143.391
+ 93.598 l 143.398 93.598 l 143.398 93.594 l 143.406 93.594 l 143.406 93.59
+ l 143.41 93.59 l 143.414 93.586 l 143.418 93.586 l 143.418 93.582 l 143.426
+ 93.582 l 143.426 93.578 l 143.43 93.578 l 143.434 93.574 l 143.438 93.574
+ l 143.441 93.57 l 143.445 93.57 l 143.445 93.566 l 143.449 93.566 l 143.453
+ 93.562 l 143.457 93.562 l 143.461 93.559 l 143.465 93.559 l 143.469 93.555
+ l 143.473 93.555 l 143.477 93.551 l 143.48 93.551 l 143.488 93.543 l 143.492
+ 93.543 l 143.496 93.539 l 143.5 93.539 l 143.504 93.535 l 143.508 93.535
+ l 143.512 93.531 l 143.516 93.531 l 143.516 93.527 l 143.523 93.527 l 143.523
+ 93.523 l 143.531 93.523 l 143.531 93.52 l 143.535 93.52 l 143.535 93.516
+ l 143.543 93.516 l 143.543 93.512 l 143.551 93.512 l 143.551 93.508 l 143.555
+ 93.508 l 143.559 93.504 l 143.562 93.504 l 143.566 93.5 l 143.57 93.5 l
+ 143.574 93.496 l 143.578 93.496 l 143.582 93.492 l 143.586 93.492 l 143.59
+ 93.488 l 143.594 93.488 l 143.598 93.484 l 143.602 93.484 l 143.602 93.48
+ l 143.609 93.48 l 143.609 93.477 l 143.613 93.477 l 143.617 93.473 l 143.621
+ 93.473 l 143.621 93.469 l 143.629 93.469 l 143.629 93.465 l 143.637 93.465
+ l 143.637 93.461 l 143.641 93.461 l 143.645 93.457 l 143.648 93.457 l 143.652
+ 93.453 l 143.656 93.453 l 143.66 93.449 l 143.664 93.449 l 143.668 93.445
+ l 143.672 93.445 l 143.676 93.441 l 143.68 93.441 l 143.68 93.438 l 143.688
+ 93.438 l 143.688 93.434 l 143.695 93.434 l 143.695 93.43 l 143.703 93.43
+ l 143.703 93.426 l 143.707 93.426 l 143.711 93.422 l 143.715 93.422 l 143.719
+ 93.418 l 143.723 93.418 l 143.727 93.414 l 143.73 93.414 l 143.734 93.41
+ l 143.742 93.41 l 143.742 93.406 l 143.746 93.406 l 143.75 93.402 l 143.754
+ 93.402 l 143.758 93.398 l 143.762 93.398 l 143.766 93.395 l 143.77 93.395
+ l 143.773 93.391 l 143.777 93.391 l 143.781 93.387 l 143.785 93.387 l 143.789
+ 93.383 l 143.793 93.383 l 143.793 93.379 l 143.801 93.379 l 143.801 93.375
+ l 143.809 93.375 l 143.809 93.371 l 143.816 93.371 l 143.82 93.367 l 143.824
+ 93.367 l 143.828 93.363 l 143.832 93.363 l 143.832 93.359 l 143.84 93.359
+ l 143.84 93.355 l 143.848 93.355 l 143.848 93.352 l 143.852 93.352 l 143.855
+ 93.348 l 143.863 93.348 l 143.867 93.344 l 143.871 93.344 l 143.871 93.34
+ l 143.879 93.34 l 143.879 93.336 l 143.887 93.336 l 143.887 93.332 l 143.895
+ 93.332 l 143.895 93.328 l 143.902 93.328 l 143.906 93.324 l 143.91 93.324
+ l 143.914 93.32 l 143.918 93.32 l 143.918 93.316 l 143.926 93.316 l 143.926
+ 93.312 l 143.934 93.312 l 143.938 93.309 l 143.941 93.309 l 143.945 93.305
+ l 143.949 93.305 l 143.953 93.301 l 143.957 93.301 l 143.957 93.297 l 143.965
+ 93.297 l 143.969 93.293 l 143.973 93.293 l 143.977 93.289 l 143.98 93.289
+ l 143.984 93.285 l 143.992 93.285 l 143.992 93.281 l 144 93.281 l 144 93.277
+ l 144.004 93.277 l 144.008 93.273 l 144.016 93.273 l 144.02 93.27 l 144.023
+ 93.27 l 144.023 93.266 l 144.031 93.266 l 144.031 93.262 l 144.039 93.262
+ l 144.043 93.258 l 144.047 93.258 l 144.051 93.254 l 144.055 93.254 l 144.059
+ 93.25 l 144.062 93.25 l 144.066 93.246 l 144.07 93.246 l 144.074 93.242
+ l 144.082 93.242 l 144.086 93.238 l 144.09 93.238 l 144.09 93.234 l 144.098
+ 93.234 l 144.102 93.23 l 144.105 93.23 l 144.109 93.227 l 144.117 93.227
+ l 144.117 93.223 l 144.125 93.223 l 144.125 93.219 l 144.133 93.219 l 144.137
+ 93.215 l 144.141 93.215 l 144.145 93.211 l 144.148 93.211 l 144.152 93.207
+ l 144.156 93.207 l 144.16 93.203 l 144.168 93.203 l 144.172 93.199 l 144.176
+ 93.199 l 144.176 93.195 l 144.184 93.195 l 144.188 93.191 l 144.191 93.191
+ l 144.195 93.188 l 144.203 93.188 l 144.203 93.184 l 144.211 93.184 l 144.211
+ 93.18 l 144.219 93.18 l 144.223 93.176 l 144.23 93.176 l 144.23 93.172 
+l 144.234 93.172 l 144.238 93.168 l 144.246 93.168 l 144.25 93.164 l 144.254
+ 93.164 l 144.254 93.16 l 144.262 93.16 l 144.266 93.156 l 144.273 93.156
+ l 144.277 93.152 l 144.281 93.152 l 144.281 93.148 l 144.289 93.148 l 144.293
+ 93.145 l 144.301 93.145 l 144.301 93.141 l 144.309 93.141 l 144.312 93.137
+ l 144.316 93.137 l 144.32 93.133 l 144.328 93.133 l 144.328 93.129 l 144.336
+ 93.129 l 144.34 93.125 l 144.348 93.125 l 144.348 93.121 l 144.355 93.121
+ l 144.355 93.117 l 144.363 93.117 l 144.367 93.113 l 144.375 93.113 l 144.375
+ 93.109 l 144.383 93.109 l 144.387 93.105 l 144.395 93.105 l 144.395 93.102
+ l 144.402 93.102 l 144.402 93.098 l 144.41 93.098 l 144.414 93.094 l 144.422
+ 93.094 l 144.422 93.09 l 144.43 93.09 l 144.434 93.086 l 144.441 93.086
+ l 144.441 93.082 l 144.449 93.082 l 144.453 93.078 l 144.461 93.078 l 144.461
+ 93.074 l 144.469 93.074 l 144.473 93.07 l 144.48 93.07 l 144.48 93.066 
+l 144.488 93.066 l 144.492 93.062 l 144.5 93.062 l 144.5 93.059 l 144.508
+ 93.059 l 144.512 93.055 l 144.52 93.055 l 144.52 93.051 l 144.527 93.051
+ l 144.531 93.047 l 144.539 93.047 l 144.539 93.043 l 144.547 93.043 l 144.551
+ 93.039 l 144.559 93.039 l 144.559 93.035 l 144.566 93.035 l 144.57 93.031
+ l 144.578 93.031 l 144.578 93.027 l 144.586 93.027 l 144.59 93.023 l 144.598
+ 93.023 l 144.602 93.02 l 144.609 93.02 l 144.613 93.016 l 144.617 93.016
+ l 144.621 93.012 l 144.629 93.012 l 144.633 93.008 l 144.637 93.008 l 144.641
+ 93.004 l 144.652 93.004 l 144.652 93 l 144.66 93 l 144.664 92.996 l 144.672
+ 92.996 l 144.672 92.992 l 144.68 92.992 l 144.684 92.988 l 144.691 92.988
+ l 144.695 92.984 l 144.703 92.984 l 144.703 92.98 l 144.715 92.98 l 144.719
+ 92.977 l 144.723 92.977 l 144.727 92.973 l 144.734 92.973 l 144.738 92.969
+ l 144.746 92.969 l 144.75 92.965 l 144.758 92.965 l 144.758 92.961 l 144.77
+ 92.961 l 144.77 92.957 l 144.777 92.957 l 144.781 92.953 l 144.789 92.953
+ l 144.793 92.949 l 144.801 92.949 l 144.805 92.945 l 144.812 92.945 l 144.816
+ 92.941 l 144.824 92.941 l 144.824 92.938 l 144.836 92.938 l 144.836 92.934
+ l 144.848 92.934 l 144.852 92.93 l 144.855 92.93 l 144.859 92.926 l 144.871
+ 92.926 l 144.871 92.922 l 144.883 92.922 l 144.883 92.918 l 144.891 92.918
+ l 144.895 92.914 l 144.902 92.914 l 144.906 92.91 l 144.914 92.91 l 144.918
+ 92.906 l 144.93 92.906 l 144.93 92.902 l 144.938 92.902 l 144.941 92.898
+ l 144.949 92.898 l 144.953 92.895 l 144.961 92.895 l 144.965 92.891 l 144.977
+ 92.891 l 144.977 92.887 l 144.988 92.887 l 144.988 92.883 l 145 92.883 
+l 145 92.879 l 145.012 92.879 l 145.016 92.875 l 145.023 92.875 l 145.027
+ 92.871 l 145.035 92.871 l 145.039 92.867 l 145.047 92.867 l 145.051 92.863
+ l 145.062 92.863 l 145.062 92.859 l 145.074 92.859 l 145.074 92.855 l 145.086
+ 92.855 l 145.09 92.852 l 145.102 92.852 l 145.102 92.848 l 145.113 92.848
+ l 145.113 92.844 l 145.125 92.844 l 145.129 92.84 l 145.141 92.84 l 145.141
+ 92.836 l 145.152 92.836 l 145.152 92.832 l 145.164 92.832 l 145.168 92.828
+ l 145.18 92.828 l 145.18 92.824 l 145.191 92.824 l 145.191 92.82 l 145.207
+ 92.82 l 145.207 92.816 l 145.219 92.816 l 145.219 92.812 l 145.234 92.812
+ l 145.234 92.809 l 145.246 92.809 l 145.246 92.805 l 145.258 92.805 l 145.262
+ 92.801 l 145.273 92.801 l 145.277 92.797 l 145.289 92.797 l 145.293 92.793
+ l 145.301 92.793 l 145.305 92.789 l 145.316 92.789 l 145.32 92.785 l 145.332
+ 92.785 l 145.332 92.781 l 145.344 92.781 l 145.348 92.777 l 145.359 92.777
+ l 145.363 92.773 l 145.375 92.773 l 145.379 92.77 l 145.391 92.77 l 145.391
+ 92.766 l 145.402 92.766 l 145.406 92.762 l 145.418 92.762 l 145.422 92.758
+ l 145.438 92.758 l 145.438 92.754 l 145.449 92.754 l 145.453 92.75 l 145.465
+ 92.75 l 145.469 92.746 l 145.484 92.746 l 145.484 92.742 l 145.496 92.742
+ l 145.5 92.738 l 145.516 92.738 l 145.516 92.734 l 145.531 92.734 l 145.531
+ 92.73 l 145.547 92.73 l 145.551 92.727 l 145.562 92.727 l 145.566 92.723
+ l 145.582 92.723 l 145.582 92.719 l 145.598 92.719 l 145.602 92.715 l 145.617
+ 92.715 l 145.617 92.711 l 145.633 92.711 l 145.637 92.707 l 145.648 92.707
+ l 145.652 92.703 l 145.668 92.703 l 145.668 92.699 l 145.684 92.699 l 145.688
+ 92.695 l 145.703 92.695 l 145.707 92.691 l 145.723 92.691 l 145.723 92.688
+ l 145.742 92.688 l 145.742 92.684 l 145.758 92.684 l 145.762 92.68 l 145.777
+ 92.68 l 145.781 92.676 l 145.797 92.676 l 145.801 92.672 l 145.816 92.672
+ l 145.82 92.668 l 145.836 92.668 l 145.84 92.664 l 145.859 92.664 l 145.859
+ 92.66 l 145.879 92.66 l 145.879 92.656 l 145.898 92.656 l 145.902 92.652
+ l 145.918 92.652 l 145.922 92.648 l 145.941 92.648 l 145.945 92.645 l 145.965
+ 92.645 l 145.965 92.641 l 145.984 92.641 l 145.988 92.637 l 146.008 92.637
+ l 146.012 92.633 l 146.031 92.633 l 146.035 92.629 l 146.059 92.629 l 146.059
+ 92.625 l 146.082 92.625 l 146.082 92.621 l 146.105 92.621 l 146.109 92.617
+ l 146.129 92.617 l 146.133 92.613 l 146.156 92.613 l 146.16 92.609 l 146.184
+ 92.609 l 146.188 92.605 l 146.211 92.605 l 146.215 92.602 l 146.242 92.602
+ l 146.242 92.598 l 146.27 92.598 l 146.27 92.594 l 146.301 92.594 l 146.301
+ 92.59 l 146.332 92.59 l 146.336 92.586 l 146.363 92.586 l 146.367 92.582
+ l 146.395 92.582 l 146.398 92.578 l 146.434 92.578 l 146.434 92.574 l 146.469
+ 92.574 l 146.473 92.57 l 146.508 92.57 l 146.512 92.566 l 146.551 92.566
+ l 146.551 92.562 l 146.594 92.562 l 146.598 92.559 l 146.641 92.559 l 146.645
+ 92.555 l 146.691 92.555 l 146.695 92.551 l 146.75 92.551 l 146.754 92.547
+ l 146.816 92.547 l 146.82 92.543 l 146.895 92.543 l 146.898 92.539 l 147.008
+ 92.539 l 147.008 92.535 l 147.418 92.535 l 147.422 92.539 l 147.531 92.539
+ l 147.531 92.543 l 147.609 92.543 l 147.613 92.547 l 147.68 92.547 l 147.68
+ 92.551 l 147.738 92.551 l 147.742 92.555 l 147.789 92.555 l 147.793 92.559
+ l 147.84 92.559 l 147.84 92.562 l 147.887 92.562 l 147.887 92.566 l 147.926
+ 92.566 l 147.93 92.57 l 147.965 92.57 l 147.969 92.574 l 148.004 92.574
+ l 148.008 92.578 l 148.039 92.578 l 148.043 92.582 l 148.078 92.582 l 148.078
+ 92.586 l 148.109 92.586 l 148.109 92.59 l 148.145 92.59 l 148.145 92.594
+ l 148.172 92.594 l 148.176 92.598 l 148.203 92.598 l 148.207 92.602 l 148.234
+ 92.602 l 148.234 92.605 l 148.262 92.605 l 148.262 92.609 l 148.289 92.609
+ l 148.293 92.613 l 148.316 92.613 l 148.32 92.617 l 148.344 92.617 l 148.348
+ 92.621 l 148.367 92.621 l 148.371 92.625 l 148.395 92.625 l 148.398 92.629
+ l 148.422 92.629 l 148.422 92.633 l 148.445 92.633 l 148.445 92.637 l 148.469
+ 92.637 l 148.473 92.641 l 148.492 92.641 l 148.492 92.645 l 148.516 92.645
+ l 148.52 92.648 l 148.539 92.648 l 148.539 92.652 l 148.559 92.652 l 148.562
+ 92.656 l 148.582 92.656 l 148.586 92.66 l 148.605 92.66 l 148.605 92.664
+ l 148.625 92.664 l 148.629 92.668 l 148.645 92.668 l 148.648 92.672 l 148.668
+ 92.672 l 148.672 92.676 l 148.688 92.676 l 148.691 92.68 l 148.707 92.68
+ l 148.711 92.684 l 148.727 92.684 l 148.73 92.688 l 148.746 92.688 l 148.75
+ 92.691 l 148.766 92.691 l 148.77 92.695 l 148.785 92.695 l 148.789 92.699
+ l 148.805 92.699 l 148.809 92.703 l 148.824 92.703 l 148.828 92.707 l 148.844
+ 92.707 l 148.844 92.711 l 148.863 92.711 l 148.863 92.715 l 148.879 92.715
+ l 148.883 92.719 l 148.895 92.719 l 148.898 92.723 l 148.914 92.723 l 148.918
+ 92.727 l 148.934 92.727 l 148.934 92.73 l 148.949 92.73 l 148.953 92.734
+ l 148.969 92.734 l 148.969 92.738 l 148.984 92.738 l 148.988 92.742 l 149
+ 92.742 l 149.004 92.746 l 149.02 92.746 l 149.02 92.75 l 149.035 92.75 
+l 149.039 92.754 l 149.051 92.754 l 149.055 92.758 l 149.066 92.758 l 149.07
+ 92.762 l 149.086 92.762 l 149.086 92.766 l 149.102 92.766 l 149.102 92.77
+ l 149.117 92.77 l 149.121 92.773 l 149.133 92.773 l 149.133 92.777 l 149.148
+ 92.777 l 149.152 92.781 l 149.164 92.781 l 149.168 92.785 l 149.18 92.785
+ l 149.184 92.789 l 149.195 92.789 l 149.199 92.793 l 149.211 92.793 l 149.211
+ 92.797 l 149.227 92.797 l 149.227 92.801 l 149.242 92.801 l 149.246 92.805
+ l 149.258 92.805 l 149.258 92.809 l 149.273 92.809 l 149.273 92.812 l 149.285
+ 92.812 l 149.289 92.816 l 149.301 92.816 l 149.305 92.82 l 149.316 92.82
+ l 149.316 92.824 l 149.332 92.824 l 149.332 92.828 l 149.344 92.828 l 149.344
+ 92.832 l 149.359 92.832 l 149.359 92.836 l 149.371 92.836 l 149.375 92.84
+ l 149.387 92.84 l 149.391 92.844 l 149.402 92.844 l 149.402 92.848 l 149.414
+ 92.848 l 149.418 92.852 l 149.43 92.852 l 149.43 92.855 l 149.441 92.855
+ l 149.445 92.859 l 149.457 92.859 l 149.457 92.863 l 149.469 92.863 l 149.473
+ 92.867 l 149.484 92.867 l 149.484 92.871 l 149.496 92.871 l 149.5 92.875
+ l 149.508 92.875 l 149.512 92.879 l 149.523 92.879 l 149.527 92.883 l 149.535
+ 92.883 l 149.539 92.887 l 149.551 92.887 l 149.555 92.891 l 149.562 92.891
+ l 149.566 92.895 l 149.574 92.895 l 149.578 92.898 l 149.59 92.898 l 149.594
+ 92.902 l 149.602 92.902 l 149.605 92.906 l 149.613 92.906 l 149.617 92.91
+ l 149.629 92.91 l 149.629 92.914 l 149.641 92.914 l 149.641 92.918 l 149.656
+ 92.918 l 149.656 92.922 l 149.668 92.922 l 149.668 92.926 l 149.68 92.926
+ l 149.68 92.93 l 149.691 92.93 l 149.695 92.934 l 149.703 92.934 l 149.707
+ 92.938 l 149.715 92.938 l 149.719 92.941 l 149.727 92.941 l 149.73 92.945
+ l 149.742 92.945 l 149.742 92.949 l 149.754 92.949 l 149.754 92.953 l 149.766
+ 92.953 l 149.766 92.957 l 149.777 92.957 l 149.781 92.961 l 149.789 92.961
+ l 149.793 92.965 l 149.801 92.965 l 149.805 92.969 l 149.812 92.969 l 149.816
+ 92.973 l 149.824 92.973 l 149.828 92.977 l 149.836 92.977 l 149.84 92.98
+ l 149.848 92.98 l 149.852 92.984 l 149.859 92.984 l 149.863 92.988 l 149.871
+ 92.988 l 149.875 92.992 l 149.887 92.992 l 149.887 92.996 l 149.895 92.996
+ l 149.898 93 l 149.906 93 l 149.91 93.004 l 149.918 93.004 l 149.922 93.008
+ l 149.93 93.008 l 149.934 93.012 l 149.941 93.012 l 149.945 93.016 l 149.953
+ 93.016 l 149.957 93.02 l 149.965 93.02 l 149.965 93.023 l 149.977 93.023
+ l 149.977 93.027 l 149.988 93.027 l 149.992 93.031 l 149.996 93.031 l 150
+ 93.035 l 150.012 93.035 l 150.012 93.039 l 150.02 93.039 l 150.023 93.043
+ l 150.031 93.043 l 150.035 93.047 l 150.043 93.047 l 150.043 93.051 l 150.055
+ 93.051 l 150.059 93.055 l 150.062 93.055 l 150.066 93.059 l 150.078 93.059
+ l 150.078 93.062 l 150.086 93.062 l 150.09 93.066 l 150.098 93.066 l 150.102
+ 93.07 l 150.109 93.07 l 150.109 93.074 l 150.117 93.074 l 150.121 93.078
+ l 150.129 93.078 l 150.133 93.082 l 150.141 93.082 l 150.145 93.086 l 150.152
+ 93.086 l 150.156 93.09 l 150.164 93.09 l 150.164 93.094 l 150.172 93.094
+ l 150.176 93.098 l 150.184 93.098 l 150.188 93.102 l 150.195 93.102 l 150.195
+ 93.105 l 150.203 93.105 l 150.207 93.109 l 150.215 93.109 l 150.215 93.113
+ l 150.227 93.113 l 150.23 93.117 l 150.234 93.117 l 150.238 93.121 l 150.246
+ 93.121 l 150.25 93.125 l 150.254 93.125 l 150.258 93.129 l 150.27 93.129
+ l 150.27 93.133 l 150.277 93.133 l 150.281 93.137 l 150.289 93.137 l 150.289
+ 93.141 l 150.297 93.141 l 150.301 93.145 l 150.309 93.145 l 150.309 93.148
+ l 150.316 93.148 l 150.32 93.152 l 150.328 93.152 l 150.332 93.156 l 150.34
+ 93.156 l 150.34 93.16 l 150.348 93.16 l 150.352 93.164 l 150.359 93.164
+ l 150.359 93.168 l 150.367 93.168 l 150.371 93.172 l 150.379 93.172 l 150.379
+ 93.176 l 150.387 93.176 l 150.391 93.18 l 150.398 93.18 l 150.398 93.184
+ l 150.406 93.184 l 150.41 93.188 l 150.418 93.188 l 150.422 93.191 l 150.426
+ 93.191 l 150.43 93.195 l 150.438 93.195 l 150.441 93.199 l 150.445 93.199
+ l 150.449 93.203 l 150.457 93.203 l 150.461 93.207 l 150.465 93.207 l 150.469
+ 93.211 l 150.477 93.211 l 150.48 93.215 l 150.484 93.215 l 150.488 93.219
+ l 150.496 93.219 l 150.5 93.223 l 150.508 93.223 l 150.508 93.227 l 150.516
+ 93.227 l 150.52 93.23 l 150.527 93.23 l 150.527 93.234 l 150.535 93.234
+ l 150.539 93.238 l 150.547 93.238 l 150.547 93.242 l 150.551 93.242 l 150.555
+ 93.246 l 150.562 93.246 l 150.566 93.25 l 150.57 93.25 l 150.574 93.254
+ l 150.582 93.254 l 150.586 93.258 l 150.59 93.258 l 150.594 93.262 l 150.602
+ 93.262 l 150.605 93.266 l 150.609 93.266 l 150.613 93.27 l 150.617 93.27
+ l 150.621 93.273 l 150.629 93.273 l 150.633 93.277 l 150.637 93.277 l 150.641
+ 93.281 l 150.648 93.281 l 150.652 93.285 l 150.656 93.285 l 150.656 93.289
+ l 150.664 93.289 l 150.668 93.293 l 150.676 93.293 l 150.676 93.297 l 150.684
+ 93.297 l 150.688 93.301 l 150.691 93.301 l 150.695 93.305 l 150.703 93.305
+ l 150.703 93.309 l 150.711 93.309 l 150.715 93.312 l 150.723 93.312 l 150.723
+ 93.316 l 150.73 93.316 l 150.73 93.32 l 150.738 93.32 l 150.742 93.324 
+l 150.75 93.324 l 150.75 93.328 l 150.758 93.328 l 150.758 93.332 l 150.766
+ 93.332 l 150.77 93.336 l 150.777 93.336 l 150.777 93.34 l 150.781 93.34
+ l 150.785 93.344 l 150.793 93.344 l 150.797 93.348 l 150.805 93.348 l 150.805
+ 93.352 l 150.809 93.352 l 150.812 93.355 l 150.82 93.355 l 150.824 93.359
+ l 150.828 93.359 l 150.828 93.363 l 150.836 93.363 l 150.84 93.367 l 150.848
+ 93.367 l 150.848 93.371 l 150.855 93.371 l 150.855 93.375 l 150.863 93.375
+ l 150.867 93.379 l 150.871 93.379 l 150.875 93.383 l 150.883 93.383 l 150.883
+ 93.387 l 150.891 93.387 l 150.895 93.391 l 150.898 93.391 l 150.902 93.395
+ l 150.91 93.395 l 150.91 93.398 l 150.914 93.398 l 150.918 93.402 l 150.926
+ 93.402 l 150.93 93.406 l 150.934 93.406 l 150.934 93.41 l 150.941 93.41
+ l 150.945 93.414 l 150.949 93.414 l 150.953 93.418 l 150.961 93.418 l 150.961
+ 93.422 l 150.969 93.422 l 150.969 93.426 l 150.977 93.426 l 150.98 93.43
+ l 150.984 93.43 l 150.988 93.434 l 150.996 93.434 l 150.996 93.438 l 151
+ 93.438 l 151.004 93.441 l 151.012 93.441 l 151.016 93.445 l 151.02 93.445
+ l 151.02 93.449 l 151.027 93.449 l 151.031 93.453 l 151.035 93.453 l 151.039
+ 93.457 l 151.043 93.457 l 151.047 93.461 l 151.055 93.461 l 151.055 93.465
+ l 151.059 93.465 l 151.062 93.469 l 151.07 93.469 l 151.074 93.473 l 151.078
+ 93.473 l 151.078 93.477 l 151.086 93.477 l 151.086 93.48 l 151.094 93.48
+ l 151.098 93.484 l 151.102 93.484 l 151.105 93.488 l 151.113 93.488 l 151.113
+ 93.492 l 151.121 93.492 l 151.121 93.496 l 151.125 93.496 l 151.129 93.5
+ l 151.137 93.5 l 151.141 93.504 l 151.145 93.504 l 151.145 93.508 l 151.152
+ 93.508 l 151.152 93.512 l 151.16 93.512 l 151.164 93.516 l 151.168 93.516
+ l 151.172 93.52 l 151.176 93.52 l 151.18 93.523 l 151.188 93.523 l 151.188
+ 93.527 l 151.191 93.527 l 151.195 93.531 l 151.199 93.531 l 151.203 93.535
+ l 151.211 93.535 l 151.211 93.539 l 151.219 93.539 l 151.219 93.543 l 151.227
+ 93.543 l 151.227 93.547 l 151.234 93.547 l 151.238 93.551 l 151.242 93.551
+ l 151.246 93.555 l 151.25 93.555 l 151.25 93.559 l 151.258 93.559 l 151.258
+ 93.562 l 151.266 93.562 l 151.27 93.566 l 151.273 93.566 l 151.277 93.57
+ l 151.281 93.57 l 151.285 93.574 l 151.289 93.574 l 151.293 93.578 l 151.297
+ 93.578 l 151.301 93.582 l 151.305 93.582 l 151.309 93.586 l 151.312 93.586
+ l 151.316 93.59 l 151.32 93.59 l 151.324 93.594 l 151.332 93.594 l 151.332
+ 93.598 l 151.336 93.598 l 151.34 93.602 l 151.344 93.602 l 151.348 93.605
+ l 151.352 93.605 l 151.355 93.609 l 151.359 93.609 l 151.363 93.613 l 151.371
+ 93.613 l 151.371 93.617 l 151.379 93.617 l 151.379 93.621 l 151.383 93.621
+ l 151.387 93.625 l 151.391 93.625 l 151.395 93.629 l 151.398 93.629 l 151.402
+ 93.633 l 151.406 93.633 l 151.41 93.637 l 151.418 93.637 l 151.418 93.641
+ l 151.422 93.641 l 151.426 93.645 l 151.43 93.645 l 151.434 93.648 l 151.438
+ 93.648 l 151.441 93.652 l 151.445 93.652 l 151.449 93.656 l 151.453 93.656
+ l 151.457 93.66 l 151.461 93.66 l 151.461 93.664 l 151.469 93.664 l 151.473
+ 93.668 l 151.477 93.668 l 151.48 93.672 l 151.484 93.672 l 151.488 93.676
+ l 151.492 93.676 l 151.496 93.68 l 151.5 93.68 l 151.504 93.684 l 151.508
+ 93.684 l 151.508 93.688 l 151.516 93.688 l 151.516 93.691 l 151.523 93.691
+ l 151.523 93.695 l 151.527 93.695 l 151.531 93.699 l 151.539 93.699 l 151.543
+ 93.703 l 151.547 93.703 l 151.547 93.707 l 151.555 93.707 l 151.555 93.711
+ l 151.562 93.711 l 151.562 93.715 l 151.57 93.715 l 151.57 93.719 l 151.574
+ 93.719 l 151.578 93.723 l 151.582 93.723 l 151.586 93.727 l 151.59 93.727
+ l 151.594 93.73 l 151.598 93.73 l 151.602 93.734 l 151.605 93.734 l 151.609
+ 93.738 l 151.613 93.738 l 151.613 93.742 l 151.621 93.742 l 151.621 93.746
+ l 151.629 93.746 l 151.629 93.75 l 151.633 93.75 l 151.637 93.754 l 151.641
+ 93.754 l 151.645 93.758 l 151.648 93.758 l 151.652 93.762 l 151.656 93.762
+ l 151.66 93.766 l 151.664 93.766 l 151.668 93.77 l 151.672 93.77 l 151.676
+ 93.773 l 151.68 93.773 l 151.68 93.777 l 151.688 93.777 l 151.688 93.781
+ l 151.695 93.781 l 151.695 93.785 l 151.699 93.785 l 151.703 93.789 l 151.707
+ 93.789 l 151.711 93.793 l 151.715 93.793 l 151.719 93.797 l 151.723 93.797
+ l 151.727 93.801 l 151.73 93.801 l 151.734 93.805 l 151.738 93.805 l 151.738
+ 93.809 l 151.746 93.809 l 151.746 93.812 l 151.754 93.812 l 151.754 93.816
+ l 151.762 93.816 l 151.762 93.82 l 151.766 93.82 l 151.77 93.824 l 151.773
+ 93.824 l 151.777 93.828 l 151.781 93.828 l 151.785 93.832 l 151.789 93.832
+ l 151.793 93.836 l 151.797 93.836 l 151.801 93.84 l 151.805 93.84 l 151.805
+ 93.844 l 151.812 93.844 l 151.812 93.848 l 151.816 93.848 l 151.82 93.852
+ l 151.824 93.852 l 151.824 93.855 l 151.832 93.855 l 151.832 93.859 l 151.84
+ 93.859 l 151.84 93.863 l 151.844 93.863 l 151.848 93.867 l 151.852 93.867
+ l 151.855 93.871 l 151.859 93.871 l 151.863 93.875 l 151.867 93.875 l 151.871
+ 93.879 l 151.875 93.879 l 151.879 93.883 l 151.883 93.883 l 151.891 93.891
+ l 151.895 93.891 l 151.898 93.895 l 151.902 93.895 l 151.906 93.898 l 151.91
+ 93.898 l 151.91 93.902 l 151.918 93.902 l 151.918 93.906 l 151.926 93.906
+ l 151.926 93.91 l 151.93 93.91 l 151.934 93.914 l 151.938 93.914 l 151.941
+ 93.918 l 151.945 93.918 l 151.945 93.922 l 151.953 93.922 l 151.953 93.926
+ l 151.957 93.926 l 151.961 93.93 l 151.965 93.93 l 151.969 93.934 l 151.973
+ 93.934 l 151.977 93.938 l 151.98 93.938 l 151.988 93.945 l 151.992 93.945
+ l 151.996 93.949 l 152 93.949 l 152.004 93.953 l 152.008 93.953 l 152.012
+ 93.957 l 152.016 93.957 l 152.016 93.961 l 152.023 93.961 l 152.023 93.965
+ l 152.027 93.965 l 152.031 93.969 l 152.035 93.969 l 152.035 93.973 l 152.043
+ 93.973 l 152.043 93.977 l 152.051 93.977 l 152.051 93.98 l 152.059 93.98
+ l 152.059 93.984 l 152.062 93.984 l 152.062 93.988 l 152.07 93.988 l 152.07
+ 93.992 l 152.078 93.992 l 152.078 93.996 l 152.082 93.996 l 152.086 94 
+l 152.09 94 l 152.094 94.004 l 152.098 94.004 l 152.098 94.008 l 152.102
+ 94.008 l 152.105 94.012 l 152.109 94.012 l 152.113 94.016 l 152.117 94.016
+ l 152.125 94.023 l 152.129 94.023 l 152.133 94.027 l 152.137 94.027 l 152.141
+ 94.031 l 152.145 94.031 l 152.152 94.039 l 152.156 94.039 l 152.16 94.043
+ l 152.164 94.043 l 152.168 94.047 l 152.172 94.047 l 152.18 94.055 l 152.184
+ 94.055 l 152.188 94.059 l 152.191 94.059 l 152.195 94.062 l 152.199 94.062
+ l 152.207 94.07 l 152.211 94.07 l 152.215 94.074 l 152.219 94.074 l 152.227
+ 94.082 l 152.23 94.082 l 152.234 94.086 l 152.238 94.086 l 152.242 94.09
+ l 152.246 94.09 l 152.254 94.098 l 152.258 94.098 l 152.262 94.102 l 152.266
+ 94.102 l 152.273 94.109 l 152.277 94.109 l 152.281 94.113 l 152.285 94.113
+ l 152.293 94.121 l 152.297 94.121 l 152.301 94.125 l 152.305 94.125 l 152.309
+ 94.129 l 152.312 94.129 l 152.312 94.133 l 152.316 94.133 l 152.32 94.137
+ l 152.324 94.137 l 152.328 94.141 l 152.332 94.141 l 152.34 94.148 l 152.344
+ 94.148 l 152.348 94.152 l 152.352 94.152 l 152.359 94.16 l 152.363 94.16
+ l 152.371 94.168 l 152.375 94.168 l 152.379 94.172 l 152.383 94.172 l 152.391
+ 94.18 l 152.395 94.18 l 152.398 94.184 l 152.402 94.184 l 152.41 94.191
+ l 152.414 94.191 l 152.418 94.195 l 152.422 94.195 l 152.43 94.203 l 152.434
+ 94.203 l 152.438 94.207 l 152.441 94.207 l 152.441 94.211 l 152.445 94.211
+ l 152.449 94.215 l 152.453 94.215 l 152.457 94.219 l 152.461 94.219 l 152.461
+ 94.223 l 152.465 94.223 l 152.469 94.227 l 152.473 94.227 l 152.477 94.23
+ l 152.48 94.23 l 152.48 94.234 l 152.484 94.234 l 152.488 94.238 l 152.492
+ 94.238 l 152.492 94.242 l 152.5 94.242 l 152.5 94.246 l 152.504 94.246 
+l 152.508 94.25 l 152.512 94.25 l 152.512 94.254 l 152.52 94.254 l 152.52
+ 94.258 l 152.523 94.258 l 152.527 94.262 l 152.531 94.262 l 152.531 94.266
+ l 152.535 94.266 l 152.539 94.27 l 152.543 94.27 l 152.547 94.273 l 152.551
+ 94.273 l 152.551 94.277 l 152.555 94.277 l 152.559 94.281 l 152.562 94.281
+ l 152.57 94.289 l 152.574 94.289 l 152.582 94.297 l 152.586 94.297 l 152.59
+ 94.301 l 152.594 94.301 l 152.602 94.309 l 152.605 94.309 l 152.613 94.316
+ l 152.617 94.316 l 152.621 94.32 l 152.625 94.32 l 152.625 94.324 l 152.633
+ 94.324 l 152.633 94.328 l 152.637 94.328 l 152.637 94.332 l 152.645 94.332
+ l 152.645 94.336 l 152.652 94.336 l 152.652 94.34 l 152.656 94.34 l 152.656
+ 94.344 l 152.664 94.344 l 152.664 94.348 l 152.668 94.348 l 152.672 94.352
+ l 152.676 94.352 l 152.676 94.355 l 152.68 94.355 l 152.684 94.359 l 152.688
+ 94.359 l 152.695 94.367 l 152.699 94.367 l 152.707 94.375 l 152.711 94.375
+ l 152.715 94.379 l 152.719 94.379 l 152.719 94.383 l 152.723 94.383 l 152.727
+ 94.387 l 152.73 94.387 l 152.73 94.391 l 152.738 94.391 l 152.738 94.395
+ l 152.742 94.395 l 152.742 94.398 l 152.75 94.398 l 152.75 94.402 l 152.754
+ 94.402 l 152.758 94.406 l 152.762 94.406 l 152.762 94.41 l 152.766 94.41
+ l 152.77 94.414 l 152.773 94.414 l 152.781 94.422 l 152.785 94.422 l 152.793
+ 94.43 l 152.797 94.43 l 152.805 94.438 l 152.809 94.438 l 152.812 94.441
+ l 152.816 94.441 l 152.816 94.445 l 152.824 94.445 l 152.824 94.449 l 152.828
+ 94.449 l 152.828 94.453 l 152.836 94.453 l 152.836 94.457 l 152.84 94.457
+ l 152.844 94.461 l 152.848 94.461 l 152.848 94.465 l 152.852 94.465 l 152.859
+ 94.473 l 152.863 94.473 l 152.871 94.48 l 152.875 94.48 l 152.879 94.484
+ l 152.883 94.484 l 152.883 94.488 l 152.887 94.488 l 152.891 94.492 l 152.895
+ 94.492 l 152.895 94.496 l 152.902 94.496 l 152.902 94.5 l 152.906 94.5 
+l 152.914 94.508 l 152.918 94.508 l 152.926 94.516 l 152.93 94.516 l 152.938
+ 94.523 l 152.941 94.523 l 152.945 94.527 l 152.949 94.527 l 152.949 94.531
+ l 152.953 94.531 l 152.953 94.535 l 152.961 94.535 l 152.961 94.539 l 152.965
+ 94.539 l 152.969 94.543 l 152.973 94.543 l 152.973 94.547 l 152.977 94.547
+ l 152.98 94.551 l 152.984 94.551 l 152.996 94.562 l 153 94.562 l 153.004
+ 94.566 l 153.008 94.566 l 153.008 94.57 l 153.016 94.57 l 153.016 94.574
+ l 153.02 94.574 l 153.02 94.578 l 153.023 94.578 l 153.027 94.582 l 153.031
+ 94.582 l 153.039 94.59 l 153.043 94.59 l 153.051 94.598 l 153.055 94.598
+ l 153.055 94.602 l 153.059 94.602 l 153.062 94.605 l 153.066 94.605 l 153.066
+ 94.609 l 153.074 94.609 l 153.074 94.613 l 153.078 94.613 l 153.078 94.617
+ l 153.082 94.617 l 153.086 94.621 l 153.09 94.621 l 153.098 94.629 l 153.102
+ 94.629 l 153.102 94.633 l 153.105 94.633 l 153.109 94.637 l 153.113 94.637
+ l 153.113 94.641 l 153.121 94.641 l 153.121 94.645 l 153.125 94.645 l 153.125
+ 94.648 l 153.129 94.648 l 153.133 94.652 l 153.137 94.652 l 153.148 94.664
+ l 153.152 94.664 l 153.156 94.668 l 153.16 94.668 l 153.16 94.672 l 153.164
+ 94.672 l 153.164 94.676 l 153.172 94.676 l 153.172 94.68 l 153.176 94.68
+ l 153.18 94.684 l 153.184 94.684 l 153.184 94.688 l 153.188 94.688 l 153.195
+ 94.695 l 153.199 94.695 l 153.203 94.699 l 153.207 94.699 l 153.207 94.703
+ l 153.211 94.703 l 153.211 94.707 l 153.219 94.707 l 153.219 94.711 l 153.223
+ 94.711 l 153.23 94.719 l 153.234 94.719 l 153.242 94.727 l 153.246 94.727
+ l 153.246 94.73 l 153.25 94.73 l 153.254 94.734 l 153.258 94.734 l 153.258
+ 94.738 l 153.262 94.738 l 153.266 94.742 l 153.27 94.742 l 153.27 94.746
+ l 153.273 94.746 l 153.281 94.754 l 153.285 94.754 l 153.285 94.758 l 153.293
+ 94.758 l 153.293 94.762 l 153.297 94.762 l 153.297 94.766 l 153.301 94.766
+ l 153.305 94.77 l 153.309 94.77 l 153.32 94.781 l 153.324 94.781 l 153.328
+ 94.785 l 153.332 94.785 l 153.332 94.789 l 153.336 94.789 l 153.336 94.793
+ l 153.344 94.793 l 153.344 94.797 l 153.348 94.797 l 153.359 94.809 l 153.363
+ 94.809 l 153.367 94.812 l 153.371 94.812 l 153.371 94.816 l 153.375 94.816
+ l 153.375 94.82 l 153.383 94.82 l 153.383 94.824 l 153.387 94.824 l 153.395
+ 94.832 l 153.398 94.832 l 153.398 94.836 l 153.402 94.836 l 153.406 94.84
+ l 153.41 94.84 l 153.41 94.844 l 153.414 94.844 l 153.418 94.848 l 153.422
+ 94.848 l 153.422 94.852 l 153.426 94.852 l 153.434 94.859 l 153.438 94.859
+ l 153.438 94.863 l 153.441 94.863 l 153.445 94.867 l 153.449 94.867 l 153.449
+ 94.871 l 153.453 94.871 l 153.461 94.879 l 153.465 94.879 l 153.473 94.887
+ l 153.477 94.887 l 153.477 94.891 l 153.48 94.891 l 153.484 94.895 l 153.488
+ 94.895 l 153.488 94.898 l 153.492 94.898 l 153.5 94.906 l 153.504 94.906
+ l 153.504 94.91 l 153.508 94.91 l 153.512 94.914 l 153.516 94.914 l 153.516
+ 94.918 l 153.52 94.918 l 153.527 94.926 l 153.531 94.926 l 153.539 94.934
+ l 153.543 94.934 l 153.543 94.938 l 153.547 94.938 l 153.547 94.941 l 153.555
+ 94.941 l 153.555 94.945 l 153.559 94.945 l 153.57 94.957 l 153.574 94.957
+ l 153.578 94.961 l 153.582 94.961 l 153.582 94.965 l 153.586 94.965 l 153.594
+ 94.973 l 153.598 94.973 l 153.605 94.98 l 153.609 94.98 l 153.609 94.984
+ l 153.613 94.984 l 153.613 94.988 l 153.617 94.988 l 153.621 94.992 l 153.625
+ 94.992 l 153.637 95.004 l 153.641 95.004 l 153.641 95.008 l 153.645 95.008
+ l 153.648 95.012 l 153.652 95.012 l 153.652 95.016 l 153.656 95.016 l 153.664
+ 95.023 l 153.668 95.023 l 153.668 95.027 l 153.676 95.027 l 153.676 95.031
+ l 153.68 95.031 l 153.68 95.035 l 153.684 95.035 l 153.691 95.043 l 153.695
+ 95.043 l 153.695 95.047 l 153.699 95.047 l 153.699 95.051 l 153.707 95.051
+ l 153.707 95.055 l 153.711 95.055 l 153.723 95.066 l 153.727 95.066 l 153.727
+ 95.07 l 153.734 95.07 l 153.734 95.074 l 153.738 95.074 l 153.738 95.078
+ l 153.742 95.078 l 153.75 95.086 l 153.754 95.086 l 153.754 95.09 l 153.758
+ 95.09 l 153.762 95.094 l 153.766 95.094 l 153.766 95.098 l 153.77 95.098
+ l 153.777 95.105 l 153.781 95.105 l 153.781 95.109 l 153.785 95.109 l 153.785
+ 95.113 l 153.793 95.113 l 153.793 95.117 l 153.797 95.117 l 153.809 95.129
+ l 153.812 95.129 l 153.812 95.133 l 153.816 95.133 l 153.82 95.137 l 153.824
+ 95.137 l 153.824 95.141 l 153.828 95.141 l 153.836 95.148 l 153.84 95.148
+ l 153.84 95.152 l 153.844 95.152 l 153.844 95.156 l 153.848 95.156 l 153.852
+ 95.16 l 153.855 95.16 l 153.863 95.168 l 153.867 95.168 l 153.867 95.172
+ l 153.871 95.172 l 153.871 95.176 l 153.875 95.176 l 153.883 95.184 l 153.887
+ 95.184 l 153.887 95.188 l 153.891 95.188 l 153.895 95.191 l 153.898 95.191
+ l 153.898 95.195 l 153.902 95.195 l 153.914 95.207 l 153.918 95.207 l 153.918
+ 95.211 l 153.922 95.211 l 153.926 95.215 l 153.93 95.215 l 153.93 95.219
+ l 153.934 95.219 l 153.941 95.227 l 153.945 95.227 l 153.945 95.23 l 153.949
+ 95.23 l 153.949 95.234 l 153.953 95.234 l 153.961 95.242 l 153.965 95.242
+ l 153.969 95.246 l 153.973 95.246 l 153.973 95.25 l 153.977 95.25 l 153.977
+ 95.254 l 153.98 95.254 l 153.988 95.262 l 153.992 95.262 l 153.992 95.266
+ l 153.996 95.266 l 153.996 95.27 l 154 95.27 l 154.008 95.277 l 154.012
+ 95.277 l 154.02 95.285 l 154.023 95.285 l 154.023 95.289 l 154.027 95.289
+ l 154.039 95.301 l 154.043 95.301 l 154.043 95.305 l 154.047 95.305 l 154.055
+ 95.312 l 154.059 95.312 l 154.066 95.32 l 154.07 95.32 l 154.07 95.324 
+l 154.074 95.324 l 154.086 95.336 l 154.09 95.336 l 154.09 95.34 l 154.094
+ 95.34 l 154.105 95.352 l 154.109 95.352 l 154.113 95.355 l 154.117 95.355
+ l 154.117 95.359 l 154.121 95.359 l 154.121 95.363 l 154.125 95.363 l 154.133
+ 95.371 l 154.137 95.371 l 154.137 95.375 l 154.141 95.375 l 154.141 95.379
+ l 154.145 95.379 l 154.152 95.387 l 154.156 95.387 l 154.156 95.391 l 154.16
+ 95.391 l 154.168 95.398 l 154.172 95.398 l 154.18 95.406 l 154.184 95.406
+ l 154.184 95.41 l 154.188 95.41 l 154.188 95.414 l 154.191 95.414 l 154.199
+ 95.422 l 154.203 95.422 l 154.203 95.426 l 154.207 95.426 l 154.207 95.43
+ l 154.211 95.43 l 154.219 95.438 l 154.223 95.438 l 154.223 95.441 l 154.227
+ 95.441 l 154.227 95.445 l 154.23 95.445 l 154.238 95.453 l 154.242 95.453
+ l 154.25 95.461 l 154.254 95.461 l 154.254 95.465 l 154.258 95.465 l 154.266
+ 95.473 l 154.27 95.473 l 154.27 95.477 l 154.273 95.477 l 154.273 95.48
+ l 154.277 95.48 l 154.285 95.488 l 154.289 95.488 l 154.289 95.492 l 154.293
+ 95.492 l 154.293 95.496 l 154.297 95.496 l 154.305 95.504 l 154.309 95.504
+ l 154.309 95.508 l 154.312 95.508 l 154.312 95.512 l 154.316 95.512 l 154.324
+ 95.52 l 154.328 95.52 l 154.328 95.523 l 154.332 95.523 l 154.332 95.527
+ l 154.336 95.527 l 154.344 95.535 l 154.348 95.535 l 154.352 95.539 l 154.355
+ 95.539 l 154.355 95.543 l 154.359 95.543 l 154.359 95.547 l 154.363 95.547
+ l 154.371 95.555 l 154.375 95.555 l 154.375 95.559 l 154.379 95.559 l 154.379
+ 95.562 l 154.383 95.562 l 154.391 95.57 l 154.395 95.57 l 154.395 95.574
+ l 154.398 95.574 l 154.398 95.578 l 154.402 95.578 l 154.41 95.586 l 154.414
+ 95.586 l 154.414 95.59 l 154.418 95.59 l 154.418 95.594 l 154.422 95.594
+ l 154.43 95.602 l 154.434 95.602 l 154.434 95.605 l 154.438 95.605 l 154.438
+ 95.609 l 154.441 95.609 l 154.449 95.617 l 154.453 95.617 l 154.453 95.621
+ l 154.457 95.621 l 154.469 95.633 l 154.473 95.633 l 154.473 95.637 l 154.477
+ 95.637 l 154.488 95.648 l 154.492 95.648 l 154.492 95.652 l 154.496 95.652
+ l 154.508 95.664 l 154.512 95.664 l 154.512 95.668 l 154.516 95.668 l 154.527
+ 95.68 l 154.531 95.68 l 154.531 95.684 l 154.535 95.684 l 154.543 95.691
+ l 154.547 95.691 l 154.547 95.695 l 154.551 95.695 l 154.551 95.699 l 154.555
+ 95.699 l 154.562 95.707 l 154.566 95.707 l 154.566 95.711 l 154.57 95.711
+ l 154.57 95.715 l 154.574 95.715 l 154.582 95.723 l 154.586 95.723 l 154.586
+ 95.727 l 154.59 95.727 l 154.59 95.73 l 154.594 95.73 l 154.602 95.738 
+l 154.605 95.738 l 154.605 95.742 l 154.609 95.742 l 154.609 95.746 l 154.613
+ 95.746 l 154.621 95.754 l 154.625 95.754 l 154.625 95.758 l 154.629 95.758
+ l 154.629 95.762 l 154.633 95.762 l 154.641 95.77 l 154.645 95.77 l 154.645
+ 95.773 l 154.648 95.773 l 154.66 95.785 l 154.664 95.785 l 154.664 95.789
+ l 154.668 95.789 l 154.68 95.801 l 154.684 95.801 l 154.684 95.805 l 154.688
+ 95.809 l 154.691 95.809 l 154.691 95.812 l 154.695 95.812 l 154.695 95.816
+ l 154.699 95.816 l 154.707 95.824 l 154.711 95.824 l 154.711 95.828 l 154.715
+ 95.828 l 154.715 95.832 l 154.719 95.832 l 154.727 95.84 l 154.73 95.84
+ l 154.73 95.844 l 154.734 95.844 l 154.746 95.855 l 154.75 95.855 l 154.75
+ 95.859 l 154.754 95.859 l 154.766 95.871 l 154.77 95.871 l 154.77 95.875
+ l 154.773 95.875 l 154.785 95.887 l 154.789 95.887 l 154.789 95.891 l 154.793
+ 95.895 l 154.797 95.895 l 154.797 95.898 l 154.801 95.898 l 154.801 95.902
+ l 154.805 95.902 l 154.812 95.91 l 154.816 95.91 l 154.816 95.914 l 154.82
+ 95.914 l 154.82 95.918 l 154.824 95.918 l 154.832 95.926 l 154.836 95.926
+ l 154.836 95.93 l 154.84 95.93 l 154.852 95.941 l 154.855 95.941 l 154.855
+ 95.945 l 154.859 95.945 l 154.867 95.953 l 154.867 95.957 l 154.871 95.957
+ l 154.879 95.965 l 154.883 95.965 l 154.883 95.969 l 154.887 95.969 l 154.887
+ 95.973 l 154.891 95.973 l 154.898 95.98 l 154.902 95.98 l 154.902 95.984
+ l 154.906 95.984 l 154.906 95.988 l 154.91 95.988 l 154.918 95.996 l 154.922
+ 95.996 l 154.922 96 l 154.926 96 l 154.93 96.004 l 154.93 96.008 l 154.934
+ 96.008 l 154.934 96.012 l 154.938 96.012 l 154.945 96.02 l 154.949 96.02
+ l 154.949 96.023 l 154.953 96.023 l 154.953 96.027 l 154.957 96.027 l 154.965
+ 96.035 l 154.969 96.035 l 154.969 96.039 l 154.973 96.039 l 154.973 96.043
+ l 154.977 96.043 l 154.996 96.062 l 155 96.062 l 155 96.066 l 155.004 96.066
+ l 155.016 96.078 l 155.02 96.078 l 155.02 96.082 l 155.023 96.082 l 155.043
+ 96.102 l 155.047 96.102 l 155.047 96.105 l 155.051 96.105 l 155.062 96.117
+ l 155.066 96.117 l 155.066 96.121 l 155.07 96.121 l 155.074 96.125 l 155.074
+ 96.129 l 155.078 96.129 l 155.078 96.133 l 155.082 96.133 l 155.09 96.141
+ l 155.094 96.141 l 155.094 96.145 l 155.098 96.145 l 155.098 96.148 l 155.102
+ 96.148 l 155.109 96.156 l 155.113 96.156 l 155.113 96.16 l 155.117 96.164
+ l 155.121 96.164 l 155.121 96.168 l 155.125 96.168 l 155.125 96.172 l 155.129
+ 96.172 l 155.137 96.18 l 155.141 96.18 l 155.141 96.184 l 155.145 96.184
+ l 155.145 96.188 l 155.148 96.188 l 155.152 96.191 l 155.152 96.195 l 155.156
+ 96.195 l 155.168 96.207 l 155.172 96.207 l 155.172 96.211 l 155.176 96.211
+ l 155.195 96.23 l 155.199 96.23 l 155.199 96.234 l 155.203 96.234 l 155.203
+ 96.238 l 155.207 96.238 l 155.215 96.246 l 155.219 96.246 l 155.219 96.25
+ l 155.223 96.25 l 155.227 96.254 l 155.227 96.258 l 155.23 96.258 l 155.23
+ 96.262 l 155.234 96.262 l 155.242 96.27 l 155.246 96.27 l 155.246 96.273
+ l 155.25 96.273 l 155.25 96.277 l 155.254 96.277 l 155.258 96.281 l 155.258
+ 96.285 l 155.262 96.285 l 155.273 96.297 l 155.277 96.297 l 155.277 96.301
+ l 155.281 96.301 l 155.289 96.309 l 155.289 96.312 l 155.293 96.312 l 155.301
+ 96.32 l 155.305 96.32 l 155.305 96.324 l 155.309 96.324 l 155.328 96.344
+ l 155.332 96.344 l 155.332 96.348 l 155.336 96.348 l 155.336 96.352 l 155.34
+ 96.352 l 155.359 96.371 l 155.363 96.371 l 155.363 96.375 l 155.367 96.375
+ l 155.375 96.383 l 155.375 96.387 l 155.379 96.387 l 155.387 96.395 l 155.391
+ 96.395 l 155.391 96.398 l 155.395 96.398 l 155.395 96.402 l 155.398 96.402
+ l 155.402 96.406 l 155.402 96.41 l 155.406 96.41 l 155.414 96.418 l 155.418
+ 96.418 l 155.418 96.422 l 155.422 96.422 l 155.422 96.426 l 155.426 96.426
+ l 155.43 96.43 l 155.43 96.434 l 155.434 96.434 l 155.445 96.445 l 155.449
+ 96.445 l 155.449 96.449 l 155.453 96.449 l 155.457 96.453 l 155.457 96.457
+ l 155.461 96.457 l 155.461 96.461 l 155.465 96.461 l 155.473 96.469 l 155.477
+ 96.469 l 155.477 96.473 l 155.48 96.473 l 155.48 96.477 l 155.484 96.48
+ l 155.488 96.48 l 155.488 96.484 l 155.492 96.484 l 155.5 96.492 l 155.504
+ 96.492 l 155.504 96.496 l 155.512 96.504 l 155.516 96.504 l 155.516 96.508
+ l 155.52 96.508 l 155.539 96.527 l 155.543 96.527 l 155.543 96.531 l 155.547
+ 96.531 l 155.547 96.535 l 155.551 96.535 l 155.555 96.539 l 155.555 96.543
+ l 155.559 96.543 l 155.57 96.555 l 155.574 96.555 l 155.574 96.559 l 155.578
+ 96.562 l 155.582 96.562 l 155.582 96.566 l 155.586 96.566 l 155.586 96.57
+ l 155.59 96.57 l 155.605 96.586 l 155.609 96.586 l 155.609 96.59 l 155.613
+ 96.59 l 155.613 96.594 l 155.617 96.594 l 155.621 96.598 l 155.621 96.602
+ l 155.625 96.602 l 155.637 96.613 l 155.641 96.613 l 155.641 96.617 l 155.645
+ 96.621 l 155.648 96.621 l 155.648 96.625 l 155.652 96.625 l 155.652 96.629
+ l 155.656 96.629 l 155.676 96.648 l 155.68 96.648 l 155.68 96.652 l 155.684
+ 96.652 l 155.688 96.656 l 155.688 96.66 l 155.691 96.66 l 155.711 96.68
+ l 155.715 96.68 l 155.715 96.684 l 155.719 96.684 l 155.719 96.688 l 155.723
+ 96.688 l 155.727 96.691 l 155.727 96.695 l 155.73 96.695 l 155.742 96.707
+ l 155.746 96.707 l 155.746 96.711 l 155.75 96.715 l 155.754 96.715 l 155.754
+ 96.719 l 155.758 96.719 l 155.758 96.723 l 155.762 96.723 l 155.766 96.727
+ l 155.766 96.73 l 155.77 96.73 l 155.789 96.75 l 155.793 96.75 l 155.793
+ 96.754 l 155.797 96.754 l 155.805 96.762 l 155.805 96.766 l 155.809 96.766
+ l 155.816 96.773 l 155.82 96.773 l 155.82 96.777 l 155.828 96.785 l 155.832
+ 96.785 l 155.832 96.789 l 155.836 96.789 l 155.84 96.793 l 155.84 96.797
+ l 155.844 96.797 l 155.844 96.801 l 155.848 96.801 l 155.855 96.809 l 155.859
+ 96.809 l 155.859 96.812 l 155.867 96.82 l 155.871 96.82 l 155.871 96.824
+ l 155.875 96.824 l 155.879 96.828 l 155.879 96.832 l 155.883 96.832 l 155.902
+ 96.852 l 155.906 96.852 l 155.906 96.855 l 155.91 96.855 l 155.91 96.859
+ l 155.914 96.863 l 155.918 96.863 l 155.918 96.867 l 155.922 96.867 l 155.93
+ 96.875 l 155.93 96.879 l 155.934 96.879 l 155.941 96.887 l 155.945 96.887
+ l 155.945 96.891 l 155.953 96.898 l 155.957 96.898 l 155.957 96.902 l 155.961
+ 96.902 l 155.965 96.906 l 155.965 96.91 l 155.969 96.91 l 155.969 96.914
+ l 155.973 96.914 l 155.988 96.93 l 155.992 96.93 l 155.992 96.934 l 155.996
+ 96.934 l 155.996 96.938 l 156 96.941 l 156.004 96.941 l 156.004 96.945 
+l 156.008 96.945 l 156.016 96.953 l 156.016 96.957 l 156.02 96.957 l 156.039
+ 96.977 l 156.043 96.977 l 156.043 96.98 l 156.047 96.984 l 156.051 96.984
+ l 156.051 96.988 l 156.055 96.988 l 156.055 96.992 l 156.059 96.992 l 156.062
+ 96.996 l 156.062 97 l 156.066 97 l 156.074 97.008 l 156.078 97.008 l 156.078
+ 97.012 l 156.086 97.02 l 156.09 97.02 l 156.09 97.023 l 156.094 97.027 
+l 156.098 97.027 l 156.098 97.031 l 156.102 97.031 l 156.102 97.035 l 156.105
+ 97.035 l 156.109 97.039 l 156.109 97.043 l 156.113 97.043 l 156.133 97.062
+ l 156.137 97.062 l 156.137 97.066 l 156.145 97.074 l 156.148 97.074 l 156.148
+ 97.078 l 156.152 97.078 l 156.156 97.082 l 156.156 97.086 l 156.16 97.086
+ l 156.16 97.09 l 156.164 97.09 l 156.168 97.094 l 156.168 97.098 l 156.172
+ 97.098 l 156.18 97.105 l 156.184 97.105 l 156.184 97.109 l 156.191 97.117
+ l 156.195 97.117 l 156.195 97.121 l 156.199 97.125 l 156.203 97.125 l 156.203
+ 97.129 l 156.207 97.129 l 156.207 97.133 l 156.211 97.133 l 156.215 97.137
+ l 156.215 97.141 l 156.219 97.141 l 156.227 97.148 l 156.227 97.152 l 156.23
+ 97.152 l 156.238 97.16 l 156.242 97.16 l 156.242 97.164 l 156.25 97.172
+ l 156.254 97.172 l 156.254 97.176 l 156.258 97.18 l 156.262 97.18 l 156.262
+ 97.184 l 156.266 97.184 l 156.273 97.191 l 156.273 97.195 l 156.277 97.195
+ l 156.305 97.223 l 156.309 97.223 l 156.309 97.227 l 156.312 97.227 l 156.312
+ 97.23 l 156.316 97.234 l 156.32 97.234 l 156.32 97.238 l 156.324 97.238
+ l 156.328 97.242 l 156.328 97.246 l 156.332 97.246 l 156.332 97.25 l 156.336
+ 97.25 l 156.34 97.254 l 156.34 97.258 l 156.344 97.258 l 156.352 97.266
+ l 156.352 97.27 l 156.355 97.27 l 156.363 97.277 l 156.367 97.277 l 156.367
+ 97.281 l 156.371 97.285 l 156.375 97.285 l 156.375 97.289 l 156.379 97.289
+ l 156.379 97.293 l 156.383 97.297 l 156.387 97.297 l 156.387 97.301 l 156.391
+ 97.301 l 156.395 97.305 l 156.395 97.309 l 156.398 97.309 l 156.398 97.312
+ l 156.402 97.312 l 156.406 97.316 l 156.406 97.32 l 156.41 97.32 l 156.418
+ 97.328 l 156.418 97.332 l 156.422 97.332 l 156.43 97.34 l 156.434 97.34
+ l 156.434 97.344 l 156.441 97.352 l 156.445 97.352 l 156.445 97.355 l 156.449
+ 97.359 l 156.453 97.359 l 156.453 97.363 l 156.457 97.363 l 156.461 97.367
+ l 156.461 97.371 l 156.465 97.371 l 156.465 97.375 l 156.469 97.375 l 156.473
+ 97.379 l 156.473 97.383 l 156.477 97.383 l 156.484 97.391 l 156.484 97.395
+ l 156.488 97.395 l 156.516 97.422 l 156.52 97.422 l 156.52 97.426 l 156.527
+ 97.434 l 156.531 97.434 l 156.531 97.438 l 156.535 97.441 l 156.539 97.441
+ l 156.539 97.445 l 156.543 97.445 l 156.543 97.449 l 156.547 97.453 l 156.551
+ 97.453 l 156.551 97.457 l 156.555 97.457 l 156.559 97.461 l 156.559 97.465
+ l 156.562 97.465 l 156.57 97.473 l 156.57 97.477 l 156.574 97.477 l 156.602
+ 97.504 l 156.605 97.504 l 156.605 97.508 l 156.613 97.516 l 156.617 97.516
+ l 156.617 97.52 l 156.621 97.523 l 156.625 97.523 l 156.625 97.527 l 156.629
+ 97.527 l 156.629 97.531 l 156.633 97.535 l 156.637 97.535 l 156.637 97.539
+ l 156.641 97.539 l 156.645 97.543 l 156.645 97.547 l 156.648 97.547 l 156.656
+ 97.555 l 156.656 97.559 l 156.66 97.559 l 156.707 97.605 l 156.711 97.605
+ l 156.711 97.609 l 156.719 97.617 l 156.723 97.617 l 156.723 97.621 l 156.727
+ 97.625 l 156.73 97.625 l 156.73 97.629 l 156.734 97.629 l 156.734 97.633
+ l 156.738 97.637 l 156.742 97.637 l 156.742 97.641 l 156.746 97.645 l 156.75
+ 97.645 l 156.75 97.648 l 156.754 97.648 l 156.758 97.652 l 156.758 97.656
+ l 156.762 97.656 l 156.762 97.66 l 156.766 97.66 l 156.77 97.664 l 156.77
+ 97.668 l 156.773 97.668 l 156.781 97.676 l 156.781 97.68 l 156.785 97.68
+ l 156.801 97.695 l 156.801 97.699 l 156.805 97.699 l 156.832 97.727 l 156.836
+ 97.727 l 156.836 97.73 l 156.852 97.746 l 156.855 97.746 l 156.855 97.75
+ l 156.859 97.754 l 156.863 97.754 l 156.863 97.758 l 156.867 97.758 l 156.867
+ 97.762 l 156.871 97.766 l 156.875 97.766 l 156.875 97.77 l 156.879 97.773
+ l 156.883 97.773 l 156.883 97.777 l 156.887 97.777 l 156.887 97.781 l 156.891
+ 97.785 l 156.895 97.785 l 156.895 97.789 l 156.898 97.789 l 156.902 97.793
+ l 156.902 97.797 l 156.906 97.797 l 156.906 97.801 l 156.91 97.805 l 156.914
+ 97.805 l 156.914 97.809 l 156.918 97.809 l 156.922 97.812 l 156.922 97.816
+ l 156.926 97.816 l 156.926 97.82 l 156.93 97.82 l 156.934 97.824 l 156.934
+ 97.828 l 156.938 97.828 l 156.941 97.832 l 156.941 97.836 l 156.945 97.836
+ l 156.953 97.844 l 156.953 97.848 l 156.957 97.848 l 156.973 97.863 l 156.973
+ 97.867 l 156.977 97.867 l 156.992 97.883 l 156.992 97.887 l 156.996 97.887
+ l 157.012 97.902 l 157.012 97.906 l 157.016 97.906 l 157.051 97.941 l 157.055
+ 97.941 l 157.055 97.945 l 157.07 97.961 l 157.074 97.961 l 157.074 97.965
+ l 157.09 97.98 l 157.094 97.98 l 157.094 97.984 l 157.109 98 l 157.113 
+98 l 157.113 98.004 l 157.129 98.02 l 157.133 98.02 l 157.133 98.023 l 157.137
+ 98.027 l 157.141 98.027 l 157.141 98.031 l 157.148 98.039 l 157.152 98.039
+ l 157.152 98.043 l 157.156 98.047 l 157.16 98.047 l 157.16 98.051 l 157.168
+ 98.059 l 157.172 98.059 l 157.172 98.062 l 157.176 98.066 l 157.18 98.066
+ l 157.18 98.07 l 157.188 98.078 l 157.191 98.078 l 157.191 98.082 l 157.195
+ 98.086 l 157.199 98.086 l 157.199 98.09 l 157.207 98.098 l 157.211 98.098
+ l 157.211 98.102 l 157.215 98.105 l 157.219 98.105 l 157.219 98.109 l 157.234
+ 98.125 l 157.238 98.125 l 157.238 98.129 l 157.242 98.133 l 157.246 98.133
+ l 157.246 98.137 l 157.254 98.145 l 157.258 98.145 l 157.258 98.148 l 157.262
+ 98.152 l 157.266 98.152 l 157.266 98.156 l 157.281 98.172 l 157.285 98.172
+ l 157.285 98.176 l 157.301 98.191 l 157.305 98.191 l 157.305 98.195 l 157.328
+ 98.219 l 157.332 98.219 l 157.332 98.223 l 157.375 98.266 l 157.375 98.27
+ l 157.379 98.27 l 157.395 98.285 l 157.395 98.289 l 157.398 98.289 l 157.402
+ 98.293 l 157.402 98.297 l 157.406 98.297 l 157.414 98.305 l 157.414 98.309
+ l 157.418 98.309 l 157.422 98.312 l 157.422 98.316 l 157.426 98.316 l 157.43
+ 98.32 l 157.43 98.324 l 157.434 98.324 l 157.441 98.332 l 157.441 98.336
+ l 157.445 98.336 l 157.449 98.34 l 157.449 98.344 l 157.453 98.344 l 157.457
+ 98.348 l 157.457 98.352 l 157.461 98.352 l 157.461 98.355 l 157.465 98.355
+ l 157.469 98.359 l 157.469 98.363 l 157.473 98.363 l 157.477 98.367 l 157.477
+ 98.371 l 157.48 98.371 l 157.48 98.375 l 157.484 98.379 l 157.488 98.379
+ l 157.488 98.383 l 157.492 98.387 l 157.496 98.387 l 157.496 98.391 l 157.5
+ 98.391 l 157.5 98.395 l 157.504 98.398 l 157.508 98.398 l 157.508 98.402
+ l 157.512 98.406 l 157.516 98.406 l 157.516 98.41 l 157.52 98.414 l 157.523
+ 98.414 l 157.523 98.418 l 157.531 98.426 l 157.535 98.426 l 157.535 98.43
+ l 157.539 98.434 l 157.543 98.434 l 157.543 98.438 l 157.586 98.48 l 157.586
+ 98.484 l 157.59 98.484 l 157.594 98.488 l 157.594 98.492 l 157.598 98.492
+ l 157.602 98.496 l 157.602 98.5 l 157.605 98.5 l 157.605 98.504 l 157.609
+ 98.504 l 157.613 98.508 l 157.613 98.512 l 157.617 98.512 l 157.621 98.516
+ l 157.621 98.52 l 157.625 98.52 l 157.629 98.523 l 157.629 98.527 l 157.633
+ 98.527 l 157.633 98.531 l 157.637 98.535 l 157.641 98.535 l 157.641 98.539
+ l 157.645 98.539 l 157.648 98.543 l 157.648 98.547 l 157.652 98.547 l 157.652
+ 98.551 l 157.656 98.555 l 157.66 98.555 l 157.66 98.559 l 157.664 98.562
+ l 157.668 98.562 l 157.668 98.566 l 157.719 98.617 l 157.719 98.621 l 157.723
+ 98.621 l 157.727 98.625 l 157.727 98.629 l 157.73 98.629 l 157.734 98.633
+ l 157.734 98.637 l 157.738 98.637 l 157.738 98.641 l 157.742 98.641 l 157.746
+ 98.645 l 157.746 98.648 l 157.75 98.648 l 157.754 98.652 l 157.754 98.656
+ l 157.758 98.656 l 157.758 98.66 l 157.762 98.664 l 157.766 98.664 l 157.766
+ 98.668 l 157.77 98.672 l 157.773 98.672 l 157.773 98.676 l 157.824 98.727
+ l 157.824 98.73 l 157.828 98.73 l 157.832 98.734 l 157.832 98.738 l 157.836
+ 98.738 l 157.84 98.742 l 157.84 98.746 l 157.844 98.746 l 157.844 98.75
+ l 157.848 98.754 l 157.852 98.754 l 157.852 98.758 l 157.855 98.762 l 157.859
+ 98.762 l 157.859 98.766 l 157.867 98.773 l 157.871 98.773 l 157.871 98.777
+ l 157.875 98.781 l 157.879 98.781 l 157.879 98.785 l 157.91 98.816 l 157.91
+ 98.82 l 157.914 98.82 l 157.918 98.824 l 157.918 98.828 l 157.922 98.828
+ l 157.926 98.832 l 157.926 98.836 l 157.93 98.836 l 157.93 98.84 l 157.934
+ 98.844 l 157.938 98.844 l 157.938 98.848 l 157.941 98.852 l 157.945 98.852
+ l 157.945 98.855 l 157.969 98.879 l 157.969 98.883 l 157.973 98.883 l 157.988
+ 98.898 l 157.988 98.902 l 157.992 98.902 l 157.996 98.906 l 157.996 98.91
+ l 158 98.91 l 158.004 98.914 l 158.004 98.918 l 158.008 98.918 l 158.012
+ 98.922 l 158.012 98.926 l 158.016 98.926 l 158.016 98.93 l 158.02 98.934
+ l 158.023 98.934 l 158.023 98.938 l 158.027 98.941 l 158.031 98.941 l 158.031
+ 98.945 l 158.055 98.969 l 158.055 98.973 l 158.059 98.973 l 158.062 98.977
+ l 158.062 98.98 l 158.066 98.98 l 158.07 98.984 l 158.07 98.988 l 158.074
+ 98.988 l 158.074 98.992 l 158.078 98.996 l 158.082 98.996 l 158.082 99 
+l 158.086 99.004 l 158.09 99.004 l 158.09 99.008 l 158.094 99.012 l 158.098
+ 99.012 l 158.098 99.016 l 158.121 99.039 l 158.121 99.043 l 158.125 99.043
+ l 158.129 99.047 l 158.129 99.051 l 158.133 99.051 l 158.137 99.055 l 158.137
+ 99.059 l 158.141 99.059 l 158.141 99.062 l 158.145 99.066 l 158.148 99.066
+ l 158.148 99.07 l 158.152 99.074 l 158.156 99.074 l 158.156 99.078 l 158.18
+ 99.102 l 158.18 99.105 l 158.184 99.105 l 158.188 99.109 l 158.188 99.113
+ l 158.191 99.113 l 158.195 99.117 l 158.195 99.121 l 158.199 99.121 l 158.203
+ 99.125 l 158.203 99.129 l 158.207 99.129 l 158.207 99.133 l 158.211 99.137
+ l 158.215 99.137 l 158.215 99.141 l 158.219 99.145 l 158.223 99.145 l 158.223
+ 99.148 l 158.246 99.172 l 158.246 99.176 l 158.25 99.176 l 158.254 99.18
+ l 158.254 99.184 l 158.258 99.188 l 158.262 99.188 l 158.262 99.191 l 158.293
+ 99.223 l 158.293 99.227 l 158.297 99.227 l 158.301 99.23 l 158.301 99.234
+ l 158.305 99.234 l 158.309 99.238 l 158.309 99.242 l 158.312 99.242 l 158.312
+ 99.246 l 158.316 99.25 l 158.32 99.25 l 158.32 99.254 l 158.324 99.258 
+l 158.328 99.258 l 158.328 99.262 l 158.352 99.285 l 158.352 99.289 l 158.355
+ 99.289 l 158.359 99.293 l 158.359 99.297 l 158.363 99.301 l 158.367 99.301
+ l 158.367 99.305 l 158.398 99.336 l 158.398 99.34 l 158.402 99.34 l 158.406
+ 99.344 l 158.406 99.348 l 158.41 99.348 l 158.414 99.352 l 158.414 99.355
+ l 158.418 99.355 l 158.418 99.359 l 158.422 99.363 l 158.426 99.363 l 158.426
+ 99.367 l 158.438 99.379 l 158.438 99.383 l 158.441 99.383 l 158.445 99.387
+ l 158.445 99.391 l 158.449 99.391 l 158.453 99.395 l 158.453 99.398 l 158.457
+ 99.398 l 158.457 99.402 l 158.461 99.406 l 158.465 99.406 l 158.465 99.41
+ l 158.469 99.414 l 158.473 99.414 l 158.473 99.418 l 158.477 99.422 l 158.48
+ 99.422 l 158.48 99.426 l 158.492 99.438 l 158.492 99.441 l 158.496 99.441
+ l 158.5 99.445 l 158.5 99.449 l 158.504 99.449 l 158.504 99.453 l 158.508
+ 99.457 l 158.512 99.457 l 158.512 99.461 l 158.516 99.465 l 158.52 99.465
+ l 158.52 99.469 l 158.543 99.492 l 158.543 99.496 l 158.547 99.5 l 158.551
+ 99.5 l 158.551 99.504 l 158.555 99.508 l 158.559 99.508 l 158.559 99.512
+ l 158.59 99.543 l 158.59 99.547 l 158.594 99.551 l 158.598 99.551 l 158.598
+ 99.555 l 158.602 99.559 l 158.605 99.559 l 158.605 99.562 l 158.629 99.586
+ l 158.629 99.59 l 158.633 99.594 l 158.637 99.594 l 158.637 99.598 l 158.641
+ 99.602 l 158.645 99.602 l 158.645 99.605 l 158.672 99.633 l 158.672 99.637
+ l 158.676 99.637 l 158.676 99.641 l 158.68 99.645 l 158.684 99.645 l 158.684
+ 99.648 l 158.688 99.652 l 158.691 99.652 l 158.691 99.656 l 158.711 99.676
+ l 158.711 99.68 l 158.715 99.68 l 158.715 99.684 l 158.719 99.688 l 158.723
+ 99.688 l 158.723 99.691 l 158.727 99.695 l 158.73 99.695 l 158.73 99.699
+ l 158.742 99.711 l 158.742 99.715 l 158.746 99.715 l 158.75 99.719 l 158.75
+ 99.723 l 158.754 99.723 l 158.754 99.727 l 158.758 99.73 l 158.762 99.73
+ l 158.762 99.734 l 158.766 99.738 l 158.77 99.738 l 158.77 99.742 l 158.781
+ 99.754 l 158.781 99.758 l 158.785 99.758 l 158.789 99.762 l 158.789 99.766
+ l 158.793 99.766 l 158.797 99.77 l 158.797 99.773 l 158.801 99.773 l 158.801
+ 99.777 l 158.82 99.797 l 158.82 99.801 l 158.824 99.801 l 158.828 99.805
+ l 158.828 99.809 l 158.832 99.809 l 158.836 99.812 l 158.836 99.816 l 158.863
+ 99.844 l 158.863 99.848 l 158.867 99.848 l 158.867 99.852 l 158.871 99.855
+ l 158.875 99.855 l 158.875 99.859 l 158.879 99.863 l 158.883 99.863 l 158.883
+ 99.867 l 158.895 99.879 l 158.895 99.883 l 158.898 99.883 l 158.902 99.887
+ l 158.902 99.891 l 158.906 99.891 l 158.906 99.895 l 158.91 99.898 l 158.914
+ 99.898 l 158.914 99.902 l 158.926 99.914 l 158.926 99.918 l 158.93 99.918
+ l 158.934 99.922 l 158.934 99.926 l 158.938 99.926 l 158.941 99.93 l 158.941
+ 99.934 l 158.969 99.961 l 158.969 99.965 l 158.973 99.965 l 158.973 99.969
+ l 158.977 99.973 l 158.98 99.973 l 158.98 99.977 l 158.984 99.98 l 158.988
+ 99.98 l 158.988 99.984 l 158.992 99.988 l 158.992 99.992 l 158.996 99.992
+ l 159 99.996 l 159 100 l 159.004 100 l 159.008 100.004 l 159.008 100.008
+ l 159.012 100.008 l 159.012 100.012 l 159.031 100.031 l 159.031 100.035
+ l 159.035 100.035 l 159.039 100.039 l 159.039 100.043 l 159.043 100.047
+ l 159.047 100.047 l 159.047 100.051 l 159.051 100.055 l 159.055 100.055
+ l 159.055 100.059 l 159.066 100.07 l 159.066 100.074 l 159.07 100.074 l
+ 159.074 100.078 l 159.074 100.082 l 159.078 100.082 l 159.078 100.086 l
+ 159.098 100.105 l 159.098 100.109 l 159.102 100.109 l 159.105 100.113 l
+ 159.105 100.117 l 159.109 100.121 l 159.113 100.121 l 159.113 100.125 l
+ 159.133 100.145 l 159.133 100.148 l 159.137 100.148 l 159.137 100.152 l
+ 159.141 100.156 l 159.145 100.156 l 159.145 100.16 l 159.164 100.18 l 159.164
+ 100.184 l 159.168 100.188 l 159.172 100.188 l 159.172 100.191 l 159.176
+ 100.195 l 159.18 100.195 l 159.18 100.199 l 159.191 100.211 l 159.191 100.215
+ l 159.195 100.215 l 159.199 100.219 l 159.199 100.223 l 159.203 100.223
+ l 159.203 100.227 l 159.223 100.246 l 159.223 100.25 l 159.227 100.254 
+l 159.23 100.254 l 159.23 100.258 l 159.234 100.262 l 159.238 100.262 l 
+159.238 100.266 l 159.242 100.27 l 159.246 100.27 l 159.246 100.273 l 159.25
+ 100.277 l 159.25 100.281 l 159.254 100.281 l 159.258 100.285 l 159.258 
+100.289 l 159.262 100.289 l 159.266 100.293 l 159.266 100.297 l 159.285 
+100.316 l 159.285 100.32 l 159.289 100.32 l 159.289 100.324 l 159.293 100.328
+ l 159.297 100.328 l 159.297 100.332 l 159.309 100.344 l 159.309 100.348
+ l 159.312 100.348 l 159.316 100.352 l 159.316 100.355 l 159.32 100.359 
+l 159.324 100.359 l 159.324 100.363 l 159.336 100.375 l 159.336 100.379 
+l 159.34 100.379 l 159.344 100.383 l 159.344 100.387 l 159.348 100.387 l
+ 159.352 100.391 l 159.352 100.395 l 159.371 100.414 l 159.371 100.418 l
+ 159.375 100.418 l 159.375 100.422 l 159.379 100.426 l 159.383 100.426 l
+ 159.383 100.43 l 159.395 100.441 l 159.395 100.445 l 159.398 100.445 l 
+159.402 100.449 l 159.402 100.453 l 159.406 100.457 l 159.41 100.457 l 159.41
+ 100.461 l 159.422 100.473 l 159.422 100.477 l 159.426 100.477 l 159.43 
+100.48 l 159.43 100.484 l 159.434 100.484 l 159.438 100.488 l 159.438 100.492
+ l 159.457 100.512 l 159.457 100.516 l 159.461 100.516 l 159.461 100.52 
+l 159.465 100.523 l 159.469 100.523 l 159.469 100.527 l 159.48 100.539 l
+ 159.48 100.543 l 159.484 100.543 l 159.488 100.547 l 159.488 100.551 l 
+159.492 100.555 l 159.496 100.555 l 159.496 100.559 l 159.508 100.57 l 159.508
+ 100.574 l 159.512 100.574 l 159.516 100.578 l 159.516 100.582 l 159.535
+ 100.602 l 159.535 100.605 l 159.539 100.605 l 159.543 100.609 l 159.543
+ 100.613 l 159.547 100.613 l 159.547 100.617 l 159.562 100.633 l 159.562
+ 100.637 l 159.566 100.637 l 159.566 100.641 l 159.57 100.645 l 159.574 
+100.645 l 159.574 100.648 l 159.586 100.66 l 159.586 100.664 l 159.59 100.664
+ l 159.594 100.668 l 159.594 100.672 l 159.598 100.676 l 159.602 100.676
+ l 159.602 100.68 l 159.605 100.684 l 159.605 100.688 l 159.609 100.688 
+l 159.613 100.691 l 159.613 100.695 l 159.617 100.695 l 159.621 100.699 
+l 159.621 100.703 l 159.641 100.723 l 159.641 100.727 l 159.645 100.727 
+l 159.648 100.73 l 159.648 100.734 l 159.668 100.754 l 159.668 100.758 l
+ 159.672 100.758 l 159.672 100.762 l 159.691 100.781 l 159.691 100.785 l
+ 159.695 100.789 l 159.699 100.789 l 159.699 100.793 l 159.703 100.797 l
+ 159.707 100.797 l 159.707 100.801 l 159.711 100.805 l 159.711 100.809 l
+ 159.715 100.809 l 159.719 100.812 l 159.719 100.816 l 159.723 100.82 l 
+159.727 100.82 l 159.727 100.824 l 159.73 100.828 l 159.734 100.828 l 159.734
+ 100.832 l 159.738 100.836 l 159.738 100.84 l 159.742 100.84 l 159.746 100.844
+ l 159.746 100.848 l 159.75 100.852 l 159.754 100.852 l 159.754 100.855 
+l 159.766 100.867 l 159.766 100.871 l 159.77 100.871 l 159.773 100.875 l
+ 159.773 100.879 l 159.785 100.891 l 159.785 100.895 l 159.789 100.895 l
+ 159.793 100.898 l 159.793 100.902 l 159.797 100.902 l 159.797 100.906 l
+ 159.812 100.922 l 159.812 100.926 l 159.816 100.926 l 159.816 100.93 l 
+159.82 100.934 l 159.824 100.934 l 159.824 100.938 l 159.84 100.953 l 159.84
+ 100.957 l 159.844 100.957 l 159.844 100.961 l 159.848 100.965 l 159.852
+ 100.965 l 159.852 100.969 l 159.863 100.98 l 159.863 100.984 l 159.867 
+100.988 l 159.871 100.988 l 159.871 100.992 l 159.883 101.004 l 159.883 
+101.008 l 159.887 101.008 l 159.891 101.012 l 159.891 101.016 l 159.895 
+101.02 l 159.898 101.02 l 159.898 101.023 l 159.902 101.027 l 159.902 101.031
+ l 159.906 101.031 l 159.91 101.035 l 159.91 101.039 l 159.914 101.043 l
+ 159.918 101.043 l 159.918 101.047 l 159.922 101.051 l 159.926 101.051 l
+ 159.926 101.055 l 159.93 101.059 l 159.93 101.062 l 159.934 101.062 l 159.938
+ 101.066 l 159.938 101.07 l 159.941 101.074 l 159.945 101.074 l 159.945 
+101.078 l 159.949 101.082 l 159.949 101.086 l 159.953 101.086 l 159.957 
+101.09 l 159.957 101.094 l 159.961 101.094 l 159.965 101.098 l 159.965 101.102
+ l 159.977 101.113 l 159.977 101.117 l 159.98 101.117 l 159.984 101.121 
+l 159.984 101.125 l 159.996 101.137 l 159.996 101.141 l 160 101.141 l 160.004
+ 101.145 l 160.004 101.148 l 160.008 101.148 l 160.008 101.152 l 160.023
+ 101.168 l 160.023 101.172 l 160.027 101.172 l 160.031 101.176 l 160.031
+ 101.18 l 160.043 101.191 l 160.043 101.195 l 160.047 101.195 l 160.051 
+101.199 l 160.051 101.203 l 160.055 101.203 l 160.055 101.207 l 160.07 101.223
+ l 160.07 101.227 l 160.074 101.227 l 160.074 101.23 l 160.09 101.246 l 
+160.09 101.25 l 160.094 101.25 l 160.094 101.254 l 160.117 101.277 l 160.117
+ 101.281 l 160.121 101.281 l 160.121 101.285 l 160.137 101.301 l 160.137
+ 101.305 l 160.141 101.305 l 160.141 101.309 l 160.156 101.324 l 160.156
+ 101.328 l 160.16 101.328 l 160.16 101.332 l 160.176 101.348 l 160.176 101.352
+ l 160.18 101.352 l 160.18 101.355 l 160.184 101.359 l 160.188 101.359 l
+ 160.188 101.363 l 160.199 101.375 l 160.199 101.379 l 160.203 101.383 l
+ 160.207 101.383 l 160.207 101.387 l 160.223 101.402 l 160.223 101.406 l
+ 160.227 101.406 l 160.227 101.41 l 160.242 101.426 l 160.242 101.43 l 160.246
+ 101.43 l 160.246 101.434 l 160.262 101.449 l 160.262 101.453 l 160.266 
+101.453 l 160.266 101.457 l 160.281 101.473 l 160.281 101.477 l 160.285 
+101.477 l 160.285 101.48 l 160.309 101.504 l 160.309 101.508 l 160.312 101.508
+ l 160.312 101.512 l 160.328 101.527 l 160.328 101.531 l 160.332 101.531
+ l 160.332 101.535 l 160.348 101.551 l 160.348 101.555 l 160.352 101.555
+ l 160.352 101.559 l 160.367 101.574 l 160.367 101.578 l 160.371 101.578
+ l 160.371 101.582 l 160.387 101.598 l 160.387 101.602 l 160.391 101.602
+ l 160.391 101.605 l 160.406 101.621 l 160.406 101.625 l 160.41 101.625 
+l 160.414 101.629 l 160.414 101.633 l 160.426 101.645 l 160.426 101.648 
+l 160.43 101.648 l 160.434 101.652 l 160.434 101.656 l 160.445 101.668 l
+ 160.445 101.672 l 160.449 101.672 l 160.453 101.676 l 160.453 101.68 l 
+160.465 101.691 l 160.465 101.695 l 160.469 101.695 l 160.473 101.699 l 
+160.473 101.703 l 160.484 101.715 l 160.484 101.719 l 160.488 101.719 l 
+160.492 101.723 l 160.492 101.727 l 160.496 101.73 l 160.5 101.73 l 160.5
+ 101.734 l 160.504 101.738 l 160.504 101.742 l 160.508 101.742 l 160.512
+ 101.746 l 160.512 101.75 l 160.523 101.762 l 160.523 101.766 l 160.527 
+101.77 l 160.531 101.77 l 160.531 101.773 l 160.543 101.785 l 160.543 101.789
+ l 160.547 101.793 l 160.551 101.793 l 160.551 101.797 l 160.562 101.809
+ l 160.562 101.812 l 160.566 101.816 l 160.57 101.816 l 160.57 101.82 l 
+160.582 101.832 l 160.582 101.836 l 160.586 101.84 l 160.59 101.84 l 160.59
+ 101.844 l 160.605 101.859 l 160.605 101.863 l 160.609 101.863 l 160.609
+ 101.867 l 160.625 101.883 l 160.625 101.887 l 160.637 101.898 l 160.637
+ 101.902 l 160.641 101.902 l 160.645 101.906 l 160.645 101.91 l 160.656 
+101.922 l 160.656 101.926 l 160.66 101.926 l 160.664 101.93 l 160.664 101.934
+ l 160.676 101.945 l 160.676 101.949 l 160.68 101.949 l 160.684 101.953 
+l 160.684 101.957 l 160.688 101.961 l 160.691 101.961 l 160.691 101.965 
+l 160.695 101.969 l 160.695 101.973 l 160.699 101.977 l 160.703 101.977 
+l 160.703 101.98 l 160.715 101.992 l 160.715 101.996 l 160.719 102 l 160.723
+ 102 l 160.723 102.004 l 160.734 102.016 l 160.734 102.02 l 160.738 102.023
+ l 160.742 102.023 l 160.742 102.027 l 160.754 102.039 l 160.754 102.043
+ l 160.77 102.059 l 160.77 102.062 l 160.773 102.062 l 160.773 102.066 l
+ 160.789 102.082 l 160.789 102.086 l 160.793 102.086 l 160.797 102.09 l 
+160.797 102.094 l 160.809 102.105 l 160.809 102.109 l 160.812 102.113 l 
+160.816 102.113 l 160.816 102.117 l 160.82 102.121 l 160.82 102.125 l 160.824
+ 102.125 l 160.828 102.129 l 160.828 102.133 l 160.832 102.137 l 160.836
+ 102.137 l 160.836 102.141 l 160.84 102.145 l 160.84 102.148 l 160.844 102.148
+ l 160.848 102.152 l 160.848 102.156 l 160.859 102.168 l 160.859 102.172
+ l 160.863 102.176 l 160.867 102.176 l 160.867 102.18 l 160.883 102.195 
+l 160.883 102.199 l 160.887 102.199 l 160.887 102.203 l 160.895 102.211 
+l 160.895 102.215 l 160.898 102.215 l 160.902 102.219 l 160.902 102.223 
+l 160.914 102.234 l 160.914 102.238 l 160.918 102.238 l 160.922 102.242 
+l 160.922 102.246 l 160.934 102.258 l 160.934 102.262 l 160.938 102.266 
+l 160.941 102.266 l 160.941 102.27 l 160.945 102.273 l 160.945 102.277 l
+ 160.949 102.277 l 160.953 102.281 l 160.953 102.285 l 160.957 102.289 l
+ 160.961 102.289 l 160.961 102.293 l 160.965 102.297 l 160.965 102.301 l
+ 160.969 102.305 l 160.973 102.305 l 160.973 102.309 l 160.988 102.324 l
+ 160.988 102.328 l 160.992 102.328 l 160.992 102.332 l 161 102.34 l 161 
+102.344 l 161.004 102.344 l 161.008 102.348 l 161.008 102.352 l 161.02 102.363
+ l 161.02 102.367 l 161.023 102.367 l 161.027 102.371 l 161.027 102.375 
+l 161.031 102.379 l 161.031 102.383 l 161.035 102.383 l 161.039 102.387 
+l 161.039 102.391 l 161.043 102.395 l 161.047 102.395 l 161.047 102.398 
+l 161.051 102.402 l 161.051 102.406 l 161.055 102.406 l 161.059 102.41 l
+ 161.059 102.414 l 161.074 102.43 l 161.074 102.434 l 161.078 102.434 l 
+161.078 102.438 l 161.086 102.445 l 161.086 102.449 l 161.09 102.449 l 161.094
+ 102.453 l 161.094 102.457 l 161.105 102.469 l 161.105 102.473 l 161.109
+ 102.473 l 161.113 102.477 l 161.113 102.48 l 161.117 102.484 l 161.117 
+102.488 l 161.121 102.488 l 161.125 102.492 l 161.125 102.496 l 161.129 
+102.5 l 161.133 102.5 l 161.133 102.504 l 161.137 102.508 l 161.137 102.512
+ l 161.141 102.516 l 161.145 102.516 l 161.145 102.52 l 161.156 102.531 
+l 161.156 102.535 l 161.16 102.539 l 161.164 102.539 l 161.164 102.543 l
+ 161.172 102.551 l 161.172 102.555 l 161.176 102.555 l 161.18 102.559 l 
+161.18 102.562 l 161.191 102.574 l 161.191 102.578 l 161.195 102.582 l 161.199
+ 102.582 l 161.199 102.586 l 161.203 102.59 l 161.203 102.594 l 161.207 
+102.594 l 161.211 102.598 l 161.211 102.602 l 161.223 102.613 l 161.223 
+102.617 l 161.227 102.621 l 161.23 102.621 l 161.23 102.625 l 161.242 102.637
+ l 161.242 102.641 l 161.258 102.656 l 161.258 102.66 l 161.262 102.66 l
+ 161.266 102.664 l 161.266 102.668 l 161.27 102.672 l 161.27 102.676 l 161.273
+ 102.676 l 161.277 102.68 l 161.277 102.684 l 161.281 102.688 l 161.285 
+102.688 l 161.285 102.691 l 161.289 102.695 l 161.289 102.699 l 161.293 
+102.703 l 161.297 102.703 l 161.297 102.707 l 161.309 102.719 l 161.309 
+102.723 l 161.324 102.738 l 161.324 102.742 l 161.336 102.754 l 161.336 
+102.758 l 161.34 102.758 l 161.344 102.762 l 161.344 102.766 l 161.348 102.77
+ l 161.348 102.773 l 161.352 102.773 l 161.355 102.777 l 161.355 102.781
+ l 161.359 102.785 l 161.363 102.785 l 161.363 102.789 l 161.371 102.797
+ l 161.371 102.801 l 161.375 102.801 l 161.375 102.805 l 161.391 102.82 
+l 161.391 102.824 l 161.402 102.836 l 161.402 102.84 l 161.406 102.84 l 
+161.41 102.844 l 161.41 102.848 l 161.414 102.852 l 161.414 102.855 l 161.418
+ 102.855 l 161.422 102.859 l 161.422 102.863 l 161.434 102.875 l 161.434
+ 102.879 l 161.438 102.883 l 161.441 102.883 l 161.441 102.887 l 161.449
+ 102.895 l 161.449 102.898 l 161.453 102.898 l 161.457 102.902 l 161.457
+ 102.906 l 161.469 102.918 l 161.469 102.922 l 161.473 102.926 l 161.477
+ 102.926 l 161.477 102.93 l 161.48 102.934 l 161.48 102.938 l 161.484 102.941
+ l 161.488 102.941 l 161.488 102.945 l 161.5 102.957 l 161.5 102.961 l 161.516
+ 102.977 l 161.516 102.98 l 161.527 102.992 l 161.527 102.996 l 161.531 
+102.996 l 161.535 103 l 161.535 103.004 l 161.539 103.008 l 161.539 103.012
+ l 161.543 103.012 l 161.547 103.016 l 161.547 103.02 l 161.551 103.023 
+l 161.555 103.023 l 161.555 103.027 l 161.562 103.035 l 161.562 103.039 
+l 161.566 103.039 l 161.566 103.043 l 161.574 103.051 l 161.574 103.055 
+l 161.578 103.055 l 161.582 103.059 l 161.582 103.062 l 161.586 103.066 
+l 161.586 103.07 l 161.59 103.07 l 161.594 103.074 l 161.594 103.078 l 161.598
+ 103.082 l 161.602 103.082 l 161.602 103.086 l 161.605 103.09 l 161.605 
+103.094 l 161.609 103.098 l 161.613 103.098 l 161.613 103.102 l 161.621 
+103.109 l 161.621 103.113 l 161.625 103.113 l 161.625 103.117 l 161.641 
+103.133 l 161.641 103.137 l 161.645 103.141 l 161.648 103.141 l 161.648 
+103.145 l 161.652 103.148 l 161.652 103.152 l 161.656 103.156 l 161.66 103.156
+ l 161.66 103.16 l 161.668 103.168 l 161.668 103.172 l 161.672 103.172 l
+ 161.672 103.176 l 161.688 103.191 l 161.688 103.195 l 161.699 103.207 l
+ 161.699 103.211 l 161.703 103.215 l 161.707 103.215 l 161.707 103.219 l
+ 161.711 103.223 l 161.711 103.227 l 161.715 103.23 l 161.719 103.23 l 161.719
+ 103.234 l 161.73 103.246 l 161.73 103.25 l 161.746 103.266 l 161.746 103.27
+ l 161.75 103.273 l 161.754 103.273 l 161.754 103.277 l 161.758 103.281 
+l 161.758 103.285 l 161.762 103.289 l 161.766 103.289 l 161.766 103.293 
+l 161.773 103.301 l 161.773 103.305 l 161.777 103.305 l 161.777 103.309 
+l 161.793 103.324 l 161.793 103.328 l 161.805 103.34 l 161.805 103.344 l
+ 161.809 103.348 l 161.812 103.348 l 161.812 103.352 l 161.816 103.355 l
+ 161.816 103.359 l 161.82 103.363 l 161.824 103.363 l 161.824 103.367 l 
+161.832 103.375 l 161.832 103.379 l 161.836 103.379 l 161.84 103.383 l 161.84
+ 103.387 l 161.844 103.391 l 161.844 103.395 l 161.848 103.395 l 161.852
+ 103.398 l 161.852 103.402 l 161.863 103.414 l 161.863 103.418 l 161.867
+ 103.422 l 161.871 103.422 l 161.871 103.426 l 161.879 103.434 l 161.879
+ 103.438 l 161.883 103.438 l 161.883 103.441 l 161.891 103.449 l 161.891
+ 103.453 l 161.895 103.453 l 161.898 103.457 l 161.898 103.461 l 161.902
+ 103.465 l 161.902 103.469 l 161.906 103.469 l 161.91 103.473 l 161.91 103.477
+ l 161.922 103.488 l 161.922 103.492 l 161.938 103.508 l 161.938 103.512
+ l 161.941 103.516 l 161.945 103.516 l 161.945 103.52 l 161.949 103.523 
+l 161.949 103.527 l 161.953 103.531 l 161.957 103.531 l 161.957 103.535 
+l 161.965 103.543 l 161.965 103.547 l 161.969 103.547 l 161.969 103.551 
+l 161.977 103.559 l 161.977 103.562 l 161.98 103.562 l 161.984 103.566 l
+ 161.984 103.57 l 161.988 103.574 l 161.988 103.578 l 161.992 103.578 l 
+161.996 103.582 l 161.996 103.586 l 162.008 103.598 l 162.008 103.602 l 
+162.023 103.617 l 162.023 103.621 l 162.027 103.625 l 162.031 103.625 l 
+162.031 103.629 l 162.035 103.633 l 162.035 103.637 l 162.039 103.641 l 
+162.043 103.641 l 162.043 103.645 l 162.051 103.652 l 162.051 103.656 l 
+162.055 103.656 l 162.055 103.66 l 162.062 103.668 l 162.062 103.672 l 162.066
+ 103.672 l 162.07 103.676 l 162.07 103.68 l 162.074 103.684 l 162.074 103.688
+ l 162.078 103.688 l 162.082 103.691 l 162.082 103.695 l 162.094 103.707
+ l 162.094 103.711 l 162.109 103.727 l 162.109 103.73 l 162.121 103.742 
+l 162.121 103.746 l 162.125 103.75 l 162.129 103.75 l 162.129 103.754 l 
+162.137 103.762 l 162.137 103.766 l 162.141 103.766 l 162.141 103.77 l 162.148
+ 103.777 l 162.148 103.781 l 162.152 103.781 l 162.156 103.785 l 162.156
+ 103.789 l 162.16 103.793 l 162.16 103.797 l 162.164 103.797 l 162.168 103.801
+ l 162.168 103.805 l 162.18 103.816 l 162.18 103.82 l 162.195 103.836 l 
+162.195 103.84 l 162.207 103.852 l 162.207 103.855 l 162.211 103.859 l 162.215
+ 103.859 l 162.215 103.863 l 162.223 103.871 l 162.223 103.875 l 162.234
+ 103.887 l 162.234 103.891 l 162.238 103.895 l 162.242 103.895 l 162.242
+ 103.898 l 162.246 103.902 l 162.246 103.906 l 162.25 103.91 l 162.254 103.91
+ l 162.254 103.914 l 162.262 103.922 l 162.262 103.926 l 162.266 103.926
+ l 162.266 103.93 l 162.273 103.938 l 162.273 103.941 l 162.277 103.941 
+l 162.281 103.945 l 162.281 103.949 l 162.285 103.953 l 162.285 103.957 
+l 162.289 103.957 l 162.293 103.961 l 162.293 103.965 l 162.301 103.973 
+l 162.301 103.977 l 162.305 103.977 l 162.305 103.98 l 162.312 103.988 l
+ 162.312 103.992 l 162.316 103.992 l 162.32 103.996 l 162.32 104 l 162.332
+ 104.012 l 162.332 104.016 l 162.348 104.031 l 162.348 104.035 l 162.359
+ 104.047 l 162.359 104.051 l 162.371 104.062 l 162.371 104.066 l 162.387
+ 104.082 l 162.387 104.086 l 162.398 104.098 l 162.398 104.102 l 162.402
+ 104.105 l 162.406 104.105 l 162.406 104.109 l 162.41 104.113 l 162.41 104.117
+ l 162.426 104.133 l 162.426 104.137 l 162.43 104.141 l 162.434 104.141 
+l 162.434 104.145 l 162.438 104.148 l 162.438 104.152 l 162.441 104.156 
+l 162.445 104.156 l 162.445 104.16 l 162.453 104.168 l 162.453 104.172 l
+ 162.457 104.172 l 162.457 104.176 l 162.465 104.184 l 162.465 104.188 l
+ 162.469 104.191 l 162.473 104.191 l 162.473 104.195 l 162.477 104.199 l
+ 162.477 104.203 l 162.48 104.207 l 162.484 104.207 l 162.484 104.211 l 
+162.492 104.219 l 162.492 104.223 l 162.496 104.223 l 162.496 104.227 l 
+162.504 104.234 l 162.504 104.238 l 162.508 104.242 l 162.512 104.242 l 
+162.512 104.246 l 162.52 104.254 l 162.52 104.258 l 162.523 104.258 l 162.523
+ 104.262 l 162.531 104.27 l 162.531 104.273 l 162.535 104.273 l 162.539 
+104.277 l 162.539 104.281 l 162.543 104.285 l 162.543 104.289 l 162.547 
+104.293 l 162.551 104.293 l 162.551 104.297 l 162.559 104.305 l 162.559 
+104.309 l 162.562 104.309 l 162.562 104.312 l 162.57 104.32 l 162.57 104.324
+ l 162.574 104.328 l 162.578 104.328 l 162.578 104.332 l 162.582 104.336
+ l 162.582 104.34 l 162.586 104.344 l 162.59 104.344 l 162.59 104.348 l 
+162.598 104.355 l 162.598 104.359 l 162.602 104.359 l 162.602 104.363 l 
+162.609 104.371 l 162.609 104.375 l 162.613 104.379 l 162.617 104.379 l 
+162.617 104.383 l 162.625 104.391 l 162.625 104.395 l 162.629 104.395 l 
+162.629 104.398 l 162.637 104.406 l 162.637 104.41 l 162.641 104.414 l 162.645
+ 104.414 l 162.645 104.418 l 162.648 104.422 l 162.648 104.426 l 162.652
+ 104.43 l 162.656 104.43 l 162.656 104.434 l 162.664 104.441 l 162.664 104.445
+ l 162.676 104.457 l 162.676 104.461 l 162.68 104.465 l 162.684 104.465 
+l 162.684 104.469 l 162.688 104.473 l 162.688 104.477 l 162.703 104.492 
+l 162.703 104.496 l 162.707 104.5 l 162.711 104.5 l 162.711 104.504 l 162.715
+ 104.508 l 162.715 104.512 l 162.73 104.527 l 162.73 104.531 l 162.742 104.543
+ l 162.742 104.547 l 162.754 104.559 l 162.754 104.562 l 162.77 104.578 
+l 162.77 104.582 l 162.773 104.586 l 162.773 104.59 l 162.777 104.59 l 162.781
+ 104.594 l 162.781 104.598 l 162.793 104.609 l 162.793 104.613 l 162.801
+ 104.621 l 162.801 104.625 l 162.805 104.625 l 162.809 104.629 l 162.809
+ 104.633 l 162.82 104.645 l 162.82 104.648 l 162.828 104.656 l 162.828 104.66
+ l 162.832 104.66 l 162.836 104.664 l 162.836 104.668 l 162.84 104.672 l
+ 162.84 104.676 l 162.844 104.68 l 162.848 104.68 l 162.848 104.684 l 162.855
+ 104.691 l 162.855 104.695 l 162.859 104.695 l 162.859 104.699 l 162.867
+ 104.707 l 162.867 104.711 l 162.871 104.715 l 162.875 104.715 l 162.875
+ 104.719 l 162.879 104.723 l 162.879 104.727 l 162.895 104.742 l 162.895
+ 104.746 l 162.898 104.75 l 162.902 104.75 l 162.902 104.754 l 162.906 104.758
+ l 162.906 104.762 l 162.922 104.777 l 162.922 104.781 l 162.926 104.785
+ l 162.926 104.789 l 162.93 104.789 l 162.934 104.793 l 162.934 104.797 
+l 162.945 104.809 l 162.945 104.812 l 162.953 104.82 l 162.953 104.824 l
+ 162.957 104.824 l 162.961 104.828 l 162.961 104.832 l 162.965 104.836 l
+ 162.965 104.84 l 162.969 104.844 l 162.973 104.844 l 162.973 104.848 l 
+162.98 104.855 l 162.98 104.859 l 162.984 104.859 l 162.984 104.863 l 162.992
+ 104.871 l 162.992 104.875 l 162.996 104.879 l 163 104.879 l 163 104.883
+ l 163.008 104.891 l 163.008 104.895 l 163.02 104.906 l 163.02 104.91 l 
+163.031 104.922 l 163.031 104.926 l 163.047 104.941 l 163.047 104.945 l 
+163.051 104.949 l 163.051 104.953 l 163.055 104.953 l 163.059 104.957 l 
+163.059 104.961 l 163.066 104.969 l 163.066 104.973 l 163.07 104.973 l 163.07
+ 104.977 l 163.078 104.984 l 163.078 104.988 l 163.082 104.992 l 163.086
+ 104.992 l 163.086 104.996 l 163.094 105.004 l 163.094 105.008 l 163.105
+ 105.02 l 163.105 105.023 l 163.109 105.027 l 163.113 105.027 l 163.113 
+105.031 l 163.117 105.035 l 163.117 105.039 l 163.133 105.055 l 163.133 
+105.059 l 163.137 105.062 l 163.137 105.066 l 163.141 105.066 l 163.145 
+105.07 l 163.145 105.074 l 163.152 105.082 l 163.152 105.086 l 163.156 105.086
+ l 163.156 105.09 l 163.164 105.098 l 163.164 105.102 l 163.168 105.105 
+l 163.172 105.105 l 163.172 105.109 l 163.176 105.113 l 163.176 105.117 
+l 163.191 105.133 l 163.191 105.137 l 163.203 105.148 l 163.203 105.152 
+l 163.211 105.16 l 163.211 105.164 l 163.215 105.164 l 163.219 105.168 l
+ 163.219 105.172 l 163.223 105.176 l 163.223 105.18 l 163.227 105.184 l 
+163.23 105.184 l 163.23 105.188 l 163.238 105.195 l 163.238 105.199 l 163.242
+ 105.199 l 163.242 105.203 l 163.25 105.211 l 163.25 105.215 l 163.254 105.219
+ l 163.258 105.219 l 163.258 105.223 l 163.262 105.227 l 163.262 105.23 
+l 163.277 105.246 l 163.277 105.25 l 163.289 105.262 l 163.289 105.266 l
+ 163.297 105.273 l 163.297 105.277 l 163.301 105.277 l 163.305 105.281 l
+ 163.305 105.285 l 163.309 105.289 l 163.309 105.293 l 163.312 105.297 l
+ 163.316 105.297 l 163.316 105.301 l 163.324 105.309 l 163.324 105.312 l
+ 163.336 105.324 l 163.336 105.328 l 163.348 105.34 l 163.348 105.344 l 
+163.355 105.352 l 163.355 105.355 l 163.359 105.359 l 163.363 105.359 l 
+163.363 105.363 l 163.367 105.367 l 163.367 105.371 l 163.383 105.387 l 
+163.383 105.391 l 163.395 105.402 l 163.395 105.406 l 163.402 105.414 l 
+163.402 105.418 l 163.406 105.418 l 163.41 105.422 l 163.41 105.426 l 163.414
+ 105.43 l 163.414 105.434 l 163.418 105.438 l 163.422 105.438 l 163.422 
+105.441 l 163.43 105.449 l 163.43 105.453 l 163.441 105.465 l 163.441 105.469
+ l 163.453 105.48 l 163.453 105.484 l 163.461 105.492 l 163.461 105.496 
+l 163.465 105.496 l 163.469 105.5 l 163.469 105.504 l 163.477 105.512 l 
+163.477 105.516 l 163.48 105.516 l 163.48 105.52 l 163.488 105.527 l 163.488
+ 105.531 l 163.5 105.543 l 163.5 105.547 l 163.508 105.555 l 163.508 105.559
+ l 163.512 105.559 l 163.516 105.562 l 163.516 105.566 l 163.52 105.57 l
+ 163.52 105.574 l 163.523 105.578 l 163.527 105.578 l 163.527 105.582 l 
+163.535 105.59 l 163.535 105.594 l 163.547 105.605 l 163.547 105.609 l 163.559
+ 105.621 l 163.559 105.625 l 163.566 105.633 l 163.566 105.637 l 163.57 
+105.641 l 163.574 105.641 l 163.574 105.645 l 163.582 105.652 l 163.582 
+105.656 l 163.594 105.668 l 163.594 105.672 l 163.605 105.684 l 163.605 
+105.688 l 163.613 105.695 l 163.613 105.699 l 163.617 105.699 l 163.621 
+105.703 l 163.621 105.707 l 163.625 105.711 l 163.625 105.715 l 163.641 
+105.73 l 163.641 105.734 l 163.645 105.738 l 163.645 105.742 l 163.648 105.742
+ l 163.652 105.746 l 163.652 105.75 l 163.66 105.758 l 163.66 105.762 l 
+163.664 105.762 l 163.668 105.766 l 163.668 105.77 l 163.672 105.773 l 163.672
+ 105.777 l 163.688 105.793 l 163.688 105.797 l 163.691 105.801 l 163.691
+ 105.805 l 163.695 105.805 l 163.699 105.809 l 163.699 105.812 l 163.707
+ 105.82 l 163.707 105.824 l 163.719 105.836 l 163.719 105.84 l 163.73 105.852
+ l 163.73 105.855 l 163.738 105.863 l 163.738 105.867 l 163.742 105.867 
+l 163.746 105.871 l 163.746 105.875 l 163.75 105.879 l 163.75 105.883 l 
+163.766 105.898 l 163.766 105.902 l 163.777 105.914 l 163.777 105.918 l 
+163.785 105.926 l 163.785 105.93 l 163.789 105.934 l 163.793 105.934 l 163.793
+ 105.938 l 163.797 105.941 l 163.797 105.945 l 163.812 105.961 l 163.812
+ 105.965 l 163.816 105.969 l 163.816 105.973 l 163.82 105.977 l 163.824 
+105.977 l 163.824 105.98 l 163.832 105.988 l 163.832 105.992 l 163.844 106.004
+ l 163.844 106.008 l 163.852 106.016 l 163.852 106.02 l 163.855 106.02 l
+ 163.859 106.023 l 163.859 106.027 l 163.863 106.031 l 163.863 106.035 l
+ 163.867 106.039 l 163.871 106.039 l 163.871 106.043 l 163.879 106.051 l
+ 163.879 106.055 l 163.883 106.059 l 163.883 106.062 l 163.887 106.062 l
+ 163.891 106.066 l 163.891 106.07 l 163.898 106.078 l 163.898 106.082 l 
+163.902 106.082 l 163.902 106.086 l 163.91 106.094 l 163.91 106.098 l 163.922
+ 106.109 l 163.922 106.113 l 163.93 106.121 l 163.93 106.125 l 163.934 106.125
+ l 163.938 106.129 l 163.938 106.133 l 163.941 106.137 l 163.941 106.141
+ l 163.957 106.156 l 163.957 106.16 l 163.965 106.168 l 163.965 106.172 
+l 163.969 106.172 l 163.969 106.176 l 163.977 106.184 l 163.977 106.188 
+l 163.98 106.191 l 163.984 106.191 l 163.984 106.195 l 163.988 106.199 l
+ 163.988 106.203 l 163.996 106.211 l 163.996 106.215 l 164 106.215 l 164.004
+ 106.219 l 164.004 106.223 l 164.008 106.227 l 164.008 106.23 l 164.023 
+106.246 l 164.023 106.25 l 164.027 106.254 l 164.027 106.258 l 164.031 106.258
+ l 164.035 106.262 l 164.035 106.266 l 164.043 106.273 l 164.043 106.277
+ l 164.047 106.281 l 164.051 106.281 l 164.051 106.285 l 164.055 106.289
+ l 164.055 106.293 l 164.062 106.301 l 164.062 106.305 l 164.066 106.305
+ l 164.07 106.309 l 164.07 106.312 l 164.074 106.316 l 164.074 106.32 l 
+164.09 106.336 l 164.09 106.34 l 164.094 106.344 l 164.094 106.348 l 164.098
+ 106.348 l 164.102 106.352 l 164.102 106.355 l 164.109 106.363 l 164.109
+ 106.367 l 164.121 106.379 l 164.121 106.383 l 164.129 106.391 l 164.129
+ 106.395 l 164.133 106.395 l 164.133 106.398 l 164.141 106.406 l 164.141
+ 106.41 l 164.156 106.426 l 164.156 106.43 l 164.16 106.434 l 164.16 106.438
+ l 164.164 106.441 l 164.168 106.441 l 164.168 106.445 l 164.176 106.453
+ l 164.176 106.457 l 164.18 106.461 l 164.18 106.465 l 164.184 106.465 l
+ 164.188 106.469 l 164.188 106.473 l 164.195 106.48 l 164.195 106.484 l 
+164.199 106.484 l 164.199 106.488 l 164.207 106.496 l 164.207 106.5 l 164.219
+ 106.512 l 164.219 106.516 l 164.227 106.523 l 164.227 106.527 l 164.23 
+106.531 l 164.234 106.531 l 164.234 106.535 l 164.242 106.543 l 164.242 
+106.547 l 164.246 106.551 l 164.246 106.555 l 164.25 106.555 l 164.254 106.559
+ l 164.254 106.562 l 164.262 106.57 l 164.262 106.574 l 164.273 106.586 
+l 164.273 106.59 l 164.281 106.598 l 164.281 106.602 l 164.285 106.602 l
+ 164.285 106.605 l 164.293 106.613 l 164.293 106.617 l 164.305 106.629 l
+ 164.305 106.633 l 164.312 106.641 l 164.312 106.645 l 164.316 106.648 l
+ 164.32 106.648 l 164.32 106.652 l 164.324 106.656 l 164.324 106.66 l 164.332
+ 106.668 l 164.332 106.672 l 164.336 106.672 l 164.34 106.676 l 164.34 106.68
+ l 164.348 106.688 l 164.348 106.691 l 164.359 106.703 l 164.359 106.707
+ l 164.367 106.715 l 164.367 106.719 l 164.371 106.719 l 164.371 106.723
+ l 164.379 106.73 l 164.379 106.734 l 164.391 106.746 l 164.391 106.75 l
+ 164.398 106.758 l 164.398 106.762 l 164.402 106.766 l 164.406 106.766 l
+ 164.406 106.77 l 164.41 106.773 l 164.41 106.777 l 164.418 106.785 l 164.418
+ 106.789 l 164.422 106.793 l 164.426 106.793 l 164.426 106.797 l 164.434
+ 106.805 l 164.434 106.809 l 164.438 106.812 l 164.438 106.816 l 164.441
+ 106.816 l 164.445 106.82 l 164.445 106.824 l 164.453 106.832 l 164.453 
+106.836 l 164.465 106.848 l 164.465 106.852 l 164.473 106.859 l 164.473 
+106.863 l 164.477 106.863 l 164.477 106.867 l 164.484 106.875 l 164.484 
+106.879 l 164.496 106.891 l 164.496 106.895 l 164.504 106.902 l 164.504 
+106.906 l 164.508 106.91 l 164.512 106.91 l 164.512 106.914 l 164.516 106.918
+ l 164.516 106.922 l 164.523 106.93 l 164.523 106.934 l 164.527 106.938 
+l 164.531 106.938 l 164.531 106.941 l 164.539 106.949 l 164.539 106.953 
+l 164.543 106.957 l 164.543 106.961 l 164.547 106.961 l 164.551 106.965 
+l 164.551 106.969 l 164.559 106.977 l 164.559 106.98 l 164.57 106.992 l 
+164.57 106.996 l 164.578 107.004 l 164.578 107.008 l 164.59 107.02 l 164.59
+ 107.023 l 164.598 107.031 l 164.598 107.035 l 164.602 107.035 l 164.602
+ 107.039 l 164.609 107.047 l 164.609 107.051 l 164.625 107.066 l 164.625
+ 107.07 l 164.629 107.074 l 164.629 107.078 l 164.645 107.094 l 164.645 
+107.098 l 164.648 107.102 l 164.648 107.105 l 164.652 107.109 l 164.656 
+107.109 l 164.656 107.113 l 164.664 107.121 l 164.664 107.125 l 164.668 
+107.129 l 164.668 107.133 l 164.672 107.133 l 164.676 107.137 l 164.676 
+107.141 l 164.684 107.148 l 164.684 107.152 l 164.688 107.156 l 164.688 
+107.16 l 164.691 107.16 l 164.695 107.164 l 164.695 107.168 l 164.703 107.176
+ l 164.703 107.18 l 164.715 107.191 l 164.715 107.195 l 164.723 107.203 
+l 164.723 107.207 l 164.727 107.211 l 164.73 107.211 l 164.73 107.215 l 
+164.734 107.219 l 164.734 107.223 l 164.742 107.23 l 164.742 107.234 l 164.746
+ 107.234 l 164.75 107.238 l 164.75 107.242 l 164.754 107.246 l 164.754 107.25
+ l 164.762 107.258 l 164.762 107.262 l 164.766 107.262 l 164.77 107.266 
+l 164.77 107.27 l 164.773 107.273 l 164.773 107.277 l 164.789 107.293 l 
+164.789 107.297 l 164.793 107.301 l 164.793 107.305 l 164.809 107.32 l 164.809
+ 107.324 l 164.816 107.332 l 164.816 107.336 l 164.82 107.336 l 164.82 107.34
+ l 164.828 107.348 l 164.828 107.352 l 164.836 107.359 l 164.836 107.363
+ l 164.84 107.363 l 164.84 107.367 l 164.848 107.375 l 164.848 107.379 l
+ 164.855 107.387 l 164.855 107.391 l 164.859 107.391 l 164.859 107.395 l
+ 164.867 107.402 l 164.867 107.406 l 164.879 107.418 l 164.879 107.422 l
+ 164.887 107.43 l 164.887 107.434 l 164.898 107.445 l 164.898 107.449 l 
+164.906 107.457 l 164.906 107.461 l 164.922 107.477 l 164.922 107.48 l 164.926
+ 107.484 l 164.926 107.488 l 164.941 107.504 l 164.941 107.508 l 164.945
+ 107.512 l 164.945 107.516 l 164.949 107.52 l 164.953 107.52 l 164.953 107.523
+ l 164.961 107.531 l 164.961 107.535 l 164.965 107.539 l 164.965 107.543
+ l 164.969 107.547 l 164.973 107.547 l 164.973 107.551 l 164.98 107.559 
+l 164.98 107.562 l 164.984 107.566 l 164.984 107.57 l 164.988 107.574 l 
+164.992 107.574 l 164.992 107.578 l 165 107.586 l 165 107.59 l 165.008 107.598
+ l 165.008 107.602 l 165.012 107.602 l 165.012 107.605 l 165.02 107.613 
+l 165.02 107.617 l 165.027 107.625 l 165.027 107.629 l 165.031 107.629 l
+ 165.031 107.633 l 165.039 107.641 l 165.039 107.645 l 165.051 107.656 l
+ 165.051 107.66 l 165.059 107.668 l 165.059 107.672 l 165.07 107.684 l 165.07
+ 107.688 l 165.078 107.695 l 165.078 107.699 l 165.09 107.711 l 165.09 107.715
+ l 165.098 107.723 l 165.098 107.727 l 165.113 107.742 l 165.113 107.746
+ l 165.117 107.75 l 165.117 107.754 l 165.133 107.77 l 165.133 107.773 l
+ 165.137 107.777 l 165.137 107.781 l 165.152 107.797 l 165.152 107.801 l
+ 165.156 107.805 l 165.156 107.809 l 165.172 107.824 l 165.172 107.828 l
+ 165.176 107.832 l 165.176 107.836 l 165.191 107.852 l 165.191 107.855 l
+ 165.199 107.863 l 165.199 107.867 l 165.211 107.879 l 165.211 107.883 l
+ 165.219 107.891 l 165.219 107.895 l 165.23 107.906 l 165.23 107.91 l 165.238
+ 107.918 l 165.238 107.922 l 165.25 107.934 l 165.25 107.938 l 165.258 107.945
+ l 165.258 107.949 l 165.262 107.953 l 165.262 107.957 l 165.266 107.957
+ l 165.27 107.961 l 165.27 107.965 l 165.277 107.973 l 165.277 107.977 l
+ 165.281 107.98 l 165.281 107.984 l 165.285 107.984 l 165.289 107.988 l 
+165.289 107.992 l 165.297 108 l 165.297 108.004 l 165.309 108.016 l 165.309
+ 108.02 l 165.316 108.027 l 165.316 108.031 l 165.328 108.043 l 165.328 
+108.047 l 165.336 108.055 l 165.336 108.059 l 165.344 108.066 l 165.344 
+108.07 l 165.348 108.07 l 165.348 108.074 l 165.355 108.082 l 165.355 108.086
+ l 165.363 108.094 l 165.363 108.098 l 165.367 108.098 l 165.367 108.102
+ l 165.375 108.109 l 165.375 108.113 l 165.383 108.121 l 165.383 108.125
+ l 165.387 108.125 l 165.391 108.129 l 165.391 108.133 l 165.395 108.137
+ l 165.395 108.141 l 165.402 108.148 l 165.402 108.152 l 165.406 108.156
+ l 165.41 108.156 l 165.41 108.16 l 165.414 108.164 l 165.414 108.168 l 
+165.422 108.176 l 165.422 108.18 l 165.426 108.184 l 165.43 108.184 l 165.43
+ 108.188 l 165.434 108.191 l 165.434 108.195 l 165.441 108.203 l 165.441
+ 108.207 l 165.445 108.211 l 165.449 108.211 l 165.449 108.215 l 165.453
+ 108.219 l 165.453 108.223 l 165.461 108.23 l 165.461 108.234 l 165.473 
+108.246 l 165.473 108.25 l 165.48 108.258 l 165.48 108.262 l 165.496 108.277
+ l 165.496 108.281 l 165.5 108.285 l 165.5 108.289 l 165.508 108.297 l 165.508
+ 108.301 l 165.512 108.301 l 165.516 108.305 l 165.516 108.309 l 165.52 
+108.312 l 165.52 108.316 l 165.527 108.324 l 165.527 108.328 l 165.531 108.328
+ l 165.535 108.332 l 165.535 108.336 l 165.539 108.34 l 165.539 108.344 
+l 165.547 108.352 l 165.547 108.355 l 165.551 108.359 l 165.555 108.359 
+l 165.555 108.363 l 165.559 108.367 l 165.559 108.371 l 165.566 108.379 
+l 165.566 108.383 l 165.57 108.387 l 165.574 108.387 l 165.574 108.391 l
+ 165.582 108.398 l 165.582 108.402 l 165.586 108.406 l 165.586 108.41 l 
+165.602 108.426 l 165.602 108.43 l 165.605 108.434 l 165.605 108.438 l 165.613
+ 108.445 l 165.613 108.449 l 165.617 108.449 l 165.621 108.453 l 165.621
+ 108.457 l 165.625 108.461 l 165.625 108.465 l 165.633 108.473 l 165.633
+ 108.477 l 165.637 108.477 l 165.641 108.48 l 165.641 108.484 l 165.645 
+108.488 l 165.645 108.492 l 165.652 108.5 l 165.652 108.504 l 165.656 108.508
+ l 165.66 108.508 l 165.66 108.512 l 165.664 108.516 l 165.664 108.52 l 
+165.672 108.527 l 165.672 108.531 l 165.688 108.547 l 165.688 108.551 l 
+165.691 108.555 l 165.691 108.559 l 165.699 108.566 l 165.699 108.57 l 165.703
+ 108.57 l 165.707 108.574 l 165.707 108.578 l 165.711 108.582 l 165.711 
+108.586 l 165.719 108.594 l 165.719 108.598 l 165.723 108.598 l 165.727 
+108.602 l 165.727 108.605 l 165.73 108.609 l 165.73 108.613 l 165.738 108.621
+ l 165.738 108.625 l 165.742 108.629 l 165.746 108.629 l 165.746 108.633
+ l 165.75 108.637 l 165.75 108.641 l 165.754 108.645 l S
+165.754 108.645 m 165.758 108.648 l 165.758 108.652 l 165.77 108.664 l 
+165.77 108.668 l 165.777 108.676 l 165.777 108.68 l 165.785 108.688 l 165.785
+ 108.691 l 165.789 108.691 l 165.793 108.695 l 165.793 108.699 l 165.797
+ 108.703 l 165.797 108.707 l 165.805 108.715 l 165.805 108.719 l 165.809
+ 108.723 l 165.812 108.723 l 165.812 108.727 l 165.816 108.73 l 165.816 
+108.734 l 165.824 108.742 l 165.824 108.746 l 165.836 108.758 l 165.836 
+108.762 l 165.844 108.77 l 165.844 108.773 l 165.852 108.781 l 165.852 108.785
+ l 165.855 108.785 l 165.855 108.789 l 165.863 108.797 l 165.863 108.801
+ l 165.871 108.809 l 165.871 108.812 l 165.875 108.816 l 165.879 108.816
+ l 165.879 108.82 l 165.883 108.824 l 165.883 108.828 l 165.891 108.836 
+l 165.891 108.84 l 165.902 108.852 l 165.902 108.855 l 165.91 108.863 l 
+165.91 108.867 l 165.918 108.875 l 165.918 108.879 l 165.922 108.879 l 165.922
+ 108.883 l 165.93 108.891 l 165.93 108.895 l 165.938 108.902 l 165.938 108.906
+ l 165.949 108.918 l 165.949 108.922 l 165.957 108.93 l 165.957 108.934 
+l 165.961 108.938 l 165.961 108.941 l 165.965 108.941 l 165.969 108.945 
+l 165.969 108.949 l 165.977 108.957 l 165.977 108.961 l 165.984 108.969 
+l 165.984 108.973 l 165.996 108.984 l 165.996 108.988 l 166.004 108.996 
+l 166.004 109 l 166.008 109.004 l 166.008 109.008 l 166.012 109.008 l 166.016
+ 109.012 l 166.016 109.016 l 166.023 109.023 l 166.023 109.027 l 166.027
+ 109.031 l 166.027 109.035 l 166.031 109.039 l 166.035 109.039 l 166.035
+ 109.043 l 166.043 109.051 l 166.043 109.055 l 166.047 109.059 l 166.047
+ 109.062 l 166.062 109.078 l 166.062 109.082 l 166.07 109.09 l 166.07 109.094
+ l 166.074 109.098 l 166.074 109.102 l 166.078 109.105 l 166.082 109.105
+ l 166.082 109.109 l 166.09 109.117 l 166.09 109.121 l 166.094 109.125 l
+ 166.094 109.129 l 166.109 109.145 l 166.109 109.148 l 166.113 109.152 l
+ 166.113 109.156 l 166.121 109.164 l 166.121 109.168 l 166.125 109.172 l
+ 166.129 109.172 l 166.129 109.176 l 166.133 109.18 l 166.133 109.184 l 
+166.141 109.191 l 166.141 109.195 l 166.152 109.207 l 166.152 109.211 l 
+166.16 109.219 l 166.16 109.223 l 166.168 109.23 l 166.168 109.234 l 166.172
+ 109.238 l 166.176 109.238 l 166.176 109.242 l 166.18 109.246 l 166.18 109.25
+ l 166.188 109.258 l 166.188 109.262 l 166.199 109.273 l 166.199 109.277
+ l 166.207 109.285 l 166.207 109.289 l 166.215 109.297 l 166.215 109.301
+ l 166.227 109.312 l 166.227 109.316 l 166.234 109.324 l 166.234 109.328
+ l 166.238 109.332 l 166.238 109.336 l 166.242 109.336 l 166.246 109.34 
+l 166.246 109.344 l 166.254 109.352 l 166.254 109.355 l 166.262 109.363 
+l 166.262 109.367 l 166.273 109.379 l 166.273 109.383 l 166.281 109.391 
+l 166.281 109.395 l 166.285 109.398 l 166.285 109.402 l 166.289 109.406 
+l 166.293 109.406 l 166.293 109.41 l 166.301 109.418 l 166.301 109.422 l
+ 166.305 109.426 l 166.305 109.43 l 166.32 109.445 l 166.32 109.449 l 166.324
+ 109.453 l 166.324 109.457 l 166.332 109.465 l 166.332 109.469 l 166.336
+ 109.473 l 166.34 109.473 l 166.34 109.477 l 166.344 109.48 l 166.344 109.484
+ l 166.352 109.492 l 166.352 109.496 l 166.359 109.504 l 166.359 109.508
+ l 166.363 109.508 l 166.367 109.512 l 166.367 109.516 l 166.371 109.52 
+l 166.371 109.523 l 166.379 109.531 l 166.379 109.535 l 166.391 109.547 
+l 166.391 109.551 l 166.398 109.559 l 166.398 109.562 l 166.406 109.57 l
+ 166.406 109.574 l 166.418 109.586 l 166.418 109.59 l 166.426 109.598 l 
+166.426 109.602 l 166.43 109.605 l 166.43 109.609 l 166.434 109.613 l 166.438
+ 109.613 l 166.438 109.617 l 166.445 109.625 l 166.445 109.629 l 166.453
+ 109.637 l 166.453 109.641 l 166.457 109.645 l 166.457 109.648 l 166.461
+ 109.648 l 166.465 109.652 l 166.465 109.656 l 166.473 109.664 l 166.473
+ 109.668 l 166.477 109.672 l 166.477 109.676 l 166.492 109.691 l 166.492
+ 109.695 l 166.496 109.699 l 166.496 109.703 l 166.504 109.711 l 166.504
+ 109.715 l 166.508 109.719 l 166.512 109.719 l 166.512 109.723 l 166.516
+ 109.727 l 166.516 109.73 l 166.523 109.738 l 166.523 109.742 l 166.531 
+109.75 l 166.531 109.754 l 166.535 109.754 l 166.535 109.758 l 166.543 109.766
+ l 166.543 109.77 l 166.551 109.777 l 166.551 109.781 l 166.562 109.793 
+l 166.562 109.797 l 166.57 109.805 l 166.57 109.809 l 166.578 109.816 l 
+166.578 109.82 l 166.59 109.832 l 166.59 109.836 l 166.598 109.844 l 166.598
+ 109.848 l 166.602 109.852 l 166.602 109.855 l 166.605 109.859 l 166.609
+ 109.859 l 166.609 109.863 l 166.617 109.871 l 166.617 109.875 l 166.621
+ 109.879 l 166.621 109.883 l 166.629 109.891 l 166.629 109.895 l 166.633
+ 109.898 l 166.637 109.898 l 166.637 109.902 l 166.645 109.91 l 166.645 
+109.914 l 166.648 109.918 l 166.648 109.922 l 166.656 109.93 l 166.656 109.934
+ l 166.66 109.934 l 166.664 109.938 l 166.664 109.941 l 166.668 109.945 
+l 166.668 109.949 l 166.676 109.957 l 166.676 109.961 l 166.684 109.969 
+l 166.684 109.973 l 166.688 109.973 l 166.688 109.977 l 166.695 109.984 
+l 166.695 109.988 l 166.703 109.996 l 166.703 110 l 166.707 110.004 l 166.707
+ 110.008 l 166.711 110.008 l 166.715 110.012 l 166.715 110.016 l 166.723
+ 110.023 l 166.723 110.027 l 166.727 110.031 l 166.727 110.035 l 166.742
+ 110.051 l 166.742 110.055 l 166.75 110.062 l 166.75 110.066 l 166.754 110.07
+ l 166.754 110.074 l 166.77 110.09 l 166.77 110.094 l 166.773 110.098 l 
+166.773 110.102 l 166.781 110.109 l 166.781 110.113 l 166.793 110.125 l 
+166.793 110.129 l 166.801 110.137 l 166.801 110.141 l 166.809 110.148 l 
+166.809 110.152 l 166.82 110.164 l 166.82 110.168 l 166.828 110.176 l 166.828
+ 110.18 l 166.836 110.188 l 166.836 110.191 l 166.848 110.203 l 166.848 
+110.207 l 166.855 110.215 l 166.855 110.219 l 166.859 110.223 l 166.859 
+110.227 l 166.875 110.242 l 166.875 110.246 l 166.879 110.25 l 166.879 110.254
+ l 166.887 110.262 l 166.887 110.266 l 166.891 110.27 l 166.895 110.27 l
+ 166.895 110.273 l 166.898 110.277 l 166.898 110.281 l 166.906 110.289 l
+ 166.906 110.293 l 166.914 110.301 l 166.914 110.305 l 166.926 110.316 l
+ 166.926 110.32 l 166.934 110.328 l 166.934 110.332 l 166.941 110.34 l 166.941
+ 110.344 l 166.953 110.355 l 166.953 110.359 l 166.961 110.367 l 166.961
+ 110.371 l 166.965 110.375 l 166.965 110.379 l 166.98 110.395 l 166.98 110.398
+ l 166.984 110.402 l 166.984 110.406 l 166.992 110.414 l 166.992 110.418
+ l 167.004 110.43 l 167.004 110.434 l 167.012 110.441 l 167.012 110.445 
+l 167.02 110.453 l 167.02 110.457 l 167.031 110.469 l 167.031 110.473 l 
+167.039 110.48 l 167.039 110.484 l 167.047 110.492 l 167.047 110.496 l 167.051
+ 110.5 l 167.051 110.504 l 167.055 110.504 l 167.059 110.508 l 167.059 110.512
+ l 167.066 110.52 l 167.066 110.523 l 167.07 110.527 l 167.07 110.531 l 
+167.078 110.539 l 167.078 110.543 l 167.082 110.543 l 167.086 110.547 l 
+167.086 110.551 l 167.09 110.555 l 167.09 110.559 l 167.098 110.566 l 167.098
+ 110.57 l 167.105 110.578 l 167.105 110.582 l 167.117 110.594 l 167.117 
+110.598 l 167.125 110.605 l 167.125 110.609 l 167.133 110.617 l 167.133 
+110.621 l 167.145 110.633 l 167.145 110.637 l 167.152 110.645 l 167.152 
+110.648 l 167.156 110.652 l 167.156 110.656 l 167.172 110.672 l 167.172 
+110.676 l 167.176 110.68 l 167.176 110.684 l 167.184 110.691 l 167.184 110.695
+ l 167.191 110.703 l 167.191 110.707 l 167.195 110.707 l 167.195 110.711
+ l 167.203 110.719 l 167.203 110.723 l 167.211 110.73 l 167.211 110.734 
+l 167.219 110.742 l 167.219 110.746 l 167.223 110.746 l 167.223 110.75 l
+ 167.23 110.758 l 167.23 110.762 l 167.238 110.77 l 167.238 110.773 l 167.242
+ 110.777 l 167.242 110.781 l 167.246 110.785 l 167.25 110.785 l 167.25 110.789
+ l 167.258 110.797 l 167.258 110.801 l 167.262 110.805 l 167.262 110.809
+ l 167.27 110.816 l 167.27 110.82 l 167.281 110.832 l 167.281 110.836 l 
+167.289 110.844 l 167.289 110.848 l 167.297 110.855 l 167.297 110.859 l 
+167.301 110.863 l 167.301 110.867 l 167.305 110.871 l 167.309 110.871 l 
+167.309 110.875 l 167.316 110.883 l 167.316 110.887 l 167.324 110.895 l 
+167.324 110.898 l 167.328 110.902 l 167.328 110.906 l 167.332 110.91 l 167.336
+ 110.91 l 167.336 110.914 l 167.344 110.922 l 167.344 110.926 l 167.348 
+110.93 l 167.348 110.934 l 167.355 110.941 l 167.355 110.945 l 167.367 110.957
+ l 167.367 110.961 l 167.375 110.969 l 167.375 110.973 l 167.383 110.98 
+l 167.383 110.984 l 167.387 110.988 l 167.387 110.992 l 167.391 110.996 
+l 167.395 110.996 l 167.395 111 l 167.402 111.008 l 167.402 111.012 l 167.41
+ 111.02 l 167.41 111.023 l 167.414 111.027 l 167.414 111.031 l 167.43 111.047
+ l 167.43 111.051 l 167.434 111.055 l 167.434 111.059 l 167.441 111.066 
+l 167.441 111.07 l 167.449 111.078 l 167.449 111.082 l 167.453 111.082 l
+ 167.453 111.086 l 167.461 111.094 l 167.461 111.098 l 167.469 111.105 l
+ 167.469 111.109 l 167.473 111.113 l 167.473 111.117 l 167.488 111.133 l
+ 167.488 111.137 l 167.492 111.141 l 167.492 111.145 l 167.5 111.152 l 167.5
+ 111.156 l 167.508 111.164 l 167.508 111.168 l 167.512 111.168 l 167.516
+ 111.172 l 167.516 111.176 l 167.52 111.18 l 167.52 111.184 l 167.527 111.191
+ l 167.527 111.195 l 167.535 111.203 l 167.535 111.207 l 167.547 111.219
+ l 167.547 111.223 l 167.555 111.23 l 167.555 111.234 l 167.559 111.238 
+l 167.559 111.242 l 167.566 111.25 l 167.566 111.254 l 167.57 111.254 l 
+167.574 111.258 l 167.574 111.262 l 167.578 111.266 l 167.578 111.27 l 167.586
+ 111.277 l 167.586 111.281 l 167.594 111.289 l 167.594 111.293 l 167.598
+ 111.297 l 167.602 111.297 l 167.602 111.301 l 167.605 111.305 l 167.605
+ 111.309 l 167.613 111.316 l 167.613 111.32 l 167.621 111.328 l 167.621 
+111.332 l 167.625 111.336 l 167.625 111.34 l 167.629 111.344 l 167.633 111.344
+ l 167.633 111.348 l 167.641 111.355 l 167.641 111.359 l 167.645 111.363
+ l 167.645 111.367 l 167.652 111.375 l 167.652 111.379 l 167.664 111.391
+ l 167.664 111.395 l 167.672 111.402 l 167.672 111.406 l 167.68 111.414 
+l 167.68 111.418 l 167.684 111.422 l 167.684 111.426 l 167.688 111.43 l 
+167.691 111.43 l 167.691 111.434 l 167.699 111.441 l 167.699 111.445 l 167.707
+ 111.453 l 167.707 111.457 l 167.711 111.461 l 167.711 111.465 l 167.719
+ 111.473 l 167.719 111.477 l 167.723 111.477 l 167.727 111.48 l 167.727 
+111.484 l 167.73 111.488 l 167.73 111.492 l 167.738 111.5 l 167.738 111.504
+ l 167.746 111.512 l 167.746 111.516 l 167.75 111.52 l 167.75 111.523 l 
+167.754 111.523 l 167.758 111.527 l 167.758 111.531 l 167.766 111.539 l 
+167.766 111.543 l 167.77 111.547 l 167.77 111.551 l 167.777 111.559 l 167.777
+ 111.562 l 167.781 111.566 l 167.785 111.566 l 167.785 111.57 l 167.793 
+111.578 l 167.793 111.582 l 167.797 111.586 l 167.797 111.59 l 167.805 111.598
+ l 167.805 111.602 l 167.812 111.609 l 167.812 111.613 l 167.816 111.613
+ l 167.816 111.617 l 167.824 111.625 l 167.824 111.629 l 167.832 111.637
+ l 167.832 111.641 l 167.836 111.645 l 167.836 111.648 l 167.844 111.656
+ l 167.844 111.66 l 167.848 111.66 l 167.852 111.664 l 167.852 111.668 l
+ 167.855 111.672 l 167.855 111.676 l 167.863 111.684 l 167.863 111.688 l
+ 167.871 111.695 l 167.871 111.699 l 167.875 111.703 l 167.875 111.707 l
+ 167.879 111.707 l 167.883 111.711 l 167.883 111.715 l 167.891 111.723 l
+ 167.891 111.727 l 167.898 111.734 l 167.898 111.738 l 167.902 111.742 l
+ 167.902 111.746 l 167.918 111.762 l 167.918 111.766 l 167.922 111.77 l 
+167.922 111.773 l 167.93 111.781 l 167.93 111.785 l 167.938 111.793 l 167.938
+ 111.797 l 167.949 111.809 l 167.949 111.812 l 167.957 111.82 l 167.957 
+111.824 l 167.961 111.828 l 167.961 111.832 l 167.969 111.84 l 167.969 111.844
+ l 167.973 111.848 l 167.977 111.848 l 167.977 111.852 l 167.98 111.855 
+l 167.98 111.859 l 167.988 111.867 l 167.988 111.871 l 167.996 111.879 l
+ 167.996 111.883 l 168.004 111.891 l 168.004 111.895 l 168.008 111.895 l
+ 168.008 111.898 l 168.016 111.906 l 168.016 111.91 l 168.023 111.918 l 
+168.023 111.922 l 168.027 111.926 l 168.027 111.93 l 168.035 111.938 l 168.035
+ 111.941 l 168.039 111.945 l 168.043 111.945 l 168.043 111.949 l 168.047
+ 111.953 l 168.047 111.957 l 168.055 111.965 l 168.055 111.969 l 168.062
+ 111.977 l 168.062 111.98 l 168.066 111.984 l 168.066 111.988 l 168.07 111.992
+ l 168.074 111.992 l 168.074 111.996 l 168.082 112.004 l 168.082 112.008
+ l 168.09 112.016 l 168.09 112.02 l 168.094 112.023 l 168.094 112.027 l 
+168.102 112.035 l 168.102 112.039 l 168.105 112.043 l 168.109 112.043 l 
+168.109 112.047 l 168.113 112.051 l 168.113 112.055 l 168.121 112.062 l 
+168.121 112.066 l 168.129 112.074 l 168.129 112.078 l 168.133 112.082 l 
+168.133 112.086 l 168.137 112.09 l 168.141 112.09 l 168.141 112.094 l 168.148
+ 112.102 l 168.148 112.105 l 168.152 112.109 l 168.152 112.113 l 168.16 
+112.121 l 168.16 112.125 l 168.168 112.133 l 168.168 112.137 l 168.18 112.148
+ l 168.18 112.152 l 168.188 112.16 l 168.188 112.164 l 168.195 112.172 l
+ 168.195 112.176 l 168.199 112.18 l 168.199 112.184 l 168.215 112.199 l 
+168.215 112.203 l 168.219 112.207 l 168.219 112.211 l 168.227 112.219 l 
+168.227 112.223 l 168.234 112.23 l 168.234 112.234 l 168.246 112.246 l 168.246
+ 112.25 l 168.254 112.258 l 168.254 112.262 l 168.258 112.266 l 168.258 
+112.27 l 168.266 112.277 l 168.266 112.281 l 168.281 112.297 l 168.281 112.301
+ l 168.285 112.305 l 168.285 112.309 l 168.293 112.316 l 168.293 112.32 
+l 168.301 112.328 l 168.301 112.332 l 168.305 112.336 l 168.305 112.34 l
+ 168.309 112.34 l 168.312 112.344 l 168.312 112.348 l 168.32 112.355 l 168.32
+ 112.359 l 168.324 112.363 l 168.324 112.367 l 168.332 112.375 l 168.332
+ 112.379 l 168.34 112.387 l 168.34 112.391 l 168.344 112.391 l 168.344 112.395
+ l 168.352 112.402 l 168.352 112.406 l 168.359 112.414 l 168.359 112.418
+ l 168.363 112.422 l 168.363 112.426 l 168.371 112.434 l 168.371 112.438
+ l 168.387 112.453 l 168.387 112.457 l 168.391 112.461 l 168.391 112.465
+ l 168.398 112.473 l 168.398 112.477 l 168.406 112.484 l 168.406 112.488
+ l 168.41 112.492 l 168.41 112.496 l 168.414 112.496 l 168.418 112.5 l 168.418
+ 112.504 l 168.426 112.512 l 168.426 112.516 l 168.43 112.52 l 168.43 112.523
+ l 168.438 112.531 l 168.438 112.535 l 168.445 112.543 l 168.445 112.547
+ l 168.449 112.547 l 168.449 112.551 l 168.457 112.559 l 168.457 112.562
+ l 168.465 112.57 l 168.465 112.574 l 168.473 112.582 l 168.473 112.586 
+l 168.477 112.59 l 168.477 112.594 l 168.492 112.609 l 168.492 112.613 l
+ 168.496 112.617 l 168.496 112.621 l 168.504 112.629 l 168.504 112.633 l
+ 168.512 112.641 l 168.512 112.645 l 168.516 112.648 l 168.516 112.652 l
+ 168.52 112.656 l 168.523 112.656 l 168.523 112.66 l 168.531 112.668 l 168.531
+ 112.672 l 168.535 112.676 l 168.535 112.68 l 168.543 112.688 l 168.543 
+112.691 l 168.551 112.699 l 168.551 112.703 l 168.562 112.715 l 168.562 
+112.719 l 168.57 112.727 l 168.57 112.73 l 168.578 112.738 l 168.578 112.742
+ l 168.582 112.746 l 168.582 112.75 l 168.59 112.758 l 168.59 112.762 l 
+168.594 112.762 l 168.598 112.766 l 168.598 112.77 l 168.602 112.773 l 168.602
+ 112.777 l 168.609 112.785 l 168.609 112.789 l 168.617 112.797 l 168.617
+ 112.801 l 168.621 112.805 l 168.621 112.809 l 168.637 112.824 l 168.637
+ 112.828 l 168.641 112.832 l 168.641 112.836 l 168.648 112.844 l 168.648
+ 112.848 l 168.656 112.855 l 168.656 112.859 l 168.664 112.867 l 168.664
+ 112.871 l 168.668 112.871 l 168.668 112.875 l 168.676 112.883 l 168.676
+ 112.887 l 168.684 112.895 l 168.684 112.898 l 168.688 112.902 l 168.688
+ 112.906 l 168.695 112.914 l 168.695 112.918 l 168.707 112.93 l 168.707 
+112.934 l 168.715 112.941 l 168.715 112.945 l 168.723 112.953 l 168.723 
+112.957 l 168.727 112.961 l 168.727 112.965 l 168.734 112.973 l 168.734 
+112.977 l 168.738 112.98 l 168.742 112.98 l 168.742 112.984 l 168.746 112.988
+ l 168.746 112.992 l 168.754 113 l 168.754 113.004 l 168.762 113.012 l 168.762
+ 113.016 l 168.77 113.023 l 168.77 113.027 l 168.773 113.031 l 168.773 113.035
+ l 168.777 113.039 l 168.781 113.039 l 168.781 113.043 l 168.789 113.051
+ l 168.789 113.055 l 168.793 113.059 l 168.793 113.062 l 168.801 113.07 
+l 168.801 113.074 l 168.809 113.082 l 168.809 113.086 l 168.812 113.09 l
+ 168.812 113.094 l 168.816 113.094 l 168.82 113.098 l 168.82 113.102 l 168.828
+ 113.109 l 168.828 113.113 l 168.832 113.117 l 168.832 113.121 l 168.84 
+113.129 l 168.84 113.133 l 168.848 113.141 l 168.848 113.145 l 168.859 113.156
+ l 168.859 113.16 l 168.867 113.168 l 168.867 113.172 l 168.875 113.18 l
+ 168.875 113.184 l 168.879 113.188 l 168.879 113.191 l 168.887 113.199 l
+ 168.887 113.203 l 168.898 113.215 l 168.898 113.219 l 168.906 113.227 l
+ 168.906 113.23 l 168.914 113.238 l 168.914 113.242 l 168.918 113.246 l 
+168.918 113.25 l 168.926 113.258 l 168.926 113.262 l 168.93 113.266 l 168.934
+ 113.266 l 168.934 113.27 l 168.938 113.273 l 168.938 113.277 l 168.945 
+113.285 l 168.945 113.289 l 168.953 113.297 l 168.953 113.301 l 168.961 
+113.309 l 168.961 113.312 l 168.965 113.316 l 168.965 113.32 l 168.969 113.324
+ l 168.973 113.324 l 168.973 113.328 l 168.98 113.336 l 168.98 113.34 l 
+168.984 113.344 l 168.984 113.348 l 168.992 113.355 l 168.992 113.359 l 
+169 113.367 l 169 113.371 l 169.004 113.375 l 169.004 113.379 l 169.02 113.395
+ l 169.02 113.398 l 169.023 113.402 l 169.023 113.406 l 169.031 113.414 
+l 169.031 113.418 l 169.039 113.426 l 169.039 113.43 l 169.047 113.438 l
+ 169.047 113.441 l 169.059 113.453 l 169.059 113.457 l 169.066 113.465 l
+ 169.066 113.469 l 169.07 113.473 l 169.07 113.477 l 169.078 113.484 l 169.078
+ 113.488 l 169.086 113.496 l 169.086 113.5 l 169.098 113.512 l 169.098 113.516
+ l 169.105 113.523 l 169.105 113.527 l 169.109 113.531 l 169.109 113.535
+ l 169.117 113.543 l 169.117 113.547 l 169.125 113.555 l 169.125 113.559
+ l 169.129 113.562 l 169.129 113.566 l 169.133 113.566 l 169.137 113.57 
+l 169.137 113.574 l 169.145 113.582 l 169.145 113.586 l 169.152 113.594 
+l 169.152 113.598 l 169.156 113.602 l 169.156 113.605 l 169.164 113.613 
+l 169.164 113.617 l 169.176 113.629 l 169.176 113.633 l 169.184 113.641 
+l 169.184 113.645 l 169.191 113.652 l 169.191 113.656 l 169.195 113.66 l
+ 169.195 113.664 l 169.203 113.672 l 169.203 113.676 l 169.211 113.684 l
+ 169.211 113.688 l 169.215 113.688 l 169.215 113.691 l 169.223 113.699 l
+ 169.223 113.703 l 169.23 113.711 l 169.23 113.715 l 169.238 113.723 l 169.238
+ 113.727 l 169.242 113.73 l 169.242 113.734 l 169.25 113.742 l 169.25 113.746
+ l 169.254 113.75 l 169.258 113.75 l 169.258 113.754 l 169.262 113.758 l
+ 169.262 113.762 l 169.27 113.77 l 169.27 113.773 l 169.277 113.781 l 169.277
+ 113.785 l 169.281 113.789 l 169.281 113.793 l 169.289 113.801 l 169.289
+ 113.805 l 169.301 113.816 l 169.301 113.82 l 169.309 113.828 l 169.309 
+113.832 l 169.316 113.84 l 169.316 113.844 l 169.32 113.848 l 169.32 113.852
+ l 169.328 113.859 l 169.328 113.863 l 169.336 113.871 l 169.336 113.875
+ l 169.34 113.875 l 169.344 113.879 l 169.344 113.883 l 169.348 113.887 
+l 169.348 113.891 l 169.355 113.898 l 169.355 113.902 l 169.363 113.91 l
+ 169.363 113.914 l 169.367 113.918 l 169.367 113.922 l 169.375 113.93 l 
+169.375 113.934 l 169.379 113.938 l 169.383 113.938 l 169.383 113.941 l 
+169.387 113.945 l 169.387 113.949 l 169.395 113.957 l 169.395 113.961 l 
+169.402 113.969 l 169.402 113.973 l 169.406 113.977 l 169.406 113.98 l 169.414
+ 113.988 l 169.414 113.992 l 169.422 114 l 169.422 114.004 l 169.426 114.004
+ l 169.43 114.008 l 169.43 114.012 l 169.434 114.016 l 169.434 114.02 l 
+169.441 114.027 l 169.441 114.031 l 169.449 114.039 l 169.449 114.043 l 
+169.453 114.047 l 169.453 114.051 l 169.461 114.059 l 169.461 114.062 l 
+169.473 114.074 l 169.473 114.078 l 169.48 114.086 l 169.48 114.09 l 169.488
+ 114.098 l 169.488 114.102 l 169.492 114.105 l 169.492 114.109 l 169.5 114.117
+ l 169.5 114.121 l 169.508 114.129 l 169.508 114.133 l 169.512 114.133 l
+ 169.512 114.137 l 169.52 114.145 l 169.52 114.148 l 169.527 114.156 l 169.527
+ 114.16 l 169.535 114.168 l 169.535 114.172 l 169.539 114.176 l 169.539 
+114.18 l 169.547 114.188 l 169.547 114.191 l 169.559 114.203 l 169.559 114.207
+ l 169.566 114.215 l 169.566 114.219 l 169.574 114.227 l 169.574 114.23 
+l 169.578 114.234 l 169.578 114.238 l 169.586 114.246 l 169.586 114.25 l
+ 169.594 114.258 l 169.594 114.262 l 169.598 114.266 l 169.598 114.27 l 
+169.602 114.27 l 169.605 114.273 l 169.605 114.277 l 169.613 114.285 l 169.613
+ 114.289 l 169.621 114.297 l 169.621 114.301 l 169.625 114.305 l 169.625
+ 114.309 l 169.633 114.316 l 169.633 114.32 l 169.641 114.328 l 169.641 
+114.332 l 169.652 114.344 l 169.652 114.348 l 169.66 114.355 l 169.66 114.359
+ l 169.664 114.363 l 169.664 114.367 l 169.672 114.375 l 169.672 114.379
+ l 169.68 114.387 l 169.68 114.391 l 169.684 114.395 l 169.684 114.398 l
+ 169.688 114.402 l 169.691 114.402 l 169.691 114.406 l 169.699 114.414 l
+ 169.699 114.418 l 169.703 114.422 l 169.703 114.426 l 169.711 114.434 l
+ 169.711 114.438 l 169.719 114.445 l 169.719 114.449 l 169.727 114.457 l
+ 169.727 114.461 l 169.73 114.465 l 169.73 114.469 l 169.734 114.473 l 169.738
+ 114.473 l 169.738 114.477 l 169.746 114.484 l 169.746 114.488 l 169.75 
+114.492 l 169.75 114.496 l 169.758 114.504 l 169.758 114.508 l 169.766 114.516
+ l 169.766 114.52 l 169.77 114.523 l 169.77 114.527 l 169.777 114.535 l 
+169.777 114.539 l 169.781 114.543 l 169.785 114.543 l 169.785 114.547 l 
+169.789 114.551 l 169.789 114.555 l 169.797 114.562 l 169.797 114.566 l 
+169.805 114.574 l 169.805 114.578 l 169.812 114.586 l 169.812 114.59 l 169.816
+ 114.594 l 169.816 114.598 l 169.824 114.605 l 169.824 114.609 l 169.828
+ 114.613 l 169.832 114.613 l 169.832 114.617 l 169.836 114.621 l 169.836
+ 114.625 l 169.844 114.633 l 169.844 114.637 l 169.852 114.645 l 169.852
+ 114.648 l 169.855 114.652 l 169.855 114.656 l 169.863 114.664 l 169.863
+ 114.668 l 169.871 114.676 l 169.871 114.68 l 169.883 114.691 l 169.883 
+114.695 l 169.891 114.703 l 169.891 114.707 l 169.895 114.711 l 169.895 
+114.715 l 169.902 114.723 l 169.902 114.727 l 169.91 114.734 l 169.91 114.738
+ l 169.918 114.746 l 169.918 114.75 l 169.93 114.762 l 169.93 114.766 l 
+169.938 114.773 l 169.938 114.777 l 169.941 114.781 l 169.941 114.785 l 
+169.949 114.793 l 169.949 114.797 l 169.957 114.805 l 169.957 114.809 l 
+169.961 114.812 l 169.961 114.816 l 169.969 114.824 l 169.969 114.828 l 
+169.973 114.828 l 169.977 114.832 l 169.977 114.836 l 169.98 114.84 l 169.98
+ 114.844 l 169.988 114.852 l 169.988 114.855 l 169.996 114.863 l 169.996
+ 114.867 l 170.004 114.875 l 170.004 114.879 l 170.008 114.883 l 170.008
+ 114.887 l 170.016 114.895 l 170.016 114.898 l 170.02 114.902 l 170.023 
+114.902 l 170.023 114.906 l 170.027 114.91 l 170.027 114.914 l 170.035 114.922
+ l 170.035 114.926 l 170.043 114.934 l 170.043 114.938 l 170.047 114.941
+ l 170.047 114.945 l 170.055 114.953 l 170.055 114.957 l 170.062 114.965
+ l 170.062 114.969 l 170.066 114.973 l 170.066 114.977 l 170.07 114.977 
+l 170.074 114.98 l 170.074 114.984 l 170.082 114.992 l 170.082 114.996 l
+ 170.086 115 l 170.086 115.004 l 170.094 115.012 l 170.094 115.016 l 170.102
+ 115.023 l 170.102 115.027 l 170.109 115.035 l 170.109 115.039 l 170.113
+ 115.043 l 170.113 115.047 l 170.117 115.051 l 170.121 115.051 l 170.121
+ 115.055 l 170.129 115.062 l 170.129 115.066 l 170.133 115.07 l 170.133 
+115.074 l 170.141 115.082 l 170.141 115.086 l 170.148 115.094 l 170.148 
+115.098 l 170.152 115.102 l 170.152 115.105 l 170.16 115.113 l 170.16 115.117
+ l 170.172 115.129 l 170.172 115.133 l 170.18 115.141 l 170.18 115.145 l
+ 170.188 115.152 l 170.188 115.156 l 170.195 115.164 l 170.195 115.168 l
+ 170.199 115.172 l 170.199 115.176 l 170.207 115.184 l 170.207 115.188 l
+ 170.215 115.195 l 170.215 115.199 l 170.227 115.211 l 170.227 115.215 l
+ 170.234 115.223 l 170.234 115.227 l 170.238 115.23 l 170.238 115.234 l 
+170.246 115.242 l 170.246 115.246 l 170.254 115.254 l 170.254 115.258 l 
+170.258 115.262 l 170.258 115.266 l 170.266 115.273 l 170.266 115.277 l 
+170.27 115.281 l 170.273 115.281 l 170.273 115.285 l 170.277 115.289 l 170.277
+ 115.293 l 170.285 115.301 l 170.285 115.305 l 170.293 115.312 l 170.293
+ 115.316 l 170.301 115.324 l 170.301 115.328 l 170.305 115.332 l 170.305
+ 115.336 l 170.312 115.344 l 170.312 115.348 l 170.32 115.355 l 170.32 115.359
+ l 170.324 115.359 l 170.324 115.363 l 170.332 115.371 l 170.332 115.375
+ l 170.34 115.383 l 170.34 115.387 l 170.344 115.391 l 170.344 115.395 l
+ 170.352 115.402 l 170.352 115.406 l 170.359 115.414 l 170.359 115.418 l
+ 170.363 115.422 l 170.363 115.426 l 170.371 115.434 l 170.371 115.438 l
+ 170.375 115.438 l 170.379 115.441 l 170.379 115.445 l 170.383 115.449 l
+ 170.383 115.453 l 170.391 115.461 l 170.391 115.465 l 170.398 115.473 l
+ 170.398 115.477 l 170.406 115.484 l 170.406 115.488 l 170.41 115.492 l 
+170.41 115.496 l 170.418 115.504 l 170.418 115.508 l 170.426 115.516 l 170.426
+ 115.52 l 170.43 115.52 l 170.43 115.523 l 170.438 115.531 l 170.438 115.535
+ l 170.445 115.543 l 170.445 115.547 l 170.449 115.551 l 170.449 115.555
+ l 170.457 115.562 l 170.457 115.566 l 170.465 115.574 l 170.465 115.578
+ l 170.469 115.582 l 170.469 115.586 l 170.477 115.594 l 170.477 115.598
+ l 170.48 115.602 l 170.484 115.602 l 170.484 115.605 l 170.492 115.613 
+l 170.492 115.617 l 170.496 115.621 l 170.496 115.625 l 170.504 115.633 
+l 170.504 115.637 l 170.512 115.645 l 170.512 115.648 l 170.516 115.652 
+l 170.516 115.656 l 170.523 115.664 l 170.523 115.668 l 170.531 115.676 
+l 170.531 115.68 l 170.543 115.691 l 170.543 115.695 l 170.551 115.703 l
+ 170.551 115.707 l 170.555 115.711 l 170.555 115.715 l 170.562 115.723 l
+ 170.562 115.727 l 170.57 115.734 l 170.57 115.738 l 170.574 115.742 l 170.574
+ 115.746 l 170.582 115.754 l 170.582 115.758 l 170.598 115.773 l 170.598
+ 115.777 l 170.602 115.781 l 170.602 115.785 l 170.609 115.793 l 170.609
+ 115.797 l 170.617 115.805 l 170.617 115.809 l 170.621 115.812 l 170.621
+ 115.816 l 170.629 115.824 l 170.629 115.828 l 170.637 115.836 l 170.637
+ 115.84 l 170.641 115.844 l 170.641 115.848 l 170.645 115.852 l 170.648 
+115.852 l 170.648 115.855 l 170.656 115.863 l 170.656 115.867 l 170.66 115.871
+ l 170.66 115.875 l 170.668 115.883 l 170.668 115.887 l 170.676 115.895 
+l 170.676 115.898 l 170.684 115.906 l 170.684 115.91 l 170.688 115.914 l
+ 170.688 115.918 l 170.695 115.926 l 170.695 115.93 l 170.707 115.941 l 
+170.707 115.945 l 170.715 115.953 l 170.715 115.957 l 170.723 115.965 l 
+170.723 115.969 l 170.727 115.973 l 170.727 115.977 l 170.734 115.984 l 
+170.734 115.988 l 170.742 115.996 l 170.742 116 l 170.746 116.004 l 170.746
+ 116.008 l 170.754 116.016 l 170.754 116.02 l 170.758 116.023 l 170.762 
+116.023 l 170.762 116.027 l 170.766 116.031 l 170.766 116.035 l 170.773 
+116.043 l 170.773 116.047 l 170.781 116.055 l 170.781 116.059 l 170.789 
+116.066 l 170.789 116.07 l 170.793 116.074 l 170.793 116.078 l 170.801 116.086
+ l 170.801 116.09 l 170.809 116.098 l 170.809 116.102 l 170.812 116.105 
+l 170.812 116.109 l 170.816 116.109 l 170.82 116.113 l 170.82 116.117 l 
+170.828 116.125 l 170.828 116.129 l 170.832 116.133 l 170.832 116.137 l 
+170.84 116.145 l 170.84 116.148 l 170.848 116.156 l 170.848 116.16 l 170.852
+ 116.164 l 170.852 116.168 l 170.859 116.176 l 170.859 116.18 l 170.867 
+116.188 l 170.867 116.191 l 170.879 116.203 l 170.879 116.207 l 170.887 
+116.215 l 170.887 116.219 l 170.895 116.227 l 170.895 116.23 l 170.898 116.234
+ l 170.898 116.238 l 170.906 116.246 l 170.906 116.25 l 170.914 116.258 
+l 170.914 116.262 l 170.918 116.266 l 170.918 116.27 l 170.926 116.277 l
+ 170.926 116.281 l 170.938 116.293 l 170.938 116.297 l 170.945 116.305 l
+ 170.945 116.309 l 170.953 116.316 l 170.953 116.32 l 170.957 116.324 l 
+170.957 116.328 l 170.965 116.336 l 170.965 116.34 l 170.973 116.348 l 170.973
+ 116.352 l 170.98 116.359 l 170.98 116.363 l 170.984 116.367 l 170.984 116.371
+ l 170.992 116.379 l 170.992 116.383 l 170.996 116.383 l 171 116.387 l 171
+ 116.391 l 171.004 116.395 l 171.004 116.398 l 171.012 116.406 l 171.012
+ 116.41 l 171.02 116.418 l 171.02 116.422 l 171.023 116.426 l 171.023 116.43
+ l 171.031 116.438 l 171.031 116.441 l 171.039 116.449 l 171.039 116.453
+ l 171.043 116.457 l 171.043 116.461 l 171.051 116.469 l 171.051 116.473
+ l 171.055 116.473 l 171.059 116.477 l 171.059 116.48 l 171.066 116.488 
+l 171.066 116.492 l 171.07 116.496 l 171.07 116.5 l 171.078 116.508 l 171.078
+ 116.512 l 171.086 116.52 l 171.086 116.523 l 171.09 116.527 l 171.09 116.531
+ l 171.098 116.539 l 171.098 116.543 l 171.105 116.551 l 171.105 116.555
+ l 171.109 116.559 l 171.109 116.562 l 171.113 116.566 l 171.117 116.566
+ l 171.117 116.57 l 171.125 116.578 l 171.125 116.582 l 171.129 116.586 
+l 171.129 116.59 l 171.137 116.598 l 171.137 116.602 l 171.145 116.609 l
+ 171.145 116.613 l 171.148 116.617 l 171.148 116.621 l 171.156 116.629 l
+ 171.156 116.633 l 171.164 116.641 l 171.164 116.645 l 171.172 116.652 l
+ 171.172 116.656 l 171.176 116.66 l 171.176 116.664 l 171.18 116.664 l 171.184
+ 116.668 l 171.184 116.672 l 171.191 116.68 l 171.191 116.684 l 171.195 
+116.688 l 171.195 116.691 l 171.203 116.699 l 171.203 116.703 l 171.211 
+116.711 l 171.211 116.715 l 171.215 116.719 l 171.215 116.723 l 171.223 
+116.73 l 171.223 116.734 l 171.23 116.742 l 171.23 116.746 l 171.234 116.75
+ l 171.234 116.754 l 171.25 116.77 l 171.25 116.773 l 171.258 116.781 l 
+171.258 116.785 l 171.262 116.789 l 171.262 116.793 l 171.27 116.801 l 171.27
+ 116.805 l 171.277 116.812 l 171.277 116.816 l 171.281 116.82 l 171.281 
+116.824 l 171.289 116.832 l 171.289 116.836 l 171.297 116.844 l 171.297 
+116.848 l 171.301 116.852 l 171.301 116.855 l 171.305 116.859 l 171.309 
+116.859 l 171.309 116.863 l 171.316 116.871 l 171.316 116.875 l 171.32 116.879
+ l 171.32 116.883 l 171.328 116.891 l 171.328 116.895 l 171.336 116.902 
+l 171.336 116.906 l 171.34 116.91 l 171.34 116.914 l 171.348 116.922 l 171.348
+ 116.926 l 171.355 116.934 l 171.355 116.938 l 171.363 116.945 l 171.363
+ 116.949 l 171.367 116.953 l 171.367 116.957 l 171.371 116.957 l 171.375
+ 116.961 l 171.375 116.965 l 171.383 116.973 l 171.383 116.977 l 171.387
+ 116.98 l 171.387 116.984 l 171.395 116.992 l 171.395 116.996 l 171.402 
+117.004 l 171.402 117.008 l 171.406 117.012 l 171.406 117.016 l 171.414 
+117.023 l 171.414 117.027 l 171.422 117.035 l 171.422 117.039 l 171.426 
+117.043 l 171.426 117.047 l 171.434 117.055 l 171.434 117.059 l 171.438 
+117.059 l 171.441 117.062 l 171.441 117.066 l 171.449 117.074 l 171.449 
+117.078 l 171.453 117.082 l 171.453 117.086 l 171.461 117.094 l 171.461 
+117.098 l 171.469 117.105 l 171.469 117.109 l 171.473 117.113 l 171.473 
+117.117 l 171.48 117.125 l 171.48 117.129 l 171.488 117.137 l 171.488 117.141
+ l 171.492 117.145 l 171.492 117.148 l 171.5 117.156 l 171.5 117.16 l 171.504
+ 117.16 l 171.508 117.164 l 171.508 117.168 l 171.512 117.172 l 171.512 
+117.176 l 171.52 117.184 l 171.52 117.188 l 171.527 117.195 l 171.527 117.199
+ l 171.531 117.203 l 171.531 117.207 l 171.539 117.215 l 171.539 117.219
+ l 171.547 117.227 l 171.547 117.23 l 171.555 117.238 l 171.555 117.242 
+l 171.559 117.246 l 171.559 117.25 l 171.566 117.258 l 171.566 117.262 l
+ 171.57 117.266 l 171.574 117.266 l 171.574 117.27 l 171.578 117.273 l 171.578
+ 117.277 l 171.586 117.285 l 171.586 117.289 l 171.594 117.297 l 171.594
+ 117.301 l 171.598 117.305 l 171.598 117.309 l 171.605 117.316 l 171.605
+ 117.32 l 171.613 117.328 l 171.613 117.332 l 171.617 117.336 l 171.617 
+117.34 l 171.625 117.348 l 171.625 117.352 l 171.633 117.359 l 171.633 117.363
+ l 171.645 117.375 l 171.645 117.379 l 171.652 117.387 l 171.652 117.391
+ l 171.66 117.398 l 171.66 117.402 l 171.664 117.406 l 171.664 117.41 l 
+171.672 117.418 l 171.672 117.422 l 171.68 117.43 l 171.68 117.434 l 171.684
+ 117.438 l 171.684 117.441 l 171.691 117.449 l 171.691 117.453 l 171.699
+ 117.461 l 171.699 117.465 l 171.703 117.469 l 171.703 117.473 l 171.719
+ 117.488 l 171.719 117.492 l 171.723 117.496 l 171.723 117.5 l 171.73 117.508
+ l 171.73 117.512 l 171.738 117.52 l 171.738 117.523 l 171.746 117.531 l
+ 171.746 117.535 l 171.75 117.539 l 171.75 117.543 l 171.758 117.551 l 171.758
+ 117.555 l 171.766 117.562 l 171.766 117.566 l 171.77 117.57 l 171.77 117.574
+ l 171.777 117.582 l 171.777 117.586 l 171.781 117.59 l 171.785 117.59 l
+ 171.785 117.594 l 171.789 117.598 l 171.789 117.602 l 171.797 117.609 l
+ 171.797 117.613 l 171.805 117.621 l 171.805 117.625 l 171.809 117.629 l
+ 171.809 117.633 l 171.816 117.641 l 171.816 117.645 l 171.824 117.652 l
+ 171.824 117.656 l 171.832 117.664 l 171.832 117.668 l 171.836 117.672 l
+ 171.836 117.676 l 171.844 117.684 l 171.844 117.688 l 171.852 117.695 l
+ 171.852 117.699 l 171.855 117.699 l 171.855 117.703 l 171.863 117.711 l
+ 171.863 117.715 l 171.871 117.723 l 171.871 117.727 l 171.875 117.73 l 
+171.875 117.734 l 171.883 117.742 l 171.883 117.746 l 171.891 117.754 l 
+171.891 117.758 l 171.895 117.762 l 171.895 117.766 l 171.902 117.773 l 
+171.902 117.777 l 171.91 117.785 l 171.91 117.789 l 171.914 117.793 l 171.914
+ 117.797 l 171.922 117.805 l 171.922 117.809 l 171.938 117.824 l 171.938
+ 117.828 l 171.941 117.832 l 171.941 117.836 l 171.949 117.844 l 171.949
+ 117.848 l 171.957 117.855 l 171.957 117.859 l 171.961 117.863 l 171.961
+ 117.867 l 171.969 117.875 l 171.969 117.879 l 171.977 117.887 l 171.977
+ 117.891 l 171.98 117.895 l 171.98 117.898 l 171.988 117.906 l 171.988 117.91
+ l 171.996 117.918 l 171.996 117.922 l 172 117.926 l 172 117.93 l 172.004
+ 117.93 l 172.008 117.934 l 172.008 117.938 l 172.016 117.945 l 172.016 
+117.949 l 172.023 117.957 l 172.023 117.961 l 172.027 117.965 l 172.027 
+117.969 l 172.035 117.977 l 172.035 117.98 l 172.043 117.988 l 172.043 117.992
+ l 172.047 117.996 l 172.047 118 l 172.055 118.008 l 172.055 118.012 l 172.062
+ 118.02 l 172.062 118.023 l 172.066 118.027 l 172.066 118.031 l 172.074 
+118.039 l 172.074 118.043 l 172.078 118.047 l 172.082 118.047 l 172.082 
+118.051 l 172.086 118.055 l 172.086 118.059 l 172.094 118.066 l 172.094 
+118.07 l 172.102 118.078 l 172.102 118.082 l 172.105 118.086 l 172.105 118.09
+ l 172.113 118.098 l 172.113 118.102 l 172.121 118.109 l 172.121 118.113
+ l 172.129 118.121 l 172.129 118.125 l 172.133 118.129 l 172.133 118.133
+ l 172.141 118.141 l 172.141 118.145 l 172.148 118.152 l 172.148 118.156
+ l 172.152 118.16 l 172.152 118.164 l 172.156 118.168 l 172.16 118.168 l
+ 172.16 118.172 l 172.168 118.18 l 172.168 118.184 l 172.172 118.188 l 172.172
+ 118.191 l 172.18 118.199 l 172.18 118.203 l 172.188 118.211 l 172.188 118.215
+ l 172.191 118.219 l 172.191 118.223 l 172.199 118.23 l 172.199 118.234 
+l 172.207 118.242 l 172.207 118.246 l 172.215 118.254 l 172.215 118.258 
+l 172.219 118.262 l 172.219 118.266 l 172.227 118.273 l 172.227 118.277 
+l 172.234 118.285 l 172.234 118.289 l 172.238 118.289 l 172.238 118.293 
+l 172.246 118.301 l 172.246 118.305 l 172.254 118.312 l 172.254 118.316 
+l 172.258 118.32 l 172.258 118.324 l 172.266 118.332 l 172.266 118.336 l
+ 172.273 118.344 l 172.273 118.348 l 172.277 118.352 l 172.277 118.355 l
+ 172.285 118.363 l 172.285 118.367 l 172.293 118.375 l 172.293 118.379 l
+ 172.297 118.383 l 172.297 118.387 l 172.305 118.395 l 172.305 118.398 l
+ 172.312 118.406 l 172.312 118.41 l 172.316 118.414 l 172.32 118.414 l 172.32
+ 118.418 l 172.324 118.422 l 172.324 118.426 l 172.332 118.434 l 172.332
+ 118.438 l 172.34 118.445 l 172.34 118.449 l 172.344 118.453 l 172.344 118.457
+ l 172.352 118.465 l 172.352 118.469 l 172.359 118.477 l 172.359 118.48 
+l 172.363 118.484 l 172.363 118.488 l 172.371 118.496 l 172.371 118.5 l 
+172.379 118.508 l 172.379 118.512 l 172.383 118.516 l 172.383 118.52 l 172.391
+ 118.527 l 172.391 118.531 l 172.406 118.547 l 172.406 118.551 l 172.41 
+118.555 l 172.41 118.559 l 172.418 118.566 l 172.418 118.57 l 172.426 118.578
+ l 172.426 118.582 l 172.43 118.586 l 172.43 118.59 l 172.438 118.598 l 
+172.438 118.602 l 172.445 118.609 l 172.445 118.613 l 172.449 118.617 l 
+172.449 118.621 l 172.457 118.629 l 172.457 118.633 l 172.465 118.641 l 
+172.465 118.645 l 172.469 118.648 l 172.469 118.652 l 172.477 118.66 l 172.477
+ 118.664 l 172.48 118.668 l 172.484 118.668 l 172.484 118.672 l 172.488 
+118.676 l 172.488 118.68 l 172.496 118.688 l 172.496 118.691 l 172.504 118.699
+ l 172.504 118.703 l 172.512 118.711 l 172.512 118.715 l 172.516 118.719
+ l 172.516 118.723 l 172.523 118.73 l 172.523 118.734 l 172.531 118.742 
+l 172.531 118.746 l 172.535 118.75 l 172.535 118.754 l 172.543 118.762 l
+ 172.543 118.766 l 172.551 118.773 l 172.551 118.777 l 172.555 118.781 l
+ 172.555 118.785 l 172.562 118.793 l 172.562 118.797 l 172.566 118.801 l
+ 172.57 118.801 l 172.57 118.805 l 172.574 118.809 l 172.574 118.812 l 172.582
+ 118.82 l 172.582 118.824 l 172.59 118.832 l 172.59 118.836 l 172.598 118.844
+ l 172.598 118.848 l 172.602 118.852 l 172.602 118.855 l 172.609 118.863
+ l 172.609 118.867 l 172.617 118.875 l 172.617 118.879 l 172.621 118.883
+ l 172.621 118.887 l 172.629 118.895 l 172.629 118.898 l 172.637 118.906
+ l 172.637 118.91 l 172.641 118.914 l 172.641 118.918 l 172.648 118.926 
+l 172.648 118.93 l 172.652 118.934 l 172.656 118.934 l 172.656 118.938 l
+ 172.66 118.941 l 172.66 118.945 l 172.668 118.953 l 172.668 118.957 l 172.676
+ 118.965 l 172.676 118.969 l 172.68 118.973 l 172.68 118.977 l 172.688 118.984
+ l 172.688 118.988 l 172.695 118.996 l 172.695 119 l 172.703 119.008 l 172.703
+ 119.012 l 172.707 119.016 l 172.707 119.02 l 172.715 119.027 l 172.715 
+119.031 l 172.723 119.039 l 172.723 119.043 l 172.727 119.047 l 172.727 
+119.051 l 172.734 119.059 l 172.734 119.062 l 172.746 119.074 l 172.746 
+119.078 l 172.754 119.086 l 172.754 119.09 l 172.762 119.098 l 172.762 119.102
+ l 172.766 119.105 l 172.766 119.109 l 172.773 119.117 l 172.773 119.121
+ l 172.781 119.129 l 172.781 119.133 l 172.789 119.141 l 172.789 119.145
+ l 172.793 119.148 l 172.793 119.152 l 172.801 119.16 l 172.801 119.164 
+l 172.809 119.172 l 172.809 119.176 l 172.812 119.18 l 172.812 119.184 l
+ 172.82 119.191 l 172.82 119.195 l 172.828 119.203 l 172.828 119.207 l 172.84
+ 119.219 l 172.84 119.223 l 172.848 119.23 l 172.848 119.234 l 172.852 119.238
+ l 172.852 119.242 l 172.859 119.25 l 172.859 119.254 l 172.867 119.262 
+l 172.867 119.266 l 172.871 119.27 l 172.871 119.273 l 172.879 119.281 l
+ 172.879 119.285 l 172.887 119.293 l 172.887 119.297 l 172.895 119.305 l
+ 172.895 119.309 l 172.898 119.312 l 172.898 119.316 l 172.906 119.324 l
+ 172.906 119.328 l 172.914 119.336 l 172.914 119.34 l 172.918 119.344 l 
+172.918 119.348 l 172.934 119.363 l 172.934 119.367 l 172.938 119.371 l 
+172.938 119.375 l 172.945 119.383 l 172.945 119.387 l 172.953 119.395 l 
+172.953 119.398 l 172.957 119.402 l 172.957 119.406 l 172.965 119.414 l 
+172.965 119.418 l 172.973 119.426 l 172.973 119.43 l 172.98 119.438 l 172.98
+ 119.441 l 172.984 119.445 l 172.984 119.449 l 172.992 119.457 l 172.992
+ 119.461 l 173 119.469 l 173 119.473 l 173.004 119.477 l 173.004 119.48 
+l 173.012 119.488 l 173.012 119.492 l 173.023 119.504 l 173.023 119.508 
+l 173.031 119.516 l 173.031 119.52 l 173.039 119.527 l 173.039 119.531 l
+ 173.043 119.535 l 173.043 119.539 l 173.051 119.547 l 173.051 119.551 l
+ 173.059 119.559 l 173.059 119.562 l 173.062 119.566 l 173.062 119.57 l 
+173.07 119.578 l 173.07 119.582 l 173.078 119.59 l 173.078 119.594 l 173.086
+ 119.602 l 173.086 119.605 l 173.09 119.609 l 173.09 119.613 l 173.098 119.621
+ l 173.098 119.625 l 173.105 119.633 l 173.105 119.637 l 173.109 119.641
+ l 173.109 119.645 l 173.113 119.648 l 173.117 119.648 l 173.117 119.652
+ l 173.125 119.66 l 173.125 119.664 l 173.129 119.668 l 173.129 119.672 
+l 173.137 119.68 l 173.137 119.684 l 173.145 119.691 l 173.145 119.695 l
+ 173.148 119.699 l 173.148 119.703 l 173.156 119.711 l 173.156 119.715 l
+ 173.164 119.723 l 173.164 119.727 l 173.172 119.734 l 173.172 119.738 l
+ 173.176 119.742 l 173.176 119.746 l 173.184 119.754 l 173.184 119.758 l
+ 173.191 119.766 l 173.191 119.77 l 173.195 119.773 l 173.195 119.777 l 
+173.203 119.785 l 173.203 119.789 l 173.211 119.797 l 173.211 119.801 l 
+173.215 119.801 l 173.215 119.805 l 173.223 119.812 l 173.223 119.816 l 
+173.23 119.824 l 173.23 119.828 l 173.234 119.832 l 173.234 119.836 l 173.242
+ 119.844 l 173.242 119.848 l 173.25 119.855 l 173.25 119.859 l 173.254 119.863
+ l 173.254 119.867 l 173.262 119.875 l 173.262 119.879 l 173.27 119.887 
+l 173.27 119.891 l 173.277 119.898 l 173.277 119.902 l 173.281 119.906 l
+ 173.281 119.91 l 173.289 119.918 l 173.289 119.922 l 173.297 119.93 l 173.297
+ 119.934 l 173.301 119.938 l 173.301 119.941 l 173.309 119.949 l 173.309
+ 119.953 l 173.312 119.957 l 173.316 119.957 l 173.316 119.961 l 173.32 
+119.965 l 173.32 119.969 l 173.328 119.977 l 173.328 119.98 l 173.336 119.988
+ l 173.336 119.992 l 173.34 119.996 l 173.34 120 l 173.348 120.008 l 173.348
+ 120.012 l 173.355 120.02 l 173.355 120.023 l 173.363 120.031 l 173.363 
+120.035 l 173.367 120.039 l 173.367 120.043 l 173.375 120.051 l 173.375 
+120.055 l 173.383 120.062 l 173.383 120.066 l 173.387 120.07 l 173.387 120.074
+ l 173.395 120.082 l 173.395 120.086 l 173.402 120.094 l 173.402 120.098
+ l 173.406 120.102 l 173.406 120.105 l 173.414 120.113 l 173.414 120.117
+ l 173.418 120.117 l 173.422 120.121 l 173.422 120.125 l 173.426 120.129
+ l 173.426 120.133 l 173.434 120.141 l 173.434 120.145 l 173.441 120.152
+ l 173.441 120.156 l 173.445 120.16 l 173.445 120.164 l 173.453 120.172 
+l 173.453 120.176 l 173.461 120.184 l 173.461 120.188 l 173.469 120.195 
+l 173.469 120.199 l 173.473 120.203 l 173.473 120.207 l 173.48 120.215 l
+ 173.48 120.219 l 173.488 120.227 l 173.488 120.23 l 173.492 120.234 l 173.492
+ 120.238 l 173.5 120.246 l 173.5 120.25 l 173.508 120.258 l 173.508 120.262
+ l 173.512 120.266 l 173.512 120.27 l 173.52 120.277 l 173.52 120.281 l 
+173.523 120.281 l 173.527 120.285 l 173.527 120.289 l 173.531 120.293 l 
+173.531 120.297 l 173.539 120.305 l 173.539 120.309 l 173.547 120.316 l 
+173.547 120.32 l 173.551 120.324 l 173.551 120.328 l 173.559 120.336 l 173.559
+ 120.34 l 173.566 120.348 l 173.566 120.352 l 173.574 120.359 l 173.574 
+120.363 l 173.578 120.367 l 173.578 120.371 l 173.586 120.379 l 173.586 
+120.383 l 173.594 120.391 l 173.594 120.395 l 173.598 120.398 l 173.598 
+120.402 l 173.605 120.41 l 173.605 120.414 l 173.613 120.422 l 173.613 120.426
+ l 173.617 120.43 l 173.617 120.434 l 173.625 120.441 l 173.625 120.445 
+l 173.629 120.449 l 173.633 120.449 l 173.633 120.453 l 173.637 120.457 
+l 173.637 120.461 l 173.645 120.469 l 173.645 120.473 l 173.652 120.48 l
+ 173.652 120.484 l 173.66 120.492 l 173.66 120.496 l 173.664 120.5 l 173.664
+ 120.504 l 173.672 120.512 l 173.672 120.516 l 173.68 120.523 l 173.68 120.527
+ l 173.684 120.531 l 173.684 120.535 l 173.691 120.543 l 173.691 120.547
+ l 173.699 120.555 l 173.699 120.559 l 173.703 120.562 l 173.703 120.566
+ l 173.711 120.574 l 173.711 120.578 l 173.719 120.586 l 173.719 120.59 
+l 173.723 120.594 l 173.723 120.598 l 173.73 120.605 l 173.73 120.609 l 
+173.738 120.617 l 173.738 120.621 l 173.75 120.633 l 173.75 120.637 l 173.758
+ 120.645 l 173.758 120.648 l 173.766 120.656 l 173.766 120.66 l 173.77 120.664
+ l 173.77 120.668 l 173.777 120.676 l 173.777 120.68 l 173.785 120.688 l
+ 173.785 120.691 l 173.789 120.695 l 173.789 120.699 l 173.797 120.707 l
+ 173.797 120.711 l 173.805 120.719 l 173.805 120.723 l 173.809 120.727 l
+ 173.809 120.73 l 173.816 120.738 l 173.816 120.742 l 173.824 120.75 l 173.824
+ 120.754 l 173.828 120.758 l 173.828 120.762 l 173.836 120.77 l 173.836 
+120.773 l 173.844 120.781 l 173.844 120.785 l 173.852 120.793 l 173.852 
+120.797 l 173.863 120.809 l 173.863 120.812 l 173.871 120.82 l 173.871 120.824
+ l 173.875 120.828 l 173.875 120.832 l 173.883 120.84 l 173.883 120.844 
+l 173.891 120.852 l 173.891 120.855 l 173.895 120.859 l 173.895 120.863 
+l 173.902 120.871 l 173.902 120.875 l 173.91 120.883 l 173.91 120.887 l 
+173.914 120.891 l 173.914 120.895 l 173.922 120.902 l 173.922 120.906 l 
+173.93 120.914 l 173.93 120.918 l 173.934 120.922 l 173.934 120.926 l 173.941
+ 120.934 l 173.941 120.938 l 173.949 120.945 l 173.949 120.949 l 173.957
+ 120.957 l 173.957 120.961 l 173.961 120.965 l 173.961 120.969 l 173.969
+ 120.977 l 173.969 120.98 l 173.973 120.98 l 173.977 120.984 l 173.977 120.988
+ l 173.98 120.992 l 173.98 120.996 l 173.988 121.004 l 173.988 121.008 l
+ 173.996 121.016 l 173.996 121.02 l 174 121.023 l 174 121.027 l 174.008 
+121.035 l 174.008 121.039 l 174.016 121.047 l 174.016 121.051 l 174.02 121.055
+ l 174.02 121.059 l 174.027 121.066 l 174.027 121.07 l 174.035 121.078 l
+ 174.035 121.082 l 174.043 121.09 l 174.043 121.094 l 174.047 121.098 l 
+174.047 121.102 l 174.055 121.109 l 174.055 121.113 l 174.062 121.121 l 
+174.062 121.125 l 174.066 121.129 l 174.066 121.133 l 174.074 121.141 l 
+174.074 121.145 l 174.082 121.152 l 174.082 121.156 l 174.086 121.16 l 174.086
+ 121.164 l 174.09 121.168 l 174.094 121.168 l 174.094 121.172 l 174.102 
+121.18 l 174.102 121.184 l 174.105 121.188 l 174.105 121.191 l 174.113 121.199
+ l 174.113 121.203 l 174.121 121.211 l 174.121 121.215 l 174.125 121.219
+ l 174.125 121.223 l 174.133 121.23 l 174.133 121.234 l 174.141 121.242 
+l 174.141 121.246 l 174.148 121.254 l 174.148 121.258 l 174.152 121.262 
+l 174.152 121.266 l 174.16 121.273 l 174.16 121.277 l 174.168 121.285 l 
+174.168 121.289 l 174.172 121.293 l 174.172 121.297 l 174.18 121.305 l 174.18
+ 121.309 l 174.188 121.316 l 174.188 121.32 l 174.191 121.324 l 174.191 
+121.328 l 174.199 121.336 l 174.199 121.34 l 174.207 121.348 l 174.207 121.352
+ l 174.211 121.355 l 174.211 121.359 l 174.215 121.359 l 174.219 121.363
+ l 174.219 121.367 l 174.227 121.375 l 174.227 121.379 l 174.234 121.387
+ l 174.234 121.391 l 174.238 121.395 l 174.238 121.398 l 174.246 121.406
+ l 174.246 121.41 l 174.254 121.418 l 174.254 121.422 l 174.258 121.426 
+l 174.258 121.43 l 174.266 121.438 l 174.266 121.441 l 174.273 121.449 l
+ 174.273 121.453 l 174.277 121.457 l 174.277 121.461 l 174.285 121.469 l
+ 174.285 121.473 l 174.293 121.48 l 174.293 121.484 l 174.297 121.488 l 
+174.297 121.492 l 174.305 121.5 l 174.305 121.504 l 174.312 121.512 l 174.312
+ 121.516 l 174.316 121.52 l 174.316 121.523 l 174.324 121.531 l 174.324 
+121.535 l 174.332 121.543 l 174.332 121.547 l 174.344 121.559 l 174.344 
+121.562 l 174.352 121.57 l 174.352 121.574 l 174.359 121.582 l 174.359 121.586
+ l 174.363 121.59 l 174.363 121.594 l 174.371 121.602 l 174.371 121.605 
+l 174.379 121.613 l 174.379 121.617 l 174.383 121.621 l 174.383 121.625 
+l 174.391 121.633 l 174.391 121.637 l 174.398 121.645 l 174.398 121.648 
+l 174.402 121.652 l 174.402 121.656 l 174.41 121.664 l 174.41 121.668 l 
+174.418 121.676 l 174.418 121.68 l 174.426 121.688 l 174.426 121.691 l 174.43
+ 121.695 l 174.43 121.699 l 174.438 121.707 l 174.438 121.711 l 174.445 
+121.719 l 174.445 121.723 l 174.449 121.727 l 174.449 121.73 l 174.457 121.738
+ l 174.457 121.742 l 174.465 121.75 l 174.465 121.754 l 174.477 121.766 
+l 174.477 121.77 l 174.484 121.777 l 174.484 121.781 l 174.488 121.785 l
+ 174.488 121.789 l 174.496 121.797 l 174.496 121.801 l 174.504 121.809 l
+ 174.504 121.812 l 174.508 121.816 l 174.508 121.82 l 174.516 121.828 l 
+174.516 121.832 l 174.523 121.84 l 174.523 121.844 l 174.531 121.852 l 174.531
+ 121.855 l 174.535 121.859 l 174.535 121.863 l 174.543 121.871 l 174.543
+ 121.875 l 174.551 121.883 l 174.551 121.887 l 174.555 121.891 l 174.555
+ 121.895 l 174.562 121.902 l 174.562 121.906 l 174.57 121.914 l 174.57 121.918
+ l 174.574 121.922 l 174.574 121.926 l 174.582 121.934 l 174.582 121.938
+ l 174.59 121.945 l 174.59 121.949 l 174.594 121.953 l 174.594 121.957 l
+ 174.609 121.973 l 174.609 121.977 l 174.617 121.984 l 174.617 121.988 l
+ 174.621 121.992 l 174.621 121.996 l 174.629 122.004 l 174.629 122.008 l
+ 174.637 122.016 l 174.637 122.02 l 174.641 122.023 l 174.641 122.027 l 
+174.648 122.035 l 174.648 122.039 l 174.656 122.047 l 174.656 122.051 l 
+174.66 122.055 l 174.66 122.059 l 174.668 122.066 l 174.668 122.07 l 174.676
+ 122.078 l 174.676 122.082 l 174.68 122.086 l 174.68 122.09 l 174.688 122.098
+ l 174.688 122.102 l 174.695 122.109 l 174.695 122.113 l 174.699 122.117
+ l 174.699 122.121 l 174.707 122.129 l 174.707 122.133 l 174.715 122.141
+ l 174.715 122.145 l 174.723 122.152 l 174.723 122.156 l 174.727 122.16 
+l 174.727 122.164 l 174.734 122.172 l 174.734 122.176 l 174.738 122.18 l
+ 174.742 122.18 l 174.742 122.184 l 174.746 122.188 l 174.746 122.191 l 
+174.754 122.199 l 174.754 122.203 l 174.762 122.211 l 174.762 122.215 l 
+174.766 122.219 l 174.766 122.223 l 174.773 122.23 l 174.773 122.234 l 174.781
+ 122.242 l 174.781 122.246 l 174.785 122.25 l 174.785 122.254 l 174.793 
+122.262 l 174.793 122.266 l 174.801 122.273 l 174.801 122.277 l 174.809 
+122.285 l 174.809 122.289 l 174.812 122.293 l 174.812 122.297 l 174.82 122.305
+ l 174.82 122.309 l 174.828 122.316 l 174.828 122.32 l 174.832 122.324 l
+ 174.832 122.328 l 174.84 122.336 l 174.84 122.34 l 174.848 122.348 l 174.848
+ 122.352 l 174.852 122.355 l 174.852 122.359 l 174.859 122.367 l 174.859
+ 122.371 l 174.867 122.379 l 174.867 122.383 l 174.871 122.387 l 174.871
+ 122.391 l 174.887 122.406 l 174.887 122.41 l 174.891 122.414 l 174.891 
+122.418 l 174.898 122.426 l 174.898 122.43 l 174.906 122.438 l 174.906 122.441
+ l 174.914 122.449 l 174.914 122.453 l 174.918 122.457 l 174.918 122.461
+ l 174.926 122.469 l 174.926 122.473 l 174.934 122.48 l 174.934 122.484 
+l 174.938 122.488 l 174.938 122.492 l 174.945 122.5 l 174.945 122.504 l 
+174.953 122.512 l 174.953 122.516 l 174.957 122.52 l 174.957 122.523 l 174.965
+ 122.531 l 174.965 122.535 l 174.973 122.543 l 174.973 122.547 l 174.977
+ 122.551 l 174.977 122.555 l 174.984 122.562 l 174.984 122.566 l 174.992
+ 122.574 l 174.992 122.578 l 175 122.586 l 175 122.59 l 175.004 122.594 
+l 175.004 122.598 l 175.012 122.605 l 175.012 122.609 l 175.02 122.617 l
+ 175.02 122.621 l 175.031 122.633 l 175.031 122.637 l 175.039 122.645 l 
+175.039 122.648 l 175.043 122.652 l 175.043 122.656 l 175.051 122.664 l 
+175.051 122.668 l 175.059 122.676 l 175.059 122.68 l 175.062 122.684 l 175.062
+ 122.688 l 175.07 122.695 l 175.07 122.699 l 175.078 122.707 l 175.078 122.711
+ l 175.082 122.715 l 175.082 122.719 l 175.09 122.727 l 175.09 122.73 l 
+175.098 122.738 l 175.098 122.742 l 175.105 122.75 l 175.105 122.754 l 175.109
+ 122.758 l 175.109 122.762 l 175.117 122.77 l 175.117 122.773 l 175.125 
+122.781 l 175.125 122.785 l 175.129 122.789 l 175.129 122.793 l 175.137 
+122.801 l 175.137 122.805 l 175.145 122.812 l 175.145 122.816 l 175.148 
+122.82 l 175.148 122.824 l 175.156 122.832 l 175.156 122.836 l 175.164 122.844
+ l 175.164 122.848 l 175.168 122.852 l 175.168 122.855 l 175.172 122.859
+ l 175.176 122.859 l 175.176 122.863 l 175.184 122.871 l 175.184 122.875
+ l 175.191 122.883 l 175.191 122.887 l 175.195 122.891 l 175.195 122.895
+ l 175.203 122.902 l 175.203 122.906 l 175.211 122.914 l 175.211 122.918
+ l 175.215 122.922 l 175.215 122.926 l 175.223 122.934 l 175.223 122.938
+ l 175.23 122.945 l 175.23 122.949 l 175.234 122.953 l 175.234 122.957 l
+ 175.242 122.965 l 175.242 122.969 l 175.25 122.977 l 175.25 122.98 l 175.254
+ 122.984 l 175.254 122.988 l 175.262 122.996 l 175.262 123 l 175.27 123.008
+ l 175.27 123.012 l 175.273 123.016 l 175.273 123.02 l 175.281 123.027 l
+ 175.281 123.031 l 175.289 123.039 l 175.289 123.043 l 175.297 123.051 l
+ 175.297 123.055 l 175.301 123.059 l 175.301 123.062 l 175.309 123.07 l 
+175.309 123.074 l 175.316 123.082 l 175.316 123.086 l 175.32 123.09 l 175.32
+ 123.094 l 175.324 123.098 l 175.328 123.098 l 175.328 123.102 l 175.336
+ 123.109 l 175.336 123.113 l 175.34 123.117 l 175.34 123.121 l 175.348 123.129
+ l 175.348 123.133 l 175.355 123.141 l 175.355 123.145 l 175.359 123.148
+ l 175.359 123.152 l 175.367 123.16 l 175.367 123.164 l 175.375 123.172 
+l 175.375 123.176 l 175.383 123.184 l 175.383 123.188 l 175.387 123.191 
+l 175.387 123.195 l 175.395 123.203 l 175.395 123.207 l 175.402 123.215 
+l 175.402 123.219 l 175.406 123.223 l 175.406 123.227 l 175.414 123.234 
+l 175.414 123.238 l 175.422 123.246 l 175.422 123.25 l 175.426 123.254 l
+ 175.426 123.258 l 175.434 123.266 l 175.434 123.27 l 175.441 123.277 l 
+175.441 123.281 l 175.445 123.285 l 175.445 123.289 l 175.453 123.297 l 
+175.453 123.301 l 175.461 123.309 l 175.461 123.312 l 175.465 123.316 l 
+175.465 123.32 l 175.473 123.328 l 175.473 123.332 l 175.488 123.348 l 175.488
+ 123.352 l 175.492 123.355 l 175.492 123.359 l 175.5 123.367 l 175.5 123.371
+ l 175.508 123.379 l 175.508 123.383 l 175.512 123.387 l 175.512 123.391
+ l 175.52 123.398 l 175.52 123.402 l 175.527 123.41 l 175.527 123.414 l 
+175.531 123.418 l 175.531 123.422 l 175.539 123.43 l 175.539 123.434 l 175.547
+ 123.441 l 175.547 123.445 l 175.551 123.449 l 175.551 123.453 l 175.559
+ 123.461 l 175.559 123.465 l 175.566 123.473 l 175.566 123.477 l 175.574
+ 123.484 l 175.574 123.488 l 175.578 123.492 l 175.578 123.496 l 175.586
+ 123.504 l 175.586 123.508 l 175.594 123.516 l 175.594 123.52 l 175.598 
+123.523 l 175.598 123.527 l 175.605 123.535 l 175.605 123.539 l 175.613 
+123.547 l 175.613 123.551 l 175.617 123.555 l 175.617 123.559 l 175.625 
+123.566 l 175.625 123.57 l 175.633 123.578 l 175.633 123.582 l 175.637 123.586
+ l 175.637 123.59 l 175.641 123.594 l 175.645 123.594 l 175.645 123.598 
+l 175.652 123.605 l 175.652 123.609 l 175.656 123.613 l 175.656 123.617 
+l 175.664 123.625 l 175.664 123.629 l 175.672 123.637 l 175.672 123.641 
+l 175.68 123.648 l 175.68 123.652 l 175.684 123.656 l 175.684 123.66 l 175.691
+ 123.668 l 175.691 123.672 l 175.699 123.68 l 175.699 123.684 l 175.703 
+123.688 l 175.703 123.691 l 175.711 123.699 l 175.711 123.703 l 175.719 
+123.711 l 175.719 123.715 l 175.723 123.719 l 175.723 123.723 l 175.73 123.73
+ l 175.73 123.734 l 175.738 123.742 l 175.738 123.746 l 175.742 123.75 l
+ 175.742 123.754 l 175.75 123.762 l 175.75 123.766 l 175.758 123.773 l 175.758
+ 123.777 l 175.762 123.781 l 175.762 123.785 l 175.77 123.793 l 175.77 123.797
+ l 175.777 123.805 l 175.777 123.809 l 175.785 123.816 l 175.785 123.82 
+l 175.789 123.824 l 175.789 123.828 l 175.797 123.836 l 175.797 123.84 l
+ 175.805 123.848 l 175.805 123.852 l 175.816 123.863 l 175.816 123.867 l
+ 175.824 123.875 l 175.824 123.879 l 175.828 123.883 l 175.828 123.887 l
+ 175.836 123.895 l 175.836 123.898 l 175.844 123.906 l 175.844 123.91 l 
+175.848 123.914 l 175.848 123.918 l 175.855 123.926 l 175.855 123.93 l 175.863
+ 123.938 l 175.863 123.941 l 175.871 123.949 l 175.871 123.953 l 175.875
+ 123.957 l 175.875 123.961 l 175.883 123.969 l 175.883 123.973 l 175.891
+ 123.98 l 175.891 123.984 l 175.895 123.988 l 175.895 123.992 l 175.902 
+124 l 175.902 124.004 l 175.91 124.012 l 175.91 124.016 l 175.914 124.02
+ l 175.914 124.023 l 175.922 124.031 l 175.922 124.035 l 175.93 124.043 
+l 175.93 124.047 l 175.934 124.051 l 175.934 124.055 l 175.941 124.062 l
+ 175.941 124.066 l 175.949 124.074 l 175.949 124.078 l 175.953 124.082 l
+ 175.953 124.086 l 175.961 124.094 l 175.961 124.098 l 175.969 124.105 l
+ 175.969 124.109 l 175.977 124.117 l 175.977 124.121 l 175.98 124.121 l 
+175.98 124.125 l 175.988 124.133 l 175.988 124.137 l 175.996 124.145 l 175.996
+ 124.148 l 176 124.152 l 176 124.156 l 176.008 124.164 l 176.008 124.168
+ l 176.016 124.176 l 176.016 124.18 l 176.02 124.184 l 176.02 124.188 l 
+176.027 124.195 l 176.027 124.199 l 176.035 124.207 l 176.035 124.211 l 
+176.039 124.215 l 176.039 124.219 l 176.047 124.227 l 176.047 124.23 l 176.055
+ 124.238 l 176.055 124.242 l 176.062 124.25 l 176.062 124.254 l 176.066 
+124.258 l 176.066 124.262 l 176.074 124.27 l 176.074 124.273 l 176.082 124.281
+ l 176.082 124.285 l 176.086 124.289 l 176.086 124.293 l 176.094 124.301
+ l 176.094 124.305 l 176.102 124.312 l 176.102 124.316 l 176.105 124.32 
+l 176.105 124.324 l 176.113 124.332 l 176.113 124.336 l 176.121 124.344 
+l 176.121 124.348 l 176.125 124.352 l 176.125 124.355 l 176.133 124.363 
+l 176.133 124.367 l 176.141 124.375 l 176.141 124.379 l 176.145 124.383 
+l 176.145 124.387 l 176.148 124.391 l 176.152 124.391 l 176.152 124.395 
+l 176.16 124.402 l 176.16 124.406 l 176.168 124.414 l 176.168 124.418 l 
+176.172 124.422 l 176.172 124.426 l 176.18 124.434 l 176.18 124.438 l 176.188
+ 124.445 l 176.188 124.449 l 176.191 124.453 l 176.191 124.457 l 176.199
+ 124.465 l 176.199 124.469 l 176.207 124.477 l 176.207 124.48 l 176.211 
+124.484 l 176.211 124.488 l 176.219 124.496 l 176.219 124.5 l 176.227 124.508
+ l 176.227 124.512 l 176.23 124.516 l 176.23 124.52 l 176.238 124.527 l 
+176.238 124.531 l 176.246 124.539 l 176.246 124.543 l 176.254 124.551 l 
+176.254 124.555 l 176.258 124.559 l 176.258 124.562 l 176.266 124.57 l 176.266
+ 124.574 l 176.273 124.582 l 176.273 124.586 l 176.277 124.59 l 176.277 
+124.594 l 176.285 124.602 l 176.285 124.605 l 176.293 124.613 l 176.293 
+124.617 l 176.297 124.621 l 176.297 124.625 l 176.305 124.633 l 176.305 
+124.637 l 176.312 124.645 l 176.312 124.648 l 176.316 124.652 l 176.316 
+124.656 l 176.324 124.664 l 176.324 124.668 l 176.328 124.672 l 176.332 
+124.672 l 176.332 124.676 l 176.336 124.68 l 176.336 124.684 l 176.344 124.691
+ l 176.344 124.695 l 176.352 124.703 l 176.352 124.707 l 176.359 124.715
+ l 176.359 124.719 l 176.363 124.723 l 176.363 124.727 l 176.371 124.734
+ l 176.371 124.738 l 176.379 124.746 l 176.379 124.75 l 176.383 124.754 
+l 176.383 124.758 l 176.391 124.766 l 176.391 124.77 l 176.398 124.777 l
+ 176.398 124.781 l 176.402 124.785 l 176.402 124.789 l 176.41 124.797 l 
+176.41 124.801 l 176.418 124.809 l 176.418 124.812 l 176.422 124.816 l 176.422
+ 124.82 l 176.43 124.828 l 176.43 124.832 l 176.438 124.84 l 176.438 124.844
+ l 176.445 124.852 l 176.445 124.855 l 176.449 124.859 l 176.449 124.863
+ l 176.457 124.871 l 176.457 124.875 l 176.465 124.883 l 176.465 124.887
+ l 176.469 124.891 l 176.469 124.895 l 176.477 124.902 l 176.477 124.906
+ l 176.484 124.914 l 176.484 124.918 l 176.488 124.922 l 176.488 124.926
+ l 176.496 124.934 l 176.496 124.938 l 176.504 124.945 l 176.504 124.949
+ l 176.516 124.961 l 176.516 124.965 l 176.523 124.973 l 176.523 124.977
+ l 176.527 124.98 l 176.527 124.984 l 176.535 124.992 l 176.535 124.996 
+l 176.543 125.004 l 176.543 125.008 l 176.551 125.016 l 176.551 125.02 l
+ 176.555 125.023 l 176.555 125.027 l 176.562 125.035 l 176.562 125.039 l
+ 176.57 125.047 l 176.57 125.051 l 176.574 125.055 l 176.574 125.059 l 176.582
+ 125.066 l 176.582 125.07 l 176.59 125.078 l 176.59 125.082 l 176.594 125.086
+ l 176.594 125.09 l 176.602 125.098 l 176.602 125.102 l 176.609 125.109 
+l 176.609 125.113 l 176.613 125.117 l 176.613 125.121 l 176.621 125.129 
+l 176.621 125.133 l 176.629 125.141 l 176.629 125.145 l 176.637 125.152 
+l 176.637 125.156 l 176.641 125.16 l 176.641 125.164 l 176.648 125.172 l
+ 176.648 125.176 l 176.656 125.184 l 176.656 125.188 l 176.66 125.191 l 
+176.66 125.195 l 176.668 125.203 l 176.668 125.207 l 176.676 125.215 l 176.676
+ 125.219 l 176.68 125.223 l 176.68 125.227 l 176.688 125.234 l 176.688 125.238
+ l 176.699 125.25 l 176.699 125.254 l 176.707 125.262 l 176.707 125.266 
+l 176.715 125.273 l 176.715 125.277 l 176.719 125.281 l 176.719 125.285 
+l 176.727 125.293 l 176.727 125.297 l 176.734 125.305 l 176.734 125.309 
+l 176.742 125.316 l 176.742 125.32 l 176.746 125.324 l 176.746 125.328 l
+ 176.754 125.336 l 176.754 125.34 l 176.762 125.348 l 176.762 125.352 l 
+176.766 125.355 l 176.766 125.359 l 176.773 125.367 l 176.773 125.371 l 
+176.781 125.379 l 176.781 125.383 l 176.785 125.387 l 176.785 125.391 l 
+176.793 125.398 l 176.793 125.402 l 176.801 125.41 l 176.801 125.414 l 176.805
+ 125.418 l 176.805 125.422 l 176.812 125.43 l 176.812 125.434 l 176.82 125.441
+ l 176.82 125.445 l 176.828 125.453 l 176.828 125.457 l 176.832 125.461 
+l 176.832 125.465 l 176.84 125.473 l 176.84 125.477 l 176.848 125.484 l 
+176.848 125.488 l 176.852 125.492 l 176.852 125.496 l 176.859 125.504 l 
+176.859 125.508 l 176.867 125.516 l 176.867 125.52 l 176.871 125.523 l 176.871
+ 125.527 l 176.879 125.535 l 176.879 125.539 l 176.883 125.539 l 176.887
+ 125.543 l 176.887 125.547 l 176.891 125.551 l 176.891 125.555 l 176.898
+ 125.562 l 176.898 125.566 l 176.906 125.574 l 176.906 125.578 l 176.91 
+125.582 l 176.91 125.586 l 176.918 125.594 l 176.918 125.598 l 176.926 125.605
+ l 176.926 125.609 l 176.934 125.617 l 176.934 125.621 l 176.938 125.625
+ l 176.938 125.629 l 176.945 125.637 l 176.945 125.641 l 176.953 125.648
+ l 176.953 125.652 l 176.957 125.656 l 176.957 125.66 l 176.965 125.668 
+l 176.965 125.672 l 176.973 125.68 l 176.973 125.684 l 176.977 125.688 l
+ 176.977 125.691 l 176.984 125.699 l 176.984 125.703 l 176.992 125.711 l
+ 176.992 125.715 l 176.996 125.719 l 176.996 125.723 l 177.004 125.73 l 
+177.004 125.734 l 177.012 125.742 l 177.012 125.746 l 177.02 125.754 l 177.02
+ 125.758 l 177.023 125.762 l 177.023 125.766 l 177.031 125.773 l 177.031
+ 125.777 l 177.039 125.785 l 177.039 125.789 l 177.043 125.793 l 177.043
+ 125.797 l 177.051 125.805 l 177.051 125.809 l 177.059 125.816 l 177.059
+ 125.82 l 177.062 125.824 l 177.062 125.828 l 177.07 125.836 l 177.07 125.84
+ l 177.074 125.84 l 177.078 125.844 l 177.078 125.848 l 177.082 125.852 
+l 177.082 125.855 l 177.09 125.863 l 177.09 125.867 l 177.098 125.875 l 
+177.098 125.879 l 177.102 125.883 l 177.102 125.887 l 177.109 125.895 l 
+177.109 125.898 l 177.117 125.906 l 177.117 125.91 l 177.125 125.918 l 177.125
+ 125.922 l 177.129 125.926 l 177.129 125.93 l 177.137 125.938 l 177.137 
+125.941 l 177.145 125.949 l 177.145 125.953 l 177.148 125.957 l 177.148 
+125.961 l 177.156 125.969 l 177.156 125.973 l 177.164 125.98 l 177.164 125.984
+ l 177.168 125.988 l 177.168 125.992 l 177.176 126 l 177.176 126.004 l 177.184
+ 126.012 l 177.184 126.016 l 177.188 126.02 l 177.188 126.023 l 177.195 
+126.031 l 177.195 126.035 l 177.203 126.043 l 177.203 126.047 l 177.211 
+126.055 l 177.211 126.059 l 177.215 126.062 l 177.215 126.066 l 177.223 
+126.074 l 177.223 126.078 l 177.23 126.086 l 177.23 126.09 l 177.234 126.094
+ l 177.234 126.098 l 177.242 126.105 l 177.242 126.109 l 177.25 126.117 
+l 177.25 126.121 l 177.254 126.125 l 177.254 126.129 l 177.262 126.137 l
+ 177.262 126.141 l 177.266 126.141 l 177.27 126.145 l 177.27 126.148 l 177.273
+ 126.152 l 177.273 126.156 l 177.281 126.164 l 177.281 126.168 l 177.289
+ 126.176 l 177.289 126.18 l 177.293 126.184 l 177.293 126.188 l 177.301 
+126.195 l 177.301 126.199 l 177.309 126.207 l 177.309 126.211 l 177.316 
+126.219 l 177.316 126.223 l 177.32 126.227 l 177.32 126.23 l 177.328 126.238
+ l 177.328 126.242 l 177.336 126.25 l 177.336 126.254 l 177.34 126.258 l
+ 177.34 126.262 l 177.348 126.27 l 177.348 126.273 l 177.355 126.281 l 177.355
+ 126.285 l 177.359 126.289 l 177.359 126.293 l 177.367 126.301 l 177.367
+ 126.305 l 177.375 126.312 l 177.375 126.316 l 177.379 126.32 l 177.379 
+126.324 l 177.387 126.332 l 177.387 126.336 l 177.395 126.344 l 177.395 
+126.348 l 177.402 126.355 l 177.402 126.359 l 177.406 126.363 l 177.406 
+126.367 l 177.414 126.375 l 177.414 126.379 l 177.422 126.387 l 177.422 
+126.391 l 177.426 126.395 l 177.426 126.398 l 177.434 126.406 l 177.434 
+126.41 l 177.441 126.418 l 177.441 126.422 l 177.445 126.426 l 177.445 126.43
+ l 177.453 126.438 l 177.453 126.441 l 177.457 126.445 l 177.461 126.445
+ l 177.461 126.449 l 177.465 126.453 l 177.465 126.457 l 177.473 126.465
+ l 177.473 126.469 l 177.48 126.477 l 177.48 126.48 l 177.484 126.484 l 
+177.484 126.488 l 177.492 126.496 l 177.492 126.5 l 177.5 126.508 l 177.5
+ 126.512 l 177.508 126.52 l 177.508 126.523 l 177.512 126.527 l 177.512 
+126.531 l 177.52 126.539 l 177.52 126.543 l 177.527 126.551 l 177.527 126.555
+ l 177.531 126.559 l 177.531 126.562 l 177.539 126.57 l 177.539 126.574 
+l 177.547 126.582 l 177.547 126.586 l 177.551 126.59 l 177.551 126.594 l
+ 177.559 126.602 l 177.559 126.605 l 177.566 126.613 l 177.566 126.617 l
+ 177.57 126.621 l 177.57 126.625 l 177.578 126.633 l 177.578 126.637 l 177.586
+ 126.645 l 177.586 126.648 l 177.594 126.656 l 177.594 126.66 l 177.598 
+126.664 l 177.598 126.668 l 177.605 126.676 l 177.605 126.68 l 177.613 126.688
+ l 177.613 126.691 l 177.617 126.695 l 177.617 126.699 l 177.625 126.707
+ l 177.625 126.711 l 177.633 126.719 l 177.633 126.723 l 177.637 126.727
+ l 177.637 126.73 l 177.645 126.738 l 177.645 126.742 l 177.656 126.754 
+l 177.656 126.758 l 177.664 126.766 l 177.664 126.77 l 177.672 126.777 l
+ 177.672 126.781 l 177.676 126.785 l 177.676 126.789 l 177.684 126.797 l
+ 177.684 126.801 l 177.691 126.809 l 177.691 126.812 l 177.699 126.82 l 
+177.699 126.824 l 177.703 126.828 l 177.703 126.832 l 177.711 126.84 l 177.711
+ 126.844 l 177.719 126.852 l 177.719 126.855 l 177.723 126.859 l 177.723
+ 126.863 l 177.73 126.871 l 177.73 126.875 l 177.738 126.883 l 177.738 126.887
+ l 177.742 126.891 l 177.742 126.895 l 177.75 126.902 l 177.75 126.906 l
+ 177.758 126.914 l 177.758 126.918 l 177.762 126.922 l 177.762 126.926 l
+ 177.77 126.934 l 177.77 126.938 l 177.777 126.945 l 177.777 126.949 l 177.785
+ 126.957 l 177.785 126.961 l 177.789 126.965 l 177.789 126.969 l 177.797
+ 126.977 l 177.797 126.98 l 177.805 126.988 l 177.805 126.992 l 177.809 
+126.996 l 177.809 127 l 177.816 127.008 l 177.816 127.012 l 177.824 127.02
+ l 177.824 127.023 l 177.828 127.027 l 177.828 127.031 l 177.836 127.039
+ l 177.836 127.043 l 177.844 127.051 l 177.844 127.055 l 177.855 127.066
+ l 177.855 127.07 l 177.863 127.078 l 177.863 127.082 l 177.867 127.086 
+l 177.867 127.09 l 177.875 127.098 l 177.875 127.102 l 177.883 127.109 l
+ 177.883 127.113 l 177.891 127.121 l 177.891 127.125 l 177.895 127.129 l
+ 177.895 127.133 l 177.902 127.141 l 177.902 127.145 l 177.91 127.152 l 
+177.91 127.156 l 177.914 127.16 l 177.914 127.164 l 177.922 127.172 l 177.922
+ 127.176 l 177.93 127.184 l 177.93 127.188 l 177.934 127.191 l 177.934 127.195
+ l 177.941 127.203 l 177.941 127.207 l 177.949 127.215 l 177.949 127.219
+ l 177.953 127.223 l 177.953 127.227 l 177.961 127.234 l 177.961 127.238
+ l 177.969 127.246 l 177.969 127.25 l 177.977 127.258 l 177.977 127.262 
+l 177.98 127.266 l 177.98 127.27 l 177.988 127.277 l 177.988 127.281 l 177.996
+ 127.289 l 177.996 127.293 l 178 127.297 l 178 127.301 l 178.008 127.309
+ l 178.008 127.312 l 178.016 127.32 l 178.016 127.324 l 178.02 127.328 l
+ 178.02 127.332 l 178.027 127.34 l 178.027 127.344 l 178.035 127.352 l 178.035
+ 127.355 l 178.039 127.359 l 178.039 127.363 l 178.043 127.363 l 178.047
+ 127.367 l 178.047 127.371 l 178.055 127.379 l 178.055 127.383 l 178.059
+ 127.387 l 178.059 127.391 l 178.066 127.398 l 178.066 127.402 l 178.074
+ 127.41 l 178.074 127.414 l 178.082 127.422 l 178.082 127.426 l 178.086 
+127.43 l 178.086 127.434 l 178.094 127.441 l 178.094 127.445 l 178.102 127.453
+ l 178.102 127.457 l 178.105 127.461 l 178.105 127.465 l 178.113 127.473
+ l 178.113 127.477 l 178.121 127.484 l 178.121 127.488 l 178.125 127.492
+ l 178.125 127.496 l 178.133 127.504 l 178.133 127.508 l 178.141 127.516
+ l 178.141 127.52 l 178.145 127.523 l 178.145 127.527 l 178.152 127.535 
+l 178.152 127.539 l 178.16 127.547 l 178.16 127.551 l 178.168 127.559 l 
+178.168 127.562 l 178.172 127.566 l 178.172 127.57 l 178.18 127.578 l 178.18
+ 127.582 l 178.188 127.59 l 178.188 127.594 l 178.191 127.598 l 178.191 
+127.602 l 178.199 127.609 l 178.199 127.613 l 178.207 127.621 l 178.207 
+127.625 l 178.211 127.629 l 178.211 127.633 l 178.219 127.641 l 178.219 
+127.645 l 178.227 127.652 l 178.227 127.656 l 178.23 127.66 l 178.23 127.664
+ l 178.234 127.668 l 178.238 127.668 l 178.238 127.672 l 178.246 127.68 
+l 178.246 127.684 l 178.25 127.688 l 178.25 127.691 l 178.258 127.699 l 
+178.258 127.703 l 178.266 127.711 l 178.266 127.715 l 178.273 127.723 l 
+178.273 127.727 l 178.277 127.73 l 178.277 127.734 l 178.285 127.742 l 178.285
+ 127.746 l 178.293 127.754 l 178.293 127.758 l 178.297 127.762 l 178.297
+ 127.766 l 178.305 127.773 l 178.305 127.777 l 178.312 127.785 l 178.312
+ 127.789 l 178.316 127.793 l 178.316 127.797 l 178.324 127.805 l 178.324
+ 127.809 l 178.332 127.816 l 178.332 127.82 l 178.336 127.824 l 178.336 
+127.828 l 178.344 127.836 l 178.344 127.84 l 178.352 127.848 l 178.352 127.852
+ l 178.359 127.859 l 178.359 127.863 l 178.363 127.867 l 178.363 127.871
+ l 178.371 127.879 l 178.371 127.883 l 178.379 127.891 l 178.379 127.895
+ l 178.383 127.898 l 178.383 127.902 l 178.391 127.91 l 178.391 127.914 
+l 178.398 127.922 l 178.398 127.926 l 178.402 127.93 l 178.402 127.934 l
+ 178.41 127.941 l 178.41 127.945 l 178.418 127.953 l 178.418 127.957 l 178.422
+ 127.961 l 178.422 127.965 l 178.438 127.98 l 178.438 127.984 l 178.441 
+127.988 l 178.441 127.992 l 178.449 128 l 178.449 128.004 l 178.457 128.012
+ l 178.457 128.016 l 178.465 128.023 l 178.465 128.027 l 178.469 128.031
+ l 178.469 128.035 l 178.477 128.043 l 178.477 128.047 l 178.484 128.055
+ l 178.484 128.059 l 178.488 128.062 l 178.488 128.066 l 178.496 128.074
+ l 178.496 128.078 l 178.504 128.086 l 178.504 128.09 l 178.508 128.094 
+l 178.508 128.098 l 178.516 128.105 l 178.516 128.109 l 178.523 128.117 
+l 178.523 128.121 l 178.527 128.125 l 178.527 128.129 l 178.535 128.137 
+l 178.535 128.141 l 178.543 128.148 l 178.543 128.152 l 178.551 128.16 l
+ 178.551 128.164 l 178.555 128.168 l 178.555 128.172 l 178.562 128.18 l 
+178.562 128.184 l 178.57 128.191 l 178.57 128.195 l 178.574 128.199 l 178.574
+ 128.203 l 178.582 128.211 l 178.582 128.215 l 178.59 128.223 l 178.59 128.227
+ l 178.594 128.23 l 178.594 128.234 l 178.602 128.242 l 178.602 128.246 
+l 178.609 128.254 l 178.609 128.258 l 178.613 128.262 l 178.613 128.266 
+l 178.629 128.281 l 178.629 128.285 l 178.633 128.289 l 178.633 128.293 
+l 178.641 128.301 l 178.641 128.305 l 178.648 128.312 l 178.648 128.316 
+l 178.656 128.324 l 178.656 128.328 l 178.66 128.332 l 178.66 128.336 l 
+178.668 128.344 l 178.668 128.348 l 178.676 128.355 l 178.676 128.359 l 
+178.68 128.363 l 178.68 128.367 l 178.688 128.375 l 178.688 128.379 l 178.695
+ 128.387 l 178.695 128.391 l 178.699 128.395 l 178.699 128.398 l 178.707
+ 128.406 l 178.707 128.41 l 178.715 128.418 l 178.715 128.422 l 178.719 
+128.426 l 178.719 128.43 l 178.727 128.438 l 178.727 128.441 l 178.734 128.449
+ l 178.734 128.453 l 178.742 128.461 l 178.742 128.465 l 178.746 128.469
+ l 178.746 128.473 l 178.754 128.48 l 178.754 128.484 l 178.762 128.492 
+l 178.762 128.496 l 178.766 128.5 l 178.766 128.504 l 178.773 128.512 l 
+178.773 128.516 l 178.781 128.523 l 178.781 128.527 l 178.785 128.531 l 
+178.785 128.535 l 178.793 128.543 l 178.793 128.547 l 178.801 128.555 l 
+178.801 128.559 l 178.805 128.562 l 178.805 128.566 l 178.809 128.566 l 
+178.812 128.57 l 178.812 128.574 l 178.82 128.582 l 178.82 128.586 l 178.824
+ 128.59 l 178.824 128.594 l 178.832 128.602 l 178.832 128.605 l 178.84 128.613
+ l 178.84 128.617 l 178.848 128.625 l 178.848 128.629 l 178.852 128.633 
+l 178.852 128.637 l 178.859 128.645 l 178.859 128.648 l 178.867 128.656 
+l 178.867 128.66 l 178.871 128.664 l 178.871 128.668 l 178.879 128.676 l
+ 178.879 128.68 l 178.887 128.688 l 178.887 128.691 l 178.891 128.695 l 
+178.891 128.699 l 178.898 128.707 l 178.898 128.711 l 178.906 128.719 l 
+178.906 128.723 l 178.91 128.727 l 178.91 128.73 l 178.918 128.738 l 178.918
+ 128.742 l 178.926 128.75 l 178.926 128.754 l 178.934 128.762 l 178.934 
+128.766 l 178.938 128.77 l 178.938 128.773 l 178.945 128.781 l 178.945 128.785
+ l 178.953 128.793 l 178.953 128.797 l 178.957 128.801 l 178.957 128.805
+ l 178.965 128.812 l 178.965 128.816 l 178.973 128.824 l 178.973 128.828
+ l 178.977 128.832 l 178.977 128.836 l 178.984 128.844 l 178.984 128.848
+ l 178.992 128.855 l 178.992 128.859 l 178.996 128.859 l 178.996 128.863
+ l 179.004 128.871 l 179.004 128.875 l 179.012 128.883 l 179.012 128.887
+ l 179.016 128.891 l 179.016 128.895 l 179.023 128.902 l 179.023 128.906
+ l 179.031 128.914 l 179.031 128.918 l 179.039 128.926 l 179.039 128.93 
+l 179.043 128.934 l 179.043 128.938 l 179.051 128.945 l 179.051 128.949 
+l 179.059 128.957 l 179.059 128.961 l 179.062 128.965 l 179.062 128.969 
+l 179.07 128.977 l 179.07 128.98 l 179.078 128.988 l 179.078 128.992 l 179.082
+ 128.996 l 179.082 129 l 179.09 129.008 l 179.09 129.012 l 179.098 129.02
+ l 179.098 129.023 l 179.102 129.027 l 179.102 129.031 l 179.109 129.039
+ l 179.109 129.043 l 179.117 129.051 l 179.117 129.055 l 179.125 129.062
+ l 179.125 129.066 l 179.129 129.07 l 179.129 129.074 l 179.137 129.082 
+l 179.137 129.086 l 179.145 129.094 l 179.145 129.098 l 179.148 129.102 
+l 179.148 129.105 l 179.156 129.113 l 179.156 129.117 l 179.164 129.125 
+l 179.164 129.129 l 179.168 129.133 l 179.168 129.137 l 179.184 129.152 
+l 179.184 129.156 l 179.188 129.16 l 179.188 129.164 l 179.195 129.172 l
+ 179.195 129.176 l 179.203 129.184 l 179.203 129.188 l 179.207 129.191 l
+ 179.207 129.195 l 179.215 129.203 l 179.215 129.207 l 179.223 129.215 l
+ 179.223 129.219 l 179.23 129.227 l 179.23 129.23 l 179.234 129.234 l 179.234
+ 129.238 l 179.242 129.246 l 179.242 129.25 l 179.25 129.258 l 179.25 129.262
+ l 179.254 129.266 l 179.254 129.27 l 179.262 129.277 l 179.262 129.281 
+l 179.27 129.289 l 179.27 129.293 l 179.273 129.297 l 179.273 129.301 l 
+179.281 129.309 l 179.281 129.312 l 179.289 129.32 l 179.289 129.324 l 179.293
+ 129.328 l 179.293 129.332 l 179.301 129.34 l 179.301 129.344 l 179.309 
+129.352 l 179.309 129.355 l 179.312 129.359 l 179.312 129.363 l 179.32 129.371
+ l 179.32 129.375 l 179.328 129.383 l 179.328 129.387 l 179.336 129.395 
+l 179.336 129.398 l 179.34 129.402 l 179.34 129.406 l 179.348 129.414 l 
+179.348 129.418 l 179.359 129.43 l 179.359 129.434 l 179.367 129.441 l 179.367
+ 129.445 l 179.375 129.453 l 179.375 129.457 l 179.379 129.461 l 179.379
+ 129.465 l 179.387 129.473 l 179.387 129.477 l 179.395 129.484 l 179.395
+ 129.488 l 179.398 129.492 l 179.398 129.496 l 179.406 129.504 l 179.406
+ 129.508 l 179.414 129.516 l 179.414 129.52 l 179.422 129.527 l 179.422 
+129.531 l 179.426 129.535 l 179.426 129.539 l 179.434 129.547 l 179.434 
+129.551 l 179.441 129.559 l 179.441 129.562 l 179.445 129.566 l 179.445 
+129.57 l 179.453 129.578 l 179.453 129.582 l 179.461 129.59 l 179.461 129.594
+ l 179.465 129.598 l 179.465 129.602 l 179.473 129.609 l 179.473 129.613
+ l 179.48 129.621 l 179.48 129.625 l 179.484 129.629 l 179.484 129.633 l
+ 179.492 129.641 l 179.492 129.645 l 179.5 129.652 l 179.5 129.656 l 179.504
+ 129.66 l 179.504 129.664 l 179.512 129.672 l 179.512 129.676 l 179.52 129.684
+ l 179.52 129.688 l 179.527 129.695 l 179.527 129.699 l 179.539 129.711 
+l 179.539 129.715 l 179.547 129.723 l 179.547 129.727 l 179.551 129.73 l
+ 179.551 129.734 l 179.559 129.742 l 179.559 129.746 l 179.566 129.754 l
+ 179.566 129.758 l 179.57 129.762 l 179.57 129.766 l 179.578 129.773 l 179.578
+ 129.777 l 179.586 129.785 l 179.586 129.789 l 179.59 129.793 l 179.59 129.797
+ l 179.598 129.805 l 179.598 129.809 l 179.605 129.816 l 179.605 129.82 
+l 179.613 129.828 l 179.613 129.832 l 179.617 129.836 l 179.617 129.84 l
+ 179.625 129.848 l 179.625 129.852 l 179.633 129.859 l 179.633 129.863 l
+ 179.637 129.867 l 179.637 129.871 l 179.645 129.879 l 179.645 129.883 l
+ 179.652 129.891 l 179.652 129.895 l 179.656 129.898 l 179.656 129.902 l
+ 179.664 129.91 l 179.664 129.914 l 179.672 129.922 l 179.672 129.926 l 
+179.676 129.93 l 179.676 129.934 l 179.684 129.941 l 179.684 129.945 l 179.691
+ 129.953 l 179.691 129.957 l 179.695 129.961 l 179.695 129.965 l 179.711
+ 129.98 l 179.711 129.984 l 179.719 129.992 l 179.719 129.996 l 179.723 
+130 l 179.723 130.004 l 179.73 130.012 l 179.73 130.016 l 179.738 130.023
+ l 179.738 130.027 l 179.742 130.031 l 179.742 130.035 l 179.75 130.043 
+l 179.75 130.047 l 179.758 130.055 l 179.758 130.059 l 179.762 130.062 l
+ 179.762 130.066 l 179.77 130.074 l 179.77 130.078 l 179.777 130.086 l 179.777
+ 130.09 l 179.781 130.094 l 179.781 130.098 l 179.789 130.105 l 179.789 
+130.109 l 179.797 130.117 l 179.797 130.121 l 179.805 130.129 l 179.805 
+130.133 l 179.809 130.137 l 179.809 130.141 l 179.816 130.148 l 179.816 
+130.152 l 179.824 130.16 l 179.824 130.164 l 179.828 130.168 l 179.828 130.172
+ l 179.836 130.18 l 179.836 130.184 l 179.844 130.191 l 179.844 130.195 
+l 179.848 130.199 l 179.848 130.203 l 179.855 130.211 l 179.855 130.215 
+l 179.863 130.223 l 179.863 130.227 l 179.867 130.23 l 179.867 130.234 l
+ 179.871 130.234 l 179.875 130.238 l 179.875 130.242 l 179.883 130.25 l 
+179.883 130.254 l 179.887 130.258 l 179.887 130.262 l 179.895 130.27 l 179.895
+ 130.273 l 179.902 130.281 l 179.902 130.285 l 179.91 130.293 l 179.91 130.297
+ l 179.914 130.301 l 179.914 130.305 l 179.922 130.312 l 179.922 130.316
+ l 179.93 130.324 l 179.93 130.328 l 179.934 130.332 l 179.934 130.336 l
+ 179.941 130.344 l 179.941 130.348 l 179.949 130.355 l 179.949 130.359 l
+ 179.953 130.363 l 179.953 130.367 l 179.961 130.375 l 179.961 130.379 l
+ 179.969 130.387 l 179.969 130.391 l 179.973 130.395 l 179.973 130.398 l
+ 179.98 130.406 l 179.98 130.41 l 179.988 130.418 l 179.988 130.422 l 179.996
+ 130.43 l 179.996 130.434 l 180 130.438 l 180 130.441 l 180.008 130.449 
+l 180.008 130.453 l 180.016 130.461 l 180.016 130.465 l 180.02 130.469 l
+ 180.02 130.473 l 180.027 130.48 l 180.027 130.484 l 180.039 130.496 l 180.039
+ 130.5 l 180.047 130.508 l 180.047 130.512 l 180.055 130.52 l 180.055 130.523
+ l 180.059 130.527 l 180.059 130.531 l 180.066 130.539 l 180.066 130.543
+ l 180.074 130.551 l 180.074 130.555 l 180.078 130.559 l 180.078 130.562
+ l 180.086 130.57 l 180.086 130.574 l 180.094 130.582 l 180.094 130.586 
+l 180.102 130.594 l 180.102 130.598 l 180.105 130.602 l 180.105 130.605 
+l 180.113 130.613 l 180.113 130.617 l 180.121 130.625 l 180.121 130.629 
+l 180.125 130.633 l 180.125 130.637 l 180.133 130.645 l 180.133 130.648 
+l 180.141 130.656 l 180.141 130.66 l 180.145 130.664 l 180.145 130.668 l
+ 180.152 130.676 l 180.152 130.68 l 180.16 130.688 l 180.16 130.691 l 180.164
+ 130.695 l 180.164 130.699 l 180.172 130.707 l 180.172 130.711 l 180.18 
+130.719 l 180.18 130.723 l 180.188 130.73 l 180.188 130.734 l 180.191 130.738
+ l 180.191 130.742 l 180.195 130.742 l 180.199 130.746 l 180.199 130.75 
+l 180.207 130.758 l 180.207 130.762 l 180.211 130.766 l 180.211 130.77 l
+ 180.219 130.777 l 180.219 130.781 l 180.227 130.789 l 180.227 130.793 l
+ 180.23 130.797 l 180.23 130.801 l 180.238 130.809 l 180.238 130.812 l 180.246
+ 130.82 l 180.246 130.824 l 180.25 130.828 l 180.25 130.832 l 180.258 130.84
+ l 180.258 130.844 l 180.266 130.852 l 180.266 130.855 l 180.27 130.859 
+l 180.27 130.863 l 180.277 130.871 l 180.277 130.875 l 180.285 130.883 l
+ 180.285 130.887 l 180.293 130.895 l 180.293 130.898 l 180.297 130.902 l
+ 180.297 130.906 l 180.305 130.914 l 180.305 130.918 l 180.312 130.926 l
+ 180.312 130.93 l 180.316 130.934 l 180.316 130.938 l 180.324 130.945 l 
+180.324 130.949 l 180.332 130.957 l 180.332 130.961 l 180.336 130.965 l 
+180.336 130.969 l 180.344 130.977 l 180.344 130.98 l 180.355 130.992 l 180.355
+ 130.996 l 180.363 131.004 l 180.363 131.008 l 180.371 131.016 l 180.371
+ 131.02 l 180.379 131.027 l 180.379 131.031 l 180.383 131.035 l 180.383 
+131.039 l 180.391 131.047 l 180.391 131.051 l 180.398 131.059 l 180.398 
+131.062 l 180.402 131.066 l 180.402 131.07 l 180.41 131.078 l 180.41 131.082
+ l 180.418 131.09 l 180.418 131.094 l 180.422 131.098 l 180.422 131.102 
+l 180.43 131.109 l 180.43 131.113 l 180.438 131.121 l 180.438 131.125 l 
+180.441 131.129 l 180.441 131.133 l 180.449 131.141 l 180.449 131.145 l 
+180.457 131.152 l 180.457 131.156 l 180.461 131.16 l 180.461 131.164 l 180.469
+ 131.172 l 180.469 131.176 l 180.477 131.184 l 180.477 131.188 l 180.484
+ 131.195 l 180.484 131.199 l 180.488 131.203 l 180.488 131.207 l 180.496
+ 131.215 l 180.496 131.219 l 180.508 131.23 l 180.508 131.234 l 180.516 
+131.242 l 180.516 131.246 l 180.523 131.254 l 180.523 131.258 l 180.527 
+131.262 l 180.527 131.266 l 180.535 131.273 l 180.535 131.277 l 180.543 
+131.285 l 180.543 131.289 l 180.547 131.293 l 180.547 131.297 l 180.555 
+131.305 l 180.555 131.309 l 180.562 131.316 l 180.562 131.32 l 180.57 131.328
+ l 180.57 131.332 l 180.574 131.336 l 180.574 131.34 l 180.582 131.348 l
+ 180.582 131.352 l 180.59 131.359 l 180.59 131.363 l 180.594 131.367 l 180.594
+ 131.371 l 180.602 131.379 l 180.602 131.383 l 180.609 131.391 l 180.609
+ 131.395 l 180.613 131.398 l 180.613 131.402 l 180.621 131.41 l 180.621 
+131.414 l 180.629 131.422 l 180.629 131.426 l 180.633 131.43 l 180.633 131.434
+ l 180.641 131.441 l 180.641 131.445 l 180.648 131.453 l 180.648 131.457
+ l 180.66 131.469 l 180.66 131.473 l 180.668 131.48 l 180.668 131.484 l 
+180.676 131.492 l 180.676 131.496 l 180.68 131.5 l 180.68 131.504 l 180.688
+ 131.512 l 180.688 131.516 l 180.695 131.523 l 180.695 131.527 l 180.699
+ 131.531 l 180.699 131.535 l 180.707 131.543 l 180.707 131.547 l 180.715
+ 131.555 l 180.715 131.559 l 180.719 131.562 l 180.719 131.566 l 180.727
+ 131.574 l 180.727 131.578 l 180.734 131.586 l 180.734 131.59 l 180.738 
+131.594 l 180.738 131.598 l 180.746 131.605 l 180.746 131.609 l 180.754 
+131.617 l 180.754 131.621 l 180.762 131.629 l 180.762 131.633 l 180.766 
+131.637 l 180.766 131.641 l 180.773 131.648 l 180.773 131.652 l 180.781 
+131.66 l 180.781 131.664 l 180.785 131.668 l 180.785 131.672 l 180.793 131.68
+ l 180.793 131.684 l 180.797 131.688 l 180.801 131.688 l 180.801 131.691
+ l 180.805 131.695 l 180.805 131.699 l 180.812 131.707 l 180.812 131.711
+ l 180.82 131.719 l 180.82 131.723 l 180.824 131.727 l 180.824 131.73 l 
+180.832 131.738 l 180.832 131.742 l 180.84 131.75 l 180.84 131.754 l 180.844
+ 131.758 l 180.844 131.762 l 180.852 131.77 l 180.852 131.773 l 180.859 
+131.781 l 180.859 131.785 l 180.867 131.793 l 180.867 131.797 l 180.871 
+131.801 l 180.871 131.805 l 180.879 131.812 l 180.879 131.816 l 180.887 
+131.824 l 180.887 131.828 l 180.891 131.832 l 180.891 131.836 l 180.898 
+131.844 l 180.898 131.848 l 180.906 131.855 l 180.906 131.859 l 180.91 131.863
+ l 180.91 131.867 l 180.918 131.875 l 180.918 131.879 l 180.926 131.887 
+l 180.926 131.891 l 180.93 131.895 l 180.93 131.898 l 180.938 131.906 l 
+180.938 131.91 l 180.941 131.91 l 180.945 131.914 l 180.945 131.918 l 180.953
+ 131.926 l 180.953 131.93 l 180.957 131.934 l 180.957 131.938 l 180.965 
+131.945 l 180.965 131.949 l 180.973 131.957 l 180.973 131.961 l 180.977 
+131.965 l 180.977 131.969 l 180.984 131.977 l 180.984 131.98 l 180.992 131.988
+ l 180.992 131.992 l 180.996 131.996 l 180.996 132 l 181.004 132.008 l 181.004
+ 132.012 l 181.012 132.02 l 181.012 132.023 l 181.016 132.027 l 181.016 
+132.031 l 181.023 132.039 l 181.023 132.043 l 181.031 132.051 l 181.031 
+132.055 l 181.035 132.059 l 181.035 132.062 l 181.043 132.07 l 181.043 132.074
+ l 181.051 132.082 l 181.051 132.086 l 181.059 132.094 l 181.059 132.098
+ l 181.062 132.102 l 181.062 132.105 l 181.07 132.113 l 181.07 132.117 l
+ 181.078 132.125 l 181.078 132.129 l 181.082 132.129 l 181.082 132.133 l
+ 181.09 132.141 l 181.09 132.145 l 181.098 132.152 l 181.098 132.156 l 181.102
+ 132.16 l 181.102 132.164 l 181.109 132.172 l 181.109 132.176 l 181.117 
+132.184 l 181.117 132.188 l 181.121 132.191 l 181.121 132.195 l 181.129 
+132.203 l 181.129 132.207 l 181.137 132.215 l 181.137 132.219 l 181.145 
+132.227 l 181.145 132.23 l 181.148 132.234 l 181.148 132.238 l 181.156 132.246
+ l 181.156 132.25 l 181.164 132.258 l 181.164 132.262 l 181.168 132.266 
+l 181.168 132.27 l 181.176 132.277 l 181.176 132.281 l 181.184 132.289 l
+ 181.184 132.293 l 181.188 132.297 l 181.188 132.301 l 181.195 132.309 l
+ 181.195 132.312 l 181.203 132.32 l 181.203 132.324 l 181.207 132.328 l 
+181.207 132.332 l 181.223 132.348 l 181.223 132.352 l 181.227 132.355 l 
+181.227 132.359 l 181.234 132.367 l 181.234 132.371 l 181.242 132.379 l 
+181.242 132.383 l 181.25 132.391 l 181.25 132.395 l 181.254 132.398 l 181.254
+ 132.402 l 181.262 132.41 l 181.262 132.414 l 181.27 132.422 l 181.27 132.426
+ l 181.273 132.43 l 181.273 132.434 l 181.281 132.441 l 181.281 132.445 
+l 181.289 132.453 l 181.289 132.457 l 181.293 132.461 l 181.293 132.465 
+l 181.301 132.473 l 181.301 132.477 l 181.309 132.484 l 181.309 132.488 
+l 181.312 132.492 l 181.312 132.496 l 181.32 132.504 l 181.32 132.508 l 
+181.328 132.516 l 181.328 132.52 l 181.332 132.523 l 181.332 132.527 l 181.34
+ 132.535 l 181.34 132.539 l 181.355 132.555 l 181.355 132.559 l 181.359 
+132.562 l 181.359 132.566 l 181.367 132.574 l 181.367 132.578 l 181.375 
+132.586 l 181.375 132.59 l 181.379 132.594 l 181.379 132.598 l 181.387 132.605
+ l 181.387 132.609 l 181.395 132.617 l 181.395 132.621 l 181.398 132.625
+ l 181.398 132.629 l 181.406 132.637 l 181.406 132.641 l 181.414 132.648
+ l 181.414 132.652 l 181.418 132.656 l 181.418 132.66 l 181.426 132.668 
+l 181.426 132.672 l 181.434 132.68 l 181.434 132.684 l 181.441 132.691 l
+ 181.441 132.695 l 181.445 132.699 l 181.445 132.703 l 181.453 132.711 l
+ 181.453 132.715 l 181.461 132.723 l 181.461 132.727 l 181.465 132.73 l 
+181.465 132.734 l 181.473 132.742 l 181.473 132.746 l 181.477 132.746 l 
+181.48 132.75 l 181.48 132.754 l 181.484 132.758 l 181.484 132.762 l 181.492
+ 132.77 l 181.492 132.773 l 181.5 132.781 l 181.5 132.785 l 181.504 132.789
+ l 181.504 132.793 l 181.512 132.801 l 181.512 132.805 l 181.52 132.812 
+l 181.52 132.816 l 181.523 132.82 l 181.523 132.824 l 181.531 132.832 l 
+181.531 132.836 l 181.539 132.844 l 181.539 132.848 l 181.547 132.855 l 
+181.547 132.859 l 181.551 132.863 l 181.551 132.867 l 181.559 132.875 l 
+181.559 132.879 l 181.566 132.887 l 181.566 132.891 l 181.57 132.895 l 181.57
+ 132.898 l 181.578 132.906 l 181.578 132.91 l 181.586 132.918 l 181.586 
+132.922 l 181.59 132.926 l 181.59 132.93 l 181.598 132.938 l 181.598 132.941
+ l 181.602 132.945 l 181.605 132.945 l 181.605 132.949 l 181.609 132.953
+ l 181.609 132.957 l 181.617 132.965 l 181.617 132.969 l 181.625 132.977
+ l 181.625 132.98 l 181.633 132.988 l 181.633 132.992 l 181.637 132.996 
+l 181.637 133 l 181.645 133.008 l 181.645 133.012 l 181.652 133.02 l 181.652
+ 133.023 l 181.656 133.027 l 181.656 133.031 l 181.664 133.039 l 181.664
+ 133.043 l 181.672 133.051 l 181.672 133.055 l 181.676 133.059 l 181.676
+ 133.062 l 181.684 133.07 l 181.684 133.074 l 181.691 133.082 l 181.691 
+133.086 l 181.695 133.09 l 181.695 133.094 l 181.703 133.102 l 181.703 133.105
+ l 181.711 133.113 l 181.711 133.117 l 181.715 133.121 l 181.715 133.125
+ l 181.723 133.133 l 181.723 133.137 l 181.727 133.137 l 181.73 133.141 
+l 181.73 133.145 l 181.738 133.152 l 181.738 133.156 l 181.742 133.16 l 
+181.742 133.164 l 181.75 133.172 l 181.75 133.176 l 181.758 133.184 l 181.758
+ 133.188 l 181.762 133.191 l 181.762 133.195 l 181.77 133.203 l 181.77 133.207
+ l 181.777 133.215 l 181.777 133.219 l 181.781 133.223 l 181.781 133.227
+ l 181.789 133.234 l 181.789 133.238 l 181.797 133.246 l 181.797 133.25 
+l 181.801 133.254 l 181.801 133.258 l 181.809 133.266 l 181.809 133.27 l
+ 181.816 133.277 l 181.816 133.281 l 181.824 133.289 l 181.824 133.293 l
+ 181.828 133.297 l 181.828 133.301 l 181.836 133.309 l 181.836 133.312 l
+ 181.844 133.32 l 181.844 133.324 l 181.848 133.324 l 181.848 133.328 l 
+181.855 133.336 l 181.855 133.34 l 181.863 133.348 l 181.863 133.352 l 181.867
+ 133.355 l 181.867 133.359 l 181.875 133.367 l 181.875 133.371 l 181.883
+ 133.379 l 181.883 133.383 l 181.887 133.387 l 181.887 133.391 l 181.895
+ 133.398 l 181.895 133.402 l 181.902 133.41 l 181.902 133.414 l 181.906 
+133.418 l 181.906 133.422 l 181.914 133.43 l 181.914 133.434 l 181.922 133.441
+ l 181.922 133.445 l 181.93 133.453 l 181.93 133.457 l 181.934 133.461 l
+ 181.934 133.465 l 181.941 133.473 l 181.941 133.477 l 181.949 133.484 l
+ 181.949 133.488 l 181.953 133.492 l 181.953 133.496 l 181.961 133.504 l
+ 181.961 133.508 l 181.965 133.512 l 181.969 133.512 l 181.969 133.516 l
+ 181.973 133.52 l 181.973 133.523 l 181.98 133.531 l 181.98 133.535 l 181.988
+ 133.543 l 181.988 133.547 l 181.992 133.551 l 181.992 133.555 l 182 133.562
+ l 182 133.566 l 182.008 133.574 l 182.008 133.578 l 182.016 133.586 l 182.016
+ 133.59 l 182.02 133.594 l 182.02 133.598 l 182.027 133.605 l 182.027 133.609
+ l 182.035 133.617 l 182.035 133.621 l 182.039 133.625 l 182.039 133.629
+ l 182.047 133.637 l 182.047 133.641 l 182.055 133.648 l 182.055 133.652
+ l 182.059 133.656 l 182.059 133.66 l 182.066 133.668 l 182.066 133.672 
+l 182.074 133.68 l 182.074 133.684 l 182.078 133.688 l 182.078 133.691 l
+ 182.082 133.691 l 182.086 133.695 l 182.086 133.699 l 182.094 133.707 l
+ 182.094 133.711 l 182.098 133.715 l 182.098 133.719 l 182.105 133.727 l
+ 182.105 133.73 l 182.113 133.738 l 182.113 133.742 l 182.121 133.75 l 182.121
+ 133.754 l 182.125 133.758 l 182.125 133.762 l 182.133 133.77 l 182.133 
+133.773 l 182.141 133.781 l 182.141 133.785 l 182.145 133.789 l 182.145 
+133.793 l 182.152 133.801 l 182.152 133.805 l 182.16 133.812 l 182.16 133.816
+ l 182.164 133.82 l 182.164 133.824 l 182.172 133.832 l 182.172 133.836 
+l 182.18 133.844 l 182.18 133.848 l 182.184 133.852 l 182.184 133.855 l 
+182.191 133.863 l 182.191 133.867 l 182.195 133.867 l 182.199 133.871 l 
+182.199 133.875 l 182.207 133.883 l 182.207 133.887 l 182.211 133.891 l 
+182.211 133.895 l 182.219 133.902 l 182.219 133.906 l 182.227 133.914 l 
+182.227 133.918 l 182.23 133.922 l 182.23 133.926 l 182.238 133.934 l 182.238
+ 133.938 l 182.246 133.945 l 182.246 133.949 l 182.25 133.953 l 182.25 133.957
+ l 182.258 133.965 l 182.258 133.969 l 182.266 133.977 l 182.266 133.98 
+l 182.27 133.984 l 182.27 133.988 l 182.277 133.996 l 182.277 134 l 182.285
+ 134.008 l 182.285 134.012 l 182.289 134.016 l 182.289 134.02 l 182.297 
+134.027 l 182.297 134.031 l 182.312 134.047 l 182.312 134.051 l 182.316 
+134.055 l 182.316 134.059 l 182.324 134.066 l 182.324 134.07 l 182.332 134.078
+ l 182.332 134.082 l 182.336 134.086 l 182.336 134.09 l 182.344 134.098 
+l 182.344 134.102 l 182.352 134.109 l 182.352 134.113 l 182.355 134.117 
+l 182.355 134.121 l 182.363 134.129 l 182.363 134.133 l 182.371 134.141 
+l 182.371 134.145 l 182.375 134.148 l 182.375 134.152 l 182.383 134.16 l
+ 182.383 134.164 l 182.391 134.172 l 182.391 134.176 l 182.398 134.184 l
+ 182.398 134.188 l 182.402 134.191 l 182.402 134.195 l 182.41 134.203 l 
+182.41 134.207 l 182.414 134.211 l 182.418 134.211 l 182.418 134.215 l 182.422
+ 134.219 l 182.422 134.223 l 182.43 134.23 l 182.43 134.234 l 182.438 134.242
+ l 182.438 134.246 l 182.441 134.25 l 182.441 134.254 l 182.449 134.262 
+l 182.449 134.266 l 182.457 134.273 l 182.457 134.277 l 182.461 134.281 
+l 182.461 134.285 l 182.469 134.293 l 182.469 134.297 l 182.477 134.305 
+l 182.477 134.309 l 182.48 134.312 l 182.48 134.316 l 182.488 134.324 l 
+182.488 134.328 l 182.496 134.336 l 182.496 134.34 l 182.504 134.348 l 182.504
+ 134.352 l 182.508 134.355 l 182.508 134.359 l 182.516 134.367 l 182.516
+ 134.371 l 182.52 134.375 l 182.523 134.375 l 182.523 134.379 l 182.527 
+134.383 l 182.527 134.387 l 182.535 134.395 l 182.535 134.398 l 182.543 
+134.406 l 182.543 134.41 l 182.547 134.414 l 182.547 134.418 l 182.555 134.426
+ l 182.555 134.43 l 182.562 134.438 l 182.562 134.441 l 182.566 134.445 
+l 182.566 134.449 l 182.574 134.457 l 182.574 134.461 l 182.582 134.469 
+l 182.582 134.473 l 182.59 134.48 l 182.59 134.484 l 182.594 134.488 l 182.594
+ 134.492 l 182.602 134.5 l 182.602 134.504 l 182.609 134.512 l 182.609 134.516
+ l 182.613 134.52 l 182.613 134.523 l 182.621 134.531 l 182.621 134.535 
+l 182.625 134.539 l 182.629 134.539 l 182.629 134.543 l 182.633 134.547 
+l 182.633 134.551 l 182.641 134.559 l 182.641 134.562 l 182.648 134.57 l
+ 182.648 134.574 l 182.652 134.578 l 182.652 134.582 l 182.66 134.59 l 182.66
+ 134.594 l 182.668 134.602 l 182.668 134.605 l 182.672 134.609 l 182.672
+ 134.613 l 182.68 134.621 l 182.68 134.625 l 182.688 134.633 l 182.688 134.637
+ l 182.695 134.645 l 182.695 134.648 l 182.699 134.652 l 182.699 134.656
+ l 182.707 134.664 l 182.707 134.668 l 182.715 134.676 l 182.715 134.68 
+l 182.719 134.684 l 182.719 134.688 l 182.727 134.695 l 182.727 134.699 
+l 182.73 134.699 l 182.734 134.703 l 182.734 134.707 l 182.738 134.711 l
+ 182.738 134.715 l 182.746 134.723 l 182.746 134.727 l 182.754 134.734 l
+ 182.754 134.738 l 182.758 134.742 l 182.758 134.746 l 182.766 134.754 l
+ 182.766 134.758 l 182.773 134.766 l 182.773 134.77 l 182.781 134.777 l 
+182.781 134.781 l 182.785 134.785 l 182.785 134.789 l 182.793 134.797 l 
+182.793 134.801 l 182.801 134.809 l 182.801 134.812 l 182.805 134.816 l 
+182.805 134.82 l 182.812 134.828 l 182.812 134.832 l 182.82 134.84 l 182.82
+ 134.844 l 182.824 134.848 l 182.824 134.852 l 182.828 134.855 l 182.832
+ 134.855 l 182.832 134.859 l 182.84 134.867 l 182.84 134.871 l 182.844 134.875
+ l 182.844 134.879 l 182.852 134.887 l 182.852 134.891 l 182.859 134.898
+ l 182.859 134.902 l 182.863 134.906 l 182.863 134.91 l 182.871 134.918 
+l 182.871 134.922 l 182.879 134.93 l 182.879 134.934 l 182.887 134.941 l
+ 182.887 134.945 l 182.891 134.949 l 182.891 134.953 l 182.898 134.961 l
+ 182.898 134.965 l 182.906 134.973 l 182.906 134.977 l 182.91 134.98 l 182.91
+ 134.984 l 182.918 134.992 l 182.918 134.996 l 182.926 135.004 l 182.926
+ 135.008 l 182.93 135.008 l 182.93 135.012 l 182.938 135.02 l 182.938 135.023
+ l 182.945 135.031 l 182.945 135.035 l 182.949 135.039 l 182.949 135.043
+ l 182.957 135.051 l 182.957 135.055 l 182.965 135.062 l 182.965 135.066
+ l 182.973 135.074 l 182.973 135.078 l 182.977 135.082 l 182.977 135.086
+ l 182.984 135.094 l 182.984 135.098 l 182.992 135.105 l 182.992 135.109
+ l 182.996 135.113 l 182.996 135.117 l 183.004 135.125 l 183.004 135.129
+ l 183.012 135.137 l 183.012 135.141 l 183.016 135.145 l 183.016 135.148
+ l 183.023 135.156 l 183.023 135.16 l 183.027 135.16 l 183.031 135.164 l
+ 183.031 135.168 l 183.035 135.172 l 183.035 135.176 l 183.043 135.184 l
+ 183.043 135.188 l 183.051 135.195 l 183.051 135.199 l 183.055 135.203 l
+ 183.055 135.207 l 183.062 135.215 l 183.062 135.219 l 183.07 135.227 l 
+183.07 135.23 l 183.078 135.238 l 183.078 135.242 l 183.082 135.246 l 183.082
+ 135.25 l 183.09 135.258 l 183.09 135.262 l 183.098 135.27 l 183.098 135.273
+ l 183.102 135.277 l 183.102 135.281 l 183.109 135.289 l 183.109 135.293
+ l 183.117 135.301 l 183.117 135.305 l 183.129 135.316 l 183.129 135.32 
+l 183.137 135.328 l 183.137 135.332 l 183.141 135.336 l 183.141 135.34 l
+ 183.148 135.348 l 183.148 135.352 l 183.156 135.359 l 183.156 135.363 l
+ 183.164 135.371 l 183.164 135.375 l 183.168 135.379 l 183.168 135.383 l
+ 183.176 135.391 l 183.176 135.395 l 183.184 135.402 l 183.184 135.406 l
+ 183.188 135.41 l 183.188 135.414 l 183.195 135.422 l 183.195 135.426 l 
+183.203 135.434 l 183.203 135.438 l 183.207 135.441 l 183.207 135.445 l 
+183.223 135.461 l 183.223 135.465 l 183.227 135.469 l 183.227 135.473 l 
+183.234 135.48 l 183.234 135.484 l 183.242 135.492 l 183.242 135.496 l 183.246
+ 135.5 l 183.246 135.504 l 183.254 135.512 l 183.254 135.516 l 183.262 135.523
+ l 183.262 135.527 l 183.27 135.535 l 183.27 135.539 l 183.273 135.543 l
+ 183.273 135.547 l 183.281 135.555 l 183.281 135.559 l 183.289 135.566 l
+ 183.289 135.57 l 183.293 135.574 l 183.293 135.578 l 183.301 135.586 l 
+183.301 135.59 l 183.312 135.602 l 183.312 135.605 l 183.32 135.613 l 183.32
+ 135.617 l 183.328 135.625 l 183.328 135.629 l 183.332 135.633 l 183.332
+ 135.637 l 183.34 135.645 l 183.34 135.648 l 183.348 135.656 l 183.348 135.66
+ l 183.355 135.668 l 183.355 135.672 l 183.359 135.676 l 183.359 135.68 
+l 183.367 135.688 l 183.367 135.691 l 183.375 135.699 l 183.375 135.703 
+l 183.379 135.707 l 183.379 135.711 l 183.387 135.719 l 183.387 135.723 
+l 183.395 135.73 l 183.395 135.734 l 183.406 135.746 l 183.406 135.75 l 
+183.414 135.758 l 183.414 135.762 l 183.418 135.766 l 183.418 135.77 l 183.426
+ 135.777 l 183.426 135.781 l 183.434 135.789 l 183.434 135.793 l 183.438
+ 135.797 l 183.438 135.801 l 183.445 135.809 l 183.445 135.812 l 183.453
+ 135.82 l 183.453 135.824 l 183.461 135.832 l 183.461 135.836 l 183.465 
+135.84 l 183.465 135.844 l 183.473 135.852 l 183.473 135.855 l 183.48 135.863
+ l 183.48 135.867 l 183.484 135.871 l 183.484 135.875 l 183.488 135.875 
+l 183.492 135.879 l 183.492 135.883 l 183.5 135.891 l 183.5 135.895 l 183.504
+ 135.898 l 183.504 135.902 l 183.512 135.91 l 183.512 135.914 l 183.52 135.922
+ l 183.52 135.926 l 183.523 135.93 l 183.523 135.934 l 183.531 135.941 l
+ 183.531 135.945 l 183.539 135.953 l 183.539 135.957 l 183.547 135.965 l
+ 183.547 135.969 l 183.551 135.973 l 183.551 135.977 l 183.559 135.984 l
+ 183.559 135.988 l 183.566 135.996 l 183.566 136 l 183.57 136.004 l 183.57
+ 136.008 l 183.574 136.012 l 183.578 136.012 l 183.578 136.016 l 183.586
+ 136.023 l 183.586 136.027 l 183.59 136.031 l 183.59 136.035 l 183.598 136.043
+ l 183.598 136.047 l 183.605 136.055 l 183.605 136.059 l 183.609 136.062
+ l 183.609 136.066 l 183.617 136.074 l 183.617 136.078 l 183.625 136.086
+ l 183.625 136.09 l 183.629 136.094 l 183.629 136.098 l 183.637 136.105 
+l 183.637 136.109 l 183.645 136.117 l 183.645 136.121 l 183.652 136.129 
+l 183.652 136.133 l 183.656 136.137 l 183.656 136.141 l 183.672 136.156 
+l 183.672 136.16 l 183.676 136.164 l 183.676 136.168 l 183.684 136.176 l
+ 183.684 136.18 l 183.691 136.188 l 183.691 136.191 l 183.695 136.195 l 
+183.695 136.199 l 183.703 136.207 l 183.703 136.211 l 183.711 136.219 l 
+183.711 136.223 l 183.715 136.227 l 183.715 136.23 l 183.723 136.238 l 183.723
+ 136.242 l 183.73 136.25 l 183.73 136.254 l 183.738 136.262 l 183.738 136.266
+ l 183.742 136.27 l 183.742 136.273 l 183.746 136.277 l 183.75 136.277 l
+ 183.75 136.281 l 183.758 136.289 l 183.758 136.293 l 183.762 136.297 l 
+183.762 136.301 l 183.77 136.309 l 183.77 136.312 l 183.777 136.32 l 183.777
+ 136.324 l 183.781 136.328 l 183.781 136.332 l 183.789 136.34 l 183.789 
+136.344 l 183.797 136.352 l 183.797 136.355 l 183.801 136.359 l 183.801 
+136.363 l 183.809 136.371 l 183.809 136.375 l 183.816 136.383 l 183.816 
+136.387 l 183.82 136.391 l 183.82 136.395 l 183.828 136.402 l 183.828 136.406
+ l 183.832 136.41 l 183.836 136.41 l 183.836 136.414 l 183.844 136.422 l
+ 183.844 136.426 l 183.848 136.43 l 183.848 136.434 l 183.855 136.441 l 
+183.855 136.445 l 183.863 136.453 l 183.863 136.457 l 183.867 136.461 l 
+183.867 136.465 l 183.875 136.473 l 183.875 136.477 l 183.883 136.484 l 
+183.883 136.488 l 183.887 136.492 l 183.887 136.496 l 183.895 136.504 l 
+183.895 136.508 l 183.902 136.516 l 183.902 136.52 l 183.906 136.523 l 183.906
+ 136.527 l 183.914 136.535 l 183.914 136.539 l 183.918 136.539 l 183.922
+ 136.543 l 183.922 136.547 l 183.93 136.555 l 183.93 136.559 l 183.934 136.562
+ l 183.934 136.566 l 183.941 136.574 l 183.941 136.578 l 183.949 136.586
+ l 183.949 136.59 l 183.953 136.594 l 183.953 136.598 l 183.961 136.605 
+l 183.961 136.609 l 183.969 136.617 l 183.969 136.621 l 183.973 136.625 
+l 183.973 136.629 l 183.98 136.637 l 183.98 136.641 l 183.988 136.648 l 
+183.988 136.652 l 183.992 136.656 l 183.992 136.66 l 183.996 136.664 l 184
+ 136.664 l 184 136.668 l 184.008 136.676 l 184.008 136.68 l 184.012 136.684
+ l 184.012 136.688 l 184.02 136.695 l 184.02 136.699 l 184.027 136.707 l
+ 184.027 136.711 l 184.035 136.719 l 184.035 136.723 l 184.039 136.727 l
+ 184.039 136.73 l 184.047 136.738 l 184.047 136.742 l 184.055 136.75 l 184.055
+ 136.754 l 184.059 136.758 l 184.059 136.762 l 184.066 136.77 l 184.066 
+136.773 l 184.074 136.781 l 184.074 136.785 l 184.086 136.797 l 184.086 
+136.801 l 184.094 136.809 l 184.094 136.812 l 184.098 136.816 l 184.098 
+136.82 l 184.105 136.828 l 184.105 136.832 l 184.113 136.84 l 184.113 136.844
+ l 184.121 136.852 l 184.121 136.855 l 184.125 136.859 l 184.125 136.863
+ l 184.133 136.871 l 184.133 136.875 l 184.141 136.883 l 184.141 136.887
+ l 184.145 136.891 l 184.145 136.895 l 184.152 136.902 l 184.152 136.906
+ l 184.156 136.91 l 184.16 136.91 l 184.16 136.914 l 184.164 136.918 l 184.164
+ 136.922 l 184.172 136.93 l 184.172 136.934 l 184.18 136.941 l 184.18 136.945
+ l 184.184 136.949 l 184.184 136.953 l 184.191 136.961 l 184.191 136.965
+ l 184.199 136.973 l 184.199 136.977 l 184.203 136.98 l 184.203 136.984 
+l 184.211 136.992 l 184.211 136.996 l 184.219 137.004 l 184.219 137.008 
+l 184.227 137.016 l 184.227 137.02 l 184.23 137.023 l 184.23 137.027 l 184.234
+ 137.031 l 184.238 137.031 l 184.238 137.035 l 184.246 137.043 l 184.246
+ 137.047 l 184.25 137.051 l 184.25 137.055 l 184.258 137.062 l 184.258 137.066
+ l 184.266 137.074 l 184.266 137.078 l 184.27 137.082 l 184.27 137.086 l
+ 184.277 137.094 l 184.277 137.098 l 184.285 137.105 l 184.285 137.109 l
+ 184.289 137.113 l 184.289 137.117 l 184.297 137.125 l 184.297 137.129 l
+ 184.305 137.137 l 184.305 137.141 l 184.312 137.148 l 184.312 137.152 l
+ 184.316 137.152 l 184.316 137.156 l 184.324 137.164 l 184.324 137.168 l
+ 184.332 137.176 l 184.332 137.18 l 184.336 137.184 l 184.336 137.188 l 
+184.344 137.195 l 184.344 137.199 l 184.352 137.207 l 184.352 137.211 l 
+184.355 137.215 l 184.355 137.219 l 184.363 137.227 l 184.363 137.23 l 184.371
+ 137.238 l 184.371 137.242 l 184.375 137.246 l 184.375 137.25 l 184.383 
+137.258 l 184.383 137.262 l 184.395 137.273 l 184.395 137.277 l 184.402 
+137.285 l 184.402 137.289 l 184.41 137.297 l 184.41 137.301 l 184.418 137.309
+ l 184.418 137.312 l 184.422 137.316 l 184.422 137.32 l 184.43 137.328 l
+ 184.43 137.332 l 184.438 137.34 l 184.438 137.344 l 184.441 137.348 l 184.441
+ 137.352 l 184.449 137.359 l 184.449 137.363 l 184.457 137.371 l 184.457
+ 137.375 l 184.461 137.379 l 184.461 137.383 l 184.465 137.383 l 184.469
+ 137.387 l 184.469 137.391 l 184.477 137.398 l 184.477 137.402 l 184.48 
+137.406 l 184.48 137.41 l 184.488 137.418 l 184.488 137.422 l 184.496 137.43
+ l 184.496 137.434 l 184.504 137.441 l 184.504 137.445 l 184.508 137.449
+ l 184.508 137.453 l 184.516 137.461 l 184.516 137.465 l 184.523 137.473
+ l 184.523 137.477 l 184.527 137.48 l 184.527 137.484 l 184.535 137.492 
+l 184.535 137.496 l 184.539 137.5 l 184.543 137.5 l 184.543 137.504 l 184.547
+ 137.508 l 184.547 137.512 l 184.555 137.52 l 184.555 137.523 l 184.562 
+137.531 l 184.562 137.535 l 184.566 137.539 l 184.566 137.543 l 184.574 
+137.551 l 184.574 137.555 l 184.582 137.562 l 184.582 137.566 l 184.586 
+137.57 l 184.586 137.574 l 184.594 137.582 l 184.594 137.586 l 184.602 137.594
+ l 184.602 137.598 l 184.609 137.605 l 184.609 137.609 l 184.621 137.621
+ l 184.621 137.625 l 184.629 137.633 l 184.629 137.637 l 184.633 137.641
+ l 184.633 137.645 l 184.641 137.652 l 184.641 137.656 l 184.648 137.664
+ l 184.648 137.668 l 184.652 137.672 l 184.652 137.676 l 184.66 137.684 
+l 184.66 137.688 l 184.668 137.695 l 184.668 137.699 l 184.672 137.703 l
+ 184.672 137.707 l 184.68 137.715 l 184.68 137.719 l 184.684 137.723 l 184.688
+ 137.723 l 184.688 137.727 l 184.695 137.734 l 184.695 137.738 l 184.699
+ 137.742 l 184.699 137.746 l 184.707 137.754 l 184.707 137.758 l 184.715
+ 137.766 l 184.715 137.77 l 184.719 137.773 l 184.719 137.777 l 184.727 
+137.785 l 184.727 137.789 l 184.734 137.797 l 184.734 137.801 l 184.738 
+137.805 l 184.738 137.809 l 184.746 137.816 l 184.746 137.82 l 184.754 137.828
+ l 184.754 137.832 l 184.758 137.832 l 184.758 137.836 l 184.766 137.844
+ l 184.766 137.848 l 184.773 137.855 l 184.773 137.859 l 184.777 137.863
+ l 184.777 137.867 l 184.785 137.875 l 184.785 137.879 l 184.793 137.887
+ l 184.793 137.891 l 184.801 137.898 l 184.801 137.902 l 184.805 137.906
+ l 184.805 137.91 l 184.812 137.918 l 184.812 137.922 l 184.82 137.93 l 
+184.82 137.934 l 184.824 137.938 l 184.824 137.941 l 184.828 137.941 l 184.832
+ 137.945 l 184.832 137.949 l 184.84 137.957 l 184.84 137.961 l 184.844 137.965
+ l 184.844 137.969 l 184.852 137.977 l 184.852 137.98 l 184.859 137.988 
+l 184.859 137.992 l 184.863 137.996 l 184.863 138 l 184.871 138.008 l 184.871
+ 138.012 l 184.879 138.02 l 184.879 138.023 l 184.883 138.027 l 184.883 
+138.031 l 184.891 138.039 l 184.891 138.043 l 184.906 138.059 l 184.906 
+138.062 l 184.91 138.066 l 184.91 138.07 l 184.918 138.078 l 184.918 138.082
+ l 184.926 138.09 l 184.926 138.094 l 184.93 138.098 l 184.93 138.102 l 
+184.938 138.109 l 184.938 138.113 l 184.945 138.121 l 184.945 138.125 l 
+184.949 138.129 l 184.949 138.133 l 184.957 138.141 l 184.957 138.145 l 
+184.965 138.152 l 184.965 138.156 l 184.969 138.156 l 184.969 138.16 l 184.977
+ 138.168 l 184.977 138.172 l 184.984 138.18 l 184.984 138.184 l 184.992 
+138.191 l 184.992 138.195 l 184.996 138.199 l 184.996 138.203 l 185.004 
+138.211 l 185.004 138.215 l 185.012 138.223 l 185.012 138.227 l 185.016 
+138.23 l 185.016 138.234 l 185.023 138.242 l 185.023 138.246 l 185.031 138.254
+ l 185.031 138.258 l 185.043 138.27 l 185.043 138.273 l 185.051 138.281 
+l 185.051 138.285 l 185.055 138.289 l 185.055 138.293 l 185.062 138.301 
+l 185.062 138.305 l 185.07 138.312 l 185.07 138.316 l 185.074 138.32 l 185.074
+ 138.324 l 185.082 138.332 l 185.082 138.336 l 185.09 138.344 l 185.09 138.348
+ l 185.098 138.355 l 185.098 138.359 l 185.102 138.363 l 185.102 138.367
+ l 185.105 138.367 l 185.109 138.371 l 185.109 138.375 l 185.117 138.383
+ l 185.117 138.387 l 185.121 138.391 l 185.121 138.395 l 185.129 138.402
+ l 185.129 138.406 l 185.137 138.414 l 185.137 138.418 l 185.141 138.422
+ l 185.141 138.426 l 185.148 138.434 l 185.148 138.438 l 185.156 138.445
+ l 185.156 138.449 l 185.16 138.453 l 185.16 138.457 l 185.168 138.465 l
+ 185.168 138.469 l 185.172 138.469 l 185.176 138.473 l 185.176 138.477 l
+ 185.184 138.484 l 185.184 138.488 l 185.188 138.492 l 185.188 138.496 l
+ 185.195 138.504 l 185.195 138.508 l 185.203 138.516 l 185.203 138.52 l 
+185.207 138.523 l 185.207 138.527 l 185.215 138.535 l 185.215 138.539 l 
+185.223 138.547 l 185.223 138.551 l 185.227 138.555 l 185.227 138.559 l 
+185.234 138.566 l 185.234 138.57 l 185.238 138.57 l 185.242 138.574 l 185.242
+ 138.578 l 185.246 138.582 l 185.246 138.586 l 185.254 138.594 l 185.254
+ 138.598 l 185.262 138.605 l 185.262 138.609 l 185.266 138.613 l 185.266
+ 138.617 l 185.273 138.625 l 185.273 138.629 l 185.281 138.637 l 185.281
+ 138.641 l 185.289 138.648 l 185.289 138.652 l 185.293 138.656 l 185.293
+ 138.66 l 185.301 138.668 l 185.301 138.672 l 185.305 138.672 l 185.309 
+138.676 l 185.309 138.68 l 185.312 138.684 l 185.312 138.688 l 185.32 138.695
+ l 185.32 138.699 l 185.328 138.707 l 185.328 138.711 l 185.332 138.715 
+l 185.332 138.719 l 185.34 138.727 l 185.34 138.73 l 185.348 138.738 l 185.348
+ 138.742 l 185.352 138.746 l 185.352 138.75 l 185.359 138.758 l 185.359 
+138.762 l 185.375 138.777 l 185.375 138.781 l 185.379 138.785 l 185.379 
+138.789 l 185.387 138.797 l 185.387 138.801 l 185.395 138.809 l 185.395 
+138.812 l 185.398 138.816 l 185.398 138.82 l 185.406 138.828 l 185.406 138.832
+ l 185.414 138.84 l 185.414 138.844 l 185.418 138.848 l 185.418 138.852 
+l 185.426 138.859 l 185.426 138.863 l 185.43 138.867 l 185.434 138.867 l
+ 185.434 138.871 l 185.438 138.875 l 185.438 138.879 l 185.445 138.887 l
+ 185.445 138.891 l 185.453 138.898 l 185.453 138.902 l 185.457 138.906 l
+ 185.457 138.91 l 185.465 138.918 l 185.465 138.922 l 185.473 138.93 l 185.473
+ 138.934 l 185.48 138.941 l 185.48 138.945 l 185.484 138.949 l 185.484 138.953
+ l 185.492 138.961 l 185.492 138.965 l 185.496 138.965 l 185.5 138.969 l
+ 185.5 138.973 l 185.504 138.977 l 185.504 138.98 l 185.512 138.988 l 185.512
+ 138.992 l 185.52 139 l 185.52 139.004 l 185.523 139.008 l 185.523 139.012
+ l 185.531 139.02 l 185.531 139.023 l 185.539 139.031 l 185.539 139.035 
+l 185.543 139.039 l 185.543 139.043 l 185.551 139.051 l 185.551 139.055 
+l 185.566 139.07 l 185.566 139.074 l 185.57 139.078 l 185.57 139.082 l 185.578
+ 139.09 l 185.578 139.094 l 185.586 139.102 l 185.586 139.105 l 185.59 139.109
+ l 185.59 139.113 l 185.598 139.121 l 185.598 139.125 l 185.605 139.133 
+l 185.605 139.137 l 185.609 139.141 l 185.609 139.145 l 185.617 139.152 
+l 185.617 139.156 l 185.621 139.156 l 185.625 139.16 l 185.625 139.164 l
+ 185.629 139.168 l 185.629 139.172 l 185.637 139.18 l 185.637 139.184 l 
+185.645 139.191 l 185.645 139.195 l 185.648 139.199 l 185.648 139.203 l 
+185.656 139.211 l 185.656 139.215 l 185.664 139.223 l 185.664 139.227 l 
+185.672 139.234 l 185.672 139.238 l 185.676 139.242 l 185.676 139.246 l 
+185.68 139.25 l 185.684 139.25 l 185.684 139.254 l 185.691 139.262 l 185.691
+ 139.266 l 185.695 139.27 l 185.695 139.273 l 185.703 139.281 l 185.703 
+139.285 l 185.711 139.293 l 185.711 139.297 l 185.715 139.301 l 185.715 
+139.305 l 185.723 139.312 l 185.723 139.316 l 185.73 139.324 l 185.73 139.328
+ l 185.734 139.332 l 185.734 139.336 l 185.75 139.352 l 185.75 139.355 l
+ 185.758 139.363 l 185.758 139.367 l 185.762 139.371 l 185.762 139.375 l
+ 185.77 139.383 l 185.77 139.387 l 185.777 139.395 l 185.777 139.398 l 185.781
+ 139.402 l 185.781 139.406 l 185.789 139.414 l 185.789 139.418 l 185.797
+ 139.426 l 185.797 139.43 l 185.801 139.434 l 185.801 139.438 l 185.805 
+139.438 l 185.809 139.441 l 185.809 139.445 l 185.816 139.453 l 185.816 
+139.457 l 185.82 139.461 l 185.82 139.465 l 185.828 139.473 l 185.828 139.477
+ l 185.836 139.484 l 185.836 139.488 l 185.84 139.492 l 185.84 139.496 l
+ 185.848 139.504 l 185.848 139.508 l 185.855 139.516 l 185.855 139.52 l 
+185.867 139.531 l 185.867 139.535 l 185.875 139.543 l 185.875 139.547 l 
+185.883 139.555 l 185.883 139.559 l 185.887 139.562 l 185.887 139.566 l 
+185.895 139.574 l 185.895 139.578 l 185.902 139.586 l 185.902 139.59 l 185.906
+ 139.594 l 185.906 139.598 l 185.914 139.605 l 185.914 139.609 l 185.926
+ 139.621 l 185.926 139.625 l 185.934 139.633 l 185.934 139.637 l 185.941
+ 139.645 l 185.941 139.648 l 185.949 139.656 l 185.949 139.66 l 185.953 
+139.664 l 185.953 139.668 l 185.961 139.676 l 185.961 139.68 l 185.969 139.688
+ l 185.969 139.691 l 185.973 139.695 l 185.973 139.699 l 185.988 139.715
+ l 185.988 139.719 l 185.992 139.723 l 185.992 139.727 l 186 139.734 l 186
+ 139.738 l 186.008 139.746 l 186.008 139.75 l 186.012 139.754 l 186.012 
+139.758 l 186.02 139.766 l 186.02 139.77 l 186.027 139.777 l 186.027 139.781
+ l 186.031 139.785 l 186.031 139.789 l 186.047 139.805 l 186.047 139.809
+ l 186.055 139.816 l 186.055 139.82 l 186.059 139.824 l 186.059 139.828 
+l 186.066 139.836 l 186.066 139.84 l 186.074 139.848 l 186.074 139.852 l
+ 186.078 139.855 l 186.078 139.859 l 186.086 139.867 l 186.086 139.871 l
+ 186.094 139.879 l 186.094 139.883 l 186.105 139.895 l 186.105 139.898 l
+ 186.113 139.906 l 186.113 139.91 l 186.117 139.914 l 186.117 139.918 l 
+186.125 139.926 l 186.125 139.93 l 186.133 139.938 l 186.133 139.941 l 186.141
+ 139.949 l 186.141 139.953 l 186.145 139.957 l 186.145 139.961 l 186.152
+ 139.969 l 186.152 139.973 l 186.156 139.973 l 186.16 139.977 l 186.16 139.98
+ l 186.164 139.984 l 186.164 139.988 l 186.172 139.996 l 186.172 140 l 186.18
+ 140.008 l 186.18 140.012 l 186.184 140.016 l 186.184 140.02 l 186.191 140.027
+ l 186.191 140.031 l 186.199 140.039 l 186.199 140.043 l 186.203 140.047
+ l 186.203 140.051 l 186.219 140.066 l 186.219 140.07 l 186.223 140.074 
+l 186.223 140.078 l 186.23 140.086 l 186.23 140.09 l 186.238 140.098 l 186.238
+ 140.102 l 186.246 140.109 l 186.246 140.113 l 186.25 140.117 l 186.25 140.121
+ l 186.258 140.129 l 186.258 140.133 l 186.266 140.141 l 186.266 140.145
+ l 186.27 140.145 l 186.27 140.148 l 186.277 140.156 l 186.277 140.16 l 
+186.285 140.168 l 186.285 140.172 l 186.289 140.176 l 186.289 140.18 l 186.297
+ 140.188 l 186.297 140.191 l 186.305 140.199 l 186.305 140.203 l 186.309
+ 140.207 l 186.309 140.211 l 186.316 140.219 l 186.316 140.223 l 186.332
+ 140.238 l 186.332 140.242 l 186.336 140.246 l 186.336 140.25 l 186.344 
+140.258 l 186.344 140.262 l 186.352 140.27 l 186.352 140.273 l 186.355 140.277
+ l 186.355 140.281 l 186.363 140.289 l 186.363 140.293 l 186.371 140.301
+ l 186.371 140.305 l 186.375 140.309 l 186.375 140.312 l 186.379 140.312
+ l 186.383 140.316 l 186.383 140.32 l 186.391 140.328 l 186.391 140.332 
+l 186.395 140.336 l 186.395 140.34 l 186.402 140.348 l 186.402 140.352 l
+ 186.41 140.359 l 186.41 140.363 l 186.414 140.367 l 186.414 140.371 l 186.422
+ 140.379 l 186.422 140.383 l 186.43 140.391 l 186.43 140.395 l 186.434 140.398
+ l 186.438 140.398 l 186.438 140.402 l 186.441 140.406 l 186.441 140.41 
+l 186.449 140.418 l 186.449 140.422 l 186.457 140.43 l 186.457 140.434 l
+ 186.461 140.438 l 186.461 140.441 l 186.469 140.449 l 186.469 140.453 l
+ 186.477 140.461 l 186.477 140.465 l 186.48 140.469 l 186.48 140.473 l 186.496
+ 140.488 l 186.496 140.492 l 186.5 140.496 l 186.5 140.5 l 186.508 140.508
+ l 186.508 140.512 l 186.516 140.52 l 186.516 140.523 l 186.523 140.531 
+l 186.523 140.535 l 186.527 140.539 l 186.527 140.543 l 186.535 140.551 
+l 186.535 140.555 l 186.547 140.566 l 186.547 140.57 l 186.555 140.578 l
+ 186.555 140.582 l 186.562 140.59 l 186.562 140.594 l 186.566 140.598 l 
+186.566 140.602 l 186.574 140.609 l 186.574 140.613 l 186.582 140.621 l 
+186.582 140.625 l 186.586 140.629 l 186.586 140.633 l 186.594 140.641 l 
+186.594 140.645 l 186.598 140.645 l 186.602 140.648 l 186.602 140.652 l 
+186.605 140.656 l 186.605 140.66 l 186.613 140.668 l 186.613 140.672 l 186.621
+ 140.68 l 186.621 140.684 l 186.629 140.691 l 186.629 140.695 l 186.633 
+140.699 l 186.633 140.703 l 186.641 140.711 l 186.641 140.715 l 186.652 
+140.727 l 186.652 140.73 l 186.66 140.738 l 186.66 140.742 l 186.668 140.75
+ l 186.668 140.754 l 186.672 140.758 l 186.672 140.762 l 186.68 140.77 l
+ 186.68 140.773 l 186.688 140.781 l 186.688 140.785 l 186.691 140.789 l 
+186.691 140.793 l 186.699 140.801 l 186.699 140.805 l 186.703 140.805 l 
+186.707 140.809 l 186.707 140.812 l 186.715 140.82 l 186.715 140.824 l 186.719
+ 140.828 l 186.719 140.832 l 186.727 140.84 l 186.727 140.844 l 186.734 
+140.852 l 186.734 140.855 l 186.738 140.859 l 186.738 140.863 l 186.746 
+140.871 l 186.746 140.875 l 186.758 140.887 l 186.758 140.891 l 186.766 
+140.898 l 186.766 140.902 l 186.773 140.91 l 186.773 140.914 l 186.777 140.918
+ l 186.777 140.922 l 186.785 140.93 l 186.785 140.934 l 186.793 140.941 
+l 186.793 140.945 l 186.797 140.949 l 186.797 140.953 l 186.812 140.969 
+l 186.812 140.973 l 186.82 140.98 l 186.82 140.984 l 186.824 140.988 l 186.824
+ 140.992 l 186.832 141 l 186.832 141.004 l 186.84 141.012 l 186.84 141.016
+ l 186.844 141.02 l 186.844 141.023 l 186.852 141.031 l 186.852 141.035 
+l 186.855 141.039 l 186.859 141.039 l 186.859 141.043 l 186.863 141.047 
+l 186.863 141.051 l 186.871 141.059 l 186.871 141.062 l 186.879 141.07 l
+ 186.879 141.074 l 186.883 141.078 l 186.883 141.082 l 186.891 141.09 l 
+186.891 141.094 l 186.898 141.102 l 186.898 141.105 l 186.902 141.109 l 
+186.902 141.113 l 186.906 141.117 l 186.91 141.117 l 186.91 141.121 l 186.918
+ 141.129 l 186.918 141.133 l 186.926 141.141 l 186.926 141.145 l 186.93 
+141.148 l 186.93 141.152 l 186.938 141.16 l 186.938 141.164 l 186.945 141.172
+ l 186.945 141.176 l 186.949 141.18 l 186.949 141.184 l 186.957 141.191 
+l 186.957 141.195 l 186.961 141.195 l 186.965 141.199 l 186.965 141.203 
+l 186.969 141.207 l 186.969 141.211 l 186.977 141.219 l 186.977 141.223 
+l 186.984 141.23 l 186.984 141.234 l 186.988 141.238 l 186.988 141.242 l
+ 186.996 141.25 l 186.996 141.254 l 187.004 141.262 l 187.004 141.266 l 
+187.008 141.27 l 187.012 141.27 l 187.012 141.273 l 187.016 141.277 l 187.016
+ 141.281 l 187.023 141.289 l 187.023 141.293 l 187.031 141.301 l 187.031
+ 141.305 l 187.035 141.309 l 187.035 141.312 l 187.043 141.32 l 187.043 
+141.324 l 187.051 141.332 l 187.051 141.336 l 187.055 141.34 l 187.055 141.344
+ l 187.059 141.348 l 187.062 141.348 l 187.062 141.352 l 187.07 141.359 
+l 187.07 141.363 l 187.074 141.367 l 187.074 141.371 l 187.082 141.379 l
+ 187.082 141.383 l 187.09 141.391 l 187.09 141.395 l 187.094 141.398 l 187.094
+ 141.402 l 187.102 141.41 l 187.102 141.414 l 187.117 141.43 l 187.117 141.434
+ l 187.121 141.438 l 187.121 141.441 l 187.129 141.449 l 187.129 141.453
+ l 187.137 141.461 l 187.137 141.465 l 187.141 141.469 l 187.141 141.473
+ l 187.148 141.48 l 187.148 141.484 l 187.156 141.492 l 187.156 141.496 
+l 187.16 141.496 l 187.16 141.5 l 187.168 141.508 l 187.168 141.512 l 187.176
+ 141.52 l 187.176 141.523 l 187.18 141.527 l 187.18 141.531 l 187.188 141.539
+ l 187.188 141.543 l 187.195 141.551 l 187.195 141.555 l 187.203 141.562
+ l 187.203 141.566 l 187.215 141.578 l 187.215 141.582 l 187.223 141.59 
+l 187.223 141.594 l 187.227 141.598 l 187.227 141.602 l 187.234 141.609 
+l 187.234 141.613 l 187.242 141.621 l 187.242 141.625 l 187.246 141.629 
+l 187.246 141.633 l 187.254 141.641 l 187.254 141.645 l 187.258 141.645 
+l 187.262 141.648 l 187.262 141.652 l 187.266 141.656 l 187.266 141.66 l
+ 187.273 141.668 l 187.273 141.672 l 187.281 141.68 l 187.281 141.684 l 
+187.285 141.688 l 187.285 141.691 l 187.293 141.699 l 187.293 141.703 l 
+187.301 141.711 l 187.301 141.715 l 187.305 141.719 l 187.309 141.719 l 
+187.309 141.723 l 187.312 141.727 l 187.312 141.73 l 187.32 141.738 l 187.32
+ 141.742 l 187.328 141.75 l 187.328 141.754 l 187.332 141.758 l 187.332 
+141.762 l 187.34 141.77 l 187.34 141.773 l 187.348 141.781 l 187.348 141.785
+ l 187.359 141.797 l 187.359 141.801 l 187.367 141.809 l 187.367 141.812
+ l 187.371 141.816 l 187.371 141.82 l 187.379 141.828 l 187.379 141.832 
+l 187.387 141.84 l 187.387 141.844 l 187.395 141.852 l 187.395 141.855 l
+ 187.398 141.859 l 187.398 141.863 l 187.402 141.863 l 187.406 141.867 l
+ 187.406 141.871 l 187.414 141.879 l 187.414 141.883 l 187.418 141.887 l
+ 187.418 141.891 l 187.426 141.898 l 187.426 141.902 l 187.434 141.91 l 
+187.434 141.914 l 187.438 141.918 l 187.438 141.922 l 187.445 141.93 l 187.445
+ 141.934 l 187.449 141.934 l 187.453 141.938 l 187.453 141.941 l 187.457
+ 141.945 l 187.457 141.949 l 187.465 141.957 l 187.465 141.961 l 187.473
+ 141.969 l 187.473 141.973 l 187.477 141.977 l 187.477 141.98 l 187.484 
+141.988 l 187.484 141.992 l 187.492 142 l 187.492 142.004 l 187.496 142.004
+ l 187.5 142.008 l 187.5 142.012 l 187.504 142.016 l 187.504 142.02 l 187.512
+ 142.027 l 187.512 142.031 l 187.52 142.039 l 187.52 142.043 l 187.523 142.047
+ l 187.523 142.051 l 187.531 142.059 l 187.531 142.062 l 187.539 142.07 
+l 187.539 142.074 l 187.543 142.074 l 187.543 142.078 l 187.551 142.086 
+l 187.551 142.09 l 187.559 142.098 l 187.559 142.102 l 187.562 142.105 l
+ 187.562 142.109 l 187.57 142.117 l 187.57 142.121 l 187.578 142.129 l 187.578
+ 142.133 l 187.586 142.141 l 187.586 142.145 l 187.59 142.145 l 187.59 142.148
+ l 187.598 142.156 l 187.598 142.16 l 187.605 142.168 l 187.605 142.172 
+l 187.609 142.176 l 187.609 142.18 l 187.617 142.188 l 187.617 142.191 l
+ 187.625 142.199 l 187.625 142.203 l 187.629 142.207 l 187.629 142.211 l
+ 187.633 142.215 l 187.637 142.215 l 187.637 142.219 l 187.645 142.227 l
+ 187.645 142.23 l 187.648 142.234 l 187.648 142.238 l 187.656 142.246 l 
+187.656 142.25 l 187.664 142.258 l 187.664 142.262 l 187.668 142.266 l 187.668
+ 142.27 l 187.676 142.277 l 187.676 142.281 l 187.68 142.285 l 187.684 142.285
+ l 187.684 142.289 l 187.691 142.297 l 187.691 142.301 l 187.695 142.305
+ l 187.695 142.309 l 187.703 142.316 l 187.703 142.32 l 187.711 142.328 
+l 187.711 142.332 l 187.715 142.336 l 187.715 142.34 l 187.723 142.348 l
+ 187.723 142.352 l 187.727 142.352 l 187.73 142.355 l 187.73 142.359 l 187.734
+ 142.363 l 187.734 142.367 l 187.742 142.375 l 187.742 142.379 l 187.75 
+142.387 l 187.75 142.391 l 187.754 142.395 l 187.754 142.398 l 187.762 142.406
+ l 187.762 142.41 l 187.77 142.418 l 187.77 142.422 l 187.773 142.422 l 
+187.777 142.426 l 187.777 142.43 l 187.781 142.434 l 187.781 142.438 l 187.789
+ 142.445 l 187.789 142.449 l 187.797 142.457 l 187.797 142.461 l 187.801
+ 142.465 l 187.801 142.469 l 187.809 142.477 l 187.809 142.48 l 187.82 142.492
+ l 187.82 142.496 l 187.828 142.504 l 187.828 142.508 l 187.836 142.516 
+l 187.836 142.52 l 187.84 142.523 l 187.84 142.527 l 187.848 142.535 l 187.848
+ 142.539 l 187.855 142.547 l 187.855 142.551 l 187.867 142.562 l 187.867
+ 142.566 l 187.875 142.574 l 187.875 142.578 l 187.883 142.586 l 187.883
+ 142.59 l 187.887 142.594 l 187.887 142.598 l 187.895 142.605 l 187.895 
+142.609 l 187.902 142.617 l 187.902 142.621 l 187.906 142.621 l 187.906 
+142.625 l 187.914 142.633 l 187.914 142.637 l 187.922 142.645 l 187.922 
+142.648 l 187.926 142.652 l 187.926 142.656 l 187.934 142.664 l 187.934 
+142.668 l 187.941 142.676 l 187.941 142.68 l 187.945 142.684 l 187.945 142.688
+ l 187.949 142.688 l 187.953 142.691 l 187.953 142.695 l 187.961 142.703
+ l 187.961 142.707 l 187.969 142.715 l 187.969 142.719 l 187.973 142.723
+ l 187.973 142.727 l 187.98 142.734 l 187.98 142.738 l 187.988 142.746 l
+ 187.988 142.75 l 188 142.762 l 188 142.766 l 188.008 142.773 l 188.008 
+142.777 l 188.012 142.781 l 188.012 142.785 l 188.02 142.793 l 188.02 142.797
+ l 188.027 142.805 l 188.027 142.809 l 188.031 142.812 l 188.031 142.816
+ l 188.035 142.82 l 188.039 142.82 l 188.039 142.824 l 188.047 142.832 l
+ 188.047 142.836 l 188.051 142.84 l 188.051 142.844 l 188.059 142.852 l 
+188.059 142.855 l 188.066 142.863 l 188.066 142.867 l 188.074 142.875 l 
+188.074 142.879 l 188.078 142.883 l 188.078 142.887 l 188.082 142.887 l 
+188.086 142.891 l 188.086 142.895 l 188.094 142.902 l 188.094 142.906 l 
+188.098 142.91 l 188.098 142.914 l 188.105 142.922 l 188.105 142.926 l 188.113
+ 142.934 l 188.113 142.938 l 188.117 142.941 l 188.117 142.945 l 188.121
+ 142.949 l 188.125 142.949 l 188.125 142.953 l 188.133 142.961 l 188.133
+ 142.965 l 188.137 142.969 l 188.137 142.973 l 188.145 142.98 l 188.145 
+142.984 l 188.152 142.992 l 188.152 142.996 l 188.16 143.004 l 188.16 143.008
+ l 188.164 143.012 l 188.164 143.016 l 188.168 143.016 l 188.172 143.02 
+l 188.172 143.023 l 188.18 143.031 l 188.18 143.035 l 188.184 143.039 l 
+188.184 143.043 l 188.191 143.051 l 188.191 143.055 l 188.199 143.062 l 
+188.199 143.066 l 188.203 143.07 l 188.203 143.074 l 188.207 143.078 l 188.211
+ 143.078 l 188.211 143.082 l 188.219 143.09 l 188.219 143.094 l 188.223 
+143.098 l 188.223 143.102 l 188.23 143.109 l 188.23 143.113 l 188.238 143.121
+ l 188.238 143.125 l 188.242 143.129 l 188.242 143.133 l 188.25 143.141 
+l 188.25 143.145 l 188.254 143.145 l 188.258 143.148 l 188.258 143.152 l
+ 188.266 143.16 l 188.266 143.164 l 188.27 143.168 l 188.27 143.172 l 188.277
+ 143.18 l 188.277 143.184 l 188.285 143.191 l 188.285 143.195 l 188.289 
+143.199 l 188.289 143.203 l 188.293 143.207 l 188.297 143.207 l 188.297 
+143.211 l 188.305 143.219 l 188.305 143.223 l 188.309 143.227 l 188.309 
+143.23 l 188.316 143.238 l 188.316 143.242 l 188.324 143.25 l 188.324 143.254
+ l 188.328 143.258 l 188.328 143.262 l 188.344 143.277 l 188.344 143.281
+ l 188.352 143.289 l 188.352 143.293 l 188.355 143.297 l 188.355 143.301
+ l 188.363 143.309 l 188.363 143.312 l 188.371 143.32 l 188.371 143.324 
+l 188.375 143.328 l 188.375 143.332 l 188.379 143.332 l 188.383 143.336 
+l 188.383 143.34 l 188.391 143.348 l 188.391 143.352 l 188.395 143.355 l
+ 188.395 143.359 l 188.402 143.367 l 188.402 143.371 l 188.41 143.379 l 
+188.41 143.383 l 188.414 143.387 l 188.414 143.391 l 188.418 143.395 l 188.422
+ 143.395 l 188.422 143.398 l 188.43 143.406 l 188.43 143.41 l 188.434 143.414
+ l 188.434 143.418 l 188.441 143.426 l 188.441 143.43 l 188.449 143.438 
+l 188.449 143.441 l 188.457 143.449 l 188.457 143.453 l 188.469 143.465 
+l 188.469 143.469 l 188.477 143.477 l 188.477 143.48 l 188.48 143.484 l 
+188.48 143.488 l 188.488 143.496 l 188.488 143.5 l 188.496 143.508 l 188.496
+ 143.512 l 188.508 143.523 l 188.508 143.527 l 188.516 143.535 l 188.516
+ 143.539 l 188.52 143.543 l 188.52 143.547 l 188.527 143.555 l 188.527 143.559
+ l 188.535 143.566 l 188.535 143.57 l 188.547 143.582 l 188.547 143.586 
+l 188.555 143.594 l 188.555 143.598 l 188.562 143.605 l 188.562 143.609 
+l 188.566 143.613 l 188.566 143.617 l 188.574 143.625 l 188.574 143.629 
+l 188.582 143.637 l 188.582 143.641 l 188.586 143.641 l 188.586 143.645 
+l 188.594 143.652 l 188.594 143.656 l 188.602 143.664 l 188.602 143.668 
+l 188.605 143.672 l 188.605 143.676 l 188.613 143.684 l 188.613 143.688 
+l 188.621 143.695 l 188.621 143.699 l 188.625 143.699 l 188.625 143.703 
+l 188.633 143.711 l 188.633 143.715 l 188.641 143.723 l 188.641 143.727 
+l 188.648 143.734 l 188.648 143.738 l 188.652 143.742 l 188.652 143.746 
+l 188.66 143.754 l 188.66 143.758 l 188.664 143.758 l 188.668 143.762 l 
+188.668 143.766 l 188.672 143.77 l 188.672 143.773 l 188.68 143.781 l 188.68
+ 143.785 l 188.688 143.793 l 188.688 143.797 l 188.691 143.801 l 188.691
+ 143.805 l 188.699 143.812 l 188.699 143.816 l 188.703 143.82 l 188.707 
+143.82 l 188.707 143.824 l 188.711 143.828 l 188.711 143.832 l 188.719 143.84
+ l 188.719 143.844 l 188.727 143.852 l 188.727 143.855 l 188.734 143.863
+ l 188.734 143.867 l 188.738 143.871 l 188.738 143.875 l 188.742 143.879
+ l 188.746 143.879 l 188.746 143.883 l 188.754 143.891 l 188.754 143.895
+ l 188.758 143.898 l 188.758 143.902 l 188.766 143.91 l 188.766 143.914 
+l 188.773 143.922 l 188.773 143.926 l 188.777 143.93 l 188.777 143.934 l
+ 188.781 143.938 l 188.785 143.938 l 188.785 143.941 l 188.793 143.949 l
+ 188.793 143.953 l 188.797 143.957 l 188.797 143.961 l 188.805 143.969 l
+ 188.805 143.973 l 188.812 143.98 l 188.812 143.984 l 188.816 143.988 l 
+188.816 143.992 l 188.82 143.996 l 188.824 143.996 l 188.824 144 l 188.832
+ 144.008 l 188.832 144.012 l 188.84 144.02 l 188.84 144.023 l 188.844 144.027
+ l 188.844 144.031 l 188.852 144.039 l 188.852 144.043 l 188.859 144.051
+ l 188.859 144.055 l 188.863 144.055 l 188.863 144.059 l 188.871 144.066
+ l 188.871 144.07 l 188.879 144.078 l 188.879 144.082 l 188.883 144.086 
+l 188.883 144.09 l 188.891 144.098 l 188.891 144.102 l 188.898 144.109 l
+ 188.898 144.113 l 188.902 144.113 l 188.902 144.117 l 188.91 144.125 l 
+188.91 144.129 l 188.918 144.137 l 188.918 144.141 l 188.926 144.148 l 188.926
+ 144.152 l 188.93 144.156 l 188.93 144.16 l 188.938 144.168 l 188.938 144.172
+ l 188.941 144.172 l 188.945 144.176 l 188.945 144.18 l 188.949 144.184 
+l 188.949 144.188 l 188.957 144.195 l 188.957 144.199 l 188.965 144.207 
+l 188.965 144.211 l 188.969 144.215 l 188.969 144.219 l 188.977 144.227 
+l 188.977 144.23 l 188.98 144.23 l 188.984 144.234 l 188.984 144.238 l 188.988
+ 144.242 l 188.988 144.246 l 188.996 144.254 l 188.996 144.258 l 189.004
+ 144.266 l 189.004 144.27 l 189.008 144.273 l 189.008 144.277 l 189.023 
+144.293 l 189.023 144.297 l 189.031 144.305 l 189.031 144.309 l 189.035 
+144.312 l 189.035 144.316 l 189.043 144.324 l 189.043 144.328 l 189.051 
+144.336 l 189.051 144.34 l 189.062 144.352 l 189.062 144.355 l 189.07 144.363
+ l 189.07 144.367 l 189.074 144.371 l 189.074 144.375 l 189.082 144.383 
+l 189.082 144.387 l 189.09 144.395 l 189.09 144.398 l 189.094 144.398 l 
+189.094 144.402 l 189.102 144.41 l 189.102 144.414 l 189.109 144.422 l 189.109
+ 144.426 l 189.117 144.434 l 189.117 144.438 l 189.121 144.441 l 189.121
+ 144.445 l 189.129 144.453 l 189.129 144.457 l 189.133 144.457 l 189.137
+ 144.461 l 189.137 144.465 l 189.141 144.469 l 189.141 144.473 l 189.148
+ 144.48 l 189.148 144.484 l 189.156 144.492 l 189.156 144.496 l 189.16 144.5
+ l 189.16 144.504 l 189.176 144.52 l 189.176 144.523 l 189.18 144.527 l 
+189.18 144.531 l 189.188 144.539 l 189.188 144.543 l 189.195 144.551 l 189.195
+ 144.555 l 189.199 144.559 l 189.199 144.562 l 189.215 144.578 l 189.215
+ 144.582 l 189.223 144.59 l 189.223 144.594 l 189.227 144.598 l 189.227 
+144.602 l 189.234 144.609 l 189.234 144.613 l 189.242 144.621 l 189.242 
+144.625 l 189.246 144.625 l 189.246 144.629 l 189.254 144.637 l 189.254 
+144.641 l 189.262 144.648 l 189.262 144.652 l 189.266 144.656 l 189.266 
+144.66 l 189.273 144.668 l 189.273 144.672 l 189.285 144.684 l 189.285 144.688
+ l 189.293 144.695 l 189.293 144.699 l 189.301 144.707 l 189.301 144.711
+ l 189.309 144.719 l 189.309 144.723 l 189.312 144.727 l 189.312 144.73 
+l 189.316 144.734 l 189.32 144.734 l 189.32 144.738 l 189.328 144.746 l 
+189.328 144.75 l 189.332 144.754 l 189.332 144.758 l 189.34 144.766 l 189.34
+ 144.77 l 189.348 144.777 l 189.348 144.781 l 189.352 144.785 l 189.352 
+144.789 l 189.355 144.789 l 189.359 144.793 l 189.359 144.797 l 189.367 
+144.805 l 189.367 144.809 l 189.371 144.812 l 189.371 144.816 l 189.379 
+144.824 l 189.379 144.828 l 189.387 144.836 l 189.387 144.84 l 189.398 144.852
+ l 189.398 144.855 l 189.406 144.863 l 189.406 144.867 l 189.414 144.875
+ l 189.414 144.879 l 189.418 144.883 l 189.418 144.887 l 189.426 144.895
+ l 189.426 144.898 l 189.43 144.898 l 189.434 144.902 l 189.434 144.906 
+l 189.438 144.91 l 189.438 144.914 l 189.445 144.922 l 189.445 144.926 l
+ 189.453 144.934 l 189.453 144.938 l 189.457 144.941 l 189.457 144.945 l
+ 189.473 144.961 l 189.473 144.965 l 189.477 144.969 l 189.477 144.973 l
+ 189.484 144.98 l 189.484 144.984 l 189.492 144.992 l 189.492 144.996 l 
+189.5 145.004 l 189.5 145.008 l 189.504 145.008 l 189.504 145.012 l 189.512
+ 145.02 l 189.512 145.023 l 189.52 145.031 l 189.52 145.035 l 189.523 145.039
+ l 189.523 145.043 l 189.531 145.051 l 189.531 145.055 l 189.535 145.059
+ l 189.539 145.059 l 189.539 145.062 l 189.543 145.066 l 189.543 145.07 
+l 189.551 145.078 l 189.551 145.082 l 189.559 145.09 l 189.559 145.094 l
+ 189.562 145.098 l 189.562 145.102 l 189.57 145.109 l 189.57 145.113 l 189.574
+ 145.113 l 189.578 145.117 l 189.578 145.121 l 189.582 145.125 l 189.582
+ 145.129 l 189.59 145.137 l 189.59 145.141 l 189.598 145.148 l 189.598 145.152
+ l 189.605 145.16 l 189.605 145.164 l 189.617 145.176 l 189.617 145.18 l
+ 189.625 145.188 l 189.625 145.191 l 189.629 145.195 l 189.629 145.199 l
+ 189.637 145.207 l 189.637 145.211 l 189.648 145.223 l 189.648 145.227 l
+ 189.656 145.234 l 189.656 145.238 l 189.664 145.246 l 189.664 145.25 l 
+189.668 145.254 l 189.668 145.258 l 189.676 145.266 l 189.676 145.27 l 189.68
+ 145.273 l 189.684 145.273 l 189.684 145.277 l 189.691 145.285 l 189.691
+ 145.289 l 189.695 145.293 l 189.695 145.297 l 189.703 145.305 l 189.703
+ 145.309 l 189.711 145.316 l 189.711 145.32 l 189.723 145.332 l 189.723 
+145.336 l 189.73 145.344 l 189.73 145.348 l 189.734 145.352 l 189.734 145.355
+ l 189.742 145.363 l 189.742 145.367 l 189.754 145.379 l 189.754 145.383
+ l 189.762 145.391 l 189.762 145.395 l 189.77 145.402 l 189.77 145.406 l
+ 189.773 145.41 l 189.773 145.414 l 189.781 145.422 l 189.781 145.426 l 
+189.785 145.43 l 189.789 145.43 l 189.789 145.434 l 189.797 145.441 l 189.797
+ 145.445 l 189.801 145.449 l 189.801 145.453 l 189.809 145.461 l 189.809
+ 145.465 l 189.816 145.473 l 189.816 145.477 l 189.828 145.488 l 189.828
+ 145.492 l 189.836 145.5 l 189.836 145.504 l 189.84 145.508 l 189.84 145.512
+ l 189.848 145.52 l 189.848 145.523 l 189.859 145.535 l 189.859 145.539 
+l 189.867 145.547 l 189.867 145.551 l 189.875 145.559 l 189.875 145.562 
+l 189.883 145.57 l 189.883 145.574 l 189.887 145.578 l 189.887 145.582 l
+ 189.891 145.582 l 189.895 145.586 l 189.895 145.59 l 189.902 145.598 l 
+189.902 145.602 l 189.906 145.605 l 189.906 145.609 l 189.914 145.617 l 
+189.914 145.621 l 189.922 145.629 l 189.922 145.633 l 189.926 145.633 l 
+189.926 145.637 l 189.934 145.645 l 189.934 145.648 l 189.941 145.656 l 
+189.941 145.66 l 189.945 145.664 l 189.945 145.668 l 189.953 145.676 l 189.953
+ 145.68 l 189.957 145.684 l 189.961 145.684 l 189.961 145.688 l 189.965 
+145.691 l 189.965 145.695 l 189.973 145.703 l 189.973 145.707 l 189.98 145.715
+ l 189.98 145.719 l 189.988 145.727 l 189.988 145.73 l 190 145.742 l 190
+ 145.746 l 190.008 145.754 l 190.008 145.758 l 190.012 145.762 l 190.012
+ 145.766 l 190.02 145.773 l 190.02 145.777 l 190.031 145.789 l 190.031 145.793
+ l 190.039 145.801 l 190.039 145.805 l 190.047 145.812 l 190.047 145.816
+ l 190.051 145.82 l 190.051 145.824 l 190.059 145.832 l 190.059 145.836 
+l 190.062 145.836 l 190.066 145.84 l 190.066 145.844 l 190.074 145.852 l
+ 190.074 145.855 l 190.078 145.859 l 190.078 145.863 l 190.086 145.871 l
+ 190.086 145.875 l 190.098 145.887 l 190.098 145.891 l 190.105 145.898 l
+ 190.105 145.902 l 190.113 145.91 l 190.113 145.914 l 190.117 145.918 l 
+190.117 145.922 l 190.125 145.93 l 190.125 145.934 l 190.129 145.934 l 190.133
+ 145.938 l 190.133 145.941 l 190.137 145.945 l 190.137 145.949 l 190.145
+ 145.957 l 190.145 145.961 l 190.152 145.969 l 190.152 145.973 l 190.156
+ 145.977 l 190.156 145.98 l 190.16 145.984 l 190.164 145.984 l 190.164 145.988
+ l 190.172 145.996 l 190.172 146 l 190.18 146.008 l 190.18 146.012 l 190.184
+ 146.016 l 190.184 146.02 l 190.191 146.027 l 190.191 146.031 l 190.195 
+146.031 l 190.199 146.035 l 190.199 146.039 l 190.203 146.043 l 190.203 
+146.047 l 190.211 146.055 l 190.211 146.059 l 190.219 146.066 l 190.219 
+146.07 l 190.223 146.074 l 190.223 146.078 l 190.227 146.082 l 190.23 146.082
+ l 190.23 146.086 l 190.238 146.094 l 190.238 146.098 l 190.242 146.102 
+l 190.242 146.105 l 190.25 146.113 l 190.25 146.117 l 190.258 146.125 l 
+190.258 146.129 l 190.262 146.129 l 190.266 146.133 l 190.266 146.137 l 
+190.27 146.141 l 190.27 146.145 l 190.277 146.152 l 190.277 146.156 l 190.285
+ 146.164 l 190.285 146.168 l 190.289 146.172 l 190.289 146.176 l S
+190.289 146.176 m 190.293 146.18 l 190.297 146.18 l 190.297 146.184 l 190.305
+ 146.191 l 190.305 146.195 l 190.309 146.199 l 190.309 146.203 l 190.316
+ 146.211 l 190.316 146.215 l 190.324 146.223 l 190.324 146.227 l 190.328
+ 146.227 l 190.328 146.23 l 190.336 146.238 l 190.336 146.242 l 190.344 
+146.25 l 190.344 146.254 l 190.348 146.258 l 190.348 146.262 l 190.355 146.27
+ l 190.355 146.273 l 190.359 146.277 l 190.363 146.277 l 190.363 146.281
+ l 190.371 146.289 l 190.371 146.293 l 190.375 146.297 l 190.375 146.301
+ l 190.383 146.309 l 190.383 146.312 l 190.391 146.32 l 190.391 146.324 
+l 190.395 146.324 l 190.395 146.328 l 190.402 146.336 l 190.402 146.34 l
+ 190.41 146.348 l 190.41 146.352 l 190.414 146.355 l 190.414 146.359 l 190.422
+ 146.367 l 190.422 146.371 l 190.426 146.371 l 190.43 146.375 l 190.43 146.379
+ l 190.434 146.383 l 190.434 146.387 l 190.441 146.395 l 190.441 146.398
+ l 190.449 146.406 l 190.449 146.41 l 190.453 146.414 l 190.453 146.418 
+l 190.457 146.418 l 190.461 146.422 l 190.461 146.426 l 190.469 146.434 
+l 190.469 146.438 l 190.477 146.445 l 190.477 146.449 l 190.48 146.453 l
+ 190.48 146.457 l 190.488 146.465 l 190.488 146.469 l 190.492 146.469 l 
+190.496 146.473 l 190.496 146.477 l 190.5 146.48 l 190.5 146.484 l 190.508
+ 146.492 l 190.508 146.496 l 190.516 146.504 l 190.516 146.508 l 190.52 
+146.512 l 190.52 146.516 l 190.523 146.516 l 190.527 146.52 l 190.527 146.523
+ l 190.535 146.531 l 190.535 146.535 l 190.539 146.539 l 190.539 146.543
+ l 190.547 146.551 l 190.547 146.555 l 190.562 146.57 l 190.562 146.574 
+l 190.566 146.578 l 190.566 146.582 l 190.574 146.59 l 190.574 146.594 l
+ 190.582 146.602 l 190.582 146.605 l 190.594 146.617 l 190.594 146.621 l
+ 190.602 146.629 l 190.602 146.633 l 190.605 146.637 l 190.605 146.641 l
+ 190.613 146.648 l 190.613 146.652 l 190.617 146.656 l 190.621 146.656 l
+ 190.621 146.66 l 190.625 146.664 l 190.625 146.668 l 190.633 146.676 l 
+190.633 146.68 l 190.641 146.688 l 190.641 146.691 l 190.645 146.695 l 190.645
+ 146.699 l 190.648 146.703 l 190.652 146.703 l 190.652 146.707 l 190.66 
+146.715 l 190.66 146.719 l 190.668 146.727 l 190.668 146.73 l 190.672 146.734
+ l 190.672 146.738 l 190.68 146.746 l 190.68 146.75 l 190.684 146.75 l 190.688
+ 146.754 l 190.688 146.758 l 190.691 146.762 l 190.691 146.766 l 190.699
+ 146.773 l 190.699 146.777 l 190.707 146.785 l 190.707 146.789 l 190.719
+ 146.801 l 190.719 146.805 l 190.727 146.812 l 190.727 146.816 l 190.73 
+146.82 l 190.73 146.824 l 190.738 146.832 l 190.738 146.836 l 190.742 146.84
+ l 190.746 146.84 l 190.746 146.844 l 190.754 146.852 l 190.754 146.855 
+l 190.758 146.859 l 190.758 146.863 l 190.766 146.871 l 190.766 146.875 
+l 190.773 146.883 l 190.773 146.887 l 190.777 146.887 l 190.777 146.891 
+l 190.785 146.898 l 190.785 146.902 l 190.793 146.91 l 190.793 146.914 l
+ 190.797 146.918 l 190.797 146.922 l 190.805 146.93 l 190.805 146.934 l 
+190.809 146.934 l 190.812 146.938 l 190.812 146.941 l 190.816 146.945 l 
+190.816 146.949 l 190.824 146.957 l 190.824 146.961 l 190.832 146.969 l 
+190.832 146.973 l 190.844 146.984 l 190.844 146.988 l 190.852 146.996 l 
+190.852 147 l 190.859 147.008 l 190.859 147.012 l 190.863 147.016 l 190.863
+ 147.02 l 190.867 147.023 l 190.871 147.023 l 190.871 147.027 l 190.879 
+147.035 l 190.879 147.039 l 190.883 147.043 l 190.883 147.047 l 190.891 
+147.055 l 190.891 147.059 l 190.902 147.07 l 190.902 147.074 l 190.91 147.082
+ l 190.91 147.086 l 190.918 147.094 l 190.918 147.098 l 190.922 147.102 
+l 190.922 147.105 l 190.938 147.121 l 190.938 147.125 l 190.945 147.133 
+l 190.945 147.137 l 190.949 147.141 l 190.949 147.145 l 190.957 147.152 
+l 190.957 147.156 l 190.961 147.156 l 190.965 147.16 l 190.965 147.164 l
+ 190.969 147.168 l 190.969 147.172 l 190.977 147.18 l 190.977 147.184 l 
+190.984 147.191 l 190.984 147.195 l 190.988 147.199 l 190.988 147.203 l 
+190.992 147.203 l 190.996 147.207 l 190.996 147.211 l 191.004 147.219 l 
+191.004 147.223 l 191.008 147.227 l 191.008 147.23 l 191.016 147.238 l 191.016
+ 147.242 l 191.02 147.246 l 191.023 147.246 l 191.023 147.25 l 191.027 147.254
+ l 191.027 147.258 l 191.035 147.266 l 191.035 147.27 l 191.043 147.277 
+l 191.043 147.281 l 191.051 147.289 l 191.051 147.293 l 191.055 147.293 
+l 191.055 147.297 l 191.062 147.305 l 191.062 147.309 l 191.07 147.316 l
+ 191.07 147.32 l 191.074 147.324 l 191.074 147.328 l 191.09 147.344 l 191.09
+ 147.348 l 191.094 147.352 l 191.094 147.355 l 191.102 147.363 l 191.102
+ 147.367 l 191.109 147.375 l 191.109 147.379 l 191.113 147.379 l 191.113
+ 147.383 l 191.121 147.391 l 191.121 147.395 l 191.129 147.402 l 191.129
+ 147.406 l 191.137 147.414 l 191.137 147.418 l 191.148 147.43 l 191.148 
+147.434 l 191.156 147.441 l 191.156 147.445 l 191.16 147.449 l 191.16 147.453
+ l 191.168 147.461 l 191.168 147.465 l 191.172 147.469 l 191.176 147.469
+ l 191.176 147.473 l 191.18 147.477 l 191.18 147.48 l 191.188 147.488 l 
+191.188 147.492 l 191.195 147.5 l 191.195 147.504 l 191.199 147.508 l 191.199
+ 147.512 l 191.203 147.512 l 191.207 147.516 l 191.207 147.52 l 191.215 
+147.527 l 191.215 147.531 l 191.219 147.535 l 191.219 147.539 l 191.227 
+147.547 l 191.227 147.551 l 191.23 147.555 l 191.234 147.555 l 191.234 147.559
+ l 191.242 147.566 l 191.242 147.57 l 191.246 147.574 l 191.246 147.578 
+l 191.254 147.586 l 191.254 147.59 l 191.266 147.602 l 191.266 147.605 l
+ 191.273 147.613 l 191.273 147.617 l 191.281 147.625 l 191.281 147.629 l
+ 191.285 147.633 l 191.285 147.637 l 191.289 147.641 l 191.293 147.641 l
+ 191.293 147.645 l 191.301 147.652 l 191.301 147.656 l 191.305 147.66 l 
+191.305 147.664 l 191.312 147.672 l 191.312 147.676 l 191.328 147.691 l 
+191.328 147.695 l 191.332 147.699 l 191.332 147.703 l 191.34 147.711 l 191.34
+ 147.715 l 191.348 147.723 l 191.348 147.727 l 191.352 147.727 l 191.352
+ 147.73 l 191.359 147.738 l 191.359 147.742 l 191.367 147.75 l 191.367 147.754
+ l 191.371 147.758 l 191.371 147.762 l 191.387 147.777 l 191.387 147.781
+ l 191.391 147.785 l 191.391 147.789 l 191.398 147.797 l 191.398 147.801
+ l 191.406 147.809 l 191.406 147.812 l 191.41 147.812 l 191.41 147.816 l
+ 191.418 147.824 l 191.418 147.828 l 191.426 147.836 l 191.426 147.84 l 
+191.434 147.848 l 191.434 147.852 l 191.445 147.863 l 191.445 147.867 l 
+191.453 147.875 l 191.453 147.879 l 191.457 147.883 l 191.457 147.887 l 
+191.465 147.895 l 191.465 147.898 l 191.469 147.898 l 191.473 147.902 l 
+191.473 147.906 l 191.477 147.91 l 191.477 147.914 l 191.484 147.922 l 191.484
+ 147.926 l 191.492 147.934 l 191.492 147.938 l 191.496 147.938 l 191.496
+ 147.941 l 191.504 147.949 l 191.504 147.953 l 191.512 147.961 l 191.512
+ 147.965 l 191.52 147.973 l 191.52 147.977 l 191.531 147.988 l 191.531 147.992
+ l 191.539 148 l 191.539 148.004 l 191.543 148.008 l 191.543 148.012 l 191.551
+ 148.02 l 191.551 148.023 l 191.555 148.023 l 191.559 148.027 l 191.559 
+148.031 l 191.562 148.035 l 191.562 148.039 l 191.57 148.047 l 191.57 148.051
+ l 191.578 148.059 l 191.578 148.062 l 191.59 148.074 l 191.59 148.078 l
+ 191.598 148.086 l 191.598 148.09 l 191.602 148.094 l 191.602 148.098 l 
+191.617 148.113 l 191.617 148.117 l 191.625 148.125 l 191.625 148.129 l 
+191.629 148.133 l 191.629 148.137 l 191.637 148.145 l 191.637 148.148 l 
+191.641 148.148 l 191.645 148.152 l 191.645 148.156 l 191.648 148.16 l 191.648
+ 148.164 l 191.656 148.172 l 191.656 148.176 l 191.664 148.184 l 191.664
+ 148.188 l 191.668 148.188 l 191.668 148.191 l 191.676 148.199 l 191.676
+ 148.203 l 191.684 148.211 l 191.684 148.215 l 191.688 148.219 l 191.688
+ 148.223 l 191.703 148.238 l 191.703 148.242 l 191.711 148.25 l 191.711 
+148.254 l 191.715 148.258 l 191.715 148.262 l 191.73 148.277 l 191.73 148.281
+ l 191.734 148.285 l 191.734 148.289 l 191.742 148.297 l 191.742 148.301
+ l 191.75 148.309 l 191.75 148.312 l 191.754 148.312 l 191.754 148.316 l
+ 191.762 148.324 l 191.762 148.328 l 191.77 148.336 l 191.77 148.34 l 191.773
+ 148.344 l 191.773 148.348 l 191.777 148.352 l 191.781 148.352 l 191.781
+ 148.355 l 191.789 148.363 l 191.789 148.367 l 191.793 148.371 l 191.793
+ 148.375 l 191.801 148.383 l 191.801 148.387 l 191.816 148.402 l 191.816
+ 148.406 l 191.82 148.41 l 191.82 148.414 l 191.828 148.422 l 191.828 148.426
+ l 191.84 148.438 l 191.84 148.441 l 191.848 148.449 l 191.848 148.453 l
+ 191.855 148.461 l 191.855 148.465 l 191.859 148.469 l 191.859 148.473 l
+ 191.863 148.473 l 191.867 148.477 l 191.867 148.48 l 191.875 148.488 l 
+191.875 148.492 l 191.879 148.496 l 191.879 148.5 l 191.887 148.508 l 191.887
+ 148.512 l 191.891 148.516 l 191.895 148.516 l 191.895 148.52 l 191.902 
+148.527 l 191.902 148.531 l 191.906 148.535 l 191.906 148.539 l 191.914 
+148.547 l 191.914 148.551 l 191.918 148.555 l 191.922 148.555 l 191.922 
+148.559 l 191.926 148.562 l 191.926 148.566 l 191.934 148.574 l 191.934 
+148.578 l 191.941 148.586 l 191.941 148.59 l 191.953 148.602 l 191.953 148.605
+ l 191.961 148.613 l 191.961 148.617 l 191.965 148.621 l 191.965 148.625
+ l 191.973 148.633 l 191.973 148.637 l 191.977 148.637 l 191.98 148.641 
+l 191.98 148.645 l 191.984 148.648 l 191.984 148.652 l 191.992 148.66 l 
+191.992 148.664 l 192 148.672 l 192 148.676 l 192.004 148.676 l 192.008 
+148.68 l 192.008 148.684 l 192.012 148.688 l 192.012 148.691 l 192.02 148.699
+ l 192.02 148.703 l 192.027 148.711 l 192.027 148.715 l 192.031 148.715 
+l 192.031 148.719 l 192.039 148.727 l 192.039 148.73 l 192.047 148.738 l
+ 192.047 148.742 l 192.051 148.746 l 192.051 148.75 l 192.055 148.754 l 
+192.059 148.754 l 192.059 148.758 l 192.066 148.766 l 192.066 148.77 l 192.07
+ 148.773 l 192.07 148.777 l 192.078 148.785 l 192.078 148.789 l 192.082 
+148.793 l 192.086 148.793 l 192.086 148.797 l 192.094 148.805 l 192.094 
+148.809 l 192.098 148.812 l 192.098 148.816 l 192.105 148.824 l 192.105 
+148.828 l 192.109 148.832 l 192.113 148.832 l 192.113 148.836 l 192.117 
+148.84 l 192.117 148.844 l 192.125 148.852 l 192.125 148.855 l 192.133 148.863
+ l 192.133 148.867 l 192.145 148.879 l 192.145 148.883 l 192.152 148.891
+ l 192.152 148.895 l 192.156 148.898 l 192.156 148.902 l 192.172 148.918
+ l 192.172 148.922 l 192.176 148.926 l 192.176 148.93 l 192.184 148.938 
+l 192.184 148.941 l 192.199 148.957 l 192.199 148.961 l 192.203 148.965 
+l 192.203 148.969 l 192.211 148.977 l 192.211 148.98 l 192.223 148.992 l
+ 192.223 148.996 l 192.23 149.004 l 192.23 149.008 l 192.238 149.016 l 192.238
+ 149.02 l 192.242 149.023 l 192.242 149.027 l 192.246 149.027 l 192.25 149.031
+ l 192.25 149.035 l 192.258 149.043 l 192.258 149.047 l 192.262 149.051 
+l 192.262 149.055 l 192.27 149.062 l 192.27 149.066 l 192.273 149.066 l 
+192.277 149.07 l 192.277 149.074 l 192.285 149.082 l 192.285 149.086 l 192.289
+ 149.09 l 192.289 149.094 l 192.297 149.102 l 192.297 149.105 l 192.301 
+149.105 l 192.305 149.109 l 192.305 149.113 l 192.309 149.117 l 192.309 
+149.121 l 192.316 149.129 l 192.316 149.133 l 192.324 149.141 l 192.324 
+149.145 l 192.328 149.145 l 192.328 149.148 l 192.336 149.156 l 192.336 
+149.16 l 192.344 149.168 l 192.344 149.172 l 192.348 149.176 l 192.348 149.18
+ l 192.352 149.18 l 192.355 149.184 l 192.355 149.188 l 192.363 149.195 
+l 192.363 149.199 l 192.367 149.203 l 192.367 149.207 l 192.375 149.215 
+l 192.375 149.219 l 192.379 149.219 l 192.383 149.223 l 192.383 149.227 
+l 192.391 149.234 l 192.391 149.238 l 192.395 149.242 l 192.395 149.246 
+l 192.402 149.254 l 192.402 149.258 l 192.406 149.258 l 192.41 149.262 l
+ 192.41 149.266 l 192.414 149.27 l 192.414 149.273 l 192.422 149.281 l 192.422
+ 149.285 l 192.43 149.293 l 192.43 149.297 l 192.434 149.297 l 192.434 149.301
+ l 192.441 149.309 l 192.441 149.312 l 192.449 149.32 l 192.449 149.324 
+l 192.453 149.328 l 192.453 149.332 l 192.457 149.332 l 192.461 149.336 
+l 192.461 149.34 l 192.469 149.348 l 192.469 149.352 l 192.477 149.359 l
+ 192.477 149.363 l 192.48 149.367 l 192.48 149.371 l 192.484 149.371 l 192.488
+ 149.375 l 192.488 149.379 l 192.496 149.387 l 192.496 149.391 l 192.5 149.395
+ l 192.5 149.398 l 192.508 149.406 l 192.508 149.41 l 192.512 149.41 l 192.516
+ 149.414 l 192.516 149.418 l 192.52 149.422 l 192.52 149.426 l 192.527 149.434
+ l 192.527 149.438 l 192.539 149.449 l 192.539 149.453 l 192.547 149.461
+ l 192.547 149.465 l 192.555 149.473 l 192.555 149.477 l 192.559 149.48 
+l 192.559 149.484 l 192.562 149.484 l 192.566 149.488 l 192.566 149.492 
+l 192.574 149.5 l 192.574 149.504 l 192.582 149.512 l 192.582 149.516 l 
+192.594 149.527 l 192.594 149.531 l 192.602 149.539 l 192.602 149.543 l 
+192.605 149.547 l 192.605 149.551 l 192.621 149.566 l 192.621 149.57 l 192.625
+ 149.574 l 192.625 149.578 l 192.633 149.586 l 192.633 149.59 l 192.637 
+149.594 l 192.641 149.594 l 192.641 149.598 l 192.645 149.602 l 192.645 
+149.605 l 192.652 149.613 l 192.652 149.617 l 192.66 149.625 l 192.66 149.629
+ l 192.672 149.641 l 192.672 149.645 l 192.68 149.652 l 192.68 149.656 l
+ 192.688 149.664 l 192.688 149.668 l 192.691 149.668 l 192.691 149.672 l
+ 192.699 149.68 l 192.699 149.684 l 192.707 149.691 l 192.707 149.695 l 
+192.711 149.699 l 192.711 149.703 l 192.715 149.707 l 192.719 149.707 l 
+192.719 149.711 l 192.727 149.719 l 192.727 149.723 l 192.73 149.727 l 192.73
+ 149.73 l 192.738 149.738 l 192.738 149.742 l 192.742 149.742 l 192.746 
+149.746 l 192.746 149.75 l 192.75 149.754 l 192.75 149.758 l 192.758 149.766
+ l 192.758 149.77 l 192.773 149.785 l 192.773 149.789 l 192.777 149.793 
+l 192.777 149.797 l 192.785 149.805 l 192.785 149.809 l 192.797 149.82 l
+ 192.797 149.824 l 192.805 149.832 l 192.805 149.836 l 192.812 149.844 l
+ 192.812 149.848 l 192.824 149.859 l 192.824 149.863 l 192.832 149.871 l
+ 192.832 149.875 l 192.836 149.879 l 192.836 149.883 l 192.84 149.887 l 
+192.844 149.887 l 192.844 149.891 l 192.852 149.898 l 192.852 149.902 l 
+192.855 149.906 l 192.855 149.91 l 192.863 149.918 l 192.863 149.922 l 192.867
+ 149.926 l 192.871 149.926 l 192.871 149.93 l 192.879 149.938 l 192.879 
+149.941 l 192.883 149.945 l 192.883 149.949 l 192.891 149.957 l 192.891 
+149.961 l 192.895 149.961 l 192.898 149.965 l 192.898 149.969 l 192.902 
+149.973 l 192.902 149.977 l 192.91 149.984 l 192.91 149.988 l 192.922 150
+ l 192.922 150.004 l 192.93 150.012 l 192.93 150.016 l 192.938 150.023 l
+ 192.938 150.027 l 192.949 150.039 l 192.949 150.043 l 192.957 150.051 l
+ 192.957 150.055 l 192.965 150.062 l 192.965 150.066 l 192.969 150.066 l
+ 192.969 150.07 l 192.977 150.078 l 192.977 150.082 l 192.984 150.09 l 192.984
+ 150.094 l 192.988 150.098 l 192.988 150.102 l 192.992 150.105 l 192.996
+ 150.105 l 192.996 150.109 l 193.004 150.117 l 193.004 150.121 l 193.008
+ 150.125 l 193.008 150.129 l 193.016 150.137 l 193.016 150.141 l 193.02 
+150.141 l 193.023 150.145 l 193.023 150.148 l 193.027 150.152 l 193.027 
+150.156 l 193.035 150.164 l 193.035 150.168 l 193.047 150.18 l 193.047 150.184
+ l 193.055 150.191 l 193.055 150.195 l 193.062 150.203 l 193.062 150.207
+ l 193.066 150.211 l 193.07 150.211 l 193.07 150.215 l 193.074 150.219 l
+ 193.074 150.223 l 193.082 150.23 l 193.082 150.234 l 193.09 150.242 l 193.09
+ 150.246 l 193.094 150.246 l 193.094 150.25 l 193.102 150.258 l 193.102 
+150.262 l 193.109 150.27 l 193.109 150.273 l 193.113 150.277 l 193.113 150.281
+ l 193.117 150.281 l 193.121 150.285 l 193.121 150.289 l 193.129 150.297
+ l 193.129 150.301 l 193.133 150.305 l 193.133 150.309 l 193.148 150.324
+ l 193.148 150.328 l 193.156 150.336 l 193.156 150.34 l 193.16 150.344 l
+ 193.16 150.348 l 193.164 150.352 l 193.168 150.352 l 193.168 150.355 l 
+193.176 150.363 l 193.176 150.367 l 193.18 150.371 l 193.18 150.375 l 193.188
+ 150.383 l 193.188 150.387 l 193.191 150.387 l 193.195 150.391 l 193.195
+ 150.395 l 193.199 150.398 l 193.199 150.402 l 193.207 150.41 l 193.207 
+150.414 l 193.219 150.426 l 193.219 150.43 l 193.227 150.438 l 193.227 150.441
+ l 193.234 150.449 l 193.234 150.453 l 193.246 150.465 l 193.246 150.469
+ l 193.254 150.477 l 193.254 150.48 l 193.262 150.488 l 193.262 150.492 
+l 193.266 150.492 l 193.266 150.496 l 193.273 150.504 l 193.273 150.508 
+l 193.281 150.516 l 193.281 150.52 l 193.293 150.531 l 193.293 150.535 l
+ 193.301 150.543 l 193.301 150.547 l 193.305 150.551 l 193.305 150.555 l
+ 193.309 150.559 l 193.312 150.559 l 193.312 150.562 l 193.32 150.57 l 193.32
+ 150.574 l 193.324 150.578 l 193.324 150.582 l 193.332 150.59 l 193.332 
+150.594 l 193.336 150.594 l 193.34 150.598 l 193.34 150.602 l 193.348 150.609
+ l 193.348 150.613 l 193.352 150.617 l 193.352 150.621 l 193.367 150.637
+ l 193.367 150.641 l 193.371 150.645 l 193.371 150.648 l 193.379 150.656
+ l 193.379 150.66 l 193.383 150.664 l 193.387 150.664 l 193.387 150.668 
+l 193.391 150.672 l 193.391 150.676 l 193.398 150.684 l 193.398 150.688 
+l 193.41 150.699 l 193.41 150.703 l 193.418 150.711 l 193.418 150.715 l 
+193.426 150.723 l 193.426 150.727 l 193.438 150.738 l 193.438 150.742 l 
+193.445 150.75 l 193.445 150.754 l 193.453 150.762 l 193.453 150.766 l 193.457
+ 150.766 l 193.457 150.77 l 193.465 150.777 l 193.465 150.781 l 193.473 
+150.789 l 193.473 150.793 l 193.477 150.797 l 193.477 150.801 l 193.48 150.801
+ l 193.484 150.805 l 193.484 150.809 l 193.492 150.816 l 193.492 150.82 
+l 193.496 150.824 l 193.496 150.828 l 193.5 150.832 l 193.504 150.832 l 
+193.504 150.836 l 193.512 150.844 l 193.512 150.848 l 193.516 150.852 l 
+193.516 150.855 l 193.523 150.863 l 193.523 150.867 l 193.527 150.867 l 
+193.531 150.871 l 193.531 150.875 l 193.539 150.883 l 193.539 150.887 l 
+193.543 150.891 l 193.543 150.895 l 193.559 150.91 l 193.559 150.914 l 193.562
+ 150.918 l 193.562 150.922 l 193.57 150.93 l 193.57 150.934 l 193.574 150.934
+ l 193.578 150.938 l 193.578 150.941 l 193.582 150.945 l 193.582 150.949
+ l 193.59 150.957 l 193.59 150.961 l 193.602 150.973 l 193.602 150.977 l
+ 193.609 150.984 l 193.609 150.988 l 193.617 150.996 l 193.617 151 l 193.621
+ 151 l 193.621 151.004 l 193.629 151.012 l 193.629 151.016 l 193.637 151.023
+ l 193.637 151.027 l 193.648 151.039 l 193.648 151.043 l 193.656 151.051
+ l 193.656 151.055 l 193.664 151.062 l 193.664 151.066 l 193.668 151.066
+ l 193.668 151.07 l 193.676 151.078 l 193.676 151.082 l 193.684 151.09 l
+ 193.684 151.094 l 193.688 151.098 l 193.688 151.102 l 193.691 151.102 l
+ 193.695 151.105 l 193.695 151.109 l 193.703 151.117 l 193.703 151.121 l
+ 193.707 151.125 l 193.707 151.129 l 193.711 151.133 l 193.715 151.133 l
+ 193.715 151.137 l 193.723 151.145 l 193.723 151.148 l 193.73 151.156 l 
+193.73 151.16 l 193.734 151.164 l 193.734 151.168 l 193.738 151.168 l 193.742
+ 151.172 l 193.742 151.176 l 193.75 151.184 l 193.75 151.188 l 193.754 151.191
+ l 193.754 151.195 l 193.758 151.199 l 193.762 151.199 l 193.762 151.203
+ l 193.77 151.211 l 193.77 151.215 l 193.773 151.219 l 193.773 151.223 l
+ 193.781 151.23 l 193.781 151.234 l 193.785 151.234 l 193.789 151.238 l 
+193.789 151.242 l 193.793 151.246 l 193.793 151.25 l 193.801 151.258 l 193.801
+ 151.262 l 193.805 151.266 l 193.809 151.266 l 193.809 151.27 l 193.812 
+151.273 l 193.812 151.277 l 193.82 151.285 l 193.82 151.289 l 193.836 151.305
+ l 193.836 151.309 l 193.84 151.312 l 193.84 151.316 l 193.848 151.324 l
+ 193.848 151.328 l 193.852 151.332 l 193.855 151.332 l 193.855 151.336 l
+ 193.859 151.34 l 193.859 151.344 l 193.867 151.352 l 193.867 151.355 l 
+193.879 151.367 l 193.879 151.371 l 193.887 151.379 l 193.887 151.383 l 
+193.895 151.391 l 193.895 151.395 l 193.906 151.406 l 193.906 151.41 l 193.914
+ 151.418 l 193.914 151.422 l 193.926 151.434 l 193.926 151.438 l 193.934
+ 151.445 l 193.934 151.449 l 193.941 151.457 l 193.941 151.461 l 193.945
+ 151.461 l 193.945 151.465 l 193.953 151.473 l 193.953 151.477 l 193.961
+ 151.484 l 193.961 151.488 l 193.973 151.5 l 193.973 151.504 l 193.98 151.512
+ l 193.98 151.516 l 193.984 151.52 l 193.984 151.523 l 193.988 151.527 l
+ 193.992 151.527 l 193.992 151.531 l 194 151.539 l 194 151.543 l 194.004
+ 151.547 l 194.004 151.551 l 194.02 151.566 l 194.02 151.57 l 194.027 151.578
+ l 194.027 151.582 l 194.031 151.586 l 194.031 151.59 l 194.035 151.59 l
+ 194.039 151.594 l 194.039 151.598 l 194.047 151.605 l 194.047 151.609 l
+ 194.051 151.613 l 194.051 151.617 l 194.055 151.621 l 194.059 151.621 l
+ 194.059 151.625 l 194.066 151.633 l 194.066 151.637 l 194.07 151.641 l 
+194.07 151.645 l 194.086 151.66 l 194.086 151.664 l 194.09 151.668 l 194.09
+ 151.672 l 194.098 151.68 l 194.098 151.684 l 194.102 151.688 l 194.105 
+151.688 l 194.105 151.691 l 194.113 151.699 l 194.113 151.703 l 194.117 
+151.707 l 194.117 151.711 l 194.133 151.727 l 194.133 151.73 l 194.137 151.734
+ l 194.137 151.738 l 194.145 151.746 l 194.145 151.75 l 194.148 151.75 l
+ 194.152 151.754 l 194.152 151.758 l 194.156 151.762 l 194.156 151.766 l
+ 194.164 151.773 l 194.164 151.777 l 194.168 151.781 l 194.172 151.781 l
+ 194.172 151.785 l 194.176 151.789 l 194.176 151.793 l 194.184 151.801 l
+ 194.184 151.805 l 194.195 151.816 l 194.195 151.82 l 194.203 151.828 l 
+194.203 151.832 l 194.211 151.84 l 194.211 151.844 l 194.215 151.844 l 194.219
+ 151.848 l 194.219 151.852 l 194.223 151.855 l 194.223 151.859 l 194.23 
+151.867 l 194.23 151.871 l 194.234 151.875 l 194.238 151.875 l 194.238 151.879
+ l 194.242 151.883 l 194.242 151.887 l 194.25 151.895 l 194.25 151.898 l
+ 194.262 151.91 l 194.262 151.914 l 194.27 151.922 l 194.27 151.926 l 194.277
+ 151.934 l 194.277 151.938 l 194.281 151.938 l 194.281 151.941 l 194.289
+ 151.949 l 194.289 151.953 l 194.297 151.961 l 194.297 151.965 l 194.301
+ 151.969 l 194.305 151.969 l 194.305 151.973 l 194.309 151.977 l 194.309
+ 151.98 l 194.316 151.988 l 194.316 151.992 l 194.328 152.004 l 194.328 
+152.008 l 194.336 152.016 l 194.336 152.02 l 194.344 152.027 l 194.344 152.031
+ l 194.348 152.031 l 194.348 152.035 l 194.355 152.043 l 194.355 152.047
+ l 194.363 152.055 l 194.363 152.059 l 194.375 152.07 l 194.375 152.074 
+l 194.383 152.082 l 194.383 152.086 l 194.387 152.09 l 194.387 152.094 l
+ 194.391 152.094 l 194.395 152.098 l 194.395 152.102 l 194.402 152.109 l
+ 194.402 152.113 l 194.41 152.121 l 194.41 152.125 l 194.414 152.125 l 194.414
+ 152.129 l 194.422 152.137 l 194.422 152.141 l 194.43 152.148 l 194.43 152.152
+ l 194.441 152.164 l 194.441 152.168 l 194.449 152.176 l 194.449 152.18 
+l 194.453 152.184 l 194.453 152.188 l 194.457 152.188 l 194.461 152.191 
+l 194.461 152.195 l 194.469 152.203 l 194.469 152.207 l 194.473 152.211 
+l 194.473 152.215 l 194.477 152.219 l 194.48 152.219 l 194.48 152.223 l 
+194.488 152.23 l 194.488 152.234 l 194.496 152.242 l 194.496 152.246 l 194.5
+ 152.246 l 194.5 152.25 l 194.508 152.258 l 194.508 152.262 l 194.516 152.27
+ l 194.516 152.273 l 194.527 152.285 l 194.527 152.289 l 194.535 152.297
+ l 194.535 152.301 l 194.539 152.305 l 194.539 152.309 l 194.543 152.309
+ l 194.547 152.312 l 194.547 152.316 l 194.555 152.324 l 194.555 152.328
+ l 194.559 152.332 l 194.559 152.336 l 194.562 152.34 l 194.566 152.34 l
+ 194.566 152.344 l 194.574 152.352 l 194.574 152.355 l 194.578 152.359 l
+ 194.578 152.363 l 194.594 152.379 l 194.594 152.383 l 194.602 152.391 l
+ 194.602 152.395 l 194.613 152.406 l 194.613 152.41 l 194.621 152.418 l 
+194.621 152.422 l 194.625 152.426 l 194.625 152.43 l 194.629 152.43 l 194.633
+ 152.434 l 194.633 152.438 l 194.641 152.445 l 194.641 152.449 l 194.645
+ 152.453 l 194.645 152.457 l 194.648 152.461 l 194.652 152.461 l 194.652
+ 152.465 l 194.66 152.473 l 194.66 152.477 l 194.664 152.48 l 194.664 152.484
+ l 194.68 152.5 l 194.68 152.504 l 194.688 152.512 l 194.688 152.516 l 194.699
+ 152.527 l 194.699 152.531 l 194.707 152.539 l 194.707 152.543 l 194.711
+ 152.547 l 194.711 152.551 l 194.715 152.551 l 194.719 152.555 l 194.719
+ 152.559 l 194.727 152.566 l 194.727 152.57 l 194.73 152.574 l 194.73 152.578
+ l 194.734 152.582 l 194.738 152.582 l 194.738 152.586 l 194.746 152.594
+ l 194.746 152.598 l 194.75 152.602 l 194.75 152.605 l 194.754 152.609 l
+ 194.758 152.609 l 194.758 152.613 l 194.766 152.621 l 194.766 152.625 l
+ 194.77 152.629 l 194.77 152.633 l 194.785 152.648 l 194.785 152.652 l 194.793
+ 152.66 l 194.793 152.664 l 194.805 152.676 l 194.805 152.68 l 194.812 152.688
+ l 194.812 152.691 l 194.816 152.695 l 194.816 152.699 l 194.82 152.699 
+l 194.824 152.703 l 194.824 152.707 l 194.832 152.715 l 194.832 152.719 
+l 194.836 152.723 l 194.836 152.727 l 194.84 152.73 l 194.844 152.73 l 194.844
+ 152.734 l 194.852 152.742 l 194.852 152.746 l 194.855 152.75 l 194.855 
+152.754 l 194.859 152.758 l 194.863 152.758 l 194.863 152.762 l 194.871 
+152.77 l 194.871 152.773 l 194.879 152.781 l 194.879 152.785 l 194.891 152.797
+ l 194.891 152.801 l 194.898 152.809 l 194.898 152.812 l 194.91 152.824 
+l 194.91 152.828 l 194.918 152.836 l 194.918 152.84 l 194.922 152.844 l 
+194.922 152.848 l 194.926 152.848 l 194.93 152.852 l 194.93 152.855 l 194.938
+ 152.863 l 194.938 152.867 l 194.941 152.871 l 194.941 152.875 l 194.945
+ 152.875 l 194.949 152.879 l 194.949 152.883 l 194.957 152.891 l 194.957
+ 152.895 l 194.961 152.898 l 194.961 152.902 l 194.965 152.906 l 194.969
+ 152.906 l 194.969 152.91 l 194.977 152.918 l 194.977 152.922 l 194.984 
+152.93 l 194.984 152.934 l 194.988 152.934 l 194.988 152.938 l 194.996 152.945
+ l 194.996 152.949 l 195.004 152.957 l 195.004 152.961 l 195.016 152.973
+ l 195.016 152.977 l 195.023 152.984 l 195.023 152.988 l 195.035 153 l 195.035
+ 153.004 l 195.043 153.012 l 195.043 153.016 l 195.047 153.02 l 195.047 
+153.023 l 195.051 153.023 l 195.055 153.027 l 195.055 153.031 l 195.062 
+153.039 l 195.062 153.043 l 195.074 153.055 l 195.074 153.059 l 195.082 
+153.066 l 195.082 153.07 l 195.094 153.082 l 195.094 153.086 l 195.102 153.094
+ l 195.102 153.098 l 195.109 153.105 l 195.109 153.109 l 195.113 153.109
+ l 195.113 153.113 l 195.121 153.121 l 195.121 153.125 l 195.129 153.133
+ l 195.129 153.137 l 195.133 153.137 l 195.133 153.141 l 195.141 153.148
+ l 195.141 153.152 l 195.148 153.16 l 195.148 153.164 l 195.16 153.176 l
+ 195.16 153.18 l 195.168 153.188 l 195.168 153.191 l 195.172 153.195 l 195.176
+ 153.195 l 195.176 153.199 l 195.18 153.203 l 195.18 153.207 l 195.188 153.215
+ l 195.188 153.219 l 195.191 153.223 l 195.195 153.223 l 195.195 153.227
+ l 195.199 153.23 l 195.199 153.234 l 195.207 153.242 l 195.207 153.246 
+l 195.219 153.258 l 195.219 153.262 l 195.227 153.27 l 195.227 153.273 l
+ 195.238 153.285 l 195.238 153.289 l 195.246 153.297 l 195.246 153.301 l
+ 195.262 153.316 l 195.262 153.32 l 195.266 153.324 l 195.266 153.328 l 
+195.273 153.336 l 195.273 153.34 l 195.277 153.34 l 195.281 153.344 l 195.281
+ 153.348 l 195.285 153.352 l 195.285 153.355 l 195.293 153.363 l 195.293
+ 153.367 l 195.297 153.367 l 195.301 153.371 l 195.301 153.375 l 195.305
+ 153.379 l 195.305 153.383 l 195.312 153.391 l 195.312 153.395 l 195.316
+ 153.395 l 195.32 153.398 l 195.32 153.402 l 195.324 153.406 l 195.324 153.41
+ l 195.332 153.418 l 195.332 153.422 l 195.336 153.422 l 195.34 153.426 
+l 195.34 153.43 l 195.344 153.434 l 195.344 153.438 l 195.352 153.445 l 
+195.352 153.449 l 195.355 153.449 l 195.359 153.453 l 195.359 153.457 l 
+195.367 153.465 l 195.367 153.469 l 195.371 153.473 l 195.371 153.477 l 
+195.375 153.48 l 195.379 153.48 l 195.379 153.484 l 195.387 153.492 l 195.387
+ 153.496 l 195.391 153.5 l 195.391 153.504 l 195.395 153.508 l 195.398 153.508
+ l 195.398 153.512 l 195.406 153.52 l 195.406 153.523 l 195.41 153.527 l
+ 195.41 153.531 l 195.414 153.535 l 195.418 153.535 l 195.418 153.539 l 
+195.426 153.547 l 195.426 153.551 l 195.43 153.555 l 195.43 153.559 l 195.434
+ 153.562 l 195.438 153.562 l 195.438 153.566 l 195.445 153.574 l 195.445
+ 153.578 l 195.453 153.586 l 195.453 153.59 l 195.457 153.59 l 195.457 153.594
+ l 195.465 153.602 l 195.465 153.605 l 195.473 153.613 l 195.473 153.617
+ l 195.484 153.629 l 195.484 153.633 l 195.492 153.641 l 195.492 153.645
+ l 195.504 153.656 l 195.504 153.66 l 195.512 153.668 l 195.512 153.672 
+l 195.523 153.684 l 195.523 153.688 l 195.531 153.695 l 195.531 153.699 
+l 195.543 153.711 l 195.543 153.715 l 195.551 153.723 l 195.551 153.727 
+l 195.555 153.73 l 195.559 153.73 l 195.559 153.734 l 195.562 153.738 l 
+195.562 153.742 l 195.57 153.75 l 195.57 153.754 l 195.574 153.758 l 195.578
+ 153.758 l 195.578 153.762 l 195.582 153.766 l 195.582 153.77 l 195.59 153.777
+ l 195.59 153.781 l 195.594 153.785 l 195.598 153.785 l 195.598 153.789 
+l 195.602 153.793 l 195.602 153.797 l 195.609 153.805 l 195.609 153.809 
+l 195.613 153.812 l 195.617 153.812 l 195.617 153.816 l 195.621 153.82 l
+ 195.621 153.824 l 195.629 153.832 l 195.629 153.836 l 195.633 153.84 l 
+195.637 153.84 l 195.637 153.844 l 195.645 153.852 l 195.645 153.855 l 195.648
+ 153.859 l 195.648 153.863 l 195.652 153.867 l 195.656 153.867 l 195.656
+ 153.871 l 195.664 153.879 l 195.664 153.883 l 195.668 153.887 l 195.668
+ 153.891 l 195.672 153.895 l 195.676 153.895 l 195.676 153.898 l 195.684
+ 153.906 l 195.684 153.91 l 195.688 153.914 l 195.688 153.918 l 195.691 
+153.922 l 195.695 153.922 l 195.695 153.926 l 195.703 153.934 l 195.703 
+153.938 l 195.707 153.941 l 195.707 153.945 l 195.711 153.949 l 195.715 
+153.949 l 195.715 153.953 l 195.723 153.961 l 195.723 153.965 l 195.727 
+153.969 l 195.727 153.973 l 195.73 153.977 l 195.734 153.977 l 195.734 153.98
+ l 195.742 153.988 l 195.742 153.992 l 195.75 154 l 195.75 154.004 l 195.754
+ 154.004 l 195.754 154.008 l 195.762 154.016 l 195.762 154.02 l 195.77 154.027
+ l 195.77 154.031 l 195.773 154.031 l 195.773 154.035 l 195.781 154.043 
+l 195.781 154.047 l 195.789 154.055 l 195.789 154.059 l 195.793 154.059 
+l 195.793 154.062 l 195.801 154.07 l 195.801 154.074 l 195.809 154.082 l
+ 195.809 154.086 l 195.812 154.086 l 195.812 154.09 l 195.82 154.098 l 195.82
+ 154.102 l 195.828 154.109 l 195.828 154.113 l 195.832 154.113 l 195.836
+ 154.117 l 195.836 154.121 l 195.84 154.125 l 195.84 154.129 l 195.848 154.137
+ l 195.848 154.141 l 195.852 154.141 l 195.855 154.145 l 195.855 154.148
+ l 195.859 154.152 l 195.859 154.156 l 195.867 154.164 l 195.867 154.168
+ l 195.871 154.168 l 195.875 154.172 l 195.875 154.176 l 195.879 154.18 
+l 195.879 154.184 l 195.887 154.191 l 195.887 154.195 l 195.891 154.195 
+l 195.895 154.199 l 195.895 154.203 l 195.898 154.207 l 195.898 154.211 
+l 195.914 154.227 l 195.914 154.23 l 195.918 154.234 l 195.918 154.238 l
+ 195.934 154.254 l 195.934 154.258 l 195.941 154.266 l 195.941 154.27 l 
+195.953 154.281 l 195.953 154.285 l 195.961 154.293 l 195.961 154.297 l 
+195.973 154.309 l 195.973 154.312 l 195.98 154.32 l 195.98 154.324 l 195.992
+ 154.336 l 195.992 154.34 l 196 154.348 l 196 154.352 l 196.012 154.363 
+l 196.012 154.367 l 196.02 154.375 l 196.02 154.379 l 196.023 154.379 l 
+196.023 154.383 l 196.031 154.391 l 196.031 154.395 l 196.039 154.402 l 
+196.039 154.406 l 196.043 154.406 l 196.047 154.41 l 196.047 154.414 l 196.051
+ 154.418 l 196.051 154.422 l 196.059 154.43 l 196.059 154.434 l 196.062 
+154.434 l 196.066 154.438 l 196.066 154.441 l 196.07 154.445 l 196.07 154.449
+ l 196.078 154.457 l 196.078 154.461 l 196.082 154.461 l 196.086 154.465
+ l 196.086 154.469 l 196.09 154.473 l 196.09 154.477 l 196.105 154.492 l
+ 196.105 154.496 l 196.109 154.5 l 196.109 154.504 l 196.125 154.52 l 196.125
+ 154.523 l 196.133 154.531 l 196.133 154.535 l 196.145 154.547 l 196.145
+ 154.551 l 196.152 154.559 l 196.152 154.562 l 196.164 154.574 l 196.164
+ 154.578 l 196.172 154.586 l 196.172 154.59 l 196.176 154.59 l 196.176 154.594
+ l 196.184 154.602 l 196.184 154.605 l 196.191 154.613 l 196.191 154.617
+ l 196.195 154.617 l 196.195 154.621 l 196.203 154.629 l 196.203 154.633
+ l 196.211 154.641 l 196.211 154.645 l 196.215 154.645 l 196.215 154.648
+ l 196.223 154.656 l 196.223 154.66 l 196.238 154.676 l 196.238 154.68 l
+ 196.242 154.684 l 196.242 154.688 l 196.258 154.703 l 196.258 154.707 l
+ 196.262 154.711 l 196.262 154.715 l 196.277 154.73 l 196.277 154.734 l 
+196.281 154.738 l 196.281 154.742 l 196.285 154.746 l 196.289 154.746 l 
+196.289 154.75 l 196.297 154.758 l 196.297 154.762 l 196.301 154.766 l 196.301
+ 154.77 l 196.305 154.773 l 196.309 154.773 l 196.309 154.777 l 196.316 
+154.785 l 196.316 154.789 l 196.328 154.801 l 196.328 154.805 l 196.336 
+154.812 l 196.336 154.816 l 196.348 154.828 l 196.348 154.832 l 196.355 
+154.84 l 196.355 154.844 l 196.367 154.855 l 196.367 154.859 l 196.375 154.867
+ l 196.375 154.871 l 196.379 154.875 l 196.383 154.875 l 196.383 154.879
+ l 196.387 154.883 l 196.387 154.887 l 196.395 154.895 l 196.395 154.898
+ l 196.398 154.902 l 196.402 154.902 l 196.402 154.906 l 196.406 154.91 
+l 196.406 154.914 l 196.414 154.922 l 196.414 154.926 l 196.418 154.926 
+l 196.422 154.93 l 196.422 154.934 l 196.43 154.941 l 196.43 154.945 l 196.434
+ 154.949 l 196.434 154.953 l 196.438 154.953 l 196.441 154.957 l 196.441
+ 154.961 l 196.449 154.969 l 196.449 154.973 l 196.461 154.984 l 196.461
+ 154.988 l 196.469 154.996 l 196.469 155 l 196.48 155.012 l 196.48 155.016
+ l 196.488 155.023 l 196.488 155.027 l 196.492 155.027 l 196.492 155.031
+ l 196.5 155.039 l 196.5 155.043 l 196.508 155.051 l 196.508 155.055 l 196.512
+ 155.055 l 196.516 155.059 l 196.516 155.062 l 196.52 155.066 l 196.52 155.07
+ l 196.535 155.086 l 196.535 155.09 l 196.539 155.094 l 196.539 155.098 
+l 196.555 155.113 l 196.555 155.117 l 196.559 155.121 l 196.559 155.125 
+l 196.562 155.129 l 196.566 155.129 l 196.566 155.133 l 196.574 155.141 
+l 196.574 155.145 l 196.578 155.148 l 196.578 155.152 l 196.582 155.156 
+l 196.586 155.156 l 196.586 155.16 l 196.594 155.168 l 196.594 155.172 l
+ 196.598 155.176 l 196.598 155.18 l 196.602 155.18 l 196.605 155.184 l 196.605
+ 155.188 l 196.613 155.195 l 196.613 155.199 l 196.625 155.211 l 196.625
+ 155.215 l 196.633 155.223 l 196.633 155.227 l 196.637 155.23 l 196.641 
+155.23 l 196.641 155.234 l 196.645 155.238 l 196.645 155.242 l 196.652 155.25
+ l 196.652 155.254 l 196.656 155.258 l 196.66 155.258 l 196.66 155.262 l
+ 196.664 155.266 l 196.664 155.27 l 196.672 155.277 l 196.672 155.281 l 
+196.676 155.281 l 196.68 155.285 l 196.68 155.289 l 196.684 155.293 l 196.684
+ 155.297 l 196.699 155.312 l 196.699 155.316 l 196.707 155.324 l 196.707
+ 155.328 l 196.719 155.34 l 196.719 155.344 l 196.727 155.352 l 196.727 
+155.355 l 196.73 155.355 l 196.73 155.359 l 196.738 155.367 l 196.738 155.371
+ l 196.746 155.379 l 196.746 155.383 l 196.75 155.383 l 196.75 155.387 l
+ 196.758 155.395 l 196.758 155.398 l 196.77 155.41 l 196.77 155.414 l 196.777
+ 155.422 l 196.777 155.426 l 196.781 155.43 l 196.785 155.43 l 196.785 155.434
+ l 196.789 155.438 l 196.789 155.441 l 196.797 155.449 l 196.797 155.453
+ l 196.801 155.457 l 196.805 155.457 l 196.805 155.461 l 196.812 155.469
+ l 196.812 155.473 l 196.816 155.477 l 196.816 155.48 l 196.82 155.48 l 
+196.824 155.484 l 196.824 155.488 l 196.832 155.496 l 196.832 155.5 l 196.844
+ 155.512 l 196.844 155.516 l 196.852 155.523 l 196.852 155.527 l 196.855
+ 155.527 l 196.855 155.531 l 196.863 155.539 l 196.863 155.543 l 196.871
+ 155.551 l 196.871 155.555 l 196.875 155.555 l 196.875 155.559 l 196.883
+ 155.566 l 196.883 155.57 l 196.898 155.586 l 196.898 155.59 l 196.902 155.594
+ l 196.902 155.598 l 196.906 155.602 l 196.91 155.602 l 196.91 155.605 l
+ 196.918 155.613 l 196.918 155.617 l 196.922 155.621 l 196.922 155.625 l
+ 196.926 155.629 l 196.93 155.629 l 196.93 155.633 l 196.938 155.641 l 196.938
+ 155.645 l 196.941 155.648 l 196.941 155.652 l 196.945 155.652 l 196.949
+ 155.656 l 196.949 155.66 l 196.957 155.668 l 196.957 155.672 l 196.969 
+155.684 l 196.969 155.688 l 196.977 155.695 l 196.977 155.699 l 196.98 155.699
+ l 196.98 155.703 l 196.988 155.711 l 196.988 155.715 l 196.996 155.723 
+l 196.996 155.727 l 197 155.727 l 197.004 155.73 l 197.004 155.734 l 197.008
+ 155.738 l 197.008 155.742 l 197.023 155.758 l 197.023 155.762 l 197.027
+ 155.766 l 197.027 155.77 l 197.031 155.773 l 197.035 155.773 l 197.035 
+155.777 l 197.043 155.785 l 197.043 155.789 l 197.047 155.793 l 197.047 
+155.797 l 197.051 155.797 l 197.055 155.801 l 197.055 155.805 l 197.062 
+155.812 l 197.062 155.816 l 197.074 155.828 l 197.074 155.832 l 197.082 
+155.84 l 197.082 155.844 l 197.086 155.848 l 197.09 155.848 l 197.09 155.852
+ l 197.094 155.855 l 197.094 155.859 l 197.102 155.867 l 197.102 155.871
+ l 197.105 155.871 l 197.109 155.875 l 197.109 155.879 l 197.113 155.883
+ l 197.113 155.887 l 197.129 155.902 l 197.129 155.906 l 197.133 155.91 
+l 197.133 155.914 l 197.137 155.918 l 197.141 155.918 l 197.141 155.922 
+l 197.148 155.93 l 197.148 155.934 l 197.152 155.938 l 197.152 155.941 l
+ 197.156 155.941 l 197.16 155.945 l 197.16 155.949 l 197.168 155.957 l 197.168
+ 155.961 l 197.18 155.973 l 197.18 155.977 l 197.188 155.984 l 197.188 155.988
+ l 197.191 155.988 l 197.195 155.992 l 197.195 155.996 l 197.199 156 l 197.199
+ 156.004 l 197.207 156.012 l 197.207 156.016 l 197.211 156.016 l 197.215
+ 156.02 l 197.215 156.023 l 197.219 156.027 l 197.219 156.031 l 197.234 
+156.047 l 197.234 156.051 l 197.238 156.055 l 197.238 156.059 l 197.242 
+156.062 l 197.246 156.062 l 197.246 156.066 l 197.254 156.074 l 197.254 
+156.078 l 197.258 156.082 l 197.258 156.086 l 197.262 156.086 l 197.266 
+156.09 l 197.266 156.094 l 197.273 156.102 l 197.273 156.105 l 197.277 156.109
+ l 197.281 156.109 l 197.281 156.113 l 197.285 156.117 l 197.285 156.121
+ l 197.293 156.129 l 197.293 156.133 l 197.297 156.133 l 197.301 156.137
+ l 197.301 156.141 l 197.305 156.145 l 197.305 156.148 l 197.32 156.164 
+l 197.32 156.168 l 197.324 156.172 l 197.324 156.176 l 197.328 156.18 l 
+197.332 156.18 l 197.332 156.184 l 197.34 156.191 l 197.34 156.195 l 197.344
+ 156.199 l 197.344 156.203 l 197.348 156.203 l 197.352 156.207 l 197.352
+ 156.211 l 197.359 156.219 l 197.359 156.223 l 197.371 156.234 l 197.371
+ 156.238 l 197.379 156.246 l 197.379 156.25 l 197.383 156.25 l 197.387 156.254
+ l 197.387 156.258 l 197.391 156.262 l 197.391 156.266 l 197.406 156.281
+ l 197.406 156.285 l 197.41 156.289 l 197.41 156.293 l 197.414 156.297 l
+ 197.418 156.297 l 197.418 156.301 l 197.426 156.309 l 197.426 156.312 l
+ 197.43 156.316 l 197.43 156.32 l 197.434 156.32 l 197.438 156.324 l 197.438
+ 156.328 l 197.445 156.336 l 197.445 156.34 l 197.457 156.352 l 197.457 
+156.355 l 197.465 156.363 l 197.465 156.367 l 197.469 156.367 l 197.473 
+156.371 l 197.473 156.375 l 197.477 156.379 l 197.477 156.383 l 197.492 
+156.398 l 197.492 156.402 l 197.496 156.406 l 197.496 156.41 l 197.5 156.414
+ l 197.504 156.414 l 197.504 156.418 l 197.512 156.426 l 197.512 156.43 
+l 197.516 156.434 l 197.516 156.438 l 197.52 156.438 l 197.523 156.441 l
+ 197.523 156.445 l 197.531 156.453 l 197.531 156.457 l 197.543 156.469 l
+ 197.543 156.473 l 197.551 156.48 l 197.551 156.484 l 197.555 156.484 l 
+197.555 156.488 l 197.562 156.496 l 197.562 156.5 l 197.578 156.516 l 197.578
+ 156.52 l 197.582 156.523 l 197.582 156.527 l 197.586 156.531 l 197.59 156.531
+ l 197.59 156.535 l 197.598 156.543 l 197.598 156.547 l 197.602 156.551 
+l 197.602 156.555 l 197.605 156.555 l 197.609 156.559 l 197.609 156.562 
+l 197.617 156.57 l 197.617 156.574 l 197.629 156.586 l 197.629 156.59 l 
+197.637 156.598 l 197.637 156.602 l 197.641 156.602 l 197.641 156.605 l 
+197.648 156.613 l 197.648 156.617 l 197.652 156.621 l 197.656 156.621 l 
+197.656 156.625 l 197.664 156.633 l 197.664 156.637 l 197.668 156.641 l 
+197.668 156.645 l 197.672 156.645 l 197.676 156.648 l 197.676 156.652 l 
+197.684 156.66 l 197.684 156.664 l 197.695 156.676 l 197.695 156.68 l 197.703
+ 156.688 l 197.703 156.691 l 197.707 156.691 l 197.707 156.695 l 197.715
+ 156.703 l 197.715 156.707 l 197.727 156.719 l 197.727 156.723 l 197.734
+ 156.73 l 197.734 156.734 l 197.738 156.738 l 197.742 156.738 l 197.742 
+156.742 l 197.746 156.746 l 197.746 156.75 l 197.754 156.758 l 197.754 156.762
+ l 197.758 156.762 l 197.762 156.766 l 197.762 156.77 l 197.77 156.777 l
+ 197.77 156.781 l 197.773 156.781 l 197.773 156.785 l 197.781 156.793 l 
+197.781 156.797 l 197.793 156.809 l 197.793 156.812 l 197.801 156.82 l 197.801
+ 156.824 l 197.805 156.828 l 197.809 156.828 l 197.809 156.832 l 197.812
+ 156.836 l 197.812 156.84 l 197.82 156.848 l 197.82 156.852 l 197.824 156.852
+ l 197.828 156.855 l 197.828 156.859 l 197.832 156.863 l 197.832 156.867
+ l 197.848 156.883 l 197.848 156.887 l 197.859 156.898 l 197.859 156.902
+ l 197.867 156.91 l 197.867 156.914 l 197.871 156.918 l 197.875 156.918 
+l 197.875 156.922 l 197.879 156.926 l 197.879 156.93 l 197.887 156.938 l
+ 197.887 156.941 l 197.891 156.941 l 197.895 156.945 l 197.895 156.949 l
+ 197.898 156.953 l 197.898 156.957 l 197.914 156.973 l 197.914 156.977 l
+ 197.918 156.98 l 197.918 156.984 l 197.922 156.988 l 197.926 156.988 l 
+197.926 156.992 l 197.934 157 l 197.934 157.004 l 197.945 157.016 l 197.945
+ 157.02 l 197.953 157.027 l 197.953 157.031 l 197.957 157.031 l 197.961 
+157.035 l 197.961 157.039 l 197.965 157.043 l 197.965 157.047 l 197.98 157.062
+ l 197.98 157.066 l 197.984 157.07 l 197.984 157.074 l 197.988 157.074 l
+ 197.992 157.078 l 197.992 157.082 l 198 157.09 l 198 157.094 l 198.012 
+157.105 l 198.012 157.109 l 198.02 157.117 l 198.02 157.121 l 198.023 157.121
+ l 198.023 157.125 l 198.031 157.133 l 198.031 157.137 l 198.047 157.152
+ l 198.047 157.156 l 198.051 157.16 l 198.051 157.164 l 198.055 157.164 
+l 198.059 157.168 l 198.059 157.172 l 198.066 157.18 l 198.066 157.184 l
+ 198.078 157.195 l 198.078 157.199 l 198.086 157.207 l 198.086 157.211 l
+ 198.09 157.211 l 198.09 157.215 l 198.098 157.223 l 198.098 157.227 l 198.102
+ 157.23 l 198.105 157.23 l 198.105 157.234 l 198.109 157.238 l 198.109 157.242
+ l 198.117 157.25 l 198.117 157.254 l 198.121 157.254 l 198.125 157.258 
+l 198.125 157.262 l 198.129 157.266 l 198.129 157.27 l 198.145 157.285 l
+ 198.145 157.289 l 198.156 157.301 l 198.156 157.305 l 198.164 157.312 l
+ 198.164 157.316 l 198.168 157.32 l 198.172 157.32 l 198.172 157.324 l 198.176
+ 157.328 l 198.176 157.332 l 198.184 157.34 l 198.184 157.344 l 198.188 
+157.344 l 198.191 157.348 l 198.191 157.352 l 198.195 157.355 l 198.195 
+157.359 l 198.199 157.363 l 198.203 157.363 l 198.203 157.367 l 198.211 
+157.375 l 198.211 157.379 l 198.215 157.383 l 198.215 157.387 l 198.219 
+157.387 l 198.223 157.391 l 198.223 157.395 l 198.23 157.402 l 198.23 157.406
+ l 198.234 157.406 l 198.234 157.41 l 198.242 157.418 l 198.242 157.422 
+l 198.258 157.438 l 198.258 157.441 l 198.262 157.445 l 198.262 157.449 
+l 198.266 157.453 l 198.27 157.453 l 198.27 157.457 l 198.277 157.465 l 
+198.277 157.469 l 198.289 157.48 l 198.289 157.484 l 198.297 157.492 l 198.297
+ 157.496 l 198.301 157.496 l 198.301 157.5 l 198.309 157.508 l 198.309 157.512
+ l 198.312 157.516 l 198.316 157.516 l 198.316 157.52 l 198.32 157.523 l
+ 198.32 157.527 l 198.328 157.535 l 198.328 157.539 l 198.332 157.539 l 
+198.336 157.543 l 198.336 157.547 l 198.344 157.555 l 198.344 157.559 l 
+198.348 157.559 l 198.348 157.562 l 198.355 157.57 l 198.355 157.574 l 198.367
+ 157.586 l 198.367 157.59 l 198.375 157.598 l 198.375 157.602 l 198.379 
+157.605 l 198.383 157.605 l 198.383 157.609 l 198.387 157.613 l 198.387 
+157.617 l 198.402 157.633 l 198.402 157.637 l 198.406 157.641 l 198.406 
+157.645 l 198.41 157.648 l 198.414 157.648 l 198.414 157.652 l 198.422 157.66
+ l 198.422 157.664 l 198.434 157.676 l 198.434 157.68 l 198.441 157.688 
+l 198.441 157.691 l 198.445 157.691 l 198.449 157.695 l 198.449 157.699 
+l 198.453 157.703 l 198.453 157.707 l 198.457 157.711 l 198.461 157.711 
+l 198.461 157.715 l 198.469 157.723 l 198.469 157.727 l 198.473 157.73 l
+ 198.473 157.734 l 198.477 157.734 l 198.48 157.738 l 198.48 157.742 l 198.488
+ 157.75 l 198.488 157.754 l 198.492 157.754 l 198.492 157.758 l 198.5 157.766
+ l 198.5 157.77 l 198.512 157.781 l 198.512 157.785 l 198.52 157.793 l 198.52
+ 157.797 l 198.523 157.797 l 198.527 157.801 l 198.527 157.805 l 198.535
+ 157.812 l 198.535 157.816 l 198.547 157.828 l 198.547 157.832 l 198.559
+ 157.844 l 198.559 157.848 l 198.566 157.855 l 198.566 157.859 l 198.57 
+157.863 l 198.574 157.863 l 198.574 157.867 l 198.578 157.871 l 198.578 
+157.875 l 198.594 157.891 l 198.594 157.895 l 198.598 157.898 l 198.598 
+157.902 l 198.602 157.902 l 198.605 157.906 l 198.605 157.91 l 198.613 157.918
+ l 198.613 157.922 l 198.625 157.934 l 198.625 157.938 l 198.641 157.953
+ l 198.641 157.957 l 198.645 157.961 l 198.645 157.965 l 198.648 157.969
+ l 198.652 157.969 l 198.652 157.973 l 198.66 157.98 l 198.66 157.984 l 
+198.672 157.996 l 198.672 158 l 198.68 158.008 l 198.68 158.012 l 198.684
+ 158.012 l 198.684 158.016 l 198.691 158.023 l 198.691 158.027 l 198.695
+ 158.031 l 198.699 158.031 l 198.699 158.035 l 198.703 158.039 l 198.703
+ 158.043 l 198.719 158.059 l 198.719 158.062 l 198.727 158.07 l 198.727 
+158.074 l 198.73 158.074 l 198.73 158.078 l 198.738 158.086 l 198.738 158.09
+ l 198.742 158.094 l 198.746 158.094 l 198.746 158.098 l 198.75 158.102 
+l 198.75 158.105 l 198.766 158.121 l 198.766 158.125 l 198.77 158.129 l 
+198.77 158.133 l 198.773 158.137 l 198.777 158.137 l 198.777 158.141 l 198.785
+ 158.148 l 198.785 158.152 l 198.797 158.164 l 198.797 158.168 l 198.805
+ 158.176 l 198.805 158.18 l 198.809 158.18 l 198.809 158.184 l 198.816 158.191
+ l 198.816 158.195 l 198.82 158.199 l 198.824 158.199 l 198.824 158.203 
+l 198.832 158.211 l 198.832 158.215 l 198.844 158.227 l 198.844 158.23 l
+ 198.852 158.238 l 198.852 158.242 l 198.855 158.242 l 198.855 158.246 l
+ 198.863 158.254 l 198.863 158.258 l 198.867 158.262 l 198.871 158.262 l
+ 198.871 158.266 l 198.875 158.27 l 198.875 158.273 l 198.891 158.289 l 
+198.891 158.293 l 198.895 158.297 l 198.895 158.301 l 198.898 158.305 l 
+198.902 158.305 l 198.902 158.309 l 198.91 158.316 l 198.91 158.32 l 198.914
+ 158.324 l 198.918 158.324 l 198.918 158.328 l 198.922 158.332 l 198.922
+ 158.336 l 198.938 158.352 l 198.938 158.355 l 198.941 158.359 l 198.941
+ 158.363 l 198.945 158.363 l 198.949 158.367 l 198.949 158.371 l 198.957
+ 158.379 l 198.957 158.383 l 198.969 158.395 l 198.969 158.398 l 198.98 
+158.41 l 198.98 158.414 l 198.988 158.422 l 198.988 158.426 l 198.992 158.426
+ l 198.996 158.43 l 198.996 158.434 l 199 158.438 l 199 158.441 l 199.016
+ 158.457 l 199.016 158.461 l 199.027 158.473 l 199.027 158.477 l 199.035
+ 158.484 l 199.035 158.488 l 199.039 158.488 l 199.043 158.492 l 199.043
+ 158.496 l 199.047 158.5 l 199.047 158.504 l 199.051 158.508 l 199.055 158.508
+ l 199.055 158.512 l 199.062 158.52 l 199.062 158.523 l 199.066 158.527 
+l 199.066 158.531 l 199.07 158.531 l 199.074 158.535 l 199.074 158.539 l
+ 199.082 158.547 l 199.082 158.551 l 199.086 158.551 l 199.086 158.555 l
+ 199.094 158.562 l 199.094 158.566 l 199.098 158.57 l 199.102 158.57 l 199.102
+ 158.574 l 199.109 158.582 l 199.109 158.586 l 199.121 158.598 l 199.121
+ 158.602 l 199.133 158.613 l 199.133 158.617 l 199.141 158.625 l 199.141
+ 158.629 l 199.145 158.633 l 199.148 158.633 l 199.148 158.637 l 199.152
+ 158.641 l 199.152 158.645 l 199.168 158.66 l 199.168 158.664 l 199.172 
+158.668 l 199.172 158.672 l 199.176 158.672 l 199.18 158.676 l 199.18 158.68
+ l 199.188 158.688 l 199.188 158.691 l 199.191 158.691 l 199.191 158.695
+ l 199.199 158.703 l 199.199 158.707 l 199.203 158.711 l 199.207 158.711
+ l 199.207 158.715 l 199.215 158.723 l 199.215 158.727 l 199.219 158.73 
+l 199.219 158.734 l 199.223 158.734 l 199.227 158.738 l 199.227 158.742 
+l 199.234 158.75 l 199.234 158.754 l 199.238 158.754 l 199.238 158.758 l
+ 199.246 158.766 l 199.246 158.77 l 199.25 158.773 l 199.254 158.773 l 199.254
+ 158.777 l 199.258 158.781 l 199.258 158.785 l 199.273 158.801 l 199.273
+ 158.805 l 199.277 158.809 l 199.277 158.812 l 199.281 158.812 l 199.285
+ 158.816 l 199.285 158.82 l 199.293 158.828 l 199.293 158.832 l 199.297 
+158.832 l 199.301 158.836 l 199.301 158.84 l 199.305 158.844 l 199.305 158.848
+ l 199.32 158.863 l 199.32 158.867 l 199.324 158.871 l 199.324 158.875 l
+ 199.328 158.875 l 199.332 158.879 l 199.332 158.883 l 199.34 158.891 l 
+199.34 158.895 l 199.344 158.895 l 199.344 158.898 l 199.352 158.906 l 199.352
+ 158.91 l 199.355 158.914 l 199.359 158.914 l 199.359 158.918 l 199.363 
+158.922 l 199.363 158.926 l 199.379 158.941 l 199.379 158.945 l 199.383 
+158.949 l 199.383 158.953 l 199.387 158.953 l 199.391 158.957 l 199.391 
+158.961 l 199.398 158.969 l 199.398 158.973 l 199.402 158.973 l 199.406 
+158.977 l 199.406 158.98 l 199.41 158.984 l 199.41 158.988 l 199.414 158.992
+ l 199.418 158.992 l 199.418 158.996 l 199.426 159.004 l 199.426 159.008
+ l 199.43 159.012 l 199.43 159.016 l 199.434 159.016 l 199.438 159.02 l 
+199.438 159.023 l 199.445 159.031 l 199.445 159.035 l 199.449 159.035 l 
+199.449 159.039 l 199.457 159.047 l 199.457 159.051 l 199.461 159.055 l 
+199.465 159.055 l 199.465 159.059 l 199.469 159.062 l 199.469 159.066 l 
+199.484 159.082 l 199.484 159.086 l 199.496 159.098 l 199.496 159.102 l 
+199.504 159.109 l 199.504 159.113 l 199.508 159.113 l 199.512 159.117 l 
+199.512 159.121 l 199.516 159.125 l 199.516 159.129 l 199.52 159.133 l 199.523
+ 159.133 l 199.523 159.137 l 199.531 159.145 l 199.531 159.148 l 199.543
+ 159.16 l 199.543 159.164 l 199.555 159.176 l 199.555 159.18 l 199.562 159.188
+ l 199.562 159.191 l 199.566 159.191 l 199.57 159.195 l 199.57 159.199 l
+ 199.574 159.203 l 199.574 159.207 l 199.578 159.211 l 199.582 159.211 l
+ 199.582 159.215 l 199.59 159.223 l 199.59 159.227 l 199.594 159.23 l 199.598
+ 159.23 l 199.598 159.234 l 199.602 159.238 l 199.602 159.242 l 199.617 
+159.258 l 199.617 159.262 l 199.621 159.266 l 199.621 159.27 l 199.625 159.27
+ l 199.629 159.273 l 199.629 159.277 l 199.637 159.285 l 199.637 159.289
+ l 199.641 159.289 l 199.641 159.293 l 199.648 159.301 l 199.648 159.305
+ l 199.652 159.309 l 199.656 159.309 l 199.656 159.312 l 199.66 159.316 
+l 199.66 159.32 l 199.676 159.336 l 199.676 159.34 l 199.688 159.352 l 199.688
+ 159.355 l 199.695 159.363 l 199.695 159.367 l 199.699 159.367 l 199.703
+ 159.371 l 199.703 159.375 l 199.707 159.379 l 199.707 159.383 l 199.711
+ 159.387 l 199.715 159.387 l 199.715 159.391 l 199.723 159.398 l 199.723
+ 159.402 l 199.734 159.414 l 199.734 159.418 l 199.746 159.43 l 199.746 
+159.434 l 199.754 159.441 l 199.754 159.445 l 199.758 159.445 l 199.762 
+159.449 l 199.762 159.453 l 199.766 159.457 l 199.766 159.461 l 199.77 159.465
+ l 199.773 159.465 l 199.773 159.469 l 199.781 159.477 l 199.781 159.48 
+l 199.785 159.484 l 199.789 159.484 l 199.789 159.488 l 199.793 159.492 
+l 199.793 159.496 l 199.809 159.512 l 199.809 159.516 l 199.812 159.52 l
+ 199.812 159.523 l 199.816 159.523 l 199.82 159.527 l 199.82 159.531 l 199.828
+ 159.539 l 199.828 159.543 l 199.832 159.543 l 199.832 159.547 l 199.84 
+159.555 l 199.84 159.559 l 199.844 159.562 l 199.848 159.562 l 199.848 159.566
+ l 199.852 159.57 l 199.852 159.574 l 199.867 159.59 l 199.867 159.594 l
+ 199.879 159.605 l 199.879 159.609 l 199.887 159.617 l 199.887 159.621 l
+ 199.891 159.621 l 199.895 159.625 l 199.895 159.629 l 199.898 159.633 l
+ 199.898 159.637 l 199.902 159.637 l 199.906 159.641 l 199.906 159.645 l
+ 199.914 159.652 l 199.914 159.656 l 199.918 159.656 l 199.918 159.66 l 
+199.926 159.668 l 199.926 159.672 l 199.93 159.676 l 199.934 159.676 l 199.934
+ 159.68 l 199.938 159.684 l 199.938 159.688 l 199.953 159.703 l 199.953 
+159.707 l 199.957 159.711 l 199.957 159.715 l 199.961 159.715 l 199.965 
+159.719 l 199.965 159.723 l 199.973 159.73 l 199.973 159.734 l 199.977 159.734
+ l 199.98 159.738 l 199.98 159.742 l 199.984 159.746 l 199.984 159.75 l 
+199.988 159.754 l 199.992 159.754 l 199.992 159.758 l 200 159.766 l 200 
+159.77 l 200.012 159.781 l 200.012 159.785 l 200.023 159.797 l 200.023 159.801
+ l 200.039 159.816 l 200.039 159.82 l 200.043 159.824 l 200.043 159.828 
+l 200.047 159.828 l 200.051 159.832 l 200.051 159.836 l 200.059 159.844 
+l 200.059 159.848 l 200.062 159.848 l 200.066 159.852 l 200.066 159.855 
+l 200.07 159.859 l 200.07 159.863 l 200.074 159.867 l 200.078 159.867 l 
+200.078 159.871 l 200.086 159.879 l 200.086 159.883 l 200.098 159.895 l 
+200.098 159.898 l 200.109 159.91 l 200.109 159.914 l 200.117 159.922 l 200.117
+ 159.926 l 200.121 159.926 l 200.125 159.93 l 200.125 159.934 l 200.129 
+159.938 l 200.129 159.941 l 200.133 159.941 l 200.137 159.945 l 200.137 
+159.949 l 200.145 159.957 l 200.145 159.961 l 200.148 159.961 l 200.148 
+159.965 l 200.156 159.973 l 200.156 159.977 l 200.16 159.98 l 200.164 159.98
+ l 200.164 159.984 l 200.172 159.992 l 200.172 159.996 l 200.184 160.008
+ l 200.184 160.012 l 200.195 160.023 l 200.195 160.027 l 200.211 160.043
+ l 200.211 160.047 l 200.215 160.051 l 200.215 160.055 l 200.219 160.055
+ l 200.223 160.059 l 200.223 160.062 l 200.23 160.07 l 200.23 160.074 l 
+200.234 160.074 l 200.234 160.078 l 200.242 160.086 l 200.242 160.09 l 200.246
+ 160.094 l 200.25 160.094 l 200.25 160.098 l 200.258 160.105 l 200.258 160.109
+ l 200.27 160.121 l 200.27 160.125 l 200.273 160.129 l 200.277 160.129 l
+ 200.277 160.133 l 200.281 160.137 l 200.281 160.141 l 200.297 160.156 l
+ 200.297 160.16 l 200.301 160.164 l 200.301 160.168 l 200.305 160.168 l 
+200.309 160.172 l 200.309 160.176 l 200.316 160.184 l 200.316 160.188 l 
+200.32 160.188 l 200.32 160.191 l 200.328 160.199 l 200.328 160.203 l 200.332
+ 160.203 l 200.336 160.207 l 200.336 160.211 l 200.34 160.215 l 200.34 160.219
+ l 200.344 160.223 l 200.348 160.223 l 200.348 160.227 l 200.355 160.234
+ l 200.355 160.238 l 200.359 160.242 l 200.363 160.242 l 200.363 160.246
+ l 200.367 160.25 l 200.367 160.254 l 200.383 160.27 l 200.383 160.273 l
+ 200.395 160.285 l 200.395 160.289 l 200.406 160.301 l 200.406 160.305 l
+ 200.414 160.312 l 200.414 160.316 l 200.418 160.316 l 200.422 160.32 l 
+200.422 160.324 l 200.426 160.328 l 200.426 160.332 l 200.43 160.336 l 200.434
+ 160.336 l 200.434 160.34 l 200.441 160.348 l 200.441 160.352 l 200.445 
+160.352 l 200.449 160.355 l 200.449 160.359 l 200.453 160.363 l 200.453 
+160.367 l 200.457 160.371 l 200.461 160.371 l 200.461 160.375 l 200.469 
+160.383 l 200.469 160.387 l 200.48 160.398 l 200.48 160.402 l 200.484 160.406
+ l 200.488 160.406 l 200.488 160.41 l 200.492 160.414 l 200.492 160.418 
+l 200.508 160.434 l 200.508 160.438 l 200.512 160.441 l 200.512 160.445 
+l 200.516 160.445 l 200.52 160.449 l 200.52 160.453 l 200.531 160.465 l 
+200.531 160.469 l 200.539 160.477 l 200.539 160.48 l 200.543 160.48 l 200.547
+ 160.484 l 200.547 160.488 l 200.555 160.496 l 200.555 160.5 l 200.559 160.5
+ l 200.559 160.504 l 200.566 160.512 l 200.566 160.516 l 200.57 160.516 
+l 200.574 160.52 l 200.574 160.523 l 200.578 160.527 l 200.578 160.531 l
+ 200.582 160.535 l 200.586 160.535 l 200.586 160.539 l 200.594 160.547 l
+ 200.594 160.551 l 200.605 160.562 l 200.605 160.566 l 200.609 160.57 l 
+200.613 160.57 l 200.613 160.574 l 200.617 160.578 l 200.617 160.582 l 200.633
+ 160.598 l 200.633 160.602 l 200.645 160.613 l 200.645 160.617 l 200.66 
+160.633 l 200.66 160.637 l 200.664 160.641 l 200.664 160.645 l 200.668 160.645
+ l 200.672 160.648 l 200.672 160.652 l 200.68 160.66 l 200.68 160.664 l 
+200.684 160.664 l 200.684 160.668 l 200.691 160.676 l 200.691 160.68 l 200.695
+ 160.68 l 200.699 160.684 l 200.699 160.688 l 200.703 160.691 l 200.703 
+160.695 l 200.707 160.699 l 200.711 160.699 l 200.711 160.703 l 200.719 
+160.711 l 200.719 160.715 l 200.723 160.715 l 200.723 160.719 l 200.73 160.727
+ l 200.73 160.73 l 200.734 160.734 l 200.738 160.734 l 200.738 160.738 l
+ 200.746 160.746 l 200.746 160.75 l 200.758 160.762 l 200.758 160.766 l 
+200.762 160.77 l 200.766 160.77 l 200.766 160.773 l 200.77 160.777 l 200.77
+ 160.781 l 200.785 160.797 l 200.785 160.801 l 200.797 160.812 l 200.797
+ 160.816 l 200.809 160.828 l 200.809 160.832 l 200.816 160.84 l 200.816 
+160.844 l 200.82 160.844 l 200.824 160.848 l 200.824 160.852 l 200.836 160.863
+ l 200.836 160.867 l 200.844 160.875 l 200.844 160.879 l 200.848 160.879
+ l 200.852 160.883 l 200.852 160.887 l 200.855 160.891 l 200.855 160.895
+ l 200.859 160.895 l 200.863 160.898 l 200.863 160.902 l 200.871 160.91 
+l 200.871 160.914 l 200.875 160.914 l 200.875 160.918 l 200.883 160.926 
+l 200.883 160.93 l 200.887 160.934 l 200.891 160.934 l 200.891 160.938 l
+ 200.895 160.941 l 200.895 160.945 l 200.898 160.949 l 200.902 160.949 l
+ 200.902 160.953 l 200.91 160.961 l 200.91 160.965 l 200.922 160.977 l 200.922
+ 160.98 l 200.926 160.984 l 200.93 160.984 l 200.93 160.988 l 200.938 160.996
+ l 200.938 161 l 200.949 161.012 l 200.949 161.016 l 200.953 161.02 l 200.957
+ 161.02 l 200.957 161.023 l 200.961 161.027 l 200.961 161.031 l 200.977 
+161.047 l 200.977 161.051 l 200.988 161.062 l 200.988 161.066 l 201 161.078
+ l 201 161.082 l 201.016 161.098 l 201.016 161.102 l 201.027 161.113 l 201.027
+ 161.117 l 201.043 161.133 l 201.043 161.137 l 201.047 161.141 l 201.047
+ 161.145 l 201.051 161.145 l 201.055 161.148 l 201.055 161.152 l 201.066
+ 161.164 l 201.066 161.168 l 201.074 161.176 l 201.074 161.18 l 201.078 
+161.18 l 201.082 161.184 l 201.082 161.188 l 201.086 161.191 l 201.086 161.195
+ l 201.09 161.195 l 201.094 161.199 l 201.094 161.203 l 201.102 161.211 
+l 201.102 161.215 l 201.105 161.215 l 201.105 161.219 l 201.113 161.227 
+l 201.113 161.23 l 201.117 161.23 l 201.121 161.234 l 201.121 161.238 l 
+201.129 161.246 l 201.129 161.25 l 201.133 161.25 l 201.133 161.254 l 201.141
+ 161.262 l 201.141 161.266 l 201.145 161.266 l 201.148 161.27 l 201.148 
+161.273 l 201.152 161.277 l 201.152 161.281 l 201.156 161.285 l 201.16 161.285
+ l 201.16 161.289 l 201.168 161.297 l 201.168 161.301 l 201.172 161.301 
+l 201.172 161.305 l 201.18 161.312 l 201.18 161.316 l 201.184 161.32 l 201.188
+ 161.32 l 201.188 161.324 l 201.191 161.328 l 201.191 161.332 l 201.195 
+161.336 l 201.199 161.336 l 201.199 161.34 l 201.207 161.348 l 201.207 161.352
+ l 201.211 161.355 l 201.215 161.355 l 201.215 161.359 l 201.219 161.363
+ l 201.219 161.367 l 201.223 161.371 l 201.227 161.371 l 201.227 161.375
+ l 201.234 161.383 l 201.234 161.387 l 201.246 161.398 l 201.246 161.402
+ l 201.25 161.406 l 201.254 161.406 l 201.254 161.41 l 201.258 161.414 l
+ 201.258 161.418 l 201.262 161.422 l 201.266 161.422 l 201.266 161.426 l
+ 201.273 161.434 l 201.273 161.438 l 201.285 161.449 l 201.285 161.453 l
+ 201.289 161.457 l 201.293 161.457 l 201.293 161.461 l 201.297 161.465 l
+ 201.297 161.469 l 201.312 161.484 l 201.312 161.488 l 201.316 161.492 l
+ 201.32 161.492 l 201.32 161.496 l 201.324 161.5 l 201.324 161.504 l 201.328
+ 161.508 l 201.332 161.508 l 201.332 161.512 l 201.34 161.52 l 201.34 161.523
+ l 201.352 161.535 l 201.352 161.539 l 201.355 161.543 l 201.359 161.543
+ l 201.359 161.547 l 201.363 161.551 l 201.363 161.555 l 201.379 161.57 
+l 201.379 161.574 l 201.391 161.586 l 201.391 161.59 l 201.406 161.605 l
+ 201.406 161.609 l 201.418 161.621 l 201.418 161.625 l 201.422 161.629 l
+ 201.426 161.629 l 201.426 161.633 l 201.43 161.637 l 201.43 161.641 l 201.445
+ 161.656 l 201.445 161.66 l 201.457 161.672 l 201.457 161.676 l 201.461 
+161.68 l 201.465 161.68 l 201.465 161.684 l 201.469 161.688 l 201.469 161.691
+ l 201.484 161.707 l 201.484 161.711 l 201.496 161.723 l 201.496 161.727
+ l 201.512 161.742 l 201.512 161.746 l 201.523 161.758 l 201.523 161.762
+ l 201.527 161.766 l 201.531 161.766 l 201.531 161.77 l 201.535 161.773 
+l 201.535 161.777 l 201.551 161.793 l 201.551 161.797 l 201.562 161.809 
+l 201.562 161.812 l 201.566 161.816 l 201.57 161.816 l 201.57 161.82 l 201.574
+ 161.824 l 201.574 161.828 l 201.59 161.844 l 201.59 161.848 l 201.602 161.859
+ l 201.602 161.863 l 201.605 161.867 l 201.609 161.867 l 201.609 161.871
+ l 201.617 161.879 l 201.617 161.883 l 201.629 161.895 l 201.629 161.898
+ l 201.633 161.902 l 201.637 161.902 l 201.637 161.906 l 201.641 161.91 
+l 201.641 161.914 l 201.645 161.918 l 201.648 161.918 l 201.648 161.922 
+l 201.656 161.93 l 201.656 161.934 l 201.668 161.945 l 201.668 161.949 l
+ 201.672 161.953 l 201.676 161.953 l 201.676 161.957 l 201.68 161.961 l 
+201.68 161.965 l 201.684 161.969 l 201.688 161.969 l 201.688 161.973 l 201.695
+ 161.98 l 201.695 161.984 l 201.699 161.984 l 201.703 161.988 l 201.703 
+161.992 l 201.707 161.996 l 201.707 162 l 201.711 162.004 l 201.715 162.004
+ l 201.715 162.008 l 201.723 162.016 l 201.723 162.02 l 201.727 162.02 l
+ 201.727 162.023 l 201.734 162.031 l 201.734 162.035 l 201.738 162.035 l
+ 201.742 162.039 l 201.742 162.043 l 201.746 162.047 l 201.746 162.051 l
+ 201.75 162.055 l 201.754 162.055 l 201.754 162.059 l 201.762 162.066 l 
+201.762 162.07 l 201.766 162.07 l 201.766 162.074 l 201.773 162.082 l 201.773
+ 162.086 l 201.777 162.086 l 201.781 162.09 l 201.781 162.094 l 201.785 
+162.098 l 201.785 162.102 l 201.789 162.102 l 201.793 162.105 l 201.793 
+162.109 l 201.801 162.117 l 201.801 162.121 l 201.805 162.121 l 201.809 
+162.125 l 201.809 162.129 l 201.812 162.133 l 201.812 162.137 l 201.816 
+162.137 l 201.82 162.141 l 201.82 162.145 l 201.832 162.156 l 201.832 162.16
+ l 201.848 162.176 l 201.848 162.18 l 201.852 162.184 l 201.852 162.188 
+l 201.855 162.188 l 201.859 162.191 l 201.859 162.195 l 201.871 162.207 
+l 201.871 162.211 l 201.887 162.227 l 201.887 162.23 l 201.891 162.234 l
+ 201.895 162.234 l 201.895 162.238 l 201.898 162.242 l 201.898 162.246 l
+ 201.914 162.262 l 201.914 162.266 l 201.926 162.277 l 201.926 162.281 l
+ 201.93 162.285 l 201.934 162.285 l 201.934 162.289 l 201.938 162.293 l 
+201.938 162.297 l 201.941 162.301 l 201.945 162.301 l 201.945 162.305 l 
+201.953 162.312 l 201.953 162.316 l 201.965 162.328 l 201.965 162.332 l 
+201.969 162.336 l 201.973 162.336 l 201.973 162.34 l 201.977 162.344 l 201.977
+ 162.348 l 201.98 162.352 l 201.984 162.352 l 201.984 162.355 l 201.992 
+162.363 l 201.992 162.367 l 201.996 162.367 l 202 162.371 l 202 162.375 
+l 202.004 162.379 l 202.004 162.383 l 202.008 162.383 l 202.012 162.387 
+l 202.012 162.391 l 202.02 162.398 l 202.02 162.402 l 202.023 162.402 l 
+202.023 162.406 l 202.031 162.414 l 202.031 162.418 l 202.035 162.418 l 
+202.039 162.422 l 202.039 162.426 l 202.043 162.43 l 202.043 162.434 l 202.047
+ 162.434 l 202.051 162.438 l 202.051 162.441 l 202.062 162.453 l 202.062
+ 162.457 l 202.078 162.473 l 202.078 162.477 l 202.09 162.488 l 202.09 162.492
+ l 202.105 162.508 l 202.105 162.512 l 202.117 162.523 l 202.117 162.527
+ l 202.121 162.531 l 202.125 162.531 l 202.125 162.535 l 202.129 162.539
+ l 202.129 162.543 l 202.133 162.547 l 202.137 162.547 l 202.137 162.551
+ l 202.145 162.559 l 202.145 162.562 l 202.148 162.562 l 202.148 162.566
+ l 202.156 162.574 l 202.156 162.578 l 202.16 162.582 l 202.164 162.582 
+l 202.164 162.586 l 202.168 162.59 l 202.168 162.594 l 202.172 162.598 l
+ 202.176 162.598 l 202.176 162.602 l 202.184 162.609 l 202.184 162.613 l
+ 202.188 162.613 l 202.191 162.617 l 202.191 162.621 l 202.195 162.625 l
+ 202.195 162.629 l 202.199 162.629 l 202.203 162.633 l 202.203 162.637 l
+ 202.215 162.648 l 202.215 162.652 l 202.23 162.668 l 202.23 162.672 l 202.242
+ 162.684 l 202.242 162.688 l 202.254 162.699 l 202.254 162.703 l 202.27 
+162.719 l 202.27 162.723 l 202.273 162.727 l 202.277 162.727 l 202.277 162.73
+ l 202.281 162.734 l 202.281 162.738 l 202.285 162.742 l 202.289 162.742
+ l 202.289 162.746 l 202.297 162.754 l 202.297 162.758 l 202.301 162.758
+ l 202.301 162.762 l 202.309 162.77 l 202.309 162.773 l 202.312 162.773 
+l 202.316 162.777 l 202.316 162.781 l 202.32 162.785 l 202.32 162.789 l 
+202.324 162.789 l 202.328 162.793 l 202.328 162.797 l 202.34 162.809 l 202.34
+ 162.812 l 202.348 162.82 l 202.348 162.824 l 202.352 162.824 l 202.355 
+162.828 l 202.355 162.832 l 202.359 162.836 l 202.359 162.84 l 202.363 162.84
+ l 202.367 162.844 l 202.367 162.848 l 202.383 162.863 l 202.383 162.867
+ l 202.395 162.879 l 202.395 162.883 l 202.398 162.887 l 202.402 162.887
+ l 202.402 162.891 l 202.406 162.895 l 202.406 162.898 l 202.41 162.902 
+l 202.414 162.902 l 202.414 162.906 l 202.422 162.914 l 202.422 162.918 
+l 202.426 162.918 l 202.426 162.922 l 202.434 162.93 l 202.434 162.934 l
+ 202.438 162.934 l 202.441 162.938 l 202.441 162.941 l 202.445 162.945 l
+ 202.445 162.949 l 202.449 162.949 l 202.453 162.953 l 202.453 162.957 l
+ 202.469 162.973 l 202.469 162.977 l 202.48 162.988 l 202.48 162.992 l 202.484
+ 162.996 l 202.488 162.996 l 202.488 163 l 202.492 163.004 l 202.492 163.008
+ l 202.508 163.023 l 202.508 163.027 l 202.52 163.039 l 202.52 163.043 l
+ 202.523 163.047 l 202.527 163.047 l 202.527 163.051 l 202.531 163.055 l
+ 202.531 163.059 l 202.535 163.062 l 202.539 163.062 l 202.539 163.066 l
+ 202.547 163.074 l 202.547 163.078 l 202.551 163.078 l 202.551 163.082 l
+ 202.559 163.09 l 202.559 163.094 l 202.562 163.094 l 202.566 163.098 l 
+202.566 163.102 l 202.578 163.113 l 202.578 163.117 l 202.594 163.133 l 
+202.594 163.137 l 202.605 163.148 l 202.605 163.152 l 202.609 163.156 l 
+202.613 163.156 l 202.613 163.16 l 202.617 163.164 l 202.617 163.168 l 202.621
+ 163.172 l 202.625 163.172 l 202.625 163.176 l 202.633 163.184 l 202.633
+ 163.188 l 202.637 163.188 l 202.637 163.191 l 202.645 163.199 l 202.645
+ 163.203 l 202.648 163.203 l 202.652 163.207 l 202.652 163.211 l 202.664
+ 163.223 l 202.664 163.227 l 202.68 163.242 l 202.68 163.246 l 202.691 163.258
+ l 202.691 163.262 l 202.695 163.266 l 202.699 163.266 l 202.699 163.27 
+l 202.703 163.273 l 202.703 163.277 l 202.707 163.281 l 202.711 163.281 
+l 202.711 163.285 l 202.719 163.293 l 202.719 163.297 l 202.723 163.297 
+l 202.723 163.301 l 202.73 163.309 l 202.73 163.312 l 202.734 163.312 l 
+202.738 163.316 l 202.738 163.32 l 202.742 163.324 l 202.742 163.328 l 202.746
+ 163.328 l 202.75 163.332 l 202.75 163.336 l 202.766 163.352 l 202.766 163.355
+ l 202.777 163.367 l 202.777 163.371 l 202.781 163.375 l 202.785 163.375
+ l 202.785 163.379 l 202.789 163.383 l 202.789 163.387 l 202.793 163.391
+ l 202.797 163.391 l 202.797 163.395 l 202.805 163.402 l 202.805 163.406
+ l 202.809 163.406 l 202.809 163.41 l 202.816 163.418 l 202.816 163.422 
+l 202.82 163.422 l 202.824 163.426 l 202.824 163.43 l 202.828 163.434 l 
+202.828 163.438 l 202.832 163.438 l 202.836 163.441 l 202.836 163.445 l 
+202.852 163.461 l 202.852 163.465 l 202.863 163.477 l 202.863 163.48 l 202.867
+ 163.484 l 202.871 163.484 l 202.871 163.488 l 202.875 163.492 l 202.875
+ 163.496 l 202.879 163.5 l 202.883 163.5 l 202.883 163.504 l 202.891 163.512
+ l 202.891 163.516 l 202.895 163.516 l 202.895 163.52 l 202.902 163.527 
+l 202.902 163.531 l 202.906 163.531 l 202.91 163.535 l 202.91 163.539 l 
+202.914 163.543 l 202.914 163.547 l 202.918 163.547 l 202.922 163.551 l 
+202.922 163.555 l 202.934 163.566 l 202.934 163.57 l 202.938 163.574 l 202.941
+ 163.574 l 202.941 163.578 l 202.949 163.586 l 202.949 163.59 l 202.953 
+163.59 l 202.957 163.594 l 202.957 163.598 l 202.961 163.602 l 202.961 163.605
+ l 202.965 163.605 l 202.969 163.609 l 202.969 163.613 l 202.98 163.625 
+l 202.98 163.629 l 202.996 163.645 l 202.996 163.648 l 203.008 163.66 l 
+203.008 163.664 l 203.012 163.668 l 203.016 163.668 l 203.016 163.672 l 
+203.02 163.676 l 203.02 163.68 l 203.023 163.684 l 203.027 163.684 l 203.027
+ 163.688 l 203.035 163.695 l 203.035 163.699 l 203.039 163.699 l 203.043
+ 163.703 l 203.043 163.707 l 203.047 163.711 l 203.047 163.715 l 203.051
+ 163.715 l 203.055 163.719 l 203.055 163.723 l 203.066 163.734 l 203.066
+ 163.738 l 203.082 163.754 l 203.082 163.758 l 203.086 163.758 l 203.086
+ 163.762 l 203.094 163.77 l 203.094 163.773 l 203.098 163.773 l 203.102 
+163.777 l 203.102 163.781 l 203.105 163.785 l 203.105 163.789 l 203.109 
+163.789 l 203.113 163.793 l 203.113 163.797 l 203.125 163.809 l 203.125 
+163.812 l 203.141 163.828 l 203.141 163.832 l 203.145 163.836 l 203.148 
+163.836 l 203.148 163.84 l 203.152 163.844 l 203.152 163.848 l 203.156 163.852
+ l 203.16 163.852 l 203.16 163.855 l 203.168 163.863 l 203.168 163.867 l
+ 203.172 163.867 l 203.172 163.871 l 203.18 163.879 l 203.18 163.883 l 203.184
+ 163.883 l 203.188 163.887 l 203.188 163.891 l 203.199 163.902 l 203.199
+ 163.906 l 203.203 163.91 l 203.207 163.91 l 203.207 163.914 l 203.211 163.918
+ l 203.211 163.922 l 203.215 163.926 l 203.219 163.926 l 203.219 163.93 
+l 203.227 163.938 l 203.227 163.941 l 203.23 163.941 l 203.234 163.945 l
+ 203.234 163.949 l 203.238 163.953 l 203.238 163.957 l 203.242 163.957 l
+ 203.246 163.961 l 203.246 163.965 l 203.258 163.977 l 203.258 163.98 l 
+203.273 163.996 l 203.273 164 l 203.277 164 l 203.277 164.004 l 203.285 
+164.012 l 203.285 164.016 l 203.289 164.016 l 203.293 164.02 l 203.293 164.023
+ l 203.297 164.027 l 203.297 164.031 l 203.301 164.031 l 203.305 164.035
+ l 203.305 164.039 l 203.316 164.051 l 203.316 164.055 l 203.332 164.07 
+l 203.332 164.074 l 203.336 164.078 l 203.34 164.078 l 203.34 164.082 l 
+203.344 164.086 l 203.344 164.09 l 203.348 164.094 l 203.352 164.094 l 203.352
+ 164.098 l 203.363 164.109 l 203.363 164.113 l 203.379 164.129 l 203.379
+ 164.133 l 203.391 164.145 l 203.391 164.148 l 203.395 164.152 l 203.398
+ 164.152 l 203.398 164.156 l 203.402 164.16 l 203.402 164.164 l 203.406 
+164.168 l 203.41 164.168 l 203.41 164.172 l 203.426 164.188 l 203.426 164.191
+ l 203.438 164.203 l 203.438 164.207 l 203.441 164.211 l 203.445 164.211
+ l 203.445 164.215 l 203.449 164.219 l 203.449 164.223 l 203.453 164.227
+ l 203.457 164.227 l 203.457 164.23 l 203.465 164.238 l 203.465 164.242 
+l 203.469 164.242 l 203.469 164.246 l 203.484 164.262 l 203.484 164.266 
+l 203.496 164.277 l 203.496 164.281 l 203.5 164.285 l 203.504 164.285 l 
+203.504 164.289 l 203.508 164.293 l 203.508 164.297 l 203.512 164.301 l 
+203.516 164.301 l 203.516 164.305 l 203.523 164.312 l 203.523 164.316 l 
+203.527 164.316 l 203.531 164.32 l 203.531 164.324 l 203.543 164.336 l 203.543
+ 164.34 l 203.547 164.344 l 203.551 164.344 l 203.551 164.348 l 203.555 
+164.352 l 203.555 164.355 l 203.559 164.359 l 203.562 164.359 l 203.562 
+164.363 l 203.57 164.371 l 203.57 164.375 l 203.574 164.375 l 203.574 164.379
+ l 203.582 164.387 l 203.582 164.391 l 203.586 164.391 l 203.59 164.395 
+l 203.59 164.398 l 203.602 164.41 l 203.602 164.414 l 203.605 164.418 l 
+203.609 164.418 l 203.609 164.422 l 203.617 164.43 l 203.617 164.434 l 203.621
+ 164.434 l 203.621 164.438 l 203.629 164.445 l 203.629 164.449 l 203.633
+ 164.449 l 203.637 164.453 l 203.637 164.457 l 203.648 164.469 l 203.648
+ 164.473 l 203.652 164.477 l 203.656 164.477 l 203.656 164.48 l 203.66 164.484
+ l 203.66 164.488 l 203.664 164.492 l 203.668 164.492 l 203.668 164.496 
+l 203.676 164.504 l 203.676 164.508 l 203.68 164.508 l 203.68 164.512 l 
+203.695 164.527 l 203.695 164.531 l 203.707 164.543 l 203.707 164.547 l 
+203.711 164.551 l 203.715 164.551 l 203.715 164.555 l 203.723 164.562 l 
+203.723 164.566 l 203.727 164.566 l 203.727 164.57 l 203.742 164.586 l 203.742
+ 164.59 l 203.754 164.602 l 203.754 164.605 l 203.758 164.609 l 203.762 
+164.609 l 203.762 164.613 l 203.766 164.617 l 203.766 164.621 l 203.77 164.621
+ l 203.773 164.625 l 203.773 164.629 l 203.785 164.641 l 203.785 164.645
+ l 203.801 164.66 l 203.801 164.664 l 203.812 164.676 l 203.812 164.68 l
+ 203.816 164.68 l 203.82 164.684 l 203.82 164.688 l 203.832 164.699 l 203.832
+ 164.703 l 203.848 164.719 l 203.848 164.723 l 203.852 164.723 l 203.852
+ 164.727 l 203.859 164.734 l 203.859 164.738 l 203.863 164.738 l 203.867
+ 164.742 l 203.867 164.746 l 203.871 164.75 l 203.871 164.754 l 203.875 
+164.754 l 203.879 164.758 l 203.879 164.762 l 203.891 164.773 l 203.891 
+164.777 l 203.895 164.781 l 203.898 164.781 l 203.898 164.785 l 203.906 
+164.793 l 203.906 164.797 l 203.91 164.797 l 203.914 164.801 l 203.914 164.805
+ l 203.918 164.809 l 203.918 164.812 l 203.922 164.812 l 203.926 164.816
+ l 203.926 164.82 l 203.93 164.824 l 203.934 164.824 l 203.934 164.828 l
+ 203.938 164.832 l 203.938 164.836 l 203.941 164.84 l 203.945 164.84 l 203.945
+ 164.844 l 203.953 164.852 l 203.953 164.855 l 203.957 164.855 l 203.957
+ 164.859 l 203.973 164.875 l 203.973 164.879 l 203.984 164.891 l 203.984
+ 164.895 l 203.988 164.898 l 203.992 164.898 l 203.992 164.902 l 203.996
+ 164.906 l 203.996 164.91 l 204 164.91 l 204.004 164.914 l 204.004 164.918
+ l 204.02 164.934 l 204.02 164.938 l 204.031 164.949 l 204.031 164.953 l
+ 204.035 164.953 l 204.039 164.957 l 204.039 164.961 l 204.043 164.965 l
+ 204.043 164.969 l 204.047 164.969 l 204.051 164.973 l 204.051 164.977 l
+ 204.062 164.988 l 204.062 164.992 l 204.066 164.996 l 204.07 164.996 l 
+204.07 165 l 204.078 165.008 l 204.078 165.012 l 204.082 165.012 l 204.082
+ 165.016 l 204.09 165.023 l 204.09 165.027 l 204.094 165.027 l 204.098 165.031
+ l 204.098 165.035 l 204.102 165.039 l 204.105 165.039 l 204.105 165.043
+ l 204.109 165.047 l 204.109 165.051 l 204.113 165.055 l 204.117 165.055
+ l 204.117 165.059 l 204.125 165.066 l 204.125 165.07 l 204.129 165.07 l
+ 204.129 165.074 l 204.145 165.09 l 204.145 165.094 l 204.156 165.105 l 
+204.156 165.109 l 204.16 165.109 l 204.164 165.113 l 204.164 165.117 l 204.168
+ 165.121 l 204.168 165.125 l 204.172 165.125 l 204.176 165.129 l 204.176
+ 165.133 l 204.188 165.145 l 204.188 165.148 l 204.191 165.152 l 204.195
+ 165.152 l 204.195 165.156 l 204.203 165.164 l 204.203 165.168 l 204.207
+ 165.168 l 204.211 165.172 l 204.211 165.176 l 204.215 165.18 l 204.215 
+165.184 l 204.219 165.184 l 204.223 165.188 l 204.223 165.191 l 204.227 
+165.195 l 204.23 165.195 l 204.23 165.199 l 204.234 165.203 l 204.234 165.207
+ l 204.238 165.211 l 204.242 165.211 l 204.242 165.215 l 204.254 165.227
+ l 204.254 165.23 l 204.27 165.246 l 204.27 165.25 l 204.281 165.262 l 204.281
+ 165.266 l 204.285 165.266 l 204.289 165.27 l 204.289 165.273 l 204.301 
+165.285 l 204.301 165.289 l 204.305 165.293 l 204.309 165.293 l 204.309 
+165.297 l 204.316 165.305 l 204.316 165.309 l 204.32 165.309 l 204.32 165.312
+ l 204.328 165.32 l 204.328 165.324 l 204.332 165.324 l 204.336 165.328 
+l 204.336 165.332 l 204.348 165.344 l 204.348 165.348 l 204.352 165.352 
+l 204.355 165.352 l 204.355 165.355 l 204.359 165.359 l 204.359 165.363 
+l 204.363 165.363 l 204.367 165.367 l 204.367 165.371 l 204.379 165.383 
+l 204.379 165.387 l 204.383 165.391 l 204.387 165.391 l 204.387 165.395 
+l 204.395 165.402 l 204.395 165.406 l 204.398 165.406 l 204.402 165.41 l
+ 204.402 165.414 l 204.406 165.418 l 204.406 165.422 l 204.41 165.422 l 
+204.414 165.426 l 204.414 165.43 l 204.418 165.434 l 204.422 165.434 l 204.422
+ 165.438 l 204.426 165.441 l 204.426 165.445 l 204.43 165.449 l 204.434 
+165.449 l 204.434 165.453 l 204.445 165.465 l 204.445 165.469 l 204.461 
+165.484 l 204.461 165.488 l 204.465 165.488 l 204.465 165.492 l 204.473 
+165.5 l 204.473 165.504 l 204.477 165.504 l 204.48 165.508 l 204.48 165.512
+ l 204.492 165.523 l 204.492 165.527 l 204.496 165.531 l 204.5 165.531 l
+ 204.5 165.535 l 204.508 165.543 l 204.508 165.547 l 204.512 165.547 l 204.512
+ 165.551 l 204.527 165.566 l 204.527 165.57 l 204.539 165.582 l 204.539 
+165.586 l 204.543 165.586 l 204.547 165.59 l 204.547 165.594 l 204.551 165.598
+ l 204.551 165.602 l 204.555 165.602 l 204.559 165.605 l 204.559 165.609
+ l 204.562 165.613 l 204.566 165.613 l 204.566 165.617 l 204.57 165.621 
+l 204.57 165.625 l 204.574 165.629 l 204.578 165.629 l 204.578 165.633 l
+ 204.594 165.648 l 204.594 165.652 l 204.605 165.664 l 204.605 165.668 l
+ 204.609 165.668 l 204.613 165.672 l 204.613 165.676 l 204.617 165.68 l 
+204.617 165.684 l 204.621 165.684 l 204.625 165.688 l 204.625 165.691 l 
+204.629 165.695 l 204.633 165.695 l 204.633 165.699 l 204.637 165.703 l 
+204.637 165.707 l 204.641 165.711 l 204.645 165.711 l 204.645 165.715 l 
+204.652 165.723 l 204.652 165.727 l 204.656 165.727 l 204.656 165.73 l 204.672
+ 165.746 l 204.672 165.75 l 204.676 165.754 l 204.68 165.754 l 204.68 165.758
+ l 204.684 165.762 l 204.684 165.766 l 204.688 165.766 l 204.691 165.77 
+l 204.691 165.773 l 204.703 165.785 l 204.703 165.789 l 204.707 165.793 
+l 204.711 165.793 l 204.711 165.797 l 204.719 165.805 l 204.719 165.809 
+l 204.723 165.809 l 204.723 165.812 l 204.738 165.828 l 204.738 165.832 
+l 204.75 165.844 l 204.75 165.848 l 204.754 165.848 l 204.758 165.852 l 
+204.758 165.855 l 204.762 165.859 l 204.762 165.863 l 204.766 165.863 l 
+204.77 165.867 l 204.77 165.871 l 204.773 165.875 l 204.777 165.875 l 204.777
+ 165.879 l 204.785 165.887 l 204.785 165.891 l 204.789 165.891 l 204.789
+ 165.895 l 204.805 165.91 l 204.805 165.914 l 204.809 165.914 l 204.809 
+165.918 l 204.816 165.926 l 204.816 165.93 l 204.82 165.93 l 204.824 165.934
+ l 204.824 165.938 l 204.836 165.949 l 204.836 165.953 l 204.84 165.957 
+l 204.844 165.957 l 204.844 165.961 l 204.848 165.965 l 204.848 165.969 
+l 204.852 165.969 l 204.855 165.973 l 204.855 165.977 l 204.871 165.992 
+l 204.871 165.996 l 204.875 165.996 l 204.875 166 l 204.883 166.008 l 204.883
+ 166.012 l 204.887 166.012 l 204.891 166.016 l 204.891 166.02 l 204.902 
+166.031 l 204.902 166.035 l 204.906 166.039 l 204.91 166.039 l 204.91 166.043
+ l 204.914 166.047 l 204.914 166.051 l 204.918 166.051 l 204.922 166.055
+ l 204.922 166.059 l 204.934 166.07 l 204.934 166.074 l 204.938 166.078 
+l 204.941 166.078 l 204.941 166.082 l 204.953 166.094 l 204.953 166.098 
+l 204.969 166.113 l 204.969 166.117 l 204.973 166.117 l 204.977 166.121 
+l 204.977 166.125 l 204.98 166.129 l 204.98 166.133 l 204.984 166.133 l 
+204.988 166.137 l 204.988 166.141 l 204.992 166.145 l 204.996 166.145 l 
+204.996 166.148 l 205 166.152 l 205 166.156 l 205.004 166.16 l 205.008 166.16
+ l 205.008 166.164 l 205.02 166.176 l 205.02 166.18 l 205.035 166.195 l 
+205.035 166.199 l 205.039 166.199 l 205.039 166.203 l 205.055 166.219 l 
+205.055 166.223 l 205.059 166.227 l 205.062 166.227 l 205.062 166.23 l 205.066
+ 166.234 l 205.066 166.238 l 205.07 166.238 l 205.074 166.242 l 205.074 
+166.246 l 205.086 166.258 l 205.086 166.262 l 205.09 166.266 l 205.094 166.266
+ l 205.094 166.27 l 205.102 166.277 l 205.102 166.281 l 205.105 166.281 
+l 205.105 166.285 l 205.121 166.301 l 205.121 166.305 l 205.125 166.305 
+l 205.125 166.309 l 205.133 166.316 l 205.133 166.32 l 205.137 166.32 l 
+205.141 166.324 l 205.141 166.328 l 205.152 166.34 l 205.152 166.344 l 205.156
+ 166.348 l 205.16 166.348 l 205.16 166.352 l 205.172 166.363 l 205.172 166.367
+ l 205.176 166.371 l 205.18 166.371 l 205.18 166.375 l 205.188 166.383 l
+ 205.188 166.387 l 205.191 166.387 l 205.191 166.391 l 205.207 166.406 l
+ 205.207 166.41 l 205.219 166.422 l 205.219 166.426 l 205.223 166.426 l 
+205.227 166.43 l 205.227 166.434 l 205.238 166.445 l 205.238 166.449 l 205.242
+ 166.453 l 205.246 166.453 l 205.246 166.457 l 205.258 166.469 l 205.258
+ 166.473 l 205.262 166.477 l 205.266 166.477 l 205.266 166.48 l 205.273 
+166.488 l 205.273 166.492 l 205.277 166.492 l 205.277 166.496 l 205.293 
+166.512 l 205.293 166.516 l 205.305 166.527 l 205.305 166.531 l 205.309 
+166.531 l 205.312 166.535 l 205.312 166.539 l 205.324 166.551 l 205.324 
+166.555 l 205.328 166.559 l 205.332 166.559 l 205.332 166.562 l 205.336 
+166.566 l 205.336 166.57 l 205.34 166.57 l 205.344 166.574 l 205.344 166.578
+ l 205.348 166.582 l 205.352 166.582 l 205.352 166.586 l 205.359 166.594
+ l 205.359 166.598 l 205.363 166.598 l 205.363 166.602 l 205.379 166.617
+ l 205.379 166.621 l 205.383 166.621 l 205.383 166.625 l 205.391 166.633
+ l 205.391 166.637 l 205.395 166.637 l 205.398 166.641 l 205.398 166.645
+ l 205.41 166.656 l 205.41 166.66 l 205.414 166.664 l 205.418 166.664 l 
+205.418 166.668 l 205.422 166.672 l 205.422 166.676 l 205.426 166.676 l 
+205.43 166.68 l 205.43 166.684 l 205.434 166.688 l 205.438 166.688 l 205.438
+ 166.691 l 205.445 166.699 l 205.445 166.703 l 205.449 166.703 l 205.449
+ 166.707 l 205.465 166.723 l 205.465 166.727 l 205.469 166.727 l 205.469
+ 166.73 l 205.477 166.738 l 205.477 166.742 l 205.48 166.742 l 205.484 166.746
+ l 205.484 166.75 l 205.496 166.762 l 205.496 166.766 l 205.5 166.766 l 
+205.504 166.77 l 205.504 166.773 l 205.508 166.777 l 205.508 166.781 l 205.512
+ 166.781 l 205.516 166.785 l 205.516 166.789 l 205.52 166.793 l 205.523 
+166.793 l 205.523 166.797 l 205.527 166.801 l 205.527 166.805 l 205.531 
+166.805 l 205.535 166.809 l 205.535 166.812 l 205.551 166.828 l 205.551 
+166.832 l 205.555 166.832 l 205.555 166.836 l 205.57 166.852 l 205.57 166.855
+ l 205.574 166.855 l 205.574 166.859 l 205.582 166.867 l 205.582 166.871
+ l 205.586 166.871 l 205.59 166.875 l 205.59 166.879 l 205.602 166.891 l
+ 205.602 166.895 l 205.605 166.895 l 205.609 166.898 l 205.609 166.902 l
+ 205.613 166.906 l 205.613 166.91 l 205.617 166.91 l 205.621 166.914 l 205.621
+ 166.918 l 205.625 166.922 l 205.629 166.922 l 205.629 166.926 l 205.641
+ 166.938 l 205.641 166.941 l 205.656 166.957 l 205.656 166.961 l 205.66 
+166.961 l 205.66 166.965 l 205.676 166.98 l 205.676 166.984 l 205.68 166.984
+ l 205.68 166.988 l 205.688 166.996 l 205.688 167 l 205.691 167 l 205.695
+ 167.004 l 205.695 167.008 l 205.707 167.02 l 205.707 167.023 l 205.711 
+167.023 l 205.715 167.027 l 205.715 167.031 l 205.719 167.035 l 205.719 
+167.039 l 205.723 167.039 l 205.727 167.043 l 205.727 167.047 l 205.73 167.051
+ l 205.734 167.051 l 205.734 167.055 l 205.746 167.066 l 205.746 167.07 
+l 205.75 167.074 l 205.754 167.074 l 205.754 167.078 l 205.762 167.086 l
+ 205.762 167.09 l 205.766 167.09 l 205.766 167.094 l 205.781 167.109 l 205.781
+ 167.113 l 205.785 167.113 l 205.785 167.117 l 205.793 167.125 l 205.793
+ 167.129 l 205.797 167.129 l 205.801 167.133 l 205.801 167.137 l 205.812
+ 167.148 l 205.812 167.152 l 205.816 167.152 l 205.82 167.156 l 205.82 167.16
+ l 205.824 167.164 l 205.828 167.164 l 205.828 167.168 l 205.832 167.172
+ l 205.832 167.176 l 205.836 167.18 l 205.84 167.18 l 205.84 167.184 l 205.852
+ 167.195 l 205.852 167.199 l 205.855 167.203 l 205.859 167.203 l 205.859
+ 167.207 l 205.871 167.219 l 205.871 167.223 l 205.887 167.238 l 205.887
+ 167.242 l 205.891 167.242 l 205.891 167.246 l 205.906 167.262 l 205.906
+ 167.266 l 205.91 167.266 l 205.91 167.27 l 205.918 167.277 l 205.918 167.281
+ l 205.922 167.281 l 205.926 167.285 l 205.926 167.289 l 205.93 167.293 
+l 205.934 167.293 l 205.934 167.297 l 205.938 167.301 l 205.938 167.305 
+l 205.941 167.305 l 205.945 167.309 l 205.945 167.312 l 205.949 167.316 
+l 205.953 167.316 l 205.953 167.32 l 205.957 167.324 l 205.957 167.328 l
+ 205.961 167.332 l 205.965 167.332 l 205.965 167.336 l 205.977 167.348 l
+ 205.977 167.352 l 205.98 167.355 l 205.984 167.355 l 205.984 167.359 l 
+205.996 167.371 l 205.996 167.375 l 206.012 167.391 l 206.012 167.395 l 
+206.016 167.395 l 206.02 167.398 l 206.02 167.402 l 206.031 167.414 l 206.031
+ 167.418 l 206.035 167.418 l 206.039 167.422 l 206.039 167.426 l 206.051
+ 167.438 l 206.051 167.441 l 206.055 167.445 l 206.059 167.445 l 206.059
+ 167.449 l 206.062 167.453 l 206.062 167.457 l 206.066 167.457 l 206.07 
+167.461 l 206.07 167.465 l 206.074 167.469 l 206.078 167.469 l 206.078 167.473
+ l 206.082 167.477 l 206.082 167.48 l 206.086 167.48 l 206.09 167.484 l 
+206.09 167.488 l 206.094 167.492 l 206.098 167.492 l 206.098 167.496 l 206.102
+ 167.5 l 206.102 167.504 l 206.105 167.508 l 206.109 167.508 l 206.109 167.512
+ l 206.125 167.527 l 206.125 167.531 l 206.129 167.531 l 206.129 167.535
+ l 206.145 167.551 l 206.145 167.555 l 206.148 167.555 l 206.148 167.559
+ l 206.156 167.566 l 206.156 167.57 l 206.16 167.57 l 206.164 167.574 l 
+206.164 167.578 l 206.176 167.59 l 206.176 167.594 l 206.18 167.594 l 206.184
+ 167.598 l 206.184 167.602 l 206.195 167.613 l 206.195 167.617 l 206.199
+ 167.617 l 206.203 167.621 l 206.203 167.625 l 206.215 167.637 l 206.215
+ 167.641 l 206.219 167.645 l 206.223 167.645 l 206.223 167.648 l 206.234
+ 167.66 l 206.234 167.664 l 206.238 167.668 l 206.242 167.668 l 206.242 
+167.672 l 206.254 167.684 l 206.254 167.688 l 206.27 167.703 l 206.27 167.707
+ l 206.273 167.707 l 206.273 167.711 l 206.289 167.727 l 206.289 167.73 
+l 206.293 167.73 l 206.293 167.734 l 206.309 167.75 l 206.309 167.754 l 
+206.312 167.754 l 206.316 167.758 l 206.316 167.762 l 206.32 167.766 l 206.32
+ 167.77 l 206.324 167.77 l 206.328 167.773 l 206.328 167.777 l 206.332 167.781
+ l 206.336 167.781 l 206.336 167.785 l 206.34 167.789 l 206.34 167.793 l
+ 206.344 167.793 l 206.348 167.797 l 206.348 167.801 l 206.352 167.805 l
+ 206.355 167.805 l 206.355 167.809 l 206.359 167.812 l 206.359 167.816 l
+ 206.363 167.816 l 206.367 167.82 l 206.367 167.824 l 206.371 167.828 l 
+206.375 167.828 l 206.375 167.832 l 206.379 167.836 l 206.379 167.84 l 206.383
+ 167.84 l 206.387 167.844 l 206.387 167.848 l 206.402 167.863 l 206.402 
+167.867 l 206.406 167.867 l 206.406 167.871 l 206.422 167.887 l 206.422 
+167.891 l 206.426 167.891 l 206.426 167.895 l 206.441 167.91 l 206.441 167.914
+ l 206.445 167.914 l 206.445 167.918 l 206.461 167.934 l 206.461 167.938
+ l 206.473 167.949 l 206.473 167.953 l 206.477 167.953 l 206.48 167.957 
+l 206.48 167.961 l 206.492 167.973 l 206.492 167.977 l 206.496 167.977 l
+ 206.5 167.98 l 206.5 167.984 l 206.504 167.988 l 206.508 167.988 l 206.508
+ 167.992 l 206.512 167.996 l 206.512 168 l 206.516 168 l 206.52 168.004 
+l 206.52 168.008 l 206.523 168.012 l 206.527 168.012 l 206.527 168.016 l
+ 206.531 168.02 l 206.531 168.023 l 206.535 168.023 l 206.539 168.027 l 
+206.539 168.031 l 206.551 168.043 l 206.551 168.047 l 206.555 168.051 l 
+206.559 168.051 l 206.559 168.055 l 206.57 168.066 l 206.57 168.07 l 206.574
+ 168.074 l 206.578 168.074 l 206.578 168.078 l 206.594 168.094 l 206.594
+ 168.098 l 206.598 168.098 l 206.598 168.102 l 206.613 168.117 l 206.613
+ 168.121 l 206.617 168.121 l 206.617 168.125 l 206.625 168.133 l 206.625
+ 168.137 l 206.629 168.137 l 206.633 168.141 l 206.633 168.145 l 206.645
+ 168.156 l 206.645 168.16 l 206.648 168.16 l 206.652 168.164 l 206.652 168.168
+ l 206.664 168.18 l 206.664 168.184 l 206.668 168.184 l 206.672 168.188 
+l 206.672 168.191 l 206.684 168.203 l 206.684 168.207 l 206.688 168.207 
+l 206.691 168.211 l 206.691 168.215 l 206.695 168.219 l 206.699 168.219 
+l 206.699 168.223 l 206.703 168.227 l 206.703 168.23 l 206.707 168.23 l 
+206.711 168.234 l 206.711 168.238 l 206.715 168.242 l 206.719 168.242 l 
+206.719 168.246 l 206.723 168.25 l 206.723 168.254 l 206.727 168.254 l 206.73
+ 168.258 l 206.73 168.262 l 206.742 168.273 l 206.742 168.277 l 206.746 
+168.281 l 206.75 168.281 l 206.75 168.285 l 206.762 168.297 l 206.762 168.301
+ l 206.766 168.305 l 206.77 168.305 l 206.77 168.309 l 206.785 168.324 l
+ 206.785 168.328 l 206.789 168.328 l 206.789 168.332 l 206.805 168.348 l
+ 206.805 168.352 l 206.809 168.352 l 206.809 168.355 l 206.824 168.371 l
+ 206.824 168.375 l 206.828 168.375 l 206.828 168.379 l 206.844 168.395 l
+ 206.844 168.398 l 206.848 168.398 l 206.848 168.402 l 206.863 168.418 l
+ 206.863 168.422 l 206.867 168.422 l 206.867 168.426 l 206.875 168.434 l
+ 206.875 168.438 l 206.879 168.438 l 206.883 168.441 l 206.883 168.445 l
+ 206.887 168.449 l 206.891 168.449 l 206.891 168.453 l 206.895 168.457 l
+ 206.895 168.461 l 206.898 168.461 l 206.902 168.465 l 206.902 168.469 l
+ 206.906 168.473 l 206.91 168.473 l 206.91 168.477 l 206.914 168.48 l 206.914
+ 168.484 l 206.918 168.484 l 206.922 168.488 l 206.922 168.492 l 206.926
+ 168.496 l 206.93 168.496 l 206.93 168.5 l 206.934 168.504 l 206.934 168.508
+ l 206.938 168.508 l 206.941 168.512 l 206.941 168.516 l 206.945 168.52 
+l 206.949 168.52 l 206.949 168.523 l 206.953 168.527 l 206.953 168.531 l
+ 206.957 168.531 l 206.961 168.535 l 206.961 168.539 l 206.965 168.543 l
+ 206.969 168.543 l 206.969 168.547 l 206.98 168.559 l 206.98 168.562 l 206.984
+ 168.566 l 206.988 168.566 l 206.988 168.57 l 207 168.582 l 207 168.586 
+l 207.004 168.59 l 207.008 168.59 l 207.008 168.594 l 207.02 168.605 l 207.02
+ 168.609 l 207.023 168.613 l 207.027 168.613 l 207.027 168.617 l 207.039
+ 168.629 l 207.039 168.633 l 207.043 168.637 l 207.047 168.637 l 207.047
+ 168.641 l 207.059 168.652 l 207.059 168.656 l 207.062 168.66 l 207.066 
+168.66 l 207.066 168.664 l 207.082 168.68 l 207.082 168.684 l 207.086 168.684
+ l 207.086 168.688 l 207.102 168.703 l 207.102 168.707 l 207.105 168.707
+ l 207.105 168.711 l 207.121 168.727 l 207.121 168.73 l 207.125 168.73 l
+ 207.125 168.734 l 207.141 168.75 l 207.141 168.754 l 207.145 168.754 l 
+207.145 168.758 l 207.16 168.773 l 207.16 168.777 l 207.164 168.777 l 207.168
+ 168.781 l 207.168 168.785 l 207.18 168.797 l 207.18 168.801 l 207.184 168.801
+ l 207.188 168.805 l 207.188 168.809 l 207.199 168.82 l 207.199 168.824 
+l 207.203 168.824 l 207.207 168.828 l 207.207 168.832 l 207.219 168.844 
+l 207.219 168.848 l 207.223 168.848 l 207.227 168.852 l 207.227 168.855 
+l 207.238 168.867 l 207.238 168.871 l 207.242 168.871 l 207.246 168.875 
+l 207.246 168.879 l 207.258 168.891 l 207.258 168.895 l 207.262 168.895 
+l 207.266 168.898 l 207.266 168.902 l 207.27 168.906 l 207.273 168.906 l
+ 207.273 168.91 l 207.277 168.914 l 207.277 168.918 l 207.281 168.918 l 
+207.285 168.922 l 207.285 168.926 l 207.289 168.93 l 207.293 168.93 l 207.293
+ 168.934 l 207.297 168.938 l 207.297 168.941 l 207.301 168.941 l 207.305
+ 168.945 l 207.305 168.949 l 207.309 168.953 l 207.312 168.953 l 207.312
+ 168.957 l 207.316 168.961 l 207.316 168.965 l 207.32 168.965 l 207.324 
+168.969 l 207.324 168.973 l 207.328 168.977 l 207.332 168.977 l 207.332 
+168.98 l 207.336 168.984 l 207.336 168.988 l 207.34 168.988 l 207.344 168.992
+ l 207.344 168.996 l 207.348 169 l 207.352 169 l 207.352 169.004 l 207.355
+ 169.008 l 207.355 169.012 l 207.359 169.012 l 207.363 169.016 l 207.363
+ 169.02 l 207.367 169.023 l 207.371 169.023 l 207.371 169.027 l 207.383 
+169.039 l 207.383 169.043 l 207.387 169.047 l 207.391 169.047 l 207.391 
+169.051 l 207.402 169.062 l 207.402 169.066 l 207.406 169.07 l 207.41 169.07
+ l 207.41 169.074 l 207.422 169.086 l 207.422 169.09 l 207.426 169.094 l
+ 207.43 169.094 l 207.43 169.098 l 207.441 169.109 l 207.441 169.113 l 207.445
+ 169.117 l 207.449 169.117 l 207.449 169.121 l 207.465 169.137 l 207.465
+ 169.141 l 207.469 169.141 l 207.469 169.145 l 207.484 169.16 l 207.484 
+169.164 l 207.488 169.164 l 207.488 169.168 l 207.504 169.184 l 207.504 
+169.188 l 207.508 169.188 l 207.508 169.191 l 207.512 169.195 l 207.516 
+169.195 l 207.516 169.199 l 207.527 169.211 l 207.527 169.215 l 207.531 
+169.219 l 207.535 169.219 l 207.535 169.223 l 207.547 169.234 l 207.547 
+169.238 l 207.551 169.242 l 207.555 169.242 l 207.555 169.246 l 207.57 169.262
+ l 207.57 169.266 l 207.574 169.266 l 207.574 169.27 l 207.59 169.285 l 
+207.59 169.289 l 207.594 169.289 l 207.594 169.293 l 207.609 169.309 l 207.609
+ 169.312 l 207.613 169.312 l 207.613 169.316 l 207.629 169.332 l 207.629
+ 169.336 l 207.633 169.336 l 207.633 169.34 l 207.648 169.355 l 207.648 
+169.359 l 207.652 169.359 l 207.656 169.363 l 207.656 169.367 l 207.66 169.367
+ l 207.66 169.371 l 207.676 169.387 l 207.676 169.391 l 207.68 169.391 l
+ 207.68 169.395 l 207.695 169.41 l 207.695 169.414 l 207.699 169.414 l 207.699
+ 169.418 l 207.715 169.434 l 207.715 169.438 l 207.719 169.438 l 207.719
+ 169.441 l 207.734 169.457 l 207.734 169.461 l 207.738 169.461 l 207.738
+ 169.465 l 207.754 169.48 l 207.754 169.484 l 207.758 169.484 l 207.762 
+169.488 l 207.762 169.492 l 207.766 169.492 l 207.766 169.496 l 207.781 
+169.512 l 207.781 169.516 l 207.785 169.516 l 207.785 169.52 l 207.801 169.535
+ l 207.801 169.539 l 207.805 169.539 l 207.805 169.543 l 207.82 169.559 
+l 207.82 169.562 l 207.824 169.562 l 207.824 169.566 l 207.84 169.582 l 
+207.84 169.586 l 207.844 169.586 l 207.848 169.59 l 207.848 169.594 l 207.852
+ 169.594 l 207.852 169.598 l 207.867 169.613 l 207.867 169.617 l 207.871
+ 169.617 l 207.871 169.621 l 207.887 169.637 l 207.887 169.641 l 207.891
+ 169.641 l 207.891 169.645 l 207.906 169.66 l 207.906 169.664 l 207.91 169.664
+ l 207.91 169.668 l 207.926 169.684 l 207.926 169.688 l 207.93 169.688 l
+ 207.93 169.691 l 207.934 169.695 l 207.938 169.695 l 207.938 169.699 l 
+207.953 169.715 l 207.953 169.719 l 207.957 169.719 l 207.957 169.723 l 
+207.973 169.738 l 207.973 169.742 l 207.977 169.742 l 207.977 169.746 l 
+207.992 169.762 l 207.992 169.766 l 207.996 169.766 l 207.996 169.77 l 208
+ 169.773 l 208.004 169.773 l 208.004 169.777 l 208.016 169.789 l 208.016
+ 169.793 l 208.02 169.797 l 208.023 169.797 l 208.023 169.801 l 208.039 
+169.816 l 208.039 169.82 l 208.043 169.82 l 208.043 169.824 l 208.059 169.84
+ l 208.059 169.844 l 208.062 169.844 l 208.062 169.848 l 208.066 169.852
+ l 208.07 169.852 l 208.07 169.855 l 208.082 169.867 l 208.082 169.871 l
+ 208.086 169.875 l 208.09 169.875 l 208.09 169.879 l 208.102 169.891 l 208.102
+ 169.895 l 208.105 169.898 l 208.109 169.898 l 208.109 169.902 l 208.121
+ 169.914 l 208.121 169.918 l 208.125 169.918 l 208.129 169.922 l 208.129
+ 169.926 l 208.133 169.93 l 208.137 169.93 l 208.137 169.934 l 208.148 169.945
+ l 208.148 169.949 l 208.152 169.953 l 208.156 169.953 l 208.156 169.957
+ l 208.168 169.969 l 208.168 169.973 l 208.172 169.977 l 208.176 169.977
+ l 208.176 169.98 l 208.18 169.984 l 208.184 169.984 l 208.184 169.988 l
+ 208.188 169.992 l 208.188 169.996 l 208.191 169.996 l 208.195 170 l 208.195
+ 170.004 l 208.199 170.008 l 208.203 170.008 l 208.203 170.012 l 208.207
+ 170.016 l 208.207 170.02 l 208.211 170.02 l 208.215 170.023 l 208.215 170.027
+ l 208.219 170.031 l 208.223 170.031 l 208.223 170.035 l 208.234 170.047
+ l 208.234 170.051 l 208.238 170.051 l 208.242 170.055 l 208.242 170.059
+ l 208.246 170.062 l 208.25 170.062 l 208.25 170.066 l 208.254 170.07 l 
+208.254 170.074 l 208.258 170.074 l 208.262 170.078 l 208.262 170.082 l 
+208.266 170.086 l 208.27 170.086 l 208.27 170.09 l 208.273 170.094 l 208.273
+ 170.098 l 208.277 170.098 l 208.281 170.102 l 208.281 170.105 l 208.285
+ 170.109 l 208.289 170.109 l 208.289 170.113 l 208.301 170.125 l 208.301
+ 170.129 l 208.305 170.129 l 208.309 170.133 l 208.309 170.137 l 208.32 
+170.148 l 208.32 170.152 l 208.324 170.152 l 208.328 170.156 l 208.328 170.16
+ l 208.332 170.164 l 208.336 170.164 l 208.336 170.168 l 208.348 170.18 
+l 208.348 170.184 l 208.352 170.184 l 208.355 170.188 l 208.355 170.191 
+l 208.367 170.203 l 208.367 170.207 l 208.371 170.207 l 208.375 170.211 
+l 208.375 170.215 l 208.395 170.234 l 208.395 170.238 l 208.398 170.238 
+l 208.398 170.242 l 208.414 170.258 l 208.414 170.262 l 208.418 170.262 
+l 208.422 170.266 l 208.422 170.27 l 208.441 170.289 l 208.441 170.293 l
+ 208.445 170.293 l 208.445 170.297 l 208.461 170.312 l 208.461 170.316 l
+ 208.465 170.316 l 208.465 170.32 l 208.469 170.324 l 208.473 170.324 l 
+208.473 170.328 l 208.484 170.34 l 208.484 170.344 l 208.488 170.348 l 208.492
+ 170.348 l 208.492 170.352 l 208.504 170.363 l 208.504 170.367 l 208.508
+ 170.371 l 208.512 170.371 l 208.512 170.375 l 208.516 170.379 l 208.52 
+170.379 l 208.52 170.383 l 208.531 170.395 l 208.531 170.398 l 208.535 170.402
+ l 208.539 170.402 l 208.539 170.406 l 208.551 170.418 l 208.551 170.422
+ l 208.555 170.422 l 208.559 170.426 l 208.559 170.43 l 208.562 170.434 
+l 208.566 170.434 l 208.566 170.438 l 208.57 170.441 l 208.57 170.445 l 
+208.574 170.445 l 208.578 170.449 l 208.578 170.453 l 208.582 170.457 l 
+208.586 170.457 l 208.586 170.461 l 208.59 170.465 l 208.59 170.469 l 208.594
+ 170.469 l 208.598 170.473 l 208.598 170.477 l 208.602 170.477 l 208.605
+ 170.48 l 208.605 170.484 l 208.609 170.488 l 208.613 170.488 l 208.613 
+170.492 l 208.617 170.496 l 208.617 170.5 l 208.621 170.5 l 208.625 170.504
+ l 208.625 170.508 l 208.629 170.512 l 208.633 170.512 l 208.633 170.516
+ l 208.645 170.527 l 208.645 170.531 l 208.648 170.531 l 208.652 170.535
+ l 208.652 170.539 l 208.664 170.551 l 208.664 170.555 l 208.668 170.555
+ l 208.672 170.559 l 208.672 170.562 l 208.676 170.562 l 208.676 170.566
+ l 208.691 170.582 l 208.691 170.586 l 208.695 170.586 l 208.695 170.59 
+l 208.719 170.613 l 208.719 170.617 l 208.723 170.617 l 208.723 170.621 
+l 208.738 170.637 l 208.738 170.641 l 208.742 170.641 l 208.742 170.645 
+l 208.746 170.648 l 208.75 170.648 l 208.75 170.652 l 208.762 170.664 l 
+208.762 170.668 l 208.766 170.672 l 208.77 170.672 l 208.77 170.676 l 208.781
+ 170.688 l 208.781 170.691 l 208.785 170.691 l 208.789 170.695 l 208.789
+ 170.699 l 208.793 170.703 l 208.797 170.703 l 208.797 170.707 l 208.809
+ 170.719 l 208.809 170.723 l 208.812 170.723 l 208.816 170.727 l 208.816
+ 170.73 l 208.82 170.734 l 208.824 170.734 l 208.824 170.738 l 208.828 170.742
+ l 208.828 170.746 l 208.832 170.746 l 208.836 170.75 l 208.836 170.754 
+l 208.84 170.758 l 208.844 170.758 l 208.844 170.762 l 208.855 170.773 l
+ 208.855 170.777 l 208.859 170.777 l 208.863 170.781 l 208.863 170.785 l
+ 208.875 170.797 l 208.875 170.801 l 208.879 170.801 l 208.883 170.805 l
+ 208.883 170.809 l 208.887 170.809 l 208.887 170.812 l 208.902 170.828 l
+ 208.902 170.832 l 208.906 170.832 l 208.91 170.836 l 208.91 170.84 l 208.914
+ 170.84 l 208.914 170.844 l 208.93 170.859 l 208.93 170.863 l 208.934 170.863
+ l 208.934 170.867 l 208.953 170.887 l 208.953 170.891 l 208.957 170.895
+ l 208.961 170.895 l 208.961 170.898 l 208.973 170.91 l 208.973 170.914 
+l 208.977 170.914 l 208.98 170.918 l 208.98 170.922 l 208.984 170.926 l 
+208.988 170.926 l 208.988 170.93 l 209 170.941 l 209 170.945 l 209.004 170.945
+ l 209.008 170.949 l 209.008 170.953 l 209.012 170.957 l 209.016 170.957
+ l 209.016 170.961 l 209.02 170.965 l 209.02 170.969 l 209.023 170.969 l
+ 209.027 170.973 l 209.027 170.977 l 209.031 170.98 l 209.035 170.98 l 209.035
+ 170.984 l 209.047 170.996 l 209.047 171 l 209.051 171 l 209.055 171.004
+ l 209.055 171.008 l 209.074 171.027 l 209.074 171.031 l 209.078 171.031
+ l 209.078 171.035 l 209.102 171.059 l 209.102 171.062 l 209.105 171.062
+ l 209.105 171.066 l 209.125 171.086 l 209.125 171.09 l 209.129 171.094 
+l 209.133 171.094 l 209.133 171.098 l 209.145 171.109 l 209.145 171.113 
+l 209.148 171.113 l 209.152 171.117 l 209.152 171.121 l 209.156 171.125 
+l 209.16 171.125 l 209.16 171.129 l 209.164 171.133 l 209.164 171.137 l 
+209.168 171.137 l 209.172 171.141 l 209.172 171.145 l 209.176 171.145 l 
+209.18 171.148 l 209.18 171.152 l 209.184 171.156 l 209.188 171.156 l 209.188
+ 171.16 l 209.191 171.164 l 209.191 171.168 l 209.195 171.168 l 209.199 
+171.172 l 209.199 171.176 l 209.203 171.176 l 209.207 171.18 l 209.207 171.184
+ l 209.219 171.195 l 209.219 171.199 l 209.223 171.199 l 209.227 171.203
+ l 209.227 171.207 l 209.23 171.207 l 209.23 171.211 l 209.246 171.227 l
+ 209.246 171.23 l 209.25 171.23 l 209.25 171.234 l 209.254 171.238 l 209.258
+ 171.238 l 209.258 171.242 l 209.27 171.254 l 209.27 171.258 l 209.273 171.262
+ l 209.277 171.262 l 209.277 171.266 l 209.281 171.27 l 209.285 171.27 l
+ 209.285 171.273 l 209.297 171.285 l 209.297 171.289 l 209.301 171.293 l
+ 209.305 171.293 l 209.305 171.297 l 209.309 171.301 l 209.312 171.301 l
+ 209.312 171.305 l 209.316 171.309 l 209.316 171.312 l 209.32 171.312 l 
+209.324 171.316 l 209.324 171.32 l 209.328 171.324 l 209.332 171.324 l 209.332
+ 171.328 l 209.344 171.34 l 209.344 171.344 l 209.348 171.344 l 209.352 
+171.348 l 209.352 171.352 l 209.371 171.371 l 209.371 171.375 l 209.375 
+171.375 l 209.375 171.379 l 209.398 171.402 l 209.398 171.406 l 209.402 
+171.406 l 209.402 171.41 l 209.422 171.43 l 209.422 171.434 l 209.426 171.438
+ l 209.43 171.438 l 209.43 171.441 l 209.434 171.445 l 209.438 171.445 l
+ 209.438 171.449 l 209.441 171.453 l 209.441 171.457 l 209.445 171.457 l
+ 209.449 171.461 l 209.449 171.465 l 209.453 171.469 l 209.457 171.469 l
+ 209.457 171.473 l 209.469 171.484 l 209.469 171.488 l 209.473 171.488 l
+ 209.477 171.492 l 209.477 171.496 l 209.48 171.5 l 209.484 171.5 l 209.484
+ 171.504 l 209.496 171.516 l 209.496 171.52 l 209.5 171.52 l 209.504 171.523
+ l 209.504 171.527 l 209.508 171.527 l 209.508 171.531 l 209.523 171.547
+ l 209.523 171.551 l 209.527 171.551 l 209.527 171.555 l 209.531 171.559
+ l 209.535 171.559 l 209.535 171.562 l 209.547 171.574 l 209.547 171.578
+ l 209.551 171.582 l 209.555 171.582 l 209.555 171.586 l 209.559 171.59 
+l 209.562 171.59 l 209.562 171.594 l 209.566 171.598 l 209.566 171.602 l
+ 209.57 171.602 l 209.574 171.605 l 209.574 171.609 l 209.578 171.609 l 
+209.582 171.613 l 209.582 171.617 l 209.586 171.621 l 209.59 171.621 l 209.59
+ 171.625 l 209.594 171.629 l 209.594 171.633 l 209.598 171.633 l 209.602
+ 171.637 l 209.602 171.641 l 209.605 171.641 l 209.609 171.645 l 209.609
+ 171.648 l 209.629 171.668 l 209.629 171.672 l 209.633 171.672 l 209.633
+ 171.676 l 209.652 171.695 l 209.652 171.699 l 209.656 171.703 l 209.66 
+171.703 l 209.66 171.707 l 209.664 171.711 l 209.668 171.711 l 209.668 171.715
+ l 209.68 171.727 l 209.68 171.73 l 209.684 171.734 l 209.688 171.734 l 
+209.688 171.738 l 209.691 171.742 l 209.695 171.742 l 209.695 171.746 l 
+209.699 171.75 l 209.699 171.754 l 209.703 171.754 l 209.707 171.758 l 209.707
+ 171.762 l 209.711 171.762 l 209.715 171.766 l 209.715 171.77 l 209.727 
+171.781 l 209.727 171.785 l 209.73 171.785 l 209.734 171.789 l 209.734 171.793
+ l 209.738 171.793 l 209.738 171.797 l 209.758 171.816 l 209.758 171.82 
+l 209.762 171.824 l 209.766 171.824 l 209.766 171.828 l 209.785 171.848 
+l 209.785 171.852 l 209.789 171.855 l 209.793 171.855 l 209.793 171.859 
+l 209.797 171.863 l 209.801 171.863 l 209.801 171.867 l 209.805 171.871 
+l 209.805 171.875 l 209.809 171.875 l 209.812 171.879 l 209.812 171.883 
+l 209.816 171.883 l 209.82 171.887 l 209.82 171.891 l 209.832 171.902 l 
+209.832 171.906 l 209.836 171.906 l 209.84 171.91 l 209.84 171.914 l 209.844
+ 171.914 l 209.844 171.918 l 209.867 171.941 l 209.867 171.945 l 209.871
+ 171.945 l 209.871 171.949 l 209.891 171.969 l 209.891 171.973 l 209.895
+ 171.977 l 209.898 171.977 l 209.898 171.98 l 209.902 171.984 l 209.906 
+171.984 l 209.906 171.988 l 209.91 171.992 l 209.91 171.996 l 209.914 171.996
+ l 209.918 172 l 209.918 172.004 l 209.922 172.004 l 209.926 172.008 l 209.926
+ 172.012 l 209.945 172.031 l 209.945 172.035 l 209.949 172.035 l 209.949
+ 172.039 l 209.973 172.062 l 209.973 172.066 l 209.977 172.066 l 209.977
+ 172.07 l 209.98 172.074 l 209.984 172.074 l 209.984 172.078 l 209.996 172.09
+ l 209.996 172.094 l 210 172.094 l 210.004 172.098 l 210.004 172.102 l 210.008
+ 172.105 l 210.012 172.105 l 210.012 172.109 l 210.023 172.121 l 210.023
+ 172.125 l 210.027 172.125 l 210.031 172.129 l 210.031 172.133 l 210.051
+ 172.152 l 210.051 172.156 l 210.055 172.156 l 210.059 172.16 l 210.059 
+172.164 l 210.062 172.164 l 210.062 172.168 l 210.082 172.188 l 210.082 
+172.191 l 210.086 172.195 l 210.09 172.195 l 210.09 172.199 l 210.094 172.203
+ l 210.098 172.203 l 210.098 172.207 l 210.102 172.211 l 210.102 172.215
+ l 210.105 172.215 l 210.109 172.219 l 210.109 172.223 l 210.113 172.223
+ l 210.117 172.227 l 210.117 172.23 l 210.129 172.242 l 210.129 172.246 
+l 210.133 172.246 l 210.137 172.25 l 210.137 172.254 l 210.141 172.254 l
+ 210.141 172.258 l 210.164 172.281 l 210.164 172.285 l 210.168 172.285 l
+ 210.168 172.289 l 210.172 172.293 l 210.176 172.293 l 210.176 172.297 l
+ 210.188 172.309 l 210.188 172.312 l 210.191 172.312 l 210.195 172.316 l
+ 210.195 172.32 l 210.199 172.324 l 210.203 172.324 l 210.203 172.328 l 
+210.215 172.34 l 210.215 172.344 l 210.219 172.344 l 210.223 172.348 l 210.223
+ 172.352 l 210.227 172.352 l 210.227 172.355 l 210.25 172.379 l 210.25 172.383
+ l 210.254 172.383 l 210.254 172.387 l 210.258 172.391 l 210.262 172.391
+ l 210.262 172.395 l 210.273 172.406 l 210.273 172.41 l 210.277 172.41 l
+ 210.281 172.414 l 210.281 172.418 l 210.285 172.422 l 210.289 172.422 l
+ 210.289 172.426 l 210.301 172.438 l 210.301 172.441 l 210.305 172.441 l
+ 210.309 172.445 l 210.309 172.449 l 210.312 172.449 l 210.312 172.453 l
+ 210.332 172.473 l 210.332 172.477 l 210.336 172.48 l 210.34 172.48 l 210.34
+ 172.484 l 210.359 172.504 l 210.359 172.508 l 210.363 172.512 l 210.367
+ 172.512 l 210.367 172.516 l 210.371 172.52 l 210.375 172.52 l 210.375 172.523
+ l 210.379 172.527 l 210.379 172.531 l 210.383 172.531 l 210.387 172.535
+ l 210.387 172.539 l 210.391 172.539 l 210.395 172.543 l 210.395 172.547
+ l 210.418 172.57 l 210.418 172.574 l 210.422 172.578 l 210.426 172.578 
+l 210.426 172.582 l 210.43 172.586 l 210.434 172.586 l 210.434 172.59 l 
+210.445 172.602 l 210.445 172.605 l 210.449 172.605 l 210.453 172.609 l 
+210.453 172.613 l 210.457 172.617 l 210.461 172.617 l 210.461 172.621 l 
+210.473 172.633 l 210.473 172.637 l 210.477 172.637 l 210.48 172.641 l 210.48
+ 172.645 l 210.484 172.645 l 210.484 172.648 l 210.504 172.668 l 210.504
+ 172.672 l 210.508 172.676 l 210.512 172.676 l 210.512 172.68 l 210.516 
+172.684 l 210.52 172.684 l 210.52 172.688 l 210.523 172.691 l 210.523 172.695
+ l 210.527 172.695 l 210.531 172.699 l 210.531 172.703 l 210.535 172.703
+ l 210.539 172.707 l 210.539 172.711 l 210.543 172.715 l 210.547 172.715
+ l 210.547 172.719 l 210.559 172.73 l 210.559 172.734 l 210.562 172.734 
+l 210.566 172.738 l 210.566 172.742 l 210.57 172.742 l 210.57 172.746 l 
+210.59 172.766 l 210.59 172.77 l 210.594 172.773 l 210.598 172.773 l 210.598
+ 172.777 l 210.602 172.781 l 210.605 172.781 l 210.605 172.785 l 210.609
+ 172.789 l 210.609 172.793 l 210.613 172.793 l 210.617 172.797 l 210.617
+ 172.801 l 210.621 172.801 l 210.625 172.805 l 210.625 172.809 l 210.629
+ 172.812 l 210.633 172.812 l 210.633 172.816 l 210.652 172.836 l 210.652
+ 172.84 l 210.656 172.84 l 210.656 172.844 l 210.66 172.848 l 210.664 172.848
+ l 210.664 172.852 l 210.676 172.863 l 210.676 172.867 l 210.68 172.867 
+l 210.684 172.871 l 210.684 172.875 l 210.688 172.879 l 210.691 172.879 
+l 210.691 172.883 l 210.703 172.895 l 210.703 172.898 l 210.707 172.898 
+l 210.711 172.902 l 210.711 172.906 l 210.715 172.906 l 210.715 172.91 l
+ 210.742 172.938 l 210.742 172.941 l 210.746 172.945 l 210.75 172.945 l 
+210.75 172.949 l 210.754 172.953 l 210.758 172.953 l 210.758 172.957 l 210.762
+ 172.961 l 210.762 172.965 l 210.766 172.965 l 210.77 172.969 l 210.77 172.973
+ l 210.773 172.973 l 210.777 172.977 l 210.777 172.98 l 210.797 173 l 210.797
+ 173.004 l 210.801 173.004 l 210.801 173.008 l 210.805 173.012 l 210.809
+ 173.012 l 210.809 173.016 l 210.812 173.02 l 210.816 173.02 l 210.816 173.023
+ l 210.828 173.035 l 210.828 173.039 l 210.832 173.039 l 210.836 173.043
+ l 210.836 173.047 l 210.84 173.051 l 210.844 173.051 l 210.844 173.055 
+l 210.855 173.066 l 210.855 173.07 l 210.859 173.07 l 210.863 173.074 l 
+210.863 173.078 l 210.867 173.078 l 210.867 173.082 l 210.887 173.102 l 
+210.887 173.105 l 210.891 173.105 l 210.895 173.109 l 210.895 173.113 l 
+210.898 173.117 l 210.902 173.117 l 210.902 173.121 l 210.914 173.133 l 
+210.914 173.137 l 210.918 173.137 l 210.922 173.141 l 210.922 173.145 l 
+210.926 173.145 l 210.93 173.148 l 210.93 173.152 l 210.953 173.176 l 210.953
+ 173.18 l 210.957 173.184 l 210.961 173.184 l 210.961 173.188 l 210.965 
+173.191 l 210.969 173.191 l 210.969 173.195 l 210.973 173.199 l 210.973 
+173.203 l 210.977 173.203 l 210.98 173.207 l 210.98 173.211 l 210.984 173.211
+ l 210.988 173.215 l 210.988 173.219 l 210.992 173.219 l 210.992 173.223
+ l 211.016 173.246 l 211.016 173.25 l 211.02 173.25 l 211.02 173.254 l 211.023
+ 173.258 l 211.027 173.258 l 211.027 173.262 l 211.039 173.273 l 211.039
+ 173.277 l 211.043 173.277 l 211.047 173.281 l 211.047 173.285 l 211.051
+ 173.285 l 211.055 173.289 l 211.055 173.293 l 211.074 173.312 l 211.074
+ 173.316 l 211.078 173.316 l 211.078 173.32 l 211.082 173.324 l 211.086 
+173.324 l 211.086 173.328 l 211.09 173.332 l 211.094 173.332 l 211.094 173.336
+ l 211.098 173.34 l 211.098 173.344 l 211.102 173.344 l 211.105 173.348 
+l 211.105 173.352 l 211.109 173.352 l 211.113 173.355 l 211.113 173.359 
+l 211.117 173.363 l 211.121 173.363 l 211.121 173.367 l 211.141 173.387 
+l 211.141 173.391 l 211.145 173.391 l 211.145 173.395 l 211.148 173.398 
+l 211.152 173.398 l 211.152 173.402 l 211.164 173.414 l 211.164 173.418 
+l 211.168 173.418 l 211.172 173.422 l 211.172 173.426 l 211.176 173.426 
+l 211.18 173.43 l 211.18 173.434 l 211.199 173.453 l 211.199 173.457 l 211.203
+ 173.457 l 211.207 173.461 l 211.207 173.465 l 211.211 173.465 l 211.211
+ 173.469 l 211.215 173.473 l 211.219 173.473 l 211.219 173.477 l 211.23 
+173.488 l 211.23 173.492 l 211.234 173.492 l 211.238 173.496 l 211.238 173.5
+ l 211.242 173.504 l 211.246 173.504 l 211.246 173.508 l 211.266 173.527
+ l 211.266 173.531 l 211.27 173.531 l 211.27 173.535 l 211.273 173.539 l
+ 211.277 173.539 l 211.277 173.543 l 211.281 173.547 l 211.285 173.547 l
+ 211.285 173.551 l 211.289 173.555 l 211.289 173.559 l 211.293 173.559 l
+ 211.297 173.562 l 211.297 173.566 l 211.301 173.566 l 211.305 173.57 l 
+211.305 173.574 l 211.309 173.578 l 211.312 173.578 l 211.312 173.582 l 
+211.332 173.602 l 211.332 173.605 l 211.336 173.605 l 211.336 173.609 l 
+211.34 173.613 l 211.344 173.613 l 211.344 173.617 l 211.348 173.621 l 211.352
+ 173.621 l 211.352 173.625 l 211.355 173.629 l 211.355 173.633 l 211.359
+ 173.633 l 211.363 173.637 l 211.363 173.641 l 211.367 173.641 l 211.371
+ 173.645 l 211.371 173.648 l 211.398 173.676 l 211.398 173.68 l 211.402 
+173.68 l 211.402 173.684 l 211.406 173.688 l 211.41 173.688 l 211.41 173.691
+ l 211.414 173.695 l 211.418 173.695 l 211.418 173.699 l 211.422 173.703
+ l 211.422 173.707 l 211.426 173.707 l 211.43 173.711 l 211.43 173.715 l
+ 211.434 173.715 l 211.438 173.719 l 211.438 173.723 l 211.441 173.723 l
+ 211.441 173.727 l 211.461 173.746 l 211.461 173.75 l 211.465 173.754 l 
+211.469 173.754 l 211.469 173.758 l 211.473 173.762 l 211.477 173.762 l 
+211.477 173.766 l 211.488 173.777 l 211.488 173.781 l 211.492 173.781 l 
+211.496 173.785 l 211.496 173.789 l 211.5 173.789 l 211.504 173.793 l 211.504
+ 173.797 l 211.508 173.797 l 211.508 173.801 l 211.527 173.82 l 211.527 
+173.824 l 211.531 173.824 l 211.535 173.828 l 211.535 173.832 l 211.539 
+173.836 l 211.543 173.836 l 211.543 173.84 l 211.562 173.859 l 211.562 173.863
+ l 211.566 173.863 l 211.566 173.867 l 211.57 173.871 l 211.574 173.871 
+l 211.574 173.875 l 211.578 173.879 l 211.582 173.879 l 211.582 173.883 
+l 211.594 173.895 l 211.594 173.898 l 211.598 173.898 l 211.602 173.902 
+l 211.602 173.906 l 211.605 173.91 l 211.609 173.91 l 211.609 173.914 l 
+211.629 173.934 l 211.629 173.938 l 211.633 173.938 l 211.633 173.941 l 
+211.637 173.945 l 211.641 173.945 l 211.641 173.949 l 211.645 173.953 l 
+211.648 173.953 l 211.648 173.957 l 211.652 173.961 l 211.652 173.965 l 
+211.656 173.965 l 211.66 173.969 l 211.66 173.973 l 211.664 173.973 l 211.668
+ 173.977 l 211.668 173.98 l 211.672 173.98 l 211.672 173.984 l 211.699 174.012
+ l 211.699 174.016 l 211.703 174.02 l 211.707 174.02 l 211.707 174.023 l
+ 211.711 174.027 l 211.715 174.027 l 211.715 174.031 l 211.734 174.051 l
+ 211.734 174.055 l 211.738 174.055 l 211.738 174.059 l 211.742 174.062 l
+ 211.746 174.062 l 211.746 174.066 l 211.75 174.07 l 211.754 174.07 l 211.754
+ 174.074 l 211.758 174.078 l 211.758 174.082 l 211.762 174.082 l 211.766
+ 174.086 l 211.766 174.09 l 211.77 174.09 l 211.773 174.094 l 211.773 174.098
+ l 211.777 174.098 l 211.781 174.102 l 211.781 174.105 l 211.805 174.129
+ l 211.805 174.133 l 211.809 174.137 l 211.812 174.137 l 211.812 174.141
+ l 211.816 174.145 l 211.82 174.145 l 211.82 174.148 l 211.832 174.16 l 
+211.832 174.164 l 211.836 174.164 l 211.84 174.168 l 211.84 174.172 l 211.844
+ 174.172 l 211.844 174.176 l 211.848 174.18 l 211.852 174.18 l 211.852 174.184
+ l 211.863 174.195 l 211.863 174.199 l 211.867 174.199 l 211.871 174.203
+ l 211.871 174.207 l 211.875 174.207 l 211.879 174.211 l 211.879 174.215
+ l 211.883 174.215 l 211.887 174.219 l 211.887 174.223 l 211.91 174.246 
+l 211.91 174.25 l 211.914 174.254 l 211.918 174.254 l 211.918 174.258 l 
+211.922 174.262 l 211.926 174.262 l 211.926 174.266 l 211.938 174.277 l 
+211.938 174.281 l 211.941 174.281 l 211.945 174.285 l 211.945 174.289 l 
+211.949 174.289 l 211.949 174.293 l 211.953 174.297 l 211.957 174.297 l 
+211.957 174.301 l 211.961 174.305 l 211.965 174.305 l 211.965 174.309 l 
+211.977 174.32 l 211.977 174.324 l 211.98 174.324 l 211.984 174.328 l 211.984
+ 174.332 l 211.988 174.332 l 211.992 174.336 l 211.992 174.34 l 212.016 
+174.363 l 212.016 174.367 l 212.02 174.371 l 212.023 174.371 l 212.023 174.375
+ l 212.027 174.379 l 212.031 174.379 l 212.031 174.383 l 212.051 174.402
+ l 212.051 174.406 l 212.055 174.406 l 212.055 174.41 l 212.059 174.414 
+l 212.062 174.414 l 212.062 174.418 l 212.066 174.422 l 212.07 174.422 l
+ 212.07 174.426 l 212.082 174.438 l 212.082 174.441 l 212.086 174.441 l 
+212.09 174.445 l 212.09 174.449 l 212.094 174.449 l 212.098 174.453 l 212.098
+ 174.457 l 212.102 174.457 l 212.102 174.461 l 212.121 174.48 l 212.121 
+174.484 l 212.125 174.484 l 212.129 174.488 l 212.129 174.492 l 212.133 
+174.492 l 212.137 174.496 l 212.137 174.5 l 212.164 174.527 l 212.164 174.531
+ l 212.168 174.531 l 212.168 174.535 l 212.172 174.539 l 212.176 174.539
+ l 212.176 174.543 l 212.18 174.547 l 212.184 174.547 l 212.184 174.551 
+l 212.195 174.562 l 212.195 174.566 l 212.199 174.566 l 212.203 174.57 l
+ 212.203 174.574 l 212.207 174.574 l 212.207 174.578 l 212.211 174.582 l
+ 212.215 174.582 l 212.215 174.586 l 212.219 174.59 l 212.223 174.59 l 212.223
+ 174.594 l 212.227 174.598 l 212.227 174.602 l 212.23 174.602 l 212.234 
+174.605 l 212.234 174.609 l 212.238 174.609 l 212.242 174.613 l 212.242 
+174.617 l 212.246 174.617 l 212.246 174.621 l 212.273 174.648 l 212.273 
+174.652 l 212.277 174.652 l 212.281 174.656 l 212.281 174.66 l 212.285 174.664
+ l 212.289 174.664 l 212.289 174.668 l 212.312 174.691 l 212.312 174.695
+ l 212.316 174.699 l 212.32 174.699 l 212.32 174.703 l 212.324 174.707 l
+ 212.328 174.707 l 212.328 174.711 l 212.348 174.73 l 212.348 174.734 l 
+212.352 174.734 l 212.355 174.738 l 212.355 174.742 l 212.359 174.742 l 
+212.359 174.746 l 212.363 174.75 l 212.367 174.75 l 212.367 174.754 l 212.371
+ 174.758 l 212.375 174.758 l 212.375 174.762 l 212.379 174.766 l 212.379
+ 174.77 l 212.383 174.77 l 212.387 174.773 l 212.387 174.777 l 212.391 174.777
+ l 212.395 174.781 l 212.395 174.785 l 212.398 174.785 l 212.398 174.789
+ l 212.402 174.793 l 212.406 174.793 l 212.406 174.797 l 212.418 174.809
+ l 212.418 174.812 l 212.422 174.812 l 212.426 174.816 l 212.426 174.82 
+l 212.43 174.82 l 212.434 174.824 l 212.434 174.828 l 212.438 174.828 l 
+212.438 174.832 l 212.465 174.859 l 212.465 174.863 l 212.469 174.863 l 
+212.473 174.867 l 212.473 174.871 l 212.477 174.871 l 212.48 174.875 l 212.48
+ 174.879 l 212.504 174.902 l 212.504 174.906 l 212.508 174.906 l 212.512
+ 174.91 l 212.512 174.914 l 212.516 174.918 l 212.52 174.918 l 212.52 174.922
+ l 212.547 174.949 l 212.547 174.953 l 212.551 174.953 l 212.551 174.957
+ l 212.555 174.961 l 212.559 174.961 l 212.559 174.965 l 212.562 174.969
+ l 212.566 174.969 l 212.566 174.973 l 212.586 174.992 l 212.586 174.996
+ l 212.59 174.996 l 212.59 175 l 212.594 175.004 l 212.598 175.004 l 212.598
+ 175.008 l 212.602 175.012 l 212.605 175.012 l 212.605 175.016 l 212.617
+ 175.027 l 212.617 175.031 l 212.621 175.031 l 212.625 175.035 l 212.625
+ 175.039 l 212.629 175.039 l 212.629 175.043 l 212.633 175.047 l 212.637
+ 175.047 l 212.637 175.051 l 212.641 175.055 l 212.645 175.055 l 212.645
+ 175.059 l 212.648 175.062 l 212.652 175.062 l 212.652 175.066 l 212.656
+ 175.07 l 212.656 175.074 l 212.66 175.074 l 212.664 175.078 l 212.664 175.082
+ l 212.668 175.082 l 212.672 175.086 l 212.672 175.09 l 212.676 175.09 l
+ 212.676 175.094 l 212.68 175.098 l 212.684 175.098 l 212.684 175.102 l 
+212.688 175.105 l 212.691 175.105 l 212.691 175.109 l 212.695 175.113 l 
+212.695 175.117 l 212.699 175.117 l 212.703 175.121 l 212.703 175.125 l 
+212.707 175.125 l 212.711 175.129 l 212.711 175.133 l 212.715 175.133 l 
+212.715 175.137 l 212.719 175.141 l 212.723 175.141 l 212.723 175.145 l 
+212.742 175.164 l 212.742 175.168 l 212.746 175.168 l 212.75 175.172 l 212.75
+ 175.176 l 212.754 175.176 l 212.758 175.18 l 212.758 175.184 l 212.762 
+175.184 l 212.762 175.188 l 212.781 175.207 l 212.781 175.211 l 212.785 
+175.211 l 212.789 175.215 l 212.789 175.219 l 212.793 175.219 l 212.797 
+175.223 l 212.797 175.227 l 212.801 175.227 l 212.801 175.23 l 212.82 175.25
+ l 212.82 175.254 l 212.824 175.254 l 212.828 175.258 l 212.828 175.262 
+l 212.832 175.262 l 212.836 175.266 l 212.836 175.27 l 212.84 175.27 l 212.844
+ 175.273 l 212.844 175.277 l 212.867 175.301 l 212.867 175.305 l 212.871
+ 175.305 l 212.875 175.309 l 212.875 175.312 l 212.879 175.312 l 212.883
+ 175.316 l 212.883 175.32 l 212.887 175.32 l 212.887 175.324 l 212.906 175.344
+ l 212.906 175.348 l 212.91 175.348 l 212.914 175.352 l 212.914 175.355 
+l 212.918 175.355 l 212.922 175.359 l 212.922 175.363 l 212.926 175.363 
+l 212.926 175.367 l 212.953 175.395 l 212.953 175.398 l 212.957 175.398 
+l 212.961 175.402 l 212.961 175.406 l 212.965 175.406 l 212.969 175.41 l
+ 212.969 175.414 l 212.973 175.414 l 212.973 175.418 l 212.992 175.438 l
+ 212.992 175.441 l 212.996 175.441 l 213 175.445 l 213 175.449 l 213.004
+ 175.449 l 213.008 175.453 l 213.008 175.457 l 213.012 175.457 l 213.012
+ 175.461 l 213.039 175.488 l 213.039 175.492 l 213.043 175.492 l 213.047
+ 175.496 l 213.047 175.5 l 213.051 175.5 l 213.055 175.504 l 213.055 175.508
+ l 213.059 175.508 l 213.059 175.512 l 213.078 175.531 l 213.078 175.535
+ l 213.082 175.535 l 213.086 175.539 l 213.086 175.543 l 213.09 175.543 
+l 213.094 175.547 l 213.094 175.551 l 213.098 175.551 l 213.098 175.555 
+l 213.102 175.559 l 213.105 175.559 l 213.105 175.562 l 213.117 175.574 
+l 213.117 175.578 l 213.121 175.578 l 213.125 175.582 l 213.125 175.586 
+l 213.129 175.586 l 213.133 175.59 l 213.133 175.594 l 213.137 175.594 l
+ 213.141 175.598 l 213.141 175.602 l 213.145 175.602 l 213.145 175.605 l
+ 213.148 175.609 l 213.152 175.609 l 213.152 175.613 l 213.164 175.625 l
+ 213.164 175.629 l 213.168 175.629 l 213.172 175.633 l 213.172 175.637 l
+ 213.176 175.637 l 213.18 175.641 l 213.18 175.645 l 213.184 175.645 l 213.184
+ 175.648 l 213.188 175.652 l 213.191 175.652 l 213.191 175.656 l 213.195
+ 175.66 l 213.199 175.66 l 213.199 175.664 l 213.211 175.676 l 213.211 175.68
+ l 213.215 175.68 l 213.219 175.684 l 213.219 175.688 l 213.223 175.688 
+l 213.227 175.691 l 213.227 175.695 l 213.23 175.695 l 213.23 175.699 l 
+213.234 175.703 l 213.238 175.703 l 213.238 175.707 l 213.242 175.711 l 
+213.246 175.711 l 213.246 175.715 l 213.266 175.734 l 213.266 175.738 l 
+213.27 175.738 l 213.27 175.742 l 213.273 175.746 l 213.277 175.746 l 213.277
+ 175.75 l 213.281 175.754 l 213.285 175.754 l 213.285 175.758 l 213.309 
+175.781 l 213.309 175.785 l 213.312 175.785 l 213.316 175.789 l 213.316 
+175.793 l 213.32 175.797 l 213.324 175.797 l 213.324 175.801 l 213.328 175.805
+ l 213.332 175.805 l 213.332 175.809 l 213.355 175.832 l 213.355 175.836
+ l 213.359 175.836 l 213.363 175.84 l 213.363 175.844 l 213.367 175.844 
+l 213.371 175.848 l 213.371 175.852 l 213.395 175.875 l 213.395 175.879 
+l 213.398 175.879 l 213.402 175.883 l 213.402 175.887 l 213.406 175.887 
+l 213.41 175.891 l 213.41 175.895 l 213.414 175.895 l 213.418 175.898 l 
+213.418 175.902 l 213.422 175.902 l 213.422 175.906 l 213.441 175.926 l 
+213.441 175.93 l 213.445 175.93 l 213.449 175.934 l 213.449 175.938 l 213.453
+ 175.938 l 213.457 175.941 l 213.457 175.945 l 213.461 175.945 l 213.461
+ 175.949 l 213.465 175.953 l 213.469 175.953 l 213.469 175.957 l 213.473
+ 175.961 l 213.477 175.961 l 213.477 175.965 l 213.488 175.977 l 213.488
+ 175.98 l 213.492 175.98 l 213.496 175.984 l 213.496 175.988 l 213.5 175.988
+ l 213.5 175.992 l 213.504 175.996 l 213.508 175.996 l 213.508 176 l 213.512
+ 176.004 l 213.516 176.004 l 213.516 176.008 l 213.52 176.012 l 213.523 
+176.012 l 213.523 176.016 l 213.547 176.039 l 213.547 176.043 l 213.551 
+176.043 l 213.555 176.047 l 213.555 176.051 l 213.559 176.055 l 213.562 
+176.055 l 213.562 176.059 l 213.586 176.082 l 213.586 176.086 l 213.59 176.086
+ l 213.594 176.09 l 213.594 176.094 l 213.598 176.094 l 213.602 176.098 
+l 213.602 176.102 l 213.605 176.102 l 213.609 176.105 l 213.609 176.109 
+l 213.613 176.109 l 213.613 176.113 l 213.617 176.117 l 213.621 176.117 
+l 213.621 176.121 l 213.633 176.133 l 213.633 176.137 l 213.637 176.137 
+l 213.641 176.141 l 213.641 176.145 l 213.645 176.145 l 213.648 176.148 
+l 213.648 176.152 l 213.652 176.152 l 213.652 176.156 l 213.656 176.16 l
+ 213.66 176.16 l 213.66 176.164 l 213.664 176.168 l 213.668 176.168 l 213.668
+ 176.172 l 213.691 176.195 l 213.691 176.199 l 213.695 176.199 l 213.699
+ 176.203 l 213.699 176.207 l 213.703 176.211 l 213.707 176.211 l 213.707
+ 176.215 l 213.711 176.219 l 213.715 176.219 l 213.715 176.223 l 213.738
+ 176.246 l 213.738 176.25 l 213.742 176.25 l 213.746 176.254 l 213.746 176.258
+ l 213.75 176.258 l 213.754 176.262 l 213.754 176.266 l 213.758 176.266 
+l 213.758 176.27 l 213.762 176.273 l 213.766 176.273 l 213.766 176.277 l
+ 213.77 176.281 l 213.773 176.281 l 213.773 176.285 l 213.777 176.289 l 
+213.777 176.293 l 213.781 176.293 l 213.785 176.297 l 213.785 176.301 l 
+213.789 176.301 l 213.793 176.305 l 213.793 176.309 l 213.797 176.309 l 
+213.801 176.312 l 213.801 176.316 l 213.805 176.316 l 213.805 176.32 l 213.809
+ 176.324 l 213.812 176.324 l 213.812 176.328 l 213.816 176.332 l 213.82 
+176.332 l 213.82 176.336 l 213.844 176.359 l 213.844 176.363 l 213.848 176.363
+ l 213.852 176.367 l 213.852 176.371 l 213.855 176.371 l 213.859 176.375
+ l 213.859 176.379 l 213.863 176.379 l 213.863 176.383 l 213.883 176.402
+ l 213.883 176.406 l 213.887 176.406 l 213.891 176.41 l 213.891 176.414 
+l 213.895 176.414 l 213.898 176.418 l 213.898 176.422 l 213.902 176.422 
+l 213.906 176.426 l 213.906 176.43 l 213.91 176.43 l 213.91 176.434 l 213.914
+ 176.438 l 213.918 176.438 l 213.918 176.441 l 213.922 176.445 l 213.926
+ 176.445 l 213.926 176.449 l 213.949 176.473 l 213.949 176.477 l 213.953
+ 176.477 l 213.957 176.48 l 213.957 176.484 l 213.961 176.484 l 213.965 
+176.488 l 213.965 176.492 l 213.996 176.523 l 213.996 176.527 l 214 176.527
+ l 214.004 176.531 l 214.004 176.535 l 214.008 176.535 l 214.012 176.539
+ l 214.012 176.543 l 214.016 176.543 l 214.016 176.547 l 214.02 176.551 
+l 214.023 176.551 l 214.023 176.555 l 214.027 176.559 l 214.031 176.559 
+l 214.031 176.562 l 214.055 176.586 l 214.055 176.59 l 214.059 176.59 l 
+214.062 176.594 l 214.062 176.598 l 214.066 176.598 l 214.07 176.602 l 214.07
+ 176.605 l 214.074 176.605 l 214.074 176.609 l 214.102 176.637 l 214.102
+ 176.641 l 214.105 176.641 l 214.109 176.645 l 214.109 176.648 l 214.113
+ 176.648 l 214.117 176.652 l 214.117 176.656 l 214.121 176.656 l 214.121
+ 176.66 l 214.125 176.664 l 214.129 176.664 l 214.129 176.668 l 214.133 
+176.672 l 214.137 176.672 l 214.137 176.676 l 214.16 176.699 l 214.16 176.703
+ l 214.164 176.703 l 214.168 176.707 l 214.168 176.711 l 214.172 176.711
+ l 214.176 176.715 l 214.176 176.719 l 214.18 176.719 l 214.184 176.723 
+l 214.184 176.727 l 214.188 176.727 l 214.188 176.73 l 214.191 176.734 l
+ 214.195 176.734 l 214.195 176.738 l 214.199 176.742 l 214.203 176.742 l
+ 214.203 176.746 l 214.223 176.766 l 214.223 176.77 l 214.227 176.77 l 214.227
+ 176.773 l 214.23 176.777 l 214.234 176.777 l 214.234 176.781 l 214.238 
+176.785 l 214.242 176.785 l 214.242 176.789 l 214.266 176.812 l 214.266 
+176.816 l 214.27 176.816 l 214.273 176.82 l 214.273 176.824 l 214.277 176.824
+ l 214.281 176.828 l 214.281 176.832 l 214.285 176.832 l 214.289 176.836
+ l 214.289 176.84 l 214.293 176.84 l 214.293 176.844 l 214.297 176.848 l
+ 214.301 176.848 l 214.301 176.852 l 214.305 176.855 l 214.309 176.855 l
+ 214.309 176.859 l 214.332 176.883 l 214.332 176.887 l 214.336 176.887 l
+ 214.34 176.891 l 214.34 176.895 l 214.344 176.895 l 214.348 176.898 l 214.348
+ 176.902 l 214.352 176.902 l 214.352 176.906 l 214.355 176.91 l 214.359 
+176.91 l 214.359 176.914 l 214.363 176.918 l 214.367 176.918 l 214.367 176.922
+ l 214.371 176.926 l 214.375 176.926 l 214.375 176.93 l 214.398 176.953 
+l 214.398 176.957 l 214.402 176.957 l 214.406 176.961 l 214.406 176.965 
+l 214.41 176.965 l 214.414 176.969 l 214.414 176.973 l 214.418 176.973 l
+ 214.418 176.977 l 214.422 176.98 l 214.426 176.98 l 214.426 176.984 l 214.43
+ 176.988 l 214.434 176.988 l 214.434 176.992 l 214.438 176.996 l 214.438
+ 177 l 214.441 177 l 214.445 177.004 l 214.445 177.008 l 214.449 177.008
+ l 214.453 177.012 l 214.453 177.016 l 214.457 177.016 l 214.457 177.02 
+l 214.461 177.023 l 214.465 177.023 l 214.465 177.027 l 214.469 177.031 
+l 214.473 177.031 l 214.473 177.035 l 214.477 177.039 l 214.48 177.039 l
+ 214.48 177.043 l 214.504 177.066 l 214.504 177.07 l 214.508 177.07 l 214.512
+ 177.074 l 214.512 177.078 l 214.516 177.078 l 214.52 177.082 l 214.52 177.086
+ l 214.523 177.086 l 214.523 177.09 l 214.527 177.094 l 214.531 177.094 
+l 214.531 177.098 l 214.535 177.102 l 214.539 177.102 l 214.539 177.105 
+l 214.57 177.137 l 214.57 177.141 l 214.574 177.141 l 214.578 177.145 l 
+214.578 177.148 l 214.582 177.148 l 214.586 177.152 l 214.586 177.156 l 
+214.59 177.156 l 214.59 177.16 l 214.594 177.164 l 214.598 177.164 l 214.598
+ 177.168 l 214.602 177.172 l 214.605 177.172 l 214.605 177.176 l 214.629
+ 177.199 l 214.629 177.203 l 214.633 177.203 l 214.637 177.207 l 214.637
+ 177.211 l 214.641 177.211 l 214.645 177.215 l 214.645 177.219 l 214.648
+ 177.219 l 214.648 177.223 l 214.652 177.227 l 214.656 177.227 l 214.656
+ 177.23 l 214.66 177.234 l 214.664 177.234 l 214.664 177.238 l 214.668 177.242
+ l 214.672 177.242 l 214.672 177.246 l 214.695 177.27 l 214.695 177.273 
+l 214.699 177.273 l 214.703 177.277 l 214.703 177.281 l 214.707 177.281 
+l 214.711 177.285 l 214.711 177.289 l 214.715 177.289 l 214.715 177.293 
+l 214.719 177.297 l 214.723 177.297 l 214.723 177.301 l 214.727 177.305 
+l 214.73 177.305 l 214.73 177.309 l 214.762 177.34 l 214.762 177.344 l 214.766
+ 177.344 l 214.77 177.348 l 214.77 177.352 l 214.773 177.352 l 214.777 177.355
+ l 214.777 177.359 l 214.781 177.359 l 214.781 177.363 l 214.785 177.367
+ l 214.789 177.367 l 214.789 177.371 l 214.793 177.375 l 214.797 177.375
+ l 214.797 177.379 l 214.82 177.402 l 214.82 177.406 l 214.824 177.406 l
+ 214.828 177.41 l S
+214.828 177.41 m 214.828 177.414 l 214.832 177.414 l 214.836 177.418 l 
+214.836 177.422 l 214.84 177.422 l 214.84 177.426 l 214.844 177.43 l 214.848
+ 177.43 l 214.848 177.434 l 214.852 177.438 l 214.855 177.438 l 214.855 
+177.441 l 214.859 177.445 l 214.863 177.445 l 214.863 177.449 l 214.887 
+177.473 l 214.887 177.477 l 214.891 177.477 l 214.895 177.48 l 214.895 177.484
+ l 214.898 177.484 l 214.906 177.492 l 214.906 177.496 l 214.91 177.496 
+l 214.914 177.5 l 214.914 177.504 l 214.918 177.504 l 214.922 177.508 l 
+214.922 177.512 l 214.926 177.512 l 214.926 177.516 l 214.93 177.52 l 214.934
+ 177.52 l 214.934 177.523 l 214.938 177.527 l 214.941 177.527 l 214.941 
+177.531 l 214.973 177.562 l 214.973 177.566 l 214.977 177.566 l 214.98 177.57
+ l 214.98 177.574 l 214.984 177.574 l 214.988 177.578 l 214.988 177.582 
+l 214.992 177.582 l 214.992 177.586 l 214.996 177.59 l 215 177.59 l 215 
+177.594 l 215.004 177.598 l 215.008 177.598 l 215.008 177.602 l 215.031 
+177.625 l 215.031 177.629 l 215.035 177.629 l 215.039 177.633 l 215.039 
+177.637 l 215.043 177.637 l 215.047 177.641 l 215.047 177.645 l 215.051 
+177.645 l 215.055 177.648 l 215.055 177.652 l 215.059 177.652 l 215.059 
+177.656 l 215.062 177.66 l 215.066 177.66 l 215.066 177.664 l 215.07 177.668
+ l 215.074 177.668 l 215.074 177.672 l 215.098 177.695 l 215.098 177.699
+ l 215.102 177.699 l 215.105 177.703 l 215.105 177.707 l 215.109 177.707
+ l 215.113 177.711 l 215.113 177.715 l 215.117 177.715 l 215.117 177.719
+ l 215.121 177.719 l 215.125 177.723 l 215.125 177.727 l 215.129 177.727
+ l 215.133 177.73 l 215.133 177.734 l 215.137 177.734 l 215.137 177.738 
+l 215.141 177.742 l 215.145 177.742 l 215.145 177.746 l 215.148 177.75 l
+ 215.152 177.75 l 215.152 177.754 l 215.156 177.758 l 215.16 177.758 l 215.16
+ 177.762 l 215.184 177.785 l 215.184 177.789 l 215.188 177.789 l 215.191
+ 177.793 l 215.191 177.797 l 215.195 177.797 l 215.199 177.801 l 215.199
+ 177.805 l 215.203 177.805 l 215.203 177.809 l 215.207 177.812 l 215.211
+ 177.812 l 215.211 177.816 l 215.215 177.82 l 215.219 177.82 l 215.219 177.824
+ l 215.25 177.855 l 215.25 177.859 l 215.254 177.859 l 215.258 177.863 l
+ 215.258 177.867 l 215.262 177.867 l 215.27 177.875 l 215.27 177.879 l 215.273
+ 177.879 l 215.277 177.883 l 215.277 177.887 l 215.281 177.887 l 215.285
+ 177.891 l 215.285 177.895 l 215.289 177.895 l 215.289 177.898 l 215.293
+ 177.902 l 215.297 177.902 l 215.297 177.906 l 215.301 177.91 l 215.305 
+177.91 l 215.305 177.914 l 215.328 177.938 l 215.328 177.941 l 215.332 177.941
+ l 215.336 177.945 l 215.336 177.949 l 215.34 177.949 l 215.344 177.953 
+l 215.344 177.957 l 215.348 177.957 l 215.352 177.961 l 215.352 177.965 
+l 215.355 177.965 l 215.355 177.969 l 215.359 177.973 l 215.363 177.973 
+l 215.363 177.977 l 215.367 177.98 l 215.371 177.98 l 215.371 177.984 l 
+215.379 177.992 l 215.383 177.992 l 215.383 177.996 l 215.387 178 l 215.391
+ 178 l 215.391 178.004 l 215.414 178.027 l 215.414 178.031 l 215.418 178.031
+ l 215.422 178.035 l 215.422 178.039 l 215.426 178.039 l 215.43 178.043 
+l 215.43 178.047 l 215.434 178.047 l 215.438 178.051 l 215.438 178.055 l
+ 215.441 178.055 l 215.441 178.059 l 215.445 178.062 l 215.449 178.062 l
+ 215.449 178.066 l 215.453 178.07 l 215.457 178.07 l 215.457 178.074 l 215.5
+ 178.117 l 215.5 178.121 l 215.504 178.121 l 215.508 178.125 l 215.508 178.129
+ l 215.512 178.129 l 215.516 178.133 l 215.516 178.137 l 215.52 178.137 
+l 215.52 178.141 l 215.523 178.145 l 215.527 178.145 l 215.527 178.148 l
+ 215.531 178.152 l 215.535 178.152 l 215.535 178.156 l 215.539 178.16 l 
+215.543 178.16 l 215.543 178.164 l 215.586 178.207 l 215.586 178.211 l 215.59
+ 178.211 l 215.594 178.215 l 215.594 178.219 l 215.598 178.219 l 215.602
+ 178.223 l 215.602 178.227 l 215.605 178.227 l 215.605 178.23 l 215.609 
+178.234 l 215.613 178.234 l 215.613 178.238 l 215.617 178.242 l 215.621 
+178.242 l 215.621 178.246 l 215.625 178.25 l 215.629 178.25 l 215.629 178.254
+ l 215.645 178.27 l 215.648 178.27 l 215.648 178.273 l 215.672 178.297 l
+ 215.672 178.301 l 215.676 178.301 l 215.68 178.305 l 215.68 178.309 l 215.684
+ 178.309 l 215.688 178.312 l 215.688 178.316 l 215.691 178.316 l 215.691
+ 178.32 l 215.695 178.324 l 215.699 178.324 l 215.699 178.328 l 215.703 
+178.332 l 215.707 178.332 l 215.707 178.336 l 215.715 178.344 l 215.719 
+178.344 l 215.719 178.348 l 215.723 178.352 l 215.727 178.352 l 215.727 
+178.355 l 215.73 178.359 l 215.734 178.359 l 215.734 178.363 l 215.758 178.387
+ l 215.758 178.391 l 215.762 178.391 l 215.766 178.395 l 215.766 178.398
+ l 215.77 178.398 l 215.773 178.402 l 215.773 178.406 l 215.777 178.406 
+l 215.777 178.41 l 215.781 178.414 l 215.785 178.414 l 215.785 178.418 l
+ 215.789 178.418 l 215.793 178.422 l 215.793 178.426 l 215.797 178.426 l
+ 215.797 178.43 l 215.801 178.434 l 215.805 178.434 l 215.805 178.438 l 
+215.809 178.441 l 215.812 178.441 l 215.812 178.445 l 215.816 178.449 l 
+215.82 178.449 l 215.82 178.453 l 215.844 178.477 l 215.844 178.48 l 215.848
+ 178.48 l 215.863 178.496 l 215.863 178.5 l 215.867 178.5 l 215.871 178.504
+ l 215.871 178.508 l 215.875 178.508 l 215.879 178.512 l 215.879 178.516
+ l 215.883 178.516 l 215.883 178.52 l 215.887 178.523 l 215.891 178.523 
+l 215.891 178.527 l 215.895 178.531 l 215.898 178.531 l 215.898 178.535 
+l 215.914 178.551 l 215.918 178.551 l 215.918 178.555 l 215.922 178.559 
+l 215.926 178.559 l 215.926 178.562 l 215.949 178.586 l 215.949 178.59 l
+ 215.953 178.59 l 215.957 178.594 l 215.957 178.598 l 215.961 178.598 l 
+215.965 178.602 l 215.965 178.605 l 215.969 178.605 l 215.969 178.609 l 
+215.973 178.609 l 215.977 178.613 l 215.977 178.617 l 215.98 178.617 l 215.984
+ 178.621 l 215.984 178.625 l 215.988 178.625 l 215.988 178.629 l 215.992
+ 178.633 l 215.996 178.633 l 215.996 178.637 l 216 178.641 l 216.004 178.641
+ l 216.004 178.645 l 216.008 178.648 l 216.012 178.648 l 216.012 178.652
+ l 216.027 178.668 l 216.031 178.668 l 216.031 178.672 l 216.055 178.695
+ l 216.055 178.699 l 216.059 178.699 l 216.062 178.703 l 216.062 178.707
+ l 216.066 178.707 l 216.07 178.711 l 216.07 178.715 l 216.074 178.715 l
+ 216.074 178.719 l 216.078 178.723 l 216.082 178.723 l 216.082 178.727 l
+ 216.086 178.727 l 216.09 178.73 l 216.09 178.734 l 216.094 178.734 l 216.094
+ 178.738 l 216.098 178.742 l 216.102 178.742 l 216.102 178.746 l 216.105
+ 178.75 l 216.109 178.75 l 216.109 178.754 l 216.113 178.758 l 216.117 178.758
+ l 216.117 178.762 l 216.133 178.777 l 216.137 178.777 l 216.137 178.781
+ l 216.16 178.805 l 216.16 178.809 l 216.164 178.809 l 216.168 178.812 l
+ 216.168 178.816 l 216.172 178.816 l 216.176 178.82 l 216.176 178.824 l 
+216.18 178.824 l 216.18 178.828 l 216.184 178.828 l 216.188 178.832 l 216.188
+ 178.836 l 216.191 178.836 l 216.195 178.84 l 216.195 178.844 l 216.199 
+178.844 l 216.203 178.848 l 216.203 178.852 l 216.207 178.852 l 216.207 
+178.855 l 216.211 178.859 l 216.215 178.859 l 216.215 178.863 l 216.219 
+178.867 l 216.223 178.867 l 216.223 178.871 l 216.23 178.879 l 216.234 178.879
+ l 216.234 178.883 l 216.238 178.887 l 216.242 178.887 l 216.242 178.891
+ l 216.266 178.914 l 216.266 178.918 l 216.27 178.918 l 216.273 178.922 
+l 216.273 178.926 l 216.277 178.926 l 216.285 178.934 l 216.285 178.938 
+l 216.289 178.938 l 216.293 178.941 l 216.293 178.945 l 216.297 178.945 
+l 216.301 178.949 l 216.301 178.953 l 216.305 178.953 l 216.309 178.957 
+l 216.309 178.961 l 216.312 178.961 l 216.312 178.965 l 216.316 178.969 
+l 216.32 178.969 l 216.32 178.973 l 216.324 178.977 l 216.328 178.977 l 
+216.328 178.98 l 216.332 178.98 l 216.332 178.984 l 216.336 178.988 l 216.34
+ 178.988 l 216.34 178.992 l 216.344 178.996 l 216.348 178.996 l 216.348 
+179 l 216.398 179.051 l 216.398 179.055 l 216.402 179.055 l 216.406 179.059
+ l 216.406 179.062 l 216.41 179.062 l 216.418 179.07 l 216.418 179.074 l
+ 216.422 179.074 l 216.426 179.078 l 216.426 179.082 l 216.43 179.082 l 
+216.434 179.086 l 216.434 179.09 l 216.438 179.09 l 216.438 179.094 l 216.441
+ 179.098 l 216.445 179.098 l 216.445 179.102 l 216.449 179.105 l 216.453
+ 179.105 l 216.453 179.109 l 216.457 179.109 l 216.457 179.113 l 216.461
+ 179.117 l 216.465 179.117 l 216.465 179.121 l 216.469 179.125 l 216.473
+ 179.125 l 216.473 179.129 l 216.496 179.152 l 216.5 179.152 l 216.5 179.156
+ l 216.523 179.18 l 216.523 179.184 l 216.527 179.184 l 216.531 179.188 
+l 216.531 179.191 l 216.535 179.191 l 216.543 179.199 l 216.543 179.203 
+l 216.547 179.203 l 216.551 179.207 l 216.551 179.211 l 216.555 179.211 
+l 216.559 179.215 l 216.559 179.219 l 216.562 179.219 l 216.562 179.223 
+l 216.566 179.227 l 216.57 179.227 l 216.57 179.23 l 216.574 179.234 l 216.578
+ 179.234 l 216.578 179.238 l 216.582 179.238 l 216.586 179.242 l 216.586
+ 179.246 l 216.59 179.246 l 216.59 179.25 l 216.594 179.254 l 216.598 179.254
+ l 216.598 179.258 l 216.602 179.262 l 216.605 179.262 l 216.605 179.266
+ l 216.621 179.281 l 216.625 179.281 l 216.625 179.285 l 216.648 179.309
+ l 216.648 179.312 l 216.652 179.312 l 216.668 179.328 l 216.668 179.332
+ l 216.672 179.332 l 216.676 179.336 l 216.676 179.34 l 216.68 179.34 l 
+216.684 179.344 l 216.684 179.348 l 216.688 179.348 l 216.695 179.355 l 
+216.695 179.359 l 216.699 179.359 l 216.703 179.363 l 216.703 179.367 l 
+216.707 179.367 l 216.711 179.371 l 216.711 179.375 l 216.715 179.375 l 
+216.715 179.379 l 216.719 179.383 l 216.723 179.383 l 216.723 179.387 l 
+216.727 179.391 l 216.73 179.391 l 216.73 179.395 l 216.734 179.395 l 216.734
+ 179.398 l 216.738 179.402 l 216.742 179.402 l 216.742 179.406 l 216.746
+ 179.41 l 216.75 179.41 l 216.75 179.414 l 216.766 179.43 l 216.77 179.43
+ l 216.77 179.434 l 216.773 179.438 l 216.777 179.438 l 216.777 179.441 
+l 216.82 179.484 l 216.82 179.488 l 216.824 179.488 l 216.828 179.492 l 
+216.828 179.496 l 216.832 179.496 l 216.84 179.504 l 216.84 179.508 l 216.844
+ 179.508 l 216.848 179.512 l 216.848 179.516 l 216.852 179.516 l 216.855
+ 179.52 l 216.855 179.523 l 216.859 179.523 l 216.859 179.527 l 216.863 
+179.531 l 216.867 179.531 l 216.867 179.535 l 216.871 179.535 l 216.875 
+179.539 l 216.875 179.543 l 216.879 179.543 l 216.883 179.547 l 216.883 
+179.551 l 216.887 179.551 l 216.887 179.555 l 216.891 179.559 l 216.895 
+179.559 l 216.895 179.562 l 216.898 179.566 l 216.902 179.566 l 216.902 
+179.57 l 216.906 179.57 l 216.906 179.574 l 216.91 179.578 l 216.914 179.578
+ l 216.914 179.582 l 216.918 179.586 l 216.922 179.586 l 216.922 179.59 
+l 216.938 179.605 l 216.941 179.605 l 216.941 179.609 l 216.992 179.66 l
+ 216.992 179.664 l 216.996 179.664 l 217 179.668 l 217 179.672 l 217.004
+ 179.672 l 217.012 179.68 l 217.012 179.684 l 217.016 179.684 l 217.02 179.688
+ l 217.02 179.691 l 217.023 179.691 l 217.027 179.695 l 217.027 179.699 
+l 217.031 179.699 l 217.031 179.703 l 217.035 179.703 l 217.039 179.707 
+l 217.039 179.711 l 217.043 179.711 l 217.047 179.715 l 217.047 179.719 
+l 217.051 179.719 l 217.051 179.723 l 217.055 179.727 l 217.059 179.727 
+l 217.059 179.73 l 217.062 179.734 l 217.066 179.734 l 217.066 179.738 l
+ 217.07 179.738 l 217.074 179.742 l 217.074 179.746 l 217.078 179.746 l 
+217.078 179.75 l 217.082 179.754 l 217.086 179.754 l 217.086 179.758 l 217.09
+ 179.762 l 217.094 179.762 l 217.094 179.766 l 217.098 179.766 l 217.098
+ 179.77 l 217.102 179.773 l 217.105 179.773 l 217.105 179.777 l 217.109 
+179.781 l 217.113 179.781 l 217.113 179.785 l 217.129 179.801 l 217.133 
+179.801 l 217.133 179.805 l 217.156 179.828 l 217.16 179.828 l 217.16 179.832
+ l 217.184 179.855 l 217.184 179.859 l 217.188 179.859 l 217.203 179.875
+ l 217.203 179.879 l 217.207 179.879 l 217.211 179.883 l 217.211 179.887
+ l 217.215 179.887 l 217.223 179.895 l 217.223 179.898 l 217.227 179.898
+ l 217.23 179.902 l 217.23 179.906 l 217.234 179.906 l 217.238 179.91 l 
+217.238 179.914 l 217.242 179.914 l 217.242 179.918 l 217.246 179.918 l 
+217.25 179.922 l 217.25 179.926 l 217.254 179.926 l 217.258 179.93 l 217.258
+ 179.934 l 217.262 179.934 l 217.266 179.938 l 217.266 179.941 l 217.27 
+179.941 l 217.27 179.945 l 217.273 179.949 l 217.277 179.949 l 217.277 179.953
+ l 217.281 179.953 l 217.285 179.957 l 217.285 179.961 l 217.289 179.961
+ l 217.289 179.965 l 217.293 179.969 l 217.297 179.969 l 217.297 179.973
+ l 217.301 179.977 l 217.305 179.977 l 217.305 179.98 l 217.309 179.98 l
+ 217.309 179.984 l 217.312 179.988 l 217.316 179.988 l 217.316 179.992 l
+ 217.32 179.996 l 217.324 179.996 l 217.324 180 l 217.332 180.008 l 217.336
+ 180.008 l 217.336 180.012 l 217.34 180.016 l 217.344 180.016 l 217.344 
+180.02 l 217.348 180.023 l 217.352 180.023 l 217.352 180.027 l 217.359 180.035
+ l 217.363 180.035 l 217.363 180.039 l 217.367 180.043 l 217.371 180.043
+ l 217.371 180.047 l 217.387 180.062 l 217.391 180.062 l 217.391 180.066
+ l 217.434 180.109 l 217.434 180.113 l 217.438 180.113 l 217.461 180.137
+ l 217.461 180.141 l 217.465 180.141 l 217.48 180.156 l 217.48 180.16 l 
+217.484 180.16 l 217.488 180.164 l 217.488 180.168 l 217.492 180.168 l 217.5
+ 180.176 l 217.5 180.18 l 217.504 180.18 l 217.508 180.184 l 217.508 180.188
+ l 217.512 180.188 l 217.516 180.191 l 217.516 180.195 l 217.52 180.195 
+l 217.52 180.199 l 217.523 180.199 l 217.527 180.203 l 217.527 180.207 l
+ 217.531 180.207 l 217.535 180.211 l 217.535 180.215 l 217.539 180.215 l
+ 217.543 180.219 l 217.543 180.223 l 217.547 180.223 l 217.547 180.227 l
+ 217.551 180.227 l 217.555 180.23 l 217.555 180.234 l 217.559 180.234 l 
+217.562 180.238 l 217.562 180.242 l 217.566 180.242 l 217.566 180.246 l 
+217.57 180.25 l 217.574 180.25 l 217.574 180.254 l 217.578 180.254 l 217.582
+ 180.258 l 217.582 180.262 l 217.586 180.262 l 217.586 180.266 l 217.59 
+180.27 l 217.594 180.27 l 217.594 180.273 l 217.598 180.277 l 217.602 180.277
+ l 217.602 180.281 l 217.605 180.281 l 217.605 180.285 l 217.609 180.289
+ l 217.613 180.289 l 217.613 180.293 l 217.617 180.297 l 217.621 180.297
+ l 217.621 180.301 l 217.629 180.309 l 217.633 180.309 l 217.633 180.312
+ l 217.637 180.316 l 217.641 180.316 l 217.641 180.32 l 217.645 180.324 
+l 217.648 180.324 l 217.648 180.328 l 217.652 180.328 l 217.652 180.332 
+l 217.656 180.336 l 217.66 180.336 l 217.66 180.34 l 217.664 180.344 l 217.668
+ 180.344 l 217.668 180.348 l 217.676 180.355 l 217.68 180.355 l 217.68 180.359
+ l 217.684 180.363 l 217.688 180.363 l 217.688 180.367 l 217.703 180.383
+ l 217.707 180.383 l 217.707 180.387 l 217.73 180.41 l 217.734 180.41 l 
+217.734 180.414 l 217.75 180.43 l 217.754 180.43 l 217.754 180.434 l 217.797
+ 180.477 l 217.797 180.48 l 217.801 180.48 l 217.816 180.496 l 217.816 180.5
+ l 217.82 180.5 l 217.844 180.523 l 217.844 180.527 l 217.848 180.527 l 
+217.863 180.543 l 217.863 180.547 l 217.867 180.547 l 217.883 180.562 l 
+217.883 180.566 l 217.887 180.566 l 217.891 180.57 l 217.891 180.574 l 217.895
+ 180.574 l 217.902 180.582 l 217.902 180.586 l 217.906 180.586 l 217.91 
+180.59 l 217.91 180.594 l 217.914 180.594 l 217.93 180.609 l 217.93 180.613
+ l 217.934 180.613 l 217.938 180.617 l 217.938 180.621 l 217.941 180.621
+ l 217.949 180.629 l 217.949 180.633 l 217.953 180.633 l 217.957 180.637
+ l 217.957 180.641 l 217.961 180.641 l 217.969 180.648 l 217.969 180.652
+ l 217.973 180.652 l 217.977 180.656 l 217.977 180.66 l 217.98 180.66 l 
+217.984 180.664 l 217.984 180.668 l 217.988 180.668 l 217.988 180.672 l 
+217.992 180.672 l 217.996 180.676 l 217.996 180.68 l 218 180.68 l 218.004
+ 180.684 l 218.004 180.688 l 218.008 180.688 l 218.008 180.691 l 218.012
+ 180.691 l 218.016 180.695 l 218.016 180.699 l 218.02 180.699 l 218.023 
+180.703 l 218.023 180.707 l 218.027 180.707 l 218.035 180.715 l 218.035 
+180.719 l 218.039 180.719 l 218.043 180.723 l 218.043 180.727 l 218.047 
+180.727 l 218.051 180.73 l 218.051 180.734 l 218.055 180.734 l 218.055 180.738
+ l 218.059 180.738 l 218.062 180.742 l 218.062 180.746 l 218.066 180.746
+ l 218.07 180.75 l 218.07 180.754 l 218.074 180.754 l 218.074 180.758 l 
+218.078 180.758 l 218.082 180.762 l 218.082 180.766 l 218.086 180.766 l 
+218.09 180.77 l 218.09 180.773 l 218.094 180.773 l 218.094 180.777 l 218.098
+ 180.777 l 218.102 180.781 l 218.102 180.785 l 218.105 180.785 l 218.109
+ 180.789 l 218.109 180.793 l 218.113 180.793 l 218.117 180.797 l 218.117
+ 180.801 l 218.121 180.801 l 218.121 180.805 l 218.125 180.805 l 218.129
+ 180.809 l 218.129 180.812 l 218.133 180.812 l 218.137 180.816 l 218.137
+ 180.82 l 218.141 180.82 l 218.141 180.824 l 218.145 180.824 l 218.148 180.828
+ l 218.148 180.832 l 218.152 180.832 l 218.156 180.836 l 218.156 180.84 
+l 218.16 180.84 l 218.16 180.844 l 218.164 180.844 l 218.168 180.848 l 218.168
+ 180.852 l 218.172 180.852 l 218.176 180.855 l 218.176 180.859 l 218.18 
+180.859 l 218.18 180.863 l 218.184 180.867 l 218.188 180.867 l 218.188 180.871
+ l 218.191 180.871 l 218.195 180.875 l 218.195 180.879 l 218.199 180.879
+ l 218.199 180.883 l 218.203 180.887 l 218.207 180.887 l 218.207 180.891
+ l 218.211 180.891 l 218.215 180.895 l 218.215 180.898 l 218.219 180.898
+ l 218.223 180.902 l 218.223 180.906 l 218.227 180.906 l 218.227 180.91 
+l 218.23 180.91 l 218.234 180.914 l 218.234 180.918 l 218.238 180.918 l 
+218.242 180.922 l 218.242 180.926 l 218.246 180.926 l 218.246 180.93 l 218.25
+ 180.93 l 218.254 180.934 l 218.254 180.938 l 218.258 180.938 l 218.262 
+180.941 l 218.262 180.945 l 218.266 180.945 l 218.266 180.949 l 218.27 180.949
+ l 218.273 180.953 l 218.273 180.957 l 218.277 180.957 l 218.281 180.961
+ l 218.281 180.965 l 218.285 180.965 l 218.285 180.969 l 218.289 180.973
+ l 218.293 180.973 l 218.293 180.977 l 218.297 180.977 l 218.301 180.98 
+l 218.301 180.984 l 218.305 180.984 l 218.309 180.988 l 218.309 180.992 
+l 218.312 180.992 l 218.312 180.996 l 218.316 180.996 l 218.32 181 l 218.32
+ 181.004 l 218.324 181.004 l 218.328 181.008 l 218.328 181.012 l 218.332
+ 181.012 l 218.332 181.016 l 218.336 181.016 l 218.34 181.02 l 218.34 181.023
+ l 218.344 181.023 l 218.348 181.027 l 218.348 181.031 l 218.352 181.031
+ l 218.352 181.035 l 218.355 181.035 l 218.359 181.039 l 218.359 181.043
+ l 218.363 181.043 l 218.367 181.047 l 218.367 181.051 l 218.371 181.051
+ l 218.371 181.055 l 218.375 181.055 l 218.379 181.059 l 218.379 181.062
+ l 218.383 181.062 l 218.387 181.066 l 218.387 181.07 l 218.391 181.07 l
+ 218.391 181.074 l 218.395 181.074 l 218.398 181.078 l 218.398 181.082 l
+ 218.402 181.082 l 218.406 181.086 l 218.406 181.09 l 218.41 181.09 l 218.418
+ 181.098 l 218.418 181.102 l 218.422 181.102 l 218.426 181.105 l 218.426
+ 181.109 l 218.43 181.109 l 218.438 181.117 l 218.438 181.121 l 218.441 
+181.121 l 218.445 181.125 l 218.445 181.129 l 218.449 181.129 l 218.457 
+181.137 l 218.457 181.141 l 218.461 181.141 l 218.465 181.145 l 218.465 
+181.148 l 218.469 181.148 l 218.477 181.156 l 218.477 181.16 l 218.48 181.16
+ l 218.484 181.164 l 218.484 181.168 l 218.488 181.168 l 218.496 181.176
+ l 218.496 181.18 l 218.5 181.18 l 218.504 181.184 l 218.504 181.188 l 218.508
+ 181.188 l 218.523 181.203 l 218.523 181.207 l 218.527 181.207 l 218.543
+ 181.223 l 218.543 181.227 l 218.547 181.227 l 218.562 181.242 l 218.562
+ 181.246 l 218.566 181.246 l 218.582 181.262 l 218.582 181.266 l 218.586
+ 181.266 l 218.707 181.387 l 218.711 181.387 l 218.711 181.391 l 218.727
+ 181.406 l 218.73 181.406 l 218.73 181.41 l 218.738 181.418 l 218.742 181.418
+ l 218.742 181.422 l 218.746 181.426 l 218.75 181.426 l 218.75 181.43 l 
+218.758 181.438 l 218.762 181.438 l 218.762 181.441 l 218.766 181.445 l 
+218.77 181.445 l 218.77 181.449 l 218.777 181.457 l 218.781 181.457 l 218.781
+ 181.461 l 218.785 181.465 l 218.789 181.465 l 218.789 181.469 l 218.793
+ 181.473 l 218.797 181.473 l 218.797 181.477 l 218.801 181.477 l 218.801
+ 181.48 l 218.805 181.484 l 218.809 181.484 l 218.809 181.488 l 218.812 
+181.492 l 218.816 181.492 l 218.816 181.496 l 218.82 181.496 l 218.82 181.5
+ l 218.824 181.504 l 218.828 181.504 l 218.828 181.508 l 218.832 181.512
+ l 218.836 181.512 l 218.836 181.516 l 218.84 181.516 l 218.84 181.52 l 
+218.844 181.523 l 218.848 181.523 l 218.848 181.527 l 218.852 181.527 l 
+218.855 181.531 l 218.855 181.535 l 218.859 181.535 l 218.859 181.539 l 
+218.863 181.543 l 218.867 181.543 l 218.867 181.547 l 218.871 181.547 l 
+218.875 181.551 l 218.875 181.555 l 218.879 181.555 l 218.879 181.559 l 
+218.883 181.562 l 218.887 181.562 l 218.887 181.566 l 218.891 181.566 l 
+218.895 181.57 l 218.895 181.574 l 218.898 181.574 l 218.902 181.578 l 218.902
+ 181.582 l 218.906 181.582 l 218.906 181.586 l 218.91 181.586 l 218.914 
+181.59 l 218.914 181.594 l 218.918 181.594 l 218.926 181.602 l 218.926 181.605
+ l 218.93 181.605 l 218.934 181.609 l 218.934 181.613 l 218.938 181.613 
+l 218.945 181.621 l 218.945 181.625 l 218.949 181.625 l 218.953 181.629 
+l 218.953 181.633 l 218.957 181.633 l 218.965 181.641 l 218.965 181.645 
+l 218.969 181.645 l 218.973 181.648 l 218.973 181.652 l 218.977 181.652 
+l 219.043 181.719 l 219.047 181.719 l 219.047 181.723 l 219.062 181.738 
+l 219.066 181.738 l 219.066 181.742 l 219.082 181.758 l 219.086 181.758 
+l 219.086 181.762 l 219.09 181.766 l 219.094 181.766 l 219.094 181.77 l 
+219.098 181.77 l 219.098 181.773 l 219.102 181.777 l 219.105 181.777 l 219.105
+ 181.781 l 219.109 181.785 l 219.113 181.785 l 219.113 181.789 l 219.117
+ 181.789 l 219.117 181.793 l 219.121 181.797 l 219.125 181.797 l 219.125
+ 181.801 l 219.129 181.805 l 219.133 181.805 l 219.133 181.809 l 219.137
+ 181.809 l 219.137 181.812 l 219.141 181.816 l 219.145 181.816 l 219.145
+ 181.82 l 219.148 181.82 l 219.152 181.824 l 219.152 181.828 l 219.156 181.828
+ l 219.156 181.832 l 219.16 181.836 l 219.164 181.836 l 219.164 181.84 l
+ 219.168 181.84 l 219.172 181.844 l 219.172 181.848 l 219.176 181.848 l 
+219.18 181.852 l 219.18 181.855 l 219.184 181.855 l 219.184 181.859 l 219.188
+ 181.859 l 219.191 181.863 l 219.191 181.867 l 219.195 181.867 l 219.203
+ 181.875 l 219.203 181.879 l 219.207 181.879 l 219.211 181.883 l 219.211
+ 181.887 l 219.215 181.887 l 219.223 181.895 l 219.223 181.898 l 219.227
+ 181.898 l 219.242 181.914 l 219.242 181.918 l 219.246 181.918 l 219.281
+ 181.953 l 219.285 181.953 l 219.285 181.957 l 219.301 181.973 l 219.305
+ 181.973 l 219.305 181.977 l 219.312 181.984 l 219.316 181.984 l 219.316
+ 181.988 l 219.32 181.992 l 219.324 181.992 l 219.324 181.996 l 219.332 
+182.004 l 219.336 182.004 l 219.336 182.008 l 219.34 182.012 l 219.344 182.012
+ l 219.344 182.016 l 219.348 182.016 l 219.348 182.02 l 219.352 182.023 
+l 219.355 182.023 l 219.355 182.027 l 219.359 182.031 l 219.363 182.031 
+l 219.363 182.035 l 219.367 182.035 l 219.371 182.039 l 219.371 182.043 
+l 219.375 182.043 l 219.375 182.047 l 219.379 182.047 l 219.383 182.051 
+l 219.383 182.055 l 219.387 182.055 l 219.391 182.059 l 219.391 182.062 
+l 219.395 182.062 l 219.395 182.066 l 219.398 182.066 l 219.402 182.07 l
+ 219.402 182.074 l 219.406 182.074 l 219.414 182.082 l 219.414 182.086 l
+ 219.418 182.086 l 219.422 182.09 l 219.422 182.094 l 219.426 182.094 l 
+219.434 182.102 l 219.434 182.105 l 219.438 182.105 l 219.453 182.121 l 
+219.453 182.125 l 219.457 182.125 l 219.473 182.141 l 219.477 182.141 l 
+219.477 182.145 l 219.492 182.16 l 219.496 182.16 l 219.496 182.164 l 219.504
+ 182.172 l 219.508 182.172 l 219.508 182.176 l 219.512 182.18 l 219.516 
+182.18 l 219.516 182.184 l 219.523 182.191 l 219.527 182.191 l 219.527 182.195
+ l 219.531 182.199 l 219.535 182.199 l 219.535 182.203 l 219.539 182.203
+ l 219.539 182.207 l 219.543 182.211 l 219.547 182.211 l 219.547 182.215
+ l 219.551 182.219 l 219.555 182.219 l 219.555 182.223 l 219.559 182.223
+ l 219.562 182.227 l 219.562 182.23 l 219.566 182.23 l 219.566 182.234 l
+ 219.57 182.234 l 219.574 182.238 l 219.574 182.242 l 219.578 182.242 l 
+219.586 182.25 l 219.586 182.254 l 219.59 182.254 l 219.594 182.258 l 219.594
+ 182.262 l 219.598 182.262 l 219.605 182.27 l 219.605 182.273 l 219.609 
+182.273 l 219.625 182.289 l 219.625 182.293 l 219.629 182.293 l 219.656 
+182.32 l 219.66 182.32 l 219.66 182.324 l 219.664 182.328 l 219.668 182.328
+ l 219.668 182.332 l 219.676 182.34 l 219.68 182.34 l 219.68 182.344 l 219.684
+ 182.348 l 219.688 182.348 l 219.688 182.352 l 219.691 182.352 l 219.691
+ 182.355 l 219.695 182.359 l 219.699 182.359 l 219.699 182.363 l 219.703
+ 182.367 l 219.707 182.367 l 219.707 182.371 l 219.711 182.371 l 219.711
+ 182.375 l 219.715 182.379 l 219.719 182.379 l 219.719 182.383 l 219.723
+ 182.383 l 219.727 182.387 l 219.727 182.391 l 219.73 182.391 l 219.73 182.395
+ l 219.734 182.395 l 219.738 182.398 l 219.738 182.402 l 219.742 182.402
+ l 219.746 182.406 l 219.746 182.41 l 219.75 182.41 l 219.758 182.418 l 
+219.758 182.422 l 219.762 182.422 l 219.809 182.469 l 219.812 182.469 l 
+219.812 182.473 l 219.82 182.48 l 219.824 182.48 l 219.824 182.484 l 219.828
+ 182.488 l 219.832 182.488 l 219.832 182.492 l 219.84 182.5 l 219.844 182.5
+ l 219.844 182.504 l 219.848 182.508 l 219.852 182.508 l 219.852 182.512
+ l 219.855 182.512 l 219.859 182.516 l 219.859 182.52 l 219.863 182.52 l
+ 219.863 182.523 l 219.867 182.523 l 219.871 182.527 l 219.871 182.531 l
+ 219.875 182.531 l 219.879 182.535 l 219.879 182.539 l 219.883 182.539 l
+ 219.883 182.543 l 219.887 182.543 l 219.891 182.547 l 219.891 182.551 l
+ 219.895 182.551 l 219.902 182.559 l 219.902 182.562 l 219.906 182.562 l
+ 219.922 182.578 l 219.922 182.582 l 219.926 182.582 l 219.941 182.598 l
+ 219.945 182.598 l 219.945 182.602 l 219.953 182.609 l 219.957 182.609 l
+ 219.957 182.613 l 219.961 182.617 l 219.965 182.617 l 219.965 182.621 l
+ 219.969 182.621 l 219.969 182.625 l 219.973 182.629 l 219.977 182.629 l
+ 219.977 182.633 l 219.98 182.637 l 219.984 182.637 l 219.984 182.641 l 
+219.988 182.641 l 219.988 182.645 l 219.992 182.648 l 219.996 182.648 l 
+219.996 182.652 l 220 182.652 l 220.004 182.656 l 220.004 182.66 l 220.008
+ 182.66 l 220.008 182.664 l 220.012 182.664 l 220.016 182.668 l 220.016 
+182.672 l 220.02 182.672 l 220.023 182.676 l 220.023 182.68 l 220.027 182.68
+ l 220.027 182.684 l 220.031 182.684 l 220.035 182.688 l 220.035 182.691
+ l 220.039 182.691 l 220.066 182.719 l 220.07 182.719 l 220.07 182.723 l
+ 220.086 182.738 l 220.09 182.738 l 220.09 182.742 l 220.098 182.75 l 220.102
+ 182.75 l 220.102 182.754 l 220.105 182.758 l 220.109 182.758 l 220.109 
+182.762 l 220.113 182.762 l 220.113 182.766 l 220.117 182.77 l 220.121 182.77
+ l 220.121 182.773 l 220.125 182.773 l 220.129 182.777 l 220.129 182.781
+ l 220.133 182.781 l 220.141 182.789 l 220.141 182.793 l 220.145 182.793
+ l 220.148 182.797 l 220.148 182.801 l 220.152 182.801 l 220.16 182.809 
+l 220.16 182.812 l 220.164 182.812 l 220.191 182.84 l 220.195 182.84 l 220.195
+ 182.844 l 220.203 182.852 l 220.207 182.852 l 220.207 182.855 l 220.211
+ 182.859 l 220.215 182.859 l 220.215 182.863 l 220.223 182.871 l 220.227
+ 182.871 l 220.227 182.875 l 220.23 182.879 l 220.234 182.879 l 220.234 
+182.883 l 220.238 182.883 l 220.242 182.887 l 220.242 182.891 l 220.246 
+182.891 l 220.246 182.895 l 220.25 182.895 l 220.254 182.898 l 220.254 182.902
+ l 220.258 182.902 l 220.266 182.91 l 220.266 182.914 l 220.27 182.914 l
+ 220.285 182.93 l 220.285 182.934 l 220.289 182.934 l 220.316 182.961 l 
+220.32 182.961 l 220.32 182.965 l 220.324 182.969 l 220.328 182.969 l 220.328
+ 182.973 l 220.332 182.973 l 220.332 182.977 l 220.336 182.98 l 220.34 182.98
+ l 220.34 182.984 l 220.344 182.984 l 220.348 182.988 l 220.348 182.992 
+l 220.352 182.992 l 220.352 182.996 l 220.355 182.996 l 220.359 183 l 220.359
+ 183.004 l 220.363 183.004 l 220.371 183.012 l 220.371 183.016 l 220.375
+ 183.016 l 220.379 183.02 l 220.379 183.023 l 220.383 183.023 l 220.391 
+183.031 l 220.391 183.035 l 220.395 183.035 l 220.422 183.062 l 220.426 
+183.062 l 220.426 183.066 l 220.43 183.07 l 220.434 183.07 l 220.434 183.074
+ l 220.438 183.074 l 220.438 183.078 l 220.441 183.082 l 220.445 183.082
+ l 220.445 183.086 l 220.449 183.086 l 220.453 183.09 l 220.453 183.094 
+l 220.457 183.094 l 220.457 183.098 l 220.461 183.098 l 220.465 183.102 
+l 220.465 183.105 l 220.469 183.105 l 220.477 183.113 l 220.477 183.117 
+l 220.48 183.117 l 220.484 183.121 l 220.484 183.125 l 220.488 183.125 l
+ 220.496 183.133 l 220.496 183.137 l 220.5 183.137 l 220.516 183.152 l 220.52
+ 183.152 l 220.52 183.156 l 220.527 183.164 l 220.531 183.164 l 220.531 
+183.168 l 220.535 183.172 l 220.539 183.172 l 220.539 183.176 l 220.543 
+183.176 l 220.543 183.18 l 220.547 183.184 l 220.551 183.184 l 220.551 183.188
+ l 220.555 183.188 l 220.559 183.191 l 220.559 183.195 l 220.562 183.195
+ l 220.562 183.199 l 220.566 183.199 l 220.57 183.203 l 220.57 183.207 l
+ 220.574 183.207 l 220.582 183.215 l 220.582 183.219 l 220.586 183.219 l
+ 220.613 183.246 l 220.617 183.246 l 220.617 183.25 l 220.621 183.254 l 
+220.625 183.254 l 220.625 183.258 l 220.633 183.266 l 220.637 183.266 l 
+220.637 183.27 l 220.641 183.273 l 220.645 183.273 l 220.645 183.277 l 220.648
+ 183.277 l 220.648 183.281 l 220.652 183.285 l 220.656 183.285 l 220.656
+ 183.289 l 220.66 183.289 l 220.664 183.293 l 220.664 183.297 l 220.668 
+183.297 l 220.668 183.301 l 220.672 183.301 l 220.676 183.305 l 220.676 
+183.309 l 220.68 183.309 l 220.688 183.316 l 220.688 183.32 l 220.691 183.32
+ l 220.719 183.348 l 220.723 183.348 l 220.723 183.352 l 220.727 183.355
+ l 220.73 183.355 l 220.73 183.359 l 220.734 183.359 l 220.734 183.363 l
+ 220.738 183.367 l 220.742 183.367 l 220.742 183.371 l 220.746 183.371 l
+ 220.75 183.375 l 220.75 183.379 l 220.754 183.379 l 220.754 183.383 l 220.758
+ 183.383 l 220.762 183.387 l 220.762 183.391 l 220.766 183.391 l 220.773
+ 183.398 l 220.773 183.402 l 220.777 183.402 l 220.805 183.43 l 220.809 
+183.43 l 220.809 183.434 l 220.812 183.438 l 220.816 183.438 l 220.816 183.441
+ l 220.82 183.441 l 220.82 183.445 l 220.824 183.449 l 220.828 183.449 l
+ 220.828 183.453 l 220.832 183.453 l 220.836 183.457 l 220.836 183.461 l
+ 220.84 183.461 l 220.84 183.465 l 220.844 183.465 l 220.848 183.469 l 220.848
+ 183.473 l 220.852 183.473 l 220.859 183.48 l 220.859 183.484 l 220.863 
+183.484 l 220.891 183.512 l 220.895 183.512 l 220.895 183.516 l 220.902 
+183.523 l 220.906 183.523 l 220.906 183.527 l 220.91 183.531 l 220.914 183.531
+ l 220.914 183.535 l 220.918 183.535 l 220.922 183.539 l 220.922 183.543
+ l 220.926 183.543 l 220.926 183.547 l 220.93 183.547 l 220.934 183.551 
+l 220.934 183.555 l 220.938 183.555 l 220.945 183.562 l 220.945 183.566 
+l 220.949 183.566 l 220.977 183.594 l 220.98 183.594 l 220.98 183.598 l 
+220.988 183.605 l 220.992 183.605 l 220.992 183.609 l 220.996 183.613 l 
+221 183.613 l 221 183.617 l 221.004 183.617 l 221.008 183.621 l 221.008 
+183.625 l 221.012 183.625 l 221.012 183.629 l 221.016 183.629 l 221.02 183.633
+ l 221.02 183.637 l 221.023 183.637 l 221.031 183.645 l 221.031 183.648 
+l 221.035 183.648 l 221.062 183.676 l 221.066 183.676 l 221.066 183.68 l
+ 221.074 183.688 l 221.078 183.688 l 221.078 183.691 l 221.082 183.695 l
+ 221.086 183.695 l 221.086 183.699 l 221.09 183.699 l 221.09 183.703 l 221.094
+ 183.707 l 221.098 183.707 l 221.098 183.711 l 221.102 183.711 l 221.105
+ 183.715 l 221.105 183.719 l 221.109 183.719 l 221.117 183.727 l 221.117
+ 183.73 l 221.121 183.73 l 221.129 183.738 l 221.133 183.738 l 221.133 183.742
+ l 221.141 183.75 l 221.145 183.75 l 221.145 183.754 l 221.148 183.758 l
+ 221.152 183.758 l 221.152 183.762 l 221.156 183.762 l 221.156 183.766 l
+ 221.16 183.77 l 221.164 183.77 l 221.164 183.773 l 221.168 183.773 l 221.172
+ 183.777 l 221.172 183.781 l 221.176 183.781 l 221.176 183.785 l 221.18 
+183.785 l 221.184 183.789 l 221.184 183.793 l 221.188 183.793 l 221.215 
+183.82 l 221.219 183.82 l 221.219 183.824 l 221.227 183.832 l 221.23 183.832
+ l 221.23 183.836 l 221.234 183.84 l 221.238 183.84 l 221.238 183.844 l 
+221.242 183.844 l 221.242 183.848 l 221.246 183.852 l 221.25 183.852 l 221.25
+ 183.855 l 221.254 183.855 l 221.258 183.859 l 221.258 183.863 l 221.262
+ 183.863 l 221.262 183.867 l 221.266 183.867 l 221.293 183.895 l 221.297
+ 183.895 l 221.297 183.898 l 221.301 183.902 l 221.305 183.902 l 221.305
+ 183.906 l 221.309 183.906 l 221.309 183.91 l 221.312 183.914 l 221.316 
+183.914 l 221.316 183.918 l 221.32 183.918 l 221.324 183.922 l 221.324 183.926
+ l 221.328 183.926 l 221.328 183.93 l 221.332 183.93 l 221.336 183.934 l
+ 221.336 183.938 l 221.34 183.938 l 221.348 183.945 l 221.348 183.949 l 
+221.352 183.949 l 221.371 183.969 l 221.375 183.969 l 221.375 183.973 l 
+221.379 183.977 l 221.383 183.977 l 221.383 183.98 l 221.387 183.98 l 221.391
+ 183.984 l 221.391 183.988 l 221.395 183.988 l 221.395 183.992 l 221.398
+ 183.992 l 221.402 183.996 l 221.402 184 l 221.406 184 l 221.414 184.008
+ l 221.414 184.012 l 221.418 184.012 l 221.445 184.039 l 221.449 184.039
+ l 221.449 184.043 l 221.457 184.051 l 221.461 184.051 l 221.461 184.055
+ l 221.465 184.055 l 221.469 184.059 l 221.469 184.062 l 221.473 184.062
+ l 221.473 184.066 l 221.477 184.066 l 221.48 184.07 l 221.48 184.074 l 
+221.484 184.074 l 221.512 184.102 l 221.516 184.102 l 221.516 184.105 l 
+221.523 184.113 l 221.527 184.113 l 221.527 184.117 l 221.531 184.121 l 
+221.535 184.121 l 221.535 184.125 l 221.539 184.125 l 221.539 184.129 l 
+221.543 184.129 l 221.547 184.133 l 221.547 184.137 l 221.551 184.137 l 
+221.559 184.145 l 221.559 184.148 l 221.562 184.148 l 221.578 184.164 l 
+221.582 184.164 l 221.582 184.168 l 221.59 184.176 l 221.594 184.176 l 221.594
+ 184.18 l 221.598 184.184 l 221.602 184.184 l 221.602 184.188 l 221.605 
+184.188 l 221.605 184.191 l 221.609 184.191 l 221.613 184.195 l 221.613 
+184.199 l 221.617 184.199 l 221.625 184.207 l 221.625 184.211 l 221.629 
+184.211 l 221.656 184.238 l 221.66 184.238 l 221.66 184.242 l 221.664 184.242
+ l 221.664 184.246 l 221.668 184.25 l 221.672 184.25 l 221.672 184.254 l
+ 221.676 184.254 l 221.68 184.258 l 221.68 184.262 l 221.684 184.262 l 221.691
+ 184.27 l 221.691 184.273 l 221.695 184.273 l 221.723 184.301 l 221.727 
+184.301 l 221.727 184.305 l 221.73 184.305 l 221.73 184.309 l 221.734 184.312
+ l 221.738 184.312 l 221.738 184.316 l 221.742 184.316 l 221.746 184.32 
+l 221.746 184.324 l 221.75 184.324 l 221.75 184.328 l 221.754 184.328 l 
+221.758 184.332 l 221.758 184.336 l 221.762 184.336 l 221.781 184.355 l 
+221.785 184.355 l 221.785 184.359 l 221.789 184.363 l 221.793 184.363 l 
+221.793 184.367 l 221.797 184.367 l 221.797 184.371 l 221.801 184.375 l 
+221.805 184.375 l 221.805 184.379 l 221.809 184.379 l 221.812 184.383 l 
+221.812 184.387 l 221.816 184.387 l 221.816 184.391 l 221.82 184.391 l 221.848
+ 184.418 l 221.852 184.418 l 221.852 184.422 l 221.859 184.43 l 221.863 
+184.43 l 221.863 184.434 l 221.867 184.438 l 221.871 184.438 l 221.871 184.441
+ l 221.875 184.441 l 221.883 184.449 l 221.883 184.453 l 221.887 184.453
+ l 221.914 184.48 l 221.918 184.48 l 221.918 184.484 l 221.922 184.484 l
+ 221.922 184.488 l 221.926 184.492 l 221.93 184.492 l 221.93 184.496 l 221.934
+ 184.496 l 221.938 184.5 l 221.938 184.504 l 221.941 184.504 l 221.941 184.508
+ l 221.945 184.508 l 221.949 184.512 l 221.949 184.516 l 221.953 184.516
+ l 221.961 184.523 l 221.965 184.523 l 221.965 184.527 l 221.973 184.535
+ l 221.977 184.535 l 221.977 184.539 l 221.98 184.543 l 221.984 184.543 
+l 221.984 184.547 l 221.988 184.547 l 221.988 184.551 l 221.992 184.555 
+l 221.996 184.555 l 221.996 184.559 l 222 184.559 l 222.008 184.566 l 222.008
+ 184.57 l 222.012 184.57 l 222.039 184.598 l 222.043 184.598 l 222.043 184.602
+ l 222.047 184.602 l 222.047 184.605 l 222.051 184.609 l 222.055 184.609
+ l 222.055 184.613 l 222.059 184.613 l 222.062 184.617 l 222.062 184.621
+ l 222.066 184.621 l 222.074 184.629 l 222.074 184.633 l 222.078 184.633
+ l 222.086 184.641 l 222.09 184.641 l 222.09 184.645 l 222.098 184.652 l
+ 222.102 184.652 l 222.102 184.656 l 222.105 184.66 l 222.109 184.66 l 222.109
+ 184.664 l 222.113 184.664 l 222.113 184.668 l 222.117 184.672 l 222.121
+ 184.672 l 222.121 184.676 l 222.125 184.676 l 222.133 184.684 l 222.133
+ 184.688 l 222.137 184.688 l 222.152 184.703 l 222.156 184.703 l 222.156
+ 184.707 l 222.16 184.707 l 222.16 184.711 l 222.164 184.715 l 222.168 184.715
+ l 222.168 184.719 l 222.172 184.719 l 222.176 184.723 l 222.176 184.727
+ l 222.18 184.727 l 222.18 184.73 l 222.184 184.73 l 222.188 184.734 l 222.188
+ 184.738 l 222.191 184.738 l 222.211 184.758 l 222.215 184.758 l 222.215
+ 184.762 l 222.223 184.77 l 222.227 184.77 l 222.227 184.773 l 222.23 184.773
+ l 222.234 184.777 l 222.234 184.781 l 222.238 184.781 l 222.238 184.785
+ l 222.242 184.785 l 222.246 184.789 l 222.246 184.793 l 222.25 184.793 
+l 222.27 184.812 l 222.273 184.812 l 222.273 184.816 l 222.277 184.82 l 
+222.281 184.82 l 222.281 184.824 l 222.285 184.824 l 222.285 184.828 l 222.289
+ 184.832 l 222.293 184.832 l 222.293 184.836 l 222.297 184.836 l 222.305
+ 184.844 l 222.305 184.848 l 222.309 184.848 l 222.328 184.867 l 222.332
+ 184.867 l 222.332 184.871 l 222.336 184.875 l 222.34 184.875 l 222.34 184.879
+ l 222.344 184.879 l 222.348 184.883 l 222.348 184.887 l 222.352 184.887
+ l 222.352 184.891 l 222.355 184.891 l 222.359 184.895 l 222.359 184.898
+ l 222.363 184.898 l 222.383 184.918 l 222.387 184.918 l 222.387 184.922
+ l 222.395 184.93 l 222.398 184.93 l 222.398 184.934 l 222.402 184.934 l
+ 222.406 184.938 l 222.406 184.941 l 222.41 184.941 l 222.41 184.945 l 222.414
+ 184.945 l 222.418 184.949 l 222.418 184.953 l 222.422 184.953 l 222.441
+ 184.973 l 222.445 184.973 l 222.445 184.977 l 222.449 184.98 l 222.453 
+184.98 l 222.453 184.984 l 222.457 184.984 l 222.457 184.988 l 222.461 184.988
+ l 222.465 184.992 l 222.465 184.996 l 222.469 184.996 l 222.477 185.004
+ l 222.477 185.008 l 222.48 185.008 l 222.488 185.016 l 222.492 185.016 
+l 222.492 185.02 l 222.5 185.027 l 222.504 185.027 l 222.504 185.031 l 222.508
+ 185.035 l 222.512 185.035 l 222.512 185.039 l 222.516 185.039 l 222.516
+ 185.043 l 222.52 185.043 l 222.523 185.047 l 222.523 185.051 l 222.527 
+185.051 l 222.547 185.07 l 222.551 185.07 l 222.551 185.074 l 222.555 185.078
+ l 222.559 185.078 l 222.559 185.082 l 222.562 185.082 l 222.562 185.086
+ l 222.566 185.09 l 222.57 185.09 l 222.57 185.094 l 222.574 185.094 l 222.582
+ 185.102 l 222.582 185.105 l 222.586 185.105 l 222.605 185.125 l 222.609
+ 185.125 l 222.609 185.129 l 222.613 185.133 l 222.617 185.133 l 222.617
+ 185.137 l 222.621 185.137 l 222.621 185.141 l 222.625 185.141 l 222.629
+ 185.145 l 222.629 185.148 l 222.633 185.148 l 222.652 185.168 l 222.656
+ 185.168 l 222.656 185.172 l 222.66 185.176 l 222.664 185.176 l 222.664 
+185.18 l 222.668 185.18 l 222.668 185.184 l 222.672 185.188 l 222.676 185.188
+ l 222.676 185.191 l 222.68 185.191 l 222.688 185.199 l 222.688 185.203 
+l 222.691 185.203 l 222.711 185.223 l 222.715 185.223 l 222.715 185.227 
+l 222.719 185.23 l 222.723 185.23 l 222.723 185.234 l 222.727 185.234 l 
+222.734 185.242 l 222.734 185.246 l 222.738 185.246 l 222.758 185.266 l 
+222.762 185.266 l 222.762 185.27 l 222.766 185.273 l 222.77 185.273 l 222.77
+ 185.277 l 222.773 185.277 l 222.773 185.281 l 222.777 185.285 l 222.781
+ 185.285 l 222.781 185.289 l 222.785 185.289 l 222.793 185.297 l 222.793
+ 185.301 l 222.797 185.301 l 222.805 185.309 l 222.809 185.309 l 222.809
+ 185.312 l 222.816 185.32 l 222.82 185.32 l 222.82 185.324 l 222.824 185.328
+ l 222.828 185.328 l 222.828 185.332 l 222.832 185.332 l 222.84 185.34 l
+ 222.84 185.344 l 222.844 185.344 l 222.852 185.352 l 222.855 185.352 l 
+222.855 185.355 l 222.863 185.363 l 222.867 185.363 l 222.867 185.367 l 
+222.871 185.371 l 222.875 185.371 l 222.875 185.375 l 222.879 185.375 l 
+222.879 185.379 l 222.883 185.379 l 222.887 185.383 l 222.887 185.387 l 
+222.891 185.387 l 222.91 185.406 l 222.914 185.406 l 222.914 185.41 l 222.918
+ 185.414 l 222.922 185.414 l 222.922 185.418 l 222.926 185.418 l 222.926
+ 185.422 l 222.93 185.422 l 222.934 185.426 l 222.934 185.43 l 222.938 185.43
+ l 222.957 185.449 l 222.961 185.449 l 222.961 185.453 l 222.969 185.461
+ l 222.973 185.461 l 222.973 185.465 l 222.977 185.465 l 222.98 185.469 
+l 222.98 185.473 l 222.984 185.473 l 222.984 185.477 l 222.988 185.477 l
+ 223.016 185.504 l 223.02 185.504 l 223.02 185.508 l 223.023 185.508 l 223.027
+ 185.512 l 223.027 185.516 l 223.031 185.516 l 223.031 185.52 l 223.035 
+185.52 l 223.055 185.539 l 223.059 185.539 l 223.059 185.543 l 223.062 185.547
+ l 223.066 185.547 l 223.066 185.551 l 223.07 185.551 l 223.07 185.555 l
+ 223.074 185.559 l 223.078 185.559 l 223.078 185.562 l 223.082 185.562 l
+ 223.09 185.57 l 223.09 185.574 l 223.094 185.574 l 223.102 185.582 l 223.105
+ 185.582 l 223.105 185.586 l 223.109 185.59 l 223.113 185.59 l 223.113 185.594
+ l 223.117 185.594 l 223.117 185.598 l 223.121 185.598 l 223.125 185.602
+ l 223.125 185.605 l 223.129 185.605 l 223.137 185.613 l 223.137 185.617
+ l 223.141 185.617 l 223.148 185.625 l 223.152 185.625 l 223.152 185.629
+ l 223.16 185.637 l 223.164 185.637 l 223.164 185.641 l 223.168 185.641 
+l 223.172 185.645 l 223.172 185.648 l 223.176 185.648 l 223.176 185.652 
+l 223.18 185.652 l 223.199 185.672 l 223.203 185.672 l 223.203 185.676 l
+ 223.207 185.68 l 223.211 185.68 l 223.211 185.684 l 223.215 185.684 l 223.219
+ 185.688 l 223.219 185.691 l 223.223 185.691 l 223.223 185.695 l 223.227
+ 185.695 l 223.246 185.715 l 223.25 185.715 l 223.25 185.719 l 223.254 185.723
+ l 223.258 185.723 l 223.258 185.727 l 223.262 185.727 l 223.262 185.73 
+l 223.266 185.73 l 223.27 185.734 l 223.27 185.738 l 223.273 185.738 l 223.293
+ 185.758 l 223.297 185.758 l 223.297 185.762 l 223.301 185.766 l 223.305
+ 185.766 l 223.305 185.77 l 223.309 185.77 l 223.309 185.773 l 223.312 185.773
+ l 223.316 185.777 l 223.316 185.781 l 223.32 185.781 l 223.34 185.801 l
+ 223.344 185.801 l 223.344 185.805 l 223.348 185.805 l 223.348 185.809 l
+ 223.352 185.812 l 223.355 185.812 l 223.355 185.816 l 223.359 185.816 l
+ 223.367 185.824 l 223.367 185.828 l 223.371 185.828 l 223.379 185.836 l
+ 223.383 185.836 l 223.383 185.84 l 223.391 185.848 l 223.395 185.848 l 
+223.395 185.852 l 223.398 185.852 l 223.402 185.855 l 223.402 185.859 l 
+223.406 185.859 l 223.426 185.879 l 223.43 185.879 l 223.43 185.883 l 223.438
+ 185.891 l 223.441 185.891 l 223.441 185.895 l 223.445 185.895 l 223.449
+ 185.898 l 223.449 185.902 l 223.453 185.902 l 223.453 185.906 l 223.457
+ 185.906 l 223.477 185.926 l 223.48 185.926 l 223.48 185.93 l 223.484 185.934
+ l 223.488 185.934 l 223.488 185.938 l 223.492 185.938 l 223.5 185.945 l
+ 223.5 185.949 l 223.504 185.949 l 223.512 185.957 l 223.516 185.957 l 223.516
+ 185.961 l 223.523 185.969 l 223.527 185.969 l 223.527 185.973 l 223.531
+ 185.973 l 223.535 185.977 l 223.535 185.98 l 223.539 185.98 l 223.539 185.984
+ l 223.543 185.984 l 223.562 186.004 l 223.566 186.004 l 223.566 186.008
+ l 223.57 186.012 l 223.574 186.012 l 223.574 186.016 l 223.578 186.016 
+l 223.578 186.02 l 223.582 186.02 l 223.586 186.023 l 223.586 186.027 l 
+223.59 186.027 l 223.598 186.035 l 223.602 186.035 l 223.602 186.039 l 223.609
+ 186.047 l 223.613 186.047 l 223.613 186.051 l 223.617 186.051 l 223.621
+ 186.055 l 223.621 186.059 l 223.625 186.059 l 223.625 186.062 l 223.629
+ 186.062 l 223.648 186.082 l 223.652 186.082 l 223.652 186.086 l 223.656
+ 186.09 l 223.66 186.09 l 223.66 186.094 l 223.664 186.094 l 223.664 186.098
+ l 223.668 186.098 l 223.672 186.102 l 223.672 186.105 l 223.676 186.105
+ l 223.684 186.113 l 223.688 186.113 l 223.688 186.117 l 223.695 186.125
+ l 223.699 186.125 l 223.699 186.129 l 223.703 186.129 l 223.707 186.133
+ l 223.707 186.137 l 223.711 186.137 l 223.711 186.141 l 223.715 186.141
+ l 223.734 186.16 l 223.738 186.16 l 223.738 186.164 l 223.742 186.168 l
+ 223.746 186.168 l 223.746 186.172 l 223.75 186.172 l 223.75 186.176 l 223.754
+ 186.176 l 223.758 186.18 l 223.758 186.184 l 223.762 186.184 l 223.781 
+186.203 l 223.785 186.203 l 223.785 186.207 l 223.789 186.207 l 223.793 
+186.211 l 223.793 186.215 l 223.797 186.215 l 223.797 186.219 l 223.801 
+186.219 l 223.82 186.238 l 223.824 186.238 l 223.824 186.242 l 223.828 186.246
+ l 223.832 186.246 l 223.832 186.25 l 223.836 186.25 l 223.836 186.254 l
+ 223.84 186.254 l 223.844 186.258 l 223.844 186.262 l 223.848 186.262 l 
+223.859 186.273 l 223.863 186.273 l 223.863 186.277 l 223.867 186.281 l 
+223.871 186.281 l 223.871 186.285 l 223.875 186.285 l 223.883 186.293 l 
+223.883 186.297 l 223.887 186.297 l 223.895 186.305 l 223.898 186.305 l 
+223.898 186.309 l 223.906 186.316 l 223.91 186.316 l 223.91 186.32 l 223.914
+ 186.32 l 223.918 186.324 l 223.918 186.328 l 223.922 186.328 l 223.922 
+186.332 l 223.926 186.332 l 223.945 186.352 l 223.949 186.352 l 223.949 
+186.355 l 223.953 186.359 l 223.957 186.359 l 223.957 186.363 l 223.961 
+186.363 l 223.961 186.367 l 223.965 186.367 l 223.98 186.383 l 223.984 186.383
+ l 223.984 186.387 l 223.988 186.387 l 223.988 186.391 l 223.992 186.395
+ l 223.996 186.395 l 223.996 186.398 l 224 186.398 l 224.008 186.406 l 224.008
+ 186.41 l 224.012 186.41 l 224.02 186.418 l 224.023 186.418 l 224.023 186.422
+ l 224.031 186.43 l 224.035 186.43 l 224.035 186.434 l 224.039 186.434 l
+ 224.043 186.438 l 224.043 186.441 l 224.047 186.441 l 224.047 186.445 l
+ 224.051 186.445 l 224.059 186.453 l 224.062 186.453 l 224.062 186.457 l
+ 224.07 186.465 l 224.074 186.465 l 224.074 186.469 l 224.078 186.469 l 
+224.082 186.473 l 224.082 186.477 l 224.086 186.477 l 224.105 186.496 l 
+224.109 186.496 l 224.109 186.5 l 224.113 186.5 l 224.113 186.504 l 224.117
+ 186.508 l 224.121 186.508 l 224.121 186.512 l 224.125 186.512 l 224.145
+ 186.531 l 224.148 186.531 l 224.148 186.535 l 224.152 186.535 l 224.152
+ 186.539 l 224.156 186.543 l 224.16 186.543 l 224.16 186.547 l 224.164 186.547
+ l 224.184 186.566 l 224.188 186.566 l 224.188 186.57 l 224.191 186.574 
+l 224.195 186.574 l 224.195 186.578 l 224.199 186.578 l 224.199 186.582 
+l 224.203 186.582 l 224.223 186.602 l 224.227 186.602 l 224.227 186.605 
+l 224.23 186.609 l 224.234 186.609 l 224.234 186.613 l 224.238 186.613 l
+ 224.238 186.617 l 224.242 186.617 l 224.246 186.621 l 224.246 186.625 l
+ 224.25 186.625 l 224.262 186.637 l 224.266 186.637 l 224.266 186.641 l 
+224.27 186.645 l 224.273 186.645 l 224.273 186.648 l 224.277 186.648 l 224.285
+ 186.656 l 224.285 186.66 l 224.289 186.66 l 224.297 186.668 l 224.301 186.668
+ l 224.301 186.672 l 224.309 186.68 l 224.312 186.68 l 224.312 186.684 l
+ 224.316 186.684 l 224.324 186.691 l 224.324 186.695 l 224.328 186.695 l
+ 224.336 186.703 l 224.34 186.703 l 224.34 186.707 l 224.348 186.715 l 224.352
+ 186.715 l 224.352 186.719 l 224.355 186.719 l 224.375 186.738 l 224.379
+ 186.738 l 224.379 186.742 l 224.383 186.746 l 224.387 186.746 l 224.387
+ 186.75 l 224.391 186.75 l 224.391 186.754 l 224.395 186.754 l 224.398 186.758
+ l 224.398 186.762 l 224.402 186.762 l 224.414 186.773 l 224.418 186.773
+ l 224.418 186.777 l 224.422 186.781 l 224.426 186.781 l 224.426 186.785
+ l 224.43 186.785 l 224.43 186.789 l 224.434 186.789 l 224.438 186.793 l
+ 224.438 186.797 l 224.441 186.797 l 224.453 186.809 l 224.457 186.809 l
+ 224.457 186.812 l 224.461 186.816 l 224.465 186.816 l 224.465 186.82 l 
+224.469 186.82 l 224.477 186.828 l 224.477 186.832 l 224.48 186.832 l 224.488
+ 186.84 l 224.492 186.84 l 224.492 186.844 l 224.496 186.844 l 224.496 186.848
+ l 224.5 186.852 l 224.504 186.852 l 224.504 186.855 l 224.508 186.855 l
+ 224.516 186.863 l 224.516 186.867 l 224.52 186.867 l 224.527 186.875 l 
+224.531 186.875 l 224.531 186.879 l 224.535 186.879 l 224.535 186.883 l 
+224.539 186.887 l 224.543 186.887 l 224.543 186.891 l 224.547 186.891 l 
+224.566 186.91 l 224.57 186.91 l 224.57 186.914 l 224.574 186.914 l 224.578
+ 186.918 l 224.578 186.922 l 224.582 186.922 l 224.582 186.926 l 224.586
+ 186.926 l 224.605 186.945 l 224.609 186.945 l 224.609 186.949 l 224.613
+ 186.949 l 224.617 186.953 l 224.617 186.957 l 224.621 186.957 l 224.621
+ 186.961 l 224.625 186.961 l 224.645 186.98 l 224.648 186.98 l 224.648 186.984
+ l 224.652 186.984 l 224.656 186.988 l 224.656 186.992 l 224.66 186.992 
+l 224.672 187.004 l 224.676 187.004 l 224.676 187.008 l 224.68 187.012 l
+ 224.684 187.012 l 224.684 187.016 l 224.688 187.016 l 224.688 187.02 l 
+224.691 187.02 l 224.695 187.023 l 224.695 187.027 l 224.699 187.027 l 224.711
+ 187.039 l 224.715 187.039 l 224.715 187.043 l 224.719 187.047 l 224.723
+ 187.047 l 224.723 187.051 l 224.727 187.051 l 224.727 187.055 l 224.73 
+187.055 l 224.746 187.07 l 224.75 187.07 l 224.75 187.074 l 224.754 187.074
+ l 224.754 187.078 l 224.758 187.082 l 224.762 187.082 l 224.762 187.086
+ l 224.766 187.086 l 224.785 187.105 l 224.789 187.105 l 224.789 187.109
+ l 224.793 187.109 l 224.793 187.113 l 224.797 187.113 l 224.801 187.117
+ l 224.801 187.121 l 224.805 187.121 l 224.824 187.141 l 224.828 187.141
+ l 224.828 187.145 l 224.832 187.145 l 224.832 187.148 l 224.836 187.148
+ l 224.84 187.152 l 224.84 187.156 l 224.844 187.156 l 224.852 187.164 l
+ 224.855 187.164 l 224.855 187.168 l 224.859 187.168 l 224.859 187.172 l
+ 224.863 187.176 l 224.867 187.176 l 224.867 187.18 l 224.871 187.18 l 224.879
+ 187.188 l 224.879 187.191 l 224.883 187.191 l 224.891 187.199 l 224.895
+ 187.199 l 224.895 187.203 l 224.898 187.203 l 224.898 187.207 l 224.902
+ 187.211 l 224.906 187.211 l 224.906 187.215 l 224.91 187.215 l 224.93 187.234
+ l 224.934 187.234 l 224.934 187.238 l 224.938 187.238 l 224.945 187.246
+ l 224.945 187.25 l 224.949 187.25 l 224.957 187.258 l 224.961 187.258 l
+ 224.961 187.262 l 224.965 187.262 l 224.965 187.266 l 224.969 187.27 l 
+224.973 187.27 l 224.973 187.273 l 224.977 187.273 l 224.984 187.281 l 224.984
+ 187.285 l 224.988 187.285 l 224.996 187.293 l 225 187.293 l 225 187.297
+ l 225.004 187.297 l 225.004 187.301 l 225.008 187.305 l 225.012 187.305
+ l 225.012 187.309 l 225.016 187.309 l 225.035 187.328 l 225.039 187.328
+ l 225.039 187.332 l 225.043 187.332 l 225.051 187.34 l 225.051 187.344 
+l 225.055 187.344 l 225.062 187.352 l 225.066 187.352 l 225.066 187.355 
+l 225.07 187.355 l 225.07 187.359 l 225.074 187.363 l 225.078 187.363 l 
+225.078 187.367 l 225.082 187.367 l 225.102 187.387 l 225.105 187.387 l 
+225.105 187.391 l 225.109 187.391 l 225.109 187.395 l 225.113 187.395 l 
+225.117 187.398 l 225.117 187.402 l 225.121 187.402 l 225.129 187.41 l 225.133
+ 187.41 l 225.133 187.414 l 225.137 187.414 l 225.137 187.418 l 225.141 
+187.422 l 225.145 187.422 l 225.145 187.426 l 225.148 187.426 l 225.168 
+187.445 l 225.172 187.445 l 225.172 187.449 l 225.176 187.449 l 225.176 
+187.453 l 225.18 187.453 l 225.184 187.457 l 225.184 187.461 l 225.188 187.461
+ l 225.199 187.473 l 225.203 187.473 l 225.203 187.477 l 225.207 187.48 
+l 225.211 187.48 l 225.211 187.484 l 225.215 187.484 l 225.215 187.488 l
+ 225.219 187.488 l 225.234 187.504 l 225.238 187.504 l 225.238 187.508 l
+ 225.242 187.508 l 225.242 187.512 l 225.246 187.512 l 225.25 187.516 l 
+225.25 187.52 l 225.254 187.52 l 225.266 187.531 l 225.27 187.531 l 225.27
+ 187.535 l 225.273 187.539 l 225.277 187.539 l 225.277 187.543 l 225.281
+ 187.543 l 225.281 187.547 l 225.285 187.547 l 225.305 187.566 l 225.309
+ 187.566 l 225.309 187.57 l 225.312 187.57 l 225.316 187.574 l 225.316 187.578
+ l 225.32 187.578 l 225.332 187.59 l 225.336 187.59 l 225.336 187.594 l 
+225.34 187.598 l 225.344 187.598 l 225.344 187.602 l 225.348 187.602 l 225.348
+ 187.605 l 225.352 187.605 l 225.371 187.625 l 225.375 187.625 l 225.375
+ 187.629 l 225.379 187.629 l 225.383 187.633 l 225.383 187.637 l 225.387
+ 187.637 l 225.387 187.641 l 225.391 187.641 l 225.398 187.648 l 225.402
+ 187.648 l 225.402 187.652 l 225.41 187.66 l 225.414 187.66 l 225.414 187.664
+ l 225.418 187.664 l 225.426 187.672 l 225.43 187.672 l 225.43 187.676 l
+ 225.438 187.684 l 225.441 187.684 l 225.441 187.688 l 225.445 187.688 l
+ 225.453 187.695 l 225.453 187.699 l 225.457 187.699 l 225.465 187.707 l
+ 225.469 187.707 l 225.469 187.711 l 225.473 187.711 l 225.473 187.715 l
+ 225.477 187.719 l 225.48 187.719 l 225.48 187.723 l 225.484 187.723 l 225.504
+ 187.742 l 225.508 187.742 l 225.508 187.746 l 225.512 187.746 l 225.531
+ 187.766 l 225.535 187.766 l 225.535 187.77 l 225.539 187.77 l 225.539 187.773
+ l 225.543 187.773 l 225.547 187.777 l 225.547 187.781 l 225.551 187.781
+ l 225.562 187.793 l 225.566 187.793 l 225.566 187.797 l 225.57 187.801 
+l 225.574 187.801 l 225.574 187.805 l 225.578 187.805 l 225.578 187.809 
+l 225.582 187.809 l 225.602 187.828 l 225.605 187.828 l 225.605 187.832 
+l 225.609 187.832 l 225.629 187.852 l 225.633 187.852 l 225.633 187.855 
+l 225.637 187.855 l 225.641 187.859 l 225.641 187.863 l 225.645 187.863 
+l 225.645 187.867 l 225.648 187.867 l 225.656 187.875 l 225.66 187.875 l
+ 225.66 187.879 l 225.664 187.879 l 225.664 187.883 l 225.668 187.887 l 
+225.672 187.887 l 225.672 187.891 l 225.676 187.891 l 225.695 187.91 l 225.699
+ 187.91 l 225.699 187.914 l 225.703 187.914 l 225.711 187.922 l 225.711 
+187.926 l 225.715 187.926 l 225.723 187.934 l 225.727 187.934 l 225.727 
+187.938 l 225.73 187.938 l 225.73 187.941 l 225.734 187.941 l 225.738 187.945
+ l 225.738 187.949 l 225.742 187.949 l 225.754 187.961 l 225.758 187.961
+ l 225.758 187.965 l 225.762 187.969 l 225.766 187.969 l 225.766 187.973
+ l 225.77 187.973 l 225.77 187.977 l 225.773 187.977 l 225.781 187.984 l
+ 225.785 187.984 l 225.785 187.988 l 225.793 187.996 l 225.797 187.996 l
+ 225.797 188 l 225.801 188 l 225.82 188.02 l 225.824 188.02 l 225.824 188.023
+ l 225.828 188.023 l 225.836 188.031 l 225.836 188.035 l 225.84 188.035 
+l 225.848 188.043 l 225.852 188.043 l 225.852 188.047 l 225.855 188.047 
+l 225.855 188.051 l 225.859 188.051 l 225.863 188.055 l 225.863 188.059 
+l 225.867 188.059 l 225.879 188.07 l 225.883 188.07 l 225.883 188.074 l 
+225.887 188.078 l 225.891 188.078 l 225.891 188.082 l 225.895 188.082 l 
+225.906 188.094 l 225.91 188.094 l 225.91 188.098 l 225.914 188.102 l 225.918
+ 188.102 l 225.918 188.105 l 225.922 188.105 l 225.922 188.109 l 225.926
+ 188.109 l 225.934 188.117 l 225.938 188.117 l 225.938 188.121 l 225.945
+ 188.129 l 225.949 188.129 l 225.949 188.133 l 225.953 188.133 l 225.961
+ 188.141 l 225.961 188.145 l 225.965 188.145 l 225.973 188.152 l 225.977
+ 188.152 l 225.977 188.156 l 225.98 188.156 l 225.98 188.16 l 225.984 188.16
+ l 225.988 188.164 l 225.988 188.168 l 225.992 188.168 l 226 188.176 l 226.004
+ 188.176 l 226.004 188.18 l 226.008 188.18 l 226.008 188.184 l 226.012 188.184
+ l 226.016 188.188 l 226.016 188.191 l 226.02 188.191 l 226.031 188.203 
+l 226.035 188.203 l 226.035 188.207 l 226.039 188.207 l 226.043 188.211 
+l 226.043 188.215 l 226.047 188.215 l 226.047 188.219 l 226.051 188.219 
+l 226.059 188.227 l 226.062 188.227 l 226.062 188.23 l 226.07 188.238 l 
+226.074 188.238 l 226.074 188.242 l 226.078 188.242 l 226.086 188.25 l 226.09
+ 188.25 l 226.09 188.254 l 226.098 188.262 l 226.102 188.262 l 226.102 188.266
+ l 226.105 188.266 l 226.125 188.285 l 226.129 188.285 l 226.129 188.289
+ l 226.133 188.289 l 226.133 188.293 l 226.137 188.293 l 226.156 188.312
+ l 226.16 188.312 l 226.16 188.316 l 226.164 188.316 l 226.172 188.324 l
+ 226.172 188.328 l 226.176 188.328 l 226.184 188.336 l 226.188 188.336 l
+ 226.188 188.34 l 226.191 188.34 l 226.199 188.348 l 226.199 188.352 l 226.203
+ 188.352 l 226.211 188.359 l 226.215 188.359 l 226.215 188.363 l 226.219
+ 188.363 l 226.219 188.367 l 226.223 188.367 l 226.227 188.371 l 226.227
+ 188.375 l 226.23 188.375 l 226.242 188.387 l 226.246 188.387 l 226.246 
+188.391 l 226.25 188.391 l 226.254 188.395 l 226.254 188.398 l 226.258 188.398
+ l 226.258 188.402 l 226.262 188.402 l 226.27 188.41 l 226.273 188.41 l 
+226.273 188.414 l 226.277 188.414 l 226.277 188.418 l 226.281 188.422 l 
+226.285 188.422 l 226.285 188.426 l 226.289 188.426 l 226.297 188.434 l 
+226.301 188.434 l 226.301 188.438 l 226.305 188.438 l 226.305 188.441 l 
+226.309 188.445 l 226.312 188.445 l 226.312 188.449 l 226.316 188.449 l 
+226.328 188.461 l 226.332 188.461 l 226.332 188.465 l 226.336 188.469 l 
+226.34 188.469 l 226.34 188.473 l 226.344 188.473 l 226.344 188.477 l 226.348
+ 188.477 l 226.355 188.484 l 226.359 188.484 l 226.359 188.488 l 226.367
+ 188.496 l 226.371 188.496 l 226.371 188.5 l 226.375 188.5 l 226.383 188.508
+ l 226.387 188.508 l 226.387 188.512 l 226.391 188.512 l 226.391 188.516
+ l 226.395 188.52 l 226.398 188.52 l 226.398 188.523 l 226.402 188.523 l
+ 226.414 188.535 l 226.418 188.535 l 226.418 188.539 l 226.422 188.543 l
+ 226.426 188.543 l 226.426 188.547 l 226.43 188.547 l 226.43 188.551 l 226.434
+ 188.551 l 226.441 188.559 l 226.445 188.559 l 226.445 188.562 l 226.453
+ 188.57 l 226.457 188.57 l 226.457 188.574 l 226.461 188.574 l 226.48 188.594
+ l 226.484 188.594 l 226.484 188.598 l 226.488 188.598 l 226.5 188.609 l
+ 226.504 188.609 l 226.504 188.613 l 226.508 188.617 l 226.512 188.617 l
+ 226.512 188.621 l 226.516 188.621 l 226.516 188.625 l 226.52 188.625 l 
+226.527 188.633 l 226.531 188.633 l 226.531 188.637 l 226.539 188.645 l 
+226.543 188.645 l 226.543 188.648 l 226.547 188.648 l 226.559 188.66 l 226.562
+ 188.66 l 226.562 188.664 l 226.566 188.668 l 226.57 188.668 l 226.57 188.672
+ l 226.574 188.672 l 226.586 188.684 l 226.59 188.684 l 226.59 188.688 l
+ 226.594 188.691 l 226.598 188.691 l 226.598 188.695 l 226.602 188.695 l
+ 226.602 188.699 l 226.605 188.699 l 226.613 188.707 l 226.617 188.707 l
+ 226.617 188.711 l 226.621 188.711 l 226.621 188.715 l 226.625 188.719 l
+ 226.629 188.719 l 226.629 188.723 l 226.633 188.723 l 226.645 188.734 l
+ 226.648 188.734 l 226.648 188.738 l 226.652 188.742 l 226.656 188.742 l
+ 226.656 188.746 l 226.66 188.746 l 226.66 188.75 l 226.664 188.75 l 226.672
+ 188.758 l 226.676 188.758 l 226.676 188.762 l 226.68 188.762 l 226.684 
+188.766 l 226.684 188.77 l 226.688 188.77 l 226.688 188.773 l 226.691 188.773
+ l 226.699 188.781 l 226.703 188.781 l 226.703 188.785 l 226.707 188.785
+ l 226.707 188.789 l 226.711 188.793 l 226.715 188.793 l 226.715 188.797
+ l 226.719 188.797 l 226.73 188.809 l 226.734 188.809 l 226.734 188.812 
+l 226.738 188.812 l 226.742 188.816 l 226.742 188.82 l 226.746 188.82 l 
+226.746 188.824 l 226.75 188.824 l 226.758 188.832 l 226.762 188.832 l 226.762
+ 188.836 l 226.766 188.836 l 226.773 188.844 l 226.773 188.848 l 226.777
+ 188.848 l 226.785 188.855 l 226.789 188.855 l 226.789 188.859 l 226.793
+ 188.859 l 226.793 188.863 l 226.797 188.863 l 226.816 188.883 l 226.82 
+188.883 l 226.82 188.887 l 226.824 188.887 l 226.844 188.906 l 226.848 188.906
+ l 226.848 188.91 l 226.852 188.91 l 226.852 188.914 l 226.855 188.914 l
+ 226.871 188.93 l 226.875 188.93 l 226.875 188.934 l 226.879 188.934 l 226.879
+ 188.938 l 226.883 188.938 l 226.891 188.945 l 226.895 188.945 l 226.895
+ 188.949 l 226.902 188.957 l 226.906 188.957 l 226.906 188.961 l 226.91 
+188.961 l 226.922 188.973 l 226.926 188.973 l 226.926 188.977 l 226.93 188.98
+ l 226.934 188.98 l 226.934 188.984 l 226.938 188.984 l 226.938 188.988 
+l 226.941 188.988 l 226.949 188.996 l 226.953 188.996 l 226.953 189 l 226.957
+ 189 l 226.961 189.004 l 226.961 189.008 l 226.965 189.008 l 226.965 189.012
+ l 226.969 189.012 l 226.977 189.02 l 226.98 189.02 l 226.98 189.023 l 226.984
+ 189.023 l 226.984 189.027 l 226.988 189.027 l 227.008 189.047 l 227.012
+ 189.047 l 227.012 189.051 l 227.016 189.051 l 227.035 189.07 l 227.039 
+189.07 l 227.039 189.074 l 227.043 189.074 l 227.043 189.078 l 227.047 189.078
+ l 227.055 189.086 l 227.059 189.086 l 227.059 189.09 l 227.062 189.094 
+l 227.066 189.094 l 227.066 189.098 l 227.07 189.098 l 227.07 189.102 l 
+227.074 189.102 l 227.082 189.109 l 227.086 189.109 l 227.086 189.113 l 
+227.09 189.113 l 227.09 189.117 l 227.094 189.121 l 227.098 189.121 l 227.098
+ 189.125 l 227.102 189.125 l 227.113 189.137 l 227.117 189.137 l 227.117
+ 189.141 l 227.121 189.141 l 227.125 189.145 l 227.125 189.148 l 227.129
+ 189.148 l 227.129 189.152 l 227.133 189.152 l 227.141 189.16 l 227.145 
+189.16 l 227.145 189.164 l 227.148 189.164 l 227.168 189.184 l 227.172 189.184
+ l 227.172 189.188 l 227.176 189.188 l 227.176 189.191 l 227.18 189.191 
+l 227.188 189.199 l 227.191 189.199 l 227.191 189.203 l 227.199 189.211 
+l 227.203 189.211 l 227.203 189.215 l 227.207 189.215 l 227.219 189.227 
+l 227.223 189.227 l 227.223 189.23 l 227.227 189.23 l 227.23 189.234 l 227.23
+ 189.238 l 227.234 189.238 l 227.234 189.242 l 227.238 189.242 l 227.246
+ 189.25 l 227.25 189.25 l 227.25 189.254 l 227.254 189.254 l 227.262 189.262
+ l 227.262 189.266 l 227.266 189.266 l 227.273 189.273 l 227.277 189.273
+ l 227.277 189.277 l 227.281 189.277 l 227.281 189.281 l 227.285 189.281
+ l 227.293 189.289 l 227.297 189.289 l 227.297 189.293 l 227.305 189.301
+ l 227.309 189.301 l 227.309 189.305 l 227.312 189.305 l 227.324 189.316
+ l 227.328 189.316 l 227.328 189.32 l 227.332 189.32 l 227.336 189.324 l
+ 227.336 189.328 l 227.34 189.328 l 227.352 189.34 l 227.355 189.34 l 227.355
+ 189.344 l 227.359 189.344 l 227.379 189.363 l 227.383 189.363 l 227.383
+ 189.367 l 227.387 189.367 l 227.387 189.371 l 227.391 189.371 l 227.398
+ 189.379 l 227.402 189.379 l 227.402 189.383 l 227.406 189.383 l 227.406
+ 189.387 l 227.41 189.391 l 227.414 189.391 l 227.414 189.395 l 227.418 
+189.395 l 227.43 189.406 l 227.434 189.406 l 227.434 189.41 l 227.438 189.41
+ l 227.457 189.43 l 227.461 189.43 l 227.461 189.434 l 227.465 189.434 l
+ 227.477 189.445 l 227.48 189.445 l 227.48 189.449 l 227.484 189.453 l 227.488
+ 189.453 l 227.488 189.457 l 227.492 189.457 l 227.492 189.461 l 227.496
+ 189.461 l 227.504 189.469 l 227.508 189.469 l 227.508 189.473 l 227.512
+ 189.473 l 227.512 189.477 l 227.516 189.477 l 227.52 189.48 l 227.52 189.484
+ l 227.523 189.484 l 227.531 189.492 l 227.535 189.492 l 227.535 189.496
+ l 227.539 189.496 l 227.539 189.5 l 227.543 189.5 l 227.551 189.508 l 227.555
+ 189.508 l 227.555 189.512 l 227.562 189.52 l 227.566 189.52 l 227.566 189.523
+ l 227.57 189.523 l 227.582 189.535 l 227.586 189.535 l 227.586 189.539 
+l 227.59 189.539 l 227.594 189.543 l 227.594 189.547 l 227.598 189.547 l
+ 227.598 189.551 l 227.602 189.551 l 227.609 189.559 l 227.613 189.559 l
+ 227.613 189.562 l 227.617 189.562 l 227.617 189.566 l 227.621 189.566 l
+ 227.629 189.574 l 227.633 189.574 l 227.633 189.578 l 227.637 189.582 l
+ 227.641 189.582 l 227.641 189.586 l 227.645 189.586 l 227.645 189.59 l 
+227.648 189.59 l 227.656 189.598 l 227.66 189.598 l 227.66 189.602 l 227.664
+ 189.602 l 227.664 189.605 l 227.668 189.605 l 227.672 189.609 l 227.672
+ 189.613 l 227.676 189.613 l 227.688 189.625 l 227.691 189.625 l 227.691
+ 189.629 l 227.695 189.629 l 227.707 189.641 l 227.711 189.641 l 227.711
+ 189.645 l 227.715 189.648 l 227.719 189.648 l 227.719 189.652 l 227.723
+ 189.652 l 227.734 189.664 l 227.738 189.664 l 227.738 189.668 l 227.742
+ 189.668 l 227.75 189.676 l 227.75 189.68 l 227.754 189.68 l 227.762 189.688
+ l 227.766 189.688 l 227.766 189.691 l 227.77 189.691 l 227.77 189.695 l
+ 227.773 189.695 l 227.781 189.703 l 227.785 189.703 l 227.785 189.707 l
+ 227.789 189.707 l 227.789 189.711 l 227.793 189.715 l 227.797 189.715 l
+ 227.797 189.719 l 227.801 189.719 l 227.812 189.73 l 227.816 189.73 l 227.816
+ 189.734 l 227.82 189.734 l 227.828 189.742 l 227.832 189.742 l 227.832 
+189.746 l 227.84 189.754 l 227.844 189.754 l 227.844 189.758 l 227.848 189.758
+ l 227.859 189.77 l 227.863 189.77 l 227.863 189.773 l 227.867 189.773 l
+ 227.875 189.781 l 227.875 189.785 l 227.879 189.785 l 227.887 189.793 l
+ 227.891 189.793 l 227.891 189.797 l 227.895 189.797 l 227.895 189.801 l
+ 227.898 189.801 l 227.906 189.809 l 227.91 189.809 l 227.91 189.812 l 227.914
+ 189.812 l 227.918 189.816 l 227.918 189.82 l 227.922 189.82 l 227.922 189.824
+ l 227.926 189.824 l 227.934 189.832 l 227.938 189.832 l 227.938 189.836
+ l 227.941 189.836 l 227.941 189.84 l 227.945 189.84 l 227.953 189.848 l
+ 227.957 189.848 l 227.957 189.852 l 227.961 189.852 l 227.961 189.855 l
+ 227.965 189.859 l 227.969 189.859 l 227.969 189.863 l 227.973 189.863 l
+ 227.984 189.875 l 227.988 189.875 l 227.988 189.879 l 227.992 189.879 l
+ 228.012 189.898 l 228.016 189.898 l 228.016 189.902 l 228.02 189.902 l 
+228.031 189.914 l 228.035 189.914 l 228.035 189.918 l 228.039 189.918 l 
+228.059 189.938 l 228.062 189.938 l 228.062 189.941 l 228.066 189.941 l 
+228.066 189.945 l 228.07 189.945 l 228.078 189.953 l 228.082 189.953 l 228.082
+ 189.957 l 228.086 189.957 l 228.086 189.961 l 228.09 189.961 l 228.094 
+189.965 l 228.094 189.969 l 228.098 189.969 l 228.105 189.977 l 228.109 
+189.977 l 228.109 189.98 l 228.113 189.98 l 228.113 189.984 l 228.117 189.984
+ l 228.125 189.992 l 228.129 189.992 l 228.129 189.996 l 228.133 189.996
+ l 228.133 190 l 228.137 190 l 228.141 190.004 l 228.141 190.008 l 228.145
+ 190.008 l 228.156 190.02 l 228.16 190.02 l 228.16 190.023 l 228.164 190.023
+ l 228.176 190.035 l 228.18 190.035 l 228.18 190.039 l 228.184 190.039 l
+ 228.188 190.043 l 228.188 190.047 l 228.191 190.047 l 228.191 190.051 l
+ 228.195 190.051 l 228.203 190.059 l 228.207 190.059 l 228.207 190.062 l
+ 228.211 190.062 l 228.223 190.074 l 228.227 190.074 l 228.227 190.078 l
+ 228.23 190.078 l 228.234 190.082 l 228.234 190.086 l 228.238 190.086 l 
+228.238 190.09 l 228.242 190.09 l 228.25 190.098 l 228.254 190.098 l 228.254
+ 190.102 l 228.258 190.102 l 228.258 190.105 l 228.262 190.105 l 228.27 
+190.113 l 228.273 190.113 l 228.273 190.117 l 228.277 190.117 l 228.277 
+190.121 l 228.281 190.121 l 228.285 190.125 l 228.285 190.129 l 228.289 
+190.129 l 228.297 190.137 l 228.301 190.137 l 228.301 190.141 l 228.305 
+190.141 l 228.305 190.145 l 228.309 190.145 l 228.316 190.152 l 228.32 190.152
+ l 228.32 190.156 l 228.324 190.156 l 228.324 190.16 l 228.328 190.16 l 
+228.332 190.164 l 228.332 190.168 l 228.336 190.168 l 228.348 190.18 l 228.352
+ 190.18 l 228.352 190.184 l 228.355 190.184 l 228.367 190.195 l 228.371 
+190.195 l 228.371 190.199 l 228.375 190.199 l 228.383 190.207 l 228.383 
+190.211 l 228.387 190.211 l 228.395 190.219 l 228.398 190.219 l 228.398 
+190.223 l 228.402 190.223 l 228.414 190.234 l 228.418 190.234 l 228.418 
+190.238 l 228.422 190.238 l 228.441 190.258 l 228.445 190.258 l 228.445 
+190.262 l 228.449 190.262 l 228.449 190.266 l 228.453 190.266 l 228.461 
+190.273 l 228.465 190.273 l 228.465 190.277 l 228.469 190.277 l 228.469 
+190.281 l 228.473 190.281 l 228.48 190.289 l 228.484 190.289 l 228.484 190.293
+ l 228.488 190.297 l 228.492 190.297 l 228.492 190.301 l 228.496 190.301
+ l 228.496 190.305 l 228.5 190.305 l 228.508 190.312 l 228.512 190.312 l
+ 228.512 190.316 l 228.516 190.316 l 228.516 190.32 l 228.52 190.32 l 228.527
+ 190.328 l 228.531 190.328 l 228.531 190.332 l 228.535 190.332 l 228.535
+ 190.336 l 228.539 190.336 l 228.543 190.34 l 228.543 190.344 l 228.547 
+190.344 l 228.559 190.355 l 228.562 190.355 l 228.562 190.359 l 228.566 
+190.359 l 228.578 190.371 l 228.582 190.371 l 228.582 190.375 l 228.586 
+190.375 l 228.605 190.395 l 228.609 190.395 l 228.609 190.398 l 228.613 
+190.398 l 228.625 190.41 l 228.629 190.41 l 228.629 190.414 l 228.633 190.414
+ l 228.645 190.426 l 228.648 190.426 l 228.648 190.43 l 228.652 190.434 
+l 228.656 190.434 l 228.656 190.438 l 228.66 190.438 l 228.66 190.441 l 
+228.664 190.441 l 228.672 190.449 l 228.676 190.449 l 228.676 190.453 l 
+228.68 190.453 l 228.691 190.465 l 228.695 190.465 l 228.695 190.469 l 228.699
+ 190.469 l 228.707 190.477 l 228.707 190.48 l 228.711 190.48 l 228.719 190.488
+ l 228.723 190.488 l 228.723 190.492 l 228.727 190.492 l 228.727 190.496
+ l 228.73 190.496 l 228.738 190.504 l 228.742 190.504 l 228.742 190.508 
+l 228.746 190.508 l 228.746 190.512 l 228.75 190.512 l 228.758 190.52 l 
+228.762 190.52 l 228.762 190.523 l 228.766 190.523 l 228.766 190.527 l 228.77
+ 190.531 l 228.773 190.531 l 228.773 190.535 l 228.777 190.535 l 228.785
+ 190.543 l 228.789 190.543 l 228.789 190.547 l 228.793 190.547 l 228.793
+ 190.551 l 228.797 190.551 l 228.805 190.559 l 228.809 190.559 l 228.809
+ 190.562 l 228.812 190.562 l 228.812 190.566 l 228.816 190.566 l 228.824
+ 190.574 l 228.828 190.574 l 228.828 190.578 l 228.836 190.586 l 228.84 
+190.586 l 228.84 190.59 l 228.844 190.59 l 228.855 190.602 l 228.859 190.602
+ l 228.859 190.605 l 228.863 190.605 l 228.871 190.613 l 228.875 190.613
+ l 228.875 190.617 l 228.879 190.617 l 228.879 190.621 l 228.883 190.621
+ l 228.902 190.641 l 228.906 190.641 l 228.906 190.645 l 228.91 190.645 
+l 228.922 190.656 l 228.926 190.656 l 228.926 190.66 l 228.93 190.66 l 228.941
+ 190.672 l 228.945 190.672 l 228.945 190.676 l 228.949 190.676 l 228.957
+ 190.684 l 228.957 190.688 l 228.961 190.688 l 228.969 190.695 l 228.973
+ 190.695 l 228.973 190.699 l 228.977 190.699 l 228.988 190.711 l 228.992
+ 190.711 l 228.992 190.715 l 228.996 190.715 l 229.008 190.727 l 229.012
+ 190.727 l 229.012 190.73 l 229.016 190.73 l 229.023 190.738 l 229.023 190.742
+ l 229.027 190.742 l 229.035 190.75 l 229.039 190.75 l 229.039 190.754 l
+ 229.043 190.754 l 229.043 190.758 l 229.047 190.758 l 229.055 190.766 l
+ 229.059 190.766 l 229.059 190.77 l 229.062 190.77 l 229.062 190.773 l 229.066
+ 190.773 l 229.074 190.781 l 229.078 190.781 l 229.078 190.785 l 229.082
+ 190.785 l 229.102 190.805 l 229.105 190.805 l 229.105 190.809 l 229.109
+ 190.809 l 229.109 190.812 l 229.113 190.812 l 229.121 190.82 l 229.125 
+190.82 l 229.125 190.824 l 229.129 190.824 l 229.129 190.828 l 229.133 190.828
+ l 229.141 190.836 l 229.145 190.836 l 229.145 190.84 l 229.148 190.84 l
+ 229.148 190.844 l 229.152 190.844 l 229.16 190.852 l 229.164 190.852 l 
+229.164 190.855 l 229.168 190.859 l 229.172 190.859 l 229.172 190.863 l 
+229.176 190.863 l 229.176 190.867 l 229.18 190.867 l 229.188 190.875 l 229.191
+ 190.875 l 229.191 190.879 l 229.195 190.879 l 229.195 190.883 l 229.199
+ 190.883 l 229.207 190.891 l 229.211 190.891 l 229.211 190.895 l 229.215
+ 190.895 l 229.215 190.898 l 229.219 190.898 l 229.227 190.906 l 229.23 
+190.906 l 229.23 190.91 l 229.234 190.91 l 229.234 190.914 l 229.238 190.914
+ l 229.242 190.918 l 229.242 190.922 l 229.246 190.922 l 229.258 190.934
+ l 229.262 190.934 l 229.262 190.938 l 229.266 190.938 l 229.273 190.945
+ l 229.277 190.945 l 229.277 190.949 l 229.281 190.949 l 229.281 190.953
+ l 229.285 190.953 l 229.293 190.961 l 229.297 190.961 l 229.297 190.965
+ l 229.301 190.965 l 229.301 190.969 l 229.305 190.969 l 229.312 190.977
+ l 229.316 190.977 l 229.316 190.98 l 229.32 190.98 l 229.32 190.984 l 229.324
+ 190.988 l 229.328 190.988 l 229.328 190.992 l 229.332 190.992 l 229.344
+ 191.004 l 229.348 191.004 l 229.348 191.008 l 229.352 191.008 l 229.359
+ 191.016 l 229.363 191.016 l 229.363 191.02 l 229.367 191.02 l 229.367 191.023
+ l 229.371 191.023 l 229.379 191.031 l 229.383 191.031 l 229.383 191.035
+ l 229.387 191.035 l 229.387 191.039 l 229.391 191.039 l 229.398 191.047
+ l 229.402 191.047 l 229.402 191.051 l 229.41 191.059 l 229.414 191.059 
+l 229.414 191.062 l 229.418 191.062 l 229.43 191.074 l 229.434 191.074 l
+ 229.434 191.078 l 229.438 191.078 l 229.449 191.09 l 229.453 191.09 l 229.453
+ 191.094 l 229.457 191.094 l 229.465 191.102 l 229.469 191.102 l 229.469
+ 191.105 l 229.473 191.105 l 229.473 191.109 l 229.477 191.109 l 229.484
+ 191.117 l 229.488 191.117 l 229.488 191.121 l 229.492 191.121 l 229.492
+ 191.125 l 229.496 191.129 l 229.5 191.129 l 229.5 191.133 l 229.504 191.133
+ l 229.516 191.145 l 229.52 191.145 l 229.52 191.148 l 229.523 191.148 l
+ 229.535 191.16 l 229.539 191.16 l 229.539 191.164 l 229.543 191.164 l 229.551
+ 191.172 l 229.555 191.172 l 229.555 191.176 l 229.559 191.176 l 229.559
+ 191.18 l 229.562 191.18 l 229.57 191.188 l 229.574 191.188 l 229.574 191.191
+ l 229.578 191.191 l 229.578 191.195 l 229.582 191.195 l 229.586 191.199
+ l 229.586 191.203 l 229.59 191.203 l 229.602 191.215 l 229.605 191.215 
+l 229.605 191.219 l 229.609 191.219 l 229.621 191.23 l 229.625 191.23 l 
+229.625 191.234 l 229.629 191.234 l 229.641 191.246 l 229.645 191.246 l 
+229.645 191.25 l 229.648 191.25 l 229.656 191.258 l 229.66 191.258 l 229.66
+ 191.262 l 229.664 191.262 l 229.664 191.266 l 229.668 191.266 l 229.676
+ 191.273 l 229.68 191.273 l 229.68 191.277 l 229.684 191.277 l 229.684 191.281
+ l 229.688 191.285 l 229.691 191.285 l 229.691 191.289 l 229.695 191.289
+ l 229.707 191.301 l 229.711 191.301 l 229.711 191.305 l 229.715 191.305
+ l 229.727 191.316 l 229.73 191.316 l 229.73 191.32 l 229.734 191.32 l 229.742
+ 191.328 l 229.746 191.328 l 229.746 191.332 l 229.75 191.332 l 229.75 191.336
+ l 229.754 191.336 l 229.762 191.344 l 229.766 191.344 l 229.766 191.348
+ l 229.77 191.348 l 229.77 191.352 l 229.773 191.352 l 229.781 191.359 l
+ 229.785 191.359 l 229.785 191.363 l 229.789 191.363 l 229.789 191.367 l
+ 229.793 191.367 l 229.797 191.371 l 229.797 191.375 l 229.801 191.375 l
+ 229.812 191.387 l 229.816 191.387 l 229.816 191.391 l 229.82 191.391 l 
+229.832 191.402 l 229.836 191.402 l 229.836 191.406 l 229.84 191.406 l 229.848
+ 191.414 l 229.852 191.414 l 229.852 191.418 l 229.855 191.418 l 229.855
+ 191.422 l 229.859 191.422 l 229.867 191.43 l 229.871 191.43 l 229.871 191.434
+ l 229.875 191.434 l 229.875 191.438 l 229.879 191.438 l 229.887 191.445
+ l 229.891 191.445 l 229.891 191.449 l 229.895 191.449 l 229.895 191.453
+ l 229.898 191.453 l 229.906 191.461 l 229.91 191.461 l 229.91 191.465 l
+ 229.914 191.465 l 229.914 191.469 l 229.918 191.469 l 229.922 191.473 l
+ 229.922 191.477 l 229.926 191.477 l 229.934 191.484 l 229.938 191.484 l
+ 229.938 191.488 l 229.941 191.488 l 229.941 191.492 l 229.945 191.492 l
+ 229.953 191.5 l 229.957 191.5 l 229.957 191.504 l 229.961 191.504 l 229.961
+ 191.508 l 229.965 191.508 l 229.973 191.516 l 229.977 191.516 l 229.977
+ 191.52 l 229.98 191.52 l 229.98 191.523 l 229.984 191.523 l 229.992 191.531
+ l 229.996 191.531 l 229.996 191.535 l 230 191.535 l 230 191.539 l 230.004
+ 191.539 l 230.012 191.547 l 230.016 191.547 l 230.016 191.551 l 230.02 
+191.551 l 230.02 191.555 l 230.023 191.555 l 230.031 191.562 l 230.035 191.562
+ l 230.035 191.566 l 230.039 191.566 l 230.051 191.578 l 230.055 191.578
+ l 230.055 191.582 l 230.059 191.582 l 230.062 191.586 l 230.062 191.59 
+l 230.066 191.59 l 230.066 191.594 l 230.07 191.594 l 230.078 191.602 l 
+230.082 191.602 l 230.082 191.605 l 230.086 191.605 l 230.086 191.609 l 
+230.09 191.609 l 230.098 191.617 l 230.102 191.617 l 230.102 191.621 l 230.105
+ 191.621 l 230.105 191.625 l 230.109 191.625 l 230.117 191.633 l 230.121
+ 191.633 l 230.121 191.637 l 230.125 191.637 l 230.137 191.648 l 230.141
+ 191.648 l 230.141 191.652 l 230.145 191.652 l 230.156 191.664 l 230.16 
+191.664 l 230.16 191.668 l 230.164 191.668 l 230.176 191.68 l 230.18 191.68
+ l 230.18 191.684 l 230.184 191.684 l 230.195 191.695 l 230.199 191.695 
+l 230.199 191.699 l 230.203 191.699 l 230.215 191.711 l 230.219 191.711 
+l 230.219 191.715 l 230.223 191.715 l 230.242 191.734 l 230.246 191.734 
+l 230.246 191.738 l 230.25 191.738 l 230.262 191.75 l 230.266 191.75 l 230.266
+ 191.754 l 230.27 191.754 l 230.281 191.766 l 230.285 191.766 l 230.285 
+191.77 l 230.289 191.77 l 230.301 191.781 l 230.305 191.781 l 230.305 191.785
+ l 230.309 191.785 l 230.316 191.793 l 230.32 191.793 l 230.32 191.797 l
+ 230.324 191.797 l 230.324 191.801 l 230.328 191.801 l 230.336 191.809 l
+ 230.34 191.809 l 230.34 191.812 l 230.344 191.812 l 230.344 191.816 l 230.348
+ 191.816 l 230.355 191.824 l 230.359 191.824 l 230.359 191.828 l 230.363
+ 191.828 l 230.363 191.832 l 230.367 191.832 l 230.375 191.84 l 230.379 
+191.84 l 230.379 191.844 l 230.383 191.844 l 230.383 191.848 l 230.387 191.848
+ l 230.395 191.855 l 230.398 191.855 l 230.398 191.859 l 230.402 191.859
+ l 230.402 191.863 l 230.406 191.863 l 230.414 191.871 l 230.418 191.871
+ l 230.418 191.875 l 230.422 191.875 l 230.434 191.887 l 230.438 191.887
+ l 230.438 191.891 l 230.441 191.891 l 230.453 191.902 l 230.457 191.902
+ l 230.457 191.906 l 230.461 191.91 l 230.465 191.91 l 230.465 191.914 l
+ 230.469 191.914 l 230.469 191.918 l 230.473 191.918 l 230.48 191.926 l 
+230.484 191.926 l 230.484 191.93 l 230.488 191.93 l 230.488 191.934 l 230.492
+ 191.934 l 230.5 191.941 l 230.504 191.941 l 230.504 191.945 l 230.508 191.945
+ l 230.52 191.957 l 230.523 191.957 l 230.523 191.961 l 230.527 191.961 
+l 230.539 191.973 l 230.543 191.973 l 230.543 191.977 l 230.547 191.977 
+l 230.559 191.988 l 230.562 191.988 l 230.562 191.992 l 230.566 191.992 
+l 230.578 192.004 l 230.582 192.004 l 230.582 192.008 l 230.586 192.008 
+l 230.598 192.02 l 230.602 192.02 l 230.602 192.023 l 230.605 192.023 l 
+230.613 192.031 l 230.617 192.031 l 230.617 192.035 l 230.621 192.035 l 
+230.621 192.039 l 230.625 192.039 l 230.633 192.047 l 230.637 192.047 l 
+230.637 192.051 l 230.641 192.051 l 230.641 192.055 l 230.645 192.055 l 
+230.652 192.062 l 230.656 192.062 l 230.656 192.066 l 230.66 192.066 l 230.66
+ 192.07 l 230.664 192.07 l 230.672 192.078 l 230.676 192.078 l 230.676 192.082
+ l 230.68 192.082 l 230.68 192.086 l 230.684 192.086 l 230.691 192.094 l
+ 230.695 192.094 l 230.695 192.098 l 230.699 192.098 l 230.711 192.109 l
+ 230.715 192.109 l 230.715 192.113 l 230.719 192.113 l 230.73 192.125 l 
+230.734 192.125 l 230.734 192.129 l 230.738 192.129 l 230.75 192.141 l 230.754
+ 192.141 l 230.754 192.145 l 230.758 192.145 l 230.77 192.156 l 230.773 
+192.156 l 230.773 192.16 l 230.777 192.16 l 230.789 192.172 l 230.793 192.172
+ l 230.793 192.176 l 230.797 192.176 l 230.805 192.184 l 230.809 192.184
+ l 230.809 192.188 l 230.812 192.188 l 230.812 192.191 l 230.816 192.191
+ l 230.824 192.199 l 230.828 192.199 l 230.828 192.203 l 230.832 192.203
+ l 230.832 192.207 l 230.836 192.207 l 230.844 192.215 l 230.848 192.215
+ l 230.848 192.219 l 230.852 192.219 l 230.852 192.223 l 230.855 192.223
+ l 230.863 192.23 l 230.867 192.23 l 230.867 192.234 l 230.871 192.234 l
+ 230.871 192.238 l 230.875 192.238 l 230.883 192.246 l 230.887 192.246 l
+ 230.887 192.25 l 230.891 192.25 l 230.902 192.262 l 230.906 192.262 l 230.906
+ 192.266 l 230.91 192.266 l 230.922 192.277 l 230.926 192.277 l 230.926 
+192.281 l 230.93 192.281 l 230.941 192.293 l 230.945 192.293 l 230.945 192.297
+ l 230.949 192.297 l 230.961 192.309 l 230.965 192.309 l 230.965 192.312
+ l 230.969 192.312 l 230.98 192.324 l 230.984 192.324 l 230.984 192.328 
+l 230.988 192.328 l 230.996 192.336 l 231 192.336 l 231 192.34 l 231.004
+ 192.34 l 231.004 192.344 l 231.008 192.344 l 231.016 192.352 l 231.02 192.352
+ l 231.02 192.355 l 231.023 192.355 l 231.023 192.359 l 231.027 192.359 
+l 231.035 192.367 l 231.039 192.367 l 231.039 192.371 l 231.043 192.371 
+l 231.043 192.375 l 231.047 192.375 l 231.055 192.383 l 231.059 192.383 
+l 231.059 192.387 l 231.062 192.387 l 231.062 192.391 l 231.066 192.391 
+l 231.074 192.398 l 231.078 192.398 l 231.078 192.402 l 231.082 192.402 
+l 231.094 192.414 l 231.098 192.414 l 231.098 192.418 l 231.102 192.418 
+l 231.113 192.43 l 231.117 192.43 l 231.117 192.434 l 231.121 192.434 l 
+231.133 192.445 l 231.137 192.445 l 231.137 192.449 l 231.141 192.449 l 
+231.152 192.461 l 231.156 192.461 l 231.156 192.465 l 231.16 192.465 l 231.172
+ 192.477 l 231.176 192.477 l 231.176 192.48 l 231.18 192.48 l 231.188 192.488
+ l 231.191 192.488 l 231.191 192.492 l 231.195 192.492 l 231.195 192.496
+ l 231.199 192.496 l 231.207 192.504 l 231.211 192.504 l 231.211 192.508
+ l 231.215 192.508 l 231.215 192.512 l 231.219 192.512 l 231.227 192.52 
+l 231.23 192.52 l 231.23 192.523 l 231.234 192.523 l 231.234 192.527 l 231.238
+ 192.527 l 231.246 192.535 l 231.25 192.535 l 231.25 192.539 l 231.254 192.539
+ l 231.254 192.543 l 231.258 192.543 l 231.266 192.551 l 231.27 192.551 
+l 231.27 192.555 l 231.273 192.555 l 231.285 192.566 l 231.289 192.566 l
+ 231.289 192.57 l 231.293 192.57 l 231.305 192.582 l 231.309 192.582 l 231.309
+ 192.586 l 231.312 192.586 l 231.324 192.598 l 231.328 192.598 l 231.328
+ 192.602 l 231.332 192.602 l 231.344 192.613 l 231.348 192.613 l 231.348
+ 192.617 l 231.352 192.617 l 231.363 192.629 l 231.367 192.629 l 231.367
+ 192.633 l 231.375 192.633 l 231.375 192.637 l 231.379 192.637 l 231.391
+ 192.648 l 231.395 192.648 l 231.395 192.652 l 231.398 192.652 l 231.41 
+192.664 l 231.414 192.664 l 231.414 192.668 l 231.418 192.668 l 231.43 192.68
+ l 231.434 192.68 l 231.434 192.684 l 231.438 192.684 l 231.449 192.695 
+l 231.453 192.695 l 231.453 192.699 l 231.457 192.699 l 231.465 192.707 
+l 231.469 192.707 l 231.469 192.711 l 231.473 192.711 l 231.473 192.715 
+l 231.477 192.715 l 231.484 192.723 l 231.488 192.723 l 231.488 192.727 
+l 231.492 192.727 l 231.492 192.73 l 231.496 192.73 l 231.504 192.738 l 
+231.508 192.738 l 231.508 192.742 l 231.512 192.742 l 231.512 192.746 l 
+231.516 192.746 l 231.523 192.754 l 231.527 192.754 l 231.527 192.758 l 
+231.531 192.758 l 231.531 192.762 l 231.535 192.762 l 231.543 192.77 l 231.547
+ 192.77 l 231.547 192.773 l 231.551 192.773 l 231.551 192.777 l 231.555 
+192.777 l 231.562 192.785 l 231.566 192.785 l 231.566 192.789 l 231.57 192.789
+ l 231.582 192.801 l 231.586 192.801 l 231.586 192.805 l 231.59 192.805 
+l 231.598 192.812 l 231.602 192.812 l 231.609 192.82 l 231.613 192.82 l 
+231.613 192.824 l 231.617 192.824 l 231.617 192.828 l 231.621 192.828 l 
+231.629 192.836 l 231.633 192.836 l 231.633 192.84 l 231.637 192.84 l 231.637
+ 192.844 l 231.641 192.844 l 231.648 192.852 l 231.652 192.852 l 231.652
+ 192.855 l 231.656 192.855 l 231.668 192.867 l 231.672 192.867 l 231.672
+ 192.871 l 231.676 192.871 l 231.688 192.883 l 231.691 192.883 l 231.691
+ 192.887 l 231.695 192.887 l 231.707 192.898 l 231.711 192.898 l 231.711
+ 192.902 l 231.715 192.902 l 231.727 192.914 l 231.73 192.914 l 231.73 192.918
+ l 231.734 192.918 l 231.746 192.93 l 231.75 192.93 l 231.75 192.934 l 231.754
+ 192.934 l 231.762 192.941 l 231.766 192.941 l 231.766 192.945 l 231.77 
+192.945 l 231.773 192.949 l 231.777 192.949 l 231.777 192.953 l 231.781 
+192.953 l 231.793 192.965 l 231.797 192.965 l 231.797 192.969 l 231.801 
+192.969 l 231.812 192.98 l 231.816 192.98 l 231.816 192.984 l 231.82 192.984
+ l 231.832 192.996 l 231.836 192.996 l 231.836 193 l 231.84 193 l 231.852
+ 193.012 l 231.855 193.012 l 231.855 193.016 l 231.859 193.016 l 231.867
+ 193.023 l 231.871 193.023 l 231.871 193.027 l 231.875 193.027 l 231.875
+ 193.031 l 231.879 193.031 l 231.887 193.039 l 231.891 193.039 l 231.891
+ 193.043 l 231.895 193.043 l 231.895 193.047 l 231.898 193.047 l 231.906
+ 193.055 l 231.91 193.055 l 231.91 193.059 l 231.914 193.059 l 231.918 193.062
+ l 231.922 193.062 l 231.922 193.066 l 231.926 193.066 l 231.938 193.078
+ l 231.941 193.078 l 231.941 193.082 l 231.945 193.082 l 231.953 193.09 
+l 231.957 193.09 l 231.957 193.094 l 231.961 193.094 l 231.961 193.098 l
+ 231.965 193.098 l 231.973 193.105 l 231.977 193.105 l 231.977 193.109 l
+ 231.98 193.109 l 231.98 193.113 l 231.984 193.113 l 231.992 193.121 l 231.996
+ 193.121 l 231.996 193.125 l 232 193.125 l 232 193.129 l 232.004 193.129
+ l 232.012 193.137 l 232.016 193.137 l 232.016 193.141 l 232.02 193.141 
+l 232.02 193.145 l 232.023 193.145 l 232.031 193.152 l 232.035 193.152 l
+ 232.035 193.156 l 232.039 193.156 l 232.043 193.16 l 232.047 193.16 l 232.047
+ 193.164 l 232.051 193.164 l 232.059 193.172 l 232.062 193.172 l 232.062
+ 193.176 l 232.066 193.176 l 232.066 193.18 l 232.07 193.18 l 232.078 193.188
+ l 232.082 193.188 l 232.082 193.191 l 232.086 193.191 l 232.086 193.195
+ l 232.09 193.195 l 232.098 193.203 l 232.102 193.203 l 232.102 193.207 
+l 232.105 193.207 l 232.105 193.211 l 232.109 193.211 l 232.117 193.219 
+l 232.121 193.219 l 232.121 193.223 l 232.125 193.223 l 232.125 193.227 
+l 232.129 193.227 l 232.137 193.234 l 232.141 193.234 l 232.141 193.238 
+l 232.145 193.238 l 232.148 193.242 l 232.152 193.242 l 232.152 193.246 
+l 232.156 193.246 l 232.164 193.254 l 232.168 193.254 l 232.168 193.258 
+l 232.172 193.258 l 232.172 193.262 l 232.176 193.262 l 232.184 193.27 l
+ 232.188 193.27 l 232.188 193.273 l 232.191 193.273 l 232.191 193.277 l 
+232.195 193.277 l 232.203 193.285 l 232.207 193.285 l 232.207 193.289 l 
+232.211 193.289 l 232.211 193.293 l 232.215 193.293 l 232.223 193.301 l 
+232.227 193.301 l 232.227 193.305 l 232.23 193.305 l 232.23 193.309 l 232.234
+ 193.309 l 232.242 193.316 l 232.246 193.316 l 232.246 193.32 l 232.254 
+193.32 l 232.254 193.324 l 232.258 193.324 l 232.258 193.328 l 232.262 193.328
+ l 232.27 193.336 l 232.273 193.336 l 232.273 193.34 l 232.277 193.34 l 
+232.277 193.344 l 232.281 193.344 l 232.289 193.352 l 232.293 193.352 l 
+232.293 193.355 l 232.297 193.355 l 232.297 193.359 l 232.301 193.359 l 
+232.309 193.367 l 232.312 193.367 l 232.312 193.371 l 232.316 193.371 l 
+232.316 193.375 l 232.32 193.375 l 232.328 193.383 l 232.332 193.383 l 232.332
+ 193.387 l 232.336 193.387 l 232.344 193.395 l 232.348 193.395 l 232.355
+ 193.402 l 232.359 193.402 l 232.359 193.406 l 232.363 193.406 l 232.363
+ 193.41 l 232.367 193.41 l 232.375 193.418 l 232.379 193.418 l 232.379 193.422
+ l 232.383 193.422 l 232.383 193.426 l 232.387 193.426 l 232.395 193.434
+ l 232.398 193.434 l 232.398 193.438 l 232.402 193.438 l 232.402 193.441
+ l 232.406 193.441 l 232.414 193.449 l 232.418 193.449 l 232.418 193.453
+ l 232.422 193.453 l 232.422 193.457 l 232.426 193.457 l 232.434 193.465
+ l 232.438 193.465 l 232.441 193.469 l 232.445 193.469 l 232.445 193.473
+ l 232.449 193.473 l 232.449 193.477 l 232.453 193.477 l 232.461 193.484
+ l 232.465 193.484 l 232.465 193.488 l 232.469 193.488 l 232.469 193.492
+ l 232.473 193.492 l 232.48 193.5 l 232.484 193.5 l 232.484 193.504 l 232.488
+ 193.504 l 232.488 193.508 l 232.492 193.508 l 232.5 193.516 l 232.504 193.516
+ l 232.504 193.52 l 232.508 193.52 l 232.508 193.523 l 232.512 193.523 l
+ 232.52 193.531 l 232.523 193.531 l 232.527 193.535 l 232.531 193.535 l 
+232.531 193.539 l 232.535 193.539 l 232.535 193.543 l 232.539 193.543 l 
+232.547 193.551 l 232.551 193.551 l 232.551 193.555 l 232.555 193.555 l 
+232.555 193.559 l 232.559 193.559 l 232.566 193.566 l 232.57 193.566 l 232.57
+ 193.57 l 232.574 193.57 l 232.574 193.574 l 232.578 193.574 l 232.586 193.582
+ l 232.59 193.582 l 232.59 193.586 l 232.594 193.586 l 232.594 193.59 l 
+232.598 193.59 l 232.602 193.594 l 232.605 193.594 l 232.617 193.605 l 232.621
+ 193.605 l 232.621 193.609 l 232.625 193.609 l 232.633 193.617 l 232.637
+ 193.617 l 232.637 193.621 l 232.641 193.621 l 232.641 193.625 l 232.645
+ 193.625 l 232.652 193.633 l 232.656 193.633 l 232.656 193.637 l 232.66 
+193.637 l 232.66 193.641 l 232.664 193.641 l 232.672 193.648 l 232.676 193.648
+ l 232.676 193.652 l 232.68 193.652 l 232.684 193.656 l 232.688 193.656 
+l 232.688 193.66 l 232.691 193.66 l 232.703 193.672 l 232.707 193.672 l 
+232.707 193.676 l 232.711 193.676 l 232.719 193.684 l 232.723 193.684 l 
+232.723 193.688 l 232.727 193.688 l 232.727 193.691 l 232.73 193.691 l 232.738
+ 193.699 l 232.742 193.699 l 232.742 193.703 l 232.746 193.703 l 232.746
+ 193.707 l 232.754 193.707 l 232.754 193.711 l 232.758 193.711 l 232.77 
+193.723 l 232.773 193.723 l 232.773 193.727 l 232.777 193.727 l 232.789 
+193.738 l 232.793 193.738 l 232.793 193.742 l 232.797 193.742 l 232.809 
+193.754 l 232.812 193.754 l 232.812 193.758 l 232.816 193.758 l 232.82 193.762
+ l 232.824 193.762 l 232.836 193.773 l 232.84 193.773 l 232.84 193.777 l
+ 232.844 193.777 l 232.855 193.789 l 232.859 193.789 l 232.859 193.793 l
+ 232.863 193.793 l 232.875 193.805 l 232.879 193.805 l 232.879 193.809 l
+ 232.883 193.809 l 232.887 193.812 l 232.891 193.812 l 232.891 193.816 l
+ 232.895 193.816 l 232.902 193.824 l 232.906 193.824 l 232.906 193.828 l
+ 232.91 193.828 l 232.922 193.84 l 232.926 193.84 l 232.926 193.844 l 232.93
+ 193.844 l 232.941 193.855 l 232.945 193.855 l 232.945 193.859 l 232.949
+ 193.859 l 232.953 193.863 l 232.957 193.863 l 232.957 193.867 l 232.961
+ 193.867 l 232.969 193.875 l 232.973 193.875 l 232.973 193.879 l 232.977
+ 193.879 l 232.977 193.883 l 232.98 193.883 l 232.988 193.891 l 232.992 
+193.891 l 232.992 193.895 l 232.996 193.895 l 232.996 193.898 l 233 193.898
+ l 233.008 193.906 l 233.012 193.906 l 233.012 193.91 l 233.016 193.91 l
+ 233.02 193.914 l 233.023 193.914 l 233.023 193.918 l 233.027 193.918 l 
+233.035 193.926 l 233.039 193.926 l 233.039 193.93 l 233.043 193.93 l 233.043
+ 193.934 l 233.047 193.934 l 233.055 193.941 l 233.059 193.941 l 233.059
+ 193.945 l 233.062 193.945 l 233.062 193.949 l 233.066 193.949 l 233.074
+ 193.957 l 233.078 193.957 l 233.078 193.961 l 233.082 193.961 l 233.086
+ 193.965 l 233.09 193.965 l 233.09 193.969 l 233.094 193.969 l 233.102 193.977
+ l 233.105 193.977 l 233.105 193.98 l 233.109 193.98 l 233.109 193.984 l
+ 233.113 193.984 l 233.121 193.992 l 233.125 193.992 l 233.125 193.996 l
+ 233.129 193.996 l 233.129 194 l 233.133 194 l 233.141 194.008 l 233.145
+ 194.008 l 233.152 194.016 l 233.156 194.016 l 233.156 194.02 l 233.16 194.02
+ l 233.172 194.031 l 233.176 194.031 l 233.176 194.035 l 233.18 194.035 
+l 233.191 194.047 l 233.195 194.047 l 233.195 194.051 l 233.203 194.051 
+l 233.203 194.055 l 233.207 194.055 l 233.219 194.066 l 233.223 194.066 
+l 233.223 194.07 l 233.227 194.07 l 233.238 194.082 l 233.242 194.082 l 
+233.242 194.086 l 233.246 194.086 l 233.258 194.098 l 233.262 194.098 l 
+233.266 194.102 l 233.27 194.102 l 233.27 194.105 l 233.273 194.105 l 233.273
+ 194.109 l 233.277 194.109 l 233.285 194.117 l 233.289 194.117 l 233.289
+ 194.121 l 233.293 194.121 l 233.305 194.133 l 233.309 194.133 l 233.309
+ 194.137 l 233.316 194.137 l 233.316 194.141 l 233.32 194.141 l 233.32 194.145
+ l 233.324 194.145 l 233.332 194.152 l 233.336 194.152 l 233.336 194.156
+ l 233.34 194.156 l 233.34 194.16 l 233.344 194.16 l 233.352 194.168 l 233.355
+ 194.168 l 233.355 194.172 l 233.359 194.172 l 233.359 194.176 l 233.363
+ 194.176 l 233.367 194.18 l 233.371 194.18 l 233.383 194.191 l 233.387 194.191
+ l 233.387 194.195 l 233.391 194.195 l 233.398 194.203 l 233.402 194.203
+ l 233.402 194.207 l 233.406 194.207 l 233.406 194.211 l 233.41 194.211 
+l 233.418 194.219 l 233.422 194.219 l 233.43 194.227 l 233.434 194.227 l
+ 233.434 194.23 l 233.438 194.23 l 233.449 194.242 l 233.453 194.242 l 233.453
+ 194.246 l 233.457 194.246 l 233.469 194.258 l 233.473 194.258 l 233.473
+ 194.262 l 233.48 194.262 l 233.48 194.266 l 233.484 194.266 l 233.496 194.277
+ l 233.5 194.277 l 233.5 194.281 l 233.504 194.281 l 233.516 194.293 l 233.52
+ 194.293 l 233.52 194.297 l 233.523 194.297 l 233.527 194.301 l 233.531 
+194.301 l 233.531 194.305 l 233.535 194.305 l 233.543 194.312 l 233.547 
+194.312 l 233.547 194.316 l 233.551 194.316 l 233.551 194.32 l 233.555 194.32
+ l 233.562 194.328 l 233.566 194.328 l 233.566 194.332 l 233.57 194.332 
+l 233.57 194.336 l 233.578 194.336 l 233.578 194.34 l 233.582 194.34 l 233.59
+ 194.348 l 233.594 194.348 l 233.594 194.352 l 233.598 194.352 l 233.598
+ 194.355 l 233.602 194.355 l 233.609 194.363 l 233.613 194.363 l 233.613
+ 194.367 l 233.617 194.367 l 233.617 194.371 l 233.621 194.371 l 233.625
+ 194.375 l 233.629 194.375 l 233.641 194.387 l 233.645 194.387 l 233.645
+ 194.391 l 233.648 194.391 l 233.66 194.402 l 233.664 194.402 l 233.664 
+194.406 l 233.668 194.406 l 233.672 194.41 l 233.676 194.41 l 233.688 194.422
+ l 233.691 194.422 l 233.691 194.426 l 233.695 194.426 l 233.707 194.438
+ l 233.711 194.438 l 233.711 194.441 l 233.715 194.441 l 233.723 194.449
+ l 233.727 194.449 l 233.734 194.457 l 233.738 194.457 l 233.738 194.461
+ l 233.742 194.461 l 233.742 194.465 l 233.746 194.465 l 233.754 194.473
+ l 233.758 194.473 l 233.758 194.477 l 233.762 194.477 l 233.762 194.48 
+l 233.766 194.48 l 233.77 194.484 l 233.773 194.484 l 233.781 194.492 l 
+233.785 194.492 l 233.785 194.496 l 233.789 194.496 l 233.789 194.5 l 233.793
+ 194.5 l 233.801 194.508 l 233.805 194.508 l 233.805 194.512 l 233.809 194.512
+ l 233.809 194.516 l 233.812 194.516 l 233.816 194.52 l 233.82 194.52 l 
+233.832 194.531 l 233.836 194.531 l 233.836 194.535 l 233.84 194.535 l 233.852
+ 194.547 l 233.855 194.547 l 233.855 194.551 l 233.863 194.551 l 233.863
+ 194.555 l 233.867 194.555 l 233.879 194.566 l 233.883 194.566 l 233.883
+ 194.57 l 233.887 194.57 l 233.898 194.582 l 233.902 194.582 l 233.902 194.586
+ l 233.91 194.586 l 233.91 194.59 l 233.914 194.59 l 233.914 194.594 l 233.918
+ 194.594 l 233.926 194.602 l 233.93 194.602 l 233.93 194.605 l 233.934 194.605
+ l 233.934 194.609 l 233.938 194.609 l 233.945 194.617 l 233.949 194.617
+ l 233.957 194.625 l 233.961 194.625 l 233.961 194.629 l 233.965 194.629
+ l 233.973 194.637 l 233.977 194.637 l 233.977 194.641 l 233.98 194.641 
+l 233.98 194.645 l 233.984 194.645 l 233.992 194.652 l 233.996 194.652 l
+ 234.004 194.66 l 234.008 194.66 l 234.008 194.664 l 234.012 194.664 l 234.023
+ 194.676 l 234.027 194.676 l 234.027 194.68 l 234.031 194.68 l 234.035 194.684
+ l 234.039 194.684 l 234.039 194.688 l 234.043 194.688 l 234.051 194.695
+ l 234.055 194.695 l 234.055 194.699 l 234.059 194.699 l 234.059 194.703
+ l 234.062 194.703 l 234.07 194.711 l 234.074 194.711 l 234.074 194.715 
+l 234.082 194.715 l 234.082 194.719 l 234.086 194.719 l 234.086 194.723 
+l 234.09 194.723 l 234.098 194.73 l 234.102 194.73 l 234.102 194.734 l 234.105
+ 194.734 l 234.105 194.738 l 234.109 194.738 l 234.117 194.746 l 234.121
+ 194.746 l 234.129 194.754 l 234.133 194.754 l 234.133 194.758 l 234.137
+ 194.758 l 234.148 194.77 l 234.152 194.77 l 234.152 194.773 l 234.156 194.773
+ l 234.16 194.777 l 234.164 194.777 l 234.176 194.789 l 234.18 194.789 l
+ 234.18 194.793 l 234.184 194.793 l 234.195 194.805 l 234.199 194.805 l 
+234.199 194.809 l 234.207 194.809 l 234.207 194.812 l 234.211 194.812 l 
+234.211 194.816 l 234.215 194.816 l 234.223 194.824 l 234.227 194.824 l 
+234.227 194.828 l 234.23 194.828 l 234.23 194.832 l 234.234 194.832 l 234.242
+ 194.84 l 234.246 194.84 l 234.254 194.848 l 234.258 194.848 l 234.258 194.852
+ l 234.262 194.852 l 234.27 194.859 l 234.273 194.859 l 234.273 194.863 
+l 234.277 194.863 l 234.277 194.867 l 234.285 194.867 l 234.285 194.871 
+l 234.289 194.871 l 234.301 194.883 l 234.305 194.883 l 234.305 194.887 
+l 234.309 194.887 l 234.32 194.898 l 234.324 194.898 l 234.328 194.902 l
+ 234.332 194.902 l 234.332 194.906 l 234.336 194.906 l 234.336 194.91 l 
+234.34 194.91 l 234.348 194.918 l 234.352 194.918 l 234.352 194.922 l 234.355
+ 194.922 l 234.359 194.926 l 234.363 194.926 l 234.363 194.93 l 234.367 
+194.93 l 234.375 194.938 l 234.379 194.938 l 234.379 194.941 l 234.383 194.941
+ l 234.383 194.945 l 234.387 194.945 l 234.395 194.953 l 234.398 194.953
+ l 234.398 194.957 l 234.402 194.957 l 234.406 194.961 l 234.41 194.961 
+l 234.41 194.965 l 234.414 194.965 l 234.426 194.977 l 234.43 194.977 l 
+234.43 194.98 l 234.434 194.98 l 234.438 194.984 l 234.441 194.984 l 234.441
+ 194.988 l 234.445 194.988 l 234.453 194.996 l 234.457 194.996 l 234.457
+ 195 l 234.461 195 l 234.473 195.012 l 234.477 195.012 l 234.48 195.016 
+l 234.484 195.016 l 234.484 195.02 l 234.488 195.02 l 234.488 195.023 l 
+234.492 195.023 l 234.5 195.031 l 234.504 195.031 l 234.504 195.035 l 234.508
+ 195.035 l 234.508 195.039 l 234.516 195.039 l 234.516 195.043 l 234.52 
+195.043 l 234.531 195.055 l 234.535 195.055 l 234.535 195.059 l 234.539 
+195.059 l 234.547 195.066 l 234.551 195.066 l 234.559 195.074 l 234.562 
+195.074 l 234.562 195.078 l 234.566 195.078 l 234.578 195.09 l 234.582 195.09
+ l 234.582 195.094 l 234.59 195.094 l 234.59 195.098 l 234.594 195.098 l
+ 234.594 195.102 l 234.598 195.102 l 234.605 195.109 l 234.609 195.109 l
+ 234.609 195.113 l 234.613 195.113 l 234.613 195.117 l 234.617 195.117 l
+ 234.621 195.121 l 234.625 195.121 l 234.637 195.133 l 234.641 195.133 l
+ 234.641 195.137 l 234.645 195.137 l 234.652 195.145 l 234.656 195.145 l
+ 234.656 195.148 l 234.66 195.148 l 234.664 195.152 l 234.668 195.152 l 
+234.668 195.156 l 234.672 195.156 l 234.684 195.168 l 234.688 195.168 l 
+234.688 195.172 l 234.691 195.172 l 234.695 195.176 l 234.699 195.176 l 
+234.699 195.18 l 234.703 195.18 l 234.711 195.188 l 234.715 195.188 l 234.715
+ 195.191 l 234.719 195.191 l 234.719 195.195 l 234.723 195.195 l 234.727
+ 195.199 l 234.73 195.199 l 234.738 195.207 l 234.742 195.207 l 234.742 
+195.211 l 234.746 195.211 l 234.746 195.215 l 234.75 195.215 l 234.758 195.223
+ l 234.762 195.223 l 234.762 195.227 l 234.766 195.227 l 234.77 195.23 l
+ 234.773 195.23 l 234.773 195.234 l 234.777 195.234 l 234.789 195.246 l 
+234.793 195.246 l 234.793 195.25 l 234.797 195.25 l 234.801 195.254 l 234.805
+ 195.254 l 234.805 195.258 l 234.809 195.258 l 234.816 195.266 l 234.82 
+195.266 l 234.82 195.27 l 234.824 195.27 l 234.824 195.273 l 234.828 195.273
+ l 234.832 195.277 l 234.836 195.277 l 234.844 195.285 l 234.848 195.285
+ l 234.848 195.289 l 234.852 195.289 l 234.852 195.293 l 234.855 195.293
+ l 234.863 195.301 l 234.867 195.301 l 234.867 195.305 l 234.871 195.305
+ l 234.875 195.309 l 234.879 195.309 l 234.879 195.312 l 234.883 195.312
+ l 234.895 195.324 l 234.898 195.324 l 234.898 195.328 l 234.906 195.328
+ l 234.906 195.332 l 234.91 195.332 l 234.91 195.336 l 234.914 195.336 l
+ 234.922 195.344 l 234.926 195.344 l 234.926 195.348 l 234.93 195.348 l 
+234.934 195.352 l 234.938 195.352 l 234.938 195.355 l 234.941 195.355 l 
+234.949 195.363 l 234.953 195.363 l 234.953 195.367 l 234.957 195.367 l 
+234.957 195.371 l 234.961 195.371 l 234.969 195.379 l 234.973 195.379 l 
+234.98 195.387 l 234.984 195.387 l 234.984 195.391 l 234.988 195.391 l 235
+ 195.402 l 235.004 195.402 l 235.008 195.406 l 235.012 195.406 l 235.012
+ 195.41 l 235.016 195.41 l 235.016 195.414 l 235.02 195.414 l 235.027 195.422
+ l 235.031 195.422 l 235.031 195.426 l 235.039 195.426 l 235.039 195.43 
+l 235.043 195.43 l 235.043 195.434 l 235.047 195.434 l 235.055 195.441 l
+ 235.059 195.441 l 235.059 195.445 l 235.062 195.445 l 235.062 195.449 l
+ 235.07 195.449 l 235.07 195.453 l 235.074 195.453 l 235.086 195.465 l 235.09
+ 195.465 l 235.09 195.469 l 235.094 195.469 l 235.098 195.473 l 235.102 
+195.473 l 235.102 195.477 l 235.105 195.477 l 235.113 195.484 l 235.117 
+195.484 l 235.117 195.488 l 235.121 195.488 l 235.129 195.496 l 235.133 
+195.496 l 235.141 195.504 l 235.145 195.504 l 235.145 195.508 l 235.148 
+195.508 l 235.148 195.512 l 235.152 195.512 l 235.16 195.52 l 235.164 195.52
+ l 235.172 195.527 l 235.176 195.527 l 235.176 195.531 l 235.18 195.531 
+l 235.191 195.543 l 235.195 195.543 l 235.199 195.547 l 235.203 195.547 
+l 235.203 195.551 l 235.207 195.551 l 235.207 195.555 l 235.211 195.555 
+l 235.219 195.562 l 235.223 195.562 l 235.223 195.566 l 235.23 195.566 l
+ 235.23 195.57 l 235.234 195.57 l 235.234 195.574 l 235.238 195.574 l 235.246
+ 195.582 l 235.25 195.582 l 235.25 195.586 l 235.254 195.586 l 235.254 195.59
+ l 235.262 195.59 l 235.262 195.594 l 235.266 195.594 l 235.277 195.605 
+l 235.281 195.605 l 235.281 195.609 l 235.285 195.609 l 235.289 195.613 
+l 235.293 195.613 l 235.293 195.617 l 235.297 195.617 l 235.305 195.625 
+l 235.309 195.625 l 235.309 195.629 l 235.312 195.629 l 235.316 195.633 
+l 235.32 195.633 l 235.32 195.637 l 235.324 195.637 l 235.332 195.645 l 
+235.336 195.645 l 235.336 195.648 l 235.34 195.648 l 235.34 195.652 l 235.344
+ 195.652 l 235.348 195.656 l 235.352 195.656 l 235.363 195.668 l 235.367
+ 195.668 l 235.367 195.672 l 235.371 195.672 l 235.379 195.68 l 235.383 
+195.68 l 235.391 195.688 l 235.395 195.688 l 235.395 195.691 l 235.398 195.691
+ l 235.398 195.695 l 235.402 195.695 l 235.406 195.699 l 235.41 195.699 
+l 235.418 195.707 l 235.422 195.707 l 235.422 195.711 l 235.426 195.711 
+l 235.426 195.715 l 235.43 195.715 l 235.438 195.723 l 235.441 195.723 l
+ 235.449 195.73 l 235.453 195.73 l 235.453 195.734 l 235.457 195.734 l 235.465
+ 195.742 l 235.469 195.742 l 235.477 195.75 l 235.48 195.75 l 235.48 195.754
+ l 235.484 195.754 l 235.484 195.758 l 235.488 195.758 l 235.496 195.766
+ l 235.5 195.766 l 235.504 195.77 l 235.508 195.77 l 235.508 195.773 l 235.512
+ 195.773 l 235.512 195.777 l 235.516 195.777 l 235.523 195.785 l 235.527
+ 195.785 l 235.535 195.793 l 235.539 195.793 l 235.539 195.797 l 235.543
+ 195.797 l 235.555 195.809 l 235.559 195.809 l 235.562 195.812 l 235.566
+ 195.812 l 235.566 195.816 l 235.57 195.816 l 235.57 195.82 l 235.574 195.82
+ l 235.582 195.828 l 235.586 195.828 l 235.594 195.836 l 235.598 195.836
+ l 235.598 195.84 l 235.602 195.84 l 235.609 195.848 l 235.613 195.848 l
+ 235.613 195.852 l 235.617 195.852 l 235.621 195.855 l 235.625 195.855 l
+ 235.625 195.859 l 235.629 195.859 l 235.641 195.871 l 235.645 195.871 l
+ 235.648 195.875 l 235.652 195.875 l 235.652 195.879 l 235.656 195.879 l
+ 235.656 195.883 l 235.66 195.883 l 235.668 195.891 l 235.672 195.891 l 
+235.68 195.898 l 235.684 195.898 l 235.684 195.902 l 235.688 195.902 l 235.695
+ 195.91 l 235.699 195.91 l 235.707 195.918 l 235.711 195.918 l 235.711 195.922
+ l 235.715 195.922 l 235.727 195.934 l 235.73 195.934 l 235.734 195.938 
+l 235.738 195.938 l 235.738 195.941 l 235.742 195.941 l 235.742 195.945 
+l 235.746 195.945 l 235.754 195.953 l 235.758 195.953 l 235.766 195.961 
+l 235.77 195.961 l 235.77 195.965 l 235.773 195.965 l 235.781 195.973 l 
+235.785 195.973 l 235.793 195.98 l 235.797 195.98 l 235.797 195.984 l 235.801
+ 195.984 l 235.809 195.992 l 235.812 195.992 l 235.82 196 l 235.824 196 
+l 235.824 196.004 l 235.828 196.004 l 235.828 196.008 l 235.832 196.008 
+l 235.836 196.012 l 235.84 196.012 l 235.852 196.023 l 235.855 196.023 l
+ 235.855 196.027 l 235.859 196.027 l 235.863 196.031 l 235.867 196.031 l
+ 235.867 196.035 l 235.871 196.035 l 235.879 196.043 l 235.883 196.043 l
+ 235.883 196.047 l 235.887 196.047 l 235.891 196.051 l 235.895 196.051 l
+ 235.895 196.055 l 235.898 196.055 l 235.906 196.062 l 235.91 196.062 l 
+235.91 196.066 l 235.914 196.066 l 235.914 196.07 l 235.922 196.07 l 235.922
+ 196.074 l 235.926 196.074 l 235.938 196.086 l 235.941 196.086 l 235.941
+ 196.09 l 235.949 196.09 l 235.949 196.094 l 235.953 196.094 l 235.953 196.098
+ l 235.957 196.098 l 235.965 196.105 l 235.969 196.105 l 235.969 196.109
+ l 235.973 196.109 l 235.977 196.113 l 235.98 196.113 l 235.98 196.117 l
+ 235.984 196.117 l 235.992 196.125 l 235.996 196.125 l 235.996 196.129 l
+ 236 196.129 l 236.004 196.133 l 236.008 196.133 l 236.008 196.137 l 236.012
+ 196.137 l 236.023 196.148 l 236.027 196.148 l 236.031 196.152 l 236.035
+ 196.152 l 236.035 196.156 l 236.039 196.156 l 236.039 196.16 l 236.043 
+196.16 l 236.051 196.168 l 236.055 196.168 l 236.062 196.176 l 236.066 196.176
+ l 236.066 196.18 l 236.07 196.18 l 236.078 196.188 l 236.082 196.188 l 
+236.09 196.195 l 236.094 196.195 l 236.094 196.199 l 236.098 196.199 l 236.105
+ 196.207 l 236.109 196.207 l 236.117 196.215 l 236.121 196.215 l 236.121
+ 196.219 l 236.125 196.219 l 236.125 196.223 l 236.133 196.223 l 236.133
+ 196.227 l 236.137 196.227 l 236.148 196.238 l 236.152 196.238 l 236.152
+ 196.242 l 236.16 196.242 l 236.16 196.246 l 236.164 196.246 l 236.164 196.25
+ l 236.168 196.25 l 236.176 196.258 l 236.18 196.258 l 236.18 196.262 l 
+236.188 196.262 l 236.188 196.266 l 236.191 196.266 l 236.191 196.27 l 236.195
+ 196.27 l 236.203 196.277 l 236.207 196.277 l 236.207 196.281 l 236.211 
+196.281 l 236.215 196.285 l 236.219 196.285 l 236.219 196.289 l 236.223 
+196.289 l 236.23 196.297 l 236.234 196.297 l 236.242 196.305 l 236.246 196.305
+ l 236.246 196.309 l 236.25 196.309 l 236.25 196.312 l 236.254 196.312 l
+ 236.258 196.316 l 236.262 196.316 l 236.27 196.324 l 236.273 196.324 l 
+236.273 196.328 l 236.277 196.328 l 236.277 196.332 l 236.281 196.332 l 
+236.285 196.336 l 236.289 196.336 l 236.301 196.348 l 236.305 196.348 l 
+236.305 196.352 l 236.312 196.352 l 236.312 196.355 l 236.316 196.355 l 
+236.316 196.359 l 236.32 196.359 l 236.328 196.367 l 236.332 196.367 l 236.332
+ 196.371 l 236.336 196.371 l 236.34 196.375 l 236.344 196.375 l 236.344 
+196.379 l 236.348 196.379 l 236.355 196.387 l 236.359 196.387 l 236.367 
+196.395 l 236.371 196.395 l 236.371 196.398 l 236.375 196.398 l 236.383 
+196.406 l 236.387 196.406 l 236.395 196.414 l 236.398 196.414 l 236.398 
+196.418 l 236.402 196.418 l 236.402 196.422 l 236.406 196.422 l 236.41 196.426
+ l 236.414 196.426 l 236.426 196.438 l 236.43 196.438 l 236.43 196.441 l
+ 236.438 196.441 l 236.438 196.445 l 236.441 196.445 l 236.441 196.449 l
+ 236.445 196.449 l 236.453 196.457 l 236.457 196.457 l 236.457 196.461 l
+ 236.465 196.461 l 236.465 196.465 l 236.469 196.465 l 236.469 196.469 l
+ 236.473 196.469 l 236.48 196.477 l 236.484 196.477 l 236.492 196.484 l 
+236.496 196.484 l 236.496 196.488 l 236.5 196.488 l 236.504 196.492 l 236.508
+ 196.492 l 236.508 196.496 l 236.512 196.496 l 236.52 196.504 l 236.523 
+196.504 l 236.523 196.508 l 236.527 196.508 l 236.527 196.512 l 236.535 
+196.512 l 236.535 196.516 l 236.539 196.516 l 236.551 196.527 l 236.555 
+196.527 l 236.559 196.531 l 236.562 196.531 l 236.562 196.535 l 236.566 
+196.535 l 236.578 196.547 l 236.582 196.547 l 236.586 196.551 l 236.59 196.551
+ l 236.59 196.555 l 236.594 196.555 l 236.594 196.559 l 236.598 196.559 
+l 236.602 196.562 l 236.605 196.562 l 236.617 196.574 l 236.621 196.574 
+l 236.621 196.578 l 236.629 196.578 l 236.629 196.582 l 236.633 196.582 
+l 236.633 196.586 l 236.637 196.586 l 236.645 196.594 l 236.648 196.594 
+l 236.648 196.598 l 236.656 196.598 l 236.656 196.602 l 236.66 196.602 l
+ 236.66 196.605 l 236.664 196.605 l 236.672 196.613 l 236.676 196.613 l 
+236.684 196.621 l 236.688 196.621 l 236.688 196.625 l 236.691 196.625 l 
+236.695 196.629 l 236.699 196.629 l 236.699 196.633 l 236.703 196.633 l 
+236.711 196.641 l 236.715 196.641 l 236.715 196.645 l 236.719 196.645 l 
+236.719 196.648 l 236.727 196.648 l 236.727 196.652 l 236.73 196.652 l 236.742
+ 196.664 l 236.746 196.664 l 236.75 196.668 l 236.754 196.668 l 236.754 
+196.672 l 236.758 196.672 l 236.766 196.68 l 236.77 196.68 l 236.777 196.688
+ l 236.781 196.688 l 236.781 196.691 l 236.785 196.691 l 236.785 196.695
+ l 236.793 196.695 l 236.793 196.699 l 236.797 196.699 l 236.809 196.711
+ l 236.812 196.711 l 236.812 196.715 l 236.82 196.715 l 236.82 196.719 l
+ 236.824 196.719 l 236.824 196.723 l 236.828 196.723 l 236.836 196.73 l 
+236.84 196.73 l 236.844 196.734 l 236.848 196.734 l 236.848 196.738 l 236.852
+ 196.738 l 236.852 196.742 l 236.855 196.742 l 236.859 196.746 l 236.863
+ 196.746 l 236.875 196.758 l 236.879 196.758 l 236.879 196.762 l 236.887
+ 196.762 l 236.887 196.766 l 236.891 196.766 l 236.891 196.77 l 236.895 
+196.77 l 236.902 196.777 l 236.906 196.777 l 236.914 196.785 l 236.918 196.785
+ l 236.918 196.789 l 236.922 196.789 l 236.926 196.793 l 236.93 196.793 
+l 236.93 196.797 l 236.934 196.797 l 236.941 196.805 l 236.945 196.805 l
+ 236.945 196.809 l 236.953 196.809 l 236.953 196.812 l 236.957 196.812 l
+ 236.957 196.816 l 236.961 196.816 l 236.969 196.824 l 236.973 196.824 l
+ 236.98 196.832 l 236.984 196.832 l 236.984 196.836 l 236.988 196.836 l 
+236.992 196.84 l 236.996 196.84 l 236.996 196.844 l 237 196.844 l 237.008
+ 196.852 l 237.012 196.852 l 237.012 196.855 l 237.016 196.855 l 237.016
+ 196.859 l 237.023 196.859 l 237.023 196.863 l 237.027 196.863 l 237.035
+ 196.871 l 237.039 196.871 l 237.039 196.875 l 237.043 196.875 l 237.047
+ 196.879 l 237.051 196.879 l 237.051 196.883 l 237.055 196.883 l 237.062
+ 196.891 l 237.066 196.891 l 237.074 196.898 l 237.078 196.898 l 237.078
+ 196.902 l 237.082 196.902 l 237.082 196.906 l 237.09 196.906 l 237.09 196.91
+ l 237.094 196.91 l 237.105 196.922 l 237.109 196.922 l 237.113 196.926 
+l 237.117 196.926 l 237.117 196.93 l 237.121 196.93 l 237.121 196.934 l 
+237.125 196.934 l 237.129 196.938 l 237.133 196.938 l 237.141 196.945 l 
+237.145 196.945 l 237.145 196.949 l 237.148 196.949 l 237.152 196.953 l 
+237.156 196.953 l 237.156 196.957 l 237.16 196.957 l 237.168 196.965 l 237.172
+ 196.965 l 237.18 196.973 l 237.184 196.973 l 237.184 196.977 l 237.188 
+196.977 l 237.188 196.98 l 237.195 196.98 l 237.195 196.984 l 237.199 196.984
+ l 237.211 196.996 l 237.215 196.996 l 237.219 197 l 237.223 197 l 237.223
+ 197.004 l 237.227 197.004 l 237.234 197.012 l 237.238 197.012 l 237.246
+ 197.02 l 237.25 197.02 l 237.25 197.023 l 237.254 197.023 l 237.254 197.027
+ l 237.262 197.027 l 237.262 197.031 l 237.266 197.031 l 237.277 197.043
+ l 237.281 197.043 l 237.285 197.047 l 237.289 197.047 l 237.289 197.051
+ l 237.293 197.051 l 237.293 197.055 l 237.297 197.055 l 237.301 197.059
+ l 237.305 197.059 l 237.316 197.07 l 237.32 197.07 l 237.32 197.074 l 237.328
+ 197.074 l 237.328 197.078 l 237.332 197.078 l 237.34 197.086 l 237.344 
+197.086 l 237.352 197.094 l 237.355 197.094 l 237.355 197.098 l 237.359 
+197.098 l 237.359 197.102 l 237.367 197.102 l 237.367 197.105 l 237.371 
+197.105 l 237.383 197.117 l 237.387 197.117 l 237.391 197.121 l 237.395 
+197.121 l 237.395 197.125 l 237.398 197.125 l 237.398 197.129 l 237.402 
+197.129 l 237.406 197.133 l 237.41 197.133 l 237.422 197.145 l 237.426 197.145
+ l 237.426 197.148 l 237.434 197.148 l 237.434 197.152 l 237.438 197.152
+ l 237.445 197.16 l 237.449 197.16 l 237.457 197.168 l 237.461 197.168 l
+ 237.461 197.172 l 237.465 197.172 l 237.465 197.176 l 237.473 197.176 l
+ 237.473 197.18 l 237.477 197.18 l 237.488 197.191 l 237.492 197.191 l 237.496
+ 197.195 l 237.5 197.195 l 237.5 197.199 l 237.504 197.199 l 237.504 197.203
+ l 237.508 197.203 l 237.512 197.207 l 237.516 197.207 l 237.523 197.215
+ l 237.527 197.215 l 237.527 197.219 l 237.531 197.219 l 237.535 197.223
+ l 237.539 197.223 l 237.539 197.227 l 237.543 197.227 l 237.551 197.234
+ l 237.555 197.234 l 237.562 197.242 l 237.566 197.242 l 237.566 197.246
+ l 237.57 197.246 l 237.57 197.25 l 237.578 197.25 l 237.578 197.254 l 237.582
+ 197.254 l 237.59 197.262 l 237.594 197.262 l 237.602 197.27 l 237.605 197.27
+ l 237.605 197.273 l 237.609 197.273 l 237.609 197.277 l 237.617 197.277
+ l 237.617 197.281 l 237.621 197.281 l 237.629 197.289 l 237.633 197.289
+ l 237.633 197.293 l 237.637 197.293 l 237.641 197.297 l 237.645 197.297
+ l 237.645 197.301 l 237.648 197.301 l 237.652 197.305 l 237.656 197.305
+ l 237.656 197.309 l 237.66 197.309 l 237.668 197.316 l 237.672 197.316 
+l 237.672 197.32 l 237.676 197.32 l 237.68 197.324 l 237.684 197.324 l 237.684
+ 197.328 l 237.688 197.328 l 237.691 197.332 l 237.695 197.332 l 237.695
+ 197.336 l 237.699 197.336 l 237.707 197.344 l 237.711 197.344 l 237.711
+ 197.348 l 237.719 197.348 l 237.719 197.352 l 237.723 197.352 l 237.723
+ 197.355 l 237.727 197.355 l 237.734 197.363 l 237.738 197.363 l 237.746
+ 197.371 l 237.75 197.371 l 237.75 197.375 l 237.758 197.375 l 237.758 197.379
+ l 237.762 197.379 l 237.762 197.383 l 237.766 197.383 l 237.773 197.391
+ l 237.777 197.391 l 237.785 197.398 l 237.789 197.398 l 237.789 197.402
+ l 237.797 197.402 l 237.797 197.406 l 237.801 197.406 l 237.801 197.41 
+l 237.805 197.41 l 237.812 197.418 l 237.816 197.418 l 237.82 197.422 l 
+237.824 197.422 l 237.824 197.426 l 237.828 197.426 l 237.828 197.43 l 237.836
+ 197.43 l 237.836 197.434 l 237.84 197.434 l 237.852 197.445 l 237.855 197.445
+ l 237.859 197.449 l 237.863 197.449 l 237.863 197.453 l 237.867 197.453
+ l 237.867 197.457 l 237.875 197.457 l 237.875 197.461 l 237.879 197.461
+ l 237.891 197.473 l 237.895 197.473 l 237.898 197.477 l 237.902 197.477
+ l 237.902 197.48 l 237.906 197.48 l 237.91 197.484 l 237.914 197.484 l 
+237.914 197.488 l 237.918 197.488 l 237.926 197.496 l 237.93 197.496 l 237.93
+ 197.5 l 237.934 197.5 l 237.938 197.504 l 237.941 197.504 l 237.941 197.508
+ l 237.945 197.508 l 237.949 197.512 l 237.953 197.512 l 237.953 197.516
+ l 237.957 197.516 l 237.965 197.523 l 237.969 197.523 l 237.969 197.527
+ l 237.973 197.527 l 237.977 197.531 l 237.98 197.531 l 237.98 197.535 l
+ 237.984 197.535 l 237.988 197.539 l 237.992 197.539 l 237.992 197.543 l
+ 237.996 197.543 l 238.004 197.551 l 238.008 197.551 l 238.008 197.555 l
+ 238.016 197.555 l 238.016 197.559 l 238.02 197.559 l 238.02 197.562 l 238.023
+ 197.562 l 238.027 197.566 l 238.031 197.566 l 238.043 197.578 l 238.047
+ 197.578 l 238.047 197.582 l 238.055 197.582 l 238.055 197.586 l 238.059
+ 197.586 l 238.059 197.59 l 238.062 197.59 l 238.066 197.594 l 238.07 197.594
+ l 238.082 197.605 l 238.086 197.605 l 238.09 197.609 l 238.094 197.609 
+l 238.094 197.613 l 238.098 197.613 l 238.105 197.621 l 238.109 197.621 
+l 238.117 197.629 l 238.121 197.629 l 238.121 197.633 l 238.125 197.633 
+l 238.129 197.637 l 238.133 197.637 l 238.133 197.641 l 238.137 197.641 
+l 238.141 197.645 l 238.145 197.645 l 238.145 197.648 l 238.148 197.648 
+l 238.156 197.656 l 238.16 197.656 l 238.16 197.66 l 238.164 197.66 l 238.168
+ 197.664 l 238.172 197.664 l 238.172 197.668 l 238.176 197.668 l 238.18 
+197.672 l 238.184 197.672 l 238.184 197.676 l 238.188 197.676 l 238.195 
+197.684 l 238.199 197.684 l 238.199 197.688 l 238.207 197.688 l 238.207 
+197.691 l 238.211 197.691 l 238.211 197.695 l 238.215 197.695 l 238.219 
+197.699 l 238.223 197.699 l 238.234 197.711 l 238.238 197.711 l 238.242 
+197.715 l 238.246 197.715 l 238.246 197.719 l 238.25 197.719 l 238.25 197.723
+ l 238.254 197.723 l 238.258 197.727 l 238.262 197.727 l 238.273 197.738
+ l 238.277 197.738 l 238.281 197.742 l 238.285 197.742 l 238.285 197.746
+ l 238.289 197.746 l 238.293 197.75 l 238.297 197.75 l 238.297 197.754 l
+ 238.301 197.754 l 238.309 197.762 l 238.312 197.762 l 238.32 197.77 l 238.324
+ 197.77 l 238.324 197.773 l 238.328 197.773 l 238.332 197.777 l 238.336 
+197.777 l 238.336 197.781 l 238.34 197.781 l 238.348 197.789 l 238.352 197.789
+ l 238.359 197.797 l 238.363 197.797 l 238.363 197.801 l 238.371 197.801
+ l 238.371 197.805 l 238.375 197.805 l 238.375 197.809 l 238.379 197.809
+ l 238.383 197.812 l 238.387 197.812 l 238.395 197.82 l 238.398 197.82 l
+ 238.398 197.824 l 238.402 197.824 l 238.402 197.828 l 238.41 197.828 l 
+238.41 197.832 l 238.414 197.832 l 238.422 197.84 l 238.426 197.84 l 238.434
+ 197.848 l 238.438 197.848 l 238.438 197.852 l 238.441 197.852 l 238.445
+ 197.855 l 238.449 197.855 l 238.449 197.859 l 238.453 197.859 l 238.457
+ 197.863 l 238.461 197.863 l 238.461 197.867 l 238.465 197.867 l 238.473
+ 197.875 l 238.477 197.875 l 238.477 197.879 l 238.484 197.879 l 238.484
+ 197.883 l 238.488 197.883 l 238.488 197.887 l 238.492 197.887 l 238.496
+ 197.891 l 238.5 197.891 l 238.512 197.902 l 238.516 197.902 l 238.52 197.906
+ l 238.523 197.906 l 238.523 197.91 l 238.527 197.91 l 238.527 197.914 l
+ 238.535 197.914 l 238.535 197.918 l 238.539 197.918 l 238.547 197.926 l
+ 238.551 197.926 l 238.559 197.934 l 238.562 197.934 l 238.562 197.938 l
+ 238.566 197.938 l 238.57 197.941 l 238.574 197.941 l 238.574 197.945 l 
+238.578 197.945 l 238.586 197.953 l 238.59 197.953 l 238.598 197.961 l 238.602
+ 197.961 l 238.602 197.965 l 238.609 197.965 l 238.609 197.969 l 238.613
+ 197.969 l 238.613 197.973 l 238.617 197.973 l 238.621 197.977 l 238.625
+ 197.977 l 238.637 197.988 l 238.641 197.988 l 238.645 197.992 l 238.648
+ 197.992 l 238.648 197.996 l 238.652 197.996 l 238.652 198 l 238.66 198 
+l 238.66 198.004 l 238.664 198.004 l 238.672 198.012 l 238.676 198.012 l
+ 238.684 198.02 l 238.688 198.02 l 238.688 198.023 l 238.695 198.023 l 238.695
+ 198.027 l 238.699 198.027 l 238.699 198.031 l 238.703 198.031 l 238.707
+ 198.035 l 238.711 198.035 l 238.723 198.047 l 238.727 198.047 l 238.727
+ 198.051 l 238.734 198.051 l 238.734 198.055 l 238.738 198.055 l 238.738
+ 198.059 l 238.742 198.059 l 238.746 198.062 l 238.75 198.062 l 238.762 
+198.074 l 238.766 198.074 l 238.77 198.078 l 238.773 198.078 l 238.773 198.082
+ l 238.777 198.082 l 238.781 198.086 l 238.785 198.086 l 238.785 198.09 
+l 238.789 198.09 l 238.797 198.098 l 238.801 198.098 l 238.809 198.105 l
+ 238.812 198.105 l 238.812 198.109 l 238.82 198.109 l 238.82 198.113 l 238.824
+ 198.113 l 238.824 198.117 l 238.828 198.117 l 238.832 198.121 l 238.836
+ 198.121 l 238.848 198.133 l 238.852 198.133 l 238.855 198.137 l 238.859
+ 198.137 l 238.859 198.141 l 238.863 198.141 l 238.867 198.145 l 238.871
+ 198.145 l 238.871 198.148 l 238.875 198.148 l 238.883 198.156 l 238.887
+ 198.156 l 238.895 198.164 l 238.898 198.164 l 238.898 198.168 l 238.906
+ 198.168 l 238.906 198.172 l 238.91 198.172 l 238.91 198.176 l 238.914 198.176
+ l 238.918 198.18 l 238.922 198.18 l 238.934 198.191 l 238.938 198.191 l
+ 238.941 198.195 l 238.945 198.195 l 238.945 198.199 l 238.949 198.199 l
+ 238.949 198.203 l 238.957 198.203 l 238.957 198.207 l 238.961 198.207 l
+ 238.969 198.215 l 238.973 198.215 l 238.98 198.223 l 238.984 198.223 l 
+238.984 198.227 l 238.992 198.227 l 238.992 198.23 l 238.996 198.23 l 238.996
+ 198.234 l 239 198.234 l 239.004 198.238 l 239.008 198.238 l 239.02 198.25
+ l 239.023 198.25 l 239.027 198.254 l 239.031 198.254 l 239.031 198.258 
+l 239.035 198.258 l 239.035 198.262 l 239.043 198.262 l 239.043 198.266 
+l 239.047 198.266 l 239.055 198.273 l 239.059 198.273 l 239.066 198.281 
+l 239.07 198.281 l 239.07 198.285 l 239.078 198.285 l 239.078 198.289 l 
+239.082 198.289 l 239.082 198.293 l 239.086 198.293 l 239.09 198.297 l 239.094
+ 198.297 l 239.105 198.309 l 239.109 198.309 l 239.113 198.312 l 239.117
+ 198.312 l 239.117 198.316 l 239.121 198.316 l 239.121 198.32 l 239.129 
+198.32 l 239.129 198.324 l 239.133 198.324 l 239.141 198.332 l 239.145 198.332
+ l 239.152 198.34 l 239.156 198.34 l 239.16 198.344 l 239.164 198.344 l 
+239.164 198.348 l 239.168 198.348 l 239.168 198.352 l 239.176 198.352 l 
+239.176 198.355 l 239.18 198.355 l 239.188 198.363 l 239.191 198.363 l 239.199
+ 198.371 l 239.203 198.371 l 239.203 198.375 l 239.207 198.375 l 239.211
+ 198.379 l 239.215 198.379 l 239.215 198.383 l 239.219 198.383 l 239.223
+ 198.387 l 239.227 198.387 l 239.227 198.391 l 239.23 198.391 l 239.238 
+198.398 l 239.242 198.398 l 239.246 198.402 l 239.25 198.402 l 239.25 198.406
+ l 239.254 198.406 l 239.254 198.41 l 239.262 198.41 l 239.262 198.414 l
+ 239.266 198.414 l 239.273 198.422 l 239.277 198.422 l 239.285 198.43 l 
+239.289 198.43 l 239.289 198.434 l 239.293 198.434 l 239.297 198.438 l 239.301
+ 198.438 l 239.301 198.441 l 239.309 198.441 l 239.309 198.445 l 239.312
+ 198.445 l 239.312 198.449 l 239.316 198.449 l 239.32 198.453 l 239.324 
+198.453 l 239.336 198.465 l 239.34 198.465 l 239.344 198.469 l 239.348 198.469
+ l 239.348 198.473 l 239.352 198.473 l 239.355 198.477 l 239.359 198.477
+ l 239.359 198.48 l 239.363 198.48 l S
+239.363 198.48 m 239.371 198.488 l 239.375 198.488 l 239.383 198.496 l 
+239.387 198.496 l 239.387 198.5 l 239.395 198.5 l 239.395 198.504 l 239.398
+ 198.504 l 239.398 198.508 l 239.406 198.508 l 239.406 198.512 l 239.41 
+198.512 l 239.418 198.52 l 239.422 198.52 l 239.43 198.527 l 239.434 198.527
+ l 239.434 198.531 l 239.441 198.531 l 239.441 198.535 l 239.445 198.535
+ l 239.445 198.539 l 239.449 198.539 l 239.453 198.543 l 239.457 198.543
+ l 239.469 198.555 l 239.473 198.555 l 239.477 198.559 l 239.48 198.559 
+l 239.48 198.562 l 239.484 198.562 l 239.488 198.566 l 239.492 198.566 l
+ 239.492 198.57 l 239.496 198.57 l 239.5 198.574 l 239.504 198.574 l 239.504
+ 198.578 l 239.508 198.578 l 239.516 198.586 l 239.52 198.586 l 239.527 
+198.594 l 239.531 198.594 l 239.531 198.598 l 239.539 198.598 l 239.539 
+198.602 l 239.543 198.602 l 239.547 198.605 l 239.551 198.605 l 239.551 
+198.609 l 239.555 198.609 l 239.562 198.617 l 239.566 198.617 l 239.574 
+198.625 l 239.578 198.625 l 239.578 198.629 l 239.586 198.629 l 239.586 
+198.633 l 239.59 198.633 l 239.59 198.637 l 239.594 198.637 l 239.598 198.641
+ l 239.602 198.641 l 239.609 198.648 l 239.613 198.648 l 239.621 198.656
+ l 239.625 198.656 l 239.625 198.66 l 239.629 198.66 l 239.633 198.664 l
+ 239.637 198.664 l 239.637 198.668 l 239.641 198.668 l 239.645 198.672 l
+ 239.648 198.672 l 239.66 198.684 l 239.664 198.684 l 239.668 198.688 l 
+239.672 198.688 l 239.672 198.691 l 239.676 198.691 l 239.68 198.695 l 239.684
+ 198.695 l 239.684 198.699 l 239.688 198.699 l 239.691 198.703 l 239.695
+ 198.703 l 239.695 198.707 l 239.699 198.707 l 239.707 198.715 l 239.711
+ 198.715 l 239.719 198.723 l 239.723 198.723 l 239.723 198.727 l 239.73 
+198.727 l 239.73 198.73 l 239.734 198.73 l 239.738 198.734 l 239.742 198.734
+ l 239.742 198.738 l 239.746 198.738 l 239.754 198.746 l 239.758 198.746
+ l 239.766 198.754 l 239.77 198.754 l 239.77 198.758 l 239.777 198.758 l
+ 239.777 198.762 l 239.781 198.762 l 239.781 198.766 l 239.789 198.766 l
+ 239.789 198.77 l 239.793 198.77 l 239.801 198.777 l 239.805 198.777 l 239.812
+ 198.785 l 239.816 198.785 l 239.816 198.789 l 239.82 198.789 l 239.824 
+198.793 l 239.828 198.793 l 239.828 198.797 l 239.836 198.797 l 239.836 
+198.801 l 239.84 198.801 l 239.848 198.809 l 239.852 198.809 l 239.859 198.816
+ l 239.863 198.816 l 239.863 198.82 l 239.867 198.82 l 239.871 198.824 l
+ 239.875 198.824 l 239.875 198.828 l 239.883 198.828 l 239.883 198.832 l
+ 239.887 198.832 l 239.887 198.836 l 239.891 198.836 l 239.895 198.84 l 
+239.898 198.84 l 239.91 198.852 l 239.914 198.852 l 239.918 198.855 l 239.922
+ 198.855 l 239.922 198.859 l 239.93 198.859 l 239.93 198.863 l 239.934 198.863
+ l 239.934 198.867 l 239.938 198.867 l 239.941 198.871 l 239.945 198.871
+ l 239.957 198.883 l 239.961 198.883 l 239.965 198.887 l 239.969 198.887
+ l 239.969 198.891 l 239.973 198.891 l 239.977 198.895 l 239.98 198.895 
+l 239.98 198.898 l 239.984 198.898 l 239.988 198.902 l 239.992 198.902 l
+ 239.992 198.906 l 239.996 198.906 l 240 198.91 l 240.004 198.91 l 240.016
+ 198.922 l 240.02 198.922 l 240.023 198.926 l 240.027 198.926 l 240.027 
+198.93 l 240.031 198.93 l 240.035 198.934 l 240.039 198.934 l 240.039 198.938
+ l 240.043 198.938 l 240.047 198.941 l 240.051 198.941 l 240.062 198.953
+ l 240.066 198.953 l 240.07 198.957 l 240.074 198.957 l 240.074 198.961 
+l 240.078 198.961 l 240.082 198.965 l 240.086 198.965 l 240.086 198.969 
+l 240.09 198.969 l 240.094 198.973 l 240.098 198.973 l 240.098 198.977 l
+ 240.102 198.977 l 240.109 198.984 l 240.113 198.984 l 240.117 198.988 l
+ 240.121 198.988 l 240.121 198.992 l 240.125 198.992 l 240.129 198.996 l
+ 240.133 198.996 l 240.133 199 l 240.137 199 l 240.141 199.004 l 240.145
+ 199.004 l 240.145 199.008 l 240.148 199.008 l 240.152 199.012 l 240.156
+ 199.012 l 240.168 199.023 l 240.172 199.023 l 240.176 199.027 l 240.18 
+199.027 l 240.18 199.031 l 240.184 199.031 l 240.188 199.035 l 240.191 199.035
+ l 240.191 199.039 l 240.195 199.039 l 240.199 199.043 l 240.203 199.043
+ l 240.203 199.047 l 240.207 199.047 l 240.211 199.051 l 240.215 199.051
+ l 240.223 199.059 l 240.227 199.059 l 240.227 199.062 l 240.23 199.062 
+l 240.234 199.066 l 240.238 199.066 l 240.238 199.07 l 240.242 199.07 l 
+240.246 199.074 l 240.25 199.074 l 240.25 199.078 l 240.254 199.078 l 240.258
+ 199.082 l 240.262 199.082 l 240.273 199.094 l 240.277 199.094 l 240.281
+ 199.098 l 240.285 199.098 l 240.285 199.102 l 240.289 199.102 l 240.293
+ 199.105 l 240.297 199.105 l 240.297 199.109 l 240.301 199.109 l 240.305
+ 199.113 l 240.309 199.113 l 240.316 199.121 l 240.32 199.121 l 240.328 
+199.129 l 240.332 199.129 l 240.332 199.133 l 240.336 199.133 l 240.34 199.137
+ l 240.344 199.137 l 240.344 199.141 l 240.352 199.141 l 240.352 199.145
+ l 240.355 199.145 l 240.355 199.148 l 240.359 199.148 l 240.363 199.152
+ l 240.367 199.152 l 240.375 199.16 l 240.379 199.16 l 240.387 199.168 l
+ 240.391 199.168 l 240.391 199.172 l 240.395 199.172 l 240.398 199.176 l
+ 240.402 199.176 l 240.402 199.18 l 240.41 199.18 l 240.41 199.184 l 240.414
+ 199.184 l 240.422 199.191 l 240.426 199.191 l 240.434 199.199 l 240.438
+ 199.199 l 240.445 199.207 l 240.449 199.207 l 240.449 199.211 l 240.457
+ 199.211 l 240.457 199.215 l 240.461 199.215 l 240.461 199.219 l 240.469
+ 199.219 l 240.469 199.223 l 240.473 199.223 l 240.48 199.23 l 240.484 199.23
+ l 240.492 199.238 l 240.496 199.238 l 240.5 199.242 l 240.504 199.242 l
+ 240.504 199.246 l 240.508 199.246 l 240.512 199.25 l 240.516 199.25 l 240.516
+ 199.254 l 240.52 199.254 l 240.523 199.258 l 240.527 199.258 l 240.527 
+199.262 l 240.531 199.262 l 240.535 199.266 l 240.539 199.266 l 240.551 
+199.277 l 240.555 199.277 l 240.559 199.281 l 240.562 199.281 l 240.562 
+199.285 l 240.566 199.285 l 240.57 199.289 l 240.574 199.289 l 240.574 199.293
+ l 240.578 199.293 l 240.582 199.297 l 240.586 199.297 l 240.586 199.301
+ l 240.59 199.301 l 240.594 199.305 l 240.598 199.305 l 240.605 199.312 
+l 240.609 199.312 l 240.609 199.316 l 240.613 199.316 l 240.617 199.32 l
+ 240.621 199.32 l 240.621 199.324 l 240.629 199.324 l 240.629 199.328 l 
+240.633 199.328 l 240.633 199.332 l 240.641 199.332 l 240.641 199.336 l 
+240.645 199.336 l 240.652 199.344 l 240.656 199.344 l 240.664 199.352 l 
+240.668 199.352 l 240.676 199.359 l 240.68 199.359 l 240.68 199.363 l 240.688
+ 199.363 l 240.688 199.367 l 240.691 199.367 l 240.695 199.371 l 240.699
+ 199.371 l 240.699 199.375 l 240.703 199.375 l 240.707 199.379 l 240.711
+ 199.379 l 240.723 199.391 l 240.727 199.391 l 240.73 199.395 l 240.734 
+199.395 l 240.734 199.398 l 240.738 199.398 l 240.742 199.402 l 240.746 
+199.402 l 240.746 199.406 l 240.75 199.406 l 240.754 199.41 l 240.758 199.41
+ l 240.758 199.414 l 240.762 199.414 l 240.766 199.418 l 240.77 199.418 
+l 240.777 199.426 l 240.781 199.426 l 240.789 199.434 l 240.793 199.434 
+l 240.793 199.438 l 240.801 199.438 l 240.801 199.441 l 240.805 199.441 
+l 240.805 199.445 l 240.812 199.445 l 240.812 199.449 l 240.816 199.449 
+l 240.82 199.453 l 240.824 199.453 l 240.824 199.457 l 240.828 199.457 l
+ 240.836 199.465 l 240.84 199.465 l 240.848 199.473 l 240.852 199.473 l 
+240.855 199.477 l 240.859 199.477 l 240.859 199.48 l 240.863 199.48 l 240.863
+ 199.484 l 240.871 199.484 l 240.871 199.488 l 240.875 199.488 l 240.879
+ 199.492 l 240.883 199.492 l 240.891 199.5 l 240.895 199.5 l 240.902 199.508
+ l 240.906 199.508 l 240.906 199.512 l 240.91 199.512 l 240.914 199.516 
+l 240.918 199.516 l 240.918 199.52 l 240.926 199.52 l 240.926 199.523 l 
+240.93 199.523 l 240.93 199.527 l 240.938 199.527 l 240.938 199.531 l 240.941
+ 199.531 l 240.949 199.539 l 240.953 199.539 l 240.961 199.547 l 240.965
+ 199.547 l 240.973 199.555 l 240.977 199.555 l 240.98 199.559 l 240.984 
+199.559 l 240.984 199.562 l 240.988 199.562 l 240.992 199.566 l 240.996 
+199.566 l 240.996 199.57 l 241 199.57 l 241.004 199.574 l 241.008 199.574
+ l 241.016 199.582 l 241.02 199.582 l 241.027 199.59 l 241.031 199.59 l 
+241.031 199.594 l 241.035 199.594 l 241.039 199.598 l 241.043 199.598 l 
+241.043 199.602 l 241.051 199.602 l 241.051 199.605 l 241.055 199.605 l 
+241.055 199.609 l 241.062 199.609 l 241.062 199.613 l 241.066 199.613 l 
+241.074 199.621 l 241.078 199.621 l 241.086 199.629 l 241.09 199.629 l 241.094
+ 199.633 l 241.098 199.633 l 241.098 199.637 l 241.102 199.637 l 241.105
+ 199.641 l 241.109 199.641 l 241.109 199.645 l 241.117 199.645 l 241.117
+ 199.648 l 241.121 199.648 l 241.121 199.652 l 241.125 199.652 l 241.129
+ 199.656 l 241.133 199.656 l 241.141 199.664 l 241.145 199.664 l 241.152
+ 199.672 l 241.156 199.672 l 241.164 199.68 l 241.168 199.68 l 241.168 199.684
+ l 241.176 199.684 l 241.176 199.688 l 241.18 199.688 l 241.184 199.691 
+l 241.188 199.691 l 241.188 199.695 l 241.191 199.695 l 241.195 199.699 
+l 241.199 199.699 l 241.207 199.707 l 241.211 199.707 l 241.219 199.715 
+l 241.223 199.715 l 241.223 199.719 l 241.227 199.719 l 241.23 199.723 l
+ 241.234 199.723 l 241.234 199.727 l 241.242 199.727 l 241.242 199.73 l 
+241.246 199.73 l 241.246 199.734 l 241.254 199.734 l 241.254 199.738 l 241.258
+ 199.738 l 241.262 199.742 l 241.266 199.742 l 241.277 199.754 l 241.281
+ 199.754 l 241.285 199.758 l 241.289 199.758 l 241.289 199.762 l 241.293
+ 199.762 l 241.297 199.766 l 241.301 199.766 l 241.301 199.77 l 241.309 
+199.77 l 241.309 199.773 l 241.312 199.773 l 241.312 199.777 l 241.32 199.777
+ l 241.32 199.781 l 241.324 199.781 l 241.332 199.789 l 241.336 199.789 
+l 241.344 199.797 l 241.348 199.797 l 241.355 199.805 l 241.359 199.805 
+l 241.363 199.809 l 241.367 199.809 l 241.367 199.812 l 241.375 199.812 
+l 241.375 199.816 l 241.379 199.816 l 241.379 199.82 l 241.383 199.82 l 
+241.387 199.824 l 241.391 199.824 l 241.398 199.832 l 241.402 199.832 l 
+241.41 199.84 l 241.414 199.84 l 241.422 199.848 l 241.426 199.848 l 241.43
+ 199.852 l 241.434 199.852 l 241.434 199.855 l 241.438 199.855 l 241.441
+ 199.859 l 241.445 199.859 l 241.445 199.863 l 241.449 199.863 l 241.453
+ 199.867 l 241.457 199.867 l 241.465 199.875 l 241.469 199.875 l 241.477
+ 199.883 l 241.48 199.883 l 241.488 199.891 l 241.492 199.891 l 241.496 
+199.895 l 241.5 199.895 l 241.5 199.898 l 241.504 199.898 l 241.504 199.902
+ l 241.512 199.902 l 241.512 199.906 l 241.516 199.906 l 241.52 199.91 l
+ 241.523 199.91 l 241.523 199.914 l 241.527 199.914 l 241.531 199.918 l 
+241.535 199.918 l 241.543 199.926 l 241.547 199.926 l 241.555 199.934 l 
+241.559 199.934 l 241.562 199.938 l 241.566 199.938 l 241.566 199.941 l 
+241.57 199.941 l 241.574 199.945 l 241.578 199.945 l 241.578 199.949 l 241.582
+ 199.949 l 241.586 199.953 l 241.59 199.953 l 241.59 199.957 l 241.594 199.957
+ l 241.598 199.961 l 241.602 199.961 l 241.609 199.969 l 241.613 199.969
+ l 241.621 199.977 l 241.625 199.977 l 241.633 199.984 l 241.637 199.984
+ l 241.641 199.988 l 241.645 199.988 l 241.645 199.992 l 241.652 199.992
+ l 241.652 199.996 l 241.656 199.996 l 241.656 200 l 241.66 200 l 241.664
+ 200.004 l 241.668 200.004 l 241.676 200.012 l 241.68 200.012 l 241.688 
+200.02 l 241.691 200.02 l 241.699 200.027 l 241.703 200.027 l 241.707 200.031
+ l 241.711 200.031 l 241.711 200.035 l 241.715 200.035 l 241.719 200.039
+ l 241.723 200.039 l 241.723 200.043 l 241.73 200.043 l 241.73 200.047 l
+ 241.734 200.047 l 241.734 200.051 l 241.738 200.051 l 241.742 200.055 l
+ 241.746 200.055 l 241.754 200.062 l 241.758 200.062 l 241.766 200.07 l 
+241.77 200.07 l 241.773 200.074 l 241.777 200.074 l 241.777 200.078 l 241.781
+ 200.078 l 241.785 200.082 l 241.789 200.082 l 241.789 200.086 l 241.797
+ 200.086 l 241.797 200.09 l 241.801 200.09 l 241.801 200.094 l 241.809 200.094
+ l 241.809 200.098 l 241.812 200.098 l 241.816 200.102 l 241.82 200.102 
+l 241.82 200.105 l 241.824 200.105 l 241.828 200.109 l 241.832 200.109 l
+ 241.84 200.117 l 241.844 200.117 l 241.844 200.121 l 241.848 200.121 l 
+241.852 200.125 l 241.855 200.125 l 241.855 200.129 l 241.863 200.129 l 
+241.863 200.133 l 241.867 200.133 l 241.867 200.137 l 241.875 200.137 l 
+241.875 200.141 l 241.879 200.141 l 241.883 200.145 l 241.887 200.145 l 
+241.887 200.148 l 241.891 200.148 l 241.895 200.152 l 241.898 200.152 l 
+241.906 200.16 l 241.91 200.16 l 241.918 200.168 l 241.922 200.168 l 241.93
+ 200.176 l 241.934 200.176 l 241.938 200.18 l 241.941 200.18 l 241.941 200.184
+ l 241.949 200.184 l 241.949 200.188 l 241.953 200.188 l 241.953 200.191
+ l 241.957 200.191 l 241.961 200.195 l 241.965 200.195 l 241.973 200.203
+ l 241.977 200.203 l 241.984 200.211 l 241.988 200.211 l 241.996 200.219
+ l 242 200.219 l 242.004 200.223 l 242.008 200.223 l 242.008 200.227 l 242.012
+ 200.227 l 242.016 200.23 l 242.02 200.23 l 242.02 200.234 l 242.027 200.234
+ l 242.027 200.238 l 242.031 200.238 l 242.035 200.242 l 242.039 200.242
+ l 242.039 200.246 l 242.043 200.246 l 242.047 200.25 l 242.051 200.25 l
+ 242.059 200.258 l 242.062 200.258 l 242.07 200.266 l 242.074 200.266 l 
+242.082 200.273 l 242.086 200.273 l 242.09 200.277 l 242.094 200.277 l 242.094
+ 200.281 l 242.098 200.281 l 242.102 200.285 l 242.105 200.285 l 242.105
+ 200.289 l 242.109 200.289 l 242.113 200.293 l 242.117 200.293 l 242.117
+ 200.297 l 242.121 200.297 l 242.125 200.301 l 242.129 200.301 l 242.137
+ 200.309 l 242.141 200.309 l 242.148 200.316 l 242.152 200.316 l 242.156
+ 200.32 l 242.16 200.32 l 242.16 200.324 l 242.164 200.324 l 242.168 200.328
+ l 242.172 200.328 l 242.172 200.332 l 242.18 200.332 l 242.18 200.336 l
+ 242.184 200.336 l 242.184 200.34 l 242.191 200.34 l 242.191 200.344 l 242.195
+ 200.344 l 242.199 200.348 l 242.203 200.348 l 242.203 200.352 l 242.207
+ 200.352 l 242.211 200.355 l 242.215 200.355 l 242.223 200.363 l 242.227
+ 200.363 l 242.234 200.371 l 242.238 200.371 l 242.242 200.375 l 242.246
+ 200.375 l 242.246 200.379 l 242.25 200.379 l 242.254 200.383 l 242.258 
+200.383 l 242.258 200.387 l 242.266 200.387 l 242.266 200.391 l 242.27 200.391
+ l 242.27 200.395 l 242.277 200.395 l 242.277 200.398 l 242.281 200.398 
+l 242.285 200.402 l 242.289 200.402 l 242.289 200.406 l 242.293 200.406 
+l 242.297 200.41 l 242.301 200.41 l 242.309 200.418 l 242.312 200.418 l 
+242.32 200.426 l 242.324 200.426 l 242.328 200.43 l 242.332 200.43 l 242.332
+ 200.434 l 242.336 200.434 l 242.34 200.438 l 242.344 200.438 l 242.344 
+200.441 l 242.352 200.441 l 242.352 200.445 l 242.355 200.445 l 242.355 
+200.449 l 242.363 200.449 l 242.363 200.453 l 242.367 200.453 l 242.371 
+200.457 l 242.375 200.457 l 242.375 200.461 l 242.379 200.461 l 242.383 
+200.465 l 242.387 200.465 l 242.395 200.473 l 242.398 200.473 l 242.406 
+200.48 l 242.41 200.48 l 242.414 200.484 l 242.418 200.484 l 242.418 200.488
+ l 242.422 200.488 l 242.426 200.492 l 242.43 200.492 l 242.43 200.496 l
+ 242.438 200.496 l 242.438 200.5 l 242.441 200.5 l 242.441 200.504 l 242.449
+ 200.504 l 242.449 200.508 l 242.453 200.508 l 242.457 200.512 l 242.461
+ 200.512 l 242.461 200.516 l 242.465 200.516 l 242.469 200.52 l 242.473 
+200.52 l 242.48 200.527 l 242.484 200.527 l 242.492 200.535 l 242.496 200.535
+ l 242.504 200.543 l 242.508 200.543 l 242.512 200.547 l 242.516 200.547
+ l 242.516 200.551 l 242.523 200.551 l 242.523 200.555 l 242.527 200.555
+ l 242.527 200.559 l 242.535 200.559 l 242.535 200.562 l 242.539 200.562
+ l 242.543 200.566 l 242.547 200.566 l 242.547 200.57 l 242.551 200.57 l
+ 242.555 200.574 l 242.559 200.574 l 242.566 200.582 l 242.57 200.582 l 
+242.578 200.59 l 242.582 200.59 l 242.59 200.598 l 242.594 200.598 l 242.598
+ 200.602 l 242.602 200.602 l 242.602 200.605 l 242.609 200.605 l 242.609
+ 200.609 l 242.613 200.609 l 242.613 200.613 l 242.621 200.613 l 242.621
+ 200.617 l 242.625 200.617 l 242.629 200.621 l 242.633 200.621 l 242.633
+ 200.625 l 242.637 200.625 l 242.641 200.629 l 242.645 200.629 l 242.652
+ 200.637 l 242.656 200.637 l 242.664 200.645 l 242.668 200.645 l 242.676
+ 200.652 l 242.68 200.652 l 242.684 200.656 l 242.688 200.656 l 242.688 
+200.66 l 242.691 200.66 l 242.695 200.664 l 242.699 200.664 l 242.699 200.668
+ l 242.707 200.668 l 242.707 200.672 l 242.711 200.672 l 242.715 200.676
+ l 242.719 200.676 l 242.719 200.68 l 242.727 200.68 l 242.727 200.684 l
+ 242.73 200.684 l 242.734 200.688 l 242.738 200.688 l 242.738 200.691 l 
+242.742 200.691 l 242.746 200.695 l 242.75 200.695 l 242.758 200.703 l 242.762
+ 200.703 l 242.77 200.711 l 242.773 200.711 l 242.781 200.719 l 242.785 
+200.719 l 242.789 200.723 l 242.793 200.723 l 242.793 200.727 l 242.801 
+200.727 l 242.801 200.73 l 242.805 200.73 l 242.805 200.734 l 242.812 200.734
+ l 242.812 200.738 l 242.816 200.738 l 242.82 200.742 l 242.824 200.742 
+l 242.824 200.746 l 242.828 200.746 l 242.832 200.75 l 242.836 200.75 l 
+242.844 200.758 l 242.848 200.758 l 242.855 200.766 l 242.859 200.766 l 
+242.867 200.773 l 242.871 200.773 l 242.875 200.777 l 242.879 200.777 l 
+242.887 200.785 l 242.891 200.785 l 242.895 200.789 l 242.898 200.789 l 
+242.898 200.793 l 242.906 200.793 l 242.906 200.797 l 242.91 200.797 l 242.91
+ 200.801 l 242.918 200.801 l 242.918 200.805 l 242.922 200.805 l 242.926
+ 200.809 l 242.93 200.809 l 242.93 200.812 l 242.934 200.812 l 242.938 200.816
+ l 242.941 200.816 l 242.949 200.824 l 242.953 200.824 l 242.961 200.832
+ l 242.965 200.832 l 242.973 200.84 l 242.977 200.84 l 242.98 200.844 l 
+242.984 200.844 l 242.984 200.848 l 242.992 200.848 l 242.992 200.852 l 
+242.996 200.852 l 243 200.855 l 243.004 200.855 l 243.004 200.859 l 243.012
+ 200.859 l 243.012 200.863 l 243.016 200.863 l 243.016 200.867 l 243.023
+ 200.867 l 243.023 200.871 l 243.027 200.871 l 243.031 200.875 l 243.035
+ 200.875 l 243.035 200.879 l 243.039 200.879 l 243.043 200.883 l 243.047
+ 200.883 l 243.055 200.891 l 243.059 200.891 l 243.066 200.898 l 243.07 
+200.898 l 243.078 200.906 l 243.082 200.906 l 243.086 200.91 l 243.09 200.91
+ l 243.09 200.914 l 243.098 200.914 l 243.098 200.918 l 243.102 200.918 
+l 243.105 200.922 l 243.109 200.922 l 243.109 200.926 l 243.117 200.926 
+l 243.117 200.93 l 243.121 200.93 l 243.121 200.934 l 243.129 200.934 l 
+243.129 200.938 l 243.133 200.938 l 243.137 200.941 l 243.141 200.941 l 
+243.141 200.945 l 243.145 200.945 l 243.148 200.949 l 243.152 200.949 l 
+243.16 200.957 l 243.164 200.957 l 243.172 200.965 l 243.176 200.965 l 243.18
+ 200.969 l 243.184 200.969 l 243.191 200.977 l 243.195 200.977 l 243.199
+ 200.98 l 243.203 200.98 l 243.203 200.984 l 243.207 200.984 l 243.211 200.988
+ l 243.215 200.988 l 243.215 200.992 l 243.223 200.992 l 243.223 200.996
+ l 243.227 200.996 l 243.227 201 l 243.234 201 l 243.234 201.004 l 243.238
+ 201.004 l 243.242 201.008 l 243.246 201.008 l 243.246 201.012 l 243.25 
+201.012 l 243.254 201.016 l 243.258 201.016 l 243.262 201.02 l 243.266 201.02
+ l 243.266 201.023 l 243.27 201.023 l 243.273 201.027 l 243.277 201.027 
+l 243.285 201.035 l 243.289 201.035 l 243.297 201.043 l 243.301 201.043 
+l 243.305 201.047 l 243.309 201.047 l 243.309 201.051 l 243.312 201.051 
+l 243.316 201.055 l 243.32 201.055 l 243.32 201.059 l 243.328 201.059 l 
+243.328 201.062 l 243.332 201.062 l 243.336 201.066 l 243.34 201.066 l 243.34
+ 201.07 l 243.348 201.07 l 243.348 201.074 l 243.352 201.074 l 243.352 201.078
+ l 243.359 201.078 l 243.359 201.082 l 243.363 201.082 l 243.367 201.086
+ l 243.371 201.086 l 243.371 201.09 l 243.375 201.09 l 243.379 201.094 l
+ 243.383 201.094 l 243.387 201.098 l 243.391 201.098 l 243.398 201.105 l
+ 243.402 201.105 l 243.41 201.113 l 243.414 201.113 l 243.422 201.121 l 
+243.426 201.121 l 243.43 201.125 l 243.434 201.125 l 243.434 201.129 l 243.438
+ 201.129 l 243.441 201.133 l 243.445 201.133 l 243.445 201.137 l 243.453
+ 201.137 l 243.453 201.141 l 243.457 201.141 l 243.461 201.145 l 243.465
+ 201.145 l 243.465 201.148 l 243.473 201.148 l 243.473 201.152 l 243.477
+ 201.152 l 243.48 201.156 l 243.484 201.156 l 243.484 201.16 l 243.488 201.16
+ l 243.492 201.164 l 243.496 201.164 l 243.504 201.172 l 243.508 201.172
+ l 243.512 201.176 l 243.516 201.176 l 243.523 201.184 l 243.527 201.184
+ l 243.535 201.191 l 243.539 201.191 l 243.547 201.199 l 243.551 201.199
+ l 243.555 201.203 l 243.559 201.203 l 243.559 201.207 l 243.562 201.207
+ l 243.566 201.211 l 243.57 201.211 l 243.574 201.215 l 243.578 201.215 
+l 243.578 201.219 l 243.586 201.219 l 243.586 201.223 l 243.59 201.223 l
+ 243.59 201.227 l 243.598 201.227 l 243.598 201.23 l 243.602 201.23 l 243.605
+ 201.234 l 243.609 201.234 l 243.609 201.238 l 243.613 201.238 l 243.617
+ 201.242 l 243.621 201.242 l 243.625 201.246 l 243.629 201.246 l 243.629
+ 201.25 l 243.633 201.25 l 243.637 201.254 l 243.641 201.254 l 243.648 201.262
+ l 243.652 201.262 l 243.66 201.27 l 243.664 201.27 l 243.668 201.273 l 
+243.672 201.273 l 243.68 201.281 l 243.684 201.281 l 243.688 201.285 l 243.691
+ 201.285 l 243.691 201.289 l 243.695 201.289 l 243.699 201.293 l 243.703
+ 201.293 l 243.703 201.297 l 243.711 201.297 l 243.711 201.301 l 243.715
+ 201.301 l 243.719 201.305 l 243.723 201.305 l 243.723 201.309 l 243.73 
+201.309 l 243.73 201.312 l 243.734 201.312 l 243.734 201.316 l 243.742 201.316
+ l 243.742 201.32 l 243.746 201.32 l 243.75 201.324 l 243.754 201.324 l 
+243.754 201.328 l 243.758 201.328 l 243.762 201.332 l 243.766 201.332 l 
+243.77 201.336 l 243.773 201.336 l 243.781 201.344 l 243.785 201.344 l 243.793
+ 201.352 l 243.797 201.352 l 243.805 201.359 l 243.809 201.359 l 243.812
+ 201.363 l 243.816 201.363 l 243.824 201.371 l 243.828 201.371 l 243.832
+ 201.375 l 243.836 201.375 l 243.836 201.379 l 243.84 201.379 l 243.844 
+201.383 l 243.848 201.383 l 243.848 201.387 l 243.855 201.387 l 243.855 
+201.391 l 243.863 201.391 l 243.863 201.395 l 243.867 201.395 l 243.867 
+201.398 l 243.875 201.398 l 243.875 201.402 l 243.879 201.402 l 243.883 
+201.406 l 243.887 201.406 l 243.887 201.41 l 243.891 201.41 l 243.895 201.414
+ l 243.898 201.414 l 243.902 201.418 l 243.906 201.418 l 243.906 201.422
+ l 243.91 201.422 l 243.914 201.426 l 243.918 201.426 l 243.926 201.434 
+l 243.93 201.434 l 243.934 201.438 l 243.938 201.438 l 243.945 201.445 l
+ 243.949 201.445 l 243.957 201.453 l 243.961 201.453 l 243.965 201.457 l
+ 243.969 201.457 l 243.969 201.461 l 243.973 201.461 l 243.977 201.465 l
+ 243.98 201.465 l 243.984 201.469 l 243.988 201.469 l 243.988 201.473 l 
+243.992 201.473 l 243.996 201.477 l 244 201.477 l 244 201.48 l 244.008 201.48
+ l 244.008 201.484 l 244.012 201.484 l 244.012 201.488 l 244.02 201.488 
+l 244.02 201.492 l 244.027 201.492 l 244.027 201.496 l 244.031 201.496 l
+ 244.031 201.5 l 244.039 201.5 l 244.039 201.504 l 244.043 201.504 l 244.047
+ 201.508 l 244.051 201.508 l 244.055 201.512 l 244.059 201.512 l 244.059
+ 201.516 l 244.062 201.516 l 244.066 201.52 l 244.07 201.52 l 244.078 201.527
+ l 244.082 201.527 l 244.086 201.531 l 244.09 201.531 l 244.098 201.539 
+l 244.102 201.539 l 244.109 201.547 l 244.113 201.547 l 244.121 201.555 
+l 244.125 201.555 l 244.129 201.559 l 244.133 201.559 l 244.141 201.566 
+l 244.145 201.566 l 244.148 201.57 l 244.152 201.57 l 244.152 201.574 l 
+244.16 201.574 l 244.16 201.578 l 244.164 201.578 l 244.168 201.582 l 244.172
+ 201.582 l 244.172 201.586 l 244.18 201.586 l 244.18 201.59 l 244.184 201.59
+ l 244.184 201.594 l 244.191 201.594 l 244.191 201.598 l 244.199 201.598
+ l 244.199 201.602 l 244.203 201.602 l 244.203 201.605 l 244.211 201.605
+ l 244.211 201.609 l 244.215 201.609 l 244.219 201.613 l 244.223 201.613
+ l 244.223 201.617 l 244.227 201.617 l 244.23 201.621 l 244.234 201.621 
+l 244.238 201.625 l 244.242 201.625 l 244.25 201.633 l 244.254 201.633 l
+ 244.262 201.641 l 244.266 201.641 l 244.27 201.645 l 244.273 201.645 l 
+244.281 201.652 l 244.285 201.652 l 244.293 201.66 l 244.297 201.66 l 244.301
+ 201.664 l 244.305 201.664 l 244.312 201.672 l 244.316 201.672 l 244.32 
+201.676 l 244.324 201.676 l 244.324 201.68 l 244.328 201.68 l 244.332 201.684
+ l 244.336 201.684 l 244.34 201.688 l 244.344 201.688 l 244.344 201.691 
+l 244.352 201.691 l 244.352 201.695 l 244.355 201.695 l 244.355 201.699 
+l 244.363 201.699 l 244.363 201.703 l 244.371 201.703 l 244.371 201.707 
+l 244.375 201.707 l 244.375 201.711 l 244.383 201.711 l 244.383 201.715 
+l 244.387 201.715 l 244.391 201.719 l 244.395 201.719 l 244.395 201.723 
+l 244.402 201.723 l 244.402 201.727 l 244.406 201.727 l 244.41 201.73 l 
+244.414 201.73 l 244.414 201.734 l 244.418 201.734 l 244.422 201.738 l 244.426
+ 201.738 l 244.43 201.742 l 244.434 201.742 l 244.441 201.75 l 244.445 201.75
+ l 244.453 201.758 l 244.457 201.758 l 244.461 201.762 l 244.465 201.762
+ l 244.473 201.77 l 244.477 201.77 l 244.484 201.777 l 244.488 201.777 l
+ 244.492 201.781 l 244.496 201.781 l 244.504 201.789 l 244.508 201.789 l
+ 244.512 201.793 l 244.516 201.793 l 244.516 201.797 l 244.52 201.797 l 
+244.523 201.801 l 244.527 201.801 l 244.531 201.805 l 244.535 201.805 l 
+244.535 201.809 l 244.543 201.809 l 244.543 201.812 l 244.547 201.812 l 
+244.551 201.816 l 244.555 201.816 l 244.555 201.82 l 244.562 201.82 l 244.562
+ 201.824 l 244.566 201.824 l 244.566 201.828 l 244.574 201.828 l 244.574
+ 201.832 l 244.582 201.832 l 244.582 201.836 l 244.586 201.836 l 244.586
+ 201.84 l 244.594 201.84 l 244.594 201.844 l 244.598 201.844 l 244.602 201.848
+ l 244.605 201.848 l 244.605 201.852 l 244.613 201.852 l 244.613 201.855
+ l 244.617 201.855 l 244.621 201.859 l 244.625 201.859 l 244.633 201.867
+ l 244.637 201.867 l 244.641 201.871 l 244.645 201.871 l 244.652 201.879
+ l 244.656 201.879 l 244.66 201.883 l 244.664 201.883 l 244.672 201.891 
+l 244.676 201.891 l 244.684 201.898 l 244.688 201.898 l 244.691 201.902 
+l 244.695 201.902 l 244.703 201.91 l 244.707 201.91 l 244.711 201.914 l 
+244.715 201.914 l 244.723 201.922 l 244.727 201.922 l 244.73 201.926 l 244.734
+ 201.926 l 244.734 201.93 l 244.738 201.93 l 244.742 201.934 l 244.746 201.934
+ l 244.75 201.938 l 244.754 201.938 l 244.754 201.941 l 244.758 201.941 
+l 244.762 201.945 l 244.766 201.945 l 244.766 201.949 l 244.773 201.949 
+l 244.773 201.953 l 244.777 201.953 l 244.781 201.957 l 244.785 201.957 
+l 244.785 201.961 l 244.793 201.961 l 244.793 201.965 l 244.797 201.965 
+l 244.801 201.969 l 244.805 201.969 l 244.805 201.973 l 244.812 201.973 
+l 244.812 201.977 l 244.816 201.977 l 244.82 201.98 l 244.824 201.98 l 244.824
+ 201.984 l 244.832 201.984 l 244.832 201.988 l 244.836 201.988 l 244.84 
+201.992 l 244.844 201.992 l 244.844 201.996 l 244.852 201.996 l 244.852 
+202 l 244.855 202 l 244.859 202.004 l 244.863 202.004 l 244.863 202.008 
+l 244.867 202.008 l 244.871 202.012 l 244.875 202.012 l 244.879 202.016 
+l 244.883 202.016 l 244.883 202.02 l 244.887 202.02 l 244.891 202.023 l 
+244.895 202.023 l 244.898 202.027 l 244.902 202.027 l 244.902 202.031 l 
+244.906 202.031 l 244.91 202.035 l 244.914 202.035 l 244.922 202.043 l 244.926
+ 202.043 l 244.93 202.047 l 244.934 202.047 l 244.941 202.055 l 244.945 
+202.055 l 244.949 202.059 l 244.953 202.059 l 244.961 202.066 l 244.965 
+202.066 l 244.969 202.07 l 244.973 202.07 l 244.98 202.078 l 244.984 202.078
+ l 244.992 202.086 l 244.996 202.086 l 245 202.09 l 245.004 202.09 l 245.008
+ 202.094 l 245.012 202.094 l 245.012 202.098 l 245.016 202.098 l 245.02 
+202.102 l 245.023 202.102 l 245.027 202.105 l 245.031 202.105 l 245.031 
+202.109 l 245.035 202.109 l 245.039 202.113 l 245.043 202.113 l 245.043 
+202.117 l 245.051 202.117 l 245.051 202.121 l 245.055 202.121 l 245.059 
+202.125 l 245.062 202.125 l 245.062 202.129 l 245.07 202.129 l 245.07 202.133
+ l 245.074 202.133 l 245.078 202.137 l 245.082 202.137 l 245.082 202.141
+ l 245.09 202.141 l 245.09 202.145 l 245.094 202.145 l 245.098 202.148 l
+ 245.102 202.148 l 245.102 202.152 l 245.109 202.152 l 245.109 202.156 l
+ 245.117 202.156 l 245.117 202.16 l 245.121 202.16 l 245.121 202.164 l 245.129
+ 202.164 l 245.129 202.168 l 245.133 202.168 l 245.137 202.172 l 245.141
+ 202.172 l 245.141 202.176 l 245.148 202.176 l 245.148 202.18 l 245.152 
+202.18 l 245.156 202.184 l 245.16 202.184 l 245.16 202.188 l 245.168 202.188
+ l 245.168 202.191 l 245.172 202.191 l 245.176 202.195 l 245.18 202.195 
+l 245.18 202.199 l 245.188 202.199 l 245.188 202.203 l 245.191 202.203 l
+ 245.195 202.207 l 245.199 202.207 l 245.199 202.211 l 245.207 202.211 l
+ 245.207 202.215 l 245.211 202.215 l 245.215 202.219 l 245.219 202.219 l
+ 245.227 202.227 l 245.23 202.227 l 245.234 202.23 l 245.238 202.23 l 245.246
+ 202.238 l 245.25 202.238 l 245.254 202.242 l 245.258 202.242 l 245.266 
+202.25 l 245.27 202.25 l 245.273 202.254 l 245.277 202.254 l 245.285 202.262
+ l 245.289 202.262 l 245.293 202.266 l 245.297 202.266 l 245.305 202.273
+ l 245.309 202.273 l 245.312 202.277 l 245.316 202.277 l 245.324 202.285
+ l 245.328 202.285 l 245.336 202.293 l 245.34 202.293 l 245.344 202.297 
+l 245.348 202.297 l 245.355 202.305 l 245.359 202.305 l 245.363 202.309 
+l 245.367 202.309 l 245.375 202.316 l 245.379 202.316 l 245.383 202.32 l
+ 245.387 202.32 l 245.395 202.328 l 245.398 202.328 l 245.402 202.332 l 
+245.406 202.332 l 245.41 202.336 l 245.414 202.336 l 245.414 202.34 l 245.418
+ 202.34 l 245.422 202.344 l 245.426 202.344 l 245.43 202.348 l 245.434 202.348
+ l 245.434 202.352 l 245.438 202.352 l 245.441 202.355 l 245.445 202.355
+ l 245.449 202.359 l 245.453 202.359 l 245.453 202.363 l 245.457 202.363
+ l 245.461 202.367 l 245.465 202.367 l 245.469 202.371 l 245.473 202.371
+ l 245.473 202.375 l 245.477 202.375 l 245.48 202.379 l 245.484 202.379 
+l 245.488 202.383 l 245.492 202.383 l 245.492 202.387 l 245.5 202.387 l 
+245.5 202.391 l 245.504 202.391 l 245.508 202.395 l 245.512 202.395 l 245.512
+ 202.398 l 245.52 202.398 l 245.52 202.402 l 245.523 202.402 l 245.527 202.406
+ l 245.531 202.406 l 245.531 202.41 l 245.539 202.41 l 245.539 202.414 l
+ 245.543 202.414 l 245.547 202.418 l 245.551 202.418 l 245.551 202.422 l
+ 245.559 202.422 l 245.559 202.426 l 245.562 202.426 l 245.566 202.43 l 
+245.57 202.43 l 245.57 202.434 l 245.578 202.434 l 245.578 202.438 l 245.582
+ 202.438 l 245.582 202.441 l 245.59 202.441 l 245.59 202.445 l 245.598 202.445
+ l 245.598 202.449 l 245.602 202.449 l 245.605 202.453 l 245.609 202.453
+ l 245.609 202.457 l 245.617 202.457 l 245.617 202.461 l 245.621 202.461
+ l 245.625 202.465 l 245.629 202.465 l 245.629 202.469 l 245.637 202.469
+ l 245.637 202.473 l 245.645 202.473 l 245.645 202.477 l 245.648 202.477
+ l 245.648 202.48 l 245.656 202.48 l 245.656 202.484 l 245.664 202.484 l
+ 245.664 202.488 l 245.668 202.488 l 245.668 202.492 l 245.676 202.492 l
+ 245.676 202.496 l 245.684 202.496 l 245.684 202.5 l 245.688 202.5 l 245.691
+ 202.504 l 245.695 202.504 l 245.695 202.508 l 245.703 202.508 l 245.703
+ 202.512 l 245.707 202.512 l 245.711 202.516 l 245.715 202.516 l 245.715
+ 202.52 l 245.723 202.52 l 245.723 202.523 l 245.727 202.523 l 245.73 202.527
+ l 245.734 202.527 l 245.734 202.531 l 245.742 202.531 l 245.742 202.535
+ l 245.746 202.535 l 245.75 202.539 l 245.754 202.539 l 245.754 202.543 
+l 245.762 202.543 l 245.762 202.547 l 245.766 202.547 l 245.77 202.551 l
+ 245.773 202.551 l 245.773 202.555 l 245.781 202.555 l 245.781 202.559 l
+ 245.785 202.559 l 245.789 202.562 l 245.793 202.562 l 245.797 202.566 l
+ 245.801 202.566 l 245.801 202.57 l 245.805 202.57 l 245.809 202.574 l 245.812
+ 202.574 l 245.816 202.578 l 245.82 202.578 l 245.82 202.582 l 245.824 202.582
+ l 245.828 202.586 l 245.832 202.586 l 245.836 202.59 l 245.84 202.59 l 
+245.84 202.594 l 245.844 202.594 l 245.848 202.598 l 245.852 202.598 l 245.855
+ 202.602 l 245.859 202.602 l 245.859 202.605 l 245.863 202.605 l 245.867
+ 202.609 l 245.871 202.609 l 245.875 202.613 l 245.879 202.613 l 245.887
+ 202.621 l 245.891 202.621 l 245.895 202.625 l 245.898 202.625 l 245.902
+ 202.629 l 245.906 202.629 l 245.906 202.633 l 245.91 202.633 l 245.914 
+202.637 l 245.918 202.637 l 245.922 202.641 l 245.926 202.641 l 245.926 
+202.645 l 245.93 202.645 l 245.934 202.648 l 245.938 202.648 l 245.941 202.652
+ l 245.945 202.652 l 245.945 202.656 l 245.949 202.656 l 245.953 202.66 
+l 245.957 202.66 l 245.961 202.664 l 245.965 202.664 l 245.965 202.668 l
+ 245.969 202.668 l 245.973 202.672 l 245.977 202.672 l 245.98 202.676 l 
+245.984 202.676 l 245.992 202.684 l 245.996 202.684 l 246 202.688 l 246.004
+ 202.688 l 246.012 202.695 l 246.016 202.695 l 246.02 202.699 l 246.023 
+202.699 l 246.027 202.703 l 246.031 202.703 l 246.031 202.707 l 246.035 
+202.707 l 246.039 202.711 l 246.043 202.711 l 246.047 202.715 l 246.051 
+202.715 l 246.051 202.719 l 246.055 202.719 l 246.059 202.723 l 246.062 
+202.723 l 246.066 202.727 l 246.07 202.727 l 246.078 202.734 l 246.082 202.734
+ l 246.086 202.738 l 246.09 202.738 l 246.098 202.746 l 246.102 202.746 
+l 246.105 202.75 l 246.109 202.75 l 246.113 202.754 l 246.117 202.754 l 
+246.117 202.758 l 246.121 202.758 l 246.125 202.762 l 246.129 202.762 l 
+246.133 202.766 l 246.137 202.766 l 246.137 202.77 l 246.141 202.77 l 246.145
+ 202.773 l 246.148 202.773 l 246.152 202.777 l 246.156 202.777 l 246.156
+ 202.781 l 246.16 202.781 l 246.164 202.785 l 246.168 202.785 l 246.172 
+202.789 l 246.176 202.789 l 246.18 202.793 l 246.184 202.793 l 246.184 202.797
+ l 246.188 202.797 l 246.191 202.801 l 246.195 202.801 l 246.199 202.805
+ l 246.203 202.805 l 246.203 202.809 l 246.207 202.809 l 246.211 202.812
+ l 246.215 202.812 l 246.219 202.816 l 246.223 202.816 l 246.223 202.82 
+l 246.227 202.82 l 246.23 202.824 l 246.234 202.824 l 246.238 202.828 l 
+246.242 202.828 l 246.242 202.832 l 246.25 202.832 l 246.25 202.836 l 246.254
+ 202.836 l 246.258 202.84 l 246.262 202.84 l 246.266 202.844 l 246.27 202.844
+ l 246.27 202.848 l 246.273 202.848 l 246.277 202.852 l 246.281 202.852 
+l 246.285 202.855 l 246.289 202.855 l 246.289 202.859 l 246.293 202.859 
+l 246.297 202.863 l 246.301 202.863 l 246.305 202.867 l 246.309 202.867 
+l 246.309 202.871 l 246.316 202.871 l 246.316 202.875 l 246.32 202.875 l
+ 246.324 202.879 l 246.328 202.879 l 246.328 202.883 l 246.336 202.883 l
+ 246.336 202.887 l 246.34 202.887 l 246.344 202.891 l 246.348 202.891 l 
+246.348 202.895 l 246.355 202.895 l 246.355 202.898 l 246.359 202.898 l 
+246.363 202.902 l 246.367 202.902 l 246.371 202.906 l 246.375 202.906 l 
+246.375 202.91 l 246.383 202.91 l 246.383 202.914 l 246.387 202.914 l 246.391
+ 202.918 l 246.395 202.918 l 246.395 202.922 l 246.402 202.922 l 246.402
+ 202.926 l 246.406 202.926 l 246.41 202.93 l 246.414 202.93 l 246.414 202.934
+ l 246.422 202.934 l 246.422 202.938 l 246.43 202.938 l 246.43 202.941 l
+ 246.434 202.941 l 246.434 202.945 l 246.441 202.945 l 246.441 202.949 l
+ 246.449 202.949 l 246.449 202.953 l 246.453 202.953 l 246.457 202.957 l
+ 246.461 202.957 l 246.461 202.961 l 246.469 202.961 l 246.469 202.965 l
+ 246.477 202.965 l 246.477 202.969 l 246.48 202.969 l 246.48 202.973 l 246.488
+ 202.973 l 246.488 202.977 l 246.496 202.977 l 246.496 202.98 l 246.5 202.98
+ l 246.5 202.984 l 246.508 202.984 l 246.508 202.988 l 246.516 202.988 l
+ 246.516 202.992 l 246.52 202.992 l 246.523 202.996 l 246.527 202.996 l 
+246.527 203 l 246.535 203 l 246.535 203.004 l 246.539 203.004 l 246.543 
+203.008 l 246.547 203.008 l 246.547 203.012 l 246.555 203.012 l 246.555 
+203.016 l 246.562 203.016 l 246.562 203.02 l 246.566 203.02 l 246.57 203.023
+ l 246.574 203.023 l 246.574 203.027 l 246.582 203.027 l 246.582 203.031
+ l 246.586 203.031 l 246.59 203.035 l 246.594 203.035 l 246.594 203.039 
+l 246.602 203.039 l 246.602 203.043 l 246.605 203.043 l 246.609 203.047 
+l 246.613 203.047 l 246.617 203.051 l 246.621 203.051 l 246.621 203.055 
+l 246.625 203.055 l 246.629 203.059 l 246.633 203.059 l 246.637 203.062 
+l 246.641 203.062 l 246.645 203.066 l 246.648 203.066 l 246.648 203.07 l
+ 246.652 203.07 l 246.656 203.074 l 246.66 203.074 l 246.664 203.078 l 246.668
+ 203.078 l 246.668 203.082 l 246.672 203.082 l 246.676 203.086 l 246.68 
+203.086 l 246.684 203.09 l 246.688 203.09 l 246.695 203.098 l 246.699 203.098
+ l 246.703 203.102 l 246.707 203.102 l 246.711 203.105 l 246.715 203.105
+ l 246.723 203.113 l 246.727 203.113 l 246.73 203.117 l 246.734 203.117 
+l 246.742 203.125 l 246.746 203.125 l 246.75 203.129 l 246.754 203.129 l
+ 246.758 203.133 l 246.762 203.133 l 246.77 203.141 l 246.773 203.141 l 
+246.777 203.145 l 246.781 203.145 l 246.785 203.148 l 246.789 203.148 l 
+246.797 203.156 l 246.801 203.156 l 246.805 203.16 l 246.809 203.16 l 246.816
+ 203.168 l 246.82 203.168 l 246.824 203.172 l 246.828 203.172 l 246.832 
+203.176 l 246.836 203.176 l 246.844 203.184 l 246.848 203.184 l 246.852 
+203.188 l 246.855 203.188 l 246.859 203.191 l 246.863 203.191 l 246.863 
+203.195 l 246.867 203.195 l 246.871 203.199 l 246.875 203.199 l 246.879 
+203.203 l 246.883 203.203 l 246.883 203.207 l 246.891 203.207 l 246.891 
+203.211 l 246.895 203.211 l 246.898 203.215 l 246.902 203.215 l 246.902 
+203.219 l 246.91 203.219 l 246.91 203.223 l 246.918 203.223 l 246.918 203.227
+ l 246.922 203.227 l 246.922 203.23 l 246.93 203.23 l 246.93 203.234 l 246.938
+ 203.234 l 246.938 203.238 l 246.941 203.238 l 246.945 203.242 l 246.949
+ 203.242 l 246.949 203.246 l 246.957 203.246 l 246.957 203.25 l 246.965 
+203.25 l 246.965 203.254 l 246.969 203.254 l 246.969 203.258 l 246.977 203.258
+ l 246.977 203.262 l 246.984 203.262 l 246.984 203.266 l 246.988 203.266
+ l 246.992 203.27 l 246.996 203.27 l 246.996 203.273 l 247.004 203.273 l
+ 247.004 203.277 l 247.008 203.277 l 247.012 203.281 l 247.016 203.281 l
+ 247.02 203.285 l 247.023 203.285 l 247.023 203.289 l 247.031 203.289 l 
+247.031 203.293 l 247.035 203.293 l 247.039 203.297 l 247.043 203.297 l 
+247.047 203.301 l 247.051 203.301 l 247.051 203.305 l 247.055 203.305 l 
+247.059 203.309 l 247.062 203.309 l 247.066 203.312 l 247.07 203.312 l 247.078
+ 203.32 l 247.082 203.32 l 247.086 203.324 l 247.09 203.324 l 247.094 203.328
+ l 247.098 203.328 l 247.105 203.336 l 247.109 203.336 l 247.113 203.34 
+l 247.117 203.34 l 247.121 203.344 l 247.125 203.344 l 247.133 203.352 l
+ 247.137 203.352 l 247.141 203.355 l 247.145 203.355 l 247.148 203.359 l
+ 247.152 203.359 l 247.16 203.367 l 247.164 203.367 l 247.168 203.371 l 
+247.172 203.371 l 247.176 203.375 l 247.18 203.375 l 247.18 203.379 l 247.184
+ 203.379 l 247.188 203.383 l 247.191 203.383 l 247.195 203.387 l 247.199
+ 203.387 l 247.199 203.391 l 247.207 203.391 l 247.207 203.395 l 247.211
+ 203.395 l 247.215 203.398 l 247.219 203.398 l 247.223 203.402 l 247.227
+ 203.402 l 247.227 203.406 l 247.234 203.406 l 247.234 203.41 l 247.238 
+203.41 l 247.242 203.414 l 247.246 203.414 l 247.246 203.418 l 247.254 203.418
+ l 247.254 203.422 l 247.262 203.422 l 247.262 203.426 l 247.266 203.426
+ l 247.266 203.43 l 247.273 203.43 l 247.273 203.434 l 247.281 203.434 l
+ 247.281 203.438 l 247.285 203.438 l 247.289 203.441 l 247.293 203.441 l
+ 247.293 203.445 l 247.301 203.445 l 247.301 203.449 l 247.305 203.449 l
+ 247.309 203.453 l 247.312 203.453 l 247.316 203.457 l 247.32 203.457 l 
+247.324 203.461 l 247.328 203.461 l 247.328 203.465 l 247.332 203.465 l 
+247.336 203.469 l 247.34 203.469 l 247.344 203.473 l 247.348 203.473 l 247.355
+ 203.48 l 247.359 203.48 l 247.363 203.484 l 247.367 203.484 l 247.371 203.488
+ l 247.375 203.488 l 247.383 203.496 l 247.387 203.496 l 247.391 203.5 l
+ 247.395 203.5 l 247.398 203.504 l 247.402 203.504 l 247.41 203.512 l 247.414
+ 203.512 l 247.418 203.516 l 247.422 203.516 l 247.426 203.52 l 247.43 203.52
+ l 247.434 203.523 l 247.438 203.523 l 247.438 203.527 l 247.441 203.527
+ l 247.445 203.531 l 247.449 203.531 l 247.453 203.535 l 247.457 203.535
+ l 247.457 203.539 l 247.465 203.539 l 247.465 203.543 l 247.469 203.543
+ l 247.473 203.547 l 247.477 203.547 l 247.477 203.551 l 247.484 203.551
+ l 247.484 203.555 l 247.492 203.555 l 247.492 203.559 l 247.496 203.559
+ l 247.496 203.562 l 247.504 203.562 l 247.504 203.566 l 247.512 203.566
+ l 247.512 203.57 l 247.52 203.57 l 247.52 203.574 l 247.523 203.574 l 247.527
+ 203.578 l 247.531 203.578 l 247.531 203.582 l 247.539 203.582 l 247.539
+ 203.586 l 247.543 203.586 l 247.547 203.59 l 247.551 203.59 l 247.555 203.594
+ l 247.559 203.594 l 247.559 203.598 l 247.562 203.598 l 247.566 203.602
+ l 247.57 203.602 l 247.574 203.605 l 247.578 203.605 l 247.582 203.609 
+l 247.586 203.609 l 247.594 203.617 l 247.598 203.617 l 247.602 203.621 
+l 247.605 203.621 l 247.609 203.625 l 247.613 203.625 l 247.621 203.633 
+l 247.625 203.633 l 247.629 203.637 l 247.633 203.637 l 247.637 203.641 
+l 247.641 203.641 l 247.648 203.648 l 247.652 203.648 l 247.656 203.652 
+l 247.66 203.652 l 247.664 203.656 l 247.668 203.656 l 247.668 203.66 l 
+247.676 203.66 l 247.676 203.664 l 247.68 203.664 l 247.684 203.668 l 247.688
+ 203.668 l 247.688 203.672 l 247.695 203.672 l 247.695 203.676 l 247.703
+ 203.676 l 247.703 203.68 l 247.711 203.68 l 247.711 203.684 l 247.715 203.684
+ l 247.715 203.688 l 247.723 203.688 l 247.723 203.691 l 247.73 203.691 
+l 247.73 203.695 l 247.734 203.695 l 247.738 203.699 l 247.742 203.699 l
+ 247.742 203.703 l 247.75 203.703 l 247.75 203.707 l 247.754 203.707 l 247.758
+ 203.711 l 247.762 203.711 l 247.766 203.715 l 247.77 203.715 l 247.777 
+203.723 l 247.781 203.723 l 247.785 203.727 l 247.789 203.727 l 247.793 
+203.73 l 247.797 203.73 l 247.801 203.734 l 247.805 203.734 l 247.812 203.742
+ l 247.816 203.742 l 247.82 203.746 l 247.824 203.746 l 247.828 203.75 l
+ 247.832 203.75 l 247.84 203.758 l 247.844 203.758 l 247.848 203.762 l 247.852
+ 203.762 l 247.855 203.766 l 247.859 203.766 l 247.859 203.77 l 247.867 
+203.77 l 247.867 203.773 l 247.871 203.773 l 247.875 203.777 l 247.879 203.777
+ l 247.879 203.781 l 247.887 203.781 l 247.887 203.785 l 247.895 203.785
+ l 247.895 203.789 l 247.902 203.789 l 247.902 203.793 l 247.906 203.793
+ l 247.906 203.797 l 247.914 203.797 l 247.914 203.801 l 247.922 203.801
+ l 247.922 203.805 l 247.926 203.805 l 247.93 203.809 l 247.934 203.809 
+l 247.938 203.812 l 247.941 203.812 l 247.941 203.816 l 247.945 203.816 
+l 247.949 203.82 l 247.953 203.82 l 247.957 203.824 l 247.961 203.824 l 
+247.965 203.828 l 247.969 203.828 l 247.977 203.836 l 247.98 203.836 l 247.984
+ 203.84 l 247.988 203.84 l 247.992 203.844 l 247.996 203.844 l 248 203.848
+ l 248.004 203.848 l 248.012 203.855 l 248.016 203.855 l 248.02 203.859 
+l 248.023 203.859 l 248.027 203.863 l 248.031 203.863 l 248.031 203.867 
+l 248.039 203.867 l 248.039 203.871 l 248.043 203.871 l 248.047 203.875 
+l 248.051 203.875 l 248.051 203.879 l 248.059 203.879 l 248.059 203.883 
+l 248.066 203.883 l 248.066 203.887 l 248.07 203.887 l 248.074 203.891 l
+ 248.078 203.891 l 248.078 203.895 l 248.086 203.895 l 248.086 203.898 l
+ 248.094 203.898 l 248.094 203.902 l 248.098 203.902 l 248.102 203.906 l
+ 248.105 203.906 l 248.109 203.91 l 248.113 203.91 l 248.113 203.914 l 248.117
+ 203.914 l 248.121 203.918 l 248.125 203.918 l 248.129 203.922 l 248.133
+ 203.922 l 248.137 203.926 l 248.141 203.926 l 248.148 203.934 l 248.152
+ 203.934 l 248.156 203.938 l 248.16 203.938 l 248.164 203.941 l 248.168 
+203.941 l 248.172 203.945 l 248.176 203.945 l 248.18 203.949 l 248.184 203.949
+ l 248.184 203.953 l 248.188 203.953 l 248.191 203.957 l 248.195 203.957
+ l 248.199 203.961 l 248.203 203.961 l 248.203 203.965 l 248.211 203.965
+ l 248.211 203.969 l 248.219 203.969 l 248.219 203.973 l 248.223 203.973
+ l 248.223 203.977 l 248.23 203.977 l 248.23 203.98 l 248.238 203.98 l 248.238
+ 203.984 l 248.242 203.984 l 248.246 203.988 l 248.25 203.988 l 248.254 
+203.992 l 248.258 203.992 l 248.258 203.996 l 248.262 203.996 l 248.266 
+204 l 248.27 204 l 248.273 204.004 l 248.277 204.004 l 248.281 204.008 l
+ 248.285 204.008 l 248.289 204.012 l 248.293 204.012 l 248.301 204.02 l 
+248.305 204.02 l 248.309 204.023 l 248.312 204.023 l 248.316 204.027 l 248.32
+ 204.027 l 248.324 204.031 l 248.328 204.031 l 248.328 204.035 l 248.332
+ 204.035 l 248.336 204.039 l 248.34 204.039 l 248.344 204.043 l 248.348 
+204.043 l 248.348 204.047 l 248.355 204.047 l 248.355 204.051 l 248.363 
+204.051 l 248.363 204.055 l 248.371 204.055 l 248.371 204.059 l 248.375 
+204.059 l 248.375 204.062 l 248.383 204.062 l 248.383 204.066 l 248.391 
+204.066 l 248.391 204.07 l 248.395 204.07 l 248.398 204.074 l 248.402 204.074
+ l 248.406 204.078 l 248.41 204.078 l 248.418 204.086 l 248.422 204.086 
+l 248.426 204.09 l 248.43 204.09 l 248.434 204.094 l 248.438 204.094 l 248.441
+ 204.098 l 248.445 204.098 l 248.453 204.105 l 248.457 204.105 l 248.461
+ 204.109 l 248.465 204.109 l 248.469 204.113 l 248.473 204.113 l 248.477
+ 204.117 l 248.48 204.117 l 248.48 204.121 l 248.488 204.121 l 248.488 204.125
+ l 248.492 204.125 l 248.496 204.129 l 248.5 204.129 l 248.5 204.133 l 248.508
+ 204.133 l 248.508 204.137 l 248.516 204.137 l 248.516 204.141 l 248.52 
+204.141 l 248.523 204.145 l 248.527 204.145 l 248.531 204.148 l 248.535 
+204.148 l 248.535 204.152 l 248.539 204.152 l 248.543 204.156 l 248.547 
+204.156 l 248.551 204.16 l 248.555 204.16 l 248.559 204.164 l 248.562 204.164
+ l 248.566 204.168 l 248.57 204.168 l 248.578 204.176 l 248.582 204.176 
+l 248.586 204.18 l 248.59 204.18 l 248.594 204.184 l 248.598 204.184 l 248.602
+ 204.188 l 248.605 204.188 l 248.605 204.191 l 248.613 204.191 l 248.613
+ 204.195 l 248.617 204.195 l 248.621 204.199 l 248.625 204.199 l 248.625
+ 204.203 l 248.633 204.203 l 248.633 204.207 l 248.641 204.207 l 248.641
+ 204.211 l 248.645 204.211 l 248.648 204.215 l 248.652 204.215 l 248.656
+ 204.219 l 248.66 204.219 l 248.66 204.223 l 248.668 204.223 l 248.668 204.227
+ l 248.672 204.227 l 248.676 204.23 l 248.68 204.23 l 248.684 204.234 l 
+248.688 204.234 l 248.691 204.238 l 248.695 204.238 l 248.703 204.246 l 
+248.707 204.246 l 248.711 204.25 l 248.715 204.25 l 248.719 204.254 l 248.723
+ 204.254 l 248.727 204.258 l 248.73 204.258 l 248.73 204.262 l 248.738 204.262
+ l 248.738 204.266 l 248.746 204.266 l 248.746 204.27 l 248.75 204.27 l 
+248.75 204.273 l 248.758 204.273 l 248.758 204.277 l 248.766 204.277 l 248.766
+ 204.281 l 248.773 204.281 l 248.773 204.285 l 248.777 204.285 l 248.781
+ 204.289 l 248.785 204.289 l 248.789 204.293 l 248.793 204.293 l 248.793
+ 204.297 l 248.797 204.297 l 248.801 204.301 l 248.805 204.301 l 248.809
+ 204.305 l 248.812 204.305 l 248.816 204.309 l 248.82 204.309 l 248.824 
+204.312 l 248.828 204.312 l 248.832 204.316 l 248.836 204.316 l 248.836 
+204.32 l 248.84 204.32 l 248.844 204.324 l 248.848 204.324 l 248.852 204.328
+ l 248.855 204.328 l 248.859 204.332 l 248.863 204.332 l 248.863 204.336
+ l 248.871 204.336 l 248.871 204.34 l 248.879 204.34 l 248.879 204.344 l
+ 248.883 204.344 l 248.883 204.348 l 248.891 204.348 l 248.891 204.352 l
+ 248.898 204.352 l 248.898 204.355 l 248.902 204.355 l 248.906 204.359 l
+ 248.91 204.359 l 248.914 204.363 l 248.918 204.363 l 248.922 204.367 l 
+248.926 204.367 l 248.934 204.375 l 248.938 204.375 l 248.941 204.379 l 
+248.945 204.379 l 248.949 204.383 l 248.953 204.383 l 248.957 204.387 l 
+248.961 204.387 l 248.965 204.391 l 248.969 204.391 l 248.969 204.395 l 
+248.977 204.395 l 248.977 204.398 l 248.98 204.398 l 248.984 204.402 l 248.988
+ 204.402 l 248.988 204.406 l 248.996 204.406 l 248.996 204.41 l 249.004 
+204.41 l 249.004 204.414 l 249.008 204.414 l 249.012 204.418 l 249.016 204.418
+ l 249.02 204.422 l 249.023 204.422 l 249.031 204.43 l 249.035 204.43 l 
+249.039 204.434 l 249.043 204.434 l 249.047 204.438 l 249.051 204.438 l 
+249.055 204.441 l 249.059 204.441 l 249.062 204.445 l 249.066 204.445 l 
+249.07 204.449 l 249.074 204.449 l 249.074 204.453 l 249.078 204.453 l 249.082
+ 204.457 l 249.086 204.457 l 249.09 204.461 l 249.094 204.461 l 249.094 
+204.465 l 249.102 204.465 l 249.102 204.469 l 249.109 204.469 l 249.109 
+204.473 l 249.113 204.473 l 249.117 204.477 l 249.121 204.477 l 249.125 
+204.48 l 249.129 204.48 l 249.137 204.488 l 249.141 204.488 l 249.145 204.492
+ l 249.148 204.492 l 249.152 204.496 l 249.156 204.496 l 249.16 204.5 l 
+249.164 204.5 l 249.168 204.504 l 249.172 204.504 l 249.176 204.508 l 249.18
+ 204.508 l 249.18 204.512 l 249.184 204.512 l 249.188 204.516 l 249.191 
+204.516 l 249.195 204.52 l 249.199 204.52 l 249.199 204.523 l 249.207 204.523
+ l 249.207 204.527 l 249.215 204.527 l 249.215 204.531 l 249.219 204.531
+ l 249.223 204.535 l 249.227 204.535 l 249.23 204.539 l 249.234 204.539 
+l 249.238 204.543 l 249.242 204.543 l 249.242 204.547 l 249.246 204.547 
+l 249.25 204.551 l 249.254 204.551 l 249.258 204.555 l 249.262 204.555 l
+ 249.266 204.559 l 249.27 204.559 l 249.273 204.562 l 249.277 204.562 l 
+249.281 204.566 l 249.285 204.566 l 249.285 204.57 l 249.293 204.57 l 249.293
+ 204.574 l 249.297 204.574 l 249.301 204.578 l 249.305 204.578 l 249.305
+ 204.582 l 249.312 204.582 l 249.312 204.586 l 249.32 204.586 l 249.32 204.59
+ l 249.324 204.59 l 249.328 204.594 l 249.332 204.594 l 249.336 204.598 
+l 249.34 204.598 l 249.344 204.602 l 249.348 204.602 l 249.355 204.609 l
+ 249.359 204.609 l 249.363 204.613 l 249.367 204.613 l 249.371 204.617 l
+ 249.375 204.617 l 249.379 204.621 l 249.383 204.621 l 249.387 204.625 l
+ 249.391 204.625 l 249.391 204.629 l 249.398 204.629 l 249.398 204.633 l
+ 249.406 204.633 l 249.406 204.637 l 249.41 204.637 l 249.414 204.641 l 
+249.418 204.641 l 249.418 204.645 l 249.426 204.645 l 249.426 204.648 l 
+249.434 204.648 l 249.434 204.652 l 249.438 204.652 l 249.441 204.656 l 
+249.445 204.656 l 249.449 204.66 l 249.453 204.66 l 249.457 204.664 l 249.461
+ 204.664 l 249.465 204.668 l 249.469 204.668 l 249.473 204.672 l 249.477
+ 204.672 l 249.477 204.676 l 249.48 204.676 l 249.484 204.68 l 249.488 204.68
+ l 249.492 204.684 l 249.496 204.684 l 249.496 204.688 l 249.504 204.688
+ l 249.504 204.691 l 249.512 204.691 l 249.512 204.695 l 249.516 204.695
+ l 249.52 204.699 l 249.523 204.699 l 249.527 204.703 l 249.531 204.703 
+l 249.535 204.707 l 249.539 204.707 l 249.539 204.711 l 249.543 204.711 
+l 249.547 204.715 l 249.551 204.715 l 249.555 204.719 l 249.559 204.719 
+l 249.562 204.723 l 249.566 204.723 l 249.57 204.727 l 249.574 204.727 l
+ 249.578 204.73 l 249.582 204.73 l 249.582 204.734 l 249.59 204.734 l 249.59
+ 204.738 l 249.598 204.738 l 249.598 204.742 l 249.602 204.742 l 249.605
+ 204.746 l 249.609 204.746 l 249.609 204.75 l 249.617 204.75 l 249.617 204.754
+ l 249.625 204.754 l 249.625 204.758 l 249.629 204.758 l 249.633 204.762
+ l 249.637 204.762 l 249.641 204.766 l 249.645 204.766 l 249.648 204.77 
+l 249.652 204.77 l 249.656 204.773 l 249.66 204.773 l 249.664 204.777 l 
+249.668 204.777 l 249.668 204.781 l 249.672 204.781 l 249.676 204.785 l 
+249.68 204.785 l 249.684 204.789 l 249.688 204.789 l 249.688 204.793 l 249.695
+ 204.793 l 249.695 204.797 l 249.703 204.797 l 249.703 204.801 l 249.707
+ 204.801 l 249.711 204.805 l 249.715 204.805 l 249.719 204.809 l 249.723
+ 204.809 l 249.727 204.812 l 249.73 204.812 l 249.734 204.816 l 249.738 
+204.816 l 249.742 204.82 l 249.746 204.82 l 249.754 204.828 l 249.758 204.828
+ l 249.762 204.832 l 249.766 204.832 l 249.77 204.836 l 249.773 204.836 
+l 249.773 204.84 l 249.781 204.84 l 249.781 204.844 l 249.789 204.844 l 
+249.789 204.848 l 249.793 204.848 l 249.797 204.852 l 249.801 204.852 l 
+249.805 204.855 l 249.809 204.855 l 249.812 204.859 l 249.816 204.859 l 
+249.824 204.867 l 249.828 204.867 l 249.832 204.871 l 249.836 204.871 l 
+249.84 204.875 l 249.844 204.875 l 249.848 204.879 l 249.852 204.879 l 249.855
+ 204.883 l 249.859 204.883 l 249.859 204.887 l 249.867 204.887 l 249.867
+ 204.891 l 249.875 204.891 l 249.875 204.895 l 249.879 204.895 l 249.883
+ 204.898 l 249.887 204.898 l 249.891 204.902 l 249.895 204.902 l 249.902
+ 204.91 l 249.906 204.91 l 249.91 204.914 l 249.914 204.914 l 249.918 204.918
+ l 249.922 204.918 l 249.926 204.922 l 249.93 204.922 l 249.934 204.926 
+l 249.938 204.926 l 249.941 204.93 l 249.945 204.93 l 249.945 204.934 l 
+249.953 204.934 l 249.953 204.938 l 249.961 204.938 l 249.961 204.941 l 
+249.965 204.941 l 249.969 204.945 l 249.973 204.945 l 249.977 204.949 l 
+249.98 204.949 l 249.988 204.957 l 249.992 204.957 l 249.996 204.961 l 250
+ 204.961 l 250.004 204.965 l 250.008 204.965 l 250.012 204.969 l 250.016
+ 204.969 l 250.02 204.973 l 250.023 204.973 l 250.027 204.977 l 250.031 
+204.977 l 250.031 204.98 l 250.039 204.98 l 250.039 204.984 l 250.047 204.984
+ l 250.047 204.988 l 250.051 204.988 l 250.055 204.992 l 250.059 204.992
+ l 250.062 204.996 l 250.066 204.996 l 250.07 205 l 250.074 205 l 250.082
+ 205.008 l 250.086 205.008 l 250.09 205.012 l 250.094 205.012 l 250.098 
+205.016 l 250.102 205.016 l 250.105 205.02 l 250.109 205.02 l 250.113 205.023
+ l 250.117 205.023 l 250.117 205.027 l 250.125 205.027 l 250.125 205.031
+ l 250.133 205.031 l 250.133 205.035 l 250.137 205.035 l 250.141 205.039
+ l 250.145 205.039 l 250.148 205.043 l 250.152 205.043 l 250.156 205.047
+ l 250.16 205.047 l 250.164 205.051 l 250.168 205.051 l 250.176 205.059 
+l 250.18 205.059 l 250.184 205.062 l 250.188 205.062 l 250.191 205.066 l
+ 250.195 205.066 l 250.199 205.07 l 250.203 205.07 l 250.203 205.074 l 250.211
+ 205.074 l 250.211 205.078 l 250.219 205.078 l 250.219 205.082 l 250.223
+ 205.082 l 250.227 205.086 l 250.23 205.086 l 250.234 205.09 l 250.238 205.09
+ l 250.242 205.094 l 250.246 205.094 l 250.25 205.098 l 250.254 205.098 
+l 250.258 205.102 l 250.262 205.102 l 250.262 205.105 l 250.27 205.105 l
+ 250.27 205.109 l 250.277 205.109 l 250.277 205.113 l 250.281 205.113 l 
+250.281 205.117 l 250.289 205.117 l 250.289 205.121 l 250.297 205.121 l 
+250.297 205.125 l 250.305 205.125 l 250.305 205.129 l 250.309 205.129 l 
+250.312 205.133 l 250.316 205.133 l 250.32 205.137 l 250.324 205.137 l 250.328
+ 205.141 l 250.332 205.141 l 250.336 205.145 l 250.34 205.145 l 250.344 
+205.148 l 250.348 205.148 l 250.348 205.152 l 250.355 205.152 l 250.355 
+205.156 l 250.363 205.156 l 250.363 205.16 l 250.367 205.16 l 250.371 205.164
+ l 250.375 205.164 l 250.379 205.168 l 250.383 205.168 l 250.387 205.172
+ l 250.391 205.172 l 250.398 205.18 l 250.402 205.18 l 250.406 205.184 l
+ 250.41 205.184 l 250.414 205.188 l 250.418 205.188 l 250.422 205.191 l 
+250.426 205.191 l 250.43 205.195 l 250.434 205.195 l 250.434 205.199 l 250.441
+ 205.199 l 250.441 205.203 l 250.449 205.203 l 250.449 205.207 l 250.453
+ 205.207 l 250.457 205.211 l 250.461 205.211 l 250.465 205.215 l 250.469
+ 205.215 l 250.473 205.219 l 250.477 205.219 l 250.48 205.223 l 250.484 
+205.223 l 250.488 205.227 l 250.492 205.227 l 250.496 205.23 l 250.5 205.23
+ l 250.5 205.234 l 250.508 205.234 l 250.508 205.238 l 250.516 205.238 l
+ 250.516 205.242 l 250.52 205.242 l 250.523 205.246 l 250.527 205.246 l 
+250.531 205.25 l 250.535 205.25 l 250.535 205.254 l 250.539 205.254 l 250.543
+ 205.258 l 250.547 205.258 l 250.551 205.262 l 250.555 205.262 l 250.559
+ 205.266 l 250.562 205.266 l 250.566 205.27 l 250.57 205.27 l 250.574 205.273
+ l 250.578 205.273 l 250.582 205.277 l 250.586 205.277 l 250.586 205.281
+ l 250.594 205.281 l 250.594 205.285 l 250.602 205.285 l 250.602 205.289
+ l 250.605 205.289 l 250.609 205.293 l 250.613 205.293 l 250.617 205.297
+ l 250.621 205.297 l 250.625 205.301 l 250.629 205.301 l 250.633 205.305
+ l 250.637 205.305 l 250.641 205.309 l 250.645 205.309 l 250.645 205.312
+ l 250.652 205.312 l 250.652 205.316 l 250.66 205.316 l 250.66 205.32 l 
+250.664 205.32 l 250.668 205.324 l 250.672 205.324 l 250.676 205.328 l 250.68
+ 205.328 l 250.684 205.332 l 250.688 205.332 l 250.691 205.336 l 250.695
+ 205.336 l 250.703 205.344 l 250.707 205.344 l 250.711 205.348 l 250.715
+ 205.348 l 250.719 205.352 l 250.723 205.352 l 250.727 205.355 l 250.73 
+205.355 l 250.73 205.359 l 250.738 205.359 l 250.738 205.363 l 250.746 205.363
+ l 250.746 205.367 l 250.75 205.367 l 250.754 205.371 l 250.758 205.371 
+l 250.762 205.375 l 250.766 205.375 l 250.77 205.379 l 250.773 205.379 l
+ 250.777 205.383 l 250.781 205.383 l 250.785 205.387 l 250.789 205.387 l
+ 250.793 205.391 l 250.797 205.391 l 250.797 205.395 l 250.805 205.395 l
+ 250.805 205.398 l 250.812 205.398 l 250.812 205.402 l 250.816 205.402 l
+ 250.82 205.406 l 250.824 205.406 l 250.828 205.41 l 250.832 205.41 l 250.836
+ 205.414 l 250.84 205.414 l 250.844 205.418 l 250.848 205.418 l 250.852 
+205.422 l 250.855 205.422 l 250.855 205.426 l 250.863 205.426 l 250.863 
+205.43 l 250.871 205.43 l 250.871 205.434 l 250.879 205.434 l 250.879 205.438
+ l 250.883 205.438 l 250.887 205.441 l 250.891 205.441 l 250.895 205.445
+ l 250.898 205.445 l 250.902 205.449 l 250.906 205.449 l 250.91 205.453 
+l 250.914 205.453 l 250.918 205.457 l 250.922 205.457 l 250.922 205.461 
+l 250.926 205.461 l 250.93 205.465 l 250.934 205.465 l 250.938 205.469 l
+ 250.941 205.469 l 250.941 205.473 l 250.949 205.473 l 250.949 205.477 l
+ 250.957 205.477 l 250.957 205.48 l 250.961 205.48 l 250.965 205.484 l 250.969
+ 205.484 l 250.973 205.488 l 250.977 205.488 l 250.98 205.492 l 250.984 
+205.492 l 250.988 205.496 l 250.992 205.496 l 250.996 205.5 l 251 205.5 
+l 251.004 205.504 l 251.008 205.504 l 251.008 205.508 l 251.016 205.508 
+l 251.016 205.512 l 251.023 205.512 l 251.023 205.516 l 251.027 205.516 
+l 251.031 205.52 l 251.035 205.52 l 251.039 205.523 l 251.043 205.523 l 
+251.047 205.527 l 251.051 205.527 l 251.055 205.531 l 251.059 205.531 l 
+251.062 205.535 l 251.066 205.535 l 251.07 205.539 l 251.074 205.539 l 251.074
+ 205.543 l 251.082 205.543 l 251.082 205.547 l 251.09 205.547 l 251.09 205.551
+ l 251.094 205.551 l 251.098 205.555 l 251.102 205.555 l 251.105 205.559
+ l 251.109 205.559 l 251.113 205.562 l 251.117 205.562 l 251.121 205.566
+ l 251.125 205.566 l 251.129 205.57 l 251.133 205.57 l 251.133 205.574 l
+ 251.141 205.574 l 251.141 205.578 l 251.148 205.578 l 251.148 205.582 l
+ 251.152 205.582 l 251.156 205.586 l 251.16 205.586 l 251.164 205.59 l 251.168
+ 205.59 l 251.172 205.594 l 251.176 205.594 l 251.18 205.598 l 251.184 205.598
+ l 251.188 205.602 l 251.191 205.602 l 251.195 205.605 l 251.199 205.605
+ l 251.199 205.609 l 251.207 205.609 l 251.207 205.613 l 251.215 205.613
+ l 251.215 205.617 l 251.219 205.617 l 251.223 205.621 l 251.227 205.621
+ l 251.23 205.625 l 251.234 205.625 l 251.238 205.629 l 251.242 205.629 
+l 251.246 205.633 l 251.25 205.633 l 251.254 205.637 l 251.258 205.637 l
+ 251.262 205.641 l 251.266 205.641 l 251.266 205.645 l 251.273 205.645 l
+ 251.273 205.648 l 251.281 205.648 l 251.281 205.652 l 251.285 205.652 l
+ 251.289 205.656 l 251.293 205.656 l 251.297 205.66 l 251.301 205.66 l 251.305
+ 205.664 l 251.309 205.664 l 251.312 205.668 l 251.316 205.668 l 251.32 
+205.672 l 251.324 205.672 l 251.324 205.676 l 251.332 205.676 l 251.332 
+205.68 l 251.34 205.68 l 251.34 205.684 l 251.344 205.684 l 251.348 205.688
+ l 251.352 205.688 l 251.355 205.691 l 251.359 205.691 l 251.363 205.695
+ l 251.367 205.695 l 251.371 205.699 l 251.375 205.699 l 251.379 205.703
+ l 251.383 205.703 l 251.387 205.707 l 251.391 205.707 l 251.391 205.711
+ l 251.398 205.711 l 251.398 205.715 l 251.406 205.715 l 251.406 205.719
+ l 251.41 205.719 l 251.414 205.723 l 251.418 205.723 l 251.422 205.727 
+l 251.426 205.727 l 251.43 205.73 l 251.434 205.73 l 251.438 205.734 l 251.441
+ 205.734 l 251.445 205.738 l 251.449 205.738 l 251.453 205.742 l 251.457
+ 205.742 l 251.457 205.746 l 251.465 205.746 l 251.465 205.75 l 251.473 
+205.75 l 251.473 205.754 l 251.477 205.754 l 251.48 205.758 l 251.484 205.758
+ l 251.488 205.762 l 251.492 205.762 l 251.496 205.766 l 251.5 205.766 l
+ 251.504 205.77 l 251.508 205.77 l 251.512 205.773 l 251.516 205.773 l 251.516
+ 205.777 l 251.523 205.777 l 251.523 205.781 l 251.531 205.781 l 251.531
+ 205.785 l 251.535 205.785 l 251.539 205.789 l 251.543 205.789 l 251.547
+ 205.793 l 251.551 205.793 l 251.555 205.797 l 251.559 205.797 l 251.562
+ 205.801 l 251.566 205.801 l 251.57 205.805 l 251.574 205.805 l 251.578 
+205.809 l 251.582 205.809 l 251.582 205.812 l 251.59 205.812 l 251.59 205.816
+ l 251.598 205.816 l 251.598 205.82 l 251.602 205.82 l 251.605 205.824 l
+ 251.609 205.824 l 251.613 205.828 l 251.617 205.828 l 251.621 205.832 l
+ 251.625 205.832 l 251.629 205.836 l 251.633 205.836 l 251.637 205.84 l 
+251.641 205.84 l 251.645 205.844 l 251.648 205.844 l 251.648 205.848 l 251.656
+ 205.848 l 251.656 205.852 l 251.664 205.852 l 251.664 205.855 l 251.668
+ 205.855 l 251.672 205.859 l 251.676 205.859 l 251.68 205.863 l 251.684 
+205.863 l 251.688 205.867 l 251.691 205.867 l 251.695 205.871 l 251.699 
+205.871 l 251.703 205.875 l 251.707 205.875 l 251.707 205.879 l 251.715 
+205.879 l 251.715 205.883 l 251.723 205.883 l 251.727 205.887 l 251.73 205.887
+ l 251.734 205.891 l 251.738 205.891 l 251.742 205.895 l 251.746 205.895
+ l 251.75 205.898 l 251.754 205.898 l 251.754 205.902 l 251.762 205.902 
+l 251.762 205.906 l 251.77 205.906 l 251.77 205.91 l 251.773 205.91 l 251.777
+ 205.914 l 251.781 205.914 l 251.785 205.918 l 251.789 205.918 l 251.793
+ 205.922 l 251.797 205.922 l 251.801 205.926 l 251.805 205.926 l 251.809
+ 205.93 l 251.812 205.93 l 251.812 205.934 l 251.82 205.934 l 251.82 205.938
+ l 251.828 205.938 l 251.828 205.941 l 251.836 205.941 l 251.836 205.945
+ l 251.84 205.945 l 251.844 205.949 l 251.848 205.949 l 251.852 205.953 
+l 251.855 205.953 l 251.859 205.957 l 251.863 205.957 l 251.867 205.961 
+l 251.871 205.961 l 251.875 205.965 l 251.879 205.965 l 251.879 205.969 
+l 251.887 205.969 l 251.887 205.973 l 251.895 205.973 l 251.895 205.977 
+l 251.898 205.977 l 251.902 205.98 l 251.906 205.98 l 251.91 205.984 l 251.914
+ 205.984 l 251.918 205.988 l 251.922 205.988 l 251.926 205.992 l 251.93 
+205.992 l 251.934 205.996 l 251.938 205.996 l 251.941 206 l 251.945 206 
+l 251.945 206.004 l 251.953 206.004 l 251.957 206.008 l 251.961 206.008 
+l 251.965 206.012 l 251.969 206.012 l 251.973 206.016 l 251.977 206.016 
+l 251.98 206.02 l 251.984 206.02 l 251.984 206.023 l 251.992 206.023 l 251.992
+ 206.027 l 252 206.027 l 252 206.031 l 252.004 206.031 l 252.008 206.035
+ l 252.012 206.035 l 252.016 206.039 l 252.02 206.039 l 252.023 206.043 
+l 252.027 206.043 l 252.031 206.047 l 252.035 206.047 l 252.039 206.051 
+l 252.043 206.051 l 252.047 206.055 l 252.051 206.055 l 252.051 206.059 
+l 252.059 206.059 l 252.059 206.062 l 252.066 206.062 l 252.066 206.066 
+l 252.07 206.066 l 252.074 206.07 l 252.078 206.07 l 252.082 206.074 l 252.086
+ 206.074 l 252.09 206.078 l 252.094 206.078 l 252.098 206.082 l 252.102 
+206.082 l 252.105 206.086 l 252.109 206.086 l 252.109 206.09 l 252.117 206.09
+ l 252.121 206.094 l 252.125 206.094 l 252.129 206.098 l 252.133 206.098
+ l 252.137 206.102 l 252.141 206.102 l 252.145 206.105 l 252.148 206.105
+ l 252.152 206.109 l 252.156 206.109 l 252.156 206.113 l 252.164 206.113
+ l 252.164 206.117 l 252.172 206.117 l 252.172 206.121 l 252.176 206.121
+ l 252.18 206.125 l 252.184 206.125 l 252.188 206.129 l 252.191 206.129 
+l 252.195 206.133 l 252.199 206.133 l 252.203 206.137 l 252.207 206.137 
+l 252.211 206.141 l 252.215 206.141 l 252.219 206.145 l 252.223 206.145 
+l 252.223 206.148 l 252.23 206.148 l 252.23 206.152 l 252.238 206.152 l 
+252.238 206.156 l 252.242 206.156 l 252.246 206.16 l 252.254 206.16 l 252.258
+ 206.164 l 252.262 206.164 l 252.262 206.168 l 252.27 206.168 l 252.27 206.172
+ l 252.277 206.172 l 252.277 206.176 l 252.281 206.176 l 252.285 206.18 
+l 252.289 206.18 l 252.293 206.184 l 252.297 206.184 l 252.301 206.188 l
+ 252.305 206.188 l 252.309 206.191 l 252.312 206.191 l 252.316 206.195 l
+ 252.32 206.195 l 252.324 206.199 l 252.328 206.199 l 252.328 206.203 l 
+252.336 206.203 l 252.336 206.207 l 252.344 206.207 l 252.344 206.211 l 
+252.348 206.211 l 252.352 206.215 l 252.355 206.215 l 252.359 206.219 l 
+252.363 206.219 l 252.367 206.223 l 252.375 206.223 l 252.375 206.227 l 
+252.383 206.227 l 252.383 206.23 l 252.387 206.23 l 252.391 206.234 l 252.395
+ 206.234 l 252.398 206.238 l 252.402 206.238 l 252.406 206.242 l 252.41 
+206.242 l 252.414 206.246 l 252.418 206.246 l 252.422 206.25 l 252.426 206.25
+ l 252.43 206.254 l 252.434 206.254 l 252.434 206.258 l 252.441 206.258 
+l 252.441 206.262 l 252.449 206.262 l 252.449 206.266 l 252.453 206.266 
+l 252.457 206.27 l 252.461 206.27 l 252.465 206.273 l 252.469 206.273 l 
+252.473 206.277 l 252.477 206.277 l 252.48 206.281 l 252.488 206.281 l 252.488
+ 206.285 l 252.492 206.285 l 252.496 206.289 l 252.5 206.289 l 252.504 206.293
+ l 252.508 206.293 l 252.512 206.297 l 252.516 206.297 l 252.52 206.301 
+l 252.523 206.301 l 252.527 206.305 l 252.531 206.305 l 252.535 206.309 
+l 252.539 206.309 l 252.539 206.312 l 252.547 206.312 l 252.547 206.316 
+l 252.555 206.316 l 252.555 206.32 l 252.559 206.32 l 252.562 206.324 l 
+252.566 206.324 l 252.57 206.328 l 252.574 206.328 l 252.578 206.332 l 252.586
+ 206.332 l 252.586 206.336 l 252.594 206.336 l 252.594 206.34 l 252.602 
+206.34 l 252.602 206.344 l 252.605 206.344 l 252.609 206.348 l 252.613 206.348
+ l 252.617 206.352 l 252.621 206.352 l 252.625 206.355 l 252.629 206.355
+ l 252.633 206.359 l 252.637 206.359 l 252.641 206.363 l 252.645 206.363
+ l 252.645 206.367 l 252.652 206.367 l 252.652 206.371 l 252.66 206.371 
+l 252.66 206.375 l 252.664 206.375 l 252.668 206.379 l 252.676 206.379 l
+ 252.68 206.383 l 252.684 206.383 l 252.684 206.387 l 252.691 206.387 l 
+252.691 206.391 l 252.699 206.391 l 252.699 206.395 l 252.707 206.395 l 
+252.707 206.398 l 252.711 206.398 l 252.715 206.402 l 252.719 206.402 l 
+252.723 206.406 l 252.727 206.406 l 252.73 206.41 l 252.734 206.41 l 252.738
+ 206.414 l 252.742 206.414 l 252.746 206.418 l 252.75 206.418 l 252.75 206.422
+ l 252.758 206.422 l 252.762 206.426 l 252.766 206.426 l 252.77 206.43 l
+ 252.773 206.43 l 252.777 206.434 l 252.781 206.434 l 252.785 206.438 l 
+252.789 206.438 l 252.793 206.441 l 252.797 206.441 l 252.797 206.445 l 
+252.805 206.445 l 252.805 206.449 l 252.812 206.449 l 252.812 206.453 l 
+252.816 206.453 l 252.82 206.457 l 252.824 206.457 l 252.828 206.461 l 252.832
+ 206.461 l 252.836 206.465 l 252.844 206.465 l 252.844 206.469 l 252.852
+ 206.469 l 252.852 206.473 l 252.855 206.473 l 252.859 206.477 l 252.863
+ 206.477 l 252.867 206.48 l 252.871 206.48 l 252.875 206.484 l 252.879 206.484
+ l 252.883 206.488 l 252.887 206.488 l 252.891 206.492 l 252.895 206.492
+ l 252.898 206.496 l 252.902 206.496 l 252.902 206.5 l 252.91 206.5 l 252.91
+ 206.504 l 252.918 206.504 l 252.922 206.508 l 252.926 206.508 l 252.93 
+206.512 l 252.934 206.512 l 252.938 206.516 l 252.941 206.516 l 252.941 
+206.52 l 252.949 206.52 l 252.949 206.523 l 252.957 206.523 l 252.957 206.527
+ l 252.961 206.527 l 252.965 206.531 l 252.969 206.531 l 252.973 206.535
+ l 252.977 206.535 l 252.98 206.539 l 252.988 206.539 l 252.988 206.543 
+l 252.996 206.543 l 252.996 206.547 l 253.004 206.547 l 253.004 206.551 
+l 253.008 206.551 l 253.012 206.555 l 253.016 206.555 l 253.02 206.559 l
+ 253.023 206.559 l 253.027 206.562 l 253.031 206.562 l 253.035 206.566 l
+ 253.039 206.566 l 253.043 206.57 l 253.047 206.57 l 253.047 206.574 l 253.055
+ 206.574 l 253.055 206.578 l 253.062 206.578 l 253.066 206.582 l 253.07 
+206.582 l 253.074 206.586 l 253.078 206.586 l 253.082 206.59 l 253.086 206.59
+ l 253.09 206.594 l 253.094 206.594 l 253.094 206.598 l 253.102 206.598 
+l 253.102 206.602 l 253.109 206.602 l 253.109 206.605 l 253.113 206.605 
+l 253.117 206.609 l 253.125 206.609 l 253.129 206.613 l 253.133 206.613 
+l 253.133 206.617 l 253.141 206.617 l 253.141 206.621 l 253.148 206.621 
+l 253.148 206.625 l 253.152 206.625 l 253.156 206.629 l 253.16 206.629 l
+ 253.164 206.633 l 253.168 206.633 l 253.172 206.637 l 253.176 206.637 l
+ 253.18 206.641 l 253.184 206.641 l 253.188 206.645 l 253.195 206.645 l 
+253.195 206.648 l 253.199 206.648 l 253.203 206.652 l 253.207 206.652 l 
+253.211 206.656 l 253.215 206.656 l 253.219 206.66 l 253.223 206.66 l 253.227
+ 206.664 l 253.23 206.664 l 253.234 206.668 l 253.238 206.668 l 253.238 
+206.672 l 253.246 206.672 l 253.246 206.676 l 253.254 206.676 l 253.258 
+206.68 l 253.262 206.68 l 253.266 206.684 l 253.27 206.684 l 253.273 206.688
+ l 253.277 206.688 l 253.281 206.691 l 253.285 206.691 l 253.285 206.695
+ l 253.293 206.695 l 253.293 206.699 l 253.301 206.699 l 253.301 206.703
+ l 253.305 206.703 l 253.309 206.707 l 253.316 206.707 l 253.32 206.711 
+l 253.324 206.711 l 253.324 206.715 l 253.332 206.715 l 253.332 206.719 
+l 253.34 206.719 l 253.34 206.723 l 253.344 206.723 l 253.348 206.727 l 
+253.352 206.727 l 253.355 206.73 l 253.359 206.73 l 253.363 206.734 l 253.367
+ 206.734 l 253.371 206.738 l 253.379 206.738 l 253.379 206.742 l 253.387
+ 206.742 l 253.387 206.746 l 253.391 206.746 l 253.395 206.75 l 253.398 
+206.75 l 253.402 206.754 l 253.406 206.754 l 253.41 206.758 l 253.414 206.758
+ l 253.418 206.762 l 253.422 206.762 l 253.426 206.766 l 253.43 206.766 
+l 253.434 206.77 l 253.438 206.77 l 253.441 206.773 l 253.445 206.773 l 
+253.449 206.777 l 253.453 206.777 l 253.457 206.781 l 253.461 206.781 l 
+253.465 206.785 l 253.469 206.785 l 253.473 206.789 l 253.477 206.789 l 
+253.477 206.793 l 253.484 206.793 l 253.488 206.797 l 253.492 206.797 l 
+253.496 206.801 l 253.5 206.801 l 253.504 206.805 l 253.508 206.805 l 253.512
+ 206.809 l 253.516 206.809 l 253.516 206.812 l 253.523 206.812 l 253.523
+ 206.816 l 253.531 206.816 l 253.531 206.82 l 253.539 206.82 l 253.543 206.824
+ l 253.547 206.824 l 253.551 206.828 l 253.555 206.828 l 253.559 206.832
+ l 253.562 206.832 l 253.562 206.836 l 253.57 206.836 l 253.57 206.84 l 
+253.578 206.84 l 253.578 206.844 l 253.582 206.844 l 253.586 206.848 l 253.594
+ 206.848 l 253.598 206.852 l 253.602 206.852 l 253.602 206.855 l 253.609
+ 206.855 l 253.609 206.859 l 253.617 206.859 l 253.617 206.863 l 253.621
+ 206.863 l 253.625 206.867 l 253.629 206.867 l 253.633 206.871 l 253.637
+ 206.871 l 253.641 206.875 l 253.648 206.875 l 253.648 206.879 l 253.656
+ 206.879 l 253.656 206.883 l 253.664 206.883 l 253.664 206.887 l 253.668
+ 206.887 l 253.672 206.891 l 253.676 206.891 l 253.68 206.895 l 253.684 
+206.895 l 253.688 206.898 l 253.691 206.898 l 253.695 206.902 l 253.703 
+206.902 l 253.703 206.906 l 253.707 206.906 l 253.711 206.91 l 253.715 206.91
+ l 253.719 206.914 l 253.723 206.914 l 253.727 206.918 l 253.73 206.918 
+l 253.734 206.922 l 253.738 206.922 l 253.742 206.926 l 253.75 206.926 l
+ 253.75 206.93 l 253.754 206.93 l 253.758 206.934 l 253.762 206.934 l 253.766
+ 206.938 l 253.77 206.938 l 253.773 206.941 l 253.777 206.941 l 253.781 
+206.945 l 253.785 206.945 l 253.789 206.949 l 253.793 206.949 l 253.797 
+206.953 l 253.801 206.953 l 253.805 206.957 l 253.809 206.957 l 253.812 
+206.961 l 253.816 206.961 l 253.82 206.965 l 253.824 206.965 l 253.828 206.969
+ l 253.832 206.969 l 253.832 206.973 l 253.84 206.973 l 253.84 206.977 l
+ 253.848 206.977 l 253.852 206.98 l 253.855 206.98 l 253.859 206.984 l 253.863
+ 206.984 l 253.867 206.988 l 253.871 206.988 l 253.875 206.992 l 253.879
+ 206.992 l 253.879 206.996 l 253.887 206.996 l 253.887 207 l 253.895 207
+ l 253.898 207.004 l 253.902 207.004 l 253.906 207.008 l 253.91 207.008 
+l 253.914 207.012 l 253.918 207.012 l 253.918 207.016 l 253.926 207.016 
+l 253.926 207.02 l 253.934 207.02 l 253.934 207.023 l 253.941 207.023 l 
+253.945 207.027 l 253.949 207.027 l 253.953 207.031 l 253.957 207.031 l 
+253.961 207.035 l 253.965 207.035 l 253.965 207.039 l 253.973 207.039 l 
+253.973 207.043 l 253.98 207.043 l 253.984 207.047 l 253.988 207.047 l 253.992
+ 207.051 l 253.996 207.051 l 254 207.055 l 254.004 207.055 l 254.004 207.059
+ l 254.012 207.059 l 254.012 207.062 l 254.02 207.062 l 254.02 207.066 l
+ 254.027 207.066 l 254.031 207.07 l 254.035 207.07 l 254.039 207.074 l 254.043
+ 207.074 l 254.047 207.078 l 254.051 207.078 l 254.051 207.082 l 254.059
+ 207.082 l 254.059 207.086 l 254.066 207.086 l 254.066 207.09 l 254.074 
+207.09 l 254.078 207.094 l 254.082 207.094 l 254.086 207.098 l 254.09 207.098
+ l 254.09 207.102 l 254.098 207.102 l 254.098 207.105 l 254.105 207.105 
+l 254.105 207.109 l 254.113 207.109 l 254.117 207.113 l 254.121 207.113 
+l 254.125 207.117 l 254.129 207.117 l 254.133 207.121 l 254.137 207.121 
+l 254.137 207.125 l 254.145 207.125 l 254.145 207.129 l 254.152 207.129 
+l 254.152 207.133 l 254.16 207.133 l 254.164 207.137 l 254.168 207.137 l
+ 254.172 207.141 l 254.176 207.141 l 254.176 207.145 l 254.184 207.145 l
+ 254.184 207.148 l 254.191 207.148 l 254.191 207.152 l 254.199 207.152 l
+ 254.203 207.156 l 254.207 207.156 l 254.211 207.16 l 254.215 207.16 l 254.215
+ 207.164 l 254.223 207.164 l 254.223 207.168 l 254.23 207.168 l 254.23 207.172
+ l 254.238 207.172 l 254.238 207.176 l 254.246 207.176 l 254.25 207.18 l
+ 254.254 207.18 l 254.258 207.184 l 254.262 207.184 l 254.262 207.188 l 
+254.27 207.188 l 254.27 207.191 l 254.277 207.191 l 254.277 207.195 l 254.285
+ 207.195 l 254.289 207.199 l 254.293 207.199 l 254.297 207.203 l 254.301
+ 207.203 l 254.301 207.207 l 254.309 207.207 l 254.309 207.211 l 254.316
+ 207.211 l 254.316 207.215 l 254.324 207.215 l 254.328 207.219 l 254.332
+ 207.219 l 254.336 207.223 l 254.34 207.223 l 254.344 207.227 l 254.348 
+207.227 l 254.348 207.23 l 254.355 207.23 l 254.355 207.234 l 254.363 207.234
+ l 254.367 207.238 l 254.371 207.238 l 254.375 207.242 l 254.379 207.242
+ l 254.383 207.246 l 254.387 207.246 l 254.387 207.25 l 254.395 207.25 l
+ 254.395 207.254 l 254.402 207.254 l 254.406 207.258 l 254.41 207.258 l 
+254.414 207.262 l 254.418 207.262 l 254.422 207.266 l 254.426 207.266 l 
+254.43 207.27 l 254.434 207.27 l 254.434 207.273 l 254.441 207.273 l 254.445
+ 207.277 l 254.449 207.277 l 254.453 207.281 l 254.457 207.281 l 254.461
+ 207.285 l 254.465 207.285 l 254.469 207.289 l 254.473 207.289 l 254.473
+ 207.293 l 254.48 207.293 l 254.484 207.297 l 254.488 207.297 l 254.492 
+207.301 l 254.496 207.301 l 254.5 207.305 l 254.504 207.305 l 254.508 207.309
+ l 254.512 207.309 l 254.512 207.312 l 254.52 207.312 l 254.523 207.316 
+l 254.527 207.316 l 254.531 207.32 l 254.535 207.32 l 254.539 207.324 l 
+254.543 207.324 l 254.547 207.328 l 254.555 207.328 l 254.555 207.332 l 
+254.559 207.332 l 254.562 207.336 l 254.566 207.336 l 254.57 207.34 l 254.574
+ 207.34 l 254.578 207.344 l 254.582 207.344 l 254.586 207.348 l 254.594 
+207.348 l 254.594 207.352 l 254.598 207.352 l 254.602 207.355 l 254.605 
+207.355 l 254.609 207.359 l 254.613 207.359 l 254.617 207.363 l 254.621 
+207.363 l 254.625 207.367 l 254.633 207.367 l 254.633 207.371 l 254.641 
+207.371 l 254.641 207.375 l 254.645 207.375 l 254.648 207.379 l 254.652 
+207.379 l 254.656 207.383 l 254.664 207.383 l 254.664 207.387 l 254.672 
+207.387 l 254.672 207.391 l 254.68 207.391 l 254.68 207.395 l 254.684 207.395
+ l 254.688 207.398 l 254.691 207.398 l 254.695 207.402 l 254.703 207.402
+ l 254.703 207.406 l 254.711 207.406 l 254.711 207.41 l 254.719 207.41 l
+ 254.719 207.414 l 254.727 207.414 l 254.727 207.418 l 254.734 207.418 l
+ 254.738 207.422 l 254.742 207.422 l 254.746 207.426 l 254.75 207.426 l 
+254.75 207.43 l 254.758 207.43 l 254.758 207.434 l 254.766 207.434 l 254.766
+ 207.438 l 254.773 207.438 l 254.777 207.441 l 254.781 207.441 l 254.785
+ 207.445 l 254.789 207.445 l 254.789 207.449 l 254.797 207.449 l 254.797
+ 207.453 l 254.805 207.453 l 254.809 207.457 l 254.812 207.457 l 254.816
+ 207.461 l 254.82 207.461 l 254.824 207.465 l 254.828 207.465 l 254.832 
+207.469 l 254.836 207.469 l 254.836 207.473 l 254.844 207.473 l 254.848 
+207.477 l 254.852 207.477 l 254.855 207.48 l 254.859 207.48 l 254.863 207.484
+ l 254.867 207.484 l 254.871 207.488 l 254.875 207.488 l 254.879 207.492
+ l 254.883 207.492 l 254.887 207.496 l 254.891 207.496 l 254.895 207.5 l
+ 254.898 207.5 l 254.902 207.504 l 254.91 207.504 l 254.91 207.508 l 254.918
+ 207.508 l 254.918 207.512 l 254.922 207.512 l 254.926 207.516 l 254.93 
+207.516 l 254.934 207.52 l 254.941 207.52 l 254.941 207.523 l 254.949 207.523
+ l 254.949 207.527 l 254.957 207.527 l 254.957 207.531 l 254.961 207.531
+ l 254.965 207.535 l 254.969 207.535 l 254.973 207.539 l 254.98 207.539 
+l 254.98 207.543 l 254.988 207.543 l 254.988 207.547 l 254.996 207.547 l
+ 254.996 207.551 l 255.004 207.551 l 255.004 207.555 l 255.012 207.555 l
+ 255.016 207.559 l 255.02 207.559 l 255.023 207.562 l 255.027 207.562 l 
+255.027 207.566 l 255.035 207.566 l 255.035 207.57 l 255.043 207.57 l 255.047
+ 207.574 l 255.051 207.574 l 255.055 207.578 l 255.059 207.578 l 255.062
+ 207.582 l 255.066 207.582 l 255.066 207.586 l 255.074 207.586 l 255.078
+ 207.59 l 255.082 207.59 l 255.086 207.594 l 255.09 207.594 l 255.094 207.598
+ l 255.098 207.598 l 255.102 207.602 l 255.109 207.602 l 255.109 207.605
+ l 255.113 207.605 l 255.117 207.609 l 255.121 207.609 l 255.125 207.613
+ l 255.129 207.613 l 255.133 207.617 l 255.141 207.617 l 255.141 207.621
+ l 255.148 207.621 l 255.148 207.625 l 255.152 207.625 l 255.156 207.629
+ l 255.16 207.629 l 255.164 207.633 l 255.172 207.633 l 255.172 207.637 
+l 255.18 207.637 l 255.18 207.641 l 255.188 207.641 l 255.188 207.645 l 
+255.195 207.645 l 255.195 207.648 l 255.203 207.648 l 255.207 207.652 l 
+255.211 207.652 l 255.215 207.656 l 255.219 207.656 l 255.219 207.66 l 255.227
+ 207.66 l 255.227 207.664 l 255.234 207.664 l 255.238 207.668 l 255.242 
+207.668 l 255.246 207.672 l 255.25 207.672 l 255.254 207.676 l 255.258 207.676
+ l 255.258 207.68 l 255.266 207.68 l 255.27 207.684 l 255.273 207.684 l 
+255.277 207.688 l 255.281 207.688 l 255.285 207.691 l 255.293 207.691 l 
+255.293 207.695 l 255.301 207.695 l 255.301 207.699 l 255.305 207.699 l 
+255.309 207.703 l 255.312 207.703 l 255.316 207.707 l 255.324 207.707 l 
+255.324 207.711 l 255.332 207.711 l 255.332 207.715 l 255.34 207.715 l 255.34
+ 207.719 l 255.344 207.719 l 255.348 207.723 l 255.355 207.723 l 255.359
+ 207.727 l 255.363 207.727 l 255.363 207.73 l 255.371 207.73 l 255.371 207.734
+ l 255.379 207.734 l 255.379 207.738 l 255.387 207.738 l 255.391 207.742
+ l 255.395 207.742 l 255.398 207.746 l 255.402 207.746 l 255.406 207.75 
+l 255.41 207.75 l 255.414 207.754 l 255.418 207.754 l 255.422 207.758 l 
+255.426 207.758 l 255.43 207.762 l 255.434 207.762 l 255.438 207.766 l 255.445
+ 207.766 l 255.445 207.77 l 255.449 207.77 l 255.453 207.773 l 255.457 207.773
+ l 255.461 207.777 l 255.465 207.777 l 255.469 207.781 l 255.477 207.781
+ l 255.477 207.785 l 255.484 207.785 l 255.484 207.789 l 255.492 207.789
+ l 255.492 207.793 l 255.5 207.793 l 255.504 207.797 l 255.508 207.797 l
+ 255.512 207.801 l 255.516 207.801 l 255.516 207.805 l 255.523 207.805 l
+ 255.523 207.809 l 255.531 207.809 l 255.535 207.812 l 255.539 207.812 l
+ 255.543 207.816 l 255.547 207.816 l 255.551 207.82 l 255.555 207.82 l 255.555
+ 207.824 l 255.562 207.824 l 255.566 207.828 l 255.57 207.828 l 255.574 
+207.832 l 255.578 207.832 l 255.582 207.836 l 255.59 207.836 l 255.59 207.84
+ l 255.598 207.84 l 255.598 207.844 l 255.602 207.844 l 255.605 207.848 
+l 255.609 207.848 l 255.613 207.852 l 255.621 207.852 l 255.621 207.855 
+l 255.629 207.855 l 255.629 207.859 l 255.637 207.859 l 255.637 207.863 
+l 255.645 207.863 l 255.648 207.867 l 255.652 207.867 l 255.656 207.871 
+l 255.66 207.871 l 255.66 207.875 l 255.668 207.875 l 255.668 207.879 l 
+255.676 207.879 l 255.68 207.883 l 255.684 207.883 l 255.688 207.887 l 255.691
+ 207.887 l 255.695 207.891 l 255.703 207.891 l 255.703 207.895 l 255.707
+ 207.895 l 255.711 207.898 l 255.715 207.898 l 255.719 207.902 l 255.727
+ 207.902 l 255.727 207.906 l 255.734 207.906 l 255.734 207.91 l 255.742 
+207.91 l 255.742 207.914 l 255.746 207.914 l 255.75 207.918 l 255.758 207.918
+ l 255.762 207.922 l 255.766 207.922 l 255.77 207.926 l 255.773 207.926 
+l 255.773 207.93 l 255.781 207.93 l 255.785 207.934 l 255.789 207.934 l 
+255.793 207.938 l 255.797 207.938 l 255.801 207.941 l 255.805 207.941 l 
+255.809 207.945 l 255.812 207.945 l 255.816 207.949 l 255.82 207.949 l 255.824
+ 207.953 l 255.828 207.953 l 255.832 207.957 l 255.84 207.957 l 255.84 207.961
+ l 255.848 207.961 l 255.848 207.965 l 255.852 207.965 l 255.855 207.969
+ l 255.863 207.969 l 255.867 207.973 l 255.871 207.973 l 255.875 207.977
+ l 255.879 207.977 l 255.879 207.98 l 255.887 207.98 l 255.887 207.984 l
+ 255.895 207.984 l 255.898 207.988 l 255.902 207.988 l 255.906 207.992 l
+ 255.91 207.992 l 255.914 207.996 l 255.918 207.996 l 255.922 208 l 255.926
+ 208 l 255.93 208.004 l 255.934 208.004 l 255.938 208.008 l 255.945 208.008
+ l 255.945 208.012 l 255.953 208.012 l 255.953 208.016 l 255.961 208.016
+ l 255.961 208.02 l 255.969 208.02 l 255.973 208.023 l 255.977 208.023 l
+ 255.98 208.027 l 255.984 208.027 l 255.984 208.031 l 255.992 208.031 l 
+255.992 208.035 l 256 208.035 l 256.004 208.039 l 256.008 208.039 l 256.012
+ 208.043 l 256.016 208.043 l 256.02 208.047 l 256.023 208.047 l 256.027 
+208.051 l 256.031 208.051 l 256.035 208.055 l 256.039 208.055 l 256.043 
+208.059 l 256.051 208.059 l 256.051 208.062 l 256.059 208.062 l 256.059 
+208.066 l 256.066 208.066 l 256.066 208.07 l 256.074 208.07 l 256.078 208.074
+ l 256.082 208.074 l 256.086 208.078 l 256.09 208.078 l 256.09 208.082 l
+ 256.098 208.082 l 256.102 208.086 l 256.105 208.086 l 256.109 208.09 l 
+256.113 208.09 l 256.117 208.094 l 256.125 208.094 l 256.125 208.098 l 256.129
+ 208.098 l 256.133 208.102 l 256.137 208.102 l 256.141 208.105 l 256.148
+ 208.105 l 256.152 208.109 l 256.156 208.109 l 256.156 208.113 l 256.164
+ 208.113 l 256.164 208.117 l 256.172 208.117 l 256.172 208.121 l 256.18 
+208.121 l 256.184 208.125 l 256.188 208.125 l 256.191 208.129 l 256.195 
+208.129 l 256.195 208.133 l 256.203 208.133 l 256.207 208.137 l 256.211 
+208.137 l 256.215 208.141 l 256.219 208.141 l 256.223 208.145 l 256.23 208.145
+ l 256.23 208.148 l 256.234 208.148 l 256.238 208.152 l 256.242 208.152 
+l 256.246 208.156 l 256.254 208.156 l 256.258 208.16 l 256.262 208.16 l 
+256.262 208.164 l 256.27 208.164 l 256.27 208.168 l 256.277 208.168 l 256.281
+ 208.172 l 256.285 208.172 l 256.289 208.176 l 256.293 208.176 l 256.297
+ 208.18 l 256.301 208.18 l 256.305 208.184 l 256.309 208.184 l 256.312 208.188
+ l 256.316 208.188 l 256.32 208.191 l 256.328 208.191 l 256.328 208.195 
+l 256.336 208.195 l 256.336 208.199 l 256.344 208.199 l 256.344 208.203 
+l 256.352 208.203 l 256.355 208.207 l 256.359 208.207 l 256.363 208.211 
+l 256.367 208.211 l 256.367 208.215 l 256.375 208.215 l 256.379 208.219 
+l 256.383 208.219 l 256.387 208.223 l 256.391 208.223 l 256.395 208.227 
+l 256.402 208.227 l 256.402 208.23 l 256.406 208.23 l 256.41 208.234 l 256.414
+ 208.234 l 256.418 208.238 l 256.426 208.238 l 256.426 208.242 l 256.434
+ 208.242 l 256.434 208.246 l 256.441 208.246 l 256.441 208.25 l 256.449 
+208.25 l 256.453 208.254 l 256.457 208.254 l 256.461 208.258 l 256.469 208.258
+ l 256.469 208.262 l 256.473 208.262 l 256.477 208.266 l 256.48 208.266 
+l 256.484 208.27 l 256.492 208.27 l 256.492 208.273 l 256.5 208.273 l 256.5
+ 208.277 l 256.508 208.277 l 256.508 208.281 l 256.516 208.281 l 256.52 
+208.285 l 256.523 208.285 l 256.527 208.289 l 256.531 208.289 l 256.535 
+208.293 l 256.539 208.293 l 256.543 208.297 l 256.547 208.297 l 256.551 
+208.301 l 256.555 208.301 l 256.559 208.305 l 256.566 208.305 l 256.566 
+208.309 l 256.574 208.309 l 256.574 208.312 l 256.578 208.312 l 256.582 
+208.316 l 256.59 208.316 l 256.594 208.32 l 256.598 208.32 l 256.598 208.324
+ l 256.605 208.324 l 256.605 208.328 l 256.613 208.328 l 256.617 208.332
+ l 256.621 208.332 l 256.625 208.336 l 256.633 208.336 l 256.633 208.34 
+l 256.641 208.34 l 256.641 208.344 l 256.645 208.344 l 256.648 208.348 l
+ 256.656 208.348 l 256.66 208.352 l 256.664 208.352 l 256.664 208.355 l 
+256.672 208.355 l 256.672 208.359 l 256.68 208.359 l 256.684 208.363 l 256.688
+ 208.363 l 256.691 208.367 l 256.695 208.367 l 256.699 208.371 l 256.703
+ 208.371 l 256.707 208.375 l 256.711 208.375 l 256.715 208.379 l 256.723
+ 208.379 l 256.727 208.383 l 256.73 208.383 l 256.73 208.387 l 256.738 208.387
+ l 256.738 208.391 l 256.746 208.391 l 256.75 208.395 l 256.754 208.395 
+l 256.758 208.398 l 256.762 208.398 l 256.766 208.402 l 256.77 208.402 l
+ 256.773 208.406 l 256.777 208.406 l 256.781 208.41 l 256.785 208.41 l 256.789
+ 208.414 l 256.797 208.414 l 256.797 208.418 l 256.805 208.418 l 256.805
+ 208.422 l 256.812 208.422 l 256.816 208.426 l 256.82 208.426 l 256.824 
+208.43 l 256.828 208.43 l 256.832 208.434 l 256.836 208.434 l 256.84 208.438
+ l 256.844 208.438 l 256.848 208.441 l 256.852 208.441 l 256.855 208.445
+ l 256.863 208.445 l 256.863 208.449 l 256.871 208.449 l 256.871 208.453
+ l 256.879 208.453 l 256.883 208.457 l 256.887 208.457 l 256.891 208.461
+ l 256.895 208.461 l 256.895 208.465 l 256.902 208.465 l 256.906 208.469
+ l 256.91 208.469 l 256.914 208.473 l 256.918 208.473 l 256.922 208.477 
+l 256.93 208.477 l 256.93 208.48 l 256.938 208.48 l 256.938 208.484 l 256.945
+ 208.484 l 256.949 208.488 l 256.953 208.488 l 256.957 208.492 l 256.961
+ 208.492 l 256.961 208.496 l 256.969 208.496 l 256.973 208.5 l 256.977 208.5
+ l 256.98 208.504 l 256.984 208.504 l 256.988 208.508 l 256.996 208.508 
+l 256.996 208.512 l 257 208.512 l 257.004 208.516 l 257.012 208.516 l 257.016
+ 208.52 l 257.02 208.52 l 257.023 208.523 l 257.027 208.523 l 257.027 208.527
+ l 257.035 208.527 l 257.039 208.531 l 257.043 208.531 l 257.047 208.535
+ l 257.055 208.535 l 257.055 208.539 l 257.062 208.539 l 257.062 208.543
+ l 257.066 208.543 l 257.07 208.547 l 257.078 208.547 l 257.082 208.551 
+l 257.086 208.551 l 257.086 208.555 l 257.094 208.555 l 257.094 208.559 
+l 257.102 208.559 l 257.105 208.562 l 257.109 208.562 l 257.113 208.566 
+l 257.121 208.566 l 257.121 208.57 l 257.129 208.57 l 257.129 208.574 l 
+257.133 208.574 l 257.137 208.578 l 257.145 208.578 l 257.148 208.582 l 
+257.152 208.582 l 257.152 208.586 l 257.16 208.586 l 257.164 208.59 l 257.168
+ 208.59 l 257.172 208.594 l 257.176 208.594 l 257.18 208.598 l 257.188 208.598
+ l 257.188 208.602 l 257.191 208.602 l 257.195 208.605 l 257.203 208.605
+ l 257.207 208.609 l 257.211 208.609 l 257.215 208.613 l 257.219 208.613
+ l 257.219 208.617 l 257.227 208.617 l 257.23 208.621 l 257.234 208.621 
+l 257.238 208.625 l 257.246 208.625 l 257.246 208.629 l 257.254 208.629 
+l 257.254 208.633 l 257.258 208.633 l 257.262 208.637 l 257.27 208.637 l
+ 257.273 208.641 l 257.277 208.641 l 257.277 208.645 l 257.285 208.645 l
+ 257.289 208.648 l 257.293 208.648 l 257.297 208.652 l 257.301 208.652 l
+ 257.305 208.656 l 257.312 208.656 l 257.312 208.66 l 257.32 208.66 l 257.32
+ 208.664 l 257.328 208.664 l 257.332 208.668 l 257.336 208.668 l 257.34 
+208.672 l 257.344 208.672 l 257.344 208.676 l 257.352 208.676 l 257.355 
+208.68 l 257.359 208.68 l 257.363 208.684 l 257.371 208.684 l 257.371 208.688
+ l 257.379 208.688 l 257.379 208.691 l 257.387 208.691 l 257.391 208.695
+ l 257.395 208.695 l 257.398 208.699 l 257.402 208.699 l 257.406 208.703
+ l 257.41 208.703 l 257.414 208.707 l 257.418 208.707 l 257.422 208.711 
+l 257.43 208.711 l 257.43 208.715 l 257.438 208.715 l 257.438 208.719 l 
+257.445 208.719 l 257.445 208.723 l 257.453 208.723 l 257.457 208.727 l 
+257.461 208.727 l 257.465 208.73 l 257.469 208.73 l 257.473 208.734 l 257.477
+ 208.734 l 257.48 208.738 l 257.484 208.738 l 257.488 208.742 l 257.496 
+208.742 l 257.496 208.746 l 257.504 208.746 l 257.504 208.75 l 257.512 208.75
+ l 257.516 208.754 l 257.52 208.754 l 257.523 208.758 l 257.531 208.758 
+l 257.531 208.762 l 257.535 208.762 l 257.539 208.766 l 257.543 208.766 
+l 257.547 208.77 l 257.555 208.77 l 257.555 208.773 l 257.562 208.773 l 
+257.562 208.777 l 257.57 208.777 l 257.574 208.781 l 257.578 208.781 l 257.582
+ 208.785 l 257.59 208.785 l 257.59 208.789 l 257.598 208.789 l 257.598 208.793
+ l 257.602 208.793 l 257.605 208.797 l 257.613 208.797 l 257.617 208.801
+ l 257.621 208.801 l 257.621 208.805 l 257.629 208.805 l 257.633 208.809
+ l 257.637 208.809 l 257.641 208.812 l 257.648 208.812 l 257.648 208.816
+ l 257.656 208.816 l 257.656 208.82 l 257.66 208.82 l 257.664 208.824 l 
+257.672 208.824 l 257.676 208.828 l 257.68 208.828 l 257.68 208.832 l 257.688
+ 208.832 l 257.691 208.836 l 257.695 208.836 l 257.699 208.84 l 257.707 
+208.84 l 257.707 208.844 l 257.715 208.844 l 257.715 208.848 l 257.723 208.848
+ l 257.727 208.852 l 257.73 208.852 l 257.734 208.855 l 257.738 208.855 
+l 257.742 208.859 l 257.746 208.859 l 257.75 208.863 l 257.754 208.863 l
+ 257.758 208.867 l 257.766 208.867 l 257.766 208.871 l 257.773 208.871 l
+ 257.773 208.875 l 257.781 208.875 l 257.785 208.879 l 257.789 208.879 l
+ 257.793 208.883 l 257.797 208.883 l 257.801 208.887 l 257.809 208.887 l
+ 257.809 208.891 l 257.812 208.891 l 257.816 208.895 l 257.824 208.895 l
+ 257.828 208.898 l 257.832 208.898 l 257.832 208.902 l 257.84 208.902 l 
+257.844 208.906 l 257.848 208.906 l 257.852 208.91 l 257.859 208.91 l 257.859
+ 208.914 l 257.867 208.914 l 257.867 208.918 l 257.871 208.918 l 257.875
+ 208.922 l 257.883 208.922 l 257.887 208.926 l 257.891 208.926 l 257.895
+ 208.93 l 257.898 208.93 l 257.902 208.934 l 257.906 208.934 l 257.91 208.938
+ l 257.918 208.938 l 257.918 208.941 l 257.926 208.941 l 257.926 208.945
+ l 257.934 208.945 l 257.938 208.949 l 257.941 208.949 l 257.945 208.953
+ l 257.953 208.953 l 257.953 208.957 l 257.957 208.957 l 257.961 208.961
+ l 257.965 208.961 l 257.969 208.965 l 257.977 208.965 l 257.98 208.969 
+l 257.984 208.969 l 257.984 208.973 l 257.992 208.973 l 257.996 208.977 
+l 258 208.977 l 258.004 208.98 l 258.012 208.98 l 258.012 208.984 l 258.02
+ 208.984 l 258.02 208.988 l 258.027 208.988 l 258.031 208.992 l 258.035 
+208.992 l 258.039 208.996 l 258.043 208.996 l 258.047 209 l 258.051 209 
+l 258.055 209.004 l 258.059 209.004 l 258.062 209.008 l 258.07 209.008 l
+ 258.07 209.012 l 258.078 209.012 l 258.078 209.016 l 258.086 209.016 l 
+258.09 209.02 l 258.094 209.02 l 258.098 209.023 l 258.105 209.023 l 258.105
+ 209.027 l 258.109 209.027 l 258.113 209.031 l 258.121 209.031 l 258.125
+ 209.035 l 258.129 209.035 l 258.129 209.039 l 258.137 209.039 l 258.141
+ 209.043 l 258.145 209.043 l 258.148 209.047 l 258.156 209.047 l 258.156
+ 209.051 l 258.164 209.051 l 258.164 209.055 l 258.172 209.055 l 258.176
+ 209.059 l 258.18 209.059 l 258.184 209.062 l 258.188 209.062 l 258.191 
+209.066 l 258.195 209.066 l 258.199 209.07 l 258.203 209.07 l 258.207 209.074
+ l 258.215 209.074 l 258.215 209.078 l 258.223 209.078 l 258.223 209.082
+ l 258.23 209.082 l 258.234 209.086 l 258.238 209.086 l 258.242 209.09 l
+ 258.25 209.09 l 258.25 209.094 l 258.254 209.094 l 258.258 209.098 l 258.266
+ 209.098 l 258.27 209.102 l 258.273 209.102 l 258.277 209.105 l 258.281 
+209.105 l 258.285 209.109 l 258.289 209.109 l 258.293 209.113 l 258.301 
+209.113 l 258.301 209.117 l 258.309 209.117 l 258.309 209.121 l 258.316 
+209.121 l 258.32 209.125 l 258.324 209.125 l 258.328 209.129 l 258.336 209.129
+ l 258.336 209.133 l 258.34 209.133 l 258.344 209.137 l 258.352 209.137 
+l 258.355 209.141 l 258.359 209.141 l 258.363 209.145 l 258.367 209.145 
+l 258.371 209.148 l 258.375 209.148 l 258.379 209.152 l 258.383 209.152 
+l 258.387 209.156 l 258.395 209.156 l 258.395 209.16 l 258.402 209.16 l 
+258.402 209.164 l 258.41 209.164 l 258.414 209.168 l 258.418 209.168 l 258.422
+ 209.172 l 258.426 209.172 l 258.43 209.176 l 258.434 209.176 l 258.438 
+209.18 l 258.445 209.18 l 258.445 209.184 l 258.453 209.184 l 258.453 209.188
+ l 258.461 209.188 l 258.465 209.191 l 258.469 209.191 l 258.473 209.195
+ l 258.48 209.195 l 258.48 209.199 l 258.488 209.199 l 258.488 209.203 l
+ 258.496 209.203 l 258.5 209.207 l 258.504 209.207 l 258.508 209.211 l 258.512
+ 209.211 l 258.516 209.215 l 258.52 209.215 l 258.523 209.219 l 258.531 
+209.219 l 258.531 209.223 l 258.539 209.223 l 258.539 209.227 l 258.547 
+209.227 l 258.551 209.23 l 258.555 209.23 l 258.559 209.234 l 258.566 209.234
+ l 258.566 209.238 l 258.574 209.238 l 258.574 209.242 l 258.582 209.242
+ l 258.586 209.246 l 258.59 209.246 l 258.594 209.25 l 258.598 209.25 l 
+258.602 209.254 l 258.605 209.254 l 258.609 209.258 l 258.617 209.258 l 
+258.617 209.262 l 258.625 209.262 l 258.625 209.266 l 258.633 209.266 l 
+258.637 209.27 l 258.641 209.27 l 258.645 209.273 l 258.652 209.273 l 258.652
+ 209.277 l 258.66 209.277 l 258.66 209.281 l 258.668 209.281 l 258.672 209.285
+ l 258.676 209.285 l 258.68 209.289 l 258.684 209.289 l 258.688 209.293 
+l 258.691 209.293 l 258.695 209.297 l 258.703 209.297 l 258.703 209.301 
+l 258.711 209.301 l 258.711 209.305 l 258.719 209.305 l 258.723 209.309 
+l 258.727 209.309 l 258.73 209.312 l 258.738 209.312 l 258.738 209.316 l
+ 258.746 209.316 l 258.746 209.32 l 258.754 209.32 l 258.758 209.324 l 258.766
+ 209.324 l 258.766 209.328 l 258.77 209.328 l 258.773 209.332 l 258.781 
+209.332 l 258.785 209.336 l 258.789 209.336 l 258.789 209.34 l 258.797 209.34
+ l 258.801 209.344 l 258.805 209.344 l 258.809 209.348 l 258.816 209.348
+ l 258.816 209.352 l 258.824 209.352 l 258.824 209.355 l 258.832 209.355
+ l 258.836 209.359 l 258.84 209.359 l 258.844 209.363 l 258.852 209.363 
+l 258.852 209.367 l 258.855 209.367 l 258.859 209.371 l 258.867 209.371 
+l 258.871 209.375 l 258.875 209.375 l 258.875 209.379 l 258.883 209.379 
+l 258.887 209.383 l 258.891 209.383 l 258.895 209.387 l 258.902 209.387 
+l 258.902 209.391 l 258.91 209.391 l 258.91 209.395 l 258.918 209.395 l 
+258.922 209.398 l 258.926 209.398 l 258.93 209.402 l 258.938 209.402 l 258.938
+ 209.406 l 258.941 209.406 l 258.945 209.41 l 258.953 209.41 l 258.957 209.414
+ l 258.961 209.414 l 258.965 209.418 l 258.969 209.418 l 258.973 209.422
+ l 258.98 209.422 l 258.98 209.426 l 258.988 209.426 l 258.988 209.43 l 
+258.996 209.43 l 259 209.434 l 259.004 209.434 l 259.008 209.438 l 259.016
+ 209.438 l 259.016 209.441 l 259.02 209.441 l 259.023 209.445 l 259.031 
+209.445 l 259.035 209.449 l 259.039 209.449 l 259.043 209.453 l 259.047 
+209.453 l 259.051 209.457 l 259.055 209.457 l 259.059 209.461 l 259.066 
+209.461 l 259.066 209.465 l 259.074 209.465 l 259.074 209.469 l 259.082 
+209.469 l 259.086 209.473 l 259.094 209.473 l 259.094 209.477 l 259.102 
+209.477 l 259.102 209.48 l 259.109 209.48 l 259.113 209.484 l 259.117 209.484
+ l 259.121 209.488 l 259.129 209.488 l 259.129 209.492 l 259.133 209.492
+ l 259.137 209.496 l 259.145 209.496 l 259.148 209.5 l 259.152 209.5 l 259.152
+ 209.504 l 259.16 209.504 l 259.164 209.508 l 259.168 209.508 l 259.172 
+209.512 l 259.18 209.512 l 259.18 209.516 l 259.188 209.516 l 259.191 209.52
+ l 259.195 209.52 l 259.199 209.523 l 259.207 209.523 l 259.207 209.527 
+l 259.211 209.527 l 259.215 209.531 l 259.223 209.531 l 259.227 209.535 
+l 259.23 209.535 l 259.234 209.539 l 259.238 209.539 l 259.242 209.543 l
+ 259.246 209.543 l 259.25 209.547 l 259.258 209.547 l 259.258 209.551 l 
+259.266 209.551 l 259.27 209.555 l 259.273 209.555 l 259.277 209.559 l 259.285
+ 209.559 l 259.285 209.562 l 259.293 209.562 l 259.293 209.566 l 259.301
+ 209.566 l 259.305 209.57 l 259.309 209.57 l 259.312 209.574 l 259.32 209.574
+ l 259.32 209.578 l 259.324 209.578 l 259.328 209.582 l 259.336 209.582 
+l 259.34 209.586 l 259.344 209.586 l 259.348 209.59 l 259.352 209.59 l 259.355
+ 209.594 l 259.363 209.594 l 259.363 209.598 l 259.371 209.598 l 259.371
+ 209.602 l 259.379 209.602 l 259.383 209.605 l 259.387 209.605 l 259.391
+ 209.609 l 259.398 209.609 l 259.398 209.613 l 259.402 209.613 l 259.406
+ 209.617 l 259.414 209.617 l 259.418 209.621 l 259.426 209.621 l 259.426
+ 209.625 l 259.43 209.625 l 259.434 209.629 l 259.441 209.629 l 259.445 
+209.633 l 259.449 209.633 l 259.449 209.637 l 259.457 209.637 l 259.461 
+209.641 l 259.465 209.641 l 259.469 209.645 l 259.477 209.645 l 259.477 
+209.648 l 259.484 209.648 l 259.488 209.652 l 259.492 209.652 l 259.496 
+209.656 l 259.504 209.656 l 259.504 209.66 l 259.512 209.66 l 259.512 209.664
+ l 259.52 209.664 l 259.523 209.668 l 259.527 209.668 l 259.531 209.672 
+l 259.535 209.672 l 259.539 209.676 l 259.547 209.676 l 259.551 209.68 l
+ 259.555 209.68 l 259.555 209.684 l 259.562 209.684 l 259.566 209.688 l 
+259.57 209.688 l 259.574 209.691 l 259.582 209.691 l 259.582 209.695 l 259.59
+ 209.695 l 259.59 209.699 l 259.598 209.699 l 259.602 209.703 l 259.609 
+209.703 l 259.609 209.707 l 259.617 209.707 l 259.617 209.711 l 259.625 
+209.711 l 259.629 209.715 l 259.633 209.715 l 259.637 209.719 l 259.641 
+209.719 l 259.645 209.723 l 259.652 209.723 l 259.656 209.727 l 259.66 209.727
+ l 259.66 209.73 l 259.668 209.73 l 259.672 209.734 l 259.676 209.734 l 
+259.68 209.738 l 259.688 209.738 l 259.688 209.742 l 259.695 209.742 l 259.695
+ 209.746 l 259.703 209.746 l 259.707 209.75 l 259.715 209.75 l 259.715 209.754
+ l 259.723 209.754 l 259.723 209.758 l 259.73 209.758 l 259.734 209.762 
+l 259.738 209.762 l 259.742 209.766 l 259.746 209.766 l 259.75 209.77 l 
+259.758 209.77 l 259.762 209.773 l 259.766 209.773 l 259.766 209.777 l 259.773
+ 209.777 l 259.777 209.781 l 259.781 209.781 l 259.785 209.785 l 259.793
+ 209.785 l 259.793 209.789 l 259.801 209.789 l 259.805 209.793 l 259.809
+ 209.793 l 259.812 209.797 l 259.82 209.797 l 259.82 209.801 l 259.828 209.801
+ l 259.828 209.805 l 259.836 209.805 l 259.84 209.809 l 259.848 209.809 
+l 259.848 209.812 l 259.852 209.812 l 259.855 209.816 l 259.863 209.816 
+l 259.867 209.82 l 259.871 209.82 l 259.871 209.824 l 259.879 209.824 l 
+259.883 209.828 l 259.891 209.828 l 259.891 209.832 l 259.898 209.832 l 
+259.898 209.836 l 259.906 209.836 l 259.91 209.84 l 259.914 209.84 l 259.918
+ 209.844 l 259.926 209.844 l 259.926 209.848 l 259.934 209.848 l 259.938
+ 209.852 l 259.941 209.852 l 259.945 209.855 l 259.953 209.855 l 259.953
+ 209.859 l 259.957 209.859 l 259.961 209.863 l 259.969 209.863 l 259.973
+ 209.867 l 259.977 209.867 l 259.98 209.871 l 259.984 209.871 l 259.988 
+209.875 l 259.996 209.875 l 260 209.879 l 260.004 209.879 l 260.004 209.883
+ l 260.012 209.883 l 260.016 209.887 l 260.023 209.887 l 260.023 209.891
+ l 260.031 209.891 l 260.031 209.895 l 260.039 209.895 l 260.043 209.898
+ l 260.047 209.898 l 260.051 209.902 l 260.059 209.902 l 260.059 209.906
+ l 260.066 209.906 l 260.07 209.91 l 260.074 209.91 l 260.078 209.914 l 
+260.082 209.914 l 260.086 209.918 l 260.094 209.918 l 260.098 209.922 l 
+260.102 209.922 l 260.105 209.926 l 260.109 209.926 l 260.113 209.93 l 260.117
+ 209.93 l 260.121 209.934 l 260.129 209.934 l 260.129 209.938 l 260.137 
+209.938 l 260.141 209.941 l 260.145 209.941 l 260.148 209.945 l 260.156 
+209.945 l 260.156 209.949 l 260.164 209.949 l 260.168 209.953 l 260.172 
+209.953 l 260.176 209.957 l 260.184 209.957 l 260.184 209.961 l 260.191 
+209.961 l 260.191 209.965 l 260.199 209.965 l 260.203 209.969 l 260.211 
+209.969 l 260.211 209.973 l 260.215 209.973 l 260.219 209.977 l 260.227 
+209.977 l 260.23 209.98 l 260.234 209.98 l 260.238 209.984 l 260.242 209.984
+ l 260.246 209.988 l 260.254 209.988 l 260.254 209.992 l 260.262 209.992
+ l 260.262 209.996 l 260.27 209.996 l 260.273 210 l 260.281 210 l 260.281
+ 210.004 l 260.289 210.004 l 260.289 210.008 l 260.297 210.008 l 260.301
+ 210.012 l 260.309 210.012 l 260.309 210.016 l 260.316 210.016 l 260.316
+ 210.02 l 260.324 210.02 l 260.328 210.023 l 260.336 210.023 l 260.336 210.027
+ l 260.34 210.027 l 260.344 210.031 l 260.352 210.031 l 260.355 210.035 
+l 260.359 210.035 l 260.359 210.039 l 260.367 210.039 l 260.371 210.043 
+l 260.379 210.043 l 260.383 210.047 l 260.387 210.047 l 260.387 210.051 
+l 260.395 210.051 l 260.398 210.055 l 260.406 210.055 l 260.406 210.059 
+l 260.414 210.059 l 260.414 210.062 l 260.422 210.062 l 260.426 210.066 
+l 260.434 210.066 l 260.434 210.07 l 260.441 210.07 l 260.441 210.074 l 
+260.449 210.074 l 260.453 210.078 l 260.457 210.078 l 260.461 210.082 l 
+260.465 210.082 l 260.469 210.086 l 260.477 210.086 l 260.48 210.09 l 260.484
+ 210.09 l 260.488 210.094 l 260.492 210.094 l 260.496 210.098 l 260.504 
+210.098 l 260.508 210.102 l 260.512 210.102 l 260.512 210.105 l 260.52 210.105
+ l 260.523 210.109 l 260.531 210.109 l 260.531 210.113 l 260.539 210.113
+ l 260.539 210.117 l 260.547 210.117 l 260.551 210.121 l 260.559 210.121
+ l 260.559 210.125 l 260.566 210.125 l 260.566 210.129 l 260.574 210.129
+ l 260.578 210.133 l 260.586 210.133 l 260.586 210.137 l 260.594 210.137
+ l 260.594 210.141 l 260.602 210.141 l 260.605 210.145 l 260.613 210.145
+ l 260.613 210.148 l 260.617 210.148 l 260.621 210.152 l 260.629 210.152
+ l 260.633 210.156 l 260.637 210.156 l 260.641 210.16 l 260.645 210.16 l
+ 260.648 210.164 l 260.656 210.164 l 260.656 210.168 l 260.664 210.168 l
+ 260.668 210.172 l 260.672 210.172 l 260.676 210.176 l 260.684 210.176 l
+ 260.684 210.18 l 260.691 210.18 l 260.695 210.184 l 260.699 210.184 l 260.703
+ 210.188 l 260.711 210.188 l 260.711 210.191 l 260.719 210.191 l 260.723
+ 210.195 l 260.727 210.195 l 260.73 210.199 l 260.738 210.199 l 260.738 
+210.203 l 260.746 210.203 l 260.75 210.207 l 260.754 210.207 l 260.758 210.211
+ l 260.766 210.211 l 260.766 210.215 l 260.773 210.215 l 260.777 210.219
+ l 260.781 210.219 l 260.785 210.223 l 260.789 210.223 l 260.793 210.227
+ l 260.801 210.227 l 260.805 210.23 l 260.809 210.23 l 260.809 210.234 l
+ 260.816 210.234 l 260.82 210.238 l 260.828 210.238 l 260.828 210.242 l 
+260.836 210.242 l 260.836 210.246 l 260.844 210.246 l 260.848 210.25 l 260.855
+ 210.25 l 260.855 210.254 l 260.863 210.254 l 260.863 210.258 l 260.871 
+210.258 l 260.875 210.262 l 260.883 210.262 l 260.883 210.266 l 260.891 
+210.266 l 260.891 210.27 l 260.898 210.27 l 260.902 210.273 l 260.91 210.273
+ l 260.91 210.277 l 260.914 210.277 l 260.918 210.281 l 260.926 210.281 
+l 260.93 210.285 l 260.934 210.285 l 260.938 210.289 l 260.945 210.289 l
+ 260.949 210.293 l 260.953 210.293 l 260.957 210.297 l 260.961 210.297 l
+ 260.965 210.301 l 260.973 210.301 l 260.977 210.305 l 260.98 210.305 l 
+260.98 210.309 l 260.988 210.309 l 260.992 210.312 l 261 210.312 l 261 210.316
+ l 261.008 210.316 l 261.008 210.32 l 261.016 210.32 l 261.02 210.324 l 
+261.027 210.324 l 261.027 210.328 l 261.035 210.328 l 261.035 210.332 l 
+261.043 210.332 l 261.047 210.336 l 261.055 210.336 l 261.055 210.34 l 261.062
+ 210.34 l 261.062 210.344 l 261.07 210.344 l 261.074 210.348 l 261.082 210.348
+ l 261.082 210.352 l 261.09 210.352 l 261.094 210.355 l 261.098 210.355 
+l 261.102 210.359 l 261.105 210.359 l 261.109 210.363 l 261.117 210.363 
+l 261.121 210.367 l 261.125 210.367 l 261.125 210.371 l 261.133 210.371 
+l 261.137 210.375 l 261.145 210.375 l 261.148 210.379 l 261.152 210.379 
+l 261.152 210.383 l 261.16 210.383 l 261.164 210.387 l 261.172 210.387 l
+ 261.172 210.391 l 261.18 210.391 l 261.184 210.395 l 261.188 210.395 l 
+261.191 210.398 l 261.199 210.398 l 261.199 210.402 l 261.207 210.402 l 
+261.211 210.406 l 261.215 210.406 l 261.219 210.41 l 261.227 210.41 l 261.227
+ 210.414 l 261.234 210.414 l 261.238 210.418 l 261.246 210.418 l 261.246
+ 210.422 l 261.254 210.422 l 261.254 210.426 l 261.262 210.426 l 261.266
+ 210.43 l 261.273 210.43 l 261.273 210.434 l 261.277 210.434 l 261.281 210.438
+ l 261.289 210.438 l 261.293 210.441 l 261.297 210.441 l 261.301 210.445
+ l 261.309 210.445 l 261.312 210.449 l 261.316 210.449 l 261.316 210.453
+ l 261.324 210.453 l 261.328 210.457 l 261.336 210.457 l 261.34 210.461 
+l 261.344 210.461 l 261.344 210.465 l 261.352 210.465 l 261.355 210.469 
+l 261.363 210.469 l 261.363 210.473 l 261.371 210.473 l 261.375 210.477 
+l 261.379 210.477 l 261.383 210.48 l 261.391 210.48 l 261.391 210.484 l 
+261.398 210.484 l 261.402 210.488 l 261.406 210.488 l 261.41 210.492 l 261.418
+ 210.492 l 261.418 210.496 l 261.426 210.496 l 261.43 210.5 l 261.438 210.5
+ l 261.438 210.504 l 261.445 210.504 l 261.445 210.508 l 261.453 210.508
+ l 261.457 210.512 l 261.465 210.512 l 261.465 210.516 l 261.473 210.516
+ l 261.477 210.52 l 261.48 210.52 l 261.484 210.523 l 261.488 210.523 l 
+261.492 210.527 l 261.5 210.527 l 261.504 210.531 l 261.508 210.531 l 261.508
+ 210.535 l 261.516 210.535 l 261.52 210.539 l 261.527 210.539 l 261.531 
+210.543 l 261.535 210.543 l 261.539 210.547 l 261.543 210.547 l 261.547 
+210.551 l 261.555 210.551 l 261.555 210.555 l 261.562 210.555 l 261.566 
+210.559 l 261.574 210.559 l 261.574 210.562 l 261.582 210.562 l 261.582 
+210.566 l 261.59 210.566 l 261.594 210.57 l 261.602 210.57 l 261.602 210.574
+ l 261.609 210.574 l 261.613 210.578 l 261.617 210.578 l 261.621 210.582
+ l 261.629 210.582 l 261.629 210.586 l 261.637 210.586 l 261.641 210.59 
+l 261.648 210.59 l 261.648 210.594 l 261.656 210.594 l 261.656 210.598 l
+ 261.664 210.598 l 261.668 210.602 l 261.676 210.602 l 261.676 210.605 l
+ 261.684 210.605 l 261.688 210.609 l 261.691 210.609 l 261.695 210.613 l
+ 261.699 210.613 l 261.703 210.617 l 261.711 210.617 l 261.715 210.621 l
+ 261.723 210.621 l 261.723 210.625 l 261.727 210.625 l 261.73 210.629 l 
+261.738 210.629 l 261.742 210.633 l 261.746 210.633 l 261.75 210.637 l 261.758
+ 210.637 l 261.762 210.641 l 261.766 210.641 l 261.766 210.645 l 261.773
+ 210.645 l 261.777 210.648 l 261.785 210.648 l 261.785 210.652 l 261.793
+ 210.652 l 261.797 210.656 l 261.801 210.656 l 261.805 210.66 l 261.812 
+210.66 l 261.812 210.664 l 261.82 210.664 l 261.824 210.668 l 261.832 210.668
+ l 261.832 210.672 l 261.84 210.672 l 261.84 210.676 l 261.848 210.676 l
+ 261.852 210.68 l 261.859 210.68 l 261.859 210.684 l 261.867 210.684 l 261.871
+ 210.688 l 261.875 210.688 l 261.879 210.691 l 261.887 210.691 l 261.887
+ 210.695 l 261.895 210.695 l 261.898 210.699 l 261.906 210.699 l 261.906
+ 210.703 l 261.914 210.703 l 261.914 210.707 l 261.922 210.707 l 261.926
+ 210.711 l 261.934 210.711 l 261.934 210.715 l 261.941 210.715 l 261.945
+ 210.719 l 261.949 210.719 l 261.953 210.723 l 261.957 210.723 l 261.961
+ 210.727 l 261.969 210.727 l 261.973 210.73 l 261.977 210.73 l 261.98 210.734
+ l 261.988 210.734 l 261.992 210.738 l 261.996 210.738 l 261.996 210.742
+ l 262.004 210.742 l 262.008 210.746 l 262.016 210.746 l 262.02 210.75 l
+ 262.023 210.75 l 262.027 210.754 l 262.031 210.754 l 262.035 210.758 l 
+262.043 210.758 l 262.043 210.762 l 262.051 210.762 l 262.055 210.766 l 
+262.062 210.766 l 262.062 210.77 l 262.07 210.77 l 262.074 210.773 l 262.078
+ 210.773 l 262.082 210.777 l 262.09 210.777 l 262.09 210.781 l 262.098 210.781
+ l 262.102 210.785 l 262.109 210.785 l 262.109 210.789 l 262.117 210.789
+ l 262.117 210.793 l 262.125 210.793 l 262.129 210.797 l 262.137 210.797
+ l 262.137 210.801 l 262.145 210.801 l 262.148 210.805 l 262.156 210.805
+ l 262.156 210.809 l 262.164 210.809 l 262.164 210.812 l 262.172 210.812
+ l 262.176 210.816 l 262.184 210.816 l 262.184 210.82 l 262.191 210.82 l
+ 262.195 210.824 l 262.203 210.824 l 262.203 210.828 l 262.211 210.828 l
+ 262.211 210.832 l 262.219 210.832 l 262.223 210.836 l 262.23 210.836 l 
+262.23 210.84 l 262.238 210.84 l 262.242 210.844 l 262.246 210.844 l 262.25
+ 210.848 l 262.254 210.848 l 262.258 210.852 l 262.266 210.852 l 262.27 
+210.855 l 262.273 210.855 l 262.277 210.859 l 262.285 210.859 l 262.289 
+210.863 l 262.293 210.863 l 262.293 210.867 l 262.301 210.867 l 262.305 
+210.871 l 262.312 210.871 l 262.316 210.875 l 262.32 210.875 l 262.324 210.879
+ l 262.332 210.879 l 262.336 210.883 l 262.34 210.883 l 262.34 210.887 l
+ 262.348 210.887 l 262.352 210.891 l 262.359 210.891 l 262.359 210.895 l
+ 262.367 210.895 l 262.371 210.898 l 262.379 210.898 l 262.379 210.902 l
+ 262.387 210.902 l 262.387 210.906 l 262.395 210.906 l 262.398 210.91 l 
+262.406 210.91 l 262.406 210.914 l 262.414 210.914 l 262.418 210.918 l 262.426
+ 210.918 l 262.426 210.922 l 262.434 210.922 l 262.438 210.926 l 262.441
+ 210.926 l 262.445 210.93 l 262.453 210.93 l 262.453 210.934 l 262.461 210.934
+ l 262.465 210.938 l 262.473 210.938 l 262.473 210.941 l 262.48 210.941 
+l 262.484 210.945 l 262.488 210.945 l 262.492 210.949 l 262.5 210.949 l 
+262.5 210.953 l 262.508 210.953 l 262.512 210.957 l 262.52 210.957 l 262.52
+ 210.961 l 262.527 210.961 l 262.531 210.965 l 262.535 210.965 l 262.539
+ 210.969 l 262.547 210.969 l 262.547 210.973 l 262.555 210.973 l 262.559
+ 210.977 l 262.566 210.977 l 262.566 210.98 l 262.574 210.98 l 262.578 210.984
+ l 262.586 210.984 l 262.586 210.988 l 262.594 210.988 l 262.594 210.992
+ l 262.602 210.992 l 262.605 210.996 l 262.613 210.996 l 262.613 211 l 262.621
+ 211 l 262.625 211.004 l 262.633 211.004 l 262.633 211.008 l 262.637 211.008
+ l 262.641 211.012 l 262.648 211.012 l 262.652 211.016 l 262.656 211.016
+ l 262.66 211.02 l 262.668 211.02 l 262.672 211.023 l 262.676 211.023 l 
+262.68 211.027 l 262.688 211.027 l 262.691 211.031 l 262.695 211.031 l 262.699
+ 211.035 l 262.703 211.035 l 262.707 211.039 l 262.715 211.039 l 262.719
+ 211.043 l 262.723 211.043 l 262.727 211.047 l 262.734 211.047 l 262.738
+ 211.051 l 262.742 211.051 l 262.746 211.055 l 262.75 211.055 l 262.754 
+211.059 l 262.762 211.059 l 262.762 211.062 l 262.77 211.062 l 262.773 211.066
+ l 262.781 211.066 l 262.785 211.07 l 262.789 211.07 l 262.793 211.074 l
+ 262.801 211.074 l 262.805 211.078 l 262.809 211.078 l 262.809 211.082 l
+ 262.816 211.082 l 262.82 211.086 l 262.828 211.086 l 262.828 211.09 l 262.836
+ 211.09 l 262.84 211.094 l 262.848 211.094 l 262.848 211.098 l 262.855 211.098
+ l 262.859 211.102 l 262.867 211.102 l 262.867 211.105 l 262.875 211.105
+ l 262.875 211.109 l 262.883 211.109 l 262.887 211.113 l 262.895 211.113
+ l 262.895 211.117 l 262.902 211.117 l 262.906 211.121 l 262.914 211.121
+ l 262.914 211.125 l 262.922 211.125 l 262.926 211.129 l 262.934 211.129
+ l 262.934 211.133 l 262.941 211.133 l 262.941 211.137 l 262.949 211.137
+ l 262.953 211.141 l 262.961 211.141 l 262.961 211.145 l 262.969 211.145
+ l 262.973 211.148 l 262.98 211.148 l 262.98 211.152 l 262.988 211.152 l
+ 262.992 211.156 l 262.996 211.156 l 263 211.16 l 263.008 211.16 l 263.008
+ 211.164 l 263.016 211.164 l 263.02 211.168 l 263.027 211.168 l 263.027 
+211.172 l 263.035 211.172 l 263.039 211.176 l 263.047 211.176 l 263.047 
+211.18 l 263.055 211.18 l 263.059 211.184 l 263.062 211.184 l 263.066 211.188
+ l 263.074 211.188 l 263.074 211.191 l 263.082 211.191 l 263.086 211.195
+ l 263.094 211.195 l 263.094 211.199 l 263.102 211.199 l 263.105 211.203
+ l 263.113 211.203 l 263.113 211.207 l 263.121 211.207 l 263.125 211.211
+ l 263.133 211.211 l 263.133 211.215 l 263.141 211.215 l 263.141 211.219
+ l 263.148 211.219 l 263.152 211.223 l 263.16 211.223 l 263.16 211.227 l
+ 263.168 211.227 l 263.172 211.23 l 263.18 211.23 l 263.18 211.234 l 263.188
+ 211.234 l 263.191 211.238 l 263.199 211.238 l 263.199 211.242 l 263.207
+ 211.242 l 263.211 211.246 l 263.215 211.246 l 263.219 211.25 l 263.227 
+211.25 l 263.227 211.254 l 263.234 211.254 l 263.238 211.258 l 263.246 211.258
+ l 263.246 211.262 l 263.254 211.262 l 263.258 211.266 l 263.266 211.266
+ l 263.266 211.27 l 263.273 211.27 l 263.277 211.273 l 263.285 211.273 l
+ 263.285 211.277 l 263.293 211.277 l 263.293 211.281 l 263.301 211.281 l
+ 263.305 211.285 l 263.312 211.285 l 263.312 211.289 l 263.32 211.289 l 
+263.324 211.293 l 263.332 211.293 l 263.332 211.297 l 263.34 211.297 l 263.344
+ 211.301 l 263.352 211.301 l 263.352 211.305 l 263.359 211.305 l 263.363
+ 211.309 l 263.371 211.309 l 263.371 211.312 l 263.379 211.312 l 263.379
+ 211.316 l 263.387 211.316 l 263.391 211.32 l 263.398 211.32 l 263.398 211.324
+ l 263.406 211.324 l 263.41 211.328 l 263.418 211.328 l 263.418 211.332 
+l 263.426 211.332 l 263.43 211.336 l 263.438 211.336 l 263.438 211.34 l 
+263.445 211.34 l 263.449 211.344 l 263.457 211.344 l 263.457 211.348 l 263.465
+ 211.348 l 263.465 211.352 l 263.473 211.352 l 263.477 211.355 l 263.484
+ 211.355 l 263.484 211.359 l 263.492 211.359 l 263.496 211.363 l 263.504
+ 211.363 l 263.504 211.367 l 263.512 211.367 l 263.516 211.371 l 263.523
+ 211.371 l 263.523 211.375 l 263.531 211.375 l 263.535 211.379 l 263.543
+ 211.379 l 263.543 211.383 l 263.551 211.383 l 263.555 211.387 l 263.559
+ 211.387 l 263.562 211.391 l 263.57 211.391 l 263.57 211.395 l 263.578 211.395
+ l 263.582 211.398 l 263.59 211.398 l 263.59 211.402 l 263.598 211.402 l
+ 263.602 211.406 l 263.609 211.406 l 263.609 211.41 l 263.617 211.41 l 263.621
+ 211.414 l 263.629 211.414 l 263.629 211.418 l 263.637 211.418 l 263.641
+ 211.422 l 263.648 211.422 l 263.648 211.426 l 263.656 211.426 l 263.66 
+211.43 l 263.664 211.43 l 263.668 211.434 l 263.676 211.434 l 263.676 211.438
+ l 263.684 211.438 l 263.688 211.441 l 263.695 211.441 l 263.695 211.445
+ l 263.703 211.445 l 263.707 211.449 l 263.715 211.449 l 263.715 211.453
+ l 263.723 211.453 l 263.727 211.457 l 263.734 211.457 l 263.734 211.461
+ l 263.742 211.461 l 263.746 211.465 l 263.754 211.465 l 263.754 211.469
+ l 263.762 211.469 l 263.766 211.473 l 263.773 211.473 l 263.773 211.477
+ l 263.781 211.477 l 263.781 211.48 l 263.789 211.48 l 263.793 211.484 l
+ 263.801 211.484 l 263.801 211.488 l 263.809 211.488 l 263.812 211.492 l
+ 263.82 211.492 l 263.82 211.496 l 263.828 211.496 l 263.832 211.5 l 263.84
+ 211.5 l 263.84 211.504 l 263.848 211.504 l 263.852 211.508 l 263.859 211.508
+ l 263.859 211.512 l 263.867 211.512 l 263.871 211.516 l 263.879 211.516
+ l 263.879 211.52 l 263.887 211.52 l 263.891 211.523 l 263.898 211.523 l
+ 263.898 211.527 l S
+263.898 211.527 m 263.906 211.527 l 263.91 211.531 l 263.918 211.531 l 
+263.918 211.535 l 263.926 211.535 l 263.926 211.539 l 263.934 211.539 l 
+263.938 211.543 l 263.945 211.543 l 263.945 211.547 l 263.953 211.547 l 
+263.957 211.551 l 263.965 211.551 l 263.965 211.555 l 263.973 211.555 l 
+263.977 211.559 l 263.984 211.559 l 263.984 211.562 l 263.992 211.562 l 
+263.996 211.566 l 264.004 211.566 l 264.004 211.57 l 264.012 211.57 l 264.016
+ 211.574 l 264.023 211.574 l 264.023 211.578 l 264.031 211.578 l 264.035
+ 211.582 l 264.043 211.582 l 264.043 211.586 l 264.051 211.586 l 264.055
+ 211.59 l 264.062 211.59 l 264.062 211.594 l 264.07 211.594 l 264.074 211.598
+ l 264.082 211.598 l 264.082 211.602 l 264.09 211.602 l 264.094 211.605 
+l 264.098 211.605 l 264.102 211.609 l 264.109 211.609 l 264.109 211.613 
+l 264.117 211.613 l 264.121 211.617 l 264.129 211.617 l 264.129 211.621 
+l 264.137 211.621 l 264.141 211.625 l 264.148 211.625 l 264.148 211.629 
+l 264.156 211.629 l 264.16 211.633 l 264.168 211.633 l 264.168 211.637 l
+ 264.176 211.637 l 264.18 211.641 l 264.188 211.641 l 264.188 211.645 l 
+264.195 211.645 l 264.199 211.648 l 264.207 211.648 l 264.207 211.652 l 
+264.215 211.652 l 264.219 211.656 l 264.227 211.656 l 264.23 211.66 l 264.234
+ 211.66 l 264.238 211.664 l 264.246 211.664 l 264.25 211.668 l 264.254 211.668
+ l 264.258 211.672 l 264.266 211.672 l 264.27 211.676 l 264.273 211.676 
+l 264.277 211.68 l 264.285 211.68 l 264.289 211.684 l 264.293 211.684 l 
+264.297 211.688 l 264.305 211.688 l 264.309 211.691 l 264.316 211.691 l 
+264.316 211.695 l 264.324 211.695 l 264.328 211.699 l 264.336 211.699 l 
+264.336 211.703 l 264.344 211.703 l 264.348 211.707 l 264.355 211.707 l 
+264.355 211.711 l 264.359 211.711 l 264.363 211.715 l 264.371 211.715 l 
+264.375 211.719 l 264.379 211.719 l 264.383 211.723 l 264.391 211.723 l 
+264.395 211.727 l 264.398 211.727 l 264.402 211.73 l 264.41 211.73 l 264.414
+ 211.734 l 264.422 211.734 l 264.422 211.738 l 264.43 211.738 l 264.434 
+211.742 l 264.441 211.742 l 264.441 211.746 l 264.449 211.746 l 264.453 
+211.75 l 264.461 211.75 l 264.461 211.754 l 264.469 211.754 l 264.473 211.758
+ l 264.48 211.758 l 264.48 211.762 l 264.488 211.762 l 264.492 211.766 l
+ 264.5 211.766 l 264.5 211.77 l 264.508 211.77 l 264.512 211.773 l 264.52
+ 211.773 l 264.52 211.777 l 264.527 211.777 l 264.531 211.781 l 264.539 
+211.781 l 264.539 211.785 l 264.547 211.785 l 264.551 211.789 l 264.559 
+211.789 l 264.559 211.793 l 264.566 211.793 l 264.57 211.797 l 264.578 211.797
+ l 264.578 211.801 l 264.586 211.801 l 264.59 211.805 l 264.598 211.805 
+l 264.598 211.809 l 264.605 211.809 l 264.609 211.812 l 264.617 211.812 
+l 264.617 211.816 l 264.625 211.816 l 264.629 211.82 l 264.637 211.82 l 
+264.637 211.824 l 264.645 211.824 l 264.648 211.828 l 264.656 211.828 l 
+264.656 211.832 l 264.664 211.832 l 264.668 211.836 l 264.676 211.836 l 
+264.676 211.84 l 264.684 211.84 l 264.688 211.844 l 264.695 211.844 l 264.699
+ 211.848 l 264.703 211.848 l 264.707 211.852 l 264.715 211.852 l 264.719
+ 211.855 l 264.723 211.855 l 264.727 211.859 l 264.734 211.859 l 264.738
+ 211.863 l 264.742 211.863 l 264.746 211.867 l 264.754 211.867 l 264.758
+ 211.871 l 264.762 211.871 l 264.766 211.875 l 264.773 211.875 l 264.777
+ 211.879 l 264.781 211.879 l 264.785 211.883 l 264.793 211.883 l 264.797
+ 211.887 l 264.805 211.887 l 264.805 211.891 l 264.812 211.891 l 264.816
+ 211.895 l 264.824 211.895 l 264.824 211.898 l 264.832 211.898 l 264.836
+ 211.902 l 264.844 211.902 l 264.844 211.906 l 264.852 211.906 l 264.855
+ 211.91 l 264.863 211.91 l 264.863 211.914 l 264.871 211.914 l 264.875 211.918
+ l 264.883 211.918 l 264.883 211.922 l 264.891 211.922 l 264.895 211.926
+ l 264.902 211.926 l 264.902 211.93 l 264.914 211.93 l 264.914 211.934 l
+ 264.922 211.934 l 264.926 211.938 l 264.934 211.938 l 264.934 211.941 l
+ 264.941 211.941 l 264.945 211.945 l 264.953 211.945 l 264.953 211.949 l
+ 264.961 211.949 l 264.965 211.953 l 264.973 211.953 l 264.973 211.957 l
+ 264.98 211.957 l 264.984 211.961 l 264.992 211.961 l 264.996 211.965 l 
+265 211.965 l 265.004 211.969 l 265.012 211.969 l 265.016 211.973 l 265.02
+ 211.973 l 265.023 211.977 l 265.031 211.977 l 265.035 211.98 l 265.039 
+211.98 l 265.043 211.984 l 265.051 211.984 l 265.055 211.988 l 265.059 211.988
+ l 265.062 211.992 l 265.07 211.992 l 265.074 211.996 l 265.082 211.996 
+l 265.082 212 l 265.09 212 l 265.094 212.004 l 265.102 212.004 l 265.102
+ 212.008 l 265.109 212.008 l 265.113 212.012 l 265.121 212.012 l 265.121
+ 212.016 l 265.129 212.016 l 265.133 212.02 l 265.141 212.02 l 265.141 212.023
+ l 265.148 212.023 l 265.152 212.027 l 265.16 212.027 l 265.16 212.031 l
+ 265.168 212.031 l 265.172 212.035 l 265.18 212.035 l 265.18 212.039 l 265.191
+ 212.039 l 265.191 212.043 l 265.199 212.043 l 265.203 212.047 l 265.211
+ 212.047 l 265.211 212.051 l 265.219 212.051 l 265.223 212.055 l 265.23 
+212.055 l 265.23 212.059 l 265.238 212.059 l 265.242 212.062 l 265.25 212.062
+ l 265.25 212.066 l 265.258 212.066 l 265.262 212.07 l 265.27 212.07 l 265.273
+ 212.074 l 265.277 212.074 l 265.281 212.078 l 265.289 212.078 l 265.293
+ 212.082 l 265.297 212.082 l 265.301 212.086 l 265.309 212.086 l 265.312
+ 212.09 l 265.316 212.09 l 265.32 212.094 l 265.328 212.094 l 265.332 212.098
+ l 265.336 212.098 l 265.34 212.102 l 265.348 212.102 l 265.352 212.105 
+l 265.359 212.105 l 265.363 212.109 l 265.371 212.109 l 265.371 212.113 
+l 265.379 212.113 l 265.383 212.117 l 265.391 212.117 l 265.391 212.121 
+l 265.398 212.121 l 265.402 212.125 l 265.41 212.125 l 265.41 212.129 l 
+265.418 212.129 l 265.422 212.133 l 265.43 212.133 l 265.43 212.137 l 265.438
+ 212.137 l 265.441 212.141 l 265.449 212.141 l 265.449 212.145 l 265.457
+ 212.145 l 265.461 212.148 l 265.469 212.148 l 265.469 212.152 l 265.477
+ 212.152 l 265.48 212.156 l 265.488 212.156 l 265.488 212.16 l 265.5 212.16
+ l 265.504 212.164 l 265.508 212.164 l 265.512 212.168 l 265.52 212.168 
+l 265.523 212.172 l 265.527 212.172 l 265.531 212.176 l 265.539 212.176 
+l 265.543 212.18 l 265.547 212.18 l 265.551 212.184 l 265.559 212.184 l 
+265.562 212.188 l 265.57 212.188 l 265.57 212.191 l 265.578 212.191 l 265.582
+ 212.195 l 265.59 212.195 l 265.59 212.199 l 265.598 212.199 l 265.602 212.203
+ l 265.609 212.203 l 265.609 212.207 l 265.621 212.207 l 265.621 212.211
+ l 265.629 212.211 l 265.633 212.215 l 265.641 212.215 l 265.641 212.219
+ l 265.648 212.219 l 265.652 212.223 l 265.66 212.223 l 265.66 212.227 l
+ 265.668 212.227 l 265.672 212.23 l 265.68 212.23 l 265.68 212.234 l 265.688
+ 212.234 l 265.691 212.238 l 265.699 212.238 l 265.699 212.242 l 265.707
+ 212.242 l 265.711 212.246 l 265.719 212.246 l 265.719 212.25 l 265.73 212.25
+ l 265.734 212.254 l 265.738 212.254 l 265.742 212.258 l 265.75 212.258 
+l 265.754 212.262 l 265.762 212.262 l 265.762 212.266 l 265.77 212.266 l
+ 265.773 212.27 l 265.781 212.27 l 265.781 212.273 l 265.789 212.273 l 265.793
+ 212.277 l 265.801 212.277 l 265.801 212.281 l 265.809 212.281 l 265.812
+ 212.285 l 265.82 212.285 l 265.82 212.289 l 265.832 212.289 l 265.832 212.293
+ l 265.84 212.293 l 265.844 212.297 l 265.852 212.297 l 265.852 212.301 
+l 265.859 212.301 l 265.863 212.305 l 265.871 212.305 l 265.871 212.309 
+l 265.879 212.309 l 265.883 212.312 l 265.891 212.312 l 265.891 212.316 
+l 265.898 212.316 l 265.902 212.32 l 265.91 212.32 l 265.914 212.324 l 265.922
+ 212.324 l 265.926 212.328 l 265.93 212.328 l 265.934 212.332 l 265.941 
+212.332 l 265.945 212.336 l 265.953 212.336 l 265.953 212.34 l 265.961 212.34
+ l 265.965 212.344 l 265.973 212.344 l 265.973 212.348 l 265.98 212.348 
+l 265.984 212.352 l 265.992 212.352 l 265.992 212.355 l 266.004 212.355 
+l 266.004 212.359 l 266.012 212.359 l 266.016 212.363 l 266.023 212.363 
+l 266.023 212.367 l 266.031 212.367 l 266.035 212.371 l 266.043 212.371 
+l 266.043 212.375 l 266.051 212.375 l 266.055 212.379 l 266.062 212.379 
+l 266.062 212.383 l 266.07 212.383 l 266.074 212.387 l 266.082 212.387 l
+ 266.086 212.391 l 266.094 212.391 l 266.098 212.395 l 266.102 212.395 l
+ 266.105 212.398 l 266.113 212.398 l 266.117 212.402 l 266.121 212.402 l
+ 266.125 212.406 l 266.133 212.406 l 266.137 212.41 l 266.145 212.41 l 266.145
+ 212.414 l 266.156 212.414 l 266.156 212.418 l 266.164 212.418 l 266.168
+ 212.422 l 266.176 212.422 l 266.176 212.426 l 266.184 212.426 l 266.188
+ 212.43 l 266.195 212.43 l 266.195 212.434 l 266.203 212.434 l 266.207 212.438
+ l 266.215 212.438 l 266.215 212.441 l 266.227 212.441 l 266.227 212.445
+ l 266.234 212.445 l 266.238 212.449 l 266.246 212.449 l 266.25 212.453 
+l 266.254 212.453 l 266.258 212.457 l 266.266 212.457 l 266.27 212.461 l
+ 266.273 212.461 l 266.277 212.465 l 266.285 212.465 l 266.289 212.469 l
+ 266.297 212.469 l 266.301 212.473 l 266.309 212.473 l 266.309 212.477 l
+ 266.316 212.477 l 266.32 212.48 l 266.328 212.48 l 266.328 212.484 l 266.336
+ 212.484 l 266.34 212.488 l 266.348 212.488 l 266.348 212.492 l 266.355 
+212.492 l 266.359 212.496 l 266.367 212.496 l 266.371 212.5 l 266.379 212.5
+ l 266.379 212.504 l 266.387 212.504 l 266.391 212.508 l 266.398 212.508
+ l 266.398 212.512 l 266.406 212.512 l 266.41 212.516 l 266.418 212.516 
+l 266.418 212.52 l 266.43 212.52 l 266.434 212.523 l 266.441 212.523 l 266.441
+ 212.527 l 266.449 212.527 l 266.453 212.531 l 266.461 212.531 l 266.461
+ 212.535 l 266.469 212.535 l 266.473 212.539 l 266.48 212.539 l 266.48 212.543
+ l 266.492 212.543 l 266.492 212.547 l 266.5 212.547 l 266.504 212.551 l
+ 266.512 212.551 l 266.512 212.555 l 266.52 212.555 l 266.523 212.559 l 
+266.531 212.559 l 266.531 212.562 l 266.539 212.562 l 266.543 212.566 l 
+266.551 212.566 l 266.555 212.57 l 266.562 212.57 l 266.566 212.574 l 266.57
+ 212.574 l 266.574 212.578 l 266.582 212.578 l 266.586 212.582 l 266.59 
+212.582 l 266.594 212.586 l 266.605 212.586 l 266.605 212.59 l 266.613 212.59
+ l 266.617 212.594 l 266.625 212.594 l 266.625 212.598 l 266.633 212.598
+ l 266.637 212.602 l 266.645 212.602 l 266.645 212.605 l 266.652 212.605
+ l 266.656 212.609 l 266.664 212.609 l 266.668 212.613 l 266.676 212.613
+ l 266.676 212.617 l 266.684 212.617 l 266.688 212.621 l 266.695 212.621
+ l 266.695 212.625 l 266.703 212.625 l 266.707 212.629 l 266.719 212.629
+ l 266.719 212.633 l 266.727 212.633 l 266.73 212.637 l 266.738 212.637 
+l 266.738 212.641 l 266.746 212.641 l 266.75 212.645 l 266.758 212.645 l
+ 266.758 212.648 l 266.77 212.648 l 266.77 212.652 l 266.777 212.652 l 266.781
+ 212.656 l 266.789 212.656 l 266.789 212.66 l 266.797 212.66 l 266.801 212.664
+ l 266.809 212.664 l 266.809 212.668 l 266.82 212.668 l 266.824 212.672 
+l 266.828 212.672 l 266.832 212.676 l 266.84 212.676 l 266.844 212.68 l 
+266.848 212.68 l 266.852 212.684 l 266.859 212.684 l 266.863 212.688 l 266.871
+ 212.688 l 266.875 212.691 l 266.883 212.691 l 266.883 212.695 l 266.891
+ 212.695 l 266.895 212.699 l 266.902 212.699 l 266.902 212.703 l 266.91 
+212.703 l 266.914 212.707 l 266.922 212.707 l 266.926 212.711 l 266.934 
+212.711 l 266.934 212.715 l 266.941 212.715 l 266.945 212.719 l 266.953 
+212.719 l 266.953 212.723 l 266.961 212.723 l 266.965 212.727 l 266.973 
+212.727 l 266.977 212.73 l 266.984 212.73 l 266.988 212.734 l 266.992 212.734
+ l 266.996 212.738 l 267.004 212.738 l 267.008 212.742 l 267.016 212.742
+ l 267.02 212.746 l 267.027 212.746 l 267.027 212.75 l 267.035 212.75 l 
+267.039 212.754 l 267.047 212.754 l 267.047 212.758 l 267.055 212.758 l 
+267.059 212.762 l 267.066 212.762 l 267.07 212.766 l 267.078 212.766 l 267.078
+ 212.77 l 267.086 212.77 l 267.09 212.773 l 267.098 212.773 l 267.102 212.777
+ l 267.109 212.777 l 267.113 212.781 l 267.121 212.781 l 267.121 212.785
+ l 267.129 212.785 l 267.133 212.789 l 267.141 212.789 l 267.141 212.793
+ l 267.152 212.793 l 267.152 212.797 l 267.16 212.797 l 267.164 212.801 
+l 267.172 212.801 l 267.172 212.805 l 267.18 212.805 l 267.184 212.809 l
+ 267.191 212.809 l 267.191 212.812 l 267.203 212.812 l 267.207 212.816 l
+ 267.211 212.816 l 267.215 212.82 l 267.223 212.82 l 267.227 212.824 l 267.23
+ 212.824 l 267.234 212.828 l 267.246 212.828 l 267.246 212.832 l 267.254
+ 212.832 l 267.258 212.836 l 267.266 212.836 l 267.266 212.84 l 267.273 
+212.84 l 267.277 212.844 l 267.285 212.844 l 267.289 212.848 l 267.297 212.848
+ l 267.297 212.852 l 267.305 212.852 l 267.309 212.855 l 267.316 212.855
+ l 267.316 212.859 l 267.328 212.859 l 267.332 212.863 l 267.336 212.863
+ l 267.34 212.867 l 267.348 212.867 l 267.352 212.871 l 267.355 212.871 
+l 267.359 212.875 l 267.371 212.875 l 267.371 212.879 l 267.379 212.879 
+l 267.383 212.883 l 267.391 212.883 l 267.391 212.887 l 267.398 212.887 
+l 267.402 212.891 l 267.41 212.891 l 267.414 212.895 l 267.422 212.895 l
+ 267.422 212.898 l 267.43 212.898 l 267.434 212.902 l 267.441 212.902 l 
+267.441 212.906 l 267.453 212.906 l 267.457 212.91 l 267.461 212.91 l 267.465
+ 212.914 l 267.473 212.914 l 267.477 212.918 l 267.484 212.918 l 267.484
+ 212.922 l 267.496 212.922 l 267.496 212.926 l 267.504 212.926 l 267.508
+ 212.93 l 267.516 212.93 l 267.516 212.934 l 267.527 212.934 l 267.527 212.938
+ l 267.535 212.938 l 267.539 212.941 l 267.547 212.941 l 267.547 212.945
+ l 267.555 212.945 l 267.559 212.949 l 267.566 212.949 l 267.57 212.953 
+l 267.578 212.953 l 267.582 212.957 l 267.59 212.957 l 267.59 212.961 l 
+267.598 212.961 l 267.602 212.965 l 267.609 212.965 l 267.613 212.969 l 
+267.621 212.969 l 267.621 212.973 l 267.629 212.973 l 267.633 212.977 l 
+267.641 212.977 l 267.645 212.98 l 267.652 212.98 l 267.652 212.984 l 267.66
+ 212.984 l 267.664 212.988 l 267.672 212.988 l 267.672 212.992 l 267.684
+ 212.992 l 267.688 212.996 l 267.695 212.996 l 267.695 213 l 267.703 213
+ l 267.707 213.004 l 267.715 213.004 l 267.719 213.008 l 267.727 213.008
+ l 267.727 213.012 l 267.734 213.012 l 267.738 213.016 l 267.746 213.016
+ l 267.746 213.02 l 267.758 213.02 l 267.758 213.023 l 267.766 213.023 l
+ 267.77 213.027 l 267.777 213.027 l 267.781 213.031 l 267.789 213.031 l 
+267.793 213.035 l 267.801 213.035 l 267.801 213.039 l 267.809 213.039 l 
+267.812 213.043 l 267.82 213.043 l 267.82 213.047 l 267.832 213.047 l 267.832
+ 213.051 l 267.84 213.051 l 267.844 213.055 l 267.852 213.055 l 267.852 
+213.059 l 267.863 213.059 l 267.863 213.062 l 267.871 213.062 l 267.875 
+213.066 l 267.883 213.066 l 267.887 213.07 l 267.895 213.07 l 267.898 213.074
+ l 267.906 213.074 l 267.906 213.078 l 267.914 213.078 l 267.918 213.082
+ l 267.926 213.082 l 267.926 213.086 l 267.938 213.086 l 267.938 213.09 
+l 267.945 213.09 l 267.949 213.094 l 267.957 213.094 l 267.957 213.098 l
+ 267.969 213.098 l 267.973 213.102 l 267.977 213.102 l 267.98 213.105 l 
+267.988 213.105 l 267.992 213.109 l 268 213.109 l 268.004 213.113 l 268.012
+ 213.113 l 268.012 213.117 l 268.02 213.117 l 268.023 213.121 l 268.031 
+213.121 l 268.035 213.125 l 268.043 213.125 l 268.043 213.129 l 268.051 
+213.129 l 268.055 213.133 l 268.062 213.133 l 268.066 213.137 l 268.074 
+213.137 l 268.078 213.141 l 268.082 213.141 l 268.086 213.145 l 268.098 
+213.145 l 268.098 213.148 l 268.105 213.148 l 268.109 213.152 l 268.117 
+213.152 l 268.117 213.156 l 268.129 213.156 l 268.129 213.16 l 268.137 213.16
+ l 268.141 213.164 l 268.148 213.164 l 268.148 213.168 l 268.156 213.168
+ l 268.16 213.172 l 268.168 213.172 l 268.172 213.176 l 268.18 213.176 l
+ 268.184 213.18 l 268.188 213.18 l 268.191 213.184 l 268.203 213.184 l 268.203
+ 213.188 l 268.211 213.188 l 268.215 213.191 l 268.223 213.191 l 268.227
+ 213.195 l 268.234 213.195 l 268.234 213.199 l 268.242 213.199 l 268.246
+ 213.203 l 268.254 213.203 l 268.258 213.207 l 268.266 213.207 l 268.27 
+213.211 l 268.273 213.211 l 268.277 213.215 l 268.289 213.215 l 268.289 
+213.219 l 268.297 213.219 l 268.301 213.223 l 268.309 213.223 l 268.309 
+213.227 l 268.32 213.227 l 268.32 213.23 l 268.328 213.23 l 268.332 213.234
+ l 268.34 213.234 l 268.34 213.238 l 268.352 213.238 l 268.355 213.242 l
+ 268.359 213.242 l 268.363 213.246 l 268.371 213.246 l 268.375 213.25 l 
+268.383 213.25 l 268.387 213.254 l 268.395 213.254 l 268.395 213.258 l 268.402
+ 213.258 l 268.406 213.262 l 268.414 213.262 l 268.418 213.266 l 268.426
+ 213.266 l 268.426 213.27 l 268.434 213.27 l 268.438 213.273 l 268.445 213.273
+ l 268.449 213.277 l 268.457 213.277 l 268.461 213.281 l 268.469 213.281
+ l 268.473 213.285 l 268.48 213.285 l 268.48 213.289 l 268.488 213.289 l
+ 268.492 213.293 l 268.5 213.293 l 268.504 213.297 l 268.512 213.297 l 268.512
+ 213.301 l 268.52 213.301 l 268.523 213.305 l 268.531 213.305 l 268.535 
+213.309 l 268.543 213.309 l 268.547 213.312 l 268.551 213.312 l 268.555 
+213.316 l 268.566 213.316 l 268.566 213.32 l 268.574 213.32 l 268.578 213.324
+ l 268.586 213.324 l 268.59 213.328 l 268.598 213.328 l 268.598 213.332 
+l 268.605 213.332 l 268.609 213.336 l 268.617 213.336 l 268.621 213.34 l
+ 268.629 213.34 l 268.629 213.344 l 268.637 213.344 l 268.641 213.348 l 
+268.652 213.348 l 268.652 213.352 l 268.66 213.352 l 268.664 213.355 l 268.672
+ 213.355 l 268.676 213.359 l 268.684 213.359 l 268.684 213.363 l 268.691
+ 213.363 l 268.695 213.367 l 268.703 213.367 l 268.707 213.371 l 268.715
+ 213.371 l 268.715 213.375 l 268.727 213.375 l 268.73 213.379 l 268.738 
+213.379 l 268.738 213.383 l 268.746 213.383 l 268.75 213.387 l 268.758 213.387
+ l 268.762 213.391 l 268.77 213.391 l 268.77 213.395 l 268.777 213.395 l
+ 268.781 213.398 l 268.789 213.398 l 268.793 213.402 l 268.801 213.402 l
+ 268.801 213.406 l 268.812 213.406 l 268.816 213.41 l 268.82 213.41 l 268.824
+ 213.414 l 268.832 213.414 l 268.836 213.418 l 268.844 213.418 l 268.848
+ 213.422 l 268.855 213.422 l 268.855 213.426 l 268.867 213.426 l 268.867
+ 213.43 l 268.875 213.43 l 268.879 213.434 l 268.887 213.434 l 268.887 213.438
+ l 268.898 213.438 l 268.902 213.441 l 268.906 213.441 l 268.91 213.445 
+l 268.922 213.445 l 268.922 213.449 l 268.93 213.449 l 268.934 213.453 l
+ 268.941 213.453 l 268.941 213.457 l 268.953 213.457 l 268.953 213.461 l
+ 268.961 213.461 l 268.965 213.465 l 268.973 213.465 l 268.977 213.469 l
+ 268.984 213.469 l 268.988 213.473 l 268.996 213.473 l 269 213.477 l 269.008
+ 213.477 l 269.008 213.48 l 269.016 213.48 l 269.02 213.484 l 269.027 213.484
+ l 269.031 213.488 l 269.039 213.488 l 269.039 213.492 l 269.051 213.492
+ l 269.055 213.496 l 269.059 213.496 l 269.062 213.5 l 269.07 213.5 l 269.074
+ 213.504 l 269.082 213.504 l 269.086 213.508 l 269.094 213.508 l 269.094
+ 213.512 l 269.105 213.512 l 269.105 213.516 l 269.113 213.516 l 269.117
+ 213.52 l 269.125 213.52 l 269.129 213.523 l 269.137 213.523 l 269.141 213.527
+ l 269.145 213.527 l 269.148 213.531 l 269.16 213.531 l 269.16 213.535 l
+ 269.168 213.535 l 269.172 213.539 l 269.18 213.539 l 269.184 213.543 l 
+269.191 213.543 l 269.191 213.547 l 269.203 213.547 l 269.203 213.551 l 
+269.211 213.551 l 269.215 213.555 l 269.223 213.555 l 269.227 213.559 l 
+269.234 213.559 l 269.238 213.562 l 269.246 213.562 l 269.246 213.566 l 
+269.258 213.566 l 269.258 213.57 l 269.266 213.57 l 269.27 213.574 l 269.277
+ 213.574 l 269.281 213.578 l 269.289 213.578 l 269.289 213.582 l 269.301
+ 213.582 l 269.305 213.586 l 269.312 213.586 l 269.312 213.59 l 269.32 213.59
+ l 269.324 213.594 l 269.332 213.594 l 269.336 213.598 l 269.344 213.598
+ l 269.344 213.602 l 269.355 213.602 l 269.355 213.605 l 269.363 213.605
+ l 269.367 213.609 l 269.375 213.609 l 269.379 213.613 l 269.387 213.613
+ l 269.391 213.617 l 269.398 213.617 l 269.402 213.621 l 269.41 213.621 
+l 269.41 213.625 l 269.422 213.625 l 269.422 213.629 l 269.43 213.629 l 
+269.434 213.633 l 269.441 213.633 l 269.441 213.637 l 269.453 213.637 l 
+269.457 213.641 l 269.461 213.641 l 269.465 213.645 l 269.477 213.645 l 
+269.477 213.648 l 269.484 213.648 l 269.488 213.652 l 269.496 213.652 l 
+269.5 213.656 l 269.508 213.656 l 269.508 213.66 l 269.52 213.66 l 269.523
+ 213.664 l 269.527 213.664 l 269.531 213.668 l 269.543 213.668 l 269.543
+ 213.672 l 269.551 213.672 l 269.555 213.676 l 269.562 213.676 l 269.566
+ 213.68 l 269.574 213.68 l 269.574 213.684 l 269.582 213.684 l 269.586 213.688
+ l 269.594 213.688 l 269.598 213.691 l 269.605 213.691 l 269.609 213.695
+ l 269.617 213.695 l 269.621 213.699 l 269.629 213.699 l 269.629 213.703
+ l 269.641 213.703 l 269.641 213.707 l 269.648 213.707 l 269.652 213.711
+ l 269.66 213.711 l 269.664 213.715 l 269.672 213.715 l 269.672 213.719 
+l 269.684 213.719 l 269.688 213.723 l 269.695 213.723 l 269.695 213.727 
+l 269.707 213.727 l 269.707 213.73 l 269.715 213.73 l 269.719 213.734 l 
+269.727 213.734 l 269.73 213.738 l 269.738 213.738 l 269.738 213.742 l 269.75
+ 213.742 l 269.754 213.746 l 269.758 213.746 l 269.762 213.75 l 269.773 
+213.75 l 269.773 213.754 l 269.781 213.754 l 269.785 213.758 l 269.793 213.758
+ l 269.797 213.762 l 269.805 213.762 l 269.805 213.766 l 269.816 213.766
+ l 269.82 213.77 l 269.824 213.77 l 269.828 213.773 l 269.84 213.773 l 269.84
+ 213.777 l 269.848 213.777 l 269.852 213.781 l 269.859 213.781 l 269.863
+ 213.785 l 269.871 213.785 l 269.871 213.789 l 269.883 213.789 l 269.887
+ 213.793 l 269.891 213.793 l 269.895 213.797 l 269.906 213.797 l 269.906
+ 213.801 l 269.914 213.801 l 269.918 213.805 l 269.926 213.805 l 269.93 
+213.809 l 269.938 213.809 l 269.938 213.812 l 269.949 213.812 l 269.949 
+213.816 l 269.957 213.816 l 269.961 213.82 l 269.969 213.82 l 269.973 213.824
+ l 269.98 213.824 l 269.984 213.828 l 269.992 213.828 l 269.996 213.832 
+l 270.004 213.832 l 270.004 213.836 l 270.016 213.836 l 270.016 213.84 l
+ 270.023 213.84 l 270.027 213.844 l 270.035 213.844 l 270.039 213.848 l 
+270.047 213.848 l 270.051 213.852 l 270.059 213.852 l 270.062 213.855 l 
+270.07 213.855 l 270.07 213.859 l 270.082 213.859 l 270.082 213.863 l 270.094
+ 213.863 l 270.098 213.867 l 270.102 213.867 l 270.105 213.871 l 270.117
+ 213.871 l 270.117 213.875 l 270.125 213.875 l 270.129 213.879 l 270.137
+ 213.879 l 270.141 213.883 l 270.148 213.883 l 270.148 213.887 l 270.16 
+213.887 l 270.16 213.891 l 270.168 213.891 l 270.172 213.895 l 270.184 213.895
+ l 270.184 213.898 l 270.191 213.898 l 270.195 213.902 l 270.203 213.902
+ l 270.207 213.906 l 270.215 213.906 l 270.215 213.91 l 270.227 213.91 l
+ 270.227 213.914 l 270.234 213.914 l 270.238 213.918 l 270.246 213.918 l
+ 270.25 213.922 l 270.262 213.922 l 270.262 213.926 l 270.27 213.926 l 270.273
+ 213.93 l 270.281 213.93 l 270.285 213.934 l 270.293 213.934 l 270.293 213.938
+ l 270.305 213.938 l 270.309 213.941 l 270.312 213.941 l 270.316 213.945
+ l 270.328 213.945 l 270.328 213.949 l 270.336 213.949 l 270.34 213.953 
+l 270.348 213.953 l 270.352 213.957 l 270.359 213.957 l 270.359 213.961 
+l 270.371 213.961 l 270.375 213.965 l 270.383 213.965 l 270.387 213.969 
+l 270.395 213.969 l 270.395 213.973 l 270.406 213.973 l 270.406 213.977 
+l 270.414 213.977 l 270.418 213.98 l 270.426 213.98 l 270.43 213.984 l 270.438
+ 213.984 l 270.438 213.988 l 270.449 213.988 l 270.453 213.992 l 270.461
+ 213.992 l 270.465 213.996 l 270.473 213.996 l 270.473 214 l 270.484 214
+ l 270.484 214.004 l 270.492 214.004 l 270.496 214.008 l 270.504 214.008
+ l 270.508 214.012 l 270.516 214.012 l 270.52 214.016 l 270.527 214.016 
+l 270.531 214.02 l 270.539 214.02 l 270.539 214.023 l 270.551 214.023 l 
+270.551 214.027 l 270.562 214.027 l 270.566 214.031 l 270.57 214.031 l 270.574
+ 214.035 l 270.586 214.035 l 270.586 214.039 l 270.594 214.039 l 270.598
+ 214.043 l 270.605 214.043 l 270.609 214.047 l 270.617 214.047 l 270.621
+ 214.051 l 270.629 214.051 l 270.629 214.055 l 270.641 214.055 l 270.645
+ 214.059 l 270.652 214.059 l 270.652 214.062 l 270.664 214.062 l 270.664
+ 214.066 l 270.672 214.066 l 270.676 214.07 l 270.684 214.07 l 270.688 214.074
+ l 270.695 214.074 l 270.699 214.078 l 270.707 214.078 l 270.711 214.082
+ l 270.719 214.082 l 270.723 214.086 l 270.73 214.086 l 270.73 214.09 l 
+270.742 214.09 l 270.742 214.094 l 270.754 214.094 l 270.758 214.098 l 270.762
+ 214.098 l 270.766 214.102 l 270.777 214.102 l 270.777 214.105 l 270.785
+ 214.105 l 270.789 214.109 l 270.797 214.109 l 270.801 214.113 l 270.809
+ 214.113 l 270.812 214.117 l 270.82 214.117 l 270.82 214.121 l 270.832 214.121
+ l 270.836 214.125 l 270.844 214.125 l 270.844 214.129 l 270.855 214.129
+ l 270.855 214.133 l 270.867 214.133 l 270.867 214.137 l 270.875 214.137
+ l 270.879 214.141 l 270.887 214.141 l 270.891 214.145 l 270.898 214.145
+ l 270.902 214.148 l 270.91 214.148 l 270.914 214.152 l 270.922 214.152 
+l 270.926 214.156 l 270.934 214.156 l 270.934 214.16 l 270.945 214.16 l 
+270.949 214.164 l 270.957 214.164 l 270.961 214.168 l 270.969 214.168 l 
+270.969 214.172 l 270.98 214.172 l 270.98 214.176 l 270.988 214.176 l 270.992
+ 214.18 l 271 214.18 l 271.004 214.184 l 271.012 214.184 l 271.016 214.188
+ l 271.023 214.188 l 271.027 214.191 l 271.035 214.191 l 271.039 214.195
+ l 271.047 214.195 l 271.051 214.199 l 271.059 214.199 l 271.059 214.203
+ l 271.07 214.203 l 271.074 214.207 l 271.078 214.207 l 271.082 214.211 
+l 271.094 214.211 l 271.094 214.215 l 271.105 214.215 l 271.105 214.219 
+l 271.113 214.219 l 271.117 214.223 l 271.125 214.223 l 271.129 214.227 
+l 271.141 214.227 l 271.141 214.23 l 271.148 214.23 l 271.152 214.234 l 
+271.16 214.234 l 271.164 214.238 l 271.172 214.238 l 271.172 214.242 l 271.184
+ 214.242 l 271.184 214.246 l 271.195 214.246 l 271.199 214.25 l 271.203 
+214.25 l 271.207 214.254 l 271.219 214.254 l 271.219 214.258 l 271.23 214.258
+ l 271.23 214.262 l 271.238 214.262 l 271.242 214.266 l 271.25 214.266 l
+ 271.254 214.27 l 271.266 214.27 l 271.266 214.273 l 271.273 214.273 l 271.277
+ 214.277 l 271.285 214.277 l 271.289 214.281 l 271.297 214.281 l 271.301
+ 214.285 l 271.309 214.285 l 271.309 214.289 l 271.32 214.289 l 271.324 
+214.293 l 271.332 214.293 l 271.336 214.297 l 271.344 214.297 l 271.344 
+214.301 l 271.355 214.301 l 271.355 214.305 l 271.367 214.305 l 271.371 
+214.309 l 271.375 214.309 l 271.379 214.312 l 271.391 214.312 l 271.391 
+214.316 l 271.402 214.316 l 271.402 214.32 l 271.41 214.32 l 271.414 214.324
+ l 271.422 214.324 l 271.426 214.328 l 271.438 214.328 l 271.438 214.332
+ l 271.445 214.332 l 271.449 214.336 l 271.457 214.336 l 271.461 214.34 
+l 271.469 214.34 l 271.473 214.344 l 271.48 214.344 l 271.48 214.348 l 271.492
+ 214.348 l 271.496 214.352 l 271.504 214.352 l 271.508 214.355 l 271.516
+ 214.355 l 271.516 214.359 l 271.527 214.359 l 271.527 214.363 l 271.539
+ 214.363 l 271.543 214.367 l 271.547 214.367 l 271.551 214.371 l 271.562
+ 214.371 l 271.562 214.375 l 271.574 214.375 l 271.574 214.379 l 271.582
+ 214.379 l 271.586 214.383 l 271.594 214.383 l 271.598 214.387 l 271.605
+ 214.387 l 271.609 214.391 l 271.617 214.391 l 271.621 214.395 l 271.629
+ 214.395 l 271.633 214.398 l 271.641 214.398 l 271.645 214.402 l 271.652
+ 214.402 l 271.652 214.406 l 271.664 214.406 l 271.668 214.41 l 271.676 
+214.41 l 271.68 214.414 l 271.688 214.414 l 271.691 214.418 l 271.699 214.418
+ l 271.699 214.422 l 271.711 214.422 l 271.715 214.426 l 271.723 214.426
+ l 271.727 214.43 l 271.734 214.43 l 271.734 214.434 l 271.746 214.434 l
+ 271.746 214.438 l 271.758 214.438 l 271.758 214.441 l 271.766 214.441 l
+ 271.77 214.445 l 271.777 214.445 l 271.781 214.449 l 271.793 214.449 l 
+271.793 214.453 l 271.805 214.453 l 271.805 214.457 l 271.812 214.457 l 
+271.816 214.461 l 271.824 214.461 l 271.828 214.465 l 271.84 214.465 l 271.84
+ 214.469 l 271.848 214.469 l 271.852 214.473 l 271.859 214.473 l 271.863
+ 214.477 l 271.871 214.477 l 271.875 214.48 l 271.883 214.48 l 271.887 214.484
+ l 271.895 214.484 l 271.898 214.488 l 271.906 214.488 l 271.91 214.492 
+l 271.918 214.492 l 271.922 214.496 l 271.93 214.496 l 271.93 214.5 l 271.941
+ 214.5 l 271.945 214.504 l 271.953 214.504 l 271.957 214.508 l 271.965 214.508
+ l 271.969 214.512 l 271.977 214.512 l 271.977 214.516 l 271.988 214.516
+ l 271.988 214.52 l 272 214.52 l 272.004 214.523 l 272.012 214.523 l 272.016
+ 214.527 l 272.023 214.527 l 272.023 214.531 l 272.035 214.531 l 272.035
+ 214.535 l 272.047 214.535 l 272.051 214.539 l 272.055 214.539 l 272.059
+ 214.543 l 272.07 214.543 l 272.07 214.547 l 272.082 214.547 l 272.082 214.551
+ l 272.094 214.551 l 272.098 214.555 l 272.102 214.555 l 272.105 214.559
+ l 272.117 214.559 l 272.117 214.562 l 272.129 214.562 l 272.129 214.566
+ l 272.141 214.566 l 272.141 214.57 l 272.148 214.57 l 272.152 214.574 l
+ 272.16 214.574 l 272.164 214.578 l 272.176 214.578 l 272.176 214.582 l 
+272.188 214.582 l 272.188 214.586 l 272.195 214.586 l 272.199 214.59 l 272.207
+ 214.59 l 272.211 214.594 l 272.223 214.594 l 272.223 214.598 l 272.234 
+214.598 l 272.234 214.602 l 272.242 214.602 l 272.246 214.605 l 272.254 
+214.605 l 272.258 214.609 l 272.266 214.609 l 272.27 214.613 l 272.281 214.613
+ l 272.281 214.617 l 272.293 214.617 l 272.293 214.621 l 272.301 214.621
+ l 272.305 214.625 l 272.312 214.625 l 272.316 214.629 l 272.328 214.629
+ l 272.328 214.633 l 272.34 214.633 l 272.34 214.637 l 272.348 214.637 l
+ 272.352 214.641 l 272.359 214.641 l 272.363 214.645 l 272.371 214.645 l
+ 272.375 214.648 l 272.387 214.648 l 272.387 214.652 l 272.395 214.652 l
+ 272.398 214.656 l 272.406 214.656 l 272.41 214.66 l 272.418 214.66 l 272.422
+ 214.664 l 272.434 214.664 l 272.434 214.668 l 272.445 214.668 l 272.445
+ 214.672 l 272.453 214.672 l 272.457 214.676 l 272.465 214.676 l 272.469
+ 214.68 l 272.48 214.68 l 272.48 214.684 l 272.492 214.684 l 272.492 214.688
+ l 272.5 214.688 l 272.504 214.691 l 272.512 214.691 l 272.516 214.695 l
+ 272.523 214.695 l 272.527 214.699 l 272.539 214.699 l 272.539 214.703 l
+ 272.551 214.703 l 272.551 214.707 l 272.559 214.707 l 272.562 214.711 l
+ 272.57 214.711 l 272.574 214.715 l 272.586 214.715 l 272.586 214.719 l 
+272.598 214.719 l 272.598 214.723 l 272.609 214.723 l 272.609 214.727 l 
+272.617 214.727 l 272.621 214.73 l 272.629 214.73 l 272.633 214.734 l 272.645
+ 214.734 l 272.645 214.738 l 272.656 214.738 l 272.656 214.742 l 272.668
+ 214.742 l 272.672 214.746 l 272.676 214.746 l 272.68 214.75 l 272.691 214.75
+ l 272.691 214.754 l 272.703 214.754 l 272.703 214.758 l 272.715 214.758
+ l 272.715 214.762 l 272.727 214.762 l 272.73 214.766 l 272.734 214.766 
+l 272.738 214.77 l 272.75 214.77 l 272.75 214.773 l 272.762 214.773 l 272.762
+ 214.777 l 272.773 214.777 l 272.777 214.781 l 272.785 214.781 l 272.789
+ 214.785 l 272.797 214.785 l 272.797 214.789 l 272.809 214.789 l 272.809
+ 214.793 l 272.82 214.793 l 272.82 214.797 l 272.832 214.797 l 272.836 214.801
+ l 272.844 214.801 l 272.848 214.805 l 272.855 214.805 l 272.859 214.809
+ l 272.867 214.809 l 272.867 214.812 l 272.879 214.812 l 272.883 214.816
+ l 272.891 214.816 l 272.895 214.82 l 272.902 214.82 l 272.906 214.824 l
+ 272.914 214.824 l 272.918 214.828 l 272.926 214.828 l 272.93 214.832 l 
+272.938 214.832 l 272.941 214.836 l 272.949 214.836 l 272.953 214.84 l 272.961
+ 214.84 l 272.965 214.844 l 272.973 214.844 l 272.977 214.848 l 272.988 
+214.848 l 272.988 214.852 l 273 214.852 l 273 214.855 l 273.008 214.855 
+l 273.012 214.859 l 273.02 214.859 l 273.023 214.863 l 273.031 214.863 l
+ 273.035 214.867 l 273.047 214.867 l 273.047 214.871 l 273.059 214.871 l
+ 273.059 214.875 l 273.07 214.875 l 273.074 214.879 l 273.082 214.879 l 
+273.086 214.883 l 273.094 214.883 l 273.094 214.887 l 273.105 214.887 l 
+273.105 214.891 l 273.117 214.891 l 273.117 214.895 l 273.129 214.895 l 
+273.133 214.898 l 273.141 214.898 l 273.145 214.902 l 273.152 214.902 l 
+273.156 214.906 l 273.164 214.906 l 273.168 214.91 l 273.176 214.91 l 273.18
+ 214.914 l 273.188 214.914 l 273.191 214.918 l 273.199 214.918 l 273.203
+ 214.922 l 273.211 214.922 l 273.215 214.926 l 273.223 214.926 l 273.227
+ 214.93 l 273.238 214.93 l 273.238 214.934 l 273.25 214.934 l 273.25 214.938
+ l 273.258 214.938 l 273.262 214.941 l 273.27 214.941 l 273.273 214.945 
+l 273.285 214.945 l 273.285 214.949 l 273.297 214.949 l 273.297 214.953 
+l 273.309 214.953 l 273.309 214.957 l 273.32 214.957 l 273.324 214.961 l
+ 273.332 214.961 l 273.336 214.965 l 273.344 214.965 l 273.348 214.969 l
+ 273.355 214.969 l 273.355 214.973 l 273.367 214.973 l 273.371 214.977 l
+ 273.379 214.977 l 273.383 214.98 l 273.391 214.98 l 273.395 214.984 l 273.402
+ 214.984 l 273.406 214.988 l 273.414 214.988 l 273.418 214.992 l 273.43 
+214.992 l 273.43 214.996 l 273.441 214.996 l 273.441 215 l 273.453 215 l
+ 273.457 215.004 l 273.461 215.004 l 273.465 215.008 l 273.477 215.008 l
+ 273.477 215.012 l 273.488 215.012 l 273.488 215.016 l 273.5 215.016 l 273.5
+ 215.02 l 273.512 215.02 l 273.516 215.023 l 273.523 215.023 l 273.527 215.027
+ l 273.535 215.027 l 273.539 215.031 l 273.547 215.031 l 273.551 215.035
+ l 273.562 215.035 l 273.562 215.039 l 273.574 215.039 l 273.574 215.043
+ l 273.582 215.043 l 273.586 215.047 l 273.594 215.047 l 273.598 215.051
+ l 273.605 215.051 l 273.609 215.055 l 273.621 215.055 l 273.621 215.059
+ l 273.633 215.059 l 273.633 215.062 l 273.645 215.062 l 273.648 215.066
+ l 273.656 215.066 l 273.66 215.07 l 273.668 215.07 l 273.672 215.074 l 
+273.68 215.074 l 273.684 215.078 l 273.691 215.078 l 273.695 215.082 l 273.707
+ 215.082 l 273.707 215.086 l 273.719 215.086 l 273.719 215.09 l 273.73 215.09
+ l 273.734 215.094 l 273.738 215.094 l 273.742 215.098 l 273.754 215.098
+ l 273.754 215.102 l 273.766 215.102 l 273.766 215.105 l 273.777 215.105
+ l 273.777 215.109 l 273.789 215.109 l 273.793 215.113 l 273.801 215.113
+ l 273.805 215.117 l 273.812 215.117 l 273.816 215.121 l 273.824 215.121
+ l 273.828 215.125 l 273.84 215.125 l 273.84 215.129 l 273.852 215.129 l
+ 273.852 215.133 l 273.863 215.133 l 273.863 215.137 l 273.875 215.137 l
+ 273.879 215.141 l 273.887 215.141 l 273.891 215.145 l 273.898 215.145 l
+ 273.902 215.148 l 273.91 215.148 l 273.914 215.152 l 273.926 215.152 l 
+273.926 215.156 l 273.934 215.156 l 273.938 215.16 l 273.945 215.16 l 273.949
+ 215.164 l 273.957 215.164 l 273.961 215.168 l 273.969 215.168 l 273.973
+ 215.172 l 273.984 215.172 l 273.984 215.176 l 273.996 215.176 l 273.996
+ 215.18 l 274.008 215.18 l 274.008 215.184 l 274.02 215.184 l 274.023 215.188
+ l 274.031 215.188 l 274.035 215.191 l 274.043 215.191 l 274.047 215.195
+ l 274.055 215.195 l 274.059 215.199 l 274.07 215.199 l 274.07 215.203 l
+ 274.082 215.203 l 274.082 215.207 l 274.094 215.207 l 274.094 215.211 l
+ 274.105 215.211 l 274.109 215.215 l 274.117 215.215 l 274.121 215.219 l
+ 274.129 215.219 l 274.133 215.223 l 274.141 215.223 l 274.145 215.227 l
+ 274.156 215.227 l 274.156 215.23 l 274.168 215.23 l 274.168 215.234 l 274.18
+ 215.234 l 274.18 215.238 l 274.191 215.238 l 274.195 215.242 l 274.203 
+215.242 l 274.207 215.246 l 274.215 215.246 l 274.219 215.25 l 274.227 215.25
+ l 274.23 215.254 l 274.242 215.254 l 274.242 215.258 l 274.254 215.258 
+l 274.254 215.262 l 274.266 215.262 l 274.266 215.266 l 274.277 215.266 
+l 274.281 215.27 l 274.289 215.27 l 274.293 215.273 l 274.301 215.273 l 
+274.305 215.277 l 274.312 215.277 l 274.316 215.281 l 274.328 215.281 l 
+274.328 215.285 l 274.34 215.285 l 274.34 215.289 l 274.352 215.289 l 274.352
+ 215.293 l 274.363 215.293 l 274.367 215.297 l 274.375 215.297 l 274.379
+ 215.301 l 274.387 215.301 l 274.391 215.305 l 274.398 215.305 l 274.402
+ 215.309 l 274.414 215.309 l 274.414 215.312 l 274.426 215.312 l 274.426
+ 215.316 l 274.438 215.316 l 274.438 215.32 l 274.449 215.32 l 274.453 215.324
+ l 274.461 215.324 l 274.465 215.328 l 274.473 215.328 l 274.477 215.332
+ l 274.484 215.332 l 274.488 215.336 l 274.5 215.336 l 274.5 215.34 l 274.512
+ 215.34 l 274.512 215.344 l 274.523 215.344 l 274.523 215.348 l 274.535 
+215.348 l 274.539 215.352 l 274.547 215.352 l 274.551 215.355 l 274.559 
+215.355 l 274.562 215.359 l 274.57 215.359 l 274.574 215.363 l 274.582 215.363
+ l 274.586 215.367 l 274.598 215.367 l 274.598 215.371 l 274.609 215.371
+ l 274.609 215.375 l 274.621 215.375 l 274.625 215.379 l 274.633 215.379
+ l 274.637 215.383 l 274.645 215.383 l 274.648 215.387 l 274.656 215.387
+ l 274.66 215.391 l 274.668 215.391 l 274.672 215.395 l 274.684 215.395 
+l 274.684 215.398 l 274.695 215.398 l 274.695 215.402 l 274.707 215.402 
+l 274.711 215.406 l 274.719 215.406 l 274.723 215.41 l 274.73 215.41 l 274.734
+ 215.414 l 274.742 215.414 l 274.746 215.418 l 274.754 215.418 l 274.758
+ 215.422 l 274.77 215.422 l 274.77 215.426 l 274.781 215.426 l 274.781 215.43
+ l 274.793 215.43 l 274.797 215.434 l 274.805 215.434 l 274.809 215.438 
+l 274.82 215.438 l 274.82 215.441 l 274.832 215.441 l 274.836 215.445 l 
+274.844 215.445 l 274.848 215.449 l 274.855 215.449 l 274.859 215.453 l 
+274.867 215.453 l 274.871 215.457 l 274.883 215.457 l 274.883 215.461 l 
+274.895 215.461 l 274.895 215.465 l 274.906 215.465 l 274.906 215.469 l 
+274.918 215.469 l 274.922 215.473 l 274.93 215.473 l 274.934 215.477 l 274.941
+ 215.477 l 274.945 215.48 l 274.953 215.48 l 274.957 215.484 l 274.965 215.484
+ l 274.969 215.488 l 274.98 215.488 l 274.98 215.492 l 274.992 215.492 l
+ 274.992 215.496 l 275.008 215.496 l 275.008 215.5 l 275.02 215.5 l 275.02
+ 215.504 l 275.031 215.504 l 275.031 215.508 l 275.043 215.508 l 275.047
+ 215.512 l 275.055 215.512 l 275.059 215.516 l 275.066 215.516 l 275.07 
+215.52 l 275.078 215.52 l 275.082 215.523 l 275.094 215.523 l 275.094 215.527
+ l 275.105 215.527 l 275.105 215.531 l 275.117 215.531 l 275.117 215.535
+ l 275.129 215.535 l 275.133 215.539 l 275.141 215.539 l 275.145 215.543
+ l 275.156 215.543 l 275.156 215.547 l 275.168 215.547 l 275.172 215.551
+ l 275.18 215.551 l 275.184 215.555 l 275.191 215.555 l 275.195 215.559 
+l 275.203 215.559 l 275.207 215.562 l 275.219 215.562 l 275.219 215.566 
+l 275.23 215.566 l 275.23 215.57 l 275.242 215.57 l 275.242 215.574 l 275.254
+ 215.574 l 275.258 215.578 l 275.266 215.578 l 275.27 215.582 l 275.281 
+215.582 l 275.285 215.586 l 275.293 215.586 l 275.297 215.59 l 275.305 215.59
+ l 275.309 215.594 l 275.316 215.594 l 275.32 215.598 l 275.328 215.598 
+l 275.332 215.602 l 275.344 215.602 l 275.344 215.605 l 275.355 215.605 
+l 275.355 215.609 l 275.367 215.609 l 275.371 215.613 l 275.379 215.613 
+l 275.383 215.617 l 275.395 215.617 l 275.395 215.621 l 275.406 215.621 
+l 275.41 215.625 l 275.418 215.625 l 275.422 215.629 l 275.43 215.629 l 
+275.434 215.633 l 275.441 215.633 l 275.445 215.637 l 275.457 215.637 l 
+275.457 215.641 l 275.469 215.641 l 275.469 215.645 l 275.48 215.645 l 275.484
+ 215.648 l 275.496 215.648 l 275.496 215.652 l 275.508 215.652 l 275.508
+ 215.656 l 275.52 215.656 l 275.52 215.66 l 275.531 215.66 l 275.535 215.664
+ l 275.543 215.664 l 275.547 215.668 l 275.555 215.668 l 275.559 215.672
+ l 275.566 215.672 l 275.57 215.676 l 275.582 215.676 l 275.586 215.68 l
+ 275.594 215.68 l 275.598 215.684 l 275.605 215.684 l 275.609 215.688 l 
+275.621 215.688 l 275.621 215.691 l 275.633 215.691 l 275.633 215.695 l 
+275.645 215.695 l 275.648 215.699 l 275.66 215.699 l 275.66 215.703 l 275.672
+ 215.703 l 275.672 215.707 l 275.684 215.707 l 275.688 215.711 l 275.695
+ 215.711 l 275.699 215.715 l 275.707 215.715 l 275.711 215.719 l 275.719
+ 215.719 l 275.723 215.723 l 275.73 215.723 l 275.734 215.727 l 275.746 
+215.727 l 275.75 215.73 l 275.758 215.73 l 275.762 215.734 l 275.773 215.734
+ l 275.773 215.738 l 275.785 215.738 l 275.785 215.742 l 275.797 215.742
+ l 275.797 215.746 l 275.812 215.746 l 275.812 215.75 l 275.824 215.75 l
+ 275.824 215.754 l 275.836 215.754 l 275.84 215.758 l 275.848 215.758 l 
+275.852 215.762 l 275.859 215.762 l 275.863 215.766 l 275.871 215.766 l 
+275.875 215.77 l 275.887 215.77 l 275.891 215.773 l 275.898 215.773 l 275.902
+ 215.777 l 275.91 215.777 l 275.914 215.781 l 275.922 215.781 l 275.926 
+215.785 l 275.938 215.785 l 275.938 215.789 l 275.949 215.789 l 275.953 
+215.793 l 275.965 215.793 l 275.965 215.797 l 275.977 215.797 l 275.977 
+215.801 l 275.988 215.801 l 275.988 215.805 l 276 215.805 l 276.004 215.809
+ l 276.016 215.809 l 276.016 215.812 l 276.027 215.812 l 276.031 215.816
+ l 276.039 215.816 l 276.043 215.82 l 276.051 215.82 l 276.055 215.824 l
+ 276.062 215.824 l 276.066 215.828 l 276.074 215.828 l 276.078 215.832 l
+ 276.09 215.832 l 276.094 215.836 l 276.102 215.836 l 276.105 215.84 l 276.113
+ 215.84 l 276.117 215.844 l 276.129 215.844 l 276.129 215.848 l 276.141 
+215.848 l 276.145 215.852 l 276.156 215.852 l 276.156 215.855 l 276.168 
+215.855 l 276.168 215.859 l 276.18 215.859 l 276.18 215.863 l 276.191 215.863
+ l 276.195 215.867 l 276.207 215.867 l 276.207 215.871 l 276.219 215.871
+ l 276.223 215.875 l 276.23 215.875 l 276.234 215.879 l 276.242 215.879 
+l 276.246 215.883 l 276.258 215.883 l 276.262 215.887 l 276.27 215.887 l
+ 276.273 215.891 l 276.281 215.891 l 276.285 215.895 l 276.293 215.895 l
+ 276.297 215.898 l 276.305 215.898 l 276.309 215.902 l 276.32 215.902 l 
+276.324 215.906 l 276.332 215.906 l 276.336 215.91 l 276.348 215.91 l 276.348
+ 215.914 l 276.359 215.914 l 276.359 215.918 l 276.371 215.918 l 276.375
+ 215.922 l 276.387 215.922 l 276.387 215.926 l 276.398 215.926 l 276.398
+ 215.93 l 276.41 215.93 l 276.414 215.934 l 276.426 215.934 l 276.426 215.938
+ l 276.438 215.938 l 276.438 215.941 l 276.449 215.941 l 276.453 215.945
+ l 276.461 215.945 l 276.465 215.949 l 276.477 215.949 l 276.477 215.953
+ l 276.488 215.953 l 276.492 215.957 l 276.5 215.957 l 276.504 215.961 l
+ 276.512 215.961 l 276.516 215.965 l 276.527 215.965 l 276.531 215.969 l
+ 276.539 215.969 l 276.543 215.973 l 276.551 215.973 l 276.555 215.977 l
+ 276.566 215.977 l 276.57 215.98 l 276.578 215.98 l 276.582 215.984 l 276.59
+ 215.984 l 276.594 215.988 l 276.605 215.988 l 276.605 215.992 l 276.617
+ 215.992 l 276.621 215.996 l 276.629 215.996 l 276.633 216 l 276.645 216
+ l 276.645 216.004 l 276.656 216.004 l 276.656 216.008 l 276.668 216.008
+ l 276.672 216.012 l 276.684 216.012 l 276.684 216.016 l 276.695 216.016
+ l 276.695 216.02 l 276.711 216.02 l 276.711 216.023 l 276.723 216.023 l
+ 276.723 216.027 l 276.734 216.027 l 276.734 216.031 l 276.746 216.031 l
+ 276.75 216.035 l 276.762 216.035 l 276.762 216.039 l 276.773 216.039 l 
+276.773 216.043 l 276.785 216.043 l 276.789 216.047 l 276.801 216.047 l 
+276.801 216.051 l 276.812 216.051 l 276.816 216.055 l 276.824 216.055 l 
+276.828 216.059 l 276.84 216.059 l 276.84 216.062 l 276.852 216.062 l 276.855
+ 216.066 l 276.863 216.066 l 276.867 216.07 l 276.875 216.07 l 276.879 216.074
+ l 276.891 216.074 l 276.895 216.078 l 276.902 216.078 l 276.906 216.082
+ l 276.914 216.082 l 276.918 216.086 l 276.93 216.086 l 276.934 216.09 l
+ 276.941 216.09 l 276.945 216.094 l 276.953 216.094 l 276.957 216.098 l 
+276.969 216.098 l 276.973 216.102 l 276.98 216.102 l 276.984 216.105 l 276.992
+ 216.105 l 276.996 216.109 l 277.008 216.109 l 277.012 216.113 l 277.02 
+216.113 l 277.023 216.117 l 277.031 216.117 l 277.035 216.121 l 277.047 
+216.121 l 277.051 216.125 l 277.059 216.125 l 277.062 216.129 l 277.07 216.129
+ l 277.074 216.133 l 277.086 216.133 l 277.09 216.137 l 277.098 216.137 
+l 277.102 216.141 l 277.113 216.141 l 277.113 216.145 l 277.125 216.145 
+l 277.129 216.148 l 277.137 216.148 l 277.141 216.152 l 277.152 216.152 
+l 277.152 216.156 l 277.164 216.156 l 277.168 216.16 l 277.176 216.16 l 
+277.18 216.164 l 277.191 216.164 l 277.191 216.168 l 277.203 216.168 l 277.207
+ 216.172 l 277.219 216.172 l 277.219 216.176 l 277.23 216.176 l 277.23 216.18
+ l 277.242 216.18 l 277.246 216.184 l 277.258 216.184 l 277.258 216.188 
+l 277.27 216.188 l 277.27 216.191 l 277.285 216.191 l 277.285 216.195 l 
+277.297 216.195 l 277.297 216.199 l 277.309 216.199 l 277.309 216.203 l 
+277.324 216.203 l 277.324 216.207 l 277.336 216.207 l 277.336 216.211 l 
+277.348 216.211 l 277.352 216.215 l 277.363 216.215 l 277.363 216.219 l 
+277.375 216.219 l 277.375 216.223 l 277.391 216.223 l 277.391 216.227 l 
+277.402 216.227 l 277.402 216.23 l 277.414 216.23 l 277.414 216.234 l 277.43
+ 216.234 l 277.43 216.238 l 277.441 216.238 l 277.441 216.242 l 277.453 
+216.242 l 277.457 216.246 l 277.469 216.246 l 277.469 216.25 l 277.48 216.25
+ l 277.48 216.254 l 277.496 216.254 l 277.496 216.258 l 277.508 216.258 
+l 277.508 216.262 l 277.52 216.262 l 277.523 216.266 l 277.535 216.266 l
+ 277.535 216.27 l 277.547 216.27 l 277.547 216.273 l 277.559 216.273 l 277.562
+ 216.277 l 277.574 216.277 l 277.574 216.281 l 277.586 216.281 l 277.586
+ 216.285 l 277.602 216.285 l 277.602 216.289 l 277.613 216.289 l 277.613
+ 216.293 l 277.625 216.293 l 277.629 216.297 l 277.641 216.297 l 277.641
+ 216.301 l 277.652 216.301 l 277.652 216.305 l 277.668 216.305 l 277.668
+ 216.309 l 277.68 216.309 l 277.68 216.312 l 277.691 216.312 l 277.695 216.316
+ l 277.707 216.316 l 277.707 216.32 l 277.719 216.32 l 277.723 216.324 l
+ 277.73 216.324 l 277.734 216.328 l 277.746 216.328 l 277.746 216.332 l 
+277.758 216.332 l 277.762 216.336 l 277.773 216.336 l 277.773 216.34 l 277.785
+ 216.34 l 277.789 216.344 l 277.797 216.344 l 277.801 216.348 l 277.812 
+216.348 l 277.816 216.352 l 277.824 216.352 l 277.828 216.355 l 277.836 
+216.355 l 277.84 216.359 l 277.852 216.359 l 277.855 216.363 l 277.863 216.363
+ l 277.867 216.367 l 277.879 216.367 l 277.883 216.371 l 277.891 216.371
+ l 277.895 216.375 l 277.906 216.375 l 277.91 216.379 l 277.918 216.379 
+l 277.922 216.383 l 277.93 216.383 l 277.934 216.387 l 277.945 216.387 l
+ 277.949 216.391 l 277.957 216.391 l 277.961 216.395 l 277.973 216.395 l
+ 277.977 216.398 l 277.984 216.398 l 277.988 216.402 l 278 216.402 l 278.004
+ 216.406 l 278.012 216.406 l 278.016 216.41 l 278.027 216.41 l 278.027 216.414
+ l 278.039 216.414 l 278.043 216.418 l 278.051 216.418 l 278.055 216.422
+ l 278.066 216.422 l 278.07 216.426 l 278.078 216.426 l 278.082 216.43 l
+ 278.094 216.43 l 278.094 216.434 l 278.105 216.434 l 278.109 216.438 l 
+278.121 216.438 l 278.121 216.441 l 278.133 216.441 l 278.133 216.445 l 
+278.148 216.445 l 278.148 216.449 l 278.16 216.449 l 278.16 216.453 l 278.176
+ 216.453 l 278.176 216.457 l 278.188 216.457 l 278.188 216.461 l 278.199
+ 216.461 l 278.203 216.465 l 278.215 216.465 l 278.215 216.469 l 278.227
+ 216.469 l 278.23 216.473 l 278.242 216.473 l 278.242 216.477 l 278.254 
+216.477 l 278.258 216.48 l 278.266 216.48 l 278.27 216.484 l 278.281 216.484
+ l 278.285 216.488 l 278.293 216.488 l 278.297 216.492 l 278.309 216.492
+ l 278.312 216.496 l 278.32 216.496 l 278.324 216.5 l 278.336 216.5 l 278.34
+ 216.504 l 278.348 216.504 l 278.352 216.508 l 278.363 216.508 l 278.367
+ 216.512 l 278.375 216.512 l 278.379 216.516 l 278.391 216.516 l 278.391
+ 216.52 l 278.402 216.52 l 278.406 216.523 l 278.418 216.523 l 278.418 216.527
+ l 278.43 216.527 l 278.434 216.531 l 278.445 216.531 l 278.445 216.535 
+l 278.457 216.535 l 278.457 216.539 l 278.473 216.539 l 278.473 216.543 
+l 278.484 216.543 l 278.484 216.547 l 278.496 216.547 l 278.5 216.551 l 
+278.512 216.551 l 278.512 216.555 l 278.523 216.555 l 278.527 216.559 l 
+278.539 216.559 l 278.539 216.562 l 278.551 216.562 l 278.555 216.566 l 
+278.562 216.566 l 278.566 216.57 l 278.578 216.57 l 278.582 216.574 l 278.59
+ 216.574 l 278.594 216.578 l 278.605 216.578 l 278.609 216.582 l 278.617
+ 216.582 l 278.621 216.586 l 278.633 216.586 l 278.637 216.59 l 278.645 
+216.59 l 278.648 216.594 l 278.66 216.594 l 278.664 216.598 l 278.676 216.598
+ l 278.676 216.602 l 278.688 216.602 l 278.688 216.605 l 278.703 216.605
+ l 278.703 216.609 l 278.715 216.609 l 278.715 216.613 l 278.73 216.613 
+l 278.73 216.617 l 278.742 216.617 l 278.742 216.621 l 278.754 216.621 l
+ 278.758 216.625 l 278.77 216.625 l 278.77 216.629 l 278.781 216.629 l 278.785
+ 216.633 l 278.793 216.633 l 278.797 216.637 l 278.809 216.637 l 278.812
+ 216.641 l 278.824 216.641 l 278.828 216.645 l 278.836 216.645 l 278.84 
+216.648 l 278.852 216.648 l 278.855 216.652 l 278.863 216.652 l 278.867 
+216.656 l 278.879 216.656 l 278.879 216.66 l 278.891 216.66 l 278.895 216.664
+ l 278.906 216.664 l 278.906 216.668 l 278.922 216.668 l 278.922 216.672
+ l 278.934 216.672 l 278.934 216.676 l 278.945 216.676 l 278.949 216.68 
+l 278.961 216.68 l 278.961 216.684 l 278.973 216.684 l 278.977 216.688 l
+ 278.984 216.688 l 278.988 216.691 l 279 216.691 l 279.004 216.695 l 279.016
+ 216.695 l 279.02 216.699 l 279.027 216.699 l 279.031 216.703 l 279.043 
+216.703 l 279.047 216.707 l 279.055 216.707 l 279.059 216.711 l 279.07 216.711
+ l 279.07 216.715 l 279.086 216.715 l 279.086 216.719 l 279.098 216.719 
+l 279.098 216.723 l 279.113 216.723 l 279.113 216.727 l 279.125 216.727 
+l 279.125 216.73 l 279.137 216.73 l 279.141 216.734 l 279.152 216.734 l 
+279.156 216.738 l 279.164 216.738 l 279.168 216.742 l 279.18 216.742 l 279.184
+ 216.746 l 279.191 216.746 l 279.195 216.75 l 279.207 216.75 l 279.211 216.754
+ l 279.223 216.754 l 279.223 216.758 l 279.234 216.758 l 279.238 216.762
+ l 279.25 216.762 l 279.25 216.766 l 279.262 216.766 l 279.266 216.77 l 
+279.277 216.77 l 279.277 216.773 l 279.289 216.773 l 279.293 216.777 l 279.305
+ 216.777 l 279.305 216.781 l 279.316 216.781 l 279.32 216.785 l 279.332 
+216.785 l 279.336 216.789 l 279.344 216.789 l 279.348 216.793 l 279.359 
+216.793 l 279.363 216.797 l 279.375 216.797 l 279.375 216.801 l 279.387 
+216.801 l 279.387 216.805 l 279.402 216.805 l 279.402 216.809 l 279.414 
+216.809 l 279.414 216.812 l 279.43 216.812 l 279.43 216.816 l 279.441 216.816
+ l 279.445 216.82 l 279.453 216.82 l 279.457 216.824 l 279.469 216.824 l
+ 279.473 216.828 l 279.484 216.828 l 279.488 216.832 l 279.496 216.832 l
+ 279.5 216.836 l 279.512 216.836 l 279.516 216.84 l 279.527 216.84 l 279.527
+ 216.844 l 279.539 216.844 l 279.539 216.848 l 279.555 216.848 l 279.555
+ 216.852 l 279.566 216.852 l 279.57 216.855 l 279.578 216.855 l 279.582 
+216.859 l 279.594 216.859 l 279.598 216.863 l 279.609 216.863 l 279.613 
+216.867 l 279.621 216.867 l 279.625 216.871 l 279.637 216.871 l 279.641 
+216.875 l 279.652 216.875 l 279.652 216.879 l 279.664 216.879 l 279.664 
+216.883 l 279.68 216.883 l 279.68 216.887 l 279.691 216.887 l 279.695 216.891
+ l 279.707 216.891 l 279.707 216.895 l 279.719 216.895 l 279.723 216.898
+ l 279.734 216.898 l 279.738 216.902 l 279.746 216.902 l 279.75 216.906 
+l 279.762 216.906 l 279.766 216.91 l 279.777 216.91 l 279.777 216.914 l 
+279.793 216.914 l 279.793 216.918 l 279.805 216.918 l 279.805 216.922 l 
+279.816 216.922 l 279.82 216.926 l 279.832 216.926 l 279.836 216.93 l 279.844
+ 216.93 l 279.848 216.934 l 279.859 216.934 l 279.863 216.938 l 279.875 
+216.938 l 279.879 216.941 l 279.887 216.941 l 279.891 216.945 l 279.902 
+216.945 l 279.902 216.949 l 279.918 216.949 l 279.918 216.953 l 279.93 216.953
+ l 279.934 216.957 l 279.941 216.957 l 279.945 216.961 l 279.957 216.961
+ l 279.961 216.965 l 279.973 216.965 l 279.977 216.969 l 279.984 216.969
+ l 279.988 216.973 l 280 216.973 l 280.004 216.977 l 280.016 216.977 l 280.016
+ 216.98 l 280.027 216.98 l 280.031 216.984 l 280.043 216.984 l 280.043 216.988
+ l 280.055 216.988 l 280.059 216.992 l 280.07 216.992 l 280.074 216.996 
+l 280.086 216.996 l 280.09 217 l 280.098 217 l 280.102 217.004 l 280.113
+ 217.004 l 280.113 217.008 l 280.129 217.008 l 280.129 217.012 l 280.141
+ 217.012 l 280.145 217.016 l 280.152 217.016 l 280.156 217.02 l 280.168 
+217.02 l 280.172 217.023 l 280.184 217.023 l 280.188 217.027 l 280.199 217.027
+ l 280.199 217.031 l 280.211 217.031 l 280.215 217.035 l 280.227 217.035
+ l 280.227 217.039 l 280.238 217.039 l 280.242 217.043 l 280.254 217.043
+ l 280.254 217.047 l 280.266 217.047 l 280.27 217.051 l 280.281 217.051 
+l 280.285 217.055 l 280.297 217.055 l 280.301 217.059 l 280.312 217.059 
+l 280.312 217.062 l 280.324 217.062 l 280.324 217.066 l 280.34 217.066 l
+ 280.34 217.07 l 280.352 217.07 l 280.355 217.074 l 280.367 217.074 l 280.371
+ 217.078 l 280.379 217.078 l 280.383 217.082 l 280.395 217.082 l 280.398
+ 217.086 l 280.41 217.086 l 280.41 217.09 l 280.426 217.09 l 280.426 217.094
+ l 280.438 217.094 l 280.441 217.098 l 280.453 217.098 l 280.453 217.102
+ l 280.465 217.102 l 280.469 217.105 l 280.48 217.105 l 280.484 217.109 
+l 280.496 217.109 l 280.496 217.113 l 280.508 217.113 l 280.512 217.117 
+l 280.523 217.117 l 280.523 217.121 l 280.535 217.121 l 280.539 217.125 
+l 280.551 217.125 l 280.555 217.129 l 280.566 217.129 l 280.57 217.133 l
+ 280.582 217.133 l 280.582 217.137 l 280.594 217.137 l 280.598 217.141 l
+ 280.609 217.141 l 280.609 217.145 l 280.621 217.145 l 280.625 217.148 l
+ 280.637 217.148 l 280.641 217.152 l 280.652 217.152 l 280.656 217.156 l
+ 280.664 217.156 l 280.668 217.16 l 280.68 217.16 l 280.684 217.164 l 280.695
+ 217.164 l 280.695 217.168 l 280.707 217.168 l 280.711 217.172 l 280.723
+ 217.172 l 280.727 217.176 l 280.734 217.176 l 280.738 217.18 l 280.75 217.18
+ l 280.754 217.184 l 280.766 217.184 l 280.77 217.188 l 280.781 217.188 
+l 280.781 217.191 l 280.793 217.191 l 280.797 217.195 l 280.809 217.195 
+l 280.812 217.199 l 280.82 217.199 l 280.824 217.203 l 280.836 217.203 l
+ 280.84 217.207 l 280.852 217.207 l 280.855 217.211 l 280.867 217.211 l 
+280.867 217.215 l 280.879 217.215 l 280.883 217.219 l 280.895 217.219 l 
+280.898 217.223 l 280.91 217.223 l 280.914 217.227 l 280.922 217.227 l 280.926
+ 217.23 l 280.938 217.23 l 280.941 217.234 l 280.953 217.234 l 280.953 217.238
+ l 280.965 217.238 l 280.969 217.242 l 280.98 217.242 l 280.984 217.246 
+l 280.996 217.246 l 281 217.25 l 281.012 217.25 l 281.012 217.254 l 281.023
+ 217.254 l 281.027 217.258 l 281.039 217.258 l 281.039 217.262 l 281.051
+ 217.262 l 281.055 217.266 l 281.066 217.266 l 281.07 217.27 l 281.082 217.27
+ l 281.086 217.273 l 281.098 217.273 l 281.098 217.277 l 281.109 217.277
+ l 281.113 217.281 l 281.125 217.281 l 281.129 217.285 l 281.137 217.285
+ l 281.141 217.289 l 281.152 217.289 l 281.156 217.293 l 281.168 217.293
+ l 281.172 217.297 l 281.184 217.297 l 281.184 217.301 l 281.195 217.301
+ l 281.199 217.305 l 281.211 217.305 l 281.215 217.309 l 281.227 217.309
+ l 281.23 217.312 l 281.242 217.312 l 281.242 217.316 l 281.258 217.316 
+l 281.258 217.32 l 281.27 217.32 l 281.273 217.324 l 281.281 217.324 l 281.285
+ 217.328 l 281.297 217.328 l 281.301 217.332 l 281.312 217.332 l 281.316
+ 217.336 l 281.328 217.336 l 281.328 217.34 l 281.344 217.34 l 281.344 217.344
+ l 281.355 217.344 l 281.359 217.348 l 281.371 217.348 l 281.375 217.352
+ l 281.387 217.352 l 281.387 217.355 l 281.402 217.355 l 281.402 217.359
+ l 281.414 217.359 l 281.418 217.363 l 281.43 217.363 l 281.434 217.367 
+l 281.445 217.367 l 281.449 217.371 l 281.457 217.371 l 281.461 217.375 
+l 281.473 217.375 l 281.473 217.379 l 281.488 217.379 l 281.488 217.383 
+l 281.5 217.383 l 281.504 217.387 l 281.516 217.387 l 281.52 217.391 l 281.531
+ 217.391 l 281.535 217.395 l 281.547 217.395 l 281.547 217.398 l 281.559
+ 217.398 l 281.562 217.402 l 281.574 217.402 l 281.578 217.406 l 281.59 
+217.406 l 281.594 217.41 l 281.605 217.41 l 281.605 217.414 l 281.621 217.414
+ l 281.621 217.418 l 281.633 217.418 l 281.637 217.422 l 281.648 217.422
+ l 281.652 217.426 l 281.664 217.426 l 281.664 217.43 l 281.68 217.43 l 
+281.68 217.434 l 281.691 217.434 l 281.695 217.438 l 281.707 217.438 l 281.711
+ 217.441 l 281.723 217.441 l 281.727 217.445 l 281.738 217.445 l 281.738
+ 217.449 l 281.75 217.449 l 281.754 217.453 l 281.766 217.453 l 281.77 217.457
+ l 281.777 217.457 l 281.781 217.461 l 281.793 217.461 l 281.797 217.465
+ l 281.809 217.465 l 281.812 217.469 l 281.824 217.469 l 281.824 217.473
+ l 281.836 217.473 l 281.84 217.477 l 281.852 217.477 l 281.855 217.48 l
+ 281.867 217.48 l 281.871 217.484 l 281.883 217.484 l 281.883 217.488 l 
+281.898 217.488 l 281.898 217.492 l 281.91 217.492 l 281.914 217.496 l 281.926
+ 217.496 l 281.93 217.5 l 281.941 217.5 l 281.941 217.504 l 281.957 217.504
+ l 281.957 217.508 l 281.969 217.508 l 281.973 217.512 l 281.984 217.512
+ l 281.988 217.516 l 282 217.516 l 282.004 217.52 l 282.016 217.52 l 282.016
+ 217.523 l 282.027 217.523 l 282.031 217.527 l 282.043 217.527 l 282.047
+ 217.531 l 282.062 217.531 l 282.062 217.535 l 282.074 217.535 l 282.078
+ 217.539 l 282.09 217.539 l 282.094 217.543 l 282.105 217.543 l 282.109 
+217.547 l 282.121 217.547 l 282.121 217.551 l 282.133 217.551 l 282.137 
+217.555 l 282.148 217.555 l 282.152 217.559 l 282.164 217.559 l 282.168 
+217.562 l 282.18 217.562 l 282.18 217.566 l 282.195 217.566 l 282.195 217.57
+ l 282.207 217.57 l 282.211 217.574 l 282.223 217.574 l 282.227 217.578 
+l 282.238 217.578 l 282.238 217.582 l 282.254 217.582 l 282.254 217.586 
+l 282.266 217.586 l 282.27 217.59 l 282.281 217.59 l 282.285 217.594 l 282.297
+ 217.594 l 282.301 217.598 l 282.312 217.598 l 282.312 217.602 l 282.324
+ 217.602 l 282.328 217.605 l 282.34 217.605 l 282.344 217.609 l 282.355 
+217.609 l 282.359 217.613 l 282.371 217.613 l 282.371 217.617 l 282.387 
+217.617 l 282.391 217.621 l 282.402 217.621 l 282.406 217.625 l 282.418 
+217.625 l 282.418 217.629 l 282.43 217.629 l 282.434 217.633 l 282.445 217.633
+ l 282.449 217.637 l 282.461 217.637 l 282.465 217.641 l 282.477 217.641
+ l 282.477 217.645 l 282.492 217.645 l 282.492 217.648 l 282.504 217.648
+ l 282.508 217.652 l 282.52 217.652 l 282.523 217.656 l 282.535 217.656 
+l 282.535 217.66 l 282.551 217.66 l 282.551 217.664 l 282.566 217.664 l 
+282.57 217.668 l 282.582 217.668 l 282.582 217.672 l 282.598 217.672 l 282.598
+ 217.676 l 282.609 217.676 l 282.613 217.68 l 282.625 217.68 l 282.629 217.684
+ l 282.641 217.684 l 282.641 217.688 l 282.656 217.688 l 282.656 217.691
+ l 282.668 217.691 l 282.672 217.695 l 282.684 217.695 l 282.688 217.699
+ l 282.699 217.699 l 282.703 217.703 l 282.715 217.703 l 282.719 217.707
+ l 282.73 217.707 l 282.734 217.711 l 282.746 217.711 l 282.746 217.715 
+l 282.762 217.715 l 282.762 217.719 l 282.773 217.719 l 282.777 217.723 
+l 282.789 217.723 l 282.793 217.727 l 282.805 217.727 l 282.809 217.73 l
+ 282.82 217.73 l 282.82 217.734 l 282.836 217.734 l 282.84 217.738 l 282.852
+ 217.738 l 282.855 217.742 l 282.867 217.742 l 282.867 217.746 l 282.879
+ 217.746 l 282.883 217.75 l 282.895 217.75 l 282.898 217.754 l 282.91 217.754
+ l 282.914 217.758 l 282.926 217.758 l 282.93 217.762 l 282.941 217.762 
+l 282.945 217.766 l 282.957 217.766 l 282.961 217.77 l 282.973 217.77 l 
+282.973 217.773 l 282.984 217.773 l 282.988 217.777 l 283 217.777 l 283.004
+ 217.781 l 283.016 217.781 l 283.02 217.785 l 283.031 217.785 l 283.035 
+217.789 l 283.047 217.789 l 283.051 217.793 l 283.062 217.793 l 283.066 
+217.797 l 283.078 217.797 l 283.078 217.801 l 283.09 217.801 l 283.094 217.805
+ l 283.105 217.805 l 283.109 217.809 l 283.125 217.809 l 283.125 217.812
+ l 283.137 217.812 l 283.141 217.816 l 283.152 217.816 l 283.156 217.82 
+l 283.168 217.82 l 283.172 217.824 l 283.184 217.824 l 283.184 217.828 l
+ 283.199 217.828 l 283.203 217.832 l 283.215 217.832 l 283.215 217.836 l
+ 283.23 217.836 l 283.23 217.84 l 283.242 217.84 l 283.246 217.844 l 283.258
+ 217.844 l 283.262 217.848 l 283.277 217.848 l 283.277 217.852 l 283.289
+ 217.852 l 283.293 217.855 l 283.305 217.855 l 283.309 217.859 l 283.32 
+217.859 l 283.32 217.863 l 283.336 217.863 l 283.336 217.867 l 283.352 217.867
+ l 283.355 217.871 l 283.367 217.871 l 283.367 217.875 l 283.383 217.875
+ l 283.383 217.879 l 283.395 217.879 l 283.398 217.883 l 283.414 217.883
+ l 283.414 217.887 l 283.43 217.887 l 283.43 217.891 l 283.441 217.891 l
+ 283.445 217.895 l 283.457 217.895 l 283.461 217.898 l 283.473 217.898 l
+ 283.473 217.902 l 283.488 217.902 l 283.492 217.906 l 283.504 217.906 l
+ 283.508 217.91 l 283.52 217.91 l 283.52 217.914 l 283.535 217.914 l 283.535
+ 217.918 l 283.551 217.918 l 283.555 217.922 l 283.566 217.922 l 283.566
+ 217.926 l 283.578 217.926 l 283.582 217.93 l 283.594 217.93 l 283.598 217.934
+ l 283.613 217.934 l 283.613 217.938 l 283.625 217.938 l 283.629 217.941
+ l 283.641 217.941 l 283.645 217.945 l 283.656 217.945 l 283.66 217.949 
+l 283.672 217.949 l 283.676 217.953 l 283.688 217.953 l 283.691 217.957 
+l 283.703 217.957 l 283.703 217.961 l 283.719 217.961 l 283.723 217.965 
+l 283.734 217.965 l 283.738 217.969 l 283.75 217.969 l 283.75 217.973 l 
+283.766 217.973 l 283.766 217.977 l 283.781 217.977 l 283.785 217.98 l 283.797
+ 217.98 l 283.797 217.984 l 283.812 217.984 l 283.812 217.988 l 283.828 
+217.988 l 283.832 217.992 l 283.844 217.992 l 283.844 217.996 l 283.855 
+217.996 l 283.859 218 l 283.871 218 l 283.875 218.004 l 283.891 218.004 
+l 283.891 218.008 l 283.902 218.008 l 283.906 218.012 l 283.918 218.012 
+l 283.922 218.016 l 283.938 218.016 l 283.938 218.02 l 283.949 218.02 l 
+283.953 218.023 l 283.965 218.023 l 283.969 218.027 l 283.98 218.027 l 283.984
+ 218.031 l 283.996 218.031 l 284 218.035 l 284.012 218.035 l 284.016 218.039
+ l 284.027 218.039 l 284.031 218.043 l 284.043 218.043 l 284.047 218.047
+ l 284.059 218.047 l 284.062 218.051 l 284.074 218.051 l 284.078 218.055
+ l 284.09 218.055 l 284.094 218.059 l 284.105 218.059 l 284.109 218.062 
+l 284.121 218.062 l 284.125 218.066 l 284.137 218.066 l 284.141 218.07 l
+ 284.152 218.07 l 284.152 218.074 l 284.168 218.074 l 284.172 218.078 l 
+284.184 218.078 l 284.188 218.082 l 284.199 218.082 l 284.199 218.086 l 
+284.215 218.086 l 284.219 218.09 l 284.23 218.09 l 284.234 218.094 l 284.246
+ 218.094 l 284.246 218.098 l 284.262 218.098 l 284.266 218.102 l 284.277
+ 218.102 l 284.277 218.105 l 284.293 218.105 l 284.293 218.109 l 284.309
+ 218.109 l 284.312 218.113 l 284.324 218.113 l 284.324 218.117 l 284.34 
+218.117 l 284.344 218.121 l 284.355 218.121 l 284.359 218.125 l 284.371 
+218.125 l 284.371 218.129 l 284.387 218.129 l 284.391 218.133 l 284.402 
+218.133 l 284.406 218.137 l 284.418 218.137 l 284.418 218.141 l 284.434 
+218.141 l 284.438 218.145 l 284.449 218.145 l 284.449 218.148 l 284.465 
+218.148 l 284.469 218.152 l 284.48 218.152 l 284.484 218.156 l 284.496 218.156
+ l 284.496 218.16 l 284.512 218.16 l 284.516 218.164 l 284.527 218.164 l
+ 284.531 218.168 l 284.543 218.168 l 284.547 218.172 l 284.559 218.172 l
+ 284.562 218.176 l 284.574 218.176 l 284.574 218.18 l 284.59 218.18 l 284.594
+ 218.184 l 284.605 218.184 l 284.609 218.188 l 284.621 218.188 l 284.625
+ 218.191 l 284.637 218.191 l 284.641 218.195 l 284.656 218.195 l 284.656
+ 218.199 l 284.668 218.199 l 284.672 218.203 l 284.684 218.203 l 284.688
+ 218.207 l 284.703 218.207 l 284.703 218.211 l 284.715 218.211 l 284.719
+ 218.215 l 284.734 218.215 l 284.734 218.219 l 284.746 218.219 l 284.75 
+218.223 l 284.766 218.223 l 284.766 218.227 l 284.781 218.227 l 284.781 
+218.23 l 284.793 218.23 l 284.797 218.234 l 284.812 218.234 l 284.812 218.238
+ l 284.828 218.238 l 284.828 218.242 l 284.844 218.242 l 284.848 218.246
+ l 284.859 218.246 l 284.859 218.25 l 284.875 218.25 l 284.879 218.254 l
+ 284.891 218.254 l 284.895 218.258 l 284.906 218.258 l 284.91 218.262 l 
+284.922 218.262 l 284.926 218.266 l 284.938 218.266 l 284.941 218.27 l 284.953
+ 218.27 l 284.957 218.273 l 284.973 218.273 l 284.973 218.277 l 284.984 
+218.277 l 284.988 218.281 l 285 218.281 l 285.004 218.285 l 285.02 218.285
+ l 285.02 218.289 l 285.031 218.289 l 285.035 218.293 l 285.051 218.293 
+l 285.051 218.297 l 285.066 218.297 l 285.066 218.301 l 285.082 218.301 
+l 285.086 218.305 l 285.098 218.305 l 285.098 218.309 l 285.113 218.309 
+l 285.117 218.312 l 285.129 218.312 l 285.129 218.316 l 285.145 218.316 
+l 285.148 218.32 l 285.16 218.32 l 285.164 218.324 l 285.176 218.324 l 285.18
+ 218.328 l 285.191 218.328 l 285.195 218.332 l 285.211 218.332 l 285.211
+ 218.336 l 285.223 218.336 l 285.227 218.34 l 285.242 218.34 l 285.242 218.344
+ l 285.258 218.344 l 285.262 218.348 l 285.273 218.348 l 285.277 218.352
+ l 285.289 218.352 l 285.293 218.355 l 285.305 218.355 l 285.309 218.359
+ l 285.32 218.359 l 285.324 218.363 l 285.336 218.363 l 285.34 218.367 l
+ 285.355 218.367 l 285.355 218.371 l 285.367 218.371 l 285.371 218.375 l
+ 285.387 218.375 l 285.387 218.379 l 285.402 218.379 l 285.402 218.383 l
+ 285.418 218.383 l 285.422 218.387 l 285.434 218.387 l 285.434 218.391 l
+ 285.449 218.391 l 285.453 218.395 l 285.469 218.395 l 285.469 218.398 l
+ 285.48 218.398 l 285.484 218.402 l 285.5 218.402 l 285.5 218.406 l 285.512
+ 218.406 l 285.516 218.41 l 285.531 218.41 l 285.531 218.414 l 285.547 218.414
+ l 285.547 218.418 l 285.562 218.418 l 285.566 218.422 l 285.578 218.422
+ l 285.582 218.426 l 285.594 218.426 l 285.598 218.43 l 285.613 218.43 l
+ 285.613 218.434 l 285.625 218.434 l 285.629 218.438 l 285.645 218.438 l
+ 285.645 218.441 l 285.66 218.441 l 285.66 218.445 l 285.676 218.445 l 285.68
+ 218.449 l 285.691 218.449 l 285.695 218.453 l 285.707 218.453 l 285.711
+ 218.457 l 285.723 218.457 l 285.727 218.461 l 285.738 218.461 l 285.742
+ 218.465 l 285.758 218.465 l 285.758 218.469 l 285.773 218.469 l 285.777
+ 218.473 l 285.789 218.473 l 285.789 218.477 l 285.805 218.477 l 285.809
+ 218.48 l 285.82 218.48 l 285.824 218.484 l 285.836 218.484 l 285.84 218.488
+ l 285.855 218.488 l 285.855 218.492 l 285.871 218.492 l 285.871 218.496
+ l 285.887 218.496 l 285.891 218.5 l 285.902 218.5 l 285.906 218.504 l 285.918
+ 218.504 l 285.922 218.508 l 285.938 218.508 l 285.938 218.512 l 285.949
+ 218.512 l 285.953 218.516 l 285.969 218.516 l 285.969 218.52 l 285.984 
+218.52 l 285.988 218.523 l 286 218.523 l 286 218.527 l 286.016 218.527 l
+ 286.02 218.531 l 286.035 218.531 l 286.035 218.535 l 286.047 218.535 l 
+286.051 218.539 l 286.066 218.539 l 286.066 218.543 l 286.082 218.543 l 
+286.086 218.547 l 286.098 218.547 l 286.102 218.551 l 286.113 218.551 l 
+286.117 218.555 l 286.133 218.555 l 286.133 218.559 l 286.148 218.559 l 
+286.148 218.562 l 286.164 218.562 l 286.168 218.566 l 286.18 218.566 l 286.184
+ 218.57 l 286.195 218.57 l 286.199 218.574 l 286.215 218.574 l 286.215 218.578
+ l 286.23 218.578 l 286.234 218.582 l 286.246 218.582 l 286.246 218.586 
+l 286.262 218.586 l 286.266 218.59 l 286.277 218.59 l 286.281 218.594 l 
+286.297 218.594 l 286.297 218.598 l 286.312 218.598 l 286.312 218.602 l 
+286.328 218.602 l 286.332 218.605 l 286.344 218.605 l 286.348 218.609 l 
+286.359 218.609 l 286.363 218.613 l 286.379 218.613 l 286.379 218.617 l 
+286.395 218.617 l 286.398 218.621 l 286.41 218.621 l 286.41 218.625 l 286.426
+ 218.625 l 286.43 218.629 l 286.445 218.629 l 286.445 218.633 l 286.461 
+218.633 l 286.465 218.637 l 286.477 218.637 l 286.477 218.641 l 286.492 
+218.641 l 286.496 218.645 l 286.512 218.645 l 286.512 218.648 l 286.527 
+218.648 l 286.531 218.652 l 286.543 218.652 l 286.543 218.656 l 286.559 
+218.656 l 286.562 218.66 l 286.574 218.66 l 286.578 218.664 l 286.594 218.664
+ l 286.598 218.668 l 286.609 218.668 l 286.609 218.672 l 286.625 218.672
+ l 286.629 218.676 l 286.641 218.676 l 286.645 218.68 l 286.66 218.68 l 
+286.66 218.684 l 286.676 218.684 l 286.676 218.688 l 286.691 218.688 l 286.695
+ 218.691 l 286.707 218.691 l 286.711 218.695 l 286.727 218.695 l 286.727
+ 218.699 l 286.742 218.699 l 286.742 218.703 l 286.758 218.703 l 286.762
+ 218.707 l 286.773 218.707 l 286.777 218.711 l 286.793 218.711 l 286.793
+ 218.715 l 286.809 218.715 l 286.809 218.719 l 286.824 218.719 l 286.828
+ 218.723 l 286.84 218.723 l 286.844 218.727 l 286.859 218.727 l 286.859 
+218.73 l 286.875 218.73 l 286.879 218.734 l 286.891 218.734 l 286.895 218.738
+ l 286.906 218.738 l 286.91 218.742 l 286.926 218.742 l 286.926 218.746 
+l 286.941 218.746 l 286.945 218.75 l 286.957 218.75 l 286.961 218.754 l 
+286.977 218.754 l 286.98 218.758 l 286.992 218.758 l 286.992 218.762 l 287.008
+ 218.762 l 287.012 218.766 l 287.023 218.766 l 287.027 218.77 l 287.043 
+218.77 l 287.043 218.773 l 287.059 218.773 l 287.062 218.777 l 287.074 218.777
+ l 287.078 218.781 l 287.09 218.781 l 287.094 218.785 l 287.109 218.785 
+l 287.109 218.789 l 287.125 218.789 l 287.129 218.793 l 287.145 218.793 
+l 287.145 218.797 l 287.16 218.797 l 287.164 218.801 l 287.176 218.801 l
+ 287.176 218.805 l 287.191 218.805 l 287.195 218.809 l 287.211 218.809 l
+ 287.211 218.812 l 287.227 218.812 l 287.23 218.816 l 287.242 218.816 l 
+287.246 218.82 l 287.262 218.82 l 287.262 218.824 l 287.277 218.824 l 287.281
+ 218.828 l 287.297 218.828 l 287.297 218.832 l 287.309 218.832 l 287.312
+ 218.836 l 287.328 218.836 l 287.328 218.84 l 287.344 218.84 l 287.348 218.844
+ l 287.363 218.844 l 287.363 218.848 l 287.379 218.848 l 287.383 218.852
+ l 287.395 218.852 l 287.398 218.855 l 287.414 218.855 l 287.414 218.859
+ l 287.43 218.859 l 287.434 218.863 l 287.445 218.863 l 287.445 218.867 
+l 287.461 218.867 l 287.465 218.871 l 287.48 218.871 l 287.48 218.875 l 
+287.496 218.875 l 287.5 218.879 l 287.512 218.879 l 287.516 218.883 l 287.531
+ 218.883 l 287.531 218.887 l 287.547 218.887 l 287.551 218.891 l 287.566
+ 218.891 l 287.566 218.895 l 287.582 218.895 l 287.586 218.898 l 287.598
+ 218.898 l 287.602 218.902 l 287.617 218.902 l 287.617 218.906 l 287.633
+ 218.906 l 287.637 218.91 l 287.652 218.91 l 287.652 218.914 l 287.664 218.914
+ l 287.668 218.918 l 287.684 218.918 l 287.684 218.922 l 287.699 218.922
+ l 287.703 218.926 l 287.719 218.926 l 287.719 218.93 l 287.734 218.93 l
+ 287.738 218.934 l 287.75 218.934 l 287.754 218.938 l 287.77 218.938 l 287.77
+ 218.941 l 287.785 218.941 l 287.789 218.945 l 287.805 218.945 l 287.805
+ 218.949 l 287.82 218.949 l 287.824 218.953 l 287.836 218.953 l 287.84 218.957
+ l 287.855 218.957 l 287.855 218.961 l 287.871 218.961 l 287.875 218.965
+ l 287.891 218.965 l 287.891 218.969 l 287.906 218.969 l 287.91 218.973 
+l 287.922 218.973 l 287.926 218.977 l 287.941 218.977 l 287.941 218.98 l
+ 287.957 218.98 l 287.961 218.984 l 287.977 218.984 l 287.977 218.988 l 
+287.992 218.988 l 287.996 218.992 l 288.008 218.992 l 288.012 218.996 l 
+288.027 218.996 l 288.027 219 l 288.043 219 l 288.047 219.004 l 288.062 
+219.004 l 288.062 219.008 l 288.078 219.008 l 288.082 219.012 l 288.094 
+219.012 l 288.098 219.016 l 288.113 219.016 l 288.113 219.02 l 288.129 219.02
+ l 288.133 219.023 l 288.148 219.023 l 288.148 219.027 l 288.164 219.027
+ l 288.168 219.031 l 288.18 219.031 l 288.184 219.035 l 288.199 219.035 
+l 288.199 219.039 l 288.215 219.039 l 288.219 219.043 l 288.234 219.043 
+l 288.234 219.047 l 288.25 219.047 l 288.254 219.051 l 288.266 219.051 l
+ 288.27 219.055 l 288.285 219.055 l 288.285 219.059 l 288.301 219.059 l 
+288.305 219.062 l 288.316 219.062 l 288.32 219.066 l 288.336 219.066 l 288.34
+ 219.07 l 288.352 219.07 l 288.355 219.074 l 288.371 219.074 l 288.371 219.078
+ l 288.391 219.078 l 288.391 219.082 l 288.406 219.082 l 288.41 219.086 
+l 288.426 219.086 l 288.426 219.09 l 288.438 219.09 l S
+288.438 219.09 m 288.441 219.09 l 288.445 219.094 l 288.457 219.094 l 288.461
+ 219.098 l 288.477 219.098 l 288.477 219.102 l 288.492 219.102 l 288.496
+ 219.105 l 288.508 219.105 l 288.512 219.109 l 288.527 219.109 l 288.531
+ 219.113 l 288.543 219.113 l 288.547 219.117 l 288.562 219.117 l 288.562
+ 219.121 l 288.578 219.121 l 288.582 219.125 l 288.598 219.125 l 288.602
+ 219.129 l 288.617 219.129 l 288.617 219.133 l 288.633 219.133 l 288.637
+ 219.137 l 288.648 219.137 l 288.652 219.141 l 288.668 219.141 l 288.668
+ 219.145 l 288.684 219.145 l 288.688 219.148 l 288.699 219.148 l 288.703
+ 219.152 l 288.719 219.152 l 288.723 219.156 l 288.738 219.156 l 288.742
+ 219.16 l 288.754 219.16 l 288.758 219.164 l 288.773 219.164 l 288.773 219.168
+ l 288.789 219.168 l 288.793 219.172 l 288.809 219.172 l 288.809 219.176
+ l 288.824 219.176 l 288.828 219.18 l 288.84 219.18 l 288.844 219.184 l 
+288.859 219.184 l 288.863 219.188 l 288.879 219.188 l 288.879 219.191 l 
+288.895 219.191 l 288.898 219.195 l 288.914 219.195 l 288.914 219.199 l 
+288.93 219.199 l 288.934 219.203 l 288.945 219.203 l 288.949 219.207 l 288.965
+ 219.207 l 288.969 219.211 l 288.984 219.211 l 288.984 219.215 l 289 219.215
+ l 289.004 219.219 l 289.02 219.219 l 289.02 219.223 l 289.035 219.223 l
+ 289.039 219.227 l 289.051 219.227 l 289.055 219.23 l 289.07 219.23 l 289.074
+ 219.234 l 289.09 219.234 l 289.09 219.238 l 289.105 219.238 l 289.109 219.242
+ l 289.125 219.242 l 289.125 219.246 l 289.141 219.246 l 289.145 219.25 
+l 289.16 219.25 l 289.164 219.254 l 289.176 219.254 l 289.18 219.258 l 289.195
+ 219.258 l 289.195 219.262 l 289.211 219.262 l 289.215 219.266 l 289.23 
+219.266 l 289.234 219.27 l 289.25 219.27 l 289.25 219.273 l 289.266 219.273
+ l 289.27 219.277 l 289.281 219.277 l 289.285 219.281 l 289.301 219.281 
+l 289.301 219.285 l 289.32 219.285 l 289.32 219.289 l 289.336 219.289 l 
+289.34 219.293 l 289.355 219.293 l 289.355 219.297 l 289.371 219.297 l 289.375
+ 219.301 l 289.391 219.301 l 289.395 219.305 l 289.406 219.305 l 289.41 
+219.309 l 289.426 219.309 l 289.426 219.312 l 289.441 219.312 l 289.445 
+219.316 l 289.461 219.316 l 289.465 219.32 l 289.48 219.32 l 289.48 219.324
+ l 289.496 219.324 l 289.5 219.328 l 289.516 219.328 l 289.52 219.332 l 
+289.531 219.332 l 289.535 219.336 l 289.551 219.336 l 289.551 219.34 l 289.566
+ 219.34 l 289.57 219.344 l 289.586 219.344 l 289.59 219.348 l 289.605 219.348
+ l 289.605 219.352 l 289.621 219.352 l 289.625 219.355 l 289.641 219.355
+ l 289.645 219.359 l 289.656 219.359 l 289.66 219.363 l 289.676 219.363 
+l 289.68 219.367 l 289.695 219.367 l 289.699 219.371 l 289.711 219.371 l
+ 289.715 219.375 l 289.73 219.375 l 289.73 219.379 l 289.746 219.379 l 289.75
+ 219.383 l 289.766 219.383 l 289.77 219.387 l 289.785 219.387 l 289.785 
+219.391 l 289.801 219.391 l 289.805 219.395 l 289.82 219.395 l 289.824 219.398
+ l 289.836 219.398 l 289.84 219.402 l 289.855 219.402 l 289.855 219.406 
+l 289.875 219.406 l 289.875 219.41 l 289.891 219.41 l 289.895 219.414 l 
+289.91 219.414 l 289.914 219.418 l 289.93 219.418 l 289.93 219.422 l 289.945
+ 219.422 l 289.949 219.426 l 289.965 219.426 l 289.969 219.43 l 289.98 219.43
+ l 289.984 219.434 l 290 219.434 l 290 219.438 l 290.02 219.438 l 290.02
+ 219.441 l 290.035 219.441 l 290.039 219.445 l 290.055 219.445 l 290.055
+ 219.449 l 290.074 219.449 l 290.074 219.453 l 290.09 219.453 l 290.094 
+219.457 l 290.109 219.457 l 290.113 219.461 l 290.125 219.461 l 290.129 
+219.465 l 290.145 219.465 l 290.145 219.469 l 290.164 219.469 l 290.168 
+219.473 l 290.18 219.473 l 290.184 219.477 l 290.199 219.477 l 290.203 219.48
+ l 290.219 219.48 l 290.219 219.484 l 290.234 219.484 l 290.238 219.488 
+l 290.254 219.488 l 290.258 219.492 l 290.273 219.492 l 290.273 219.496 
+l 290.293 219.496 l 290.293 219.5 l 290.309 219.5 l 290.312 219.504 l 290.328
+ 219.504 l 290.332 219.508 l 290.344 219.508 l 290.348 219.512 l 290.363
+ 219.512 l 290.363 219.516 l 290.383 219.516 l 290.383 219.52 l 290.398 
+219.52 l 290.402 219.523 l 290.418 219.523 l 290.422 219.527 l 290.438 219.527
+ l 290.438 219.531 l 290.457 219.531 l 290.457 219.535 l 290.473 219.535
+ l 290.477 219.539 l 290.492 219.539 l 290.496 219.543 l 290.508 219.543
+ l 290.512 219.547 l 290.527 219.547 l 290.531 219.551 l 290.547 219.551
+ l 290.551 219.555 l 290.566 219.555 l 290.57 219.559 l 290.582 219.559 
+l 290.586 219.562 l 290.602 219.562 l 290.605 219.566 l 290.621 219.566 
+l 290.621 219.57 l 290.641 219.57 l 290.641 219.574 l 290.656 219.574 l 
+290.66 219.578 l 290.676 219.578 l 290.68 219.582 l 290.695 219.582 l 290.695
+ 219.586 l 290.715 219.586 l 290.715 219.59 l 290.73 219.59 l 290.734 219.594
+ l 290.75 219.594 l 290.754 219.598 l 290.766 219.598 l 290.77 219.602 l
+ 290.785 219.602 l 290.789 219.605 l 290.805 219.605 l 290.805 219.609 l
+ 290.824 219.609 l 290.828 219.613 l 290.84 219.613 l 290.844 219.617 l 
+290.859 219.617 l 290.863 219.621 l 290.879 219.621 l 290.879 219.625 l 
+290.898 219.625 l 290.898 219.629 l 290.914 219.629 l 290.918 219.633 l 
+290.934 219.633 l 290.938 219.637 l 290.953 219.637 l 290.957 219.641 l 
+290.973 219.641 l 290.973 219.645 l 290.992 219.645 l 290.992 219.648 l 
+291.008 219.648 l 291.012 219.652 l 291.027 219.652 l 291.031 219.656 l 
+291.043 219.656 l 291.047 219.66 l 291.062 219.66 l 291.066 219.664 l 291.082
+ 219.664 l 291.086 219.668 l 291.102 219.668 l 291.102 219.672 l 291.121
+ 219.672 l 291.125 219.676 l 291.137 219.676 l 291.141 219.68 l 291.156 
+219.68 l 291.16 219.684 l 291.176 219.684 l 291.176 219.688 l 291.195 219.688
+ l 291.195 219.691 l 291.215 219.691 l 291.215 219.695 l 291.23 219.695 
+l 291.234 219.699 l 291.25 219.699 l 291.254 219.703 l 291.27 219.703 l 
+291.273 219.707 l 291.289 219.707 l 291.289 219.711 l 291.309 219.711 l 
+291.309 219.715 l 291.324 219.715 l 291.328 219.719 l 291.344 219.719 l 
+291.348 219.723 l 291.363 219.723 l 291.367 219.727 l 291.379 219.727 l 
+291.383 219.73 l 291.402 219.73 l 291.402 219.734 l 291.422 219.734 l 291.422
+ 219.738 l 291.438 219.738 l 291.441 219.742 l 291.457 219.742 l 291.461
+ 219.746 l 291.477 219.746 l 291.48 219.75 l 291.492 219.75 l 291.496 219.754
+ l 291.512 219.754 l 291.516 219.758 l 291.531 219.758 l 291.535 219.762
+ l 291.551 219.762 l 291.551 219.766 l 291.57 219.766 l 291.57 219.77 l 
+291.59 219.77 l 291.594 219.773 l 291.605 219.773 l 291.609 219.777 l 291.625
+ 219.777 l 291.629 219.781 l 291.645 219.781 l 291.648 219.785 l 291.664
+ 219.785 l 291.664 219.789 l 291.684 219.789 l 291.684 219.793 l 291.703
+ 219.793 l 291.703 219.797 l 291.723 219.797 l 291.723 219.801 l 291.738
+ 219.801 l 291.742 219.805 l 291.758 219.805 l 291.762 219.809 l 291.777
+ 219.809 l 291.781 219.812 l 291.797 219.812 l 291.801 219.816 l 291.816
+ 219.816 l 291.816 219.82 l 291.836 219.82 l 291.836 219.824 l 291.855 219.824
+ l 291.855 219.828 l 291.871 219.828 l 291.875 219.832 l 291.891 219.832
+ l 291.895 219.836 l 291.91 219.836 l 291.914 219.84 l 291.93 219.84 l 291.934
+ 219.844 l 291.949 219.844 l 291.953 219.848 l 291.969 219.848 l 291.969
+ 219.852 l 291.988 219.852 l 291.988 219.855 l 292.008 219.855 l 292.008
+ 219.859 l 292.027 219.859 l 292.027 219.863 l 292.043 219.863 l 292.047
+ 219.867 l 292.062 219.867 l 292.066 219.871 l 292.082 219.871 l 292.086
+ 219.875 l 292.102 219.875 l 292.105 219.879 l 292.121 219.879 l 292.125
+ 219.883 l 292.141 219.883 l 292.141 219.887 l 292.16 219.887 l 292.16 219.891
+ l 292.18 219.891 l 292.18 219.895 l 292.199 219.895 l 292.199 219.898 l
+ 292.219 219.898 l 292.219 219.902 l 292.234 219.902 l 292.238 219.906 l
+ 292.254 219.906 l 292.258 219.91 l 292.273 219.91 l 292.277 219.914 l 292.293
+ 219.914 l 292.297 219.918 l 292.312 219.918 l 292.316 219.922 l 292.332
+ 219.922 l 292.336 219.926 l 292.352 219.926 l 292.352 219.93 l 292.371 
+219.93 l 292.371 219.934 l 292.391 219.934 l 292.391 219.938 l 292.41 219.938
+ l 292.41 219.941 l 292.43 219.941 l 292.43 219.945 l 292.449 219.945 l 
+292.449 219.949 l 292.469 219.949 l 292.469 219.953 l 292.484 219.953 l 
+292.488 219.957 l 292.504 219.957 l 292.508 219.961 l 292.523 219.961 l 
+292.527 219.965 l 292.543 219.965 l 292.547 219.969 l 292.562 219.969 l 
+292.566 219.973 l 292.582 219.973 l 292.586 219.977 l 292.602 219.977 l 
+292.605 219.98 l 292.621 219.98 l 292.625 219.984 l 292.641 219.984 l 292.645
+ 219.988 l 292.66 219.988 l 292.66 219.992 l 292.68 219.992 l 292.68 219.996
+ l 292.699 219.996 l 292.699 220 l 292.719 220 l 292.719 220.004 l 292.738
+ 220.004 l 292.742 220.008 l 292.758 220.008 l 292.762 220.012 l 292.777
+ 220.012 l 292.781 220.016 l 292.797 220.016 l 292.801 220.02 l 292.816 
+220.02 l 292.82 220.023 l 292.836 220.023 l 292.84 220.027 l 292.855 220.027
+ l 292.859 220.031 l 292.875 220.031 l 292.879 220.035 l 292.895 220.035
+ l 292.898 220.039 l 292.914 220.039 l 292.918 220.043 l 292.934 220.043
+ l 292.938 220.047 l 292.953 220.047 l 292.957 220.051 l 292.973 220.051
+ l 292.977 220.055 l 292.992 220.055 l 292.996 220.059 l 293.012 220.059
+ l 293.016 220.062 l 293.031 220.062 l 293.035 220.066 l 293.051 220.066
+ l 293.055 220.07 l 293.07 220.07 l 293.074 220.074 l 293.09 220.074 l 293.094
+ 220.078 l 293.109 220.078 l 293.113 220.082 l 293.129 220.082 l 293.133
+ 220.086 l 293.148 220.086 l 293.152 220.09 l 293.168 220.09 l 293.172 220.094
+ l 293.188 220.094 l 293.191 220.098 l 293.207 220.098 l 293.211 220.102
+ l 293.23 220.102 l 293.23 220.105 l 293.25 220.105 l 293.25 220.109 l 293.27
+ 220.109 l 293.27 220.113 l 293.289 220.113 l 293.289 220.117 l 293.309 
+220.117 l 293.309 220.121 l 293.328 220.121 l 293.328 220.125 l 293.348 
+220.125 l 293.348 220.129 l 293.367 220.129 l 293.367 220.133 l 293.387 
+220.133 l 293.387 220.137 l 293.406 220.137 l 293.406 220.141 l 293.426 
+220.141 l 293.426 220.145 l 293.445 220.145 l 293.445 220.148 l 293.465 
+220.148 l 293.465 220.152 l 293.484 220.152 l 293.484 220.156 l 293.504 
+220.156 l 293.508 220.16 l 293.527 220.16 l 293.527 220.164 l 293.547 220.164
+ l 293.547 220.168 l 293.566 220.168 l 293.566 220.172 l 293.586 220.172
+ l 293.586 220.176 l 293.605 220.176 l 293.605 220.18 l 293.625 220.18 l
+ 293.625 220.184 l 293.645 220.184 l 293.645 220.188 l 293.664 220.188 l
+ 293.664 220.191 l 293.684 220.191 l 293.688 220.195 l 293.703 220.195 l
+ 293.707 220.199 l 293.723 220.199 l 293.727 220.203 l 293.742 220.203 l
+ 293.746 220.207 l 293.762 220.207 l 293.766 220.211 l 293.781 220.211 l
+ 293.785 220.215 l 293.805 220.215 l 293.805 220.219 l 293.824 220.219 l
+ 293.828 220.223 l 293.844 220.223 l 293.848 220.227 l 293.863 220.227 l
+ 293.867 220.23 l 293.883 220.23 l 293.887 220.234 l 293.902 220.234 l 293.906
+ 220.238 l 293.926 220.238 l 293.93 220.242 l 293.945 220.242 l 293.949 
+220.246 l 293.965 220.246 l 293.969 220.25 l 293.984 220.25 l 293.988 220.254
+ l 294.004 220.254 l 294.008 220.258 l 294.023 220.258 l 294.027 220.262
+ l 294.047 220.262 l 294.047 220.266 l 294.066 220.266 l 294.066 220.27 
+l 294.086 220.27 l 294.086 220.273 l 294.105 220.273 l 294.105 220.277 l
+ 294.125 220.277 l 294.129 220.281 l 294.145 220.281 l 294.148 220.285 l
+ 294.164 220.285 l 294.168 220.289 l 294.188 220.289 l 294.188 220.293 l
+ 294.207 220.293 l 294.211 220.297 l 294.227 220.297 l 294.23 220.301 l 
+294.246 220.301 l 294.25 220.305 l 294.266 220.305 l 294.27 220.309 l 294.289
+ 220.309 l 294.293 220.312 l 294.309 220.312 l 294.312 220.316 l 294.328
+ 220.316 l 294.332 220.32 l 294.348 220.32 l 294.352 220.324 l 294.371 220.324
+ l 294.371 220.328 l 294.391 220.328 l 294.391 220.332 l 294.41 220.332 
+l 294.41 220.336 l 294.43 220.336 l 294.434 220.34 l 294.449 220.34 l 294.453
+ 220.344 l 294.469 220.344 l 294.473 220.348 l 294.492 220.348 l 294.496
+ 220.352 l 294.512 220.352 l 294.516 220.355 l 294.531 220.355 l 294.535
+ 220.359 l 294.555 220.359 l 294.555 220.363 l 294.574 220.363 l 294.574
+ 220.367 l 294.594 220.367 l 294.594 220.371 l 294.613 220.371 l 294.617
+ 220.375 l 294.633 220.375 l 294.637 220.379 l 294.652 220.379 l 294.656
+ 220.383 l 294.676 220.383 l 294.68 220.387 l 294.695 220.387 l 294.699 
+220.391 l 294.715 220.391 l 294.719 220.395 l 294.738 220.395 l 294.738 
+220.398 l 294.758 220.398 l 294.762 220.402 l 294.777 220.402 l 294.781 
+220.406 l 294.801 220.406 l 294.801 220.41 l 294.82 220.41 l 294.82 220.414
+ l 294.84 220.414 l 294.844 220.418 l 294.859 220.418 l 294.863 220.422 
+l 294.879 220.422 l 294.883 220.426 l 294.902 220.426 l 294.906 220.43 l
+ 294.922 220.43 l 294.926 220.434 l 294.945 220.434 l 294.945 220.438 l 
+294.965 220.438 l 294.965 220.441 l 294.984 220.441 l 294.984 220.445 l 
+295.004 220.445 l 295.008 220.449 l 295.023 220.449 l 295.027 220.453 l 
+295.047 220.453 l 295.051 220.457 l 295.066 220.457 l 295.07 220.461 l 295.09
+ 220.461 l 295.09 220.465 l 295.109 220.465 l 295.109 220.469 l 295.129 
+220.469 l 295.133 220.473 l 295.148 220.473 l 295.152 220.477 l 295.168 
+220.477 l 295.172 220.48 l 295.191 220.48 l 295.195 220.484 l 295.211 220.484
+ l 295.215 220.488 l 295.234 220.488 l 295.234 220.492 l 295.254 220.492
+ l 295.254 220.496 l 295.273 220.496 l 295.277 220.5 l 295.293 220.5 l 295.297
+ 220.504 l 295.316 220.504 l 295.32 220.508 l 295.336 220.508 l 295.34 220.512
+ l 295.359 220.512 l 295.359 220.516 l 295.379 220.516 l 295.379 220.52 
+l 295.398 220.52 l 295.402 220.523 l 295.418 220.523 l 295.422 220.527 l
+ 295.441 220.527 l 295.445 220.531 l 295.465 220.531 l 295.465 220.535 l
+ 295.484 220.535 l 295.484 220.539 l 295.504 220.539 l 295.508 220.543 l
+ 295.527 220.543 l 295.527 220.547 l 295.547 220.547 l 295.551 220.551 l
+ 295.566 220.551 l 295.57 220.555 l 295.59 220.555 l 295.59 220.559 l 295.609
+ 220.559 l 295.609 220.562 l 295.633 220.562 l 295.633 220.566 l 295.652
+ 220.566 l 295.656 220.57 l 295.672 220.57 l 295.676 220.574 l 295.695 220.574
+ l 295.695 220.578 l 295.715 220.578 l 295.715 220.582 l 295.738 220.582
+ l 295.738 220.586 l 295.758 220.586 l 295.762 220.59 l 295.777 220.59 l
+ 295.781 220.594 l 295.801 220.594 l 295.801 220.598 l 295.82 220.598 l 
+295.824 220.602 l 295.844 220.602 l 295.844 220.605 l 295.863 220.605 l 
+295.867 220.609 l 295.883 220.609 l 295.887 220.613 l 295.906 220.613 l 
+295.906 220.617 l 295.93 220.617 l 295.93 220.621 l 295.949 220.621 l 295.949
+ 220.625 l 295.969 220.625 l 295.973 220.629 l 295.992 220.629 l 295.992
+ 220.633 l 296.012 220.633 l 296.016 220.637 l 296.035 220.637 l 296.035
+ 220.641 l 296.055 220.641 l 296.059 220.645 l 296.074 220.645 l 296.078
+ 220.648 l 296.098 220.648 l 296.098 220.652 l 296.121 220.652 l 296.121
+ 220.656 l 296.141 220.656 l 296.141 220.66 l 296.16 220.66 l 296.164 220.664
+ l 296.184 220.664 l 296.184 220.668 l 296.207 220.668 l 296.207 220.672
+ l 296.227 220.672 l 296.227 220.676 l 296.246 220.676 l 296.25 220.68 l
+ 296.27 220.68 l 296.27 220.684 l 296.289 220.684 l 296.289 220.688 l 296.312
+ 220.688 l 296.312 220.691 l 296.332 220.691 l 296.336 220.695 l 296.355
+ 220.695 l 296.355 220.699 l 296.375 220.699 l 296.375 220.703 l 296.398
+ 220.703 l 296.398 220.707 l 296.418 220.707 l 296.422 220.711 l 296.441
+ 220.711 l 296.441 220.715 l 296.461 220.715 l 296.465 220.719 l 296.48 
+220.719 l 296.484 220.723 l 296.504 220.723 l 296.508 220.727 l 296.527 
+220.727 l 296.527 220.73 l 296.547 220.73 l 296.551 220.734 l 296.566 220.734
+ l 296.57 220.738 l 296.59 220.738 l 296.594 220.742 l 296.613 220.742 l
+ 296.613 220.746 l 296.633 220.746 l 296.637 220.75 l 296.656 220.75 l 296.66
+ 220.754 l 296.68 220.754 l 296.68 220.758 l 296.699 220.758 l 296.699 220.762
+ l 296.719 220.762 l 296.723 220.766 l 296.742 220.766 l 296.746 220.77 
+l 296.766 220.77 l 296.766 220.773 l 296.785 220.773 l 296.789 220.777 l
+ 296.809 220.777 l 296.812 220.781 l 296.832 220.781 l 296.832 220.785 l
+ 296.852 220.785 l 296.852 220.789 l 296.871 220.789 l 296.875 220.793 l
+ 296.895 220.793 l 296.898 220.797 l 296.918 220.797 l 296.918 220.801 l
+ 296.938 220.801 l 296.941 220.805 l 296.961 220.805 l 296.965 220.809 l
+ 296.984 220.809 l 296.984 220.812 l 297.004 220.812 l 297.008 220.816 l
+ 297.027 220.816 l 297.031 220.82 l 297.047 220.82 l 297.051 220.824 l 297.07
+ 220.824 l 297.07 220.828 l 297.09 220.828 l 297.094 220.832 l 297.113 220.832
+ l 297.117 220.836 l 297.137 220.836 l 297.137 220.84 l 297.156 220.84 l
+ 297.16 220.844 l 297.18 220.844 l 297.184 220.848 l 297.203 220.848 l 297.203
+ 220.852 l 297.223 220.852 l 297.227 220.855 l 297.246 220.855 l 297.246
+ 220.859 l 297.27 220.859 l 297.27 220.863 l 297.289 220.863 l 297.293 220.867
+ l 297.312 220.867 l 297.312 220.871 l 297.332 220.871 l 297.336 220.875
+ l 297.355 220.875 l 297.359 220.879 l 297.379 220.879 l 297.379 220.883
+ l 297.398 220.883 l 297.402 220.887 l 297.422 220.887 l 297.426 220.891
+ l 297.445 220.891 l 297.445 220.895 l 297.465 220.895 l 297.469 220.898
+ l 297.488 220.898 l 297.492 220.902 l 297.512 220.902 l 297.512 220.906
+ l 297.531 220.906 l 297.535 220.91 l 297.555 220.91 l 297.559 220.914 l
+ 297.578 220.914 l 297.578 220.918 l 297.598 220.918 l 297.602 220.922 l
+ 297.621 220.922 l 297.625 220.926 l 297.645 220.926 l 297.645 220.93 l 
+297.664 220.93 l 297.668 220.934 l 297.691 220.934 l 297.691 220.938 l 297.711
+ 220.938 l 297.715 220.941 l 297.734 220.941 l 297.738 220.945 l 297.758
+ 220.945 l 297.758 220.949 l 297.777 220.949 l 297.781 220.953 l 297.801
+ 220.953 l 297.801 220.957 l 297.82 220.957 l 297.824 220.961 l 297.844 
+220.961 l 297.848 220.965 l 297.867 220.965 l 297.867 220.969 l 297.891 
+220.969 l 297.895 220.973 l 297.914 220.973 l 297.914 220.977 l 297.934 
+220.977 l 297.938 220.98 l 297.957 220.98 l 297.961 220.984 l 297.98 220.984
+ l 297.98 220.988 l 298 220.988 l 298.004 220.992 l 298.027 220.992 l 298.027
+ 220.996 l 298.047 220.996 l 298.051 221 l 298.07 221 l 298.074 221.004 
+l 298.094 221.004 l 298.094 221.008 l 298.113 221.008 l 298.117 221.012 
+l 298.137 221.012 l 298.141 221.016 l 298.16 221.016 l 298.164 221.02 l 
+298.184 221.02 l 298.184 221.023 l 298.203 221.023 l 298.207 221.027 l 298.227
+ 221.027 l 298.23 221.031 l 298.25 221.031 l 298.254 221.035 l 298.273 221.035
+ l 298.277 221.039 l 298.297 221.039 l 298.297 221.043 l 298.316 221.043
+ l 298.32 221.047 l 298.344 221.047 l 298.344 221.051 l 298.363 221.051 
+l 298.367 221.055 l 298.387 221.055 l 298.391 221.059 l 298.41 221.059 l
+ 298.41 221.062 l 298.434 221.062 l 298.438 221.066 l 298.457 221.066 l 
+298.457 221.07 l 298.477 221.07 l 298.48 221.074 l 298.5 221.074 l 298.504
+ 221.078 l 298.523 221.078 l 298.527 221.082 l 298.547 221.082 l 298.547
+ 221.086 l 298.566 221.086 l 298.57 221.09 l 298.594 221.09 l 298.594 221.094
+ l 298.613 221.094 l 298.617 221.098 l 298.637 221.098 l 298.641 221.102
+ l 298.66 221.102 l 298.664 221.105 l 298.684 221.105 l 298.688 221.109 
+l 298.707 221.109 l 298.707 221.113 l 298.73 221.113 l 298.734 221.117 l
+ 298.754 221.117 l 298.754 221.121 l 298.773 221.121 l 298.777 221.125 l
+ 298.801 221.125 l 298.801 221.129 l 298.82 221.129 l 298.824 221.133 l 
+298.844 221.133 l 298.848 221.137 l 298.867 221.137 l 298.871 221.141 l 
+298.891 221.141 l 298.891 221.145 l 298.914 221.145 l 298.918 221.148 l 
+298.938 221.148 l 298.938 221.152 l 298.961 221.152 l 298.965 221.156 l 
+298.984 221.156 l 298.984 221.16 l 299.004 221.16 l 299.008 221.164 l 299.031
+ 221.164 l 299.031 221.168 l 299.051 221.168 l 299.055 221.172 l 299.078
+ 221.172 l 299.078 221.176 l 299.098 221.176 l 299.102 221.18 l 299.121 
+221.18 l 299.125 221.184 l 299.145 221.184 l 299.148 221.188 l 299.168 221.188
+ l 299.172 221.191 l 299.191 221.191 l 299.195 221.195 l 299.215 221.195
+ l 299.219 221.199 l 299.238 221.199 l 299.242 221.203 l 299.262 221.203
+ l 299.266 221.207 l 299.285 221.207 l 299.289 221.211 l 299.309 221.211
+ l 299.312 221.215 l 299.332 221.215 l 299.332 221.219 l 299.355 221.219
+ l 299.359 221.223 l 299.379 221.223 l 299.379 221.227 l 299.402 221.227
+ l 299.406 221.23 l 299.426 221.23 l 299.426 221.234 l 299.449 221.234 l
+ 299.453 221.238 l 299.473 221.238 l 299.473 221.242 l 299.496 221.242 l
+ 299.5 221.246 l 299.52 221.246 l 299.52 221.25 l 299.543 221.25 l 299.543
+ 221.254 l 299.566 221.254 l 299.57 221.258 l 299.59 221.258 l 299.59 221.262
+ l 299.613 221.262 l 299.617 221.266 l 299.637 221.266 l 299.637 221.27 
+l 299.66 221.27 l 299.664 221.273 l 299.684 221.273 l 299.688 221.277 l 
+299.707 221.277 l 299.711 221.281 l 299.73 221.281 l 299.734 221.285 l 299.758
+ 221.285 l 299.758 221.289 l 299.777 221.289 l 299.781 221.293 l 299.801
+ 221.293 l 299.805 221.297 l 299.824 221.297 l 299.828 221.301 l 299.848
+ 221.301 l 299.852 221.305 l 299.875 221.305 l 299.875 221.309 l 299.895
+ 221.309 l 299.898 221.312 l 299.922 221.312 l 299.922 221.316 l 299.945
+ 221.316 l 299.949 221.32 l 299.969 221.32 l 299.973 221.324 l 299.992 221.324
+ l 299.992 221.328 l 300.016 221.328 l 300.02 221.332 l 300.039 221.332 
+l 300.043 221.336 l 300.062 221.336 l 300.066 221.34 l 300.086 221.34 l 
+300.09 221.344 l 300.113 221.344 l 300.113 221.348 l 300.137 221.348 l 300.141
+ 221.352 l 300.16 221.352 l 300.16 221.355 l 300.184 221.355 l 300.184 221.359
+ l 300.207 221.359 l 300.211 221.363 l 300.23 221.363 l 300.234 221.367 
+l 300.254 221.367 l 300.258 221.371 l 300.277 221.371 l 300.281 221.375 
+l 300.305 221.375 l 300.305 221.379 l 300.328 221.379 l 300.332 221.383 
+l 300.352 221.383 l 300.355 221.387 l 300.375 221.387 l 300.375 221.391 
+l 300.398 221.391 l 300.402 221.395 l 300.422 221.395 l 300.426 221.398 
+l 300.449 221.398 l 300.449 221.402 l 300.473 221.402 l 300.477 221.406 
+l 300.496 221.406 l 300.496 221.41 l 300.52 221.41 l 300.523 221.414 l 300.543
+ 221.414 l 300.547 221.418 l 300.566 221.418 l 300.57 221.422 l 300.594 
+221.422 l 300.594 221.426 l 300.617 221.426 l 300.621 221.43 l 300.641 221.43
+ l 300.645 221.434 l 300.668 221.434 l 300.668 221.438 l 300.688 221.438
+ l 300.691 221.441 l 300.715 221.441 l 300.715 221.445 l 300.738 221.445
+ l 300.738 221.449 l 300.762 221.449 l 300.766 221.453 l 300.785 221.453
+ l 300.789 221.457 l 300.812 221.457 l 300.812 221.461 l 300.836 221.461
+ l 300.84 221.465 l 300.859 221.465 l 300.863 221.469 l 300.883 221.469 
+l 300.887 221.473 l 300.91 221.473 l 300.91 221.477 l 300.934 221.477 l 
+300.938 221.48 l 300.957 221.48 l 300.961 221.484 l 300.984 221.484 l 300.984
+ 221.488 l 301.008 221.488 l 301.012 221.492 l 301.031 221.492 l 301.035
+ 221.496 l 301.055 221.496 l 301.059 221.5 l 301.082 221.5 l 301.082 221.504
+ l 301.105 221.504 l 301.109 221.508 l 301.129 221.508 l 301.133 221.512
+ l 301.156 221.512 l 301.156 221.516 l 301.18 221.516 l 301.18 221.52 l 
+301.203 221.52 l 301.207 221.523 l 301.227 221.523 l 301.23 221.527 l 301.254
+ 221.527 l 301.254 221.531 l 301.277 221.531 l 301.281 221.535 l 301.301
+ 221.535 l 301.305 221.539 l 301.328 221.539 l 301.328 221.543 l 301.352
+ 221.543 l 301.352 221.547 l 301.375 221.547 l 301.379 221.551 l 301.402
+ 221.551 l 301.406 221.555 l 301.426 221.555 l 301.43 221.559 l 301.453 
+221.559 l 301.453 221.562 l 301.477 221.562 l 301.477 221.566 l 301.5 221.566
+ l 301.504 221.57 l 301.523 221.57 l 301.527 221.574 l 301.551 221.574 l
+ 301.551 221.578 l 301.574 221.578 l 301.578 221.582 l 301.602 221.582 l
+ 301.605 221.586 l 301.625 221.586 l 301.629 221.59 l 301.648 221.59 l 301.652
+ 221.594 l 301.676 221.594 l 301.676 221.598 l 301.699 221.598 l 301.703
+ 221.602 l 301.727 221.602 l 301.73 221.605 l 301.75 221.605 l 301.754 221.609
+ l 301.777 221.609 l 301.777 221.613 l 301.801 221.613 l 301.801 221.617
+ l 301.824 221.617 l 301.828 221.621 l 301.852 221.621 l 301.855 221.625
+ l 301.875 221.625 l 301.879 221.629 l 301.902 221.629 l 301.902 221.633
+ l 301.926 221.633 l 301.926 221.637 l 301.953 221.637 l 301.953 221.641
+ l 301.977 221.641 l 301.98 221.645 l 302 221.645 l 302.004 221.648 l 302.027
+ 221.648 l 302.031 221.652 l 302.051 221.652 l 302.055 221.656 l 302.078
+ 221.656 l 302.078 221.66 l 302.105 221.66 l 302.105 221.664 l 302.129 221.664
+ l 302.133 221.668 l 302.152 221.668 l 302.156 221.672 l 302.18 221.672 
+l 302.18 221.676 l 302.203 221.676 l 302.207 221.68 l 302.23 221.68 l 302.23
+ 221.684 l 302.258 221.684 l 302.258 221.688 l 302.281 221.688 l 302.285
+ 221.691 l 302.305 221.691 l 302.309 221.695 l 302.332 221.695 l 302.336
+ 221.699 l 302.355 221.699 l 302.359 221.703 l 302.383 221.703 l 302.383
+ 221.707 l 302.41 221.707 l 302.41 221.711 l 302.434 221.711 l 302.434 221.715
+ l 302.461 221.715 l 302.461 221.719 l 302.484 221.719 l 302.488 221.723
+ l 302.512 221.723 l 302.516 221.727 l 302.535 221.727 l 302.539 221.73 
+l 302.562 221.73 l 302.562 221.734 l 302.586 221.734 l 302.59 221.738 l 
+302.613 221.738 l 302.613 221.742 l 302.641 221.742 l 302.641 221.746 l 
+302.664 221.746 l 302.668 221.75 l 302.691 221.75 l 302.691 221.754 l 302.715
+ 221.754 l 302.719 221.758 l 302.742 221.758 l 302.746 221.762 l 302.766
+ 221.762 l 302.77 221.766 l 302.793 221.766 l 302.797 221.77 l 302.816 221.77
+ l 302.82 221.773 l 302.844 221.773 l 302.848 221.777 l 302.871 221.777 
+l 302.875 221.781 l 302.898 221.781 l 302.898 221.785 l 302.926 221.785 
+l 302.926 221.789 l 302.949 221.789 l 302.949 221.793 l 302.977 221.793 
+l 302.977 221.797 l 303 221.797 l 303.004 221.801 l 303.027 221.801 l 303.031
+ 221.805 l 303.055 221.805 l 303.055 221.809 l 303.078 221.809 l 303.082
+ 221.812 l 303.105 221.812 l 303.109 221.816 l 303.133 221.816 l 303.137
+ 221.82 l 303.156 221.82 l 303.16 221.824 l 303.184 221.824 l 303.188 221.828
+ l 303.211 221.828 l 303.215 221.832 l 303.234 221.832 l 303.238 221.836
+ l 303.262 221.836 l 303.266 221.84 l 303.289 221.84 l 303.293 221.844 l
+ 303.312 221.844 l 303.316 221.848 l 303.34 221.848 l 303.344 221.852 l 
+303.367 221.852 l 303.371 221.855 l 303.391 221.855 l 303.395 221.859 l 
+303.418 221.859 l 303.422 221.863 l 303.445 221.863 l 303.449 221.867 l 
+303.473 221.867 l 303.477 221.871 l 303.5 221.871 l 303.5 221.875 l 303.523
+ 221.875 l 303.527 221.879 l 303.551 221.879 l 303.555 221.883 l 303.578
+ 221.883 l 303.582 221.887 l 303.605 221.887 l 303.605 221.891 l 303.629
+ 221.891 l 303.633 221.895 l 303.656 221.895 l 303.66 221.898 l 303.684 
+221.898 l 303.688 221.902 l 303.711 221.902 l 303.715 221.906 l 303.734 
+221.906 l 303.738 221.91 l 303.762 221.91 l 303.766 221.914 l 303.789 221.914
+ l 303.793 221.918 l 303.816 221.918 l 303.82 221.922 l 303.844 221.922 
+l 303.848 221.926 l 303.871 221.926 l 303.875 221.93 l 303.898 221.93 l 
+303.902 221.934 l 303.922 221.934 l 303.926 221.938 l 303.949 221.938 l 
+303.953 221.941 l 303.977 221.941 l 303.98 221.945 l 304.004 221.945 l 304.008
+ 221.949 l 304.031 221.949 l 304.031 221.953 l 304.059 221.953 l 304.059
+ 221.957 l 304.086 221.957 l 304.086 221.961 l 304.113 221.961 l 304.113
+ 221.965 l 304.137 221.965 l 304.141 221.969 l 304.164 221.969 l 304.168
+ 221.973 l 304.191 221.973 l 304.195 221.977 l 304.219 221.977 l 304.223
+ 221.98 l 304.246 221.98 l 304.25 221.984 l 304.273 221.984 l 304.277 221.988
+ l 304.301 221.988 l 304.305 221.992 l 304.328 221.992 l 304.328 221.996
+ l 304.355 221.996 l 304.355 222 l 304.383 222 l 304.383 222.004 l 304.41
+ 222.004 l 304.41 222.008 l 304.434 222.008 l 304.438 222.012 l 304.461 
+222.012 l 304.465 222.016 l 304.488 222.016 l 304.492 222.02 l 304.516 222.02
+ l 304.52 222.023 l 304.543 222.023 l 304.547 222.027 l 304.574 222.027 
+l 304.574 222.031 l 304.602 222.031 l 304.602 222.035 l 304.625 222.035 
+l 304.629 222.039 l 304.652 222.039 l 304.656 222.043 l 304.68 222.043 l
+ 304.684 222.047 l 304.707 222.047 l 304.711 222.051 l 304.734 222.051 l
+ 304.738 222.055 l 304.766 222.055 l 304.766 222.059 l 304.793 222.059 l
+ 304.793 222.062 l 304.816 222.062 l 304.82 222.066 l 304.844 222.066 l 
+304.848 222.07 l 304.871 222.07 l 304.875 222.074 l 304.902 222.074 l 304.902
+ 222.078 l 304.93 222.078 l 304.93 222.082 l 304.957 222.082 l 304.957 222.086
+ l 304.984 222.086 l 304.984 222.09 l 305.012 222.09 l 305.016 222.094 l
+ 305.039 222.094 l 305.043 222.098 l 305.066 222.098 l 305.07 222.102 l 
+305.094 222.102 l 305.094 222.105 l 305.121 222.105 l 305.125 222.109 l 
+305.148 222.109 l 305.152 222.113 l 305.176 222.113 l 305.18 222.117 l 305.207
+ 222.117 l 305.207 222.121 l 305.234 222.121 l 305.234 222.125 l 305.262
+ 222.125 l 305.262 222.129 l 305.289 222.129 l 305.293 222.133 l 305.316
+ 222.133 l 305.32 222.137 l 305.344 222.137 l 305.348 222.141 l 305.371 
+222.141 l 305.375 222.145 l 305.398 222.145 l 305.402 222.148 l 305.426 
+222.148 l 305.43 222.152 l 305.457 222.152 l 305.457 222.156 l 305.484 222.156
+ l 305.484 222.16 l 305.512 222.16 l 305.516 222.164 l 305.539 222.164 l
+ 305.543 222.168 l 305.57 222.168 l 305.57 222.172 l 305.598 222.172 l 305.598
+ 222.176 l 305.625 222.176 l 305.629 222.18 l 305.652 222.18 l 305.656 222.184
+ l 305.684 222.184 l 305.684 222.188 l 305.711 222.188 l 305.711 222.191
+ l 305.738 222.191 l 305.742 222.195 l 305.766 222.195 l 305.77 222.199 
+l 305.793 222.199 l 305.797 222.203 l 305.82 222.203 l 305.824 222.207 l
+ 305.852 222.207 l 305.855 222.211 l 305.879 222.211 l 305.879 222.215 l
+ 305.906 222.215 l 305.91 222.219 l 305.934 222.219 l 305.938 222.223 l 
+305.965 222.223 l 305.965 222.227 l 305.992 222.227 l 305.996 222.23 l 306.02
+ 222.23 l 306.023 222.234 l 306.051 222.234 l 306.051 222.238 l 306.078 
+222.238 l 306.078 222.242 l 306.105 222.242 l 306.109 222.246 l 306.137 
+222.246 l 306.137 222.25 l 306.164 222.25 l 306.164 222.254 l 306.191 222.254
+ l 306.195 222.258 l 306.223 222.258 l 306.223 222.262 l 306.25 222.262 
+l 306.25 222.266 l 306.277 222.266 l 306.281 222.27 l 306.309 222.27 l 306.309
+ 222.273 l 306.336 222.273 l 306.34 222.277 l 306.363 222.277 l 306.367 
+222.281 l 306.395 222.281 l 306.395 222.285 l 306.422 222.285 l 306.426 
+222.289 l 306.453 222.289 l 306.453 222.293 l 306.48 222.293 l 306.48 222.297
+ l 306.508 222.297 l 306.512 222.301 l 306.539 222.301 l 306.539 222.305
+ l 306.566 222.305 l 306.57 222.309 l 306.598 222.309 l 306.602 222.312 
+l 306.625 222.312 l 306.625 222.316 l 306.652 222.316 l 306.656 222.32 l
+ 306.684 222.32 l 306.688 222.324 l 306.711 222.324 l 306.715 222.328 l 
+306.742 222.328 l 306.746 222.332 l 306.773 222.332 l 306.773 222.336 l 
+306.801 222.336 l 306.805 222.34 l 306.828 222.34 l 306.832 222.344 l 306.859
+ 222.344 l 306.859 222.348 l 306.887 222.348 l 306.891 222.352 l 306.918
+ 222.352 l 306.918 222.355 l 306.945 222.355 l 306.949 222.359 l 306.977
+ 222.359 l 306.977 222.363 l 307.004 222.363 l 307.008 222.367 l 307.035
+ 222.367 l 307.035 222.371 l 307.062 222.371 l 307.066 222.375 l 307.094
+ 222.375 l 307.094 222.379 l 307.121 222.379 l 307.125 222.383 l 307.152
+ 222.383 l 307.156 222.387 l 307.18 222.387 l 307.184 222.391 l 307.211 
+222.391 l 307.215 222.395 l 307.238 222.395 l 307.242 222.398 l 307.27 222.398
+ l 307.273 222.402 l 307.301 222.402 l 307.301 222.406 l 307.328 222.406
+ l 307.332 222.41 l 307.359 222.41 l 307.363 222.414 l 307.391 222.414 l
+ 307.391 222.418 l 307.418 222.418 l 307.422 222.422 l 307.449 222.422 l
+ 307.453 222.426 l 307.477 222.426 l 307.48 222.43 l 307.508 222.43 l 307.512
+ 222.434 l 307.539 222.434 l 307.539 222.438 l 307.57 222.438 l 307.57 222.441
+ l 307.598 222.441 l 307.602 222.445 l 307.629 222.445 l 307.629 222.449
+ l 307.656 222.449 l 307.66 222.453 l 307.688 222.453 l 307.691 222.457 
+l 307.719 222.457 l 307.723 222.461 l 307.75 222.461 l 307.75 222.465 l 
+307.777 222.465 l 307.781 222.469 l 307.809 222.469 l 307.812 222.473 l 
+307.84 222.473 l 307.84 222.477 l 307.867 222.477 l 307.871 222.48 l 307.898
+ 222.48 l 307.898 222.484 l 307.93 222.484 l 307.934 222.488 l 307.961 222.488
+ l 307.961 222.492 l 307.988 222.492 l 307.992 222.496 l 308.02 222.496 
+l 308.023 222.5 l 308.051 222.5 l 308.051 222.504 l 308.082 222.504 l 308.086
+ 222.508 l 308.113 222.508 l 308.113 222.512 l 308.141 222.512 l 308.145
+ 222.516 l 308.172 222.516 l 308.176 222.52 l 308.203 222.52 l 308.203 222.523
+ l 308.234 222.523 l 308.238 222.527 l 308.262 222.527 l 308.266 222.531
+ l 308.297 222.531 l 308.297 222.535 l 308.324 222.535 l 308.328 222.539
+ l 308.355 222.539 l 308.359 222.543 l 308.387 222.543 l 308.387 222.547
+ l 308.418 222.547 l 308.422 222.551 l 308.449 222.551 l 308.449 222.555
+ l 308.48 222.555 l 308.48 222.559 l 308.508 222.559 l 308.512 222.562 l
+ 308.539 222.562 l 308.543 222.566 l 308.57 222.566 l 308.574 222.57 l 308.602
+ 222.57 l 308.605 222.574 l 308.633 222.574 l 308.637 222.578 l 308.664 
+222.578 l 308.664 222.582 l 308.695 222.582 l 308.699 222.586 l 308.727 
+222.586 l 308.727 222.59 l 308.758 222.59 l 308.758 222.594 l 308.789 222.594
+ l 308.793 222.598 l 308.816 222.598 l 308.82 222.602 l 308.852 222.602 
+l 308.852 222.605 l 308.883 222.605 l 308.883 222.609 l 308.91 222.609 l
+ 308.914 222.613 l 308.941 222.613 l 308.945 222.617 l 308.977 222.617 l
+ 308.977 222.621 l 309.008 222.621 l 309.008 222.625 l 309.039 222.625 l
+ 309.043 222.629 l 309.07 222.629 l 309.07 222.633 l 309.102 222.633 l 309.102
+ 222.637 l 309.133 222.637 l 309.133 222.641 l 309.164 222.641 l 309.168
+ 222.645 l 309.195 222.645 l 309.199 222.648 l 309.227 222.648 l 309.227
+ 222.652 l 309.258 222.652 l 309.262 222.656 l 309.289 222.656 l 309.293
+ 222.66 l 309.32 222.66 l 309.324 222.664 l 309.352 222.664 l 309.355 222.668
+ l 309.387 222.668 l 309.387 222.672 l 309.418 222.672 l 309.418 222.676
+ l 309.449 222.676 l 309.453 222.68 l 309.48 222.68 l 309.484 222.684 l 
+309.512 222.684 l 309.516 222.688 l 309.543 222.688 l 309.547 222.691 l 
+309.578 222.691 l 309.578 222.695 l 309.609 222.695 l 309.609 222.699 l 
+309.641 222.699 l 309.645 222.703 l 309.672 222.703 l 309.676 222.707 l 
+309.703 222.707 l 309.707 222.711 l 309.734 222.711 l 309.738 222.715 l 
+309.77 222.715 l 309.77 222.719 l 309.801 222.719 l 309.801 222.723 l 309.832
+ 222.723 l 309.836 222.727 l 309.863 222.727 l 309.867 222.73 l 309.895 
+222.73 l 309.898 222.734 l 309.926 222.734 l 309.93 222.738 l 309.961 222.738
+ l 309.961 222.742 l 309.992 222.742 l 309.996 222.746 l 310.027 222.746
+ l 310.027 222.75 l 310.059 222.75 l 310.059 222.754 l 310.09 222.754 l 
+310.09 222.758 l 310.121 222.758 l 310.125 222.762 l 310.156 222.762 l 310.156
+ 222.766 l 310.188 222.766 l 310.191 222.77 l 310.219 222.77 l 310.223 222.773
+ l 310.254 222.773 l 310.258 222.777 l 310.285 222.777 l 310.289 222.781
+ l 310.316 222.781 l 310.32 222.785 l 310.348 222.785 l 310.352 222.789 
+l 310.383 222.789 l 310.387 222.793 l 310.414 222.793 l 310.418 222.797 
+l 310.449 222.797 l 310.453 222.801 l 310.48 222.801 l 310.484 222.805 l
+ 310.516 222.805 l 310.516 222.809 l 310.539 222.809 l S
+67.609 79.277 m 60.566 79.277 l 67.609 79.277 l S
+67.609 92.535 m 60.566 92.535 l 67.609 92.535 l S
+67.609 105.793 m 60.566 105.793 l 67.609 105.793 l S
+67.609 119.051 m 60.566 119.051 l 67.609 119.051 l S
+67.609 132.305 m 60.566 132.305 l 67.609 132.305 l S
+67.609 145.562 m 60.566 145.562 l 67.609 145.562 l S
+67.609 158.82 m 60.566 158.82 l 67.609 158.82 l S
+67.609 172.078 m 60.566 172.078 l 67.609 172.078 l S
+67.609 185.336 m 60.566 185.336 l 67.609 185.336 l S
+67.609 198.594 m 60.566 198.594 l 67.609 198.594 l S
+67.609 211.852 m 60.566 211.852 l 67.609 211.852 l S
+67.609 225.105 m 60.566 225.105 l 67.609 225.105 l S
+67.609 238.363 m 60.566 238.363 l 67.609 238.363 l S
+67.609 79.277 m 67.609 238.363 l S
+31.66 78.875 m 36.488 78.875 l S
+39.172 81.02 m 39.707 81.289 l 40.512 82.094 l 40.512 76.461 l S
+44.27 76.996 m 44 76.727 l 44.27 76.461 l 44.539 76.727 l 44.27 76.996 
+l S
+46.684 80.754 m 46.684 81.02 l 46.953 81.559 l 47.219 81.824 l 47.758 82.094
+ l 48.828 82.094 l 49.367 81.824 l 49.633 81.559 l 49.902 81.02 l 49.902
+ 80.484 l 49.633 79.949 l 49.098 79.145 l 46.414 76.461 l 50.172 76.461 
+l S
+53.391 82.094 m 52.586 81.824 l 52.051 81.02 l 51.781 79.68 l 51.781 78.875
+ l 52.051 77.531 l 52.586 76.727 l 53.391 76.461 l 53.926 76.461 l 54.73
+ 76.727 l 55.27 77.531 l 55.535 78.875 l 55.535 79.68 l 55.27 81.02 l 54.73
+ 81.824 l 53.926 82.094 l 53.391 82.094 l S
+31.66 105.391 m 36.488 105.391 l S
+39.977 108.609 m 39.172 108.34 l 38.637 107.535 l 38.367 106.195 l 38.367
+ 105.391 l 38.637 104.047 l 39.172 103.242 l 39.977 102.973 l 40.512 102.973
+ l 41.316 103.242 l 41.855 104.047 l 42.121 105.391 l 42.121 106.195 l 41.855
+ 107.535 l 41.316 108.34 l 40.512 108.609 l 39.977 108.609 l S
+44.27 103.512 m 44 103.242 l 44.27 102.973 l 44.539 103.242 l 44.27 103.512
+ l S
+47.758 108.609 m 46.953 108.34 l 46.684 107.805 l 46.684 107.266 l 46.953
+ 106.73 l 47.488 106.461 l 48.562 106.195 l 49.367 105.926 l 49.902 105.391
+ l 50.172 104.852 l 50.172 104.047 l 49.902 103.512 l 49.633 103.242 l 48.828
+ 102.973 l 47.758 102.973 l 46.953 103.242 l 46.684 103.512 l 46.414 104.047
+ l 46.414 104.852 l 46.684 105.391 l 47.219 105.926 l 48.023 106.195 l 49.098
+ 106.461 l 49.633 106.73 l 49.902 107.266 l 49.902 107.805 l 49.633 108.34
+ l 48.828 108.609 l 47.758 108.609 l S
+53.391 108.609 m 52.586 108.34 l 52.051 107.535 l 51.781 106.195 l 51.781
+ 105.391 l 52.051 104.047 l 52.586 103.242 l 53.391 102.973 l 53.926 102.973
+ l 54.73 103.242 l 55.27 104.047 l 55.535 105.391 l 55.535 106.195 l 55.27
+ 107.535 l 54.73 108.34 l 53.926 108.609 l 53.391 108.609 l S
+31.66 131.902 m 36.488 131.902 l S
+39.977 135.125 m 39.172 134.855 l 38.637 134.051 l 38.367 132.707 l 38.367
+ 131.902 l 38.637 130.562 l 39.172 129.758 l 39.977 129.488 l 40.512 129.488
+ l 41.316 129.758 l 41.855 130.562 l 42.121 131.902 l 42.121 132.707 l 41.855
+ 134.051 l 41.316 134.855 l 40.512 135.125 l 39.977 135.125 l S
+44.27 130.027 m 44 129.758 l 44.27 129.488 l 44.539 129.758 l 44.27 130.027
+ l S
+49.098 135.125 m 46.414 131.367 l 50.441 131.367 l S
+49.098 135.125 m 49.098 129.488 l S
+53.391 135.125 m 52.586 134.855 l 52.051 134.051 l 51.781 132.707 l 51.781
+ 131.902 l 52.051 130.562 l 52.586 129.758 l 53.391 129.488 l 53.926 129.488
+ l 54.73 129.758 l 55.27 130.562 l 55.535 131.902 l 55.535 132.707 l 55.27
+ 134.051 l 54.73 134.855 l 53.926 135.125 l 53.391 135.125 l S
+39.977 161.637 m 39.172 161.371 l 38.637 160.566 l 38.367 159.223 l 38.367
+ 158.418 l 38.637 157.078 l 39.172 156.273 l 39.977 156.004 l 40.512 156.004
+ l 41.316 156.273 l 41.855 157.078 l 42.121 158.418 l 42.121 159.223 l 41.855
+ 160.566 l 41.316 161.371 l 40.512 161.637 l 39.977 161.637 l S
+44.27 156.539 m 44 156.273 l 44.27 156.004 l 44.539 156.273 l 44.27 156.539
+ l S
+48.023 161.637 m 47.219 161.371 l 46.684 160.566 l 46.414 159.223 l 46.414
+ 158.418 l 46.684 157.078 l 47.219 156.273 l 48.023 156.004 l 48.562 156.004
+ l 49.367 156.273 l 49.902 157.078 l 50.172 158.418 l 50.172 159.223 l 49.902
+ 160.566 l 49.367 161.371 l 48.562 161.637 l 48.023 161.637 l S
+53.391 161.637 m 52.586 161.371 l 52.051 160.566 l 51.781 159.223 l 51.781
+ 158.418 l 52.051 157.078 l 52.586 156.273 l 53.391 156.004 l 53.926 156.004
+ l 54.73 156.273 l 55.27 157.078 l 55.535 158.418 l 55.535 159.223 l 55.27
+ 160.566 l 54.73 161.371 l 53.926 161.637 l 53.391 161.637 l S
+39.977 188.152 m 39.172 187.883 l 38.637 187.078 l 38.367 185.738 l 38.367
+ 184.934 l 38.637 183.59 l 39.172 182.785 l 39.977 182.52 l 40.512 182.52
+ l 41.316 182.785 l 41.855 183.59 l 42.121 184.934 l 42.121 185.738 l 41.855
+ 187.078 l 41.316 187.883 l 40.512 188.152 l 39.977 188.152 l S
+44.27 183.055 m 44 182.785 l 44.27 182.52 l 44.539 182.785 l 44.27 183.055
+ l S
+49.098 188.152 m 46.414 184.395 l 50.441 184.395 l S
+49.098 188.152 m 49.098 182.52 l S
+53.391 188.152 m 52.586 187.883 l 52.051 187.078 l 51.781 185.738 l 51.781
+ 184.934 l 52.051 183.59 l 52.586 182.785 l 53.391 182.52 l 53.926 182.52
+ l 54.73 182.785 l 55.27 183.59 l 55.535 184.934 l 55.535 185.738 l 55.27
+ 187.078 l 54.73 187.883 l 53.926 188.152 l 53.391 188.152 l S
+39.977 214.668 m 39.172 214.398 l 38.637 213.594 l 38.367 212.254 l 38.367
+ 211.449 l 38.637 210.105 l 39.172 209.301 l 39.977 209.031 l 40.512 209.031
+ l 41.316 209.301 l 41.855 210.105 l 42.121 211.449 l 42.121 212.254 l 41.855
+ 213.594 l 41.316 214.398 l 40.512 214.668 l 39.977 214.668 l S
+44.27 209.57 m 44 209.301 l 44.27 209.031 l 44.539 209.301 l 44.27 209.57
+ l S
+47.758 214.668 m 46.953 214.398 l 46.684 213.863 l 46.684 213.324 l 46.953
+ 212.789 l 47.488 212.52 l 48.562 212.254 l 49.367 211.984 l 49.902 211.449
+ l 50.172 210.91 l 50.172 210.105 l 49.902 209.57 l 49.633 209.301 l 48.828
+ 209.031 l 47.758 209.031 l 46.953 209.301 l 46.684 209.57 l 46.414 210.105
+ l 46.414 210.91 l 46.684 211.449 l 47.219 211.984 l 48.023 212.254 l 49.098
+ 212.52 l 49.633 212.789 l 49.902 213.324 l 49.902 213.863 l 49.633 214.398
+ l 48.828 214.668 l 47.758 214.668 l S
+53.391 214.668 m 52.586 214.398 l 52.051 213.594 l 51.781 212.254 l 51.781
+ 211.449 l 52.051 210.105 l 52.586 209.301 l 53.391 209.031 l 53.926 209.031
+ l 54.73 209.301 l 55.27 210.105 l 55.535 211.449 l 55.535 212.254 l 55.27
+ 213.594 l 54.73 214.398 l 53.926 214.668 l 53.391 214.668 l S
+39.172 240.109 m 39.707 240.375 l 40.512 241.184 l 40.512 235.547 l S
+44.27 236.086 m 44 235.816 l 44.27 235.547 l 44.539 235.816 l 44.27 236.086
+ l S
+46.684 239.84 m 46.684 240.109 l 46.953 240.645 l 47.219 240.914 l 47.758
+ 241.184 l 48.828 241.184 l 49.367 240.914 l 49.633 240.645 l 49.902 240.109
+ l 49.902 239.57 l 49.633 239.035 l 49.098 238.23 l 46.414 235.547 l 50.172
+ 235.547 l S
+53.391 241.184 m 52.586 240.914 l 52.051 240.109 l 51.781 238.766 l 51.781
+ 237.961 l 52.051 236.621 l 52.586 235.816 l 53.391 235.547 l 53.926 235.547
+ l 54.73 235.816 l 55.27 236.621 l 55.535 237.961 l 55.535 238.766 l 55.27
+ 240.109 l 54.73 240.914 l 53.926 241.184 l 53.391 241.184 l S
+310.539 79.277 m 317.582 79.277 l 310.539 79.277 l S
+310.539 92.535 m 317.582 92.535 l 310.539 92.535 l S
+310.539 105.793 m 317.582 105.793 l 310.539 105.793 l S
+310.539 119.051 m 317.582 119.051 l 310.539 119.051 l S
+310.539 132.305 m 317.582 132.305 l 310.539 132.305 l S
+310.539 145.562 m 317.582 145.562 l 310.539 145.562 l S
+310.539 158.82 m 317.582 158.82 l 310.539 158.82 l S
+310.539 172.078 m 317.582 172.078 l 310.539 172.078 l S
+310.539 185.336 m 317.582 185.336 l 310.539 185.336 l S
+310.539 198.594 m 317.582 198.594 l 310.539 198.594 l S
+310.539 211.852 m 317.582 211.852 l 310.539 211.852 l S
+310.539 225.105 m 317.582 225.105 l 310.539 225.105 l S
+310.539 238.363 m 317.582 238.363 l 310.539 238.363 l S
+310.539 79.277 m 310.539 238.363 l S
+92.145 238.363 m 92.145 245.406 l 92.145 238.363 l 116.684 238.363 l 116.684
+ 245.406 l 116.684 238.363 l 141.223 238.363 l 141.223 245.406 l 141.223
+ 238.363 l 165.762 238.363 l 165.762 245.406 l 165.762 238.363 l 190.301
+ 238.363 l 190.301 245.406 l 190.301 238.363 l 214.84 238.363 l 214.84 245.406
+ l 214.84 238.363 l 239.379 238.363 l 239.379 245.406 l 239.379 238.363 
+l 263.918 238.363 l 263.918 245.406 l 263.918 238.363 l 288.457 238.363 
+l 288.457 245.406 l 288.457 238.363 l S
+67.609 238.363 m 310.539 238.363 l S
+92.145 79.277 m 92.145 72.234 l 92.145 79.277 l 116.684 79.277 l 116.684
+ 72.234 l 116.684 79.277 l 141.223 79.277 l 141.223 72.234 l 141.223 79.277
+ l 165.762 79.277 l 165.762 72.234 l 165.762 79.277 l 190.301 79.277 l 190.301
+ 72.234 l 190.301 79.277 l 214.84 79.277 l 214.84 72.234 l 214.84 79.277
+ l 239.379 79.277 l 239.379 72.234 l 239.379 79.277 l 263.918 79.277 l 263.918
+ 72.234 l 263.918 79.277 l 288.457 79.277 l 288.457 72.234 l 288.457 79.277
+ l S
+67.609 79.277 m 310.539 79.277 l S
+80.34 66.09 m 80.879 66.359 l 81.684 67.164 l 81.684 61.531 l S
+86.512 67.164 m 85.707 66.898 l 85.168 66.09 l 84.902 64.75 l 84.902 63.945
+ l 85.168 62.605 l 85.707 61.801 l 86.512 61.531 l 87.047 61.531 l 87.852
+ 61.801 l 88.391 62.605 l 88.656 63.945 l 88.656 64.75 l 88.391 66.09 l 
+87.852 66.898 l 87.047 67.164 l 86.512 67.164 l S
+91.875 67.164 m 91.07 66.898 l 90.535 66.09 l 90.266 64.75 l 90.266 63.945
+ l 90.535 62.605 l 91.07 61.801 l 91.875 61.531 l 92.414 61.531 l 93.219
+ 61.801 l 93.754 62.605 l 94.023 63.945 l 94.023 64.75 l 93.754 66.09 l 
+93.219 66.898 l 92.414 67.164 l 91.875 67.164 l S
+97.242 67.164 m 96.438 66.898 l 95.902 66.09 l 95.633 64.75 l 95.633 63.945
+ l 95.902 62.605 l 96.438 61.801 l 97.242 61.531 l 97.777 61.531 l 98.586
+ 61.801 l 99.121 62.605 l 99.391 63.945 l 99.391 64.75 l 99.121 66.09 l 
+98.586 66.898 l 97.777 67.164 l 97.242 67.164 l S
+102.609 67.164 m 101.805 66.898 l 101.266 66.09 l 101 64.75 l 101 63.945
+ l 101.266 62.605 l 101.805 61.801 l 102.609 61.531 l 103.145 61.531 l 103.949
+ 61.801 l 104.488 62.605 l 104.754 63.945 l 104.754 64.75 l 104.488 66.09
+ l 103.949 66.898 l 103.145 67.164 l 102.609 67.164 l S
+129.148 67.164 m 132.102 67.164 l 130.492 65.02 l 131.297 65.02 l 131.832
+ 64.75 l 132.102 64.48 l 132.371 63.676 l 132.371 63.141 l 132.102 62.336
+ l 131.562 61.801 l 130.758 61.531 l 129.953 61.531 l 129.148 61.801 l 128.883
+ 62.066 l 128.613 62.605 l S
+135.59 67.164 m 134.785 66.898 l 134.246 66.09 l 133.98 64.75 l 133.98 
+63.945 l 134.246 62.605 l 134.785 61.801 l 135.59 61.531 l 136.125 61.531
+ l 136.93 61.801 l 137.465 62.605 l 137.734 63.945 l 137.734 64.75 l 137.465
+ 66.09 l 136.93 66.898 l 136.125 67.164 l 135.59 67.164 l S
+140.953 67.164 m 140.148 66.898 l 139.613 66.09 l 139.344 64.75 l 139.344
+ 63.945 l 139.613 62.605 l 140.148 61.801 l 140.953 61.531 l 141.492 61.531
+ l 142.297 61.801 l 142.832 62.605 l 143.102 63.945 l 143.102 64.75 l 142.832
+ 66.09 l 142.297 66.898 l 141.492 67.164 l 140.953 67.164 l S
+146.32 67.164 m 145.516 66.898 l 144.98 66.09 l 144.711 64.75 l 144.711
+ 63.945 l 144.98 62.605 l 145.516 61.801 l 146.32 61.531 l 146.855 61.531
+ l 147.66 61.801 l 148.199 62.605 l 148.465 63.945 l 148.465 64.75 l 148.199
+ 66.09 l 147.66 66.898 l 146.855 67.164 l 146.32 67.164 l S
+151.688 67.164 m 150.883 66.898 l 150.344 66.09 l 150.078 64.75 l 150.078
+ 63.945 l 150.344 62.605 l 150.883 61.801 l 151.688 61.531 l 152.223 61.531
+ l 153.027 61.801 l 153.562 62.605 l 153.832 63.945 l 153.832 64.75 l 153.562
+ 66.09 l 153.027 66.898 l 152.223 67.164 l 151.688 67.164 l S
+180.91 67.164 m 178.227 67.164 l 177.961 64.75 l 178.227 65.02 l 179.031
+ 65.285 l 179.836 65.285 l 180.641 65.02 l 181.18 64.48 l 181.445 63.676
+ l 181.445 63.141 l 181.18 62.336 l 180.641 61.801 l 179.836 61.531 l 179.031
+ 61.531 l 178.227 61.801 l 177.961 62.066 l 177.691 62.605 l S
+184.668 67.164 m 183.863 66.898 l 183.324 66.09 l 183.059 64.75 l 183.059
+ 63.945 l 183.324 62.605 l 183.863 61.801 l 184.668 61.531 l 185.203 61.531
+ l 186.008 61.801 l 186.543 62.605 l 186.812 63.945 l 186.812 64.75 l 186.543
+ 66.09 l 186.008 66.898 l 185.203 67.164 l 184.668 67.164 l S
+190.031 67.164 m 189.227 66.898 l 188.691 66.09 l 188.422 64.75 l 188.422
+ 63.945 l 188.691 62.605 l 189.227 61.801 l 190.031 61.531 l 190.57 61.531
+ l 191.375 61.801 l 191.91 62.605 l 192.18 63.945 l 192.18 64.75 l 191.91
+ 66.09 l 191.375 66.898 l 190.57 67.164 l 190.031 67.164 l S
+195.398 67.164 m 194.594 66.898 l 194.055 66.09 l 193.789 64.75 l 193.789
+ 63.945 l 194.055 62.605 l 194.594 61.801 l 195.398 61.531 l 195.934 61.531
+ l 196.738 61.801 l 197.277 62.605 l 197.543 63.945 l 197.543 64.75 l 197.277
+ 66.09 l 196.738 66.898 l 195.934 67.164 l 195.398 67.164 l S
+200.766 67.164 m 199.957 66.898 l 199.422 66.09 l 199.152 64.75 l 199.152
+ 63.945 l 199.422 62.605 l 199.957 61.801 l 200.766 61.531 l 201.301 61.531
+ l 202.105 61.801 l 202.641 62.605 l 202.91 63.945 l 202.91 64.75 l 202.641
+ 66.09 l 202.105 66.898 l 201.301 67.164 l 200.766 67.164 l S
+230.523 67.164 m 227.84 61.531 l S
+226.77 67.164 m 230.523 67.164 l S
+233.742 67.164 m 232.938 66.898 l 232.402 66.09 l 232.133 64.75 l 232.133
+ 63.945 l 232.402 62.605 l 232.938 61.801 l 233.742 61.531 l 234.281 61.531
+ l 235.086 61.801 l 235.621 62.605 l 235.891 63.945 l 235.891 64.75 l 235.621
+ 66.09 l 235.086 66.898 l 234.281 67.164 l 233.742 67.164 l S
+239.109 67.164 m 238.305 66.898 l 237.77 66.09 l 237.5 64.75 l 237.5 63.945
+ l 237.77 62.605 l 238.305 61.801 l 239.109 61.531 l 239.645 61.531 l 240.453
+ 61.801 l 240.988 62.605 l 241.258 63.945 l 241.258 64.75 l 240.988 66.09
+ l 240.453 66.898 l 239.645 67.164 l 239.109 67.164 l S
+244.477 67.164 m 243.672 66.898 l 243.133 66.09 l 242.867 64.75 l 242.867
+ 63.945 l 243.133 62.605 l 243.672 61.801 l 244.477 61.531 l 245.012 61.531
+ l 245.816 61.801 l 246.355 62.605 l 246.621 63.945 l 246.621 64.75 l 246.355
+ 66.09 l 245.816 66.898 l 245.012 67.164 l 244.477 67.164 l S
+249.84 67.164 m 249.035 66.898 l 248.5 66.09 l 248.23 64.75 l 248.23 63.945
+ l 248.5 62.605 l 249.035 61.801 l 249.84 61.531 l 250.379 61.531 l 251.184
+ 61.801 l 251.719 62.605 l 251.988 63.945 l 251.988 64.75 l 251.719 66.09
+ l 251.184 66.898 l 250.379 67.164 l 249.84 67.164 l S
+279.332 65.285 m 279.066 64.48 l 278.527 63.945 l 277.723 63.676 l 277.457
+ 63.676 l 276.652 63.945 l 276.113 64.48 l 275.848 65.285 l 275.848 65.555
+ l 276.113 66.359 l 276.652 66.898 l 277.457 67.164 l 277.723 67.164 l 278.527
+ 66.898 l 279.066 66.359 l 279.332 65.285 l 279.332 63.945 l 279.066 62.605
+ l 278.527 61.801 l 277.723 61.531 l 277.188 61.531 l 276.383 61.801 l 276.113
+ 62.336 l S
+282.82 67.164 m 282.016 66.898 l 281.48 66.09 l 281.211 64.75 l 281.211
+ 63.945 l 281.48 62.605 l 282.016 61.801 l 282.82 61.531 l 283.359 61.531
+ l 284.164 61.801 l 284.699 62.605 l 284.969 63.945 l 284.969 64.75 l 284.699
+ 66.09 l 284.164 66.898 l 283.359 67.164 l 282.82 67.164 l S
+288.188 67.164 m 287.383 66.898 l 286.848 66.09 l 286.578 64.75 l 286.578
+ 63.945 l 286.848 62.605 l 287.383 61.801 l 288.188 61.531 l 288.723 61.531
+ l 289.527 61.801 l 290.066 62.605 l 290.332 63.945 l 290.332 64.75 l 290.066
+ 66.09 l 289.527 66.898 l 288.723 67.164 l 288.188 67.164 l S
+293.555 67.164 m 292.75 66.898 l 292.211 66.09 l 291.945 64.75 l 291.945
+ 63.945 l 292.211 62.605 l 292.75 61.801 l 293.555 61.531 l 294.09 61.531
+ l 294.895 61.801 l 295.43 62.605 l 295.699 63.945 l 295.699 64.75 l 295.43
+ 66.09 l 294.895 66.898 l 294.09 67.164 l 293.555 67.164 l S
+298.918 67.164 m 298.113 66.898 l 297.578 66.09 l 297.309 64.75 l 297.309
+ 63.945 l 297.578 62.605 l 298.113 61.801 l 298.918 61.531 l 299.457 61.531
+ l 300.262 61.801 l 300.797 62.605 l 301.066 63.945 l 301.066 64.75 l 300.797
+ 66.09 l 300.262 66.898 l 299.457 67.164 l 298.918 67.164 l S
+  Q
+Q
+Q Q
+showpage
+%%Trailer
+%%EOF
diff --git a/bench/test_results/closed_lev.pdf b/bench/test_results/closed_lev.pdf
index 95aeee2..18c4d3d 100644
Binary files a/bench/test_results/closed_lev.pdf and b/bench/test_results/closed_lev.pdf differ
diff --git a/bench/test_results/contourcolor_blue.pdf b/bench/test_results/contourcolor_blue.pdf
new file mode 100644
index 0000000..2ca2161
Binary files /dev/null and b/bench/test_results/contourcolor_blue.pdf differ
diff --git a/bench/test_results/contourcolor_green.pdf b/bench/test_results/contourcolor_green.pdf
new file mode 100644
index 0000000..4c104e1
Binary files /dev/null and b/bench/test_results/contourcolor_green.pdf differ
diff --git a/bench/test_results/contourcolor_puce.pdf b/bench/test_results/contourcolor_puce.pdf
new file mode 100644
index 0000000..9245b62
Binary files /dev/null and b/bench/test_results/contourcolor_puce.pdf differ
diff --git a/bench/test_results/dashbug.gif b/bench/test_results/dashbug.gif
new file mode 100644
index 0000000..9241731
Binary files /dev/null and b/bench/test_results/dashbug.gif differ
diff --git a/bench/test_results/dashbug.pdf b/bench/test_results/dashbug.pdf
index a8b0008..36b4eaf 100644
Binary files a/bench/test_results/dashbug.pdf and b/bench/test_results/dashbug.pdf differ
diff --git a/bench/test_results/dots.pdf b/bench/test_results/dots.pdf
index 400608f..6d3e911 100644
Binary files a/bench/test_results/dots.pdf and b/bench/test_results/dots.pdf differ
diff --git a/bench/test_results/ferret_run_tests_err b/bench/test_results/ferret_run_tests_err
index 728cb62..a486762 100644
--- a/bench/test_results/ferret_run_tests_err
+++ b/bench/test_results/ferret_run_tests_err
@@ -1,8 +1,22 @@
 Using FERRET /home/flat/ksmith/Ferret/bin/ferret
-lrwxrwxrwx. 1 ksmith oerdnewp 13 Nov  6 15:35 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v6.951
+lrwxrwxrwx. 1 ksmith oerdnewp 11 Jun 17 15:03 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v7.0
 Using external functions from /home/flat/ksmith/Ferret/ext_func/libs
 Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for debug Ferret on RHEL6-64
+Note: RUN_TESTS.sh test results for Ferret
+****** Restricting Ferret paths to bench directory ******
+FER_DAT=.
+FER_DATA=.
+FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/flat/ksmith/Datasets
+FER_DESCR=.
+FER_DIR=.
+FER_DSETS=.
+FER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/Ferret/ext_func/libs
+FER_FONTS=/home/flat/ksmith/Ferret/ppl/fonts
+FER_GO=. /home/flat/ksmith/Ferret/go /home/flat/ksmith/Ferret/examples /home/flat/ksmith/Ferret/contrib
+FER_GRIDS=.
+FER_LIBS=/home/flat/ksmith/Ferret/lib
+FER_PALETTE=. /home/flat/ksmith/Ferret/ppl
+FER_WEB_BROWSER=firefox
 Benchmark scripts that will be run:
    bn_syntax.jnl
    bn_dollar.jnl
@@ -37,6 +51,7 @@ Benchmark scripts that will be run:
    bn_odd_variable_name.jnl
    bn_test_stream.jnl
    bn_define_axes.jnl
+   bn_pattern.jnl
    bn_polygon.jnl
    bn500_bug_fixes.jnl
    bn_sample.jnl
@@ -216,6 +231,7 @@ Benchmark scripts that will be run:
    bn_enter_exit_GO.jnl
    bn_stddev.jnl
    bn_set_axis_name.jnl
+   bn_let_remote.jnl
    bn691_bug_fixes.jnl
    bn_append_dsg.jnl
    bn_global_atts.jnl
@@ -243,35 +259,52 @@ Benchmark scripts that will be run:
    bn_plot_ribbon_gaploc.jnl
    bn_time_short_axes.jnl
    bn_floatstr_extended.jnl
-   bn696_bug_fixes
-   bn_bin_regrid
+   bn696_bug_fixes.jnl
+   bn_bin_regrid.jnl
+   bn697_bug_fixes.jnl
+   bn_aggregate_t.jnl
+   bn_unquoted_args.jnl
+   bn_long_lists.jnl
+   bn_show_uvar_grid.jnl
+   bn_aggregate_f.jnl
+   bn_aggregate_tef.jnl
+   bn_dataset_qualifier.jnl
+   bn_speedtest.jnl
+   bn_show_noupcase.jnl
+   bn_letd_attributes.jnl
+   bn_list_clim_axes.jnl
+   bn_climatology_attr.jnl
+   bn_plot_along.jnl
+   bn_show_commands.jnl
+   bn_plot_decimate.jnl
+   bn_auto_tprec.jnl
+   bn_coordvars_atts.jnl
+   bn_gif.jnl
+   bn_ps.jnl
    bn_all_ef.jnl
    bn_startupfile.jnl
-****** Restricting Ferret paths to bench directory ******
-FER_DAT=.
-FER_DATA=.
-FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/flat/ksmith/Datasets
-FER_DESCR=.
-FER_DIR=.
-FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/Ferret/ext_func/libs
-FER_FONTS=/home/flat/ksmith/Ferret/ppl/fonts
-FER_GO=. /home/flat/ksmith/Ferret/go /home/flat/ksmith/Ferret/examples /home/flat/ksmith/Ferret/contrib
-FER_GRIDS=.
-FER_LIBS=/home/flat/ksmith/Ferret/lib
-FER_PALETTE=. /home/flat/ksmith/Ferret/ppl
-FER_WEB_BROWSER=firefox
-Beginning at Fri Nov  6 15:53:35 PST 2015
-*** Running test: bn_syntax.jnl
- Cached data cleared from memory
+Beginning at Fri Jun 17 15:03:50 PDT 2016
+*** Running ferret script: bn_syntax.jnl
+ Cached data cleared from memory
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
         SET EXPRESSION has not been given or implied
- **ERROR: unknown command qualifier: help
-MESSAGE/CONTINUE /help
+ **ERROR: unknown command qualifier: notaqualifier
+MESSAGE/CONTINUE/notaqualifier
  **ERROR: unknown command: that
 that
  **ERROR: command syntax: \!
 \! ignore (err cuz bang gets escaped)
-*** Running test: bn_dollar.jnl
+*** Running ferret script: bn_dollar.jnl
  Cached data cleared from memory
  **ERROR: invalid command: Value needed for argument 3 in command
           GO bn_dollar.jnl hello
@@ -282,11 +315,13 @@ message/cont $3"<my error message"
 message/cont $1"|xxxxx|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $1
 message/cont $1"greetings|xxxxx|goodbye"
+           *** NOTE: Argument $1 received was: hello
            *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
  **ERROR: my error message
 message/cont $3"|hello|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3">greetings|hello|goodbye"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: hello|goodbye
  **ERROR: my error message
 message/cont $3">greetings|hello|goodbye<my error message"
@@ -298,9 +333,11 @@ message/cont $3""
 message/cont $3"<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"||"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: |
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>|"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: >|
  **ERROR: command syntax: empty text string provided with ">": >|
 message/cont $3">|"
@@ -308,6 +345,7 @@ message/cont $3">|"
 message/cont $3"|<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: >
  **ERROR: command syntax: arg number not in 1-99 range: $100
 say $100
@@ -316,7 +354,7 @@ say ($100)
  **ERROR: invalid command: Value needed for argument 10 in command
           GO bn_dollar.jnl hello
 say ($10)0
-*** Running test: bn_grave.jnl
+*** Running ferret script: bn_grave.jnl
  Cached data cleared from memory
  **ERROR: command syntax: unpaired grave accents: message/continue "2+2=`2+2"
 message/continue "2+2=`2+2"
@@ -358,7 +396,7 @@ MESSAGE/CONTINUE `sst,return=Xsize`
             calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           sst,return=trash
 MESSAGE/CONTINUE `sst,return=trash`
-*** Running test: bn_letd.jnl
+*** Running ferret script: bn_letd.jnl
  Cached data cleared from memory
  **ERROR: unknown data set: NOEXIST
 DEFINE VARIABLE/d=noexist a = b
@@ -368,7 +406,7 @@ list/l=1/x=180/y=0 airt[d=gt4d011]
 can var
  LISTing to file v12file.nc
  LISTing to file v1file.nc
-*** Running test: bn_if.jnl
+*** Running ferret script: bn_if.jnl
  Cached data cleared from memory
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 ENDIF
@@ -386,7 +424,7 @@ endif
  **ERROR: invalid command: ELIF can only be used between IF and ENDIF
 elif
            *** NOTE: Unclosed IF statement ... assuming ENDIF
-*** Running test: bn_expressions.jnl
+*** Running ferret script: bn_expressions.jnl
  Cached data cleared from memory
  **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
@@ -397,7 +435,7 @@ LIST/ORDER=X  IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
 DEFINE VARIABLE A = IF I LT 5 THEN I ELSE -9
  **ERROR: variable unknown or not in data set: A1
 load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
-*** Running test: bn_geometry.jnl
+*** Running ferret script: bn_geometry.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -408,7 +446,7 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
           X[I=6:9] has 4 points (I=6:9)
           expression has 5 points (I=1:5)
 LIST X[I=1:5] - X[I=6:9]
-*** Running test: bn_output.jnl
+*** Running ferret script: bn_output.jnl
  Cached data cleared from memory
  LISTing to file WV.J34K56L7
  LISTing to file test.dat
@@ -416,15 +454,15 @@ LIST X[I=1:5] - X[I=6:9]
  LISTing to file test.unf
  **ERROR: invalid subcommand: File type no longer supported TMA
 LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
-*** Running test: bn_in_plane.jnl
+*** Running ferret script: bn_in_plane.jnl
  Cached data cleared from memory
-*** Running test: bn_compress.jnl
+*** Running ferret script: bn_compress.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_interpolate.jnl
+*** Running ferret script: bn_interpolate.jnl
  Cached data cleared from memory
-*** Running test: bn_regrid.jnl
+*** Running ferret script: bn_regrid.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -433,10 +471,10 @@ Replacing definition of axis XCOARSE
 Replacing definition of axis YFINE
 Replacing definition of axis YCOARSE
 Replacing definition of grid G24
-*** Running test: bn_ez.jnl
+*** Running ferret script: bn_ez.jnl
  Cached data cleared from memory
  LISTing to file test.unf
-*** Running test: bn_plot.jnl
+*** Running ferret script: bn_plot.jnl
  Cached data cleared from memory
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
@@ -498,8 +536,9 @@ cont/over/i=1:10/thick=4 i
  **ERROR: value out of legal range: sigdig=-1
           Value must be positive
 cont/over/i=1:10/sigdig=-1 i
-*** Running test: bn_curv.jnl
+*** Running ferret script: bn_curv.jnl
  Cached data cleared from memory
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
 Replacing definition of axis LON_FIELD_I_AXIS
 Replacing definition of axis LON_FIELD_J_AXIS
 Replacing definition of axis LAT_FIELD_I_AXIS
@@ -513,9 +552,11 @@ shade/nolabel sst, 0*x_page, y_page
 shade/nolabel sst, x_page, 0*y_page
  **ERROR: inconsistent sizes of data regions: Y axis of X position array
 shade/nolabel sst, x_page[j=1:12], y_page
+           *** NOTE: Cannot cancel window when in batch mode
  **ERROR: inconsistent sizes of data regions: Y axis of X position array
 shade/nolabel sst, x_page[j=1:12], y_page
-*** Running test: bn_symbols.jnl
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+*** Running ferret script: bn_symbols.jnl
  Cached data cleared from memory
  **ERROR: command syntax: illegal name: TEST*
 define symbol test* = hello
@@ -526,15 +567,17 @@ define symbol t$5 = hi
 message/continue ($test2"<error message")
  **ERROR: invalid command: Valid value needed for symbol test2
 message/continue ($test2"|hello|bye|")
+           *** NOTE: symbol test2 was missing or empty.
            *** NOTE: Valid symbol test2 choices are: hello|bye|
  **ERROR: error message
 message/continue ($test2"|hello|bye|<error message")
  **ERROR: invalid command: Valid value needed for symbol t2
 message/continue ($t2"|solong>really hello|bye|")
+           *** NOTE: symbol t2 received was: hello
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
-*** Running test: bn_comma_delimited.jnl
+*** Running ferret script: bn_comma_delimited.jnl
  Cached data cleared from memory
-*** Running test: bn_dynamic_grids.jnl
+*** Running ferret script: bn_dynamic_grids.jnl
  Cached data cleared from memory
  **ERROR: unknown defining grid: GX=NOEXIST
 list temp[gx=noexist]
@@ -579,7 +622,7 @@ list tu
  **ERROR: regridding: Axis orientation not matching request:GX=PSYU
 list tu
  Cached data cleared from memory
- **ERROR: request exceeds memory setting: 25 Mwords were requested.
+ **ERROR: request exceeds memory setting: 50 Mwords were requested.
 list temp[gz=z999999,z=5:15]
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
@@ -604,7 +647,7 @@ list a
  **ERROR: illegal limits: A is not in the range I=101:105
           Axis extremes are I=1:8
 list a
-*** Running test: bn_cdf.jnl
+*** Running ferret script: bn_cdf.jnl
  Cached data cleared from memory
  LISTing to file test0a.cdf
  LISTing to file test0b.cdf
@@ -717,13 +760,13 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
-*** Running test: bn_regrid_transforms.jnl
+*** Running ferret script: bn_regrid_transforms.jnl
  Cached data cleared from memory
  **ERROR: regridding: G=W - more than 1 target grid
 load temp[g=u,g=w]
  **ERROR: unknown defining grid: G=X --> g=user-or-pseudo-var not allowed
 load temp[g=x]
-*** Running test: bn_axis_limits.jnl
+*** Running ferret script: bn_axis_limits.jnl
  Cached data cleared from memory
            *** NOTE: /XLIMITS and /YLIMITS are deprecated.
            *** NOTE: Use /HLIMITS and /VLIMITS instead.
@@ -743,9 +786,9 @@ plot/xlimits=1:: i
 plot/xlimits=1:2: i
  **ERROR: invalid command: Must give a range: xlimits=5:5
 plot/xlimits=5:5 i
-*** Running test: bn_movie.jnl
+*** Running ferret script: bn_movie.jnl
  Cached data cleared from memory
-*** Running test: bn_ez_order.jnl
+*** Running ferret script: bn_ez_order.jnl
  Cached data cleared from memory
  LISTing to file test_perm10.dat
  LISTing to file test_perm24.dat
@@ -755,11 +798,12 @@ plot/xlimits=5:5 i
  LISTing to file test_stream.unf
  LISTing to file test_stream.unf
  LISTing to file test_stream.unf
-*** Running test: bn_user.jnl
+*** Running ferret script: bn_user.jnl
  Cached data cleared from memory
-*** Running test: bn_stream.jnl
+           *** NOTE: Only one window can be open in batch mode
+*** Running ferret script: bn_stream.jnl
  Cached data cleared from memory
-*** Running test: bn_mc.jnl
+*** Running ferret script: bn_mc.jnl
  Cached data cleared from memory
  **TMAP ERR: Attempt to access unsupported feature
              Descriptor requests delta of 0, please use 1
@@ -771,19 +815,20 @@ set data coads_clim_step_order.des
  **TMAP ERR: non-existent or not on line
              coads_clim.001b
 list sst
-*** Running test: bn_negative_t.jnl
+*** Running ferret script: bn_negative_t.jnl
  Cached data cleared from memory
  **ERROR: regridding: only @ASN regridding between calendar and
           non-calendar axes: A
 LIST a[gt=tcal]
-*** Running test: bn_xact_regrid.jnl
+*** Running ferret script: bn_xact_regrid.jnl
  Cached data cleared from memory
-*** Running test: bn_gc_functions.jnl
+*** Running ferret script: bn_gc_functions.jnl
  Cached data cleared from memory
            *** NOTE: /XLIMITS and /YLIMITS are deprecated.
            *** NOTE: Use /HLIMITS and /VLIMITS instead.
-*** Running test: bn491_bug_fixes.jnl
+*** Running ferret script: bn491_bug_fixes.jnl
  Cached data cleared from memory
+           *** NOTE: Cannot cancel window when in batch mode
  LISTing to file test.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -804,7 +849,7 @@ Replacing definition of axis TAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_odd_variable_name.jnl
+*** Running ferret script: bn_odd_variable_name.jnl
  Cached data cleared from memory
  Cached data cleared from memory
  **ERROR: command syntax: v2-and-minus
@@ -822,18 +867,18 @@ list i
           - before and is illegal
 list v2-and-minus[i=5:15 at ddc]
  Cached data cleared from memory
-*** Running test: bn_test_stream.jnl
+*** Running ferret script: bn_test_stream.jnl
  Cached data cleared from memory
  LISTing to file permutedBinaryTest.dat
  LISTing to file junk.dat
- **ERROR: request exceeds memory setting: 24000 Mwords were requested.
+ **ERROR: request exceeds memory setting: 48000 Mwords were requested.
 load num
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: 1000 Mwords were requested.
+ **ERROR: request exceeds memory setting: 2000 Mwords were requested.
 load num
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
@@ -851,7 +896,7 @@ load num
 SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
  **ERROR: invalid command: invalid argument for /TYPE
 SET DATA/EZ/var=num/type=i3/grid=mygrid/form=stream junk.dat
-*** Running test: bn_define_axes.jnl
+*** Running ferret script: bn_define_axes.jnl
  Cached data cleared from memory
 Replacing definition of axis XAX
 Replacing definition of axis XAX
@@ -909,9 +954,16 @@ Replacing definition of axis XAX
 Replacing definition of axis XAX2
            *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
 Replacing definition of axis XAX2
-*** Running test: bn_polygon.jnl
+*** Running ferret script: bn_pattern.jnl
+ Cached data cleared from memory
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: Only one window can be open in batch mode
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: Cannot cancel window when in batch mode
+*** Running ferret script: bn_polygon.jnl
  Cached data cleared from memory
-*** Running test: bn500_bug_fixes.jnl
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+*** Running ferret script: bn500_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -945,7 +997,7 @@ Replacing definition of axis XAX2
 stat i, noname(i)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_sample.jnl
+*** Running ferret script: bn_sample.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -983,7 +1035,7 @@ stat i, noname(i)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_strides_revs_perms.jnl
+*** Running ferret script: bn_strides_revs_perms.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1003,23 +1055,23 @@ LIST/i=2:4:2 VAR
  TEMPORARY data cleared from memory
            *** NOTE: Not using NetCDF strides for multi-cycle modulo
            *** NOTE: Stride value not a factor of axis length
-*** Running test: bn_non_COARDS_netCDF.jnl
+*** Running ferret script: bn_non_COARDS_netCDF.jnl
  Cached data cleared from memory
            *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
-*** Running test: bn_cache_hits.jnl
+*** Running ferret script: bn_cache_hits.jnl
  Cached data cleared from memory
-*** Running test: bn_regrid_to_user.jnl
+*** Running ferret script: bn_regrid_to_user.jnl
  Cached data cleared from memory
 Replacing definition of grid GG2
  **ERROR: unknown defining grid: G=NO_EXIST
 load/x=160e/y=5s temp[d=2,k=1,g=no_exist]
  **ERROR: unknown defining grid: GX=A[D=1]
 load/x=160e/y=5s v2
-*** Running test: bn_calendar.jnl
+*** Running ferret script: bn_calendar.jnl
  Cached data cleared from memory
 Replacing definition of axis TDAYS
 Replacing definition of axis TDAYS
@@ -1034,7 +1086,7 @@ Replacing definition of grid TGRID
 Replacing definition of axis TDAYS
 Replacing definition of grid TGRID
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
-*** Running test: bn_dash_dot.jnl
+*** Running ferret script: bn_dash_dot.jnl
  Cached data cleared from memory
  **ERROR: command syntax: dash=(1., 2.)
           DASH[=(dn1,up1,dn2,up2)] takes 4 arguments or no argument
@@ -1042,23 +1094,24 @@ plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
  **ERROR: value out of legal range: dash=(-1., 2., 3., 4.)
           DASH arguments must be positive
 plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
-*** Running test: bn_flowlines.jnl
+*** Running ferret script: bn_flowlines.jnl
  Cached data cleared from memory
  Using every   2th vector in the Y direction
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
  Using every   2th vector in the X direction
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_logaxes.jnl
+*** Running ferret script: bn_logaxes.jnl
  Cached data cleared from memory
 Replacing definition of axis DLOG
 Replacing definition of axis DLOG
  **ERROR: value out of legal range: Limits for log axis negative or too small: -9.00 : 0.00
 plot/hlog fcn
-*** Running test: bn_internal_external_functions.jnl
+*** Running ferret script: bn_internal_external_functions.jnl
 
 Bailing out of external function "ffta":
 	 Time axis must be a regular axis
@@ -1148,7 +1201,9 @@ list strcat ("All work and no play")
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_modulo_strides.jnl
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+*** Running ferret script: bn_modulo_strides.jnl
  Cached data cleared from memory
  LISTing to file test_modulo.cdf
  PERMANENT data cleared from memory
@@ -1157,7 +1212,7 @@ list strcat ("All work and no play")
            *** NOTE: Stride value not a factor of axis length
            *** NOTE: Not using NetCDF strides for multi-cycle modulo
            *** NOTE: Stride value not a factor of axis length
-*** Running test: bn_axis_viewports.jnl
+*** Running ferret script: bn_axis_viewports.jnl
  Cached data cleared from memory
 Re-defining viewport MID
 Re-defining viewport MID2
@@ -1165,7 +1220,7 @@ Re-defining viewport LLAX
 Re-defining viewport LRAX
 Re-defining viewport ULAX
 Re-defining viewport URAX
-*** Running test: bn_strings.jnl
+*** Running ferret script: bn_strings.jnl
  Cached data cleared from memory
  **ERROR: command syntax: "string2"}
 list e
@@ -1208,11 +1263,13 @@ list/nohead "b" ^ {"a","b"}
 list/nohead SIN({"a","b","c"})
  **ERROR: invalid command: cannot use strings in numerical expression
 list/nohead MAX("a",{"a","b","c"})
-*** Running test: bn_axcontrol.jnl
+*** Running ferret script: bn_axcontrol.jnl
  Cached data cleared from memory
-*** Running test: bn_vec_curv.jnl
+*** Running ferret script: bn_vec_curv.jnl
  Cached data cleared from memory
-*** Running test: bn_delimited_read.jnl
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+*** Running ferret script: bn_delimited_read.jnl
  Cached data cleared from memory
 Replacing definition of axis TAX
 Replacing definition of grid G1
@@ -1228,7 +1285,7 @@ SET DATA/FORM=delimited/type="d, da2,date2"  bn_delimited_read_date_time.dat
 SET DATA/FORM=delimited/type="da,da, date2"  bn_delimited_read_date_time.dat
  **ERROR: command syntax: ,,:
 SET DATA/EZ/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
-*** Running test: bn541_bug_fixes.jnl
+*** Running ferret script: bn541_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1272,7 +1329,7 @@ Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_cancel_axes.jnl
+*** Running ferret script: bn_cancel_axes.jnl
  Cached data cleared from memory
  LISTing to file longax.dat
  PERMANENT data cleared from memory
@@ -1293,7 +1350,7 @@ Replacing definition of axis YAX
  TEMPORARY data cleared from memory
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
-*** Running test: bn542_bug_fixes.jnl
+*** Running ferret script: bn542_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1315,7 +1372,7 @@ Replacing definition of axis YAX
            *** NOTE: Axis is in use by grid (G001)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_subspan_modulo.jnl
+*** Running ferret script: bn_subspan_modulo.jnl
  Cached data cleared from memory
  LISTing to file test_mod.cdf
  LISTing to file test_mod.cdf
@@ -1340,25 +1397,26 @@ define axis/x=130e:500:10/modulo=360 xsub
            *** NOTE: Stride value not a factor of axis length
            *** NOTE: Not using NetCDF strides for multi-cycle modulo
            *** NOTE: Stride value not a factor of axis length
-*** Running test: bn_dots.jnl
+*** Running ferret script: bn_dots.jnl
  Cached data cleared from memory
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
            *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
-*** Running test: bn_lev_symbols.jnl
+*** Running ferret script: bn_lev_symbols.jnl
  Cached data cleared from memory
-*** Running test: bn_mode_logo_lab.jnl
+*** Running ferret script: bn_mode_logo_lab.jnl
  Cached data cleared from memory
-*** Running test: bn_modulo_attribute.jnl
+*** Running ferret script: bn_modulo_attribute.jnl
  Cached data cleared from memory
            *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
            *** NOTE: modulo = "j"
            *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
            *** NOTE: modulo = "j"
-*** Running test: bn550_bug_fixes.jnl
+*** Running ferret script: bn550_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn551_bug_fixes.jnl
+*** Running ferret script: bn551_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1376,9 +1434,11 @@ Replacing definition of axis TAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_multi_line_labels.jnl
+*** Running ferret script: bn_multi_line_labels.jnl
  Cached data cleared from memory
-*** Running test: bn552_bug_fixes.jnl
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+*** Running ferret script: bn552_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1433,13 +1493,13 @@ Replacing definition of axis YAX
  **ERROR: illegal limits: "DUMMY" does not exist at T=01-JAN-1990 00:00
           Axis extremes are T=31-DEC-1997 12:00:30-JAN-1998 12:00
 list/t=1-jan-1990 dummy
-*** Running test: bn_set_var_scale_off.jnl
+*** Running ferret script: bn_set_var_scale_off.jnl
  Cached data cleared from memory
  **ERROR: invalid command: Can SET VARIABLE/OFFSET= only with NetCDF datasets
 SET VAR/OFFSET=1 x1
  **ERROR: invalid command: Can SET VARIABLE/SCALEFAC= only with NetCDF datasets
 SET VAR/SCALE=10 x2
-*** Running test: bn_longvarnames.jnl
+*** Running ferret script: bn_longvarnames.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1451,14 +1511,14 @@ SET VAR/SCALE=10 x2
  LISTing to file longvname.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_shakey.jnl
+*** Running ferret script: bn_shakey.jnl
  Cached data cleared from memory
-*** Running test: bn_eof_4d.jnl
+*** Running ferret script: bn_eof_4d.jnl
  Cached data cleared from memory
  LISTing to file eofsp.cdf
  LISTing to file eofti.cdf
  LISTing to file eofst.cdf
-*** Running test: bn_abstract_axis_names.jnl
+*** Running ferret script: bn_abstract_axis_names.jnl
  Cached data cleared from memory
  LISTing to file confuse_xz.nc
  LISTing to file confuse_yz.nc
@@ -1468,22 +1528,29 @@ SET VAR/SCALE=10 x2
  LISTing to file confuse_yz.nc
  LISTing to file confuse_yt.nc
  LISTing to file confuse_yzt.nc
-*** Running test: bn_many_polygons.jnl
+*** Running ferret script: bn_many_polygons.jnl
  Cached data cleared from memory
 Replacing definition of axis YQ
-*** Running test: bn_fill_irregular.jnl
+*** Running ferret script: bn_fill_irregular.jnl
  Cached data cleared from memory
-*** Running test: bn_xml_output.jnl
+*** Running ferret script: bn_xml_output.jnl
  Cached data cleared from memory
+ LISTing to file a.nc
+ LISTing to file b.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
 SHOW VAR/XML
 SHOW VAR/XML
-*** Running test: bn_test_nan.jnl
+SHOW VAR/XML
+ LISTing to file a.nc
+*** Running ferret script: bn_test_nan.jnl
  Cached data cleared from memory
-*** Running test: bn553_bug_fixes.jnl
+*** Running ferret script: bn553_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1491,17 +1558,18 @@ SHOW VAR/XML
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_graticules.jnl
+*** Running ferret script: bn_graticules.jnl
  Cached data cleared from memory
  Using every   5th vector in the X direction
  Using every   3th vector in the Y direction
  Using every   2th vector in the X direction
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
-*** Running test: bn_repeat_range.jnl
+*** Running ferret script: bn_repeat_range.jnl
  Cached data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: invalid command: REPEAT/NAME requires /RANGE
@@ -1532,7 +1600,7 @@ repeat/range=3:1:-1/name=a list a
 repeat/range=3:1:-1/name=a list a
  **ERROR: command syntax: nested REPEAT loops with the same counter name a
 repeat/range=3:1:-1/name=a list a
-*** Running test: bn554_bug_fixes.jnl
+*** Running ferret script: bn554_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1594,7 +1662,7 @@ Replacing definition of axis X_AX
  TEMPORARY data cleared from memory
 Replacing definition of axis XAX
 Replacing definition of axis YAX
-*** Running test: bn_bounds.jnl
+*** Running ferret script: bn_bounds.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
@@ -1643,11 +1711,11 @@ def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,
            *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
            *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
            *** NOTE: Substituting coordinate midpoints
-*** Running test: bn_all_leap.jnl
+*** Running ferret script: bn_all_leap.jnl
  Cached data cleared from memory
  **ERROR: command syntax: Invalid calendar name. Names are, GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
 def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
-*** Running test: bn570_bug_fixes.jnl
+*** Running ferret script: bn570_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1667,15 +1735,15 @@ def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_modstats.jnl
+*** Running ferret script: bn_modstats.jnl
  Cached data cleared from memory
-*** Running test: bn_mc_vary_scale.jnl
+*** Running ferret script: bn_mc_vary_scale.jnl
  Cached data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_plot_nokey.jnl
+*** Running ferret script: bn_plot_nokey.jnl
  Cached data cleared from memory
-*** Running test: bn580_bug_fixes.jnl
+*** Running ferret script: bn580_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1706,7 +1774,6 @@ Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file fine.dat
-Cannot create cookie file
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: illegal limits: One-point independent axis: Requires a /HLIMIT or /VLIMIT specification
@@ -1728,26 +1795,31 @@ plot/sym/siz=0.3 0*t[gt=vwnd]
 query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
  **ERROR: invalid command: Valid value needed for argument $2
 query/ignore $2%|a|b|c|d|%
+           *** NOTE: Argument $2 was missing or empty.
            *** NOTE: Valid argument $2 choices are: a|b|c|d|
  **ERROR: my error message
 message/cont $1"|xxxxx|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $1
 message/cont $1"greetings|xxxxx|goodbye"
+           *** NOTE: Argument $1 received was: hello
            *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
  **ERROR: my error message
 message/cont $3"|hello|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3">greetings|hello|goodbye"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: hello|goodbye
  **ERROR: my error message
 message/continue ($test2"<my error message")
  **ERROR: invalid command: Valid value needed for symbol test2
 message/continue ($test2"|hello|bye|")
+           *** NOTE: symbol test2 was missing or empty.
            *** NOTE: Valid symbol test2 choices are: hello|bye|
  **ERROR: my error message
 message/continue ($test2"|hello|bye|<my error message")
  **ERROR: invalid command: Valid value needed for symbol t2
 message/continue ($t2"|solong>really hello|bye|")
+           *** NOTE: symbol t2 was missing or empty.
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1766,13 +1838,13 @@ list/l=1/j=40/i=0:300:0 sst
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_inf_levels.jnl
+*** Running ferret script: bn_inf_levels.jnl
  Cached data cleared from memory
-*** Running test: bn_regulart.jnl
+*** Running ferret script: bn_regulart.jnl
  Cached data cleared from memory
-*** Running test: bn_labwid.jnl
+*** Running ferret script: bn_labwid.jnl
  Cached data cleared from memory
-*** Running test: bn_redefine_taxis_mc.jnl
+*** Running ferret script: bn_redefine_taxis_mc.jnl
  Cached data cleared from memory
 Replacing definition of axis TIME1
            *** NOTE: grid GHB1 used by data set coads_clim
@@ -1780,7 +1852,7 @@ Replacing definition of axis TIME1
 Replacing definition of axis TIME1
            *** NOTE: grid GHB1 used by data set coads_clim
            *** NOTE: Redefinition may alter apparent contents of data set
-*** Running test: bn_illegal_axisname.jnl
+*** Running ferret script: bn_illegal_axisname.jnl
  Cached data cleared from memory
 Replacing definition of axis COADSX.ILLEGAL
            *** NOTE: grid GEX1 used by data set illeg_axname
@@ -1792,15 +1864,15 @@ Replacing definition of axis COADSY.ILLEGAL
            *** NOTE: Redefinition may alter apparent contents of data set
            *** NOTE: grid GEX3 used by data set illeg_axname
            *** NOTE: Redefinition may alter apparent contents of data set
-*** Running test: bn_exit_script.jnl
+*** Running ferret script: bn_exit_script.jnl
  Cached data cleared from memory
-*** Running test: bn_exit_cycle.jnl
+*** Running ferret script: bn_exit_cycle.jnl
  Cached data cleared from memory
-*** Running test: bn_curv_mod.jnl
+*** Running ferret script: bn_curv_mod.jnl
  Cached data cleared from memory
-*** Running test: bn_shade_keycont.jnl
+*** Running ferret script: bn_shade_keycont.jnl
  Cached data cleared from memory
-*** Running test: bn581_bug_fixes.jnl
+*** Running ferret script: bn581_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1834,6 +1906,8 @@ DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1850,16 +1924,20 @@ DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_tab_comma_multivar.jnl
+*** Running ferret script: bn_tab_comma_multivar.jnl
  Cached data cleared from memory
-*** Running test: bn_element_functions.jnl
+*** Running ferret script: bn_element_functions.jnl
  Cached data cleared from memory
-*** Running test: bn_long_revision_num.jnl
+*** Running ferret script: bn_long_revision_num.jnl
  Cached data cleared from memory
  LISTing to file revision.nc
-*** Running test: bn_window_title.jnl
+*** Running ferret script: bn_window_title.jnl
  Cached data cleared from memory
-*** Running test: bn_last_error.jnl
+           *** NOTE: Cannot create new windows when batch mode set
+           *** NOTE: Cannot create new windows when batch mode set
+           *** NOTE: Cannot cancel window when in batch mode
+           *** NOTE: Cannot create new windows when batch mode set
+*** Running ferret script: bn_last_error.jnl
 
 Bailing out of external function "ffta":
 	 Time axis must be a regular axis
@@ -1882,18 +1960,18 @@ repeat/name=a (say `a`)
 repeat/range=1:3/name=L (use coads_climatology; list/nohead [sst=I=1,j=1])
  **ERROR: error in external function
 LOAD vw_fft
-*** Running test: bn_deg_min.jnl
+*** Running ferret script: bn_deg_min.jnl
  Cached data cleared from memory
-*** Running test: bn_dp_readscale.jnl
+*** Running ferret script: bn_dp_readscale.jnl
  Cached data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_bounds_defineax.jnl
+*** Running ferret script: bn_bounds_defineax.jnl
  Cached data cleared from memory
 Replacing definition of axis TAX
  LISTing to file irrxzt.nc
 Replacing definition of axis ZAX
 Replacing definition of axis ZAX2
-*** Running test: bn_attributes.jnl
+*** Running ferret script: bn_attributes.jnl
  Cached data cleared from memory
  **ERROR: invalid command: SHOW ATTRIBUTE given with no argument
 sho att/all
@@ -2048,21 +2126,25 @@ Replacing definition of axis TIME
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_transforms.jnl
+*** Running ferret script: bn_transforms.jnl
  Cached data cleared from memory
-*** Running test: bn_variance.jnl
+*** Running ferret script: bn_variance.jnl
  Cached data cleared from memory
-*** Running test: bn_linecolors.jnl
+*** Running ferret script: bn_linecolors.jnl
  Cached data cleared from memory
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: Cannot cancel window when in batch mode
+           *** NOTE: Cannot create new windows when batch mode set
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
  Using every   3th vector in the X direction
  Using every   4th vector in the Y direction
            *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
-*** Running test: bn_cdf_errmsg.jnl
-Cannot create cookie file
-Cannot create cookie file
+           *** NOTE: Cannot create new windows when batch mode set
+           *** NOTE: Cannot cancel window when in batch mode
+           *** NOTE: Cannot create new windows when batch mode set
+*** Running ferret script: bn_cdf_errmsg.jnl
 syntax error, unexpected WORD_STRING, expecting WORD_WORD
 context: Error { code = 404; message = "data/PMEL/COADS/coads_nothing.cdf"^;};
-Cannot create cookie file
 CURL Error: Couldn't resolve host name
 curl error details: 
  Cached data cleared from memory
@@ -2082,7 +2164,7 @@ SET DAT/FORM=CDF  "http://noserver/a/nofile.cdf"
              NetCDF: Unknown file format (OPeNDAP/netCDF Error code -51)
              Data set: ./asc.nc
 SET DAT/FORM=CDF asc.nc
-*** Running test: bn600_bug_fixes.jnl
+*** Running ferret script: bn600_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2146,7 +2228,7 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
  Cached data cleared from memory
  Cached data cleared from memory
-*** Running test: bn601_bug_fixes.jnl
+*** Running ferret script: bn601_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2197,7 +2279,7 @@ Replacing definition of axis TIME
  LISTing to file out.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_set_strides.jnl
+*** Running ferret script: bn_set_strides.jnl
  Cached data cleared from memory
  **ERROR: invalid command: it is a child axis already
 set axis/stride=2/offset=1 (AX005)
@@ -2212,11 +2294,11 @@ cancel axis/stride COADSX
            *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
  **ERROR: invalid command: unknown axis: NORMAL
 set axis/stride=2 NORMAL
-*** Running test: bn_lsl_lowpass.jnl
+*** Running ferret script: bn_lsl_lowpass.jnl
  Cached data cleared from memory
-*** Running test: bn_return_xmod_tmod.jnl
+*** Running ferret script: bn_return_xmod_tmod.jnl
  Cached data cleared from memory
-*** Running test: bn602_bug_fixes.jnl
+*** Running ferret script: bn602_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2234,9 +2316,9 @@ set axis/stride=2 NORMAL
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_modnbd.jnl
+*** Running ferret script: bn_modnbd.jnl
  Cached data cleared from memory
-*** Running test: bn_fifty_files.jnl
+*** Running ferret script: bn_fifty_files.jnl
  Cached data cleared from memory
            *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
            *** NOTE: Axis has repeated values -- micro-adjusting TIME
@@ -2263,7 +2345,7 @@ set axis/stride=2 NORMAL
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
-*** Running test: bn603_bug_fixes.jnl
+*** Running ferret script: bn603_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2271,24 +2353,26 @@ set axis/stride=2 NORMAL
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_set_var_name.jnl
+*** Running ferret script: bn_set_var_name.jnl
  Cached data cleared from memory
-*** Running test: bn_memory_symbol.jnl
+*** Running ferret script: bn_memory_symbol.jnl
  Cached data cleared from memory
  Cached data cleared from memory
  Cached data cleared from memory
  Cached data cleared from memory
  Cached data cleared from memory
-*** Running test: bn605_bug_fixes.jnl
+*** Running ferret script: bn605_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn608_bug_fixes.jnl
+*** Running ferret script: bn608_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
@@ -2298,24 +2382,22 @@ set axis/stride=2 NORMAL
  TEMPORARY data cleared from memory
  **ERROR: invalid command: "300": Number of contour levels must be between 1 and 250
 SHADE/LEV=300/I=1:100/J=1:100 i+j
-*** Running test: bn_shade_trim.jnl
+*** Running ferret script: bn_shade_trim.jnl
  Cached data cleared from memory
-*** Running test: bn_mode_nlevels.jnl
+*** Running ferret script: bn_mode_nlevels.jnl
  Cached data cleared from memory
-*** Running test: bn61_bug_fixes.jnl
+*** Running ferret script: bn61_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_test_opendap.jnl
-Cannot create cookie file
-Cannot create cookie file
+*** Running ferret script: bn_test_opendap.jnl
 CURL Error: Couldn't resolve host name
 curl error details: 
  Cached data cleared from memory
-*** Running test: bn611_bug_fixes.jnl
+*** Running ferret script: bn611_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2358,14 +2440,14 @@ Replacing definition of axis TIME
  LISTing to file a.nc
  LISTing to file b.nc
  LISTing to file b.nc
-*** Running test: bn_no_valid_on_plot.jnl
+*** Running ferret script: bn_no_valid_on_plot.jnl
  Cached data cleared from memory
  Using every   5th vector in the X direction
-*** Running test: bn_median.jnl
+*** Running ferret script: bn_median.jnl
  Cached data cleared from memory
  **ERROR: value out of legal range: Median smoother length must be odd
 plot/trans var, var[z=@med:4]
-*** Running test: bn614_bug_fixes.jnl
+*** Running ferret script: bn614_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2431,11 +2513,11 @@ LIST a_regrid[D=1,GT=b[D=2]@MOD]
  TEMPORARY data cleared from memory
  LISTing to file a.nc
  LISTing to file b.nc
-*** Running test: bn_mode_nodata_lab.jnl
+*** Running ferret script: bn_mode_nodata_lab.jnl
  Cached data cleared from memory
-*** Running test: bn_proleptic_gregorian_calendar.jnl
+*** Running ferret script: bn_proleptic_gregorian_calendar.jnl
  Cached data cleared from memory
-*** Running test: bn_string_ngd_nbd.jnl
+*** Running ferret script: bn_string_ngd_nbd.jnl
  Cached data cleared from memory
            *** NOTE: @NGD of string variable, counting null strings as missing
            *** NOTE: @NBD of string variable, counting null strings as missing
@@ -2458,21 +2540,21 @@ Replacing definition of axis TAX
            *** NOTE: @NGD of string variable, counting null strings as missing
            *** NOTE: @NBD of string variable, counting null strings as missing
            *** NOTE: @NGD of string variable, counting null strings as missing
-*** Running test: bn_cat_string.jnl
+*** Running ferret script: bn_cat_string.jnl
  Cached data cleared from memory
-*** Running test: bn_sort_strings.jnl
+*** Running ferret script: bn_sort_strings.jnl
  Cached data cleared from memory
-*** Running test: bn_samplexyt.jnl
+*** Running ferret script: bn_samplexyt.jnl
  Cached data cleared from memory
            *** NOTE: /XLIMITS and /YLIMITS are deprecated.
            *** NOTE: Use /HLIMITS and /VLIMITS instead.
-*** Running test: bn_last_go_file.jnl
+*** Running ferret script: bn_last_go_file.jnl
  Cached data cleared from memory
-*** Running test: bn_cancel_upcase_uservar.jnl
+*** Running ferret script: bn_cancel_upcase_uservar.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_cdf_keepax.jnl
+*** Running ferret script: bn_cdf_keepax.jnl
  Cached data cleared from memory
  LISTing to file test0a.cdf
  LISTing to file test0b.cdf
@@ -2668,32 +2750,32 @@ list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
  **ERROR: variable unknown or not in data set: IJKL
 show grid ijkl
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
-*** Running test: bn_keep_axisnames.jnl
+*** Running ferret script: bn_keep_axisnames.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_key_label_minmax.jnl
+*** Running ferret script: bn_key_label_minmax.jnl
  Cached data cleared from memory
-*** Running test: bn62_bug_fixes.jnl
+*** Running ferret script: bn62_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_convolve.jnl
+*** Running ferret script: bn_convolve.jnl
  Cached data cleared from memory
-*** Running test: bn_tax_tstep.jnl
+*** Running ferret script: bn_tax_tstep.jnl
  Cached data cleared from memory
  LISTing to file a.nc
 Replacing definition of axis TSEC
-*** Running test: bn_grads_z.jnl
+*** Running ferret script: bn_grads_z.jnl
  Cached data cleared from memory
 Replacing definition of axis CAXIS
            *** NOTE: grid GMY1 used by data set grads_bug_file
            *** NOTE: Redefinition may alter apparent contents of data set
-*** Running test: bn_clock_syms.jnl
+*** Running ferret script: bn_clock_syms.jnl
  Cached data cleared from memory
-*** Running test: bn63_bug_fixes.jnl
+*** Running ferret script: bn63_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2704,10 +2786,17 @@ Replacing definition of axis CAXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+           *** NOTE: Cannot cancel window when in batch mode
+           *** NOTE: Cannot create new windows when batch mode set
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+           *** NOTE: Cannot cancel window when in batch mode
+           *** NOTE: Cannot create new windows when batch mode set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
@@ -2746,13 +2835,13 @@ SET AXIS/STRIDE=12/OFFSET=-1 truemonth
 SET AXIS/STRIDE=-1/OFFSET=1 truemonth
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_axis_reversed_syms.jnl
+*** Running ferret script: bn_axis_reversed_syms.jnl
  Cached data cleared from memory
-*** Running test: bn_isdepth.jnl
+*** Running ferret script: bn_isdepth.jnl
  Cached data cleared from memory
-*** Running test: bn_var_hist_levels.jnl
+*** Running ferret script: bn_var_hist_levels.jnl
  Cached data cleared from memory
-*** Running test: bn64_bug_fixes.jnl
+*** Running ferret script: bn64_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2760,7 +2849,7 @@ SET AXIS/STRIDE=-1/OFFSET=1 truemonth
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_long_grid_names.jnl
+*** Running ferret script: bn_long_grid_names.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2771,10 +2860,10 @@ Replacing definition of grid GG123456789012345678902
 load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_xml_repl.jnl
+*** Running ferret script: bn_xml_repl.jnl
  Cached data cleared from memory
-           *** NOTE: Changing the value of attribute sst.history
-*** Running test: bn65_bug_fixes.jnl
+ LISTing to file a.nc
+*** Running ferret script: bn65_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2802,12 +2891,12 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TAX
-*** Running test: bn_txtype_dmy.jnl
+*** Running ferret script: bn_txtype_dmy.jnl
  Cached data cleared from memory
-*** Running test: bn_n_open_dsets_sym.jnl
+*** Running ferret script: bn_n_open_dsets_sym.jnl
  Cached data cleared from memory
  LISTing to file list_of_numbers.dat
-*** Running test: bn_multi_decade.jnl
+*** Running ferret script: bn_multi_decade.jnl
  Cached data cleared from memory
 Re-defining viewport V1
 Re-defining viewport V2
@@ -2817,14 +2906,15 @@ Re-defining viewport V5
 Re-defining viewport V6
 Re-defining viewport V7
 Re-defining viewport V8
-*** Running test: bn_show_xml_file.jnl
+*** Running ferret script: bn_show_xml_file.jnl
  Cached data cleared from memory
+ LISTing to file b.nc
  LISTing to file dummy.dat
-*** Running test: bn66_bug_fixes.jnl
+*** Running ferret script: bn66_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_netcdf4.jnl
+*** Running ferret script: bn_netcdf4.jnl
  Cached data cleared from memory
  Restoring default chunk cache settings
  Restoring default chunk cache settings
@@ -2854,32 +2944,33 @@ Re-defining viewport V8
  **TMAP ERR: syntax error in string
              If ChunkSize is set for any dimension of var, must set for all its dimensions
 LIST/FORMAT=CDF/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchunk=1  sst
- LISTing to file nc4_deflate4bigchunk.nc
+ LISTing to file nc4_deflate4chunktoobig.nc
  **TMAP ERR: error specifying chunk sizes
              TChunkSize 0 is larger than dimension length 3
-LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
-*** Running test: bn_scat2grid_bin.jnl
+LIST/FORMAT=CDF/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
+*** Running ferret script: bn_scat2grid_bin.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_axis_dir_symbols.jnl
+*** Running ferret script: bn_axis_dir_symbols.jnl
  Cached data cleared from memory
-*** Running test: bn663_bug_fixes.jnl
+*** Running ferret script: bn663_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_set_axis_regular.jnl
+*** Running ferret script: bn_set_axis_regular.jnl
  Cached data cleared from memory
            *** NOTE: Axis reset to be regular (evenly-spaced): MYX
            *** NOTE: Axis is already regular: MYX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
            *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
-*** Running test: bn_set_cancel_redirect.jnl
+*** Running ferret script: bn_set_cancel_redirect.jnl
  Cached data cleared from memory
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
@@ -2934,17 +3025,17 @@ show grid garbage
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
-*** Running test: bn_min_max_smoothers.jnl
+*** Running ferret script: bn_min_max_smoothers.jnl
  Cached data cleared from memory
-*** Running test: bn_vector_symbols.jnl
+*** Running ferret script: bn_vector_symbols.jnl
  Cached data cleared from memory
  Using every   8th vector in the X direction
  Using every   7th vector in the Y direction
-*** Running test: bn_variance_large.jnl
+*** Running ferret script: bn_variance_large.jnl
  Cached data cleared from memory
-*** Running test: bn_labnum_calendar.jnl
+*** Running ferret script: bn_labnum_calendar.jnl
  Cached data cleared from memory
-*** Running test: bn665_bug_fixes.jnl
+*** Running ferret script: bn665_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2952,11 +3043,13 @@ show grid garbage
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_floatstr.jnl
+*** Running ferret script: bn_floatstr.jnl
  Cached data cleared from memory
-*** Running test: bn67_bug_fixes.jnl
+*** Running ferret script: bn67_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2974,7 +3067,7 @@ Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
-set mode desperate 1.E+10
+set mode desperate   9999999999.000000
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
 set mode desperate 1234567890123456789
  PERMANENT data cleared from memory
@@ -2995,14 +3088,14 @@ Replacing definition of axis YAX_DUP_AXNAMES
  TEMPORARY data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_NaN_note.jnl
+*** Running ferret script: bn_NaN_note.jnl
  Cached data cleared from memory
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
            *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
-*** Running test: bn671_bug_fixes.jnl
+*** Running ferret script: bn671_bug_fixes.jnl
 
 Bailing out of external function "tax_year":
 	 Function not valid for modulo time axis
@@ -3027,7 +3120,7 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn68_bug_fixes.jnl
+*** Running ferret script: bn68_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3081,7 +3174,7 @@ DEFINE VARIABLE ELSE = 5
  TEMPORARY data cleared from memory
  LISTing to file a1.nc
  LISTing to file a2.nc
-*** Running test: bn_ifv.jnl
+*** Running ferret script: bn_ifv.jnl
  Cached data cleared from memory
  **ERROR: command syntax: IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
@@ -3090,7 +3183,7 @@ LIST/ORDER=X  IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
           ELSE before - is illegal
           negative constants need to be enclosed in parentheses
 DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
-*** Running test: bn_randu2_randn2.jnl
+*** Running ferret script: bn_randu2_randn2.jnl
  Cached data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
@@ -3098,7 +3191,7 @@ DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_axis_cf.jnl
+*** Running ferret script: bn_axis_cf.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
@@ -3108,15 +3201,15 @@ DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_repeated_coords.jnl
+*** Running ferret script: bn_repeated_coords.jnl
  Cached data cleared from memory
            *** NOTE: Axis has repeated values -- micro-adjusting TMIN
            *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis has repeated values -- micro-adjusting ...
-*** Running test: bn_xml_header.jnl
+*** Running ferret script: bn_xml_header.jnl
  Cached data cleared from memory
-*** Running test: bn_eof_simple.jnl
+*** Running ferret script: bn_eof_simple.jnl
 
 Bailing out of external function "eofsvd_stat":
 	There are no spatial locations having complete time series.
@@ -3134,11 +3227,11 @@ list eofsvd_stat(spacegap)
 list eofsvd_space(spacegap)
  **ERROR: error in external function
 list eofsvd_tfunc(spacegap)
-*** Running test: bn_eof_simple2.jnl
+*** Running ferret script: bn_eof_simple2.jnl
  Cached data cleared from memory
-*** Running test: bn_interpolate_6d.jnl
+*** Running ferret script: bn_interpolate_6d.jnl
  Cached data cleared from memory
-*** Running test: bn_regrid_6d.jnl
+*** Running ferret script: bn_regrid_6d.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3147,9 +3240,9 @@ Replacing definition of axis XCOARSE
 Replacing definition of axis YFINE
 Replacing definition of axis YCOARSE
 Replacing definition of grid G24
-*** Running test: bn_syntax_6d.jnl
+*** Running ferret script: bn_syntax_6d.jnl
  Cached data cleared from memory
-*** Running test: bn_expressions_6d.jnl
+*** Running ferret script: bn_expressions_6d.jnl
  Cached data cleared from memory
  **ERROR: command syntax: IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
@@ -3160,46 +3253,41 @@ LIST/order=e  IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
 DEFINE VARIABLE A = IF _m LT 5 THEN _m ELSE -9
  **ERROR: variable unknown or not in data set: A1
 load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
-*** Running test: bn_direction_fcns_6d.jnl
+*** Running ferret script: bn_direction_fcns_6d.jnl
  Cached data cleared from memory
-*** Running test: bn_regrid_transforms_6d.jnl
+*** Running ferret script: bn_regrid_transforms_6d.jnl
  Cached data cleared from memory
 Replacing definition of axis FAX4DAY
-*** Running test: bn_aggregate_e.jnl
- Cached data cleared from memory
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- **ERROR: unknown data set: dset 3 unknown or is already an aggregate dataset
-define data/agg windy = 1,2,3
-           *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
-           *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
+*** Running ferret script: bn_aggregate_e.jnl
+ Cached data cleared from memory
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+ **ERROR: unknown data set: dset 3
+DEFINE DATA/AGGREGAT/E windy = 1,2,3
+           *** NOTE: Variable "UWND" excluded from aggregate: T axis differs among members
+           *** NOTE: Variable "VWND" excluded from aggregate: T axis differs among members
+           *** NOTE: Variable "SPEH" excluded from aggregate: Not found in all member datasets
  **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
-define data/agg windy = 1,2
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
-*** Running test: bn_6d_lab_mode.jnl
+DEFINE DATA/AGGREGAT/E windy = 1,2
+           *** NOTE: Variable "SPEH" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "UIN" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "VIN" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, my_ens
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, fourfiles
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, some
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, more
+*** Running ferret script: bn_6d_lab_mode.jnl
  Cached data cleared from memory
-*** Running test: bn682_bug_fixes.jnl
+*** Running ferret script: bn682_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn683_bug_fixes.jnl
+*** Running ferret script: bn683_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3211,10 +3299,6 @@ define data/agg windy = 1,2
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **netCDF error
-             NetCDF: Unknown file format (OPeNDAP/netCDF Error code -51)
-             Data set: ./.
-SET DAT/FORM=CDF ./z1.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3225,7 +3309,7 @@ SET DAT/FORM=CDF ./z1.nc
  TEMPORARY data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_outtype.jnl
+*** Running ferret script: bn_outtype.jnl
  Cached data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3241,11 +3325,11 @@ SET DAT/FORM=CDF ./z1.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
-*** Running test: bn_ribbon_plot.jnl
+*** Running ferret script: bn_ribbon_plot.jnl
  Cached data cleared from memory
-*** Running test: bn_descr_4digit.jnl
+*** Running ferret script: bn_descr_4digit.jnl
  Cached data cleared from memory
-*** Running test: bn_axis_outtype.jnl
+*** Running ferret script: bn_axis_outtype.jnl
  Cached data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3263,16 +3347,16 @@ NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
  failure writing to CDF output file
 LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
  LISTing to file mytype.nc
-*** Running test: bn_axis_nonmonotonic.jnl
+*** Running ferret script: bn_axis_nonmonotonic.jnl
  Cached data cleared from memory
  **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index 12
 define axis/t/units=days tax = tvar
-*** Running test: bn_vec_mod.jnl
+*** Running ferret script: bn_vec_mod.jnl
  Cached data cleared from memory
  Using every   9th vector in the X direction
  Using every   9th vector in the X direction
  Using every   9th vector in the X direction
-*** Running test: bn685_bug_fixes.jnl
+*** Running ferret script: bn685_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3308,6 +3392,8 @@ NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
  data in attribute _FillValue not representable in output type NC_INT
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
@@ -3316,6 +3402,8 @@ NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: command syntax: .HELLO
@@ -3353,12 +3441,12 @@ Replacing definition of axis AXI_COARSE
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_dsg_e_x.jnl
+*** Running ferret script: bn_dsg_e_x.jnl
  Cached data cleared from memory
-*** Running test: bn_nco_append.jnl
+*** Running ferret script: bn_nco_append.jnl
  Cached data cleared from memory
  LISTing to file append_to_this.nc
-*** Running test: bn_nobounds.jnl
+*** Running ferret script: bn_nobounds.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
@@ -3367,26 +3455,30 @@ Replacing definition of axis AXI_COARSE
            *** NOTE: Using the LOWER bound specified for each axis cell
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_write_integer_att.jnl
+*** Running ferret script: bn_write_integer_att.jnl
  Cached data cleared from memory
  LISTing to file a.nc
-*** Running test: bn_descriptor_mc.jnl
+*** Running ferret script: bn_descriptor_mc.jnl
  Cached data cleared from memory
-*** Running test: bn_plot_color_only.jnl
+*** Running ferret script: bn_plot_color_only.jnl
  Cached data cleared from memory
            *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
+           *** NOTE: Cannot cancel window when in batch mode
+           *** NOTE: Cannot create new windows when batch mode set
            *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
+           *** NOTE: Cannot cancel window when in batch mode
+           *** NOTE: Cannot create new windows when batch mode set
  **ERROR: command syntax: COLOR
           /COLOR must have an argument for PLOT/OVERLAY
 plot/i=1:100/over/COLOR 0.6*sin(i/7)
  **ERROR: command syntax: COLOR
           /COLOR not valid for PLOT/LEVELS ribbon plot
 plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
-*** Running test: bn_vtree.jnl
+*** Running ferret script: bn_vtree.jnl
  Cached data cleared from memory
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+           *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3399,7 +3491,7 @@ list e
           Are you giving explicit limits when SET REGION would suffice ?
 list f
 Replacing definition of axis ZAX
-*** Running test: bn686_bug_fixes.jnl
+*** Running ferret script: bn686_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3411,6 +3503,7 @@ Replacing definition of axis ZAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+           *** NOTE: Changing the type of attribute a.ival
            *** NOTE: Changing the value of attribute a.ival
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3436,15 +3529,15 @@ SET DAT/FORM=CDF snoopy.dat
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_long_symnames.jnl
+*** Running ferret script: bn_long_symnames.jnl
  Cached data cleared from memory
-*** Running test: bn_strdim.jnl
+*** Running ferret script: bn_strdim.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_single_colorlev.jnl
+*** Running ferret script: bn_single_colorlev.jnl
  Cached data cleared from memory
-*** Running test: bn69_bug_fixes.jnl
+*** Running ferret script: bn69_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3490,16 +3583,16 @@ set var/name=temp salt
 set var/name=psi myvar
  **ERROR: invalid command: illegal new name.  Variable diff already defined
 set var/name=diff w
-*** Running test: bn_bad_axis_bounds.jnl
+*** Running ferret script: bn_bad_axis_bounds.jnl
  Cached data cleared from memory
            *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
            *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
            *** NOTE: Substituting coordinate midpoints
-*** Running test: bn_enter_exit_GO.jnl
+*** Running ferret script: bn_enter_exit_GO.jnl
  Cached data cleared from memory
-*** Running test: bn_stddev.jnl
+*** Running ferret script: bn_stddev.jnl
  Cached data cleared from memory
-*** Running test: bn_set_axis_name.jnl
+*** Running ferret script: bn_set_axis_name.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
@@ -3513,7 +3606,64 @@ set axis/name x_in_meters
 set axis/name=45 x_in_meters
  **ERROR: invalid command: illegal new name given for axis .fr
 set axis/name=.fr x_in_meters
-*** Running test: bn691_bug_fixes.jnl
+*** Running ferret script: bn_let_remote.jnl
+syntax error, unexpected WORD_STRING, expecting WORD_WORD
+context: Error { code = 500; message = "Error processing XML header file /usr/local/src/nvods/tomcat/content/las/conf/server/temp/6790FDCBF64A0E6EFAA6A20D854071E0/header.xml (No such file or directory)"^;};
+ Cached data cleared from memory
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "time_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "depth_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lat_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lon_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "time_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "depth_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lat_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lon_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "time_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "depth_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lat_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lon_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+ **ERROR: command syntax: /REMOTE variable expression may not contain [d=
+DEFINE VARIABLE/D=1/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+ **ERROR: command syntax: /REMOTE variable definition must also specify /D=
+DEFINE VARIABLE/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+ **netCDF error
+             Unable to open URL with REMOTE variable definitions:
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+ **TMAP ERR: attribute reading error
+             Unable to get varid for LET/REMOTE variable: NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+ **TMAP ERR: attribute reading error
+             Unable to get bad-value for LET/REMOTE variable: NetCDF: Attribute not found (OPeNDAP/netCDF Error code -43)
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+ **netCDF error
+             NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+list/x=300/y=15 avar
+*** Running ferret script: bn691_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3566,12 +3716,12 @@ list {5*3+1, 2+3}
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XAXIS
- **ERROR: request exceeds memory setting: 2369 Mwords were requested.
+ **ERROR: request exceeds memory setting: 4739 Mwords were requested.
 load bigvar
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis LONGTIME
- **ERROR: request exceeds memory setting: 4735 Mwords were requested.
+ **ERROR: request exceeds memory setting: 9472 Mwords were requested.
 load bigvar
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
@@ -3623,24 +3773,24 @@ shade a
 list substring("hello",1,-2)
  **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
 list substring("hello",1,-3)
-*** Running test: bn_append_dsg.jnl
+*** Running ferret script: bn_append_dsg.jnl
  Cached data cleared from memory
 rm: cannot remove `test_save_dsg.nc': No such file or directory
-*** Running test: bn_global_atts.jnl
+*** Running ferret script: bn_global_atts.jnl
  Cached data cleared from memory
  LISTing to file anew_global.nc
-*** Running test: bn_conventions_history.jnl
+*** Running ferret script: bn_conventions_history.jnl
  Cached data cleared from memory
  LISTing to file conventions_history.nc
-*** Running test: bn_center_key_labels.jnl
+*** Running ferret script: bn_center_key_labels.jnl
  Cached data cleared from memory
-*** Running test: bn_wgt_transform.jnl
+*** Running ferret script: bn_wgt_transform.jnl
  Cached data cleared from memory
-*** Running test: bn_show_outfile.jnl
+*** Running ferret script: bn_show_outfile.jnl
  Cached data cleared from memory
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+           *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3652,17 +3802,17 @@ list e
  **ERROR: illegal limits: X axis limits don't match variable def'n: A
           Are you giving explicit limits when SET REGION would suffice ?
 list f
-*** Running test: bn_date1900_array.jnl
+*** Running ferret script: bn_date1900_array.jnl
  Cached data cleared from memory
-*** Running test: bn_spawn_size.jnl
+*** Running ferret script: bn_spawn_size.jnl
  Cached data cleared from memory
-*** Running test: bn_polygon_log.jnl
+*** Running ferret script: bn_polygon_log.jnl
  Cached data cleared from memory
  **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.850
 poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
  **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
 poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
-*** Running test: bn694_bug_fixes.jnl
+*** Running ferret script: bn694_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3736,8 +3886,6 @@ frame/file=a.png
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Could not compute Std Dev. Data too large or or not within 3 std of computed mean.
-           *** NOTE: Using linear levels instead.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3756,26 +3904,26 @@ frame/file=a.png
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_permute_ascii.jnl
+*** Running ferret script: bn_permute_ascii.jnl
  Cached data cleared from memory
 Replacing definition of grid GRID3D
-*** Running test: bn_lon_lat_time_string.jnl
+*** Running ferret script: bn_lon_lat_time_string.jnl
  Cached data cleared from memory
-*** Running test: bn_save_justdim.jnl
+*** Running ferret script: bn_save_justdim.jnl
  Cached data cleared from memory
  LISTing to file a.nc
            *** NOTE: Saving E or F axis with time axis uses /RIGID in time
  LISTing to file a.nc
-*** Running test: bn_time2d.jnl
+*** Running ferret script: bn_time2d.jnl
  Cached data cleared from memory
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-*** Running test: bn_legend_labels.jnl
+*** Running ferret script: bn_legend_labels.jnl
  Cached data cleared from memory
-*** Running test: bn_DQ.jnl
+*** Running ferret script: bn_DQ.jnl
  Cached data cleared from memory
            *** NOTE: Changing the value of attribute foobar.some_text
            *** NOTE: Changing the value of attribute foobar.some_text
-*** Running test: bn695_bug_fixes.jnl
+*** Running ferret script: bn695_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3784,21 +3932,21 @@ Replacing definition of grid GRID3D
 rm: cannot remove `WestCoastCarbon_9d9c_f562_77b5_5.nc': No such file or directory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_f_tax_fcns.jnl
+*** Running ferret script: bn_f_tax_fcns.jnl
  Cached data cleared from memory
  LISTing to file a.nc
 Replacing definition of axis FSEC
            *** NOTE: grid GSI1 used by data set a
            *** NOTE: Redefinition may alter apparent contents of data set
-*** Running test: bn_fmrc.jnl
+*** Running ferret script: bn_fmrc.jnl
  Cached data cleared from memory
-*** Running test: bn_return_defined.jnl
+*** Running ferret script: bn_return_defined.jnl
  Cached data cleared from memory
-*** Running test: bn_can_var_noerr.jnl
+*** Running ferret script: bn_can_var_noerr.jnl
  Cached data cleared from memory
  **ERROR: variable unknown or not in data set: B
 cancel var b,a
-*** Running test: bn_annotate.jnl
+*** Running ferret script: bn_annotate.jnl
  Cached data cleared from memory
  **ERROR: command syntax: xpos=a2
 annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
@@ -3832,7 +3980,7 @@ def anno/nou/ypos=0 "My Lab"
 def anno/nou/xpos=0/hal=1/val=0 "My Lab"
  **ERROR: invalid command: Specify only one of /USER /NOUSER /NORM
 def anno/nou/user/xpos=0/ypos=0 "My Lab"
-*** Running test: bn_auxiliary.jnl
+*** Running ferret script: bn_auxiliary.jnl
  Cached data cleared from memory
 rm: cannot remove `layerz_test_data.txt': No such file or directory
  LISTing to file layerz_test_data.txt
@@ -3842,7 +3990,7 @@ SET VAR/layerz=depth noexist
  **ERROR: invalid command: auxiliary variable DEPTH6D has a T axis not found on variable TEMP
 LIST/PREC=7 tempz6d_unmatch
 Replacing definition of axis ZAX
-*** Running test: bn_plot_ribbon_gaploc.jnl
+*** Running ferret script: bn_plot_ribbon_gaploc.jnl
  Cached data cleared from memory
  **ERROR: command syntax: PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments
 plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
@@ -3850,17 +3998,27 @@ plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
 plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
  **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
 plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
-*** Running test: bn_time_short_axes.jnl
+*** Running ferret script: bn_time_short_axes.jnl
  Cached data cleared from memory
-*** Running test: bn_floatstr_extended.jnl
+*** Running ferret script: bn_floatstr_extended.jnl
  Cached data cleared from memory
-*** Running test: bn696_bug_fixes
+*** Running ferret script: bn696_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
            *** NOTE: Units on axis "pfull1_1" are not recognized: hpa
            *** NOTE: They will not be convertible:
-*** Running test: bn_bin_regrid
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: unknown data set: noexist
+SHOW DATA noexist
+ **ERROR: unknown data set: 2
+SHOW DATA 2
+ **ERROR: unknown data set: noexist
+SHOW DATA/ATT noexist
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+*** Running ferret script: bn_bin_regrid.jnl
  Cached data cleared from memory
 Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
@@ -3872,7 +4030,610 @@ Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
 Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
-*** Running test: bn_all_ef.jnl
+*** Running ferret script: bn697_bug_fixes.jnl
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **TMAP ERR: error in axis attributes
+             Calendar definitions on T and F axes must match
+             Data file: ./ft_cal_one.nc
+SET DAT/FORM=CDF ft_cal_mixed.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file myfile.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ Cached data cleared from memory
+ **ERROR: request exceeds memory setting: 13 Mwords were requested.
+load/l=1:5 bigvar
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ Cached data cleared from memory
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX2
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ Using every   4th vector in the Y direction
+ Using every   4th vector in the Y direction
+ Using every   4th vector in the Y direction
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis F_AX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis T_AXIS
+Replacing definition of axis F_AXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAXIS
+ LISTing to file a.nc
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+           *** NOTE: Changing the type of attribute sst.newch
+           *** NOTE: Changing the value of attribute sst.newch
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+*** Running ferret script: bn_aggregate_t.jnl
+ Cached data cleared from memory
+ LISTing to file tmp/tagg_reg_1.nc
+ LISTing to file tmp/tagg_reg_2.nc
+ LISTing to file tmp/tagg_reg_3.nc
+ LISTing to file tmp/tagg_reg_4.nc
+ LISTing to file tmp/tagg_reg_5.nc
+ LISTing to file tmp/tagg_reg_6.nc
+ LISTing to file tmp/tagg_reg_7.nc
+ LISTing to file tmp/tagg_reg_8.nc
+ LISTing to file tmp/tagg_reg_9.nc
+ LISTing to file tmp/tagg_reg_10.nc
+ LISTing to file tmp/tagg_reg_1_duplicate.nc
+ LISTing to file tmp/tagg_reg_no_T.nc
+ LISTing to file tmp/tagg_reg_2_overlarge.nc
+           *** NOTE: Not deleted: TDAY
+           *** NOTE: Axis is in use by grid (G001)
+ LISTing to file tmp/tagg_irreg_1.nc
+ LISTing to file tmp/tagg_irreg_2.nc
+ LISTing to file tmp/tagg_irreg_3.nc
+ LISTing to file tmp/tagg_irreg_4.nc
+ LISTing to file tmp/tagg_irreg_5.nc
+ LISTing to file tmp/tagg_irreg_6.nc
+ LISTing to file tmp/tagg_irreg_7.nc
+ LISTing to file tmp/tagg_irreg_8.nc
+ LISTing to file tmp/tagg_irreg_9.nc
+ LISTing to file tmp/tagg_irreg_10.nc
+Replacing definition of axis TDAY_IR
+ LISTing to file tmp/tagg_irreg_2_reg.nc
+           *** NOTE: Not deleted: TDAY_IR
+           *** NOTE: Axis is in use by grid (G001)
+ LISTing to file tmp/tagg_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_2.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_3.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_4.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_5.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_2.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_3.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_4.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_5.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_6.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_7.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_8.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_9.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_10.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_3.nc
+ LISTing to file tmp/tagg_disjoint_T0varying_4_wrong.nc
+           *** NOTE: Not deleted: TDAY_WRONG
+           *** NOTE: Axis is in use by grid (G001)
+ LISTing to file tmp/tagg_single_1.nc
+ LISTing to file tmp/tagg_single_2.nc
+ LISTing to file tmp/tagg_single_3.nc
+ LISTing to file tmp/tagg_single_4.nc
+ LISTing to file tmp/tagg_single_5.nc
+ LISTing to file tmp/tagg_single_6.nc
+           *** NOTE: Not deleted: tday
+           *** NOTE: Axis is in use by grid (G001)
+ **ERROR: invalid command: given aggregation dataset name already in use: myagg2
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc, tmp/tagg_reg_2.nc
+ **TMAP ERR: non-existent or not on line
+             tmp/tagg_no_exist.nc
+define data/agg/t myaggbad = tmp/tagg_no_exist.nc, tmp/tagg_reg_2.nc
+ **TMAP ERR: non-existent or not on line
+             tmp/tagg_no_exist.nc
+define data/agg/t myaggbad = tmp/tagg_reg_1.nc, tmp/tagg_no_exist.nc
+ **ERROR: improper grid or axis definition: first file of aggregation has no time axis tmp/tagg_reg_no_T.nc
+DEFINE DATA/AGGREGAT/T myTindepagg = tmp/tagg_reg_no_T.nc
+ **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_reg_3.nc
+define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
+ **TMAP ERR: Unknown variable code
+             in file tmp/tagg_disjoint_T0varying_4_wrong.nc time axis variable is missing: TDAY_TVAR
+define data/agg/t myagg5_bad = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4_wrong.nc,tmp/tagg_disjoint_T0varying_5.nc
+ **ERROR: unknown command: garbage
+garbage command syntax
+ **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_single_1.nc
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+ **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_single_5.nc
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc, tmp/tagg_single_5.nc
+*** Running ferret script: bn_unquoted_args.jnl
+ Cached data cleared from memory
+ LISTing to file tmp/test1.nc
+ LISTing to file tmp/test2.nc
+ LISTing to file tmp/test3.nc
+ **ERROR: unknown command qualifier: erroneous
+set data/erroneous tmp/test1.nc
+ **ERROR: unknown command qualifier: erroneous
+set data /erroneous tmp/test1.nc
+ **TMAP ERR: non-existent or not on line
+             /erroneous(.nc ,.cdf,.nc)
+set data /erroneous, tmp/test1.nc
+ **ERROR: unknown command qualifier: garbage
+go/garbage tmp/testMe
+ **ERROR: unknown command qualifier: garbage
+go/garbage "tmp/testMe"
+ **ERROR: unknown command qualifier: garbage
+go/garbage /home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl
+ **ERROR: unknown command qualifier: garbage
+go/garbage "/home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl"
+*** Running ferret script: bn_long_lists.jnl
+ Cached data cleared from memory
+ **ERROR: command syntax: command line too long -- exceeds 2048
+DEFINE VARIABLE a={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7 [...]
+ **ERROR: variable unknown or not in data set: A
+load a
+ **ERROR: command syntax: command line too long -- exceeds 2048
+"/arch
+ **ERROR: command syntax: "/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf...
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0022.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0023.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr [...]
+*** Running ferret script: bn_show_uvar_grid.jnl
+ Cached data cleared from memory
+*** Running ferret script: bn_aggregate_f.jnl
+ Cached data cleared from memory
+ LISTing to file tmp/fcst_1.nc
+ LISTing to file tmp/fcst_2.nc
+ LISTing to file tmp/fcst_3.nc
+ LISTing to file tmp/fcst_4.nc
+ LISTing to file tmp/fcst_5.nc
+ LISTing to file tmp/fcst_6.nc
+ LISTing to file tmp/fcst_7.nc
+ LISTing to file tmp/fcst_8.nc
+ LISTing to file tmp/fcst_9.nc
+ LISTing to file tmp/fcst_10.nc
+ LISTing to file tmp/fcst_11.nc
+ LISTing to file tmp/long_fcst_1.nc
+ LISTing to file tmp/long_fcst_6.nc
+ LISTing to file tmp/one_var_fcst_1.nc
+ LISTing to file tmp/one_var_fcst_6.nc
+ LISTing to file tmp/consecutive_month_fcst.nc
+Replacing definition of axis TRUEMONTH
+ LISTing to file tmp/irregular_start_time_fcst.nc
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, bn_aggregate_f.jnl
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, my_fmrc
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Ambiguous coordinates on T axis: FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC_LETD_1]
+ **ERROR: error defining aggregate dataset: some files have duplicate forecast start times
+DEFINE DATA/AGGREGAT/F my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc,tmp/fcst_2.nc,tmp/fcst_3.nc
+ **TMAP ERR: non-existent or not on line
+             tmp/no_exist.nc
+DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/no_exist.nc")
+ **ERROR: error defining aggregate dataset: forecast start times are irregular or too gappy
+DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/consecutive_month_fcst.nc")
+ **ERROR: error defining aggregate dataset: forecast start times are irregular or too gappy
+DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/irregular_start_time_fcst.nc")
+*** Running ferret script: bn_aggregate_tef.jnl
+ Cached data cleared from memory
+ LISTing to file tmp/f01_e1_t1.nc
+ LISTing to file tmp/f01_e1_t2.nc
+ LISTing to file tmp/f01_e1_t3.nc
+ LISTing to file tmp/f01_e2_t1.nc
+ LISTing to file tmp/f01_e2_t2.nc
+ LISTing to file tmp/f01_e2_t3.nc
+ LISTing to file tmp/f01_e3_t1.nc
+ LISTing to file tmp/f01_e3_t2.nc
+ LISTing to file tmp/f01_e3_t3.nc
+ LISTing to file tmp/f01_e4_t1.nc
+ LISTing to file tmp/f01_e4_t2.nc
+ LISTing to file tmp/f01_e4_t3.nc
+ LISTing to file tmp/f01_e5_t1.nc
+ LISTing to file tmp/f01_e5_t2.nc
+ LISTing to file tmp/f01_e5_t3.nc
+ LISTing to file tmp/f02_e1_t1.nc
+ LISTing to file tmp/f02_e1_t2.nc
+ LISTing to file tmp/f02_e1_t3.nc
+ LISTing to file tmp/f02_e2_t1.nc
+ LISTing to file tmp/f02_e2_t2.nc
+ LISTing to file tmp/f02_e2_t3.nc
+ LISTing to file tmp/f02_e3_t1.nc
+ LISTing to file tmp/f02_e3_t2.nc
+ LISTing to file tmp/f02_e3_t3.nc
+ LISTing to file tmp/f02_e4_t1.nc
+ LISTing to file tmp/f02_e4_t2.nc
+ LISTing to file tmp/f02_e4_t3.nc
+ LISTing to file tmp/f02_e5_t1.nc
+ LISTing to file tmp/f02_e5_t2.nc
+ LISTing to file tmp/f02_e5_t3.nc
+ LISTing to file tmp/f03_e1_t1.nc
+ LISTing to file tmp/f03_e1_t2.nc
+ LISTing to file tmp/f03_e1_t3.nc
+ LISTing to file tmp/f03_e2_t1.nc
+ LISTing to file tmp/f03_e2_t2.nc
+ LISTing to file tmp/f03_e2_t3.nc
+ LISTing to file tmp/f03_e3_t1.nc
+ LISTing to file tmp/f03_e3_t2.nc
+ LISTing to file tmp/f03_e3_t3.nc
+ LISTing to file tmp/f03_e4_t1.nc
+ LISTing to file tmp/f03_e4_t2.nc
+ LISTing to file tmp/f03_e4_t3.nc
+ LISTing to file tmp/f03_e5_t1.nc
+ LISTing to file tmp/f03_e5_t2.nc
+ LISTing to file tmp/f03_e5_t3.nc
+ LISTing to file tmp/f04_e1_t1.nc
+ LISTing to file tmp/f04_e1_t2.nc
+ LISTing to file tmp/f04_e1_t3.nc
+ LISTing to file tmp/f04_e2_t1.nc
+ LISTing to file tmp/f04_e2_t2.nc
+ LISTing to file tmp/f04_e2_t3.nc
+ LISTing to file tmp/f04_e3_t1.nc
+ LISTing to file tmp/f04_e3_t2.nc
+ LISTing to file tmp/f04_e3_t3.nc
+ LISTing to file tmp/f04_e4_t1.nc
+ LISTing to file tmp/f04_e4_t2.nc
+ LISTing to file tmp/f04_e4_t3.nc
+ LISTing to file tmp/f04_e5_t1.nc
+ LISTing to file tmp/f04_e5_t2.nc
+ LISTing to file tmp/f04_e5_t3.nc
+ LISTing to file tmp/f05_e1_t1.nc
+ LISTing to file tmp/f05_e1_t2.nc
+ LISTing to file tmp/f05_e1_t3.nc
+ LISTing to file tmp/f05_e2_t1.nc
+ LISTing to file tmp/f05_e2_t2.nc
+ LISTing to file tmp/f05_e2_t3.nc
+ LISTing to file tmp/f05_e3_t1.nc
+ LISTing to file tmp/f05_e3_t2.nc
+ LISTing to file tmp/f05_e3_t3.nc
+ LISTing to file tmp/f05_e4_t1.nc
+ LISTing to file tmp/f05_e4_t2.nc
+ LISTing to file tmp/f05_e4_t3.nc
+ LISTing to file tmp/f05_e5_t1.nc
+ LISTing to file tmp/f05_e5_t2.nc
+ LISTing to file tmp/f05_e5_t3.nc
+ LISTing to file tmp/f06_e1_t1.nc
+ LISTing to file tmp/f06_e1_t2.nc
+ LISTing to file tmp/f06_e1_t3.nc
+ LISTing to file tmp/f06_e2_t1.nc
+ LISTing to file tmp/f06_e2_t2.nc
+ LISTing to file tmp/f06_e2_t3.nc
+ LISTing to file tmp/f06_e3_t1.nc
+ LISTing to file tmp/f06_e3_t2.nc
+ LISTing to file tmp/f06_e3_t3.nc
+ LISTing to file tmp/f06_e4_t1.nc
+ LISTing to file tmp/f06_e4_t2.nc
+ LISTing to file tmp/f06_e4_t3.nc
+ LISTing to file tmp/f06_e5_t1.nc
+ LISTing to file tmp/f06_e5_t2.nc
+ LISTing to file tmp/f06_e5_t3.nc
+ LISTing to file tmp/f07_e1_t1.nc
+ LISTing to file tmp/f07_e1_t2.nc
+ LISTing to file tmp/f07_e1_t3.nc
+ LISTing to file tmp/f07_e2_t1.nc
+ LISTing to file tmp/f07_e2_t2.nc
+ LISTing to file tmp/f07_e2_t3.nc
+ LISTing to file tmp/f07_e3_t1.nc
+ LISTing to file tmp/f07_e3_t2.nc
+ LISTing to file tmp/f07_e3_t3.nc
+ LISTing to file tmp/f07_e4_t1.nc
+ LISTing to file tmp/f07_e4_t2.nc
+ LISTing to file tmp/f07_e4_t3.nc
+ LISTing to file tmp/f07_e5_t1.nc
+ LISTing to file tmp/f07_e5_t2.nc
+ LISTing to file tmp/f07_e5_t3.nc
+ LISTing to file tmp/f08_e1_t1.nc
+ LISTing to file tmp/f08_e1_t2.nc
+ LISTing to file tmp/f08_e1_t3.nc
+ LISTing to file tmp/f08_e2_t1.nc
+ LISTing to file tmp/f08_e2_t2.nc
+ LISTing to file tmp/f08_e2_t3.nc
+ LISTing to file tmp/f08_e3_t1.nc
+ LISTing to file tmp/f08_e3_t2.nc
+ LISTing to file tmp/f08_e3_t3.nc
+ LISTing to file tmp/f08_e4_t1.nc
+ LISTing to file tmp/f08_e4_t2.nc
+ LISTing to file tmp/f08_e4_t3.nc
+ LISTing to file tmp/f08_e5_t1.nc
+ LISTing to file tmp/f08_e5_t2.nc
+ LISTing to file tmp/f08_e5_t3.nc
+ LISTing to file tmp/f09_e1_t1.nc
+ LISTing to file tmp/f09_e1_t2.nc
+ LISTing to file tmp/f09_e1_t3.nc
+ LISTing to file tmp/f09_e2_t1.nc
+ LISTing to file tmp/f09_e2_t2.nc
+ LISTing to file tmp/f09_e2_t3.nc
+ LISTing to file tmp/f09_e3_t1.nc
+ LISTing to file tmp/f09_e3_t2.nc
+ LISTing to file tmp/f09_e3_t3.nc
+ LISTing to file tmp/f09_e4_t1.nc
+ LISTing to file tmp/f09_e4_t2.nc
+ LISTing to file tmp/f09_e4_t3.nc
+ LISTing to file tmp/f09_e5_t1.nc
+ LISTing to file tmp/f09_e5_t2.nc
+ LISTing to file tmp/f09_e5_t3.nc
+ LISTing to file tmp/f10_e1_t1.nc
+ LISTing to file tmp/f10_e1_t2.nc
+ LISTing to file tmp/f10_e1_t3.nc
+ LISTing to file tmp/f10_e2_t1.nc
+ LISTing to file tmp/f10_e2_t2.nc
+ LISTing to file tmp/f10_e2_t3.nc
+ LISTing to file tmp/f10_e3_t1.nc
+ LISTing to file tmp/f10_e3_t2.nc
+ LISTing to file tmp/f10_e3_t3.nc
+ LISTing to file tmp/f10_e4_t1.nc
+ LISTing to file tmp/f10_e4_t2.nc
+ LISTing to file tmp/f10_e4_t3.nc
+ LISTing to file tmp/f10_e5_t1.nc
+ LISTing to file tmp/f10_e5_t2.nc
+ LISTing to file tmp/f10_e5_t3.nc
+ LISTing to file tmp/f11_e1_t1.nc
+ LISTing to file tmp/f11_e1_t2.nc
+ LISTing to file tmp/f11_e1_t3.nc
+ LISTing to file tmp/f11_e2_t1.nc
+ LISTing to file tmp/f11_e2_t2.nc
+ LISTing to file tmp/f11_e2_t3.nc
+ LISTing to file tmp/f11_e3_t1.nc
+ LISTing to file tmp/f11_e3_t2.nc
+ LISTing to file tmp/f11_e3_t3.nc
+ LISTing to file tmp/f11_e4_t1.nc
+ LISTing to file tmp/f11_e4_t2.nc
+ LISTing to file tmp/f11_e4_t3.nc
+ LISTing to file tmp/f11_e5_t1.nc
+ LISTing to file tmp/f11_e5_t2.nc
+ LISTing to file tmp/f11_e5_t3.nc
+ LISTing to file tmp/f04_e3_t1_1v.nc
+ LISTing to file tmp/f04_e3_t2_1v.nc
+ LISTing to file tmp/f04_e3_t3_1v.nc
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+ **ERROR: error defining aggregate dataset: grid definition of FCST_2 has changed on axis X of agg member 3
+list/x=150E/y=15n/L=10 fcst_2
+ **ERROR: error defining aggregate dataset: grid definition of FCST_2 has changed on axis T of agg member 3
+list/x=150E/y=15n/L=10 fcst_2
+ **ERROR: error defining aggregate dataset: grid definition of FCST_2 has changed on axis X of agg member 3
+list/x=150E/y=15n/L=10 fcst_2
+           *** NOTE: Variable "FCST" excluded from aggregate: E axis differs among members
+           *** NOTE: Variable "FCST_2" excluded from aggregate: E axis differs among members
+ **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
+DEFINE DATA/AGGREGAT/F tef_short = te_f01, te_f02_short, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+           *** NOTE: Variable "FCST" excluded from aggregate: F axis differs among members
+           *** NOTE: Variable "TF_TIMES" excluded from aggregate: F axis differs among members
+           *** NOTE: Variable "FCST_2" excluded from aggregate: F axis differs among members
+ **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
+DEFINE DATA/AGGREGAT/E tfe_short = tf_e1, tf_e2_short, tf_e3, tf_e4, tf_e5
+           *** NOTE: Variable "FCST" excluded from aggregate: Already has E axis
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Already has E axis
+           *** NOTE: Variable "REALIZATION" excluded from aggregate: Already has E axis
+ **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
+DEFINE DATA/AGGREGAT/E bad_ens = te_f01, te_f03, te_f04
+ **ERROR: error defining aggregate dataset: some files have duplicate forecast start times
+DEFINE DATA/AGGREGAT/F bad_fmrc = tf_e1, tf_e3, tf_e4
+*** Running ferret script: bn_dataset_qualifier.jnl
+ Cached data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+*** Running ferret script: bn_speedtest.jnl
+ Cached data cleared from memory
+*** Running ferret script: bn_show_noupcase.jnl
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+SHO VAR/XML
+SHO VAR/XML
+*** Running ferret script: bn_letd_attributes.jnl
+ Cached data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
+*** Running ferret script: bn_list_clim_axes.jnl
+ Cached data cleared from memory
+*** Running ferret script: bn_climatology_attr.jnl
+ Cached data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
+Replacing definition of axis TAX
+ LISTing to file a.nc
+ LISTing to file a.nc
+Replacing definition of axis TAX
+ LISTing to file a.nc
+*** Running ferret script: bn_plot_along.jnl
+ Cached data cleared from memory
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+*** Running ferret script: bn_show_commands.jnl
+ Cached data cleared from memory
+*** Running ferret script: bn_plot_decimate.jnl
+ Cached data cleared from memory
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+*** Running ferret script: bn_auto_tprec.jnl
+ Cached data cleared from memory
+Replacing definition of axis TAX
+Replacing definition of axis TAX
+Replacing definition of axis TAX
+*** Running ferret script: bn_coordvars_atts.jnl
+ Cached data cleared from memory
+*** Running ferret script: bn_gif.jnl
+ Cached data cleared from memory
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
+plot/i=1:10/j=1:20/nolabel i+j
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i,i+j"
+plot/i=1:10/j=1:20/nolabel i,i+j
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j,i"
+plot/i=1:10/j=1:20/nolabel i+j,i
+ **ERROR: dimensions improperly specified: differing axes:
+          first line is on Y axis
+          line 2 is on X axis
+plot/i=1:10/j=1:20/nolabel j,i
+ **ERROR: dimensions improperly specified: unequal line lengths:
+          First expression has 20 points.
+          Expression 2 has 10 points:
+          "plot/i=1:10/j=1:20/vs/line/nolabel j,i"
+plot/i=1:10/j=1:20/vs/line/nolabel j,i
+ **ERROR: dimensions improperly specified: must be a 2D region
+          contour/i=1:10/j=1:20/nolabel i
+contour/i=1:10/j=1:20/nolabel i
+ **ERROR: invalid command: can only CONTOUR  single fields
+          Use /OVERLAY for multiple variables
+contour/i=1:10/j=1:20/nolabel i/j,j/i
+ **ERROR: invalid command: VECTOR requires paired components
+vector/i=1:10/j=1:20/nolabel i/j
+ **ERROR: invalid command: VECTOR requires paired components
+vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
+Re-defining viewport LM6
+Re-defining viewport UM6
+ Using every   2th vector in the X direction
+ Using every   2th vector in the Y direction
+Re-defining viewport LM6
+ Using every   2th vector in the X direction
+ Using every   2th vector in the Y direction
+ Using every   2th vector in the X direction
+ Using every   2th vector in the Y direction
+Re-defining viewport UM6
+ Using every   2th vector in the X direction
+ Using every   2th vector in the Y direction
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Re-defining viewport UL6
+Re-defining viewport UM6
+Re-defining viewport UR6
+Re-defining viewport LL6
+Re-defining viewport LR6
+Replacing definition of axis TDAYS
+ Using every   4th vector in the X direction
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+*** Running ferret script: bn_ps.jnl
+ Cached data cleared from memory
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
+plot/i=1:10/j=1:20/nolabel i+j
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i,i+j"
+plot/i=1:10/j=1:20/nolabel i,i+j
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j,i"
+plot/i=1:10/j=1:20/nolabel i+j,i
+ **ERROR: dimensions improperly specified: differing axes:
+          first line is on Y axis
+          line 2 is on X axis
+plot/i=1:10/j=1:20/nolabel j,i
+ **ERROR: dimensions improperly specified: unequal line lengths:
+          First expression has 20 points.
+          Expression 2 has 10 points:
+          "plot/i=1:10/j=1:20/vs/line/nolabel j,i"
+plot/i=1:10/j=1:20/vs/line/nolabel j,i
+ **ERROR: dimensions improperly specified: must be a 2D region
+          contour/i=1:10/j=1:20/nolabel i
+contour/i=1:10/j=1:20/nolabel i
+ **ERROR: invalid command: can only CONTOUR  single fields
+          Use /OVERLAY for multiple variables
+contour/i=1:10/j=1:20/nolabel i/j,j/i
+ **ERROR: invalid command: VECTOR requires paired components
+vector/i=1:10/j=1:20/nolabel i/j
+ **ERROR: invalid command: VECTOR requires paired components
+vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
+Re-defining viewport LM6
+Re-defining viewport UM6
+ **ERROR: invalid command: illegal format type - must be "GIF"
+          frame/file=bnplot.ps
+frame/file=bnplot.ps
+*** Running ferret script: bn_all_ef.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3889,6 +4650,8 @@ LOAD/TEMPORARY vflag
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_startupfile.jnl
+*** Running ferret script: bn_startupfile.jnl
  Cached data cleared from memory
-Ended at Fri Nov  6 15:55:16 PST 2015
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+           *** NOTE: in GIF mode: ignoring SET MODE METAFILE
+Ended at Fri Jun 17 15:04:48 PDT 2016
diff --git a/bench/test_results/ferret_run_tests_log b/bench/test_results/ferret_run_tests_log
index 119d3ab..0c92cef 100644
--- a/bench/test_results/ferret_run_tests_log
+++ b/bench/test_results/ferret_run_tests_log
@@ -1,8 +1,22 @@
 Using FERRET /home/flat/ksmith/Ferret/bin/ferret
-lrwxrwxrwx. 1 ksmith oerdnewp 13 Nov  6 15:35 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v6.951
+lrwxrwxrwx. 1 ksmith oerdnewp 11 Jun 17 15:03 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v7.0
 Using external functions from /home/flat/ksmith/Ferret/ext_func/libs
 Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for debug Ferret on RHEL6-64
+Note: RUN_TESTS.sh test results for Ferret
+****** Restricting Ferret paths to bench directory ******
+FER_DAT=.
+FER_DATA=.
+FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/flat/ksmith/Datasets
+FER_DESCR=.
+FER_DIR=.
+FER_DSETS=.
+FER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/Ferret/ext_func/libs
+FER_FONTS=/home/flat/ksmith/Ferret/ppl/fonts
+FER_GO=. /home/flat/ksmith/Ferret/go /home/flat/ksmith/Ferret/examples /home/flat/ksmith/Ferret/contrib
+FER_GRIDS=.
+FER_LIBS=/home/flat/ksmith/Ferret/lib
+FER_PALETTE=. /home/flat/ksmith/Ferret/ppl
+FER_WEB_BROWSER=firefox
 Benchmark scripts that will be run:
    bn_syntax.jnl
    bn_dollar.jnl
@@ -37,6 +51,7 @@ Benchmark scripts that will be run:
    bn_odd_variable_name.jnl
    bn_test_stream.jnl
    bn_define_axes.jnl
+   bn_pattern.jnl
    bn_polygon.jnl
    bn500_bug_fixes.jnl
    bn_sample.jnl
@@ -216,6 +231,7 @@ Benchmark scripts that will be run:
    bn_enter_exit_GO.jnl
    bn_stddev.jnl
    bn_set_axis_name.jnl
+   bn_let_remote.jnl
    bn691_bug_fixes.jnl
    bn_append_dsg.jnl
    bn_global_atts.jnl
@@ -243,26 +259,32 @@ Benchmark scripts that will be run:
    bn_plot_ribbon_gaploc.jnl
    bn_time_short_axes.jnl
    bn_floatstr_extended.jnl
-   bn696_bug_fixes
-   bn_bin_regrid
+   bn696_bug_fixes.jnl
+   bn_bin_regrid.jnl
+   bn697_bug_fixes.jnl
+   bn_aggregate_t.jnl
+   bn_unquoted_args.jnl
+   bn_long_lists.jnl
+   bn_show_uvar_grid.jnl
+   bn_aggregate_f.jnl
+   bn_aggregate_tef.jnl
+   bn_dataset_qualifier.jnl
+   bn_speedtest.jnl
+   bn_show_noupcase.jnl
+   bn_letd_attributes.jnl
+   bn_list_clim_axes.jnl
+   bn_climatology_attr.jnl
+   bn_plot_along.jnl
+   bn_show_commands.jnl
+   bn_plot_decimate.jnl
+   bn_auto_tprec.jnl
+   bn_coordvars_atts.jnl
+   bn_gif.jnl
+   bn_ps.jnl
    bn_all_ef.jnl
    bn_startupfile.jnl
-****** Restricting Ferret paths to bench directory ******
-FER_DAT=.
-FER_DATA=.
-FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/flat/ksmith/Datasets
-FER_DESCR=.
-FER_DIR=.
-FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/Ferret/ext_func/libs
-FER_FONTS=/home/flat/ksmith/Ferret/ppl/fonts
-FER_GO=. /home/flat/ksmith/Ferret/go /home/flat/ksmith/Ferret/examples /home/flat/ksmith/Ferret/contrib
-FER_GRIDS=.
-FER_LIBS=/home/flat/ksmith/Ferret/lib
-FER_PALETTE=. /home/flat/ksmith/Ferret/ppl
-FER_WEB_BROWSER=firefox
-Beginning at Fri Nov  6 15:53:35 PST 2015
-*** Running test: bn_syntax.jnl
+Beginning at Fri Jun 17 15:03:50 PDT 2016
+*** Running ferret script: bn_syntax.jnl
 ! bn401_syntax.JNL
 ! - test syntax interpretation of Program FERRET
 ! - major changes for FERRET ver 2.00 5/90
@@ -274,6 +296,9 @@ Beginning at Fri Nov  6 15:53:35 PST 2015
 ! for V4.20 added blanks surrounding colons
 !	and tests of "escapes" using back slashes
 ! for V531 test continuation lines and long input lines
+! for v698 interpretation of unknown qualifiers changed -- e.g. say /notaqual
+! V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables,
+! pre-defined axes and grids.
  
 ! SET - SHOW - CANCEL DATA
 USE gtbc011
@@ -567,14 +592,14 @@ SHOW MODES
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
       DESPERATE     CANCELLED      2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      metafile.plt
+      METAFILE      CANCELLED      .gif
       PPLLIST       CANCELLED      ppllist.out
       GUI           CANCELLED
       LOGO          CANCELLED
@@ -602,14 +627,14 @@ SHOW MODES
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
       DESPERATE     CANCELLED      2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      metafile.plt
+      METAFILE      CANCELLED      .gif
       PPLLIST       CANCELLED      ppllist.out
       GUI           CANCELLED
       LOGO          CANCELLED
@@ -637,14 +662,14 @@ SHOW MODES
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
       DESPERATE     CANCELLED      2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      metafile.plt
+      METAFILE      CANCELLED      .gif
       PPLLIST       CANCELLED      ppllist.out
       GUI           CANCELLED
       LOGO          CANCELLED
@@ -680,7 +705,7 @@ ppl list plot
          WIDTH=   10.20  HEIGHT=    8.80  TKTYPE=    0  BAUD=  110
          WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
          PLOT MODE=   A
-         PLOT FILE= metafile.plt                                                                                                                                                                                                                                                                                                                                                                                                                                                                             [...]
+         PLOT FILE= .gif                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     [...]
 set mode ppllist:ppllist.out
 show mode ppllist
       MODE            STATE        ARGUMENT
@@ -692,7 +717,7 @@ ppl list plot
          WIDTH=   10.20  HEIGHT=    8.80  TKTYPE=    0  BAUD=  110
          WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
          PLOT MODE=   A
-         PLOT FILE= metafile.plt                                                                                                                                                                                                                                                                                                                                                                                                                                                                             [...]
+         PLOT FILE= .gif                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     [...]
 cancel mode journal
 show mode journal
       MODE            STATE        ARGUMENT
@@ -701,47 +726,47 @@ show mode journal
 ! new 1/94  (syntax check also applies to modes journal and ppllist)
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      metafile.plt
+      METAFILE      CANCELLED      .gif
 set mode metafile newmetafile1.plt
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE         SET         newmetafile1.plt
+      METAFILE      CANCELLED      .gif
 set mode metafile:newmetafile2.plt
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE         SET         newmetafile2.plt
+      METAFILE      CANCELLED      .gif
 set mode metafile: newmetafile3.plt
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE         SET         newmetafile3.plt
+      METAFILE      CANCELLED      .gif
 set mode metafile: "newmetafile4.plt"
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE         SET         newmetafile4.plt
+      METAFILE      CANCELLED      .gif
 set mode metafile: "./newmetafile5.plt"
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE         SET         ./newmetafile5.plt
+      METAFILE      CANCELLED      .gif
 set mode metafile: ./newmetafile6.plt
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE         SET         ./newmetafile6.plt
+      METAFILE      CANCELLED      .gif
 set mode metafile newmetafile7.plt
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE         SET         newmetafile7.plt
+      METAFILE      CANCELLED      .gif
 set mode metafile "newmetafile8.plt"
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE         SET         newmetafile8.plt
+      METAFILE      CANCELLED      .gif
 set mode metafile "./newmetafile9.plt"
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE         SET         ./newmetafile9.plt
+      METAFILE      CANCELLED      .gif
 set mode metafile ./newmetafile10.plt
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE         SET         ./newmetafile10.plt
+      METAFILE      CANCELLED      .gif
 set mode metafile metafile.plt
  
 ! SET - SHOW - CANCEL EXPRESSION
@@ -780,8 +805,8 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid XABSTRACT
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -805,11 +830,11 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid PS3DT2
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
 SET GRID/SAVE
@@ -818,20 +843,20 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid PS3DT2
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
 SHOW GRID/X=180:165W SALT
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
  
@@ -858,83 +883,6 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  
 ! SHOW VARIABLES
-SHOW VARIABLES/DIAGNOSTIC	! alphabetical list
-Diagnostic variables:
-name         title
-AIR       AIR TEMPERATURE
-CAIR      CLIMATOLOGICAL AIR TEMPERATURE
-CMSK      CONVECTIVE ADJUSTMENT MASK
-DENS      (DENSITY-1)*1000
-DPDX      d/dX( BAROCLINIC PRESSURE )
-DPDY      d/dY( BAROCLINIC PRESSURE )
-DTDT      d/dt(TEMPERATURE)
-DUDT      d/dt(U)
-DVDT      d/dt(V)
-DWDT      d/dt(W)
-FUW       ZONAL ADVECTIVE COEFFICIENT, FUW
-FVN       MERIDIONAL ADVECTIVE COEFFICIENT, FVN
-PCDZ      VERTICAL MOMENTUM DIFFUSION COEFFICIENT
-QAD       TOTAL HEAT ADVECTION
-QADX      ZONAL HEAT ADVECTION
-QADY      MERIDIONAL HEAT ADVECTION
-QADZ      VERTICAL HEAT ADVECTION
-QCDZ      VERTICAL HEAT DIFFUSION COEFFICIENT
-QDF       TOTAL HEAT DIFFUSION
-QDFH      HORIZONTAL HEAT DIFFUSION
-QDFZ      VERTICAL HEAT DIFFUSION
-QEVA      EVAPORATIVE HEAT
-QFLX      SURFACE HEAT FLUX
-QRAD      RADIATIVE HEAT
-QSEN      SENSIBLE HEAT
-RHO       NORMALIZED DENSITY
-RHO0      DENSITY REFERENCED TO SURFACE
-SALI      SALINITY
-TAU       MAGNITUDE OF WIND STRESS
-UAD       TOTAL ADVECTION OF U
-UADX      ZONAL ADVECTION OF U
-UADY      MERIDIONAL ADVECTION OF U
-UADZ      VERTICAL ADVECTION OF U
-UAVZ      VERTICALLY AVERAGED ZONAL VELOCITY
-UBP       U DUE TO TOTAL PRESSURE
-UBPI      U DUE TO BAROCLINIC PRESSURE EFFECTS
-UBPS      U DUE TO SURFACE PRESSURE EFFECTS
-UBWI      U DUE TO WIND STRESS EFFECTS
-UCOE      U DUE TO EXPLICIT CORIOLIS CALCULATION
-UCOI      U DUE TO IMPLICIT CORIOLIS CORRECTION
-UDF       TOTAL DIFFUSION OF U
-UDFH      HORIZONTAL DIFFUSION OF U
-UDFZ      VERTICAL DIFFUSION OF U
-VAD       TOTAL ADVECTION OF V
-VADX      ZONAL ADVECTION OF V
-VADY      MERIDIONAL ADVECTION OF V
-VADZ      VERTICAL ADVECTION OF V
-VAVZ      VERTICALLY AVERAGED MERIDIONAL VELOCITY
-VBP       V DUE TO TOTAL PRESSURE
-VBPI      V DUE TO BAROCLINIC PRESSURE EFFECTS
-VBPS      V DUE TO SURFACE PRESSURE EFFECTS
-VBWI      V DUE TO WIND STRESS EFFECTS
-VCOE      V DUE TO EXPLICIT CORIOLIS CALCULATION
-VCOI      V DUE TO IMPLICIT CORIOLIS CORRECTION
-VDF       TOTAL DIFFUSION OF V
-VDFH      HORIZONTAL DIFFUSION OF V
-VDFZ      VERTICAL DIFFUSION OF V
-W_T       VERTICAL VELOCITY COMPUTED ON TS GRID
-W_U       VERTICAL VELOCITY COMPUTED ON UV GRID
-SHOW VARIABLES/DIAGNOSTIC  Q
-Diagnostic variables:
-name         title
-QAD       TOTAL HEAT ADVECTION
-QADX      ZONAL HEAT ADVECTION
-QADY      MERIDIONAL HEAT ADVECTION
-QADZ      VERTICAL HEAT ADVECTION
-QCDZ      VERTICAL HEAT DIFFUSION COEFFICIENT
-QDF       TOTAL HEAT DIFFUSION
-QDFH      HORIZONTAL HEAT DIFFUSION
-QDFZ      VERTICAL HEAT DIFFUSION
-QEVA      EVAPORATIVE HEAT
-QFLX      SURFACE HEAT FLUX
-QRAD      RADIATIVE HEAT
-QSEN      SENSIBLE HEAT
 LET A=i
 SHOW VARIABLES
  Created by DEFINE VARIABLE:
@@ -1184,10 +1132,14 @@ list/nohead/i=1 : 3 i
 ! test escapes using back slashes (bn420 - 11/95)
 ! (moved to bn420_grave)
  
-say \/help	! "/" should pass through
-/help
+say \/notaqualifier	! "/" should pass through
+/notaqualifier
+! starting 12/2015 a space preceding a unrecognized qualifier turns that
+! qualifier into an argument
+say /notaqualifier
+/notaqualifier
 set mode ignore
-say /help
+say/notaqualifier
 canc mode ignore
  
 say this\;that	! ";" should pass through
@@ -1273,7 +1225,7 @@ F1111111112222222222333333333344444444445555555555666666666677777777778888888888
 J111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000
 *** A111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000B111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000C111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000D111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000E111111111222222222233333333334444444444555555555566666666667777777777888888888899999999 [...]
  
-*** Running test: bn_dollar.jnl
+*** Running ferret script: bn_dollar.jnl
 ! test this with GO journal hello
  
 ! V510: 3/00 *sh* added tests of backslash escapes and surrounding quotations
@@ -1442,7 +1394,7 @@ set mode ignore
   say ($100)        ! argument number too large
   say ($10)0      ! argument 10 not defined
 set mode/last ignore
-*** Running test: bn_grave.jnl
+*** Running ferret script: bn_grave.jnl
 ! bn420_grave
 ! benchmark to test evaluation of grave accent-enclosed expressions
 ! requires FERRET version 4.00 or later
@@ -1765,7 +1717,7 @@ say `sst,return=Xsize`
 say `sst,return=trash`
 set mode/last ignore_errors
  
-*** Running test: bn_letd.jnl
+*** Running ferret script: bn_letd.jnl
 ! bn420_letd.jnl
 ! 9/1/95
  
@@ -2039,7 +1991,7 @@ list q[d=v12file]
  2   / 2:   3.00   4.00   5.00   6.00   7.00   8.00   9.00  10.00
  3   / 3:   4.00   5.00   6.00   7.00   8.00   9.00  10.00  11.00
  
-*** Running test: bn_if.jnl
+*** Running ferret script: bn_if.jnl
 ! bn430_if
 ! 5/6/96
 ! 5/22/96 - added nested multi-line IF with nesting in REJECTED clause
@@ -2131,7 +2083,7 @@ SAY ">>> --> DELIBERATE WARNING: UNCLOSED IF <<<"
 IF yes THEN
   say ---->... now inside of IF clause
 ---->... now inside of IF clause
-*** Running test: bn_expressions.jnl
+*** Running ferret script: bn_expressions.jnl
 ! bn450_expressions.JNL
 ! test all manner of expressions
 ! V450 - commented out MODE POLISH test -- mode was eliminated
@@ -2659,7 +2611,7 @@ LIST/L=5:7 TBOXLO, TBOXHI
 5   / 5:  4.500  5.500
 6   / 6:  5.500  6.500
 7   / 7:  6.500  7.500
-*** Running test: bn_geometry.jnl
+*** Running ferret script: bn_geometry.jnl
 ! bn200_geometry.JNL
 ! benchmark various geometries for accessing FERRET data
 ! similar tests are performed on:
@@ -3952,7 +3904,7 @@ LIST X[I=1:5] - X[I=6:9]
 SET MODE/LAST IGNORE_ERRORS
  
  
-*** Running test: bn_output.jnl
+*** Running ferret script: bn_output.jnl
 ! bn200_output.JNL
 ! - test various output methods in FERRET
 ! rev 0.0  4/27/90 *sh*
@@ -6937,7 +6889,7 @@ SET MODE IGNORE
 LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
 SET MODE/LAST IGNORE
 CANCEL LIST
-*** Running test: bn_in_plane.jnl
+*** Running ferret script: bn_in_plane.jnl
 ! bn200_in_plane.JNL
 ! benchmark various geometries with in-plane transformation applied (@SBX)
 ! this benchmark is layered on the compress benchmark to obtain the geometries
@@ -7451,7 +7403,7 @@ LIST/ORDER=T v[t=@sbx,i=@ave,j=@ave,k=@ave]
            1982   1982   1982  
             2      3      4
          -2.855 -1.567 -0.836
-*** Running test: bn_compress.jnl
+*** Running ferret script: bn_compress.jnl
 ! bn200_compress.JNL
 ! benchmark various geometries obtained by compressing FERRET data with @AVE
 ! similar tests are performed on:
@@ -7957,7 +7909,7 @@ LIST/ORDER=X v[i=@ave,j=@ave,k=@ave,l=@ave]
 ! ****
 ! remove call to bn200_compress.sub_qady for portable benchmarks *kob* 5/99
 ! ****
-*** Running test: bn_interpolate.jnl
+*** Running ferret script: bn_interpolate.jnl
 ! bn200_interpolate.JNL
 ! benchmark interpolation along various axes
  
@@ -8352,7 +8304,7 @@ LIST v[@xpt, at ypt, at zpt, at tpt]
              Z        : 1.005 (interpolated)
              T        : 1.0005 (interpolated)
           1113.00
-*** Running test: bn_regrid.jnl
+*** Running ferret script: bn_regrid.jnl
 ! bn200_regrid.JNL
 ! test regridding
 ! first test consists of regridding and re-regridding back and comparing
@@ -9733,7 +9685,7 @@ list a24[g=g48]-a48
  03-JAN-1980 00 / 2: -438312.
  05-JAN-1980 00 / 3: -438312.
  07-JAN-1980 00 / 4: -438312.
-*** Running test: bn_ez.jnl
+*** Running ferret script: bn_ez.jnl
 ! bn401_ez.JNL
 ! test all manner of accessing non-TMAP data files
 ! V401 modified from bn200_ez.jnl by the addition of a test of UNF reading
@@ -10142,7 +10094,7 @@ list my_var
  8    /  8:   8.00
  9    /  9:   9.00
  10   / 10:  10.00
-*** Running test: bn_plot.jnl
+*** Running ferret script: bn_plot.jnl
 ! bn450_plot.JNL - updated 9/97 from bn320_plot.jnl
 ! upgraded from bn320 to provide method for testing batch mode.  Also remove
 ! all labels to create "master" gif and ps files to compare against
@@ -10207,7 +10159,7 @@ ppl list plot
          WIDTH=   10.20  HEIGHT=    8.80  TKTYPE=    0  BAUD=  110
          WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
          PLOT MODE=   A
-         PLOT FILE= metafile.plt                                                                                                                                                                                                                                                                                                                                                                                                                                                                             [...]
+         PLOT FILE= .gif                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     [...]
  
 ! enlarge it to accomodate an additional 50% width
 ppl size 15.3,8.8
@@ -10340,7 +10292,7 @@ set view lr
 polygon/thick/color=red/palette=blue {1,2,1}, {2,1,0.5}
  
 set mode/last logo
-*** Running test: bn_curv.jnl
+*** Running ferret script: bn_curv.jnl
 cancel mode ignore
 !
 ! Your basic map projection
@@ -10526,7 +10478,7 @@ shade/nolabel sst, x_page[j=1:12], y_page ! DELIBERATE ERROR
 can mode ignore
  
 set mode meta bnplot.plt
-*** Running test: bn_symbols.jnl
+*** Running ferret script: bn_symbols.jnl
 ! bn420_symbols
 ! benchmark to test machinery of symbol definition and use
 ! requires FERRET version 4.00 or later
@@ -10548,18 +10500,18 @@ show symbols/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.951"
-FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7"
+FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
+NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = " 6-Nov-15"
-SESSION_TIME = "15:53"
-SESSION_PID = "19236"
-DELTA_CPU = "0.004998"
-CLOCK_SECS = "0.003"
-CURRENT_DATE = " 6-Nov-15"
-CURRENT_TIME = "15:53:40"
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:03"
+SESSION_PID = "7724"
+DELTA_CPU = "0.008997"
+CLOCK_SECS = "0.002"
+CURRENT_DATE = "17-Jun-16"
+CURRENT_TIME = "15:03:53"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -10577,18 +10529,18 @@ show symbol/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.951"
-FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7"
+FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
+NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = " 6-Nov-15"
-SESSION_TIME = "15:53"
-SESSION_PID = "19236"
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:03"
+SESSION_PID = "7724"
 DELTA_CPU = "0.001"
 CLOCK_SECS = "0.003"
-CURRENT_DATE = " 6-Nov-15"
-CURRENT_TIME = "15:53:40"
+CURRENT_DATE = "17-Jun-16"
+CURRENT_TIME = "15:03:53"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 S1 = "hello"
@@ -10598,9 +10550,9 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = " 6-Nov-15"
-SESSION_TIME = "15:53"
-SESSION_PID = "19236"
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:03"
+SESSION_PID = "7724"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10610,15 +10562,15 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = " 6-Nov-15"
-SESSION_TIME = "15:53"
-SESSION_PID = "19236"
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:03"
+SESSION_PID = "7724"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = " 6-Nov-15"
-SESSION_TIME = "15:53"
-SESSION_PID = "19236"
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:03"
+SESSION_PID = "7724"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10743,25 +10695,25 @@ say ($delayed_eval)         ! translate symbol and then evaluate
 ! cleanup
 cancel symbols/all
 show symbols/all
-PPL$XPIXEL = "656"
-PPL$YPIXEL = "492"
+PPL$XPIXEL = "0"
+PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.951"
-FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7"
+FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
+NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = " 6-Nov-15"
-SESSION_TIME = "15:53"
-SESSION_PID = "19236"
-DELTA_CPU = "0.015997"
-CLOCK_SECS = "0.07"
-CURRENT_DATE = " 6-Nov-15"
-CURRENT_TIME = "15:53:40"
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:03"
+SESSION_PID = "7724"
+DELTA_CPU = "0.014998"
+CLOCK_SECS = "0.021"
+CURRENT_DATE = "17-Jun-16"
+CURRENT_TIME = "15:03:53"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
-*** Running test: bn_comma_delimited.jnl
+*** Running ferret script: bn_comma_delimited.jnl
 ! bn420_comma_delimited
  
 ! 10/2/95 - test comma and tab-delimited outputs
@@ -12365,8 +12317,8 @@ LIST/FORMAT=comma/precision=9 randu(i)*temp*1e7
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    135.5W,134.5W
-1.5S,1.6675084E+08,2.0208841E+08
-1.2S,1.6616283E+08,2.0136658E+08
+1.5S,  166750845.,  202088412.
+1.2S,  166162833.,  201366579.
  
 ! small number formatting test
 set region/i=95:96/j=41:42/k=2/l=5
@@ -12419,7 +12371,7 @@ LIST/FORMAT=comma/precision=5 10*j+i
 1,11,12,13,14,15
 2,21,22,23,24,25
 3,31,32,33,34,35
-*** Running test: bn_dynamic_grids.jnl
+*** Running ferret script: bn_dynamic_grids.jnl
 ! bn420_dynamic_grids
 ! 9/95-9/11/95 - test the creation, destruction, and use of dynamic grids
 ! 2/96 - added GX=lo:hi:delta notation
@@ -12433,6 +12385,8 @@ LIST/FORMAT=comma/precision=5 10*j+i
 !			      numericals results found here are verified to be correct
 ! V550 11/02 *sh* - documentation change only reflecting new modulo behavior
 ! V603  5/07 *acm*  documentation changew - some of the context errors have gone away.
+! V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables,
+! pre-defined axes and grids.
  
 ! deliberate dynamic grid errors
  
@@ -12815,11 +12769,11 @@ Dynamic axes:
     no implicit axes
 show grid tu
     GRID (G005)
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
+ name       axis              # pts   start                end                 subset
+ PSXU      LONGITUDE          160mr   131E                 70W                 full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00   full
  normal    E
  normal    F
  
@@ -12931,8 +12885,10 @@ Dynamic axes:
  
 ! regridding between grids with mutually exclusive axes
 cancel region
-define grid/y=ps3dt gy
-define grid/x=ps3dt gx
+define grid/y=`temp,return=grid` gy
+ !-> define grid/y=PS3DT2 gy
+define grid/x=`temp,return=grid` gx
+ !-> define grid/x=PS3DT2 gx
 LET/QUIET a = x[g=gx]
 list/i=1:4 a,a[g=gy]   ! nothing to regrid - both are same
              LONGITUDE: 130E to 134E
@@ -13029,7 +12985,7 @@ Dynamic axes:
 ! * * * dynamic generation of pseudo-variables * * *
 list x[x=.1:1:.1]			! dynamic abstract
              VARIABLE : X
-                        axis (AX002)
+                        axis (AX010)
              SUBSET   : 10 points (X)
  0.1  /  1:  0.100
  0.2  /  2:  0.200
@@ -13043,7 +12999,7 @@ list x[x=.1:1:.1]			! dynamic abstract
  1    / 10:  1.000
 list x[gx=psxu,x=130:150:2.5]		! dynamic based on named axis
              VARIABLE : X
-                        axis (AX001)
+                        axis (AX009)
              SUBSET   : 9 points (LONGITUDE)
  130E   / 1:  130.0
  132.5E / 2:  132.5
@@ -13130,24 +13086,24 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    7 r   0.1                  9.1
- (AX001)   Y                    3 r   95                   109
+ (AX011)   X                    7 r   0.1                  9.1
+ (AX009)   Y                    3 r   95                   109
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    7 r   0.1                  9.1
- (AX002)   Y                   10 r   101                  110
+ (AX011)   X                    7 r   0.1                  9.1
+ (AX010)   Y                   10 r   101                  110
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
-    AXIS (AX003)                         use count:   2
-    AXIS (AX002)                         use count:   1
+    AXIS (AX009)                         use count:   1
+    AXIS (AX011)                         use count:   2
+    AXIS (AX010)                         use count:   1
  
 ! ambiguous coordinate tests
 list/order=x  x[x=0.1:10:1.5] +  x[x=1.1:11:1.5]
@@ -13167,14 +13123,14 @@ show grid/dyn
 Dynamic grids:
     GRID (G005)                          use count:   2
  name       axis              # pts   start                end
- (AX001)   X                    7 r   0.1                  9.1
+ (AX009)   X                    7 r   0.1                  9.1
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! box size on dynamic axes
 cancel region
@@ -13200,8 +13156,8 @@ show grid/x
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G005)
     GRID (G005)
- name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ name       axis              # pts   start                end                 subset
+ (AX011)   X                    5 i   1                    6561                4 pts
  normal    Y
  normal    Z
  normal    T
@@ -13233,7 +13189,7 @@ list/i=1:10 x[gx=temp]			! from named variable
  139.5E / 10:  139.5
 list x[g=temp,x=150w:130w:2.5]		! dynamic based on named variable
              VARIABLE : X
-                        axis (AX005)
+                        axis (AX012)
              FILENAME : gtsa056_1.cdf
              SUBSET   : 9 points (LONGITUDE)
  150W   / 1:  210.0
@@ -13247,7 +13203,7 @@ list x[g=temp,x=150w:130w:2.5]		! dynamic based on named variable
  130W   / 9:  230.0
 list x[gx=temp,x=150w:130w:2.5]		! dynamic based on named variable
              VARIABLE : X
-                        axis (AX002)
+                        axis (AX010)
              FILENAME : gtsa056_1.cdf
              SUBSET   : 9 points (LONGITUDE)
  150W   / 1:  210.0
@@ -13277,14 +13233,14 @@ show grid/dyn
 Dynamic grids:
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX011)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX003)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! this expression does NOT inherit the X axis -- the result is
 !	i) ambiguous X axis coordinates
@@ -13306,7 +13262,7 @@ show grid/dynamic
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX001)   LONGITUDE            5 r   129.5W               113.5W
+ (AX009)   LONGITUDE            5 r   129.5W               113.5W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13314,15 +13270,15 @@ Dynamic grids:
  normal    F
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX011)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX009)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[g=temp,i=101:120:4]
              VARIABLE : TEMP[I=101:120:4]+X[G=TEMP,I=101:120:4]
@@ -13345,7 +13301,7 @@ SET REGION/I=101:105/J=46:50/l=1/k=1
 ! deliberate errors:  ****
 list x[i=5:1:1]		! not an error: inverted order
              VARIABLE : X
-                        axis (AX001)
+                        axis (AX009)
              SUBSET   : 5 points (X)
  1   / 1:  1.000
  2   / 2:  2.000
@@ -13390,7 +13346,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX001)   LONGITUDE            6 i   108.5W(-468.5)       98.5W(-458.5)
+ (AX009)   LONGITUDE            6 i   108.5W(-468.5)       98.5W(-458.5)
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13398,15 +13354,15 @@ Dynamic grids:
  normal    F
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX011)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX009)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! regular dynamic axis
 ! ... by subscript
@@ -13474,22 +13430,22 @@ Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
  PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX001)   LATITUDE             4 r   0.5S                 4N
+ (AX009)   LATITUDE             4 r   0.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX011)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX009)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! ========
 ! 2/96: repeat the very same commands using GX=lo:hi:delta notation
@@ -13651,24 +13607,24 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX005)   LONGITUDE            4 r   130W                 121W
- (AX002)   LATITUDE             4 r   0.5S                 4N
+ (AX012)   LONGITUDE            4 r   130W                 121W
+ (AX010)   LATITUDE             4 r   0.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX011)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX002)                         use count:   1
-    AXIS (AX005)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX010)                         use count:   1
+    AXIS (AX012)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! the same tests but now on a nested definition
 ! regular dynamic axis
@@ -13836,7 +13792,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX002)   LONGITUDE            6 r   138W                 113W
+ (AX010)   LONGITUDE            6 r   138W                 113W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13844,15 +13800,15 @@ Dynamic grids:
  normal    F
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX005)   LONGITUDE            4 r   130W                 121W
+ (AX012)   LONGITUDE            4 r   130W                 121W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX002)                         use count:   1
-    AXIS (AX005)                         use count:   1
+    AXIS (AX010)                         use count:   1
+    AXIS (AX012)                         use count:   1
  
 ! irregular dynamic axis
 ! ... by subscript
@@ -13990,7 +13946,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX005)   LONGITUDE            8 r   90W                  62W
+ (AX012)   LONGITUDE            8 r   90W                  62W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13999,14 +13955,14 @@ Dynamic grids:
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
  PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX003)   LATITUDE             6 r   3.5S                 4N
+ (AX011)   LATITUDE             6 r   3.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX005)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX012)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! nested modulo (the dynamic axis is **NOT** modulo)
 ! ... by subscript
@@ -14188,7 +14144,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   LONGITUDE            9 r   101W                 53W
+ (AX011)   LONGITUDE            9 r   101W                 53W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -14196,15 +14152,15 @@ Dynamic grids:
  normal    F
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX002)   LONGITUDE            8 r   90W                  62W
+ (AX010)   LONGITUDE            8 r   90W                  62W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX003)                         use count:   1
-    AXIS (AX002)                         use count:   1
+    AXIS (AX011)                         use count:   1
+    AXIS (AX010)                         use count:   1
  
 ! calendar axes
 list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]   ! 6-day ave
@@ -14238,7 +14194,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
 list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`]			! pseudo-var
  !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
              VARIABLE : T
-                        axis (AX001)
+                        axis (AX009)
              SUBSET   : 3 points (TIME)
  15-JAN-1982 00 / 1:  723925.
  17-JAN-1982 00 / 2:  723927.
@@ -14253,7 +14209,7 @@ Dynamic axes:
 set axis/modulo psxt
  
 set mode/last diag
-*** Running test: bn_cdf.jnl
+*** Running ferret script: bn_cdf.jnl
 ! bn320_cdf
 ! benchmark to test netCDF input and output
 ! requires version 3.20 or later
@@ -14533,11 +14489,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX1_10   X                   10 r   1                    10
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1_10   X                   10 r   1                    10                  full
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -14629,11 +14585,11 @@ show data/full
  
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX1_10   X                   10 r   1                    10
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1_10   X                   10 r   1                    10                  full
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
  
@@ -14664,43 +14620,43 @@ cancel variables/all
 set data/format=cdf test_abs
 show grid j1 jkl jkl2 iavejkl ijkl
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
+ YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
+ YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU14
- name       axis              # pts   start                end
- XAX1_10   X                   10 r   1                    10
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1_10   X                   10 r   1                    10                  full
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -14886,11 +14842,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID PS3DU1
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYU      LATITUDE           100 i   27.672S              50N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXU      LONGITUDE          160mr   131E                 70W                 full
+ PSYU      LATITUDE           100 i   27.672S              50N                 full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
  normal    E
  normal    F
 cancel data test_fil0
@@ -15076,11 +15032,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID GLZ14
- name       axis              # pts   start                end
- PSXU69_72 LONGITUDE            4mr   161W                 158W
- PSYU      LATITUDE           100 i   27.672S              50N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXU69_72 LONGITUDE            4mr   161W                 158W                full
+ PSYU      LATITUDE           100 i   27.672S              50N                 full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
  normal    E
  normal    F
 cancel data test_fil
@@ -15157,7 +15113,7 @@ list/x=180 fcn_rev_sub
  1N   / 12: -0.3166
  0    / 11:  0.0000
  1S   / 10:  0.3166
-*** Running test: bn_regrid_transforms.jnl
+*** Running ferret script: bn_regrid_transforms.jnl
 ! bn500_regrid_transforms
 ! benchmark to test regridding transformations and syntax
 ! requires version 2.30 or later
@@ -18136,11 +18092,11 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G010)
     GRID (G010)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
  normal    E
  normal    F
 list atime[gt=thour at max]
@@ -18168,11 +18124,11 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G011)
     GRID (G011)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- THOUR     TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ THOUR     TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
  normal    E
  normal    F
  
@@ -18182,7 +18138,7 @@ set mode/last diag
  
  
  
-*** Running test: bn_axis_limits.jnl
+*** Running ferret script: bn_axis_limits.jnl
 !bn301_axis_limits.jnl
 ! exercise the new-V301 /XLIMITS and /YLIMITS qualifiers
  
@@ -18334,7 +18290,7 @@ contour/x=160E:160W/t=28000:29000/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=1-
 set view v44
 contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=28000:29000:-400/trans sin(x/3)*sin(t/100)
  
-*** Running test: bn_movie.jnl
+*** Running ferret script: bn_movie.jnl
 ! bn301_movie.JNL
 ! - test on-HDF movie creation by Program FERRET
 ! - FERRET ver 3.10 10/93
@@ -18343,7 +18299,7 @@ contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/
  
 ! Dont run this script - fails with hdf5 libraries
 exit/script
-*** Running test: bn_ez_order.jnl
+*** Running ferret script: bn_ez_order.jnl
 ! bn420_ez_order
 ! updated from bn311_ez_order 9/95 - improved testing of /FORMAT=STREAM
  
@@ -19376,7 +19332,7 @@ sp rm -f test_perm24.dat
 sp rm -f test_perm48.dat
 sp rm -f test_perm48_10.dat
  
-*** Running test: bn_user.jnl
+*** Running ferret script: bn_user.jnl
 ! bn312_user.jnl
  
 ! test the USER command options
@@ -19390,7 +19346,7 @@ set window/size=.5/aspect=.75:ax 1
 set window/size=.5/aspect=.75 2
  
 exit/script
-*** Running test: bn_stream.jnl
+*** Running ferret script: bn_stream.jnl
 ! bn420_stream.jnl
  
 ! jan 96
@@ -19451,7 +19407,7 @@ list myv1,myv2
 10   / 10:  30.00  50.00
 cancel data stream_data_link.unf
  
-*** Running test: bn_mc.jnl
+*** Running ferret script: bn_mc.jnl
 !bn430_mc.jnl
 ! kob - 9/5/96
 !     - simple test of mc data access for both irregular and regular time
@@ -19471,11 +19427,11 @@ CAN MODE VERIFY
   time range: 16-JAN-1900 06:00 to 17-JUN-1900 10:25
  
     GRID GHB1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME1     TIME                 6 r   16-JAN-1900 06:00    17-JUN-1900 10:25
+ TIME1     TIME                 6 r   16-JAN-1900 06:00    17-JUN-1900 10:25   full
  normal    E
  normal    F
  
@@ -19549,11 +19505,11 @@ CAN MODE VERIFY
   time range: 16-JAN-1900 06:00 to 17-MAY-1900 23:56
  
     GRID GJR1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME2     TIME                 3 i   16-JAN-1900 06:00    17-MAY-1900 23:56
+ TIME2     TIME                 3 i   16-JAN-1900 06:00    17-MAY-1900 23:56   full
  normal    E
  normal    F
  
@@ -19900,7 +19856,7 @@ CAN MODE VERIFY
  89S   /  1:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
  
  
-*** Running test: bn_negative_t.jnl
+*** Running ferret script: bn_negative_t.jnl
 ! bn450_negative_t - 10/97
  
 ! test behavior of negative time step values (unsupported except as absolute
@@ -20889,7 +20845,7 @@ SET MODE ignore_error
 LIST a[gt=tcal]		! deliberate error
 CANCEL MODE ignore_error
  
-*** Running test: bn_xact_regrid.jnl
+*** Running ferret script: bn_xact_regrid.jnl
 ! BN450_xact_regrid.jnl
  
 ! 10/97 - test "exact match" regridding
@@ -22285,7 +22241,7 @@ LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
  5   / 5:....
  
  
-*** Running test: bn_gc_functions.jnl
+*** Running ferret script: bn_gc_functions.jnl
 ! bn500_gc_functions.jnl
  
 ! 10/97 - first version - test GC functions released in V4.9
@@ -22871,7 +22827,7 @@ LIST/x=0/l=1 Z10_flow - bottom_flow
 ! dynamic axis passes to GC function -- 1 meter resolution (3/98)
 set view lr
 shade/x=0/l=1/ylim=0:200:-20/lev ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[z=0:200:.5])
-*** Running test: bn491_bug_fixes.jnl
+*** Running ferret script: bn491_bug_fixes.jnl
 ! bn491_bug_fixes.jnl
 ! test various fixes that went into version 4.91
 ! 2/98 *kob*
@@ -23172,11 +23128,11 @@ GO err490_neg_time_show_grid.jnl
 set data gtsa056_2
 show grid/t=15-JAN-1982:15-JAN-1983 temp
     GRID PS3DT1
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME               168mr   15-JAN-1982 14:00    07-JUN-1983 13:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      TIME               168mr   15-JAN-1982 14:00    07-JUN-1983 13:00   full
  normal    E
  normal    F
  
@@ -23589,7 +23545,7 @@ list elev
  58.6017N /   2:   ....   ....   ....   ....  2.940  2.940  2.940  2.940  2.940   ....   ....   ....
  58.5947N /   1:   ....   ....   ....   ....  2.940  2.940  2.940  2.940  2.940   ....   ....   ....
  
-*** Running test: bn_odd_variable_name.jnl
+*** Running ferret script: bn_odd_variable_name.jnl
 ! make sure memory is limited; otherwise the abstract axis will list
 let save_mem = ($ferret_memory)
  !-> DEFINE VARIABLE save_mem = 25.6
@@ -23879,7 +23835,7 @@ list 'v2-and-minus'[i=5:15 at ddc] ! Now the proper syntax
 ! restore orginal memory size
 set mem /size=`save_mem`
  !-> set mem /size=25.6
-*** Running test: bn_test_stream.jnl
+*** Running ferret script: bn_test_stream.jnl
  
 canc data/all
  
@@ -24540,7 +24496,7 @@ list num1
  1   / 1:  18.00  19.00
  2   / 2:  20.00  21.00
  3   / 3:  22.00  23.00
-*** Running test: bn_define_axes.jnl
+*** Running ferret script: bn_define_axes.jnl
 ! bn_define_axes.jnl
 ! *sh* 5/99
 ! *sh* 12/99 - with streamlined syntax
@@ -25007,7 +24963,51 @@ show axis xax2
  
 ! cleanup
 set mode/last ignore
-*** Running test: bn_polygon.jnl
+*** Running ferret script: bn_pattern.jnl
+! pattern_bench.jnl
+! Quick demo of Ferret pattern feature *jd* 12.18.98
+ 
+set view full
+ 
+use coads_climatology
+set reg/l=3/y=50s:60n/x=100e:60w
+set mode cal months
+ 
+! The /pattern qualifier sets patterns to be used, like /palette sets colors.
+! Files in $FER_PALETTE with extension .pat are read in to set patterns.
+! Use "Fpattern '*'" to find available pattern files.
+ 
+! Note that colors are set in the usual way...
+ 
+set win 1
+ 
+set mode meta pattern_plot1.plt
+shade/pal=black/lev=(10,30,5,-3)/line/key/pattern=4patterns/nolabel sst
+ 
+go land thick
+ 
+! Colors and patterns can be overlaid; patterns are transparent
+ 
+set win 2
+ 
+set data coads_climatology
+set data clim_airt_lev.cdf
+set reg/l=1:3/y=50s:60n/x=100e:60w
+set mode cal months
+ 
+set mode meta pattern_plot2.plt
+fill/lev=(0,33,3)/nolabel sst[l=@ave,d=1]
+ 
+fill/lev=(25,27,1)/over/nolab/pal=black/pat=angled_grid/nolabel airt[l=@ave]
+label/user,200,-30,-1,0,.15, at trAIRT gt 25 and lt 27 deg. C
+ 
+go land thick
+ 
+!can data/all
+can win 2
+set win 1
+can mode meta
+*** Running ferret script: bn_polygon.jnl
 ! Demo of new POLYGON command
 ! *jd * 3.99
  
@@ -25027,7 +25027,7 @@ polygon/trans/line=6/fill/over/lev/i=1:100/pattern=ball_bearings/nolabel xpts+xs
 polygon/trans/line=4/over/i=1:100/nolabel xpts+xsqr-.25, ypts+ysqr, x*x/10
  
 can mode meta
-*** Running test: bn500_bug_fixes.jnl
+*** Running ferret script: bn500_bug_fixes.jnl
 ! bn500_bug_fixes.jnl
 ! test various fixes that went into version 5.00
 ! 5/99 *kob*
@@ -25239,10 +25239,10 @@ show grid
  Default grid for DEFINE VARIABLE is (G001)
  Last successful data access was on grid (G001)
     GRID (G001)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
- Z10       Z                   10 r   1                    10
+ Z10       Z                   10 r   1                    10                  full
  normal    T
  normal    E
  normal    F
@@ -25319,7 +25319,7 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Fri Nov  6 15:53:44 PST 2015
+Fri Jun 17 15:03:56 PDT 2016
  
 GO bn_reset
 cancel mode verify
@@ -25385,7 +25385,7 @@ GO err500_IF_THEN_ELSE_quote.jnl
  
 IF 1 THEN SAY "I is too big" ENDIF
 I is too big
-*** Running test: bn_sample.jnl
+*** Running ferret script: bn_sample.jnl
 ! bn_sample.jnl
 ! 10/99 *sh*
 ! V550 *sh* 11/02 - documentation change only, reflecting subspan modulo
@@ -26458,7 +26458,7 @@ list SAMPLEL(X[x=110:200:10],{3,4,7})	! normal axis
  2   / 2:........................................
  3   / 3:........................................
  
-*** Running test: bn_strides_revs_perms.jnl
+*** Running ferret script: bn_strides_revs_perms.jnl
 ! bn_strides_revs_perms.jnl
 ! *sh* 6/99
  
@@ -26558,11 +26558,11 @@ set region/i=1:4/j=1:3/l=1:2
 use bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- XLON      LONGITUDE           40mr   141E                 180E
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ XLON      LONGITUDE           40mr   141E                 180E                full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar
@@ -26584,11 +26584,11 @@ canc data/all
 use/order=yx bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- YLAT      X (degrees_north)   30 r   1                    30
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ YLAT      X (degrees_north)   30 r   1                    30                  full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar
@@ -26610,11 +26610,11 @@ canc data/all
 use/order=tyx bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- XLON      T (degrees_east)    40mr   141                  180
+ XLON      T (degrees_east)    40mr   141                  180                 full
  normal    E
  normal    F
 list xytvar
@@ -26636,11 +26636,11 @@ canc data/all
 use/order=txy bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 list xytvar
@@ -26663,10 +26663,10 @@ canc data/all
 use/order=zxy bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
- YLAT      Z (degrees_north)   30 r   1                    30
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
+ YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
  normal    E
  normal    F
@@ -26690,11 +26690,11 @@ canc data/all
 use/order=tx bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 list xytvar
@@ -26717,20 +26717,20 @@ canc data/all
 use/order=txyz bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 show grid var
     GRID GPC1
- name       axis              # pts   start                end
- TAX1_1    X                    1 r   1                    1
- XAX1_4    Y                    4 r   1                    4
- YAX1_3    Z                    3 r   1                    3
- ZAX1_2    T                    2 r   1                    2
+ name       axis              # pts   start                end                 subset
+ TAX1_1    X                    1 r   1                    1                   full
+ XAX1_4    Y                    4 r   1                    4                   full
+ YAX1_3    Z                    3 r   1                    3                   full
+ ZAX1_2    T                    2 r   1                    2                   full
  normal    E
  normal    F
 canc data/all
@@ -27560,11 +27560,12 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1345.  1347.  1349.
  6   / 3:  1363.  1365.  1367.  1369.
 canc data/all
- -DELETE UNE-NVAR M:  3 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
+ -DELETE UNE-NVAR M:  3 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:  6 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  
 use/order=zyx bn_strides
 list bigvar[i=3:9:2]
@@ -27576,7 +27577,7 @@ list bigvar[i=3:9:2]
  allocate dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  5 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  BIGVAR   M:  3 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE BIGVAR   M:  6 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
@@ -27596,7 +27597,7 @@ list bigvar[i=3:9:2]
  4   / 4:  1342.  1542.  1742.  1942.
 list bigvar[j=2:6:2]
  dealloc  dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M:  5 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:  3 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
  dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
@@ -27606,7 +27607,7 @@ list bigvar[j=2:6:2]
  strip regrid on Y: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  BIGVAR   M:  6 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  5 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:  3 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on Y
@@ -27634,7 +27635,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  BIGVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE BIGVAR   M:  6 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
@@ -27653,8 +27654,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1543.  1743.  1943.
  6   / 3:  1363.  1563.  1763.  1963.
 canc data/all
- -DELETE BIGVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=zxy bn_strides
 list bigvar[i=3:9:2]
@@ -27667,7 +27669,7 @@ list bigvar[i=3:9:2]
  strip regrid on X: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  BIGVAR   M:  6 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  5 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:  3 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X
@@ -27695,7 +27697,7 @@ list bigvar[j=2:6:2]
  allocate dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  5 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  BIGVAR   M:  3 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE BIGVAR   M:  6 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
@@ -27715,7 +27717,7 @@ list bigvar[j=2:6:2]
  6   / 3:  1326.  1426.  1526.  1626.
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M:  5 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:  3 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
@@ -27725,7 +27727,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  strip regrid on X: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  BIGVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  5 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:  3 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
@@ -27743,8 +27745,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1334.  1534.  1734.  1934.
  6   / 3:  1336.  1536.  1736.  1936.
 canc data/all
- -DELETE BIGVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! now with xytvar
 cancel region
@@ -27754,11 +27757,11 @@ show grid xytvar
  getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- XLON      LONGITUDE           40mr   141E                 180E
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ XLON      LONGITUDE           40mr   141E                 180E                full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
@@ -27771,7 +27774,7 @@ list xytvar[i=1:7:2]
  allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -27790,7 +27793,7 @@ list xytvar[i=1:7:2]
  1N   / 1:  2011.  2013.  2015.  2017.
 list xytvar[j=2:6:2]
  dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
  dealloc  dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
@@ -27800,7 +27803,7 @@ list xytvar[j=2:6:2]
  strip regrid on Y: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
@@ -27827,7 +27830,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -27845,19 +27848,20 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.  5043.  5045.  5047.
  2N   / 1:  5021.  5023.  5025.  5027.
 canc data/all
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=yx bn_strides
 show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME     NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- YLAT      X (degrees_north)   30 r   1                    30
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ YLAT      X (degrees_north)   30 r   1                    30                  full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
@@ -27871,7 +27875,7 @@ list xytvar[i=1:7:2]
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
@@ -27898,7 +27902,7 @@ list xytvar[j=2:6:2]
  allocate dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -27917,7 +27921,7 @@ list xytvar[j=2:6:2]
  146   / 3:  2016.  2026.  2036.  2046.
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  dealloc  dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
@@ -27927,7 +27931,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
@@ -27944,19 +27948,20 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  5014.  5034.  5054.  5074.
  146   / 3:  5016.  5036.  5056.  5076.
 canc data/all
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=tyx bn_strides
 show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON      NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- XLON      T (degrees_east)    40mr   141                  180
+ XLON      T (degrees_east)    40mr   141                  180                 full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
@@ -27969,7 +27974,7 @@ list xytvar[i=1:7:2]
  allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -27988,7 +27993,7 @@ list xytvar[i=1:7:2]
  1N   / 1:  1012.  3012.  5012.  7012.
 list xytvar[j=2:6:2]
  dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
  dealloc  dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
@@ -27998,7 +28003,7 @@ list xytvar[j=2:6:2]
  strip regrid on Y: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
@@ -28025,7 +28030,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -28043,19 +28048,20 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  1045.  3045.  5045.  7045.
  2N   / 1:  1025.  3025.  5025.  7025.
 canc data/all
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=txy bn_strides
 show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT      NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
@@ -28069,7 +28075,7 @@ list xytvar[i=1:7:2]
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
@@ -28096,7 +28102,7 @@ list xytvar[j=2:6:2]
  allocate dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -28115,7 +28121,7 @@ list xytvar[j=2:6:2]
  146   / 3:  1026.  2026.  3026.  4026.
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  dealloc  dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
@@ -28125,7 +28131,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
@@ -28142,8 +28148,9 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  1054.  3054.  5054.  7054.
  146   / 3:  1056.  3056.  5056.  7056.
 canc data/all
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -28151,10 +28158,10 @@ show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
- YLAT      Z (degrees_north)   30 r   1                    30
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
+ YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
  normal    E
  normal    F
@@ -28169,7 +28176,7 @@ list/k=1:2 xytvar[i=1:7:2]
  allocate dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -28188,7 +28195,7 @@ list/k=1:2 xytvar[i=1:7:2]
  143   / 3:  1023.  3023.  5023.  7023.
 list/k=1:2 xytvar[j=2:6:2]
  dealloc  dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
  dealloc  dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
@@ -28199,7 +28206,7 @@ list/k=1:2 xytvar[j=2:6:2]
  strip regrid on Y: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
@@ -28226,7 +28233,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -28244,8 +28251,9 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.  3054.  5054.  7054.
  146   / 3:  1056.  3056.  5056.  7056.
 canc data/all
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
  
 ! * * * * * MIXED STRIDES, PERMUTATIONS and REVERSALS * * * * *
@@ -28276,7 +28284,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  strip regrid on X: MIDVAR --> (G006)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28292,8 +28300,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.  1552.
  5   / 2:  1515.  1555.
 canc data/all
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28309,7 +28318,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
  -DELETE MIDVAR   M:  6 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28325,8 +28334,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.  1558.
  5   / 2:  1515.  1555.
 canc data/all
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28342,7 +28352,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  doing reversing MIDVAR on X axis:     1     5 dset:   1
  -DELETE MIDVAR   M:  6 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28358,8 +28368,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1582.  1542.
  5   / 2:  1585.  1545.
 canc data/all
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=tyx bn_strides
@@ -28372,7 +28383,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G006)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  5 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE MIDVAR   M:  6 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
@@ -28389,8 +28400,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.  5125.
  5   / 2:  1155.  5155.
 canc data/all
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 use/order=-t-y-x bn_strides
@@ -28405,8 +28417,8 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  strip reversing MIDVAR on X axis:     1     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    4    7  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  5 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE MIDVAR   M:  6 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
@@ -28423,8 +28435,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.  2775.
  5   / 2:  6745.  2745.
 canc data/all
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=txy bn_strides
@@ -28438,7 +28451,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  strip regrid on X: MIDVAR --> (G006)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28454,8 +28467,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.  5152.
  5   / 2:  1155.  5155.
 canc data/all
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28471,7 +28485,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
  -DELETE MIDVAR   M:  6 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28487,9 +28501,10 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.  2758.
  5   / 2:  6755.  2755.
 canc data/all
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
-*** Running test: bn_non_COARDS_netCDF.jnl
+ -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
+*** Running ferret script: bn_non_COARDS_netCDF.jnl
 ! bn_non_COARDS_netCDF.jnl
 ! *sh* 3/99
 ! *sh* 6/00 -- added true scalar variable, TRUE_SCALAR
@@ -28529,8 +28544,8 @@ show data
  
 show grid/x HAS_NO_AXIS
     GRID GAB7
- name       axis              # pts   start                end
- NO_AXIS   X                    5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ NO_AXIS   X                    5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -28545,8 +28560,8 @@ show grid/x HAS_NO_AXIS
        5>  5                     1          4.5
 show grid/x HAS_UNORDERED_AXIS
     GRID GAB1
- name       axis              # pts   start                end
- UNORDERED_AXIS X               5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ UNORDERED_AXIS X               5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -28561,8 +28576,8 @@ show grid/x HAS_UNORDERED_AXIS
        5>  5                     1          4.5
 show grid/x HAS_GAPPY_AXIS
     GRID GAB2
- name       axis              # pts   start                end
- GAPPY_AXIS X                   5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ GAPPY_AXIS X                   5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -28577,8 +28592,8 @@ show grid/x HAS_GAPPY_AXIS
        5>  5                     1          4.5
 show grid/x HAS_BACKWARDS_AXIS
     GRID GAB8
- name       axis              # pts   start                end
- BACKWARDS_AXIS X               5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ BACKWARDS_AXIS X               5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -28593,8 +28608,8 @@ show grid/x HAS_BACKWARDS_AXIS
        5>  5                     1          4.5
 show grid/x SCALAR_VAR
     GRID GAB3
- name       axis              # pts   start                end
- SCALAR    X                    1 r   1                    1
+ name       axis              # pts   start                end                 subset
+ SCALAR    X                    1 r   1                    1                   full
  normal    Y
  normal    Z
  normal    T
@@ -28606,37 +28621,37 @@ show grid/x SCALAR_VAR
  
 show grid/i=1:5 USES_BIG_IRREG
     GRID GAB9
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- BIG_IRREG T (hours)       200000 i   1                    200000
+ BIG_IRREG T (hours)       200000 i   1                    200000              full
  normal    E
  normal    F
  
 show grid MASKED_SST
     GRID GAB5
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180 r   1E                   180E
- COADSY    LATITUDE            90 r   1N                   90N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180 r   1E                   180E                full
+ COADSY    LATITUDE            90 r   1N                   90N                 full
  normal    Z
- TIME      TIME                 1mr   16-JAN 06:00         16-JAN 06:00
+ TIME      TIME                 1mr   16-JAN 06:00         16-JAN 06:00        full
  normal    E
  normal    F
 show grid COADSX
     GRID GAB6
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180 r   1E                   180E
- COADSY    LATITUDE            90 r   1N                   90N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180 r   1E                   180E                full
+ COADSY    LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
  normal    E
  normal    F
 show grid COADSY
     GRID GAB6
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180 r   1E                   180E
- COADSY    LATITUDE            90 r   1N                   90N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180 r   1E                   180E                full
+ COADSY    LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
  normal    E
@@ -28715,7 +28730,7 @@ list HAS_BACKWARDS_AXIS
 ! is generated with its values.
  
 ! list/i=1:5 BIG_IRREG
-*** Running test: bn_cache_hits.jnl
+*** Running ferret script: bn_cache_hits.jnl
 ! bn_cache_hits.jnl
  
 ! 3/99 *sh*
@@ -30516,7 +30531,7 @@ set mode/last diag
  
 ! v5.4 *kob* 10/01 - need to add exit/script - new exit command qualifiers
 EXIT/SCRIPT
-*** Running test: bn_regrid_to_user.jnl
+*** Running ferret script: bn_regrid_to_user.jnl
 ! bn_regrid_to_user
 ! 8/99 *sh*
 ! 5/01 *sh* - changes to accomodate truncated levitus_climatology.cdf
@@ -30558,10 +30573,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G003)
     GRID (G003)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -30589,10 +30604,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G003)
     GRID (G003)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -30618,10 +30633,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G003)
     GRID (G003)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -30714,11 +30729,11 @@ show grid
  Default grid for DEFINE VARIABLE is (G003)
  Last successful data access was on grid (G003)
     GRID (G003)
- name       axis              # pts   start                end
- (AX009)   LONGITUDE          301 r   0E                   30E
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ (AX009)   LONGITUDE          301 r   0E                   30E                 full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  normal    E
  normal    F
  
@@ -30728,11 +30743,11 @@ show grid
  Default grid for DEFINE VARIABLE is (G003)
  Last successful data access was on grid (G004)
     GRID (G004)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX010)   LATITUDE           201 r   10S                  10N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX010)   LATITUDE           201 r   10S                  10N                 200 pts
  normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  normal    E
  normal    F
 show grid/dynamic
@@ -30872,62 +30887,62 @@ list a1[gxz=a2]
 ! test use of expressions in dynamic grid commands
 SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2]             ! implicit Y axis
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX007)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX010)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX010)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
 SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
     GRID (G007)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX007)   LATITUDE            41 r   10S                  2S
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
+ (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
  normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
+ (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
  normal    E
  normal    F
 SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])      ! abstract X axis
     GRID (G006)
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
- (AX007)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]),SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX011)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX011)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
     GRID (G007)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX007)   LATITUDE            41 r   10S                  2S
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
+ (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
  normal    Z
- (AX010)   T (CYC/hour)         2 r   0.00034224           0.00068448
+ (AX010)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
  normal    E
  normal    F
     GRID (G006)
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
- (AX007)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
@@ -30937,10 +30952,10 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is (G003)
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX010)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX010)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
@@ -30949,11 +30964,11 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is (G007)
  Last successful data access was on grid (G007)
     GRID (G007)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX007)   LATITUDE            41 r   10S                  2S
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
+ (AX007)   LATITUDE            41 r   10S                  2S                  full
  normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
+ (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448          full
  normal    E
  normal    F
 list/j=1:5 j
@@ -30998,7 +31013,7 @@ Dynamic axes:
     AXIS (AX007)                         use count:   3
     AXIS (AX008)                         use count:   1
  
-*** Running test: bn_calendar.jnl
+*** Running ferret script: bn_calendar.jnl
 ! bn_calendar.jnl
 ! Version 5.3
 ! Add definitions of calendar axes as a NetCDF attribute of the time axis
@@ -31144,11 +31159,11 @@ sh data
  
 sh grid ndata
     GRID GSH1
- name       axis              # pts   start                end
- PSXT91_100 LONGITUDE          10mr   139.5W               130.5W
- PSYT39_51 LATITUDE            13 i   2.167S               1.833N
- PSZT1_1   DEPTH (m)            1 r-  5                    5
- TWEEKS1   TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00
+ name       axis              # pts   start                end                 subset
+ PSXT91_100 LONGITUDE          10mr   139.5W               130.5W              full
+ PSYT39_51 LATITUDE            13 i   2.167S               1.833N              full
+ PSZT1_1   DEPTH (m)            1 r-  5                    5                   full
+ TWEEKS1   TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00   full
  normal    E
  normal    F
 sh axis tweeks
@@ -31281,7 +31296,7 @@ T0 = 1-JAN-1980
  
 ! also see bn_all_leap.jnl, 6/2004
 ! Added ALL_LEAP, or 366_DAY calendar (which is in the CF conventions).
-*** Running test: bn_dash_dot.jnl
+*** Running ferret script: bn_dash_dot.jnl
 ! new PLOT/DASH and PLOT/SYMBOL=DOT  qualifiers
 ! *acm* 5/01
 ! *acm* 8/02 Remove calls to SYMBOL=DOT until postscript issues are resolved.
@@ -31301,7 +31316,7 @@ plot/over/dash=(0.1,0.1,0.04,0.05)/color=blue/thick=1/i=1:1000 sin(62.8*(i+20) )
 set mode ignore
 plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
 plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
-*** Running test: bn_flowlines.jnl
+*** Running ferret script: bn_flowlines.jnl
 ! bn_flowlines.jnl
 ! VECTOR/FLOW
 ! 6/2001
@@ -31347,7 +31362,7 @@ vec/noax/xskip=16/yskip=8/len=15/title="Sinusoidal Projection" fsst*0,fsst*0+yy*
 vec/over/flow/noax/xskip=16/yskip=8/len=5/title="Sinusoidal Projection" fsst*0,fsst*0+yy*mp_mask, x_page,y_page
  
 set mode logo
-*** Running test: bn_logaxes.jnl
+*** Running ferret script: bn_logaxes.jnl
 !  Test the qualifiers /HLOG and /VLOG for setting
 !  log axes.  On a depth axis, inverse log plot.
  
@@ -31389,7 +31404,7 @@ set mode ignore
 def axis/x dlog = -1*(10-i[i=1:10])
 let fcn = (i[gx=dlog])^2
 plot/hlog fcn
-*** Running test: bn_internal_external_functions.jnl
+*** Running ferret script: bn_internal_external_functions.jnl
 ! test internal external functions.  These moved from bn_external_functions
 !  6/01 because on systems w/out external functions support, the internal
 !  functions were not being tested - most notably win32   *kob*
@@ -31807,9 +31822,9 @@ can mem/all
 let xy_laplace_gridded = scat2gridlaplace_xy(xax,yax,O2_umol_kg,x[gx=x_20],y[gy=y_20],2,2)
 show grid xy_laplace_gridded
     GRID (G005)
- name       axis              # pts   start                end
- X_20      LONGITUDE           20mr   50E                  70E
- Y_20      LATITUDE            20 r   10N                  20N
+ name       axis              # pts   start                end                 subset
+ X_20      LONGITUDE           20mr   50E                  70E                 full
+ Y_20      LATITUDE            20 r   10N                  20N                 full
  normal    Z
  normal    T
  normal    E
@@ -32438,9 +32453,9 @@ let wgtl = scat2gridlaplace_xy(xln,ylt, wgt, x[gx=xlonef], y[gy=ylatef], 2., 1)
  
 show grid wgtl
     GRID (G009)
- name       axis              # pts   start                end
- XLONEF    LONGITUDE          133mr   12.5W                119.5E(479.5)
- YLATEF    LATITUDE            73 r   47.25N               83.25N
+ name       axis              # pts   start                end                 subset
+ XLONEF    LONGITUDE          133mr   12.5W                119.5E(479.5)       full
+ YLATEF    LATITUDE            73 r   47.25N               83.25N              full
  normal    Z
  normal    T
  normal    E
@@ -33423,10 +33438,10 @@ SAMPLEN(TO_BE_SAMPLED,F_INDICES)
     TO_BE_SAMPLED: data to sample at list of F indices supplied
     F_INDICES: list of F indices at which to sample
 SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
-    Returns data sampled at a subset of its grid points, defined by (XPTS, YPTS)
+    Returns data sampled by matching coordinates at a subset of grid points, defined by (XPTS, YPTS)
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
-    XPTS: X indices of grid points
-    YPTS: Y indices of grid points
+    XPTS: X coordinates of grid points
+    YPTS: Y coordinates of grid points
 SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
     Returns data sampled according to I indices which may vary in JKL
     I_INDICES: indices upon which to sample
@@ -34761,7 +34776,45 @@ let mask = 0*x[gx=sst] + y[gy=sst]  + 1
 shade fill_xy(sst[l=1], mask[l=1], 1)
 shade fill_xy(sst[l=1], mask[l=1], 4)
  
-*** Running test: bn_modulo_strides.jnl
+! Compare SAMPLEXY and SAMPLEIJ
+GO bn_reset
+cancel mode verify
+GO bn_samplexy_sampleij
+! bn_samplexy_sampleij
+ 
+! Simple tests of SAMPLEXY and SAMPLEIJ
+ 
+sh func samplexy, sampleij
+SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
+    Returns data sampled at a set of (X,Y) points, using linear interpolation
+    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
+    XPTS: X values of sample points
+    YPTS: Y values of sample points
+SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
+    Returns data sampled by matching coordinates at a subset of grid points, defined by (XPTS, YPTS)
+    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
+    XPTS: X coordinates of grid points
+    YPTS: Y coordinates of grid points
+use coads_climatology
+ 
+! Both functions take world coordinate values
+! as arguements for the points at which to sample.
+!
+! 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
+             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})
+ Column  2: EX#2 is SAMPLEIJ(SST,{321,323,324.5}, {1,1,1})
+          EX#1   EX#2
+1   / 1:  27.48  27.48
+2   / 2:  27.40  27.47
+3   / 3:  27.22   ....
+ 
+ 
+*** Running ferret script: bn_modulo_strides.jnl
 ! bn_modulo_strides.jnl
 ! 6/01 *sh*
 ! exercise the combination of modulo and netCDF strides IO
@@ -35140,7 +35193,7 @@ list/nohead str[i=105:145:5]
  135   / 7:"o"
  140   / 8:"t"
  145   / 9:"e"
-*** Running test: bn_axis_viewports.jnl
+*** Running ferret script: bn_axis_viewports.jnl
 ! bn_axis_viewports
 ! *sh* 9/01
  
@@ -35476,7 +35529,7 @@ ppl list yaxis
           LEFT AXIS= ON  RIGHT AXIS= ON 
          AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          YORG= 1.40E+00  AUTO LABELLING
-*** Running test: bn_strings.jnl
+*** Running ferret script: bn_strings.jnl
 ! bn_strings.jnl
  
 ! 7/01 - test string syntax and behaviors
@@ -35768,8 +35821,8 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid XABSTRACT
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -35785,9 +35838,9 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid YABSTRACT
     GRID YABSTRACT
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- ABSTRACT  Y             99999999 r   1                    1.E+08
+ ABSTRACT  Y             99999999 r   1                    1.E+08              full
  normal    Z
  normal    T
  normal    E
@@ -35802,10 +35855,10 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid ZABSTRACT
     GRID ZABSTRACT
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
- ABSTRACT  Z             99999999 r   1                    1.E+08
+ ABSTRACT  Z             99999999 r   1                    1.E+08              full
  normal    T
  normal    E
  normal    F
@@ -35819,11 +35872,11 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid TABSTRACT
     GRID TABSTRACT
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- ABSTRACT  T             99999999 r   1                    1.E+08
+ ABSTRACT  T             99999999 r   1                    1.E+08              full
  normal    E
  normal    F
 let a = TSEQUENCE({"a","b","c","d","e"})
@@ -36044,7 +36097,7 @@ list a[i=@rsum]
  4   / 4:""
  
 set mode/last stupid
-*** Running test: bn_axcontrol.jnl
+*** Running ferret script: bn_axcontrol.jnl
  ! NOAA/PMEL TMAP
  ! Program FERRET (alpha)
  ! Version 5.33 - 07/12/01
@@ -36083,7 +36136,7 @@ fill/l=1/axes sst
  
 can view
 polygon/thick/color=red/palette=blue/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
-*** Running test: bn_vec_curv.jnl
+*** Running ferret script: bn_vec_curv.jnl
 ! bn_vec_curv.jnl
 !
 ! vector plots with curvilinear coordinates
@@ -36154,7 +36207,7 @@ vec/title="Stretched grid" a,b,mxpage,mypage
  
 can mode meta
 set mode logo
-*** Running test: bn_delimited_read.jnl
+*** Running ferret script: bn_delimited_read.jnl
 ! bn_delimited_read.jnl
 ! 10/01 *sh*
  
@@ -37214,7 +37267,7 @@ columns/var="aa.b"  bn_delimited_read_date_time.dat
 file/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
 cancel mode ignore
  
-*** Running test: bn541_bug_fixes.jnl
+*** Running ferret script: bn541_bug_fixes.jnl
 ! bn541_bug_fixes.jnl
 ! test various fixes that went into version 5.41
 ! 3/02 *acm*
@@ -37785,9 +37838,9 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G003)
     GRID (G003)
- name       axis              # pts   start                end
- (AX003)   X                   10 r   1                    91
- YAX1_100  Y                  100 r   1                    100
+ name       axis              # pts   start                end                 subset
+ (AX003)   X                   10 r   1                    91                  9 pts
+ YAX1_100  Y                  100 r   1                    100                 full
  normal    Z
  normal    T
  normal    E
@@ -38184,7 +38237,7 @@ list b[d=1]
           2.000
  
  
-*** Running test: bn_cancel_axes.jnl
+*** Running ferret script: bn_cancel_axes.jnl
 ! bn_cancel_axes.jnl
  
 let ind1 = 1*i
@@ -38431,7 +38484,7 @@ T0 = 01-JAN-0000 00:00:00
        3>  16-AUG 06:38:15       2191.455   01-JUL 14:54:36        5478.637
        4>  15-NOV 14:05:33       2191.455   30-SEP 22:21:54        7670.092
  
-*** Running test: bn542_bug_fixes.jnl
+*** Running ferret script: bn542_bug_fixes.jnl
 ! bn542_bug_fixes.jnl
 ! test various fixes that went into version 5.42
 ! 10/02 *acm*
@@ -38639,7 +38692,7 @@ GO bn_reset
 cancel mode verify
 ! GO err541_date_delim
  
-*** Running test: bn_subspan_modulo.jnl
+*** Running ferret script: bn_subspan_modulo.jnl
 ! bn_subspan_modulo.jnl
 ! *sh* 11/02
  
@@ -38948,8 +39001,8 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    7    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VREG on X axis:     7     7 dset:   1
+ strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  reading VREG     M:  1 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VREG on X axis:     6     6 dset:   1
         ....
@@ -38964,18 +39017,20 @@ lsxn/x=0 $1 ! void point below, alone (via modulo)
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    5    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VREG on X axis:     5     7 dset:   1
+ strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  reading VREG     M:  3 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VREG on X axis:     5     6 dset:   1
           15.00  16.00   ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VREG on X axis:     0     7 dset:   1
+ strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip moduloing VREG on X axis:     0     6 dset:   1
  reading VREG     M:  8 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing VREG on X axis:     1     6 dset:   1
+ doing modulo-void-filling VREG on X axis:     0     6 dset:   1
            ....  11.00  12.00  13.00  14.00  15.00  16.00   ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -39211,16 +39266,16 @@ l200n/l=12:21/i=-19:-9 $2_void[x=@fnr,t=@fnr]
 ! test shift
 l200n/l=12:21/i=-19:-9 $2[x=@shf:2,t=@shf:-2]
  !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_reg[x=@shf:2,t=@shf:-2]
- 14-SEP      / 12:  104.0  105.0  106.0   ....  101.0  102.0  103.0  104.0  105.0  106.0   ....
- 15-JAN-0002 / 13:  134.0  135.0  136.0   ....  131.0  132.0  133.0  134.0  135.0  136.0   ....
+ 14-SEP      / 12:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 15-JAN-0002 / 13:  134.0  135.0  136.0   ....  131.0   ....  133.0  134.0  135.0  136.0   ....
  14-FEB-0002 / 14:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
- 16-MAR-0002 / 15:   14.0   15.0   16.0   ....   11.0   12.0   13.0   14.0   15.0   16.0   ....
- 15-APR-0002 / 16:   44.0   45.0   46.0   ....   41.0   42.0   43.0   44.0   45.0   46.0   ....
- 15-MAY-0002 / 17:   74.0   75.0   76.0   ....   71.0   72.0   73.0   74.0   75.0   76.0   ....
- 15-SEP-0002 / 18:  104.0  105.0  106.0   ....  101.0  102.0  103.0  104.0  105.0  106.0   ....
- 15-JAN-0003 / 19:  134.0  135.0  136.0   ....  131.0  132.0  133.0  134.0  135.0  136.0   ....
+ 16-MAR-0002 / 15:   14.0   15.0   16.0   ....   11.0   ....   13.0   14.0   15.0   16.0   ....
+ 15-APR-0002 / 16:   44.0   45.0   46.0   ....   41.0   ....   43.0   44.0   45.0   46.0   ....
+ 15-MAY-0002 / 17:   74.0   75.0   76.0   ....   71.0   ....   73.0   74.0   75.0   76.0   ....
+ 15-SEP-0002 / 18:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 15-JAN-0003 / 19:  134.0  135.0  136.0   ....  131.0   ....  133.0  134.0  135.0  136.0   ....
  14-FEB-0003 / 20:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
- 16-MAR-0003 / 21:   14.0   15.0   16.0   ....   11.0   12.0   13.0   14.0   15.0   16.0   ....
+ 16-MAR-0003 / 21:   14.0   15.0   16.0   ....   11.0   ....   13.0   14.0   15.0   16.0   ....
  
 ! test strides
 l200n/order=x $2[l=1,i=0:14]
@@ -39236,8 +39291,8 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
  eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  allocate dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
  strip regrid on X: V2D_REG --> (G004)           @XACT
- found   V2D_REG  M: 69 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_REG  M: 70 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   V2D_REG  M: 71 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  V2D_REG  M: 72 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
            ....  12.00  14.00  16.00  11.00  13.00  15.00   ....
 l200n/order=x $2[l=1,i=0:14:7]
@@ -39246,7 +39301,7 @@ l200n/order=x $2[l=1,i=0:14:7]
 set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  !-> list/width=200/nohead v2d_reg[i=1,l=1:15:2]
  dealloc  dynamic grid (G004)          (AX001)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- -DELETE V2D_REG  M: 71 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE V2D_REG  M: 73 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
  dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
@@ -39257,9 +39312,9 @@ set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  strip moduloing V2D_REG on T axis:     1    15 dset:   1
  rdstride V2D_REG  C:  9 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
  doing moduloing V2D_REG on T axis:     1     5 dset:   1
- -DELETE V2D_REG  M: 71 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- nulrgd  V2D_REG  M: 71 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_REG  M: 72 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
+ -DELETE V2D_REG  M: 73 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
+ nulrgd  V2D_REG  M: 73 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ -DELETE V2D_REG  M: 74 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
  16-JAN-0000 / 1:   11.0
  16-MAR-0000 / 2:   71.0
@@ -39467,7 +39522,7 @@ lsx $1  ! default avoids void points
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GFJ2            XIRREG_SUBNORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 78 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 80 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : X[GX=XIRREG_SUBSPAN] -40 + 10
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 6 points (X)
@@ -39477,9 +39532,9 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    7    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VIRR on X axis:     7     7 dset:   1
- reading VIRR     M: 79 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 81 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VIRR on X axis:     6     6 dset:   1
         ....
 lsxn/x=0 $1 ! void point below, alone (via modulo)
@@ -39487,24 +39542,26 @@ lsxn/x=0 $1 ! void point below, alone (via modulo)
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  strip moduloing VIRR on X axis:     0     0 dset:   1
- reading VIRR     M: 81 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 83 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing VIRR on X axis:     6     6 dset:   1
         ....
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    5    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VIRR on X axis:     5     7 dset:   1
- reading VIRR     M: 83 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 85 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VIRR on X axis:     5     6 dset:   1
           15.00  16.00   ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VIRR on X axis:     0     7 dset:   1
- reading VIRR     M: 85 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip moduloing VIRR on X axis:     0     6 dset:   1
+ reading VIRR     M: 87 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing VIRR on X axis:     1     6 dset:   1
+ doing modulo-void-filling VIRR on X axis:     0     6 dset:   1
            ....  11.00  12.00  12.10  14.00  15.00  16.00   ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -39740,16 +39797,16 @@ l200n/l=12:21/i=-19:-9 $2_void[x=@fnr,t=@fnr]
 ! test shift
 l200n/l=12:21/i=-19:-9 $2[x=@shf:2,t=@shf:-2]
  !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_irr[x=@shf:2,t=@shf:-2]
- 14-SEP 23      / 12:  104.2  105.2  106.2   ....  101.2  102.2  102.3  104.2  105.2  106.2   ....
- 15-JAN-0002 23 / 13:  134.2  135.2  136.2   ....  131.2  132.2  132.3  134.2  135.2  136.2   ....
+ 14-SEP 23      / 12:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 15-JAN-0002 23 / 13:  134.2  135.2  136.2   ....  131.2   ....  132.3  134.2  135.2  136.2   ....
  14-FEB-0002 14 / 14:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
- 16-MAR-0002 05 / 15:   14.0   15.0   16.0   ....   11.0   12.0   12.1   14.0   15.0   16.0   ....
- 15-APR-0002 17 / 16:   45.0   46.0   47.0   ....   42.0   43.0   43.1   45.0   46.0   47.0   ....
- 15-MAY-0002 17 / 17:   73.2   74.2   75.2   ....   70.2   71.2   71.3   73.2   74.2   75.2   ....
- 15-SEP-0002 05 / 18:  104.2  105.2  106.2   ....  101.2  102.2  102.3  104.2  105.2  106.2   ....
- 16-JAN-0003 05 / 19:  134.2  135.2  136.2   ....  131.2  132.2  132.3  134.2  135.2  136.2   ....
+ 16-MAR-0002 05 / 15:   14.0   15.0   16.0   ....   11.0   ....   12.1   14.0   15.0   16.0   ....
+ 15-APR-0002 17 / 16:   45.0   46.0   47.0   ....   42.0   ....   43.1   45.0   46.0   47.0   ....
+ 15-MAY-0002 17 / 17:   73.2   74.2   75.2   ....   70.2   ....   71.3   73.2   74.2   75.2   ....
+ 15-SEP-0002 05 / 18:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 16-JAN-0003 05 / 19:  134.2  135.2  136.2   ....  131.2   ....  132.3  134.2  135.2  136.2   ....
  14-FEB-0003 20 / 20:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
- 16-MAR-0003 11 / 21:   14.0   15.0   16.0   ....   11.0   12.0   12.1   14.0   15.0   16.0   ....
+ 16-MAR-0003 11 / 21:   14.0   15.0   16.0   ....   11.0   ....   12.1   14.0   15.0   16.0   ....
  
 ! test strides
 l200n/order=x $2[l=1,i=0:14]
@@ -39765,8 +39822,8 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
  eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  allocate dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
  strip regrid on X: V2D_IRR --> (G006)           @XACT
- found   V2D_IRR  M:146 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_IRR  M:147 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   V2D_IRR  M:150 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  V2D_IRR  M:151 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
            ....  12.00  14.00  16.00  11.00  12.10  15.00   ....
 l200n/order=x $2[l=1,i=0:14:7]
@@ -39775,7 +39832,7 @@ l200n/order=x $2[l=1,i=0:14:7]
 set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  !-> list/width=200/nohead v2d_irr[i=1,l=1:15:2]
  dealloc  dynamic grid (G006)          (AX005)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- -DELETE V2D_IRR  M:148 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE V2D_IRR  M:152 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
  dealloc  dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
@@ -39786,9 +39843,9 @@ set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  strip moduloing V2D_IRR on T axis:     1    15 dset:   1
  rdstride V2D_IRR  C:  9 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
  doing moduloing V2D_IRR on T axis:     1     5 dset:   1
- -DELETE V2D_IRR  M:148 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- nulrgd  V2D_IRR  M:148 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_IRR  M:149 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
+ -DELETE V2D_IRR  M:152 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
+ nulrgd  V2D_IRR  M:152 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ -DELETE V2D_IRR  M:153 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
  16-JAN-0000 / 1:   11.0
  15-MAR-0000 / 2:   70.2
@@ -39882,7 +39939,7 @@ list $1_strings[i=1013:1024] 	! via IS_MODULO
  14642    / 1024:"a2"
  
  
-*** Running test: bn_dots.jnl
+*** Running ferret script: bn_dots.jnl
 ! PLOT/SYMBOL=DOT  qualifiers
 ! *acm* 12/02
 ! ACM 4/2005 set mode meta to save this plot for the metafile checks.
@@ -39902,7 +39959,7 @@ plot/symbol=dot/size=0.5/over/i=1:1000 -0.5*sin(62.8*(i+10) )
  
 vector/i=1:5/j=1:5 0.*(i+j),0*(i+j)
 set mode logo
-*** Running test: bn_lev_symbols.jnl
+*** Running ferret script: bn_lev_symbols.jnl
 ! Test symbols which capture the latest LEVELS settings
 ! LEV_TEXT  The argument, if any, to the LEV qualifier
 ! LEV_MIN  Minimum level
@@ -39951,7 +40008,7 @@ LEV_TEXT = "(0,80,3),(56),DARK(56)"
 LEV_MIN = "0"
 LEV_MAX = "81"
 LEV_NUM = "28"
-LEV_DEL = "3"
+LEV_DEL = "irregular"
  
 contour/over/i=1:15/j=1:5/lev=50 i*j
 sho sym lev*
@@ -39977,7 +40034,7 @@ LEV_MIN = "33"
 LEV_MAX = "33"
 LEV_NUM = "1"
 LEV_DEL = "none"
-*** Running test: bn_mode_logo_lab.jnl
+*** Running ferret script: bn_mode_logo_lab.jnl
  
 ! bn_mode_logo_lab.jnl
 ! cancel both logo and labels
@@ -40010,14 +40067,14 @@ show modes
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
       DESPERATE     CANCELLED      2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      metafile.plt
+      METAFILE      CANCELLED      .gif
       PPLLIST       CANCELLED      ppllist.out
       GUI           CANCELLED
       LOGO          CANCELLED
@@ -40072,7 +40129,7 @@ polygon/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
 cancel view
 set mode logo
 set mode labels
-*** Running test: bn_modulo_attribute.jnl
+*** Running ferret script: bn_modulo_attribute.jnl
 ! Ferret V5.50 m
  
 ! Modulo attribute can take numerical values to indicate
@@ -40111,7 +40168,7 @@ T0 = %%
 T0 = %%
    Axis span (to cell edges) = 40 (modulo length = axis span)
  
-*** Running test: bn550_bug_fixes.jnl
+*** Running ferret script: bn550_bug_fixes.jnl
 ! bn550_bug_fixes.jnl
 ! test various fixes that went into version 5.5
 ! 10/02 *acm*
@@ -40128,7 +40185,7 @@ use err542_poly_over_calendar.nc
 shade pc
 poly/over/color=red/line=2/title="polygon" {220,240,280,250},{-20,70,40,-30}
  
-*** Running test: bn551_bug_fixes.jnl
+*** Running ferret script: bn551_bug_fixes.jnl
 ! bn551_bug_fixes.jnl
 ! test various fixes that went into version 5.51
 ! 2/03 *acm*
@@ -40366,7 +40423,7 @@ GO err550_dots_thickpens.jnl
 ! also for vector plots having short vectors that are plotted with dots.
  
 plot/sym=dot/color=8/i=1:10 i
-*** Running test: bn_multi_line_labels.jnl
+*** Running ferret script: bn_multi_line_labels.jnl
      ! bn_multi_line_labels.jnl
 ! March 31, 2003
 !
@@ -40494,7 +40551,7 @@ the at sign in front of P2 not recognized"
 ppl plot
  
 ppl rlabs,4,0
-*** Running test: bn552_bug_fixes.jnl
+*** Running ferret script: bn552_bug_fixes.jnl
 ! bn552_bug_fixes.jnl
 ! test various fixes that went into version 5.52
 ! 3/03 *acm*
@@ -40760,10 +40817,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G003)
     GRID (G003)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -40978,7 +41035,7 @@ use bad_taxis.nc
 list/t=1-jan-1990 dummy
  
 SET MODE/LAST IGNORE_ERROR
-*** Running test: bn_set_var_scale_off.jnl
+*** Running ferret script: bn_set_var_scale_off.jnl
 ! Qualifiers /SCALEFACTOR=  and /OFFSET  for SET VARIABLE.
 ! Only for NetCDF datasets
 ! Applied after NetCDF Scale_factor and add_offset attributes
@@ -41023,7 +41080,7 @@ SET VAR/OFFSET=1 x1
 SET VAR/SCALE=10 x2
  
 SET MODE/LAST IGNORE_ERROR
-*** Running test: bn_longvarnames.jnl
+*** Running ferret script: bn_longvarnames.jnl
 ! variable names up to 128 characters long
 ! 3/2006 make them 127 to be able to add the null terminator for C strings
 !        else not used correctly in linked-list attribute structure.
@@ -41060,8 +41117,8 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is XABSTRACT
  Last successful data access was on grid XABSTRACT
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -41124,7 +41181,7 @@ LIST/K=2/L=3 a234567890b234567890c234567890d234567890e234567890f234567890g234567
  2   / 2:   7.00  11.00  15.00  19.00  23.00
  3   / 3:   9.00  15.00  21.00  27.00  33.00
  4   / 4:  11.00  19.00  27.00  35.00  43.00
-*** Running test: bn_shakey.jnl
+*** Running ferret script: bn_shakey.jnl
 ! Changes to shade key:
 ! - Default size is a little bigger
 ! - To put key labels on the left or bottom of the key, multiply the size by -1
@@ -41249,7 +41306,7 @@ ppl list shakey
 
          X LO     X HI     Y LO     Y HI
          1.20     9.20    -1.40    -1.31
-*** Running test: bn_eof_4d.jnl
+*** Running ferret script: bn_eof_4d.jnl
 ! bn_eof_4d.jnl
 ! test EOFs on XYZT grids
  
@@ -41347,7 +41404,6 @@ set view ul
 plot eofti[i=1,k=1], eofti[i=2,k=1], eofti[i=3,k=1]
 list eofti[l=1:5,i=1,k=1]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=14-AUG-1982 11:00:13-JAN-1983 13:00
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -41363,7 +41419,6 @@ set view ur
 plot eofti[i=1,k=5], eofti[i=2,k=5], eofti[i=3,k=5]
 list eofti[l=1:5,i=1,k=5]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=14-AUG-1982 11:00:13-JAN-1983 13:00
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -41380,7 +41435,6 @@ set view ll
 plot eofti[i=1,k=8], eofti[i=2,k=8], eofti[i=3,k=8]
 list eofti[l=1:5,i=1,k=8]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=14-AUG-1982 11:00:13-JAN-1983 13:00
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -41396,7 +41450,6 @@ set view lr
 plot eofti[i=1,k=4], eofti[i=2,k=10], eofti[i=3,k=10]
 list eofti[l=1:5,i=1,k=10]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=14-AUG-1982 11:00:13-JAN-1983 13:00
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -41460,7 +41513,7 @@ list/nohead/i=1:5/j=3/k=9 eofst
  
  
 exit/script
-*** Running test: bn_abstract_axis_names.jnl
+*** Running ferret script: bn_abstract_axis_names.jnl
 ! bn_abstract_axis_names.jnl
 ! acm 6/12/03
 !
@@ -41519,10 +41572,10 @@ cancel axis long
 use confuse_xz.nc
 sh grid r
     GRID GAP1
- name       axis              # pts   start                end
- HORIZ     X                   10 r   1                    10
+ name       axis              # pts   start                end                 subset
+ HORIZ     X                   10 r   1                    10                  full
  normal    Y
- XXX       Z                    6 r   -4                   1
+ XXX       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -41531,10 +41584,10 @@ can data 1
 use confuse_yz.nc
 sh grid s
     GRID GBA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- THE       Y                    8 r   10                   80
- XXX       Z                    6 r   -4                   1
+ THE       Y                    8 r   10                   80                  full
+ XXX       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -41543,11 +41596,11 @@ can data 1
 use confuse_yt.nc
 sh grid u
     GRID GGY1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- THE       Y                    8 r   10                   80
+ THE       Y                    8 r   10                   80                  full
  normal    Z
- LONG      T                    7 r   1                    13
+ LONG      T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
@@ -41555,11 +41608,11 @@ can data 1
 use confuse_yzt.nc
 sh grid v
     GRID GFA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- THE       Y                    8 r   10                   80
- XXX       Z                    6 r   -4                   1
- LONG      T                    7 r   1                    13
+ THE       Y                    8 r   10                   80                  full
+ XXX       Z                    6 r   -4                   1                   full
+ LONG      T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
@@ -41615,10 +41668,10 @@ cancel axis ddd
 use confuse_xz.nc
 sh grid r
     GRID GAP1
- name       axis              # pts   start                end
- AAA       X                   10 r   1                    10
+ name       axis              # pts   start                end                 subset
+ AAA       X                   10 r   1                    10                  full
  normal    Y
- CCC       Z                    6 r   -4                   1
+ CCC       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -41627,10 +41680,10 @@ can data 1
 use confuse_yz.nc
 sh grid s
     GRID GBA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- BBB       Y                    8 r   10                   80
- CCC       Z                    6 r   -4                   1
+ BBB       Y                    8 r   10                   80                  full
+ CCC       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -41639,11 +41692,11 @@ can data 1
 use confuse_yt.nc
 sh grid u
     GRID GGY1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- BBB       Y                    8 r   10                   80
+ BBB       Y                    8 r   10                   80                  full
  normal    Z
- DDD       T                    7 r   1                    13
+ DDD       T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
@@ -41651,15 +41704,15 @@ can data 1
 use confuse_yzt.nc
 sh grid v
     GRID GFA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- BBB       Y                    8 r   10                   80
- CCC       Z                    6 r   -4                   1
- DDD       T                    7 r   1                    13
+ BBB       Y                    8 r   10                   80                  full
+ CCC       Z                    6 r   -4                   1                   full
+ DDD       T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
-*** Running test: bn_many_polygons.jnl
+*** Running ferret script: bn_many_polygons.jnl
 ! testing large number of polygons in a plot.  Map plot has
 ! 130501 polygons; previously we had an upper limit of 100K polygons
  
@@ -41687,7 +41740,7 @@ let ytriangle = ysequence({-1,1,-1})
 let xpts = 180 + 30*randu(i[i=1:10])
 let ypts = 30*randu(1+i[i=1:10])
 polygon xtriangle+xpts, ytriangle+ypts, i[i=1:10]
-*** Running test: bn_fill_irregular.jnl
+*** Running ferret script: bn_fill_irregular.jnl
 ! FILL on vars with irregular axes
  
 use gtbc011
@@ -41708,95 +41761,116 @@ fill v2d_irr[t=1-jan-1990:1-jan-1995]
  
 use coads_clim_irreg.des
 fill/x=180 sst
-*** Running test: bn_xml_output.jnl
+*** Running ferret script: bn_xml_output.jnl
 !bn_xml_output.jnl
 ! new-V553 output in XML-style format
 ! Illustrate the SHOW commands with /XML xml-style output
 ! V5.80 11/04 new tests for SHOW VAR/XML; global variables.
  
-! 22-Feb-2005 use SHO AXIS/XML `temp,return=taxis` instead
+! 22-Feb-2005 USE SHO AXIS/XML `temp,return=taxis` instead
 ! of naming the axes; other axes of the same name (e.g. TIME)
 ! may have been defined in other benchmark scrips.
  
-USE gtsa056_2.cdf
+USE levitus_climatology.cdf
  
 SHO DATA/XML
 <datasets>
-<dataset name="./gtsa056_2.cdf" default="true">
+<dataset name="./levitus_climatology.cdf" default="true">
 <title> </title>
 <var name="TEMP" />
-<var name="U" />
-<var name="W" />
-<var name="TAUX" />
 </dataset>
 </datasets>
  
-SHO DATA/VAR/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="true">
-<title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
-   <value><![CDATA[deg. C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DT1">
+SHO GRID/XML `temp,return=grid`
+ !-> SHO GRID/XML GMS1
+<grid name="GMS1">
 <axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME</taxis>
+<xaxis>XAXLEVITR1_160</xaxis>
+<yaxis>YAXLEVITR1_90</yaxis>
+<zaxis>ZAXLEVITR1_1</zaxis>
 </axes>
 </grid>
-</var>
-<var name="U">
+ 
+SHO AXIS/XML `temp,return=zaxis`
+ !-> SHO AXIS/XML ZAXLEVITR1_1
+<axes>
+<axis name="ZAXLEVITR1_1">
+<attribute name="direction" type="char">
+   <value><![CDATA[K]]></value>
+</attribute>
 <attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
+   <value><![CDATA[METERS]]></value>
 </attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL VELOCITY]]></value>
+<attribute name="length" type="short">
+   <value>1</value>
 </attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
+<attribute name="start" type="double">
+   <value>0</value>
 </attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
+<attribute name="end" type="double">
+   <value>0</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+<attribute name="positive" type="char">
+   <value><![CDATA[down]]></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>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="PS3DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME</taxis>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[ZAXLEVITR1_1]]></value>
+</attribute>
+</axis>
 </axes>
-</grid>
-</var>
-<var name="W">
+SHO AXIS/XML `temp,return=taxis`
+ !-> SHO AXIS/XML NORMAL
+ 
+can dat/all
+ 
+! make some short files
+let/units="meters" myvar = 7
+save/clobber/file=a.nc myvar
+ 
+LET ddat = ZSEQUENCE({1126,1136,1146,1156,1166})
+save/clobber/file=b.nc ddat
+can var/all
+go bn_reset
+cancel mode verify
+ 
+USE a.nc
+USE b.nc
+ 
+! Define a dataset variable
+! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
+LET/D=a temp_av = ddat[d=2,X=@AVE]
+ 
+SHOW DATA/XML
+<datasets>
+<dataset name="./a.nc" default="false">
+<title> </title>
+<var name="MYVAR" />
+<var name="temp_av" />
+</dataset>
+<dataset name="./b.nc" default="true">
+<title> </title>
+<var name="DDAT" />
+</dataset>
+</datasets>
+SHO DATA/VAR/XML 1
+<datasets>
+<dataset name="./a.nc" default="false">
+<title> </title>
+<var name="MYVAR">
 <attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
+   <value><![CDATA[meters]]></value>
 </attribute>
 <attribute name="long_name" type="char">
-   <value><![CDATA[VERTICAL VELOCITY]]></value>
+   <value><![CDATA[7]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
    <value>-1.E+34</value>
@@ -41808,23 +41882,16 @@ SHO DATA/VAR/XML
    <value><![CDATA[FLOAT]]></value>
 </attribute>
 <attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="PS3DW1">
+<grid name="GSI1">
 <axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZW</zaxis>
-<taxis>TIME</taxis>
 </axes>
 </grid>
 </var>
-<var name="TAUX">
-<attribute name="units" type="char">
-   <value><![CDATA[dynes/cm**2]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL WIND STRESS]]></value>
+<var name="temp_av">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[D=2,X=@AVE]]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
    <value>-1.E+34</value>
@@ -41835,204 +41902,33 @@ SHO DATA/VAR/XML
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+<attribute name="long_name" type="char">
+   <value><![CDATA[DDAT[D=2,X=@AVE]]]></value>
 </attribute>
-<grid name="PS2DU1">
+<grid name="GRR1">
 <axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<taxis>TIME</taxis>
+<zaxis>ZAX1_5</zaxis>
 </axes>
 </grid>
 </var>
 </dataset>
 </datasets>
 <axes>
-<axis name="PSXT">
-<attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LONGITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>130.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>289.5</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSXT]]></value>
-</attribute>
-</axis>
-<axis name="PSXU">
-<attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LONGITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>131</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>290</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSXU]]></value>
-</attribute>
-</axis>
-<axis name="PSYT">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-28.83607</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>48.56797</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYT]]></value>
-</attribute>
-</axis>
-<axis name="PSYU">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-27.67214</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>50.00005</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYU_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYU]]></value>
-</attribute>
-</axis>
-<axis name="PSZT">
+<axis name="ZAX1_5">
 <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>27</value>
-</attribute>
-<attribute name="start" type="double">
    <value>5</value>
 </attribute>
-<attribute name="end" type="double">
-   <value>3824</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-<axis name="PSZW">
-<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>27</value>
-</attribute>
 <attribute name="start" type="double">
-   <value>10</value>
+   <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>4149</value>
-</attribute>
-<attribute name="positive" type="char">
-   <value><![CDATA[down]]></value>
+   <value>5</value>
 </attribute>
 <attribute name="point_spacing" type="char">
-   <value>uneven</value>
+   <value><![CDATA[even]]></value>
 </attribute>
 <attribute name="modulo" type="char">
    <value>no</value>
@@ -42040,777 +41936,99 @@ SHO DATA/VAR/XML
 <attribute name="infile_datatype" type="char">
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZW_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZW]]></value>
-</attribute>
-</axis>
-<axis name="TIME">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>168</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>1983-06-07 13: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[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
+<attribute name="axis" type="char">
+   <value><![CDATA[Z]]></value>
 </attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[TIME]]></value>
+   <value><![CDATA[ZAX1_5]]></value>
 </attribute>
 </axis>
 </axes>
  
-SHO GRID/XML ps3du1
-<grid name="PS3DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME</taxis>
-</axes>
-</grid>
+CAN DAT/ALL
  
-SHO AXIS/XML `temp,return=xaxis`
- !-> SHO AXIS/XML PSXT
-<axes>
-<axis name="PSXT">
-<attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LONGITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>130.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>289.5</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSXT]]></value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=yaxis`
- !-> SHO AXIS/XML PSYT
-<axes>
-<axis name="PSYT">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-28.83607</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>48.56797</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYT]]></value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=zaxis`
- !-> SHO AXIS/XML PSZT
-<axes>
-<axis name="PSZT">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>3824</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=taxis`
- !-> SHO AXIS/XML TIME
-<axes>
-<axis name="TIME">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>168</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>1983-06-07 13: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[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[TIME]]></value>
-</attribute>
-</axis>
-</axes>
+! tests of SHOW VAR/XML for global variables.
+CAN DATA/ALL
+CAN VAR/ALL
+ 
+USE a
+USE b
  
 ! Define a dataset variable
-! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
-LET/D=gtsa056_2 temp_180 = temp[X=160E:160W at AVE]
+LET/D=b temp_20 ddat[x=1:2 at SUM]
  
-USE coads_climatology
+! Define a global variable
+LET t30 = ddat[x=1:3 at SUM]
  
-SHOW DATA/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="false">
-<title> </title>
-<var name="TEMP" />
-<var name="U" />
-<var name="W" />
-<var name="TAUX" />
-<var name="TEMP_180" />
-</dataset>
-<dataset name="./coads_climatology.cdf" default="true">
-<title> </title>
-<var name="SST" />
-</dataset>
-</datasets>
-SHO DATA/VAR/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="false">
-<title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
-   <value><![CDATA[deg. C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
+! Another variable, setting title, units, bad flag.
+LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral" salty = temp[x=@iin]
+ 
+! Define a constant
+LET pi = 3.14
+ 
+! Another variable, irrelevant in the current context
+LET my_a = a*12
+ 
+! This lists all the variables except my_a
+ 
+SHO VAR/XML
+<global>
+<var name="TEMP_20[D=./b.nc]">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[X=1:2 at SUM]]]></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[FLOAT]]></value>
-</attribute>
-<grid name="PS3DT1">
+<grid name="GRR1">
 <axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME</taxis>
+<zaxis>ZAX1_5</zaxis>
 </axes>
 </grid>
 </var>
-<var name="U">
-<attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL VELOCITY]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
+<var name="PI">
+<attribute name="definition" type="char">
+   <value><![CDATA[3.14]]></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[FLOAT]]></value>
-</attribute>
-<grid name="PS3DU1">
+<grid name="ABSTRACT">
 <axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME</taxis>
 </axes>
 </grid>
 </var>
-<var name="W">
-<attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[VERTICAL VELOCITY]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
+<var name="T30">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[X=1:3 at SUM]]]></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[FLOAT]]></value>
-</attribute>
-<grid name="PS3DW1">
+<grid name="GRR1">
 <axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZW</zaxis>
-<taxis>TIME</taxis>
+<zaxis>ZAX1_5</zaxis>
 </axes>
 </grid>
 </var>
-<var name="TAUX">
-<attribute name="units" type="char">
-   <value><![CDATA[dynes/cm**2]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL WIND STRESS]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
+</global>
+ 
+! Now change datasets, so my_a has a context, but t30
+! does not. temp_20 is listed becaUSE it is defined on a dataset
+ 
+SET DATA a
+SHO VAR/XML
+<global>
+<var name="TEMP_20[D=./b.nc]">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[X=1:2 at SUM]]]></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[FLOAT]]></value>
-</attribute>
-<grid name="PS2DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<taxis>TIME</taxis>
-</axes>
-</grid>
-</var>
-<var name="temp_180">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[X=160E:160W at AVE]]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[TEMP[X=160E:160W at AVE]]]></value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="PSXT">
-<attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LONGITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>130.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>289.5</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSXT]]></value>
-</attribute>
-</axis>
-<axis name="PSXU">
-<attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LONGITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>131</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>290</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSXU]]></value>
-</attribute>
-</axis>
-<axis name="PSYT">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-28.83607</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>48.56797</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYT]]></value>
-</attribute>
-</axis>
-<axis name="PSYU">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-27.67214</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>50.00005</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYU_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYU]]></value>
-</attribute>
-</axis>
-<axis name="PSZT">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>3824</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-<axis name="PSZW">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>10</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>4149</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZW_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZW]]></value>
-</attribute>
-</axis>
-<axis name="TIME">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>168</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>1983-06-07 13: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[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[TIME]]></value>
-</attribute>
-</axis>
-</axes>
-<dataset name="./coads_climatology.cdf" default="true">
-<title> </title>
-<var name="SST">
-<attribute name="units" type="char">
-   <value><![CDATA[Deg C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[SEA SURFACE TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="GSQ1">
+<grid name="GRR1">
 <axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME1</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="COADSX">
-<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>180</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>21</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>379</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="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSX]]></value>
-</attribute>
-</axis>
-<axis name="COADSY">
-<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>90</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-89</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>89</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[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSY]]></value>
-</attribute>
-</axis>
-<axis name="TIME1">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>3</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>0000-01-16 06:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>0000-03-17 02:58:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
-   <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
-   <value><![CDATA[0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
-   <value>8765.82</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[TIME]]></value>
-</attribute>
-</axis>
-</axes>
- 
- 
-! tests of SHOW VAR/XML for global variables.
-CAN DATA/ALL
-CAN VAR/ALL
- 
-USE coads_climatology
-USE gtsa056_2
- 
-! Define a dataset variable
-LET/D=gtsa056_2 temp_20 temp[Z=0:20 at SUM]
- 
-! Define a global variable
-LET t30 = temp[Z=0:30 at SUM]
- 
-! Another variable, setting title, units, bad flag.
-LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral of SALT" salty = salt[Z=@IIN]
- 
-! Define a constant
-LET pi = 3.14
- 
-! Another variable, irrelevant in the current context
-LET my_sst = sst*12
- 
-! This lists all the variables except my_sst
- 
-SHO VAR/XML
-<global>
-<var name="TEMP_20[D=./gtsa056_2.cdf]">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=0:20 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME1</taxis>
+<zaxis>ZAX1_5</zaxis>
 </axes>
 </grid>
 </var>
@@ -42826,59 +42044,13 @@ SHO VAR/XML
 </axes>
 </grid>
 </var>
-<var name="T30">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=0:30 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME1</taxis>
-</axes>
-</grid>
-</var>
 </global>
  
-! Now change datasets, so my_sst has a context, but t30
-! does not temp_20 is listed because it is defined on a dataset
+! Change default dataset. Now we should just see pi and my_a
  
-SET DATA coads_climatology
-SHO VAR/XML
+CAN DATA b
+SHOW VAR/XML
 <global>
-<var name="TEMP_20[D=./gtsa056_2.cdf]">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=0:20 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME1</taxis>
-</axes>
-</grid>
-</var>
-<var name="MY_SST">
-<attribute name="definition" type="char">
-   <value><![CDATA[SST*12]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME</taxis>
-</axes>
-</grid>
-</var>
 <var name="PI">
 <attribute name="definition" type="char">
    <value><![CDATA[3.14]]></value>
@@ -42893,66 +42065,46 @@ SHO VAR/XML
 </var>
 </global>
  
-! Change default dataset. Now we should just see pi and my_sst
+! 8/7/2007
+! new form for output of a var whose definition contains quotes
+CANCEL DATA/ALL
+CANCEL VAR/ALL
  
-CAN DATA gtsa056_2
+let tvar = t[gt=month_reg]
+save/clobber/file=a.nc tvar
+ 
+USE a
+LET t3 = tvar[t="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]
 SHOW VAR/XML
 <global>
-<var name="MY_SST">
-<attribute name="definition" type="char">
-   <value><![CDATA[SST*12]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME</taxis>
-</axes>
-</grid>
-</var>
-<var name="PI">
+<var name="T3">
 <attribute name="definition" type="char">
-   <value><![CDATA[3.14]]></value>
+   <value><![CDATA[TVAR[T="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]]]></value>
 </attribute>
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="ABSTRACT">
+<grid name="GSI1">
 <axes>
 </axes>
 </grid>
 </var>
-</global>
- 
-! 8/7/2007
-! new form for output of a var whose definition contains quotes
-CANCEL DATA/ALL
-CANCEL VAR/ALL
- 
-USE coads_climatology
-LET t3 = sst[x=180,y=1,t="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]
-SHOW VAR/XML
-<global>
-<var name="T3">
+<var name="TVAR">
 <attribute name="definition" type="char">
-   <value><![CDATA[SST[X=180,Y=1,T="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]]]></value>
+   <value><![CDATA[T[GT=MONTH_REG]]]></value>
 </attribute>
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="GSQ1">
+<grid name="GSI1">
 <axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
+<taxis>MONTH_REG</taxis>
 </axes>
 </grid>
 </var>
 </global>
  
-*** Running test: bn_test_nan.jnl
+*** Running ferret script: bn_test_nan.jnl
 !bn_test_nan.jnl
 ! test to make sure that NaN is able to be set by user
 !  as bad value.  If this fails, Ferret will crash
@@ -43028,7 +42180,7 @@ can var/all
  
  
  
-*** Running test: bn553_bug_fixes.jnl
+*** Running ferret script: bn553_bug_fixes.jnl
 ! bn553_bug_fixes.jnl
 ! test various fixes that went into version 5.52
 ! 9/03 *kob*
@@ -43113,7 +42265,7 @@ ppl axlen 6
 ppl shakey 1,1,.12
 ppl shade
  
-*** Running test: bn_graticules.jnl
+*** Running ferret script: bn_graticules.jnl
 ! /GRAT, /HGRAT and /VGRAT to set graticule lines
 ! ACM March 12, 2004
 ! ACM 4/2005 set mode meta to save one of the plots for the metafile checks.
@@ -43220,7 +42372,7 @@ can mode graticule
  
 pplus/reset   ! restore tics etc
  
-*** Running test: bn_repeat_range.jnl
+*** Running ferret script: bn_repeat_range.jnl
 ! REPEAT/RANGE=[/NAME=]  for looping without depending
 ! on the grid\
 ! ACM March 12, 2004
@@ -43577,16 +42729,16 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
 !-> REPEAT: M:300
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:300 at ave,y=@ave]
- -DELETE cnst     M:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:  7 dset:   1 I:  131  140  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 11 dset:   1 I:  131  140  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -43598,16 +42750,16 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:  5 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  4 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:330 at ave,y=@ave]
- -DELETE cnst     M:  5 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:  5 dset:   1 I:  131  155  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:  9 dset:   1 I:  131  155  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -43619,16 +42771,16 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 13 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  2 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:360 at ave,y=@ave]
- -DELETE cnst     M: 13 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M: 13 dset:   1 I:  131  170  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:  3 dset:   1 I:  131  170  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -43717,7 +42869,7 @@ repeat/range=1:4/name=a (repeat/range=3:1:-1/name=a list a)
 !-> REPEAT: A:3
 !-> REPEAT: A:4
 cancel mode ignore
-*** Running test: bn554_bug_fixes.jnl
+*** Running ferret script: bn554_bug_fixes.jnl
 ! bn554_bug_fixes.jnl
 ! test various fixes that went into version 5.54
 ! 11/03 *acm*
@@ -44076,52 +43228,53 @@ let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
 load a
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
  strip regrid on X: TAUX --> (G005)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:  8 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M: 11 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
+ nulrgd  TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M: 24 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
 can mem/all
- -DELETE TAUX     M:  8 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE A        M: 11 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE A        M: 24 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  
 def grid/like=taux agrid
- dealloc  dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
  getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME      NORMAL    NORMAL
 set mode diag
 let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
  dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME      NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
 load a
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
  strip regrid on X: TAUX --> (G005)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:  8 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M: 11 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
+ nulrgd  TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M: 24 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
  
 can mem/all
- -DELETE TAUX     M:  8 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE A        M: 11 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE A        M: 24 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
 can data/all
- dealloc  dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
+ canceling dset ./gtsa056_2.cdf
  
 ! Some tests taken from  bn_strides_revs_perms.jnl but with
 ! DEFINE GRID/LIKE= testing permuting and reversing axes
@@ -44150,6 +43303,7 @@ define grid/like=xytvar egrid
  allocate dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
 canc data/all
  dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
  
 ! cache hit from full region cache -- bypass use of strides
@@ -44158,20 +43312,20 @@ use bn_strides
 load var
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M: 11 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ reading VAR      M: 24 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 LIST VAR[i=2:4:2]
  dealloc  dynamic grid AGRID           XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G006)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  7 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  8 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 22 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 23 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -44186,19 +43340,19 @@ LIST VAR[i=2:4:2]
  2   / 2:  1222.  1224.
  3   / 3:  1232.  1234.
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:  7 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M: 22 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX003)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX003)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX003)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX003)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G006)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  8 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX003)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 22 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44213,25 +43367,25 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.  1214.
  3   / 2:  1232.  1234.
 CANC MEM/ALL
- -DELETE VAR      M:  8 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 11 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 24 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XAX1_4
 LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
- dealloc  dynamic grid (G006)          (AX003)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX003)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX003)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX003)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX003)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G006)           @XACT
  strip moduloing VAR on X axis:     1    10 dset:   1
- reading VAR      M: 11 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ reading VAR      M: 24 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  doing moduloing VAR on X axis:     1     4 dset:   1
- regrid  VAR      M:  7 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX003)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ regrid  VAR      M: 22 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -44246,24 +43400,24 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
  7    / 3:  1113.
  10   / 4:  1112.
 cancel axis/modulo XAX1_4
- -DELETE VAR      M:  7 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  8 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 11 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 22 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 23 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 24 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G006)          (AX003)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G006)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  8 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 11 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 24 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44278,19 +43432,19 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.  1214.
  3   / 2:  1232.  1234.
 LIST VAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G006)          (AX022)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:  8 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX003)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX003)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX003)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX003)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G006)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  8 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX003)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 23 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44307,24 +43461,24 @@ LIST VAR[i=2:6:2,j=1:5:2]
  
 ! test sub-region selection on strides axis
 let a = bigvar[i=1:40:5]
- dealloc  dynamic grid (G006)          (AX022)   (AX003)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 list/j=1/k=1/l=1 a[i=3:5]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  8 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 11 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 23 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 24 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -44336,26 +43490,26 @@ list/j=1/k=1/l=1 a[i=3:5]
  11   / 3:  1121.
  16   / 4:  1126.
  21   / 5:  1131.
- -DELETE A        M:  7 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 22 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
 list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX022)   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX022)   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX022)   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    2    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX022)   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: A --> (G007)           @XACT
  eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  3 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  7 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M: 14 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX022)   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 20 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 22 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ regrid  A        M:  8 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44372,27 +43526,27 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
 ! ****** unequally spaced points on parent axis
  
 cancel mem/all
- -DELETE BIGVAR   M:  3 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:  7 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  8 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 11 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 14 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:  8 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 20 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 22 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 23 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 24 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G007)          (AX022)   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX003)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX003)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX003)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX003)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G007)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 11 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 14 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX003)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ nulrgd  UNE-NVAR M: 23 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 24 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -44410,19 +43564,19 @@ set region/i=3:6/j=2:4/k=1:2/l=1
  
 use/order=yx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G007)          (AX003)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 11 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ -DELETE UNE-NVAR M: 23 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX021)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX021)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX021)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G007)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 14 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 11 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 23 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44439,23 +43593,24 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1345.  1347.  1349.
  6   / 3:  1363.  1365.  1367.  1369.
 canc data/all
- -DELETE BIGVAR   M: 14 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
 use/order=zyx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 11 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 14 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 24 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44472,8 +43627,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1543.  1743.  1943.
  6   / 3:  1363.  1563.  1763.  1963.
 canc data/all
- -DELETE BIGVAR   M: 11 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! now with xytvar
 cancel region
@@ -44482,16 +43638,16 @@ use bn_strides
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 14 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 11 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 23 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -44509,31 +43665,31 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  
 use/order=tyx bn_strides
 show grid xytvar
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 14 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
+ -DELETE XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
     GRID EGRID
- name       axis              # pts   start                end
- XLON      LONGITUDE           40mr   141E                 180E
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ XLON      LONGITUDE           40mr   141E                 180E                full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  dealloc  dynamic grid EGRID           XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX021)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX021)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX021)   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX021)   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 11 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 14 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX021)   NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 24 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -44549,8 +43705,9 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.  5043.  5045.  5047.
  2N   / 1:  5021.  5023.  5025.  5027.
 canc data/all
- -DELETE XYTVAR   M: 11 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX021)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
+ -DELETE XYTVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -44558,10 +43715,10 @@ show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
- YLAT      Z (degrees_north)   30 r   1                    30
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
+ YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
  normal    E
  normal    F
@@ -44569,16 +43726,16 @@ show grid xytvar
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 14 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 11 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   NORMAL    NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 23 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -44594,8 +43751,9 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.  3054.  5054.  7054.
  146   / 3:  1056.  3056.  5056.  7056.
 canc data/all
- -DELETE XYTVAR   M: 14 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
  
 cancel region; set region/l=1
@@ -44604,16 +43762,16 @@ cancel region; set region/l=1
 use/order=yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G006)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 14 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_6    NORMAL    NORMAL
+ nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44628,25 +43786,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.  1552.
  5   / 2:  1515.  1555.
 canc data/all
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G006)           @XACT
  strip reversing MIDVAR on Y axis:     2     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    1    5  J:    5    8  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 14 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44661,23 +43820,24 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.  1558.
  5   / 2:  1515.  1555.
 canc data/all
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=tyx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G006)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 14 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ nulrgd  MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44692,26 +43852,27 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.  5125.
  5   / 2:  1155.  5155.
 canc data/all
- -DELETE MIDVAR   M: 14 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 use/order=-t-y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G006)           @XACT
  strip reversing MIDVAR on X axis:     1     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    4    7  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M: 14 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 14 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44726,23 +43887,24 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.  2775.
  5   / 2:  6745.  2745.
 canc data/all
- -DELETE MIDVAR   M: 14 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=txy bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G006)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 14 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44757,25 +43919,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.  5152.
  5   / 2:  1155.  5155.
 canc data/all
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G006)           @XACT
  strip reversing MIDVAR on Y axis:     2     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    5    8  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 14 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44790,8 +43953,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.  2758.
  5   / 2:  6755.  2755.
 canc data/all
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! DEFINE AXIS can get the axis too long (bug 673)
 GO bn_reset
@@ -45002,7 +44166,7 @@ LEV_TEXT = "C"
 LEV_MIN = "1"
 LEV_MAX = "10.2"
 LEV_NUM = "46"
-LEV_DEL = "0.2"
+LEV_DEL = "irregular"
  
 can sym lev*
 ! Now with /LEV=(min,max,del)
@@ -45166,7 +44330,7 @@ list/wid=1024/y=1:2 sin(x[gx=xax]) + y[gy=yax]
  2   / 2:  2.841  1.008  2.951  1.273  2.363  2.071  1.509  2.817  1.015  2.964  1.243  2.404  2.027  1.548  2.790  1.023  2.975  1.215  2.444  1.982  1.588  2.763  1.034  2.984  1.188  2.483  1.938  1.629  2.733  1.046  2.991  1.163  2.521  1.894  1.670  2.702  1.060  2.996  1.140  2.559  1.850  1.712  2.670  1.076  2.999  1.118  2.595  1.807  1.755  2.637  1.094  3.000  1.098  2.630  1.763  1.798  2.602  1.114  2.999  1.080  2.663  1.721  1.841  2.566  1.135  2.996  1.064  2.696  1.679 [...]
  
 can mode ignore
-*** Running test: bn_bounds.jnl
+*** Running ferret script: bn_bounds.jnl
  
 ! bn_bounds.jnl
 ! testing CDF read and write of file with irregular axes and bounds
@@ -45528,7 +44692,7 @@ sh axis/t tax
        3>  9                     4          5.5
        4>  10                    1          9.5
        5>  11                    1          10.5
-*** Running test: bn_all_leap.jnl
+*** Running ferret script: bn_all_leap.jnl
 ! bn_all_leap.jnl
 ! ACM 6/2004
 ! Added ALL_LEAP, or 366_DAY calendar (which is in the CF conventions).
@@ -45578,7 +44742,7 @@ set mode ignore_error
 def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
  
 can mode ignore
-*** Running test: bn570_bug_fixes.jnl
+*** Running ferret script: bn570_bug_fixes.jnl
 ! bn554_bug_fixes.jnl
 ! test various fixes that went into version 5.70
 ! 11/03 *acm*
@@ -45815,7 +44979,7 @@ plot v[gt=tax at asn]
  
 def axis/t=07-feb-0599:07-feb-0600:1/units=years tt
 plot t[gt=tt]
-*** Running test: bn_modstats.jnl
+*** Running ferret script: bn_modstats.jnl
 ! bn_modstats.jnl
 ! acm 8/25/04
 ! There was never a benchmark test of modulo statistics.
@@ -45962,7 +45126,7 @@ list var[gt=month_reg at modngd]
  16-OCT      / 10:  10.00
  15-NOV      / 11:  10.00
  16-DEC      / 12:  10.00
-*** Running test: bn_mc_vary_scale.jnl
+*** Running ferret script: bn_mc_vary_scale.jnl
 ! bn_mc_vary_scale.jnl
 !   Allow stepfiles to have different internal scale and offset.
 !   read and apply when opening each stepfile. Previously, the
@@ -46040,7 +45204,7 @@ list/quiet/nohead `tt,return=nc_scale`, `tt,return=nc_offset`
  !-> list/quiet/nohead 2, -0.02
 I / *:     2.000 -0.02000
  
-*** Running test: bn_plot_nokey.jnl
+*** Running ferret script: bn_plot_nokey.jnl
 ! bn_plot_nokey.jnl (bug 1089)
 ! 22-nov-2004
  
@@ -46059,7 +45223,7 @@ USE gtsa056_2
 PLOT/X=180/Y=0/K=1 temp
 PLOT/OVER/NOKEY/X=180/Y=-1/K=1 temp
 PLOT/OVER/NOKEY/X=180/Y=1/K=1 temp
-*** Running test: bn580_bug_fixes.jnl
+*** Running ferret script: bn580_bug_fixes.jnl
 ! bn580_bug_fixes.jnl
 ! test various fixes that went into version 5.80
 ! 7/04 *acm*
@@ -47174,7 +46338,7 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB 4  4.000E+00  6.330E+00 0.120    0  SYSTEM  @A
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- LAB 5  8.000E+00  6.750E+00 0.073    0  SYSTEM  @ASOPeNDAP URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+ LAB 5  8.000E+00  6.790E+00 0.064    0  SYSTEM  @ASOPeNDAP <NL>URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  
  
@@ -47218,7 +46382,7 @@ POLYGON XT, YT, I[I=1:10]
 ! Add the same fix to plot_set_up.F for PLOT/VS commands
  
 PLOT/VS XT, YT
-*** Running test: bn_inf_levels.jnl
+*** Running ferret script: bn_inf_levels.jnl
 ! Run FERRET/fer/ferretdods_gui
 ! test open upper and lower levels (-INF) (INF)
  
@@ -47245,7 +46409,7 @@ LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
 LEV_MIN = "-2.8"
 LEV_MAX = "32"
 LEV_NUM = "50"
-LEV_DEL = "6.8"
+LEV_DEL = "irregular"
  
 set view right
 shade/lev=(-inf),(4,28,0.5)(inf)/key=cont sst[l=1]
@@ -47254,7 +46418,7 @@ LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
 LEV_MIN = "-2.8"
 LEV_MAX = "32"
 LEV_NUM = "50"
-LEV_DEL = "6.8"
+LEV_DEL = "irregular"
  
  
 can view
@@ -47309,7 +46473,7 @@ shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst  ! set up
 go polymark poly/key/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequence(fsst), square, 0.4
  
  
-*** Running test: bn_regulart.jnl
+*** Running ferret script: bn_regulart.jnl
 ! bn_regulart.jnl
 ! 5/12/2005 ACM
  
@@ -47353,7 +46517,7 @@ list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
 18-MAY-1946 / 5:  89986.  30.44
 17-JUN-1946 / 6:  90017.  30.44
  
-*** Running test: bn_labwid.jnl
+*** Running ferret script: bn_labwid.jnl
 ! LABWID returns the length in Denbo inches of the
 ! string.  For multi-line strings, returns length of
 ! the longest line.
@@ -47405,7 +46569,7 @@ label/nouser 0,3,-1,0,.15,"@P2 at IILine1<NL>@IIA LONGER LINE"
 let wid = labwid("@P2 at IILine1<NL>@IIA LONGER LINE",.15)
 label/nouser `wid`, 3, -1, 0, .15,  "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
  !-> PPL %LABEL/nouser 2.019230842590332, 3, -1, 0, .15,  "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
-*** Running test: bn_redefine_taxis_mc.jnl
+*** Running ferret script: bn_redefine_taxis_mc.jnl
 ! bn_redefine_taxis_mc.jnl
 ! ACM 15-Apr-2005
  
@@ -47468,7 +46632,7 @@ list/x=180/y=0 sst
  4   / 4:  28.22
  5   / 5:  28.49
  6   / 6:  28.32
-*** Running test: bn_illegal_axisname.jnl
+*** Running ferret script: bn_illegal_axisname.jnl
 ! Some OPenDAP HDF files have illegal axis names, e.g. with a dot in the name.
 ! This is a test of using such names, in a redefinition of the axes of the data.
 ! The file has a variable with axis names COADSX.ILLEGAL, COADSY.ILLEGAL. The axes contain
@@ -47514,14 +46678,14 @@ list/i=1:5 x[gx=sst]
 set view lower; shade sst
 sh grid sst
     GRID GEX1
- name       axis              # pts   start                end
- 'COADSX.ILLEGAL' LONGITUDE    21mr   21E                  61E
- 'COADSY.ILLEGAL' LATITUDE     16 r   35N                  65N
+ name       axis              # pts   start                end                 subset
+ 'COADSX.ILLEGAL' LONGITUDE    21mr   21E                  61E                 full
+ 'COADSY.ILLEGAL' LATITUDE     16 r   35N                  65N                 full
  normal    Z
  normal    T
  normal    E
  normal    F
-*** Running test: bn_exit_script.jnl
+*** Running ferret script: bn_exit_script.jnl
 ! bn_exit_script.jnl
 ! 5/2005 ACM
 ! tests of EXIT/SCRIPT command, in combination with IF and REPEAT
@@ -47607,7 +46771,7 @@ loop
 loop
 3
 loop
-*** Running test: bn_exit_cycle.jnl
+*** Running ferret script: bn_exit_cycle.jnl
 ! bn_exit_cycle.jnl
 ! 5/2005 ACM
 ! EXIT/CYCLE skips remaining commands in this repetition of a loop
@@ -47635,7 +46799,7 @@ say 8192 if bigger than 500
 say 16384 if bigger than 500
  
 loop finished 16384 gt 10000
-*** Running test: bn_curv_mod.jnl
+*** Running ferret script: bn_curv_mod.jnl
 ! bn_curv_mod
 ! Test of fill/mod and contour/mod
 ! 5/24/2005 Ferret v5.81
@@ -47653,7 +46817,7 @@ use tripolar_subset.nc     ! Longitude range is -280 to 80
 fill/mod/hlim=-180:180 ht, geolon_vert_t[i=1:180,j=1:24], geolat_vert_t[i=1:180,j=1:24]
 contour/over/mod/hlim=-180:180 ht, geolon_vert_t[i=1:180,j=1:24], geolat_vert_t[i=1:180,j=1:24]
  
-*** Running test: bn_shade_keycont.jnl
+*** Running ferret script: bn_shade_keycont.jnl
 ! Continuous shade key
 ! test setting it and whether default is restored on next command.
 ! also whether behavior consistent when we call shakey
@@ -47746,7 +46910,7 @@ fill/title="with shakey, restore default key style"/set temp[l=1]
 ppl shakey ,0,-.12,3,,,`x1`,`x2`,`y1`
  !-> ppl shakey ,0,-.12,3,,,2.2,5.212,1.4
 ppl fill
-*** Running test: bn581_bug_fixes.jnl
+*** Running ferret script: bn581_bug_fixes.jnl
 ! bn581_bug_fixes.jnl
 ! test various fixes that went into version 5.81
 ! 2/05 *acm*
@@ -47766,11 +46930,11 @@ def ax/t/edge time = {0,1,3}
 let a = t[gt=time]
 show grid/t a
     GRID (G001)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TIME      T                    2 i   0.5                  2
+ TIME      T                    2 i   0.5                  2                   full
  normal    E
  normal    F
  
@@ -47790,11 +46954,11 @@ can mem
 use a.nc
 show grid/t a
     GRID GSI1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TIME1     T                    2 i   0.5                  2
+ TIME1     T                    2 i   0.5                  2                   full
  normal    E
  normal    F
  
@@ -47815,11 +46979,11 @@ GO err580_cartesian_depth.jnl
 use a_cartesian_bug1179.nc
 sh grid temp
     GRID GHU1
- name       axis              # pts   start                end
- GRID_X_T  LONGITUDE            1 r   79E                  79E
- GRID_Y_T  LATITUDE             1 r   0.25S                0.25S
- ZT        DEPTH (m)           10 i-  22.5                 158
- TIME1     TIME                 1mr   15-FEB-1900 03:00    15-FEB-1900 03:00
+ name       axis              # pts   start                end                 subset
+ 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
+ TIME1     TIME                 1mr   15-FEB-1900 03:00    15-FEB-1900 03:00   full
  normal    E
  normal    F
  
@@ -48226,7 +47390,7 @@ POLYGON/LINE/fill xp, yp, ypts
 ! GO bn_reset
 ! GO err580_regrid_prec.jnl
  
-*** Running test: bn_tab_comma_multivar.jnl
+*** Running ferret script: bn_tab_comma_multivar.jnl
 ! bn_tab_comma_multivar.jnl
 !
 ! Fixes for bug 1273
@@ -48268,7 +47432,7 @@ COUNTRY	ID	AA	BB	NEWCOUNTRY	THE_DATA_VAR
 "JP"	1	4000	1000500	"w"	4  
 "JP"	2	8000	2000500	"c"	5  
 "US"	3	12000	3000500	"e"	4  
-*** Running test: bn_element_functions.jnl
+*** Running ferret script: bn_element_functions.jnl
  ! NOAA/PMEL TMAP
  ! FERRET v5.81
  ! Solaris 5.6 - 08/08/05
@@ -48392,7 +47556,7 @@ list element_index_str_n (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
  1   / 1:   ....   ....
  2   / 2:   ....  3.000
  
-*** Running test: bn_long_revision_num.jnl
+*** Running ferret script: bn_long_revision_num.jnl
 ! bn_long_revision_num.jnl
 ! ACM 8/30/05
 ! revision numbers were previously limited to 2 decimal places: v5.81
@@ -48400,7 +47564,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 = "6.951"
+FERRET_VERSION = "7"
  
 ! history attribute
 let a = 12
@@ -48418,7 +47582,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  version6.951:
+ Commands in Program FERRET  version7:
  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
@@ -48430,8 +47594,8 @@ sho command
       /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
  SET MODE/LAST
  SET MOVI/FILE/COMPRESS/LASER/START
- SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE/LAYERZ
-      /CURVILIN
+ SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
+      /LAYERZ/CURVILIN
  SET GRID/SAVE/RESTORE
  SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
  SET MEMORY/SIZE
@@ -48449,9 +47613,8 @@ sho command
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
-       /CURVILIN
- SHOW COMMANDS/ALL
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+ SHOW COMMANDS/ALL/BRIEF
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
@@ -48476,72 +47639,74 @@ sho command
  CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
  CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
  CANCEL GRID
- CANCEL ATTRIBUT/OUTPUT/DATA
+ CANCEL ATTRIBUT/OUTPUT/DATASET
  CANCEL REDIRECT
  CANCEL ALIAS/ALL
  CANCEL SYMBOL/ALL
  CANCEL NCCACHE
- CONTOUR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/FILL/LINE
-          /NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/COLOR
+ CONTOUR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/FILL
+          /LINE/NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/COLOR
           /NOAXES/PATTERN/SIZE/SPACING/SIGDIG/PEN/HLIMITS/VLIMITS/AXES/HGRATICU
-          /VGRATICU/GRATICUL/MODULO
- LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/D/HEADING/NOHEAD/SINGLE/FILE/APPEND/ORDER
-       /FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS/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
- PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/VS/SYMBOL
-       /NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE/NOAXES/STEP
-       /DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG/GRATICUL/NOKEY
-       /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
+          /VGRATICU/GRATICUL/MODULO/DEGMINSE/HALFSPAC
+ LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/HEADING/NOHEAD/SINGLY/FILE/APPEND
+       /ORDER/FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS
+       /MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
+       /CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
+       /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
+       /OUTTYPE/CURVILIN/LAYERZ
+ 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
+       /GRATICUL/NOKEY/NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
+       /SKIPSYM/DEGMINSE/HALFSPAC
  GO/HELP
  HELP
- LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
+ LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/NAME
  DEFINE
  DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
          /DL/DM/DN
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
- DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
  EXIT/COMMAND/LOOP/SCRIPT/PROMPT/PROGRAM/CYCLE/TOPYTHON
  MESSAGE/CONTINUE/QUIET/JOURNAL/ERROR/OUTFILE/APPEND/CLOBBER
- VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/ASPECT/NOLABEL
-         /LENGTH/XSKIP/YSKIP/THICK/XLIMITS/YLIMITS/TITLE/COLOR/NOAXES/NOKEY
-         /FLOWLINE/DENSITY/AXES/PEN/HLIMITS/VLIMITS/HGRATICU/VGRATICU/GRATICUL
-         /KEY/MODULO
+ VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/ASPECT
+         /NOLABEL/LENGTH/XSKIP/YSKIP/THICK/XLIMITS/YLIMITS/TITLE/COLOR/NOAXES
+         /NOKEY/FLOWLINE/DENSITY/AXES/PEN/HLIMITS/VLIMITS/HGRATICU/VGRATICU
+         /GRATICUL/KEY/MODULO
  PPLUS/RESET
  FRAME/FORMAT/FILE/TRANSPAR
  REPEAT/I/J/K/L/M/N/X/Y/Z/T/E/F/ANIMATE/LOOP/RANGE/NAME
- STAT/BRIEF/I/J/K/L/M/N/X/Y/Z/T/E/F/D
- SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/TRIM/LINE
-        /NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/AXES/NOAXES
-        /PATTERN/HGRATICU/VGRATICU/GRATICUL/MODULO/HLIMITS/VLIMITS
+ STAT/BRIEF/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET
+ SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/TRIM
+        /LINE/NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/AXES
+        /NOAXES/PATTERN/HGRATICU/VGRATICU/GRATICUL/MODULO/HLIMITS/VLIMITS
+        /DEGMINSE/HALFSPAC
  SPAWN
- USER/OPT1/OPT2/COMMAND/I/J/K/L/X/Y/Z/T/D/FILE/FORMAT
- WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/VIEWPOIN/ZLIMITS/TRANPOSE
-       /NOLABEL/ZSCALE/TITLE
+ USER/OPT1/OPT2/COMMAND/I/J/K/L/X/Y/Z/T/DATASET/FILE/FORMAT
+ WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/VIEWPOIN/ZLIMITS
+       /TRANPOSE/NOLABEL/ZSCALE/TITLE
  QUERY/ALL/FILE/IGNORE
  IF
  ELSE
  ELIF
  ENDIF
- POLYGON/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/COORD_AX
+ POLYGON/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/COORD_AX
           /NOLABEL/LEVELS/LINE/COLOR/PALETTE/XLIMITS/YLIMITS/TITLE/THICKNES
           /NOAXES/PATTERN/FILL/KEY/NOKEY/AXES/HLIMITS/VLIMITS/HLOG/VLOG
           /HGRATICU/VGRATICU/GRATICUL/MODULO
  ANNOTATE/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
  
  Use SHOW ALIAS to see alternative command names
-*** Running test: bn_window_title.jnl
+*** Running ferret script: bn_window_title.jnl
 ! bn_window_title.jnl
 ! Define a title for windows rather than just FERRET_1, FERRET_2, ...
 ! If no title is set, use SESSION_DATE:SESSION_TIME
@@ -48553,7 +47718,6 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "6-Nov-15:15:54"
  
 set win/title="set the title"
 sho sym win_title
@@ -48571,7 +47735,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title=" 6-Nov-15:15:54"
+ !-> set win/title="17-Jun-16:15:04"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -48580,17 +47744,17 @@ 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-Nov-15
+ !-> DEFINE SYMBOL the_date = 17-Jun-16
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 15:54
+ !-> DEFINE SYMBOL the_time = 15:04
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="6-Nov-15:15:54"
+ !-> SET WIN/TITLE="17-Jun-16:15:04"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "6-Nov-15:15:54"
-*** Running test: bn_last_error.jnl
+WIN_TITLE = "17-Jun-16:15:04"
+*** Running ferret script: bn_last_error.jnl
 ! bn_last_error.jnl
 ! acm Nov 2005
 !
@@ -48643,11 +47807,13 @@ FER_LAST_ERROR = "**ERROR: error in external function. Bailing out of external f
  
  
 SET MODE/LAST IGNORE_ERROR
-*** Running test: bn_deg_min.jnl
+*** Running ferret script: bn_deg_min.jnl
 ! bn_deg_min.jnl
 ! label axes with degrees and minutes rather than degrees and decimal degrees.
 ! 19-May-06 add seconds as well...
  
+ 
+ 
 use ss_small.nc
  
 shade/set/x=222.9:223.1/y=58.22:59.1 rose
@@ -48677,7 +47843,21 @@ ppl plot
  
 ! Restore the default settings
 ppl axlint,2,2
-*** Running test: bn_dp_readscale.jnl
+ 
+! Now do the same using command qualifiers /DEGMINSEC= /HALFSPAC  (ticket 2434)
+!  /DEGMINSEC=1 for Deg-Min, =2 for Deg-Min-Sec. Default = 1
+!  /HALFSPAC adds a half space between the degree sign and E/W or N/S
+ 
+use ss_small
+shade/x=222.9:223.1/y=58.22:59.1/DEGMIN rose
+fill/x=222.9:223.1/y=58.22:59.1/DEGMIN=2 rose
+plot/vs/DEGMIN=2 xpts, ypts
+ 
+fill/x=222.9:223.1/y=58.22:59.1/HALFSP rose
+plot/x=223./DEGMIN/HALFSP rose
+plot/y=58.52/DEGMIN=2/HALFSP rose
+plot/vs/HALFSP  xpts, ypts
+*** Running ferret script: bn_dp_readscale.jnl
 ! bn_dp_readscale.jnl
 ! 9-Feb-2006 ACM
  
@@ -48753,7 +47933,7 @@ list xax
  2   / 2:  0.000010000  0.000100000  0.001000000  0.010000000  0.100000000
  
 cancel list/precision
-*** Running test: bn_bounds_defineax.jnl
+*** Running ferret script: bn_bounds_defineax.jnl
 ! bn_bounds_defineax.jnl
 ! 3/22/2006
 ! Previously only allowed 2*N definition of bounds in DEFINE AXIS/BOUNDS
@@ -48955,7 +48135,7 @@ list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
 858.5  / 11:   559.   859.  1158.
 1678.5 / 12:  1158.  1679.  2199.
 2849   / 13:  2199.  2849.  3499.
-*** Running test: bn_attributes.jnl
+*** Running ferret script: bn_attributes.jnl
 ! bn_attributes
 ! test attribute handling on netcdf intput/output and
 ! programatic access to attribute information
@@ -49067,20 +48247,24 @@ sho data/att
 (XAX_LEV9421_380)      DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        15   F       XAX_LEV9421_380
+                                 orig_file_axname
+                                                 CHAR        15   F       XAX_LEV9421_380
   
 (YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
+                                 orig_file_axname
+                                                 CHAR        9    F       YAX_LEV94
   
 (ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        13   F       ZAXLEVIT191_1
+                                 orig_file_axname
+                                                 CHAR        13   F       ZAXLEVIT191_1
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -49104,42 +48288,51 @@ sh data/att gt4d011
   
 (PSXT)                 DOUBLE    units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        4    F       PSXT
+                                 orig_file_axname
+                                                 CHAR        4    F       PSXT
   
 (PSYT)                 DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSYTedges
-                                 orig_file_axnameCHAR        4    F       PSYT
+                                 orig_file_axname
+                                                 CHAR        4    F       PSYT
   
 (PSYTedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSYTedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYTedges
   
 (PSZT)                 DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSZTedges
-                                 orig_file_axnameCHAR        4    F       PSZT
+                                 orig_file_axname
+                                                 CHAR        4    F       PSZT
   
 (PSZTedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSZTedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSZTedges
   
 (TIME1)                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_axnameCHAR        5    F       TIME1
+                                 orig_file_axname
+                                                 CHAR        5    F       TIME1
   
 (PSXT91_108)           DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        10   F       PSXT91_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXT91_108
   
 (PSYT35_56)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYT35_56
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT35_56
   
 (PSZT1_10)             DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        8    F       PSZT1_10
+                                 orig_file_axname
+                                                 CHAR        8    F       PSZT1_10
   
  TEMP                  FLOAT     parent_grid     CHAR        6    F       PS3DT2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -49152,7 +48345,8 @@ sh data/att gt4d011
   
 (PSYT35_55)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYT35_55
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT35_55
   
  SALT                  FLOAT     parent_grid     CHAR        6    F       PS3DT2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -49167,24 +48361,29 @@ sh data/att gt4d011
   
 (PSXU)                 DOUBLE    units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        4    F       PSXU
+                                 orig_file_axname
+                                                 CHAR        4    F       PSXU
   
 (PSYU)                 DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSYUedges
-                                 orig_file_axnameCHAR        4    F       PSYU
+                                 orig_file_axname
+                                                 CHAR        4    F       PSYU
   
 (PSYUedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSYUedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYUedges
   
 (PSXU91_108)           DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        10   F       PSXU91_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXU91_108
   
 (PSYU35_55)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYU35_55
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYU35_55
   
  U                     FLOAT     parent_grid     CHAR        6    F       PS3DU2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -49210,19 +48409,23 @@ sh data/att gt4d011
                                  positive        CHAR        4    T       down
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSZWedges
-                                 orig_file_axnameCHAR        4    F       PSZW
+                                 orig_file_axname
+                                                 CHAR        4    F       PSZW
   
 (PSZWedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSZWedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSZWedges
   
 (PSYT36_55)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYT36_55
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT36_55
   
 (PSZW1_10)             DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        8    F       PSZW1_10
+                                 orig_file_axname
+                                                 CHAR        8    F       PSZW1_10
   
  W                     FLOAT     parent_grid     CHAR        6    F       PS3DW2
                                  slab_min_index  INT         4    F       91 36 1 0
@@ -49255,7 +48458,8 @@ sh data/att gt4d011
   
 (PSYU35_56)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYU35_56
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYU35_56
   
  PSI                   FLOAT     parent_grid     CHAR        6    F       PS2DU2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -49710,11 +48914,14 @@ sh data/att
   
  dnodata               DOUBLE
   
-(i)                    INT       orig_file_axnameCHAR        1    F       i
+(i)                    INT       orig_file_axname
+                                                 CHAR        1    F       i
   
-(j)                    FLOAT     orig_file_axnameCHAR        1    F       j
+(j)                    FLOAT     orig_file_axname
+                                                 CHAR        1    F       j
   
-(l)                    BYTE      orig_file_axnameCHAR        1    F       l
+(l)                    BYTE      orig_file_axname
+                                                 CHAR        1    F       l
   
  
 let a= broiled.acl
@@ -50198,7 +49405,7 @@ sh att/all temp3
  
 can var temp2
 let/units="degrees C"/title="my new TEMP"/bad=`temp,return=bad` temp2 = temp*2
- !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad=-9.9999998E+33 temp2 = temp*2
+ !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad= -9.999999790214768E+33 temp2 = temp*2
 sh att/all temp2
      attributes for user-defined variables
  temp2.long_name = my new TEMP 
@@ -50808,24 +50015,24 @@ cancel mode verify
 def axis/x=1:200:1  x2ax
 sh att/all (x2ax)
      attributes for coordinate axis
- (X2AX).point_spacing = even 
- (X2AX).axis = X 
+ (x2ax).point_spacing = even 
+ (x2ax).axis = X 
 ! SET AXIS command changes attributes
 set axis/modulo x2ax
 sh att/all (x2ax)
      attributes for coordinate axis
- (X2AX).point_spacing = even 
- (X2AX).axis = X 
- (X2AX).modulo =   
+ (x2ax).point_spacing = even 
+ (x2ax).axis = X 
+ (x2ax).modulo =   
  
 ! DEFINE ATTRIBUTE command changes attributes
 define attribute (x2ax).units = "degrees_east"
 sh att/all (x2ax)
      attributes for coordinate axis
- (X2AX).point_spacing = even 
- (X2AX).axis = X 
- (X2AX).modulo =   
- (X2AX).units = degrees_east 
+ (x2ax).point_spacing = even 
+ (x2ax).axis = X 
+ (x2ax).modulo =   
+ (x2ax).units = degrees_east 
  
 ! Define new attribute on an axis.
 ! Save file var, and a user var defined from the file var
@@ -50847,16 +50054,19 @@ sh dat/att
 (XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        14   F       XAXLEVITR1_160
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
                                  new_att         CHAR        9    T       something
   
 (YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        13   F       YAXLEVITR1_90
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
   
 (ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        12   F       ZAXLEVITR1_1
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
                                  _FillValue      FLOAT       1    T       -1.E+10
@@ -50894,9 +50104,9 @@ let axy = reshape (a,rvar)
  
 show att/all (z4ax)
      attributes for coordinate axis
- (Z4AX).point_spacing = even 
- (Z4AX).axis = Z 
- (Z4AX).positive = down 
+ (z4ax).point_spacing = even 
+ (z4ax).axis = Z 
+ (z4ax).positive = down 
 set att (z4ax).positive = "up"
  
 sp echo "bn_attributes.jnl --- 27 attributes of  user-defined axes" >> all_ncdump.out
@@ -51068,20 +50278,24 @@ sho att ocean_atlas_temp
 (XAX_LEV9421_380)      DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        15   F       XAX_LEV9421_380
+                                 orig_file_axname
+                                                 CHAR        15   F       XAX_LEV9421_380
   
 (YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
+                                 orig_file_axname
+                                                 CHAR        9    F       YAX_LEV94
   
 (ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        13   F       ZAXLEVIT191_1
+                                 orig_file_axname
+                                                 CHAR        13   F       ZAXLEVIT191_1
   
 (TIME1)                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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -51109,20 +50323,24 @@ sho att 1
 (XAX_LEV9421_380)      DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        15   F       XAX_LEV9421_380
+                                 orig_file_axname
+                                                 CHAR        15   F       XAX_LEV9421_380
   
 (YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
+                                 orig_file_axname
+                                                 CHAR        9    F       YAX_LEV94
   
 (ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        13   F       ZAXLEVIT191_1
+                                 orig_file_axname
+                                                 CHAR        13   F       ZAXLEVIT191_1
   
 (TIME1)                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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -51141,15 +50359,18 @@ sho att 2
 (XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        14   F       XAXLEVITR1_160
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
   
 (YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        13   F       YAXLEVITR1_90
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
   
 (ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        12   F       ZAXLEVITR1_1
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
                                  _FillValue      FLOAT       1    T       -1.E+10
@@ -51184,7 +50405,7 @@ sho att (`temp[d=1],return=taxis`[d=1])
 sho att .
      attributes for dataset: ./levitus_climatology.cdf
  ..history = FERRET V5.22    5-Apr-01 
-*** Running test: bn_transforms.jnl
+*** Running ferret script: bn_transforms.jnl
 ! Test the transforms
  
 use coads_climatology
@@ -51203,7 +50424,7 @@ list/L=1/prec=7 sst[x=100:120 at din,y=10:30 at din]
              LONGITUDE: 100E to 120E (XY integ.)
              LATITUDE : 10N to 30N (XY integ.)
              TIME     : 16-JAN 06:00
-          6.008341E+13
+          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
@@ -51388,7 +50609,7 @@ list/L=1/y=11:23/x=93w sst, sst[y=@shn] , sst[y=@spz], sst[y=@sum], sst[y=@swl],
 19N   / 55:  24.50  25.10  25.10  181.6  25.23  0.4944
 21N   / 56:  23.95  24.06  24.06  181.6  24.08    ....
 23N   / 57:  23.84  23.69  23.69  181.6  23.66    ....
-*** Running test: bn_variance.jnl
+*** Running ferret script: bn_variance.jnl
  ! bn_variance.jnl
  ! the @VAR transform is not tested in bn_transforms.jnl script.
  
@@ -51424,7 +50645,7 @@ list/y=3/l=1/x=233 u[z=@var]
              DEPTH (m): 0 to 100 (variance)
              TIME     : 17-AUG-1982 12:00
           11.33
-*** Running test: bn_linecolors.jnl
+*** Running ferret script: bn_linecolors.jnl
 ! bn_linecolors.jnl
 ! 5/2006 ACM
 ! test setting more line colors
@@ -51489,7 +50710,7 @@ plot/line/i=1:100\
 can win/all
 set win/new
  
-*** Running test: bn_cdf_errmsg.jnl
+*** Running ferret script: bn_cdf_errmsg.jnl
 ! bn_cdf_errmsg.jnl
 ! ACM 7/13/2006
 ! test reporting of cdf error messages from OPeNDAP library v3.6.2
@@ -51531,7 +50752,7 @@ use asc.nc
  
 set mode/last ignore
  
-*** Running test: bn600_bug_fixes.jnl
+*** Running ferret script: bn600_bug_fixes.jnl
 ! bn600_bug_fixes.jnl
 ! test various fixes that went into version 6.00
 ! 8/05 *acm*
@@ -51658,6 +50879,9 @@ cancel mode verify
 GO err581_subspanx_fill_bug.jnl
 ! err581_subspanx_fill_bug.jnl
 ! bug 900: subspan longitude axis and hlimits gets wrong data
+!
+! Further fixes 5/2016, with other subspan modulo work.
+! Don't list ppl$xlow, ppl$xhigh.
  
 use coads_climatology
 save/clobber/y=0/x=130e:80w/file=err581_subspanx_fill_bug.nc sst
@@ -51667,12 +50891,10 @@ set view left; shade/x=120e:80w sst  ! works correctly
  
 set view right; fill/x=120e:80w sst
  
+! look at axis coord. range 5/9/2016
 sh sym ppl$xmin, ppl$xmax    ! should be 131, 279
-PPL$XMIN = "131.0000"
-PPL$XMAX = "281.0000"
-sh sym ppl$xlow, ppl$xhigh   ! should be 165, 259
-PPL$XHIGH = "165.0000"
-PPL$XLOW = "259.0000"
+PPL$XMIN = "25.00000"
+PPL$XMAX = "279.0000"
  
 sp rm -f err581_subspanx_fill_bug.nc
  
@@ -52018,11 +51240,11 @@ can axis t360
 set data t3file
 sho grid t3
     GRID GCG1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- T360      TIME                61 r   01-JAN-2000 00:00    01-JAN-2005 00:00
+ T360      TIME                61 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
  normal    E
  normal    F
  
@@ -52330,7 +51552,7 @@ ppl cross 0
 set mem /size=25.6
  
  
-*** Running test: bn601_bug_fixes.jnl
+*** Running ferret script: bn601_bug_fixes.jnl
 ! bn601_bug_fixes.jnl
 ! test various fixes that went into version 6.01
 ! 20-Sep-2006 ACM
@@ -52646,8 +51868,9 @@ list ..dimnames
 list ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : levitus_climatology.cdf
-             X        : 1
-        "TEMP"
+             SUBSET   : 2 points (X)
+ 1   / 1:"TEMP"   
+ 2   / 2:"temp_20"
  
 ! err600_nc_des_order.jnl
 ! Bug 1459 order of multiple descriptor file opening causes netCDF error
@@ -52724,8 +51947,13 @@ use coads_climatology
 def sym timeax = `sst,return=taxis`
  !-> def sym timeax = TIME4
  
-show att/all ($timeax)
- !-> show att/all TIME4
+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 axis ($timeax)
  !-> show axis TIME4
  name       axis              # pts   start                end
@@ -52734,8 +51962,12 @@ 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
-show att/all ($timeax)
- !-> show att/all TIME4
+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 axis ($timeax)
  !-> show axis TIME4
  name       axis              # pts   start                end
@@ -52749,8 +51981,12 @@ can data/all
 use gt4d011
 def sym timeax = `temp,return=taxis`
  !-> def sym timeax = TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
+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 axis ($timeax)
  !-> show axis TIME11
  name       axis              # pts   start                end
@@ -52760,8 +51996,14 @@ T0 = 14-JAN-1980 14:00:00
  
 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
+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 axis ($timeax)
  !-> show axis TIME11
  name       axis              # pts   start                end
@@ -52779,8 +52021,12 @@ def sym timeax = `temp,return=taxis`
  !-> def sym timeax = TIME11
 def sym zax = `temp,return=zaxis`
  !-> def sym zax = PSZT
-show att/all ($timeax)
- !-> show att/all TIME11
+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 axis ($zax)
  !-> show axis PSZT
  name       axis              # pts   start                end
@@ -52789,8 +52035,12 @@ show axis ($zax)
  
 cancel axis/modulo ($timeax)
  !-> cancel axis/modulo TIME11
-show att/all ($timeax)
- !-> show att/all TIME11
+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 axis ($timeax)
  !-> show axis TIME11
  name       axis              # pts   start                end
@@ -52799,8 +52049,14 @@ T0 = 14-JAN-1980 14:00:00
    Axis span (to cell edges) = 3650
 cancel axis/depth ($zax)
  !-> cancel axis/depth PSZT
-show att/all ($zax)
- !-> show att/all PSZT
+show att/all (($zax))
+ !-> show att/all (PSZT)
+     attributes for dataset: ./gt4d011.cdf
+ (PSZT).units = METERS 
+ (PSZT).positive = up 
+ (PSZT).point_spacing = uneven 
+ (PSZT).edges = PSZTedges 
+ (PSZT).orig_file_axname = PSZT 
 show axis ($zax)
  !-> show axis PSZT
  name       axis              # pts   start                end
@@ -52835,16 +52091,19 @@ sh dat/att
 (COADSX)               DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        6    F       COADSX
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSX
   
 (COADSY)               DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        6    F       COADSY
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSY
   
 (TIME5)                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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -52868,7 +52127,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -52876,32 +52135,36 @@ sho dat/att
                                  modulo          DOUBLE      1    T       360
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        10   F       PSXT91_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXT91_108
   
 (PSYT35_56)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
                                  bounds          CHAR        14   T       PSYT35_56_bnds
-                                 orig_file_axnameCHAR        9    F       PSYT35_56
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT35_56
   
  PSYT35_56_bnds        DOUBLE
   
-(PSZT11_10)            DOUBLE    units           CHAR        6    T       meters
+(PSZT1_10)             DOUBLE    units           CHAR        6    T       meters
                                  positive        CHAR        4    T       down
                                  point_spacing   CHAR        6    T       uneven
                                  axis            CHAR        1    T       Z
                                  standard_name   CHAR        5    F       depth
-                                 bounds          CHAR        14   T       PSZT11_10_bnds
-                                 orig_file_axnameCHAR        9    F       PSZT11_10
+                                 bounds          CHAR        13   T       PSZT1_10_bnds
+                                 orig_file_axname
+                                                 CHAR        8    F       PSZT1_10
   
- PSZT11_10_bnds        DOUBLE
+ PSZT1_10_bnds         DOUBLE
   
 (TIME11)               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_axnameCHAR        6    F       TIME11
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME11
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -52913,7 +52176,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -52921,32 +52184,36 @@ sho dat/att
                                  modulo          DOUBLE      1    T       360
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        10   F       PSXT91_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXT91_108
   
 (PSYT35_56)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
                                  bounds          CHAR        14   T       PSYT35_56_bnds
-                                 orig_file_axnameCHAR        9    F       PSYT35_56
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT35_56
   
  PSYT35_56_bnds        DOUBLE
   
-(PSZT11_10)            DOUBLE    units           CHAR        6    T       meters
+(PSZT1_10)             DOUBLE    units           CHAR        6    T       meters
                                  positive        CHAR        4    T       down
                                  point_spacing   CHAR        6    T       uneven
                                  axis            CHAR        1    T       Z
                                  standard_name   CHAR        5    F       depth
-                                 bounds          CHAR        14   T       PSZT11_10_bnds
-                                 orig_file_axnameCHAR        9    F       PSZT11_10
+                                 bounds          CHAR        13   T       PSZT1_10_bnds
+                                 orig_file_axname
+                                                 CHAR        8    F       PSZT1_10
   
- PSZT11_10_bnds        DOUBLE
+ PSZT1_10_bnds         DOUBLE
   
 (TIME111)              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_axnameCHAR        6    F       TIME11
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME11
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -53127,7 +52394,7 @@ stat rose[j=12,d=1]
  Maximum value: 509
  Mean    value: 62.717 (unweighted average)
  Standard deviation: 156.25
-*** Running test: bn_set_strides.jnl
+*** Running ferret script: bn_set_strides.jnl
 ! bn_set_strides.jnl
 ! Jing Li, 11/2006
 ! tests for SET AXIS/STRIDES
@@ -53564,7 +52831,7 @@ show axis `sst,return=taxis`
  TIME      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)
-*** Running test: bn_lsl_lowpass.jnl
+*** Running ferret script: bn_lsl_lowpass.jnl
 ! bn_lsl_lowpass.jnl
 ! Test lsl_lowpass, now included as a statically-linked external function
  
@@ -53597,18 +52864,18 @@ LIST/L=10:20 MY_TEMP[L=1:110], F_FILTERED[L=1:110]
 11-MAR-1982 08 / 19:   27.41   27.42
 14-MAR-1982 09 / 20:   27.42   27.43
  
-*** Running test: bn_return_xmod_tmod.jnl
+*** Running ferret script: bn_return_xmod_tmod.jnl
 ! New `var,return=xmod` `var,return=tmod`
 ! Return modulo lengths, or blank if not modulo
  
 use ocean_atlas_temp
 sh grid temp
     GRID GBS1
- name       axis              # pts   start                end
- XAX_LEV9421_380 LONGITUDE    360mr   20.5E                19.5E(379.5)
- YAX_LEV94 LATITUDE           180 r   89.5S                89.5N
- ZAXLEVIT191_1 DEPTH (m)        1 r-  0                    0
- TIME      TIME                 2mr   16-JAN 06:00         15-FEB 16:29
+ name       axis              # pts   start                end                 subset
+ 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
+ TIME      TIME                 2mr   16-JAN 06:00         15-FEB 16:29        full
  normal    E
  normal    F
 sh axis XAX_LEV9421_380
@@ -53656,11 +52923,11 @@ say `a,return=xmod`
 use string4d
 sh grid axy
     GRID GMS2
- name       axis              # pts   start                end
- X2AX      X                    2mr   1                    2
- Y3AX      Y                    3 r   1                    3
- Z4AX      Z                    4 r   1                    4
- T2AX      T                    2 r   1                    2
+ name       axis              # pts   start                end                 subset
+ X2AX      X                    2mr   1                    2                   full
+ Y3AX      Y                    3 r   1                    3                   full
+ Z4AX      Z                    4 r   1                    4                   full
+ T2AX      T                    2 r   1                    2                   full
  normal    E
  normal    F
 show axis x2ax
@@ -53670,7 +52937,7 @@ show axis x2ax
 say `axy,return=xmod`
  !-> MESSAGE/CONTINUE 2
 2
-*** Running test: bn602_bug_fixes.jnl
+*** Running ferret script: bn602_bug_fixes.jnl
 ! bn602_bug_fixes.jnl
 ! test various fixes that went into version 6.02
 ! 09-Nov-2006 ACM
@@ -53768,20 +53035,20 @@ GO err601_irregular_axis.jnl
 USE z_wide_variation.nc
 SHOW GRID/Z atmos
     GRID GOR1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
- ALTITUDE  Z (Pa)              50 i   6.791595619E-10      1400
- TIME      TIME                 1mr   01-JAN 04:00         01-JAN 04:00
+ ALTITUDE  Z (Pa)              50 i   6.791595619E-10      1400                full
+ TIME      TIME                 1mr   01-JAN 04:00         01-JAN 04:00        full
  normal    E
  normal    F
  
        K     Z                   ZBOX      ZBOXLO
-       1>  6.7915956192266E-10   6.885E-10  3.3490923923019E-10
-       2>  0.00000000136766      1.037E-09  0.00000000102341
-       3>  0.000000002754131     2.089E-09  0.000000002060896
-       4>  0.000000005546143     4.207E-09  0.000000004150137
-       5>  0.00000001116856      8.472E-09  0.000000008357353
+       1>  6.791595619227E-10    6.885E-10  3.349092392302E-10
+       2>  1.367660207308E-09    1.037E-09  1.023409884615E-09
+       3>  2.754131145366E-09    2.089E-09  2.060895676337E-09
+       4>  5.546143100332E-09    4.207E-09  4.150137122849E-09
+       5>  0.00000001116856      8.472E-09  8.357352587751E-09
        6>  0.00000002249072      1.706E-08  0.00000001682964
        7>  0.00000004529075      3.436E-08  0.00000003389074
        8>  0.00000009120437      6.919E-08  0.00000006824756
@@ -53929,7 +53196,7 @@ list a
  2   / 2:"b"
  3   / 3:"" 
  
-*** Running test: bn_modnbd.jnl
+*** Running ferret script: bn_modnbd.jnl
 ! Test MODNBD regridding statistic.
  
 use gtsa056_2.cdf
@@ -53991,7 +53258,7 @@ list var[gt=month_reg at MODNGD], var[gt=month_reg at MODNBD], var[gt=month_reg at MODNGD
 16-OCT      / 10:  10.00   0.00  10.00  10.00
 15-NOV      / 11:  10.00   0.00  10.00  10.00
 16-DEC      / 12:  10.00   0.00  10.00  10.00
-*** Running test: bn_fifty_files.jnl
+*** Running ferret script: bn_fifty_files.jnl
 ! bn_fifty_files.jnl
 ! We build OPeNDAP so that 100 files can be opened at a time.
 ! Test with fifty.
@@ -54051,7 +53318,7 @@ use weird_name1.cdf
  
 cancel mode ignore_error
  
-*** Running test: bn603_bug_fixes.jnl
+*** Running ferret script: bn603_bug_fixes.jnl
 ! bn603_bug_fixes.jnl
 ! test various fixes that went into version 6.03
 ! 11-May-2006 ACM
@@ -54164,7 +53431,7 @@ LIST/NOHEAD/I=91:94/J=37/K=1/L=1 TEMP,SALT
 137.5W / 93:  27.23906  2.382890E-04
 136.5W / 94:  27.17807  2.380348E-04
  
-*** Running test: bn_set_var_name.jnl
+*** Running ferret script: bn_set_var_name.jnl
 ! bn_set_var_name.jnl
 ! This has been in Ferret since v5.3 but never a benchmark test of it!
 ! ACM 8/2007
@@ -54209,7 +53476,7 @@ LIST/X=179:183/Y=40/L=3 sst
  179W   / 81:  36.36
  177W   / 82:  36.24
  
-*** Running test: bn_memory_symbol.jnl
+*** Running ferret script: bn_memory_symbol.jnl
 Unable to allocate 500000.0 Mwords of memory.
 Restoring previous memory of 0.2 Mwords.
 ! bn_memory_symbol.jnl
@@ -54236,7 +53503,7 @@ FERRET_MEMORY = "0.2"
 set mem/siz=25.6  ! return to the default setting
 show memory
  Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-*** Running test: bn605_bug_fixes.jnl
+*** Running ferret script: bn605_bug_fixes.jnl
 ! bn604_bug_fixes.jnl
 ! test various fixes that went into version 6.05
 ! 27-July-2007 ACM
@@ -54415,6 +53682,7 @@ SAMPLEYZ(DAT_TO_SAMPLE,YPTS,ZPTS)
 SCAT2DDUPS(coord 1,coord 2,epsilon 1,epsilon 2)
 SCAT2GRID_BIN_XY(XPTS,YPTS,F,XAXPTS,YAXPTS)
 SCAT2GRID_BIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
+SCAT2GRID_BIN_XYZ(XPTS,YPTS,ZPTS,F,XAXPTS,YAXPTS,ZAXPTS)
 SCAT2GRIDGAUSS_XT(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
 SCAT2GRIDGAUSS_XT_V0(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
 SCAT2GRIDGAUSS_XY(XPTS,YPTS,F,XAXPTS,YAXPTS,XSCALE,YSCALE,CUTOFF,0)
@@ -54508,6 +53776,11 @@ SAMPLE_FAST_I(V,Indices)
 SAMPLE_FAST_I_STR(S,Indices)
 SEPARATE_STR(A,Rowsize,FixLongitudes)
 WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
+BXCAT(A,B)
+BXSEQUENCE(A)
+BXSEQUENCE_STR(A)
+BCOMPRESSI(DAT)
+SCAT2GRID_BIN_XYZT(XPTS,YPTS,ZPTS,TPTS,F,XAXPTS,YAXPTS,ZAXPTS,TAXPTS)
 ADD_9(A,B,C,D,E,F,G,H,I)
 APPENDE(ENS,VAR)
 AVET(A)
@@ -54518,7 +53791,6 @@ FFT_AMP(A)
 FFTA_SAMPLE(A)
 FFT_PHAS(A)
 LENGTH_OF_STRINGS(--)
-LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
 MAXSTRLEN(A)
 PASS_THRU(A)
 PASS_THRU_STRING(A)
@@ -54536,9 +53808,8 @@ STRINGS_AS_ARGS(S1,S2,NCHAR)
 STR_MISSING(MASK,STR,REPL)
 STUDENT_T_CUTOFF(P,nf)
 SUBTRACT(A,B)
-WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
  
-*** Running test: bn608_bug_fixes.jnl
+*** Running ferret script: bn608_bug_fixes.jnl
 ! bn608_bug_fixes
 ! test various fixes that went into version 6.08
 ! 24-Sep ACM
@@ -54550,8 +53821,17 @@ GO err607_show_var_xml
 ! Bug 1539 SHOW VAR/XML didnt show all vars.
  
  
-use gt4d011.cdf
-use coads_climatology
+ 
+! make some short files
+let/units="meters" temp = z[z=1:100:5]
+save/clobber/file=a.nc temp
+ 
+LET sst = x[x=1:15] + y[y=1:5] + t[gt=month_irreg]
+save/clobber/file=b.nc sst
+can var/all
+ 
+use a
+use b
  
 let temp_1_regrid=temp[d=1,z=5.00:75.00 at ave]
 let sst_2_regrid=sst[d=2,t="15-Feb":"15-Mar"@ave]
@@ -54575,10 +53855,10 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="(G006)">
+<grid name="GRR1">
 <axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
+<xaxis>XAX1_15</xaxis>
+<yaxis>YAX1_5</yaxis>
 </axes>
 </grid>
 </var>
@@ -54589,10 +53869,10 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="GSQ1">
+<grid name="GRR1">
 <axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
+<xaxis>XAX1_15</xaxis>
+<yaxis>YAX1_5</yaxis>
 </axes>
 </grid>
 </var>
@@ -54603,11 +53883,8 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="PS3DT2">
+<grid name="GSI1">
 <axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME1</taxis>
 </axes>
 </grid>
 </var>
@@ -54686,7 +53963,7 @@ SET MODE ignore
 SHADE/LEV=300/I=1:100/J=1:100 i+j
  
 SET MODE/LAST ignore
-*** Running test: bn_shade_trim.jnl
+*** Running ferret script: bn_shade_trim.jnl
 ! bn_shade_trim.jnl
 ! Test new qualifier SHADE/TRIM which trims the region of
 ! shade plot as is done by FILL. For LAS scripts which do
@@ -54720,7 +53997,7 @@ XAXIS_MAX = "199.500000"
 YAXIS_MIN = "30.5000000"
 YAXIS_MAX = "43.5000000"
  
-*** Running test: bn_mode_nlevels.jnl
+*** Running ferret script: bn_mode_nlevels.jnl
 ! bn_mode_nlevels.jnl
 ! 3-mar-2008
 ! v6.1 MODE NLEVELS (default is 40)
@@ -54758,7 +54035,7 @@ LEV_DEL = "0.5"
 ! restore (new) default
 set mode nlevels 40
  
-*** Running test: bn61_bug_fixes.jnl
+*** Running ferret script: bn61_bug_fixes.jnl
 ! bn608_bug_fixes
 ! test various fixes that went into version 6.1
 ! 2-Jan-2008 ACM
@@ -54810,9 +54087,9 @@ SAY `1.23456789e-15`
  !-> MESSAGE/CONTINUE 1.23456789E-15
 1.23456789E-15
 SAY `1.23456789e-15,prec=10`
- !-> MESSAGE/CONTINUE 1.23456789E-15
+ !-> MESSAGE/CONTINUE   1.23456789E-15
 1.23456789E-15
-*** Running test: bn_test_opendap.jnl
+*** Running ferret script: bn_test_opendap.jnl
 ! Test the test_opendap function: returns 0 if successful, or error code if not.
 SET MODE IGNORE
  
@@ -54832,7 +54109,7 @@ list test_opendap ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA0
  
  
 CANCEL MODE IGNORE
-*** Running test: bn611_bug_fixes.jnl
+*** Running ferret script: bn611_bug_fixes.jnl
 ! bn611_bug_fixes.jnl
 ! Fixes that go into v6.11 release
  
@@ -55547,7 +54824,7 @@ list b
  3   / 3:  3.000
 save/clob/file=b.nc b
  
-*** Running test: bn_no_valid_on_plot.jnl
+*** Running ferret script: bn_no_valid_on_plot.jnl
 ! bn_no_valid_on_plot.jnl
 ! Bug 1038 points out that the No Valid Data label that is
 ! put onto 2D plot if there is no good data, is not put onto
@@ -55589,7 +54866,7 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB 4  4.000E+00  6.330E+00 0.120    0  SYSTEM  @A
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- LAB 5 -3.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASSST[Y=39N] No Valid Data
+ LAB 5 -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
@@ -55606,11 +54883,11 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB 3  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 4  2.530E+00 -7.900E-01 0.120    0  SYSTEM  @ASSST[Y=9N]
+ LAB 4  1.750E+00 -8.100E-01 0.120    0  SYSTEM  @ASSST[Y=9N]
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 5  5.780E+00 -7.900E-01 0.119    0  SYSTEM  @ASSST[Y=49N] No Valid Data
+ LAB 5  5.370E+00 -8.100E-01 0.120    0  SYSTEM  @ASSST[Y=49N] No Valid Data
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 6  2.530E+00 -1.050E+00 0.120    0  SYSTEM  @ASSST[Y=19N]
+ LAB 6  1.750E+00 -1.060E+00 0.120    0  SYSTEM  @ASSST[Y=19N]
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  
 ! For 2D plots create a new MODE NODATA_LAB which if on, puts
@@ -55625,7 +54902,7 @@ CONTOUR/Y=80:90 sst[L=1]
 VECTOR/Y=80:90 sst[L=1], sst[L=1]
  
 SET MODE/last nodata_lab
-*** Running test: bn_median.jnl
+*** Running ferret script: bn_median.jnl
 ! Test median smoothing tranform
 ! Default length is 3
  
@@ -55730,7 +55007,7 @@ plot/trans var, var[z=@med:4]
  
 set mode/last ignore
  
-*** Running test: bn614_bug_fixes.jnl
+*** Running ferret script: bn614_bug_fixes.jnl
 ! bn614_bug_fixes.jnl
 ! Fixes that go into v6.14 release
  
@@ -55841,11 +55118,11 @@ GO err611_wrong_fineaxis_range
 use fine_x_axis
 sh grid sst
     GRID GPY1
- name       axis              # pts   start                end
- LON       LONGITUDE         7200mr   179.97W(-179.97)     179.97E
- LAT1800_1800 LATITUDE          1 r   0.025S               0.025S
- ENS       Z (count)            1 r   1                    1
- TIME1     TIME                 1 r   01-APR-2006 00:00    01-APR-2006 00:00
+ name       axis              # pts   start                end                 subset
+ 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
+ TIME1     TIME                 1 r   01-APR-2006 00:00    01-APR-2006 00:00   full
  normal    E
  normal    F
  
@@ -56165,22 +55442,23 @@ GO err611_return_precision
  
 ! See bug 1611, where say "a`95,p=1`" yielded "a 95" but
 ! "a`94,p=1`" yielded "a94"
+! Note with ticket 2389 (5/2016), p=1 returns 1 digit, p=2 returns 2, etc.
  
 say "a`95,p=1`"
  !-> MESSAGE/CONTINUE "a95"
 a95
 say "a`94,p=1`"
- !-> MESSAGE/CONTINUE "a94"
-a94
+ !-> MESSAGE/CONTINUE "a90"
+a90
 say "a`95,p=1`"
  !-> MESSAGE/CONTINUE "a95"
 a95
 say "a`949,p=1`"
- !-> MESSAGE/CONTINUE "a949"
-a949
+ !-> MESSAGE/CONTINUE "a900"
+a900
 say "a`950,p=1`"
- !-> MESSAGE/CONTINUE "a950"
-a950
+ !-> MESSAGE/CONTINUE "a1.E+03"
+a1.E+03
  
 ! Note that an immediate expr with prec=0 returns an integer.
 say "a`95,p=0`"
@@ -56206,54 +55484,54 @@ say "a`0.1,p=0`"
 a0.1
  
 say "a`-95,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.99,p=1`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.001,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
  
 say "a`-94,p=1`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
+ !-> MESSAGE/CONTINUE "a-90"
+a-90
 say "a`-94.99,p=1`"
  !-> MESSAGE/CONTINUE "a-95"
 a-95
 say "a`-94.001,p=1`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
+ !-> MESSAGE/CONTINUE "a-90"
+a-90
  
 say "a`-95,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.99,p=1`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.001,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
  
 say "a`-949,p=1`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
+ !-> MESSAGE/CONTINUE "a-9.E+02"
+a-9.E+02
 say "a`-949.99,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
+ !-> MESSAGE/CONTINUE "a-9.E+02"
+a-9.E+02
 say "a`-949.001,p=1`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
+ !-> MESSAGE/CONTINUE "a-9.E+02"
+a-9.E+02
  
 say "a`-950,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
+ !-> MESSAGE/CONTINUE "a-1.E+03"
+a-1.E+03
 say "a`-950.99,p=1`"
- !-> MESSAGE/CONTINUE "a-951"
-a-951
+ !-> MESSAGE/CONTINUE "a-1.E+03"
+a-1.E+03
 say "a`-950.001,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
+ !-> MESSAGE/CONTINUE "a-1.E+03"
+a-1.E+03
  
  
 say "a`-95,p=0`"
@@ -56451,11 +55729,11 @@ GO err611_irregular_axis
 use cc_irreg.nc
 sh grid cc
     GRID GCZ1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TAX       TIME               142 i   30-DEC-2007 00:00    30-DEC-2007 00:02
+ TAX       TIME               142 i   30-DEC-2007 00:00    30-DEC-2007 00:02   full
  normal    E
  normal    F
  
@@ -56582,7 +55860,7 @@ shade/x=-360:360 b
 fill/ov/pal=greyscale/x=-360:360 b
 cont/ov/x=-360:360 b
  
-*** Running test: bn_mode_nodata_lab.jnl
+*** Running ferret script: bn_mode_nodata_lab.jnl
 ! bn_mode_nodata_lab
 ! turns off the No Valid Data label on plots
 ! (for line plots this is added to the plot label,
@@ -56611,7 +55889,7 @@ contour/fill/y=40:50/x=70e:110e/L=1 vwnd
  
 set mode/last nodata_lab
  
-*** Running test: bn_proleptic_gregorian_calendar.jnl
+*** Running ferret script: bn_proleptic_gregorian_calendar.jnl
 ! proleptic_gregorian_calendar.jnl
 ! Allow PROLEPTIC_GREGORIAN as a calendar attribute
 ! for the default Ferret calendar.
@@ -56628,7 +55906,7 @@ show axis tdays
  TDAYS     TIME                32 r   01-JAN-1988 00:00    01-FEB-1988 00:00
 T0 = 15-JAN-1901 00:00:00
    Axis span (to cell edges) = 32
-*** Running test: bn_string_ngd_nbd.jnl
+*** Running ferret script: bn_string_ngd_nbd.jnl
 ! @NGD and @NBD for strings
 ! Bad data is taken to be the null string
 ! Compare with results for numeric data
@@ -56944,7 +56222,7 @@ list av[i=@ngd,j=@ngd,k=@ngd,L=@ngd]
              Z        : 0.5 to 3.5 (XYZT # valid)
              T        : 0.5 to 2.5 (XYZT # valid)
           16.00
-*** Running test: bn_cat_string.jnl
+*** Running ferret script: bn_cat_string.jnl
 ! bn_cat_string.jnl
 ! Test concatenation functions for string variables
 ! ACM nov 08  See bug 1577
@@ -57010,7 +56288,7 @@ list tcat(a,b)
  4   / 4:"U"
  5   / 5:"V"
  6   / 6:"W"
-*** Running test: bn_sort_strings.jnl
+*** Running ferret script: bn_sort_strings.jnl
 ! bn_sort_strings.jnl
 ! 11/08 acm
  
@@ -57186,7 +56464,7 @@ list indx_bl, samplel(bl,indx_bl)
 6   / 6:    .... ""   
 7   / 7:    .... ""   
  
-*** Running test: bn_samplexyt.jnl
+*** Running ferret script: bn_samplexyt.jnl
 ! bn_samplexyt.jnl
 ! 1/2009
  
@@ -57256,14 +56534,14 @@ plot/vs/color=red/over tpts, sampl_pts
  
  
 set mode calendar
-*** Running test: bn_last_go_file.jnl
+*** Running ferret script: bn_last_go_file.jnl
 ! bn_last_go_file.jnl
 ! test the automatically-defined symbol LAST_GO_FILE
  
 show sym last_go_file
 LAST_GO_FILE = "./bn_last_go_file.jnl"
  
-*** Running test: bn_cancel_upcase_uservar.jnl
+*** Running ferret script: bn_cancel_upcase_uservar.jnl
 ! bn_cancel_upcase_uservar.jnl
 !
 ! Ferret v6.2
@@ -57295,7 +56573,7 @@ SAVE/APPEND/FILE=a.nc newvar
 SP ncdump -h a.nc >> all_ncdump.out
  
 SET MODE/LAST upcase_output
-*** Running test: bn_cdf_keepax.jnl
+*** Running ferret script: bn_cdf_keepax.jnl
 ! bn320_cdf
 ! benchmark to test netCDF input and output
 ! This is the same as bn_cdf with /KEEP_AXNAMES added to SAVE commands.
@@ -57572,11 +56850,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX       X                   10 r   1                    10
- YAX       Y                   20 r   1                    20
- ZAX       Z                  100 r   1                    100
- TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX       X                   10 r   1                    10                  full
+ YAX       Y                   20 r   1                    20                  full
+ ZAX       Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -57668,11 +56946,11 @@ show data/full
  
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX       X                   10 r   1                    10
- YAX       Y                   20 r   1                    20
- ZAX       Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX       X                   10 r   1                    10                  full
+ YAX       Y                   20 r   1                    20                  full
+ ZAX       Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
  
@@ -57702,43 +56980,43 @@ cancel variables/all
 set data/format=cdf test_abs
 show grid j1 jkl jkl2 iavejkl ijkl
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX       Y                   20 r   1                    20
+ YAX       Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX       Y                   20 r   1                    20
- ZAX       Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX       Y                   20 r   1                    20                  full
+ ZAX       Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX       Y                   20 r   1                    20
+ YAX       Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX       Y                   20 r   1                    20
- ZAX       Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX       Y                   20 r   1                    20                  full
+ ZAX       Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU14
- name       axis              # pts   start                end
- XAX       X                   10 r   1                    10
- YAX       Y                   20 r   1                    20
- ZAX       Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX       X                   10 r   1                    10                  full
+ YAX       Y                   20 r   1                    20                  full
+ ZAX       Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -57924,11 +57202,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID PS3DU1
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYU      LATITUDE           100 i   27.672S              50N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXU      LONGITUDE          160mr   131E                 70W                 full
+ PSYU      LATITUDE           100 i   27.672S              50N                 full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
  normal    E
  normal    F
 cancel data test_fil0
@@ -58159,7 +57437,7 @@ list/x=180 fcn_rev_sub
  1N   / 12: -0.3166
  0    / 11:  0.0000
  1S   / 10:  0.3166
-*** Running test: bn_keep_axisnames.jnl
+*** Running ferret script: bn_keep_axisnames.jnl
 ! bn_keep_axisnames.jnl
 ! 2/2009 ACM
  
@@ -58167,12 +57445,12 @@ list/x=180 fcn_rev_sub
 ! axis name when a subset is written.
  
 sh command list
- LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/D/HEADING/NOHEAD/SINGLE/FILE/APPEND/ORDER
-       /FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS/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
+ LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/HEADING/NOHEAD/SINGLY/FILE/APPEND
+       /ORDER/FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS
+       /MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
+       /CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
+       /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
+       /OUTTYPE/CURVILIN/LAYERZ
 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]
@@ -58186,7 +57464,7 @@ save/file=a.nc/clobber/i=30:40/L=15:28 a
 sp echo "bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES" >> all_ncdump.out
 sp ncdump -h a.nc >> all_ncdump.out
  
-*** Running test: bn_key_label_minmax.jnl
+*** Running ferret script: bn_key_label_minmax.jnl
 ! bn_key_label_minmax.jnl
  
 ! Label data min and max on vertical and horizontal keys
@@ -58266,7 +57544,7 @@ KEYMARK 0
 set mode/last logo
 shade/lev=35 sst[L=1]
  
-*** Running test: bn62_bug_fixes.jnl
+*** Running ferret script: bn62_bug_fixes.jnl
 ! bn62_bug_fixes.jnl
 ! Fixes that go into v6.2 release
  
@@ -58337,7 +57615,7 @@ plot/title="vertical profile" yp4
  
 GO error_bars polygon/color=red/thickness=2/title="variability" yp4 errors
  
-*** Running test: bn_convolve.jnl
+*** Running ferret script: bn_convolve.jnl
 ! bn_convolve.jnl
 ! test convolutions, including with missing-data.
 ! compare behavior with smoothing transform spz.
@@ -58465,7 +57743,7 @@ list a, a[i=@spz], convolvei(a,{.25,.5,.25})
 12   / 12:  2.000   ....   ....
  
  
-*** Running test: bn_tax_tstep.jnl
+*** Running ferret script: bn_tax_tstep.jnl
 ! bn_tax_tstep.jnl
 !
 ! Working with the coordinates of this axis loses accuracy because its
@@ -58577,7 +57855,7 @@ LIST/L=1:15 TAX_TSTEP(tt, "`reset_date`")
  01-JAN-1902 00:01:00 / 13:  60.00000
  01-JAN-1902 00:01:05 / 14:  65.00000
  01-JAN-1902 00:01:10 / 15:  70.00000
-*** Running test: bn_grads_z.jnl
+*** Running ferret script: bn_grads_z.jnl
 ! bn_grads_z.jnl
 ! acm 3/31/09
 ! Fixing bug 1651.
@@ -58611,10 +57889,10 @@ SHOW DATA
 ! Ferret uses it as Z only because of the order in which it comes in
 SH GRID am
     GRID GMY1
- name       axis              # pts   start                end
- AAXIS     X (METERS)          10 r   1                    10
- BAXIS     Y (METERS)           5 r   1                    9
- CAXIS     Z (METERS)           5 r   2                    10
+ name       axis              # pts   start                end                 subset
+ AAXIS     X (METERS)          10 r   1                    10                  full
+ BAXIS     Y (METERS)           5 r   1                    9                   full
+ CAXIS     Z (METERS)           5 r   2                    10                  full
  normal    T
  normal    E
  normal    F
@@ -58623,10 +57901,10 @@ SH GRID am
 ! Previously it was not.
 SH GRID ar
     GRID GMY2
- name       axis              # pts   start                end
- AAXIS     X (METERS)          10 r   1                    10
- BAXIS     Y (METERS)           5 r   1                    9
- DAXIS     DEPTH (m)            6 i-  0                    8
+ name       axis              # pts   start                end                 subset
+ AAXIS     X (METERS)          10 r   1                    10                  full
+ BAXIS     Y (METERS)           5 r   1                    9                   full
+ DAXIS     DEPTH (m)            6 i-  0                    8                   full
  normal    T
  normal    E
  normal    F
@@ -58639,19 +57917,19 @@ DEFINE AXIS/Z/UNITS="`am,RETURN=zunits`"/DEPTH ($zname) = Z[GZ=am]
  !-> DEFINE AXIS/Z/UNITS="METERS"/DEPTH CAXIS = Z[GZ=am]
 SH GRID am
     GRID GMY1
- name       axis              # pts   start                end
- AAXIS     X (METERS)          10 r   1                    10
- BAXIS     Y (METERS)           5 r   1                    9
- CAXIS     DEPTH (m)            5 r-  2                    10
+ name       axis              # pts   start                end                 subset
+ AAXIS     X (METERS)          10 r   1                    10                  full
+ BAXIS     Y (METERS)           5 r   1                    9                   full
+ CAXIS     DEPTH (m)            5 r-  2                    10                  full
  normal    T
  normal    E
  normal    F
-*** Running test: bn_clock_syms.jnl
+*** Running ferret script: bn_clock_syms.jnl
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "0.007998"
+DELTA_CPU = "0.005998"
 CLOCK_SECS = "0.003"
-CURRENT_DATE = " 6-Nov-15"
-CURRENT_TIME = "15:54:33"
+CURRENT_DATE = "17-Jun-16"
+CURRENT_TIME = "15:04:16"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -58660,8 +57938,8 @@ CURRENT_TIME = "15:54:33"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.032995"
-CLOCK_SECS = "0.18"
+DELTA_CPU = "0.035994"
+CLOCK_SECS = "0.041"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -58675,61 +57953,61 @@ repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=9
 !-> REPEAT: K=10
 let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.093985
+ !-> DEFINE VARIABLE ten_plots = 0.138979
 sh sym DELTA_CPU, CLOCK_SECS
 DELTA_CPU = "0"
-CLOCK_SECS = "1.038"
+CLOCK_SECS = "0.181"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "1.038"
+CLOCK_SECS = "0.182"
 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.010999
- !-> DEFINE VARIABLE sumcpu =0.010999
+ !-> DEFINE VARIABLE dt = 0.014998
+ !-> DEFINE VARIABLE sumcpu =0.014998
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.010998
- !-> DEFINE VARIABLE sumcpu =0.021997
+ !-> DEFINE VARIABLE dt = 0.014998
+ !-> DEFINE VARIABLE sumcpu =0.029996
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.011998
- !-> DEFINE VARIABLE sumcpu =0.033995
+ !-> DEFINE VARIABLE dt = 0.015998
+ !-> DEFINE VARIABLE sumcpu =0.045994
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.010999
- !-> DEFINE VARIABLE sumcpu =0.044994
+ !-> DEFINE VARIABLE dt = 0.015997
+ !-> DEFINE VARIABLE sumcpu =0.061991
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.011998
- !-> DEFINE VARIABLE sumcpu =0.056992
+ !-> DEFINE VARIABLE dt = 0.015997
+ !-> DEFINE VARIABLE sumcpu =0.077988
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.010998
- !-> DEFINE VARIABLE sumcpu =0.06799
+ !-> DEFINE VARIABLE dt = 0.014998
+ !-> DEFINE VARIABLE sumcpu =0.092986
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.010998
- !-> DEFINE VARIABLE sumcpu =0.078988
+ !-> DEFINE VARIABLE dt = 0.015998
+ !-> DEFINE VARIABLE sumcpu =0.108984
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.011999
- !-> DEFINE VARIABLE sumcpu =0.090987
+ !-> DEFINE VARIABLE dt = 0.014997
+ !-> DEFINE VARIABLE sumcpu =0.123981
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.010998
- !-> DEFINE VARIABLE sumcpu =0.101985
+ !-> DEFINE VARIABLE dt = 0.014998
+ !-> DEFINE VARIABLE sumcpu =0.138979
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.010998
- !-> DEFINE VARIABLE sumcpu =0.112983
+ !-> DEFINE VARIABLE dt = 0.014998
+ !-> DEFINE VARIABLE sumcpu =0.153977
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.112983
-0.112983
+ !-> MESSAGE/CONTINUE 0.153977
+0.153977
 sh sym CLOCK_SECS
-CLOCK_SECS = "1.885"
+CLOCK_SECS = "0.338"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = " 6-Nov-15"
-SESSION_TIME = "15:54"
-CURRENT_DATE = " 6-Nov-15"
-CURRENT_TIME = "15:54:35"
-*** Running test: bn63_bug_fixes.jnl
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:04"
+CURRENT_DATE = "17-Jun-16"
+CURRENT_TIME = "15:04:17"
+*** Running ferret script: bn63_bug_fixes.jnl
 ! bn63_bug_fixes.jnl
 ! Fixes that go into v6.3 release
  
@@ -58833,6 +58111,8 @@ GO err62_thick_tic_time_axis
 ! disappeared due to pixel aliasing. Fixed by setting
 ! the thick-line for these tics.
  
+! restore default setting
+ppl axlabp,-1,-1
  
 define axis/t=1-jan-1990:1-jan-2010:1/units=months tax
  
@@ -59432,7 +58712,7 @@ LIST 1 EQ 2 OR "A" EQ "B"    ! should be 0
              VARIABLE : 1 EQ 2 OR "A" EQ "B"
           0.0000
  
-*** Running test: bn_axis_reversed_syms.jnl
+*** Running ferret script: bn_axis_reversed_syms.jnl
 ! bn_axis_reversed_syms.jnl
 ! XAXIS_REVERSED and YAXIS_REVERSED are
 ! set to 0 or if the reversed-axis is
@@ -59516,7 +58796,7 @@ sh sym *axis_reversed
 XAXIS_REVERSED = "0"
 YAXIS_REVERSED = "1"
  
-*** Running test: bn_isdepth.jnl
+*** Running ferret script: bn_isdepth.jnl
 ! Tests of `var,RETURN=ISDEPTH`
  
 define axis/units=meters/z=0:100:2 zup
@@ -59549,7 +58829,7 @@ say `temp,return=isdepth`
  !-> MESSAGE/CONTINUE 0
 0
  
-*** Running test: bn_var_hist_levels.jnl
+*** Running ferret script: bn_var_hist_levels.jnl
 ! bn_var_hist_levels.jnl
 ! Syntax for variance-based or histogram-based levels
 !
@@ -59565,7 +58845,7 @@ LEV_TEXT = "50V"
 LEV_MIN = "-2"
 LEV_MAX = "30.74"
 LEV_NUM = "56"
-LEV_DEL = "0.5"
+LEV_DEL = "irregular"
 LEV_OPNLEVS = "(-2,3.05,0.505)(3.5,25.5,0.5)(25.5,25.5,0.505)(inf)"
  
 shade/line/lev=50v,5min/title="/LEV=50v,5min" temp[K=1]
@@ -59606,7 +58886,7 @@ shade/line/key/lev=20c,1d/title="/LEV=20c,1d" cvar[K=1]
 ! Histogram-based
 shade/line/key/lev=50h/title="/LEV=50h" cvar[K=1]
  
-*** Running test: bn64_bug_fixes.jnl
+*** Running ferret script: bn64_bug_fixes.jnl
 ! bn64_bug_fixes.jnl
 ! Fixes that go into v6.4 release
  
@@ -59693,7 +58973,7 @@ list v1
              FILENAME : names
              X        : 1
         "ZAIRA"
-*** Running test: bn_long_grid_names.jnl
+*** Running ferret script: bn_long_grid_names.jnl
 ! bn_long_grid_names.jnl
 ! test longer grid names (16 --> 64 chars)
 ! tests taken from other bn scripts but with longer grid names
@@ -60253,10 +59533,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -60284,10 +59564,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -60313,10 +59593,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -60368,7 +59648,7 @@ show grid gg123456789012345678902
     GRID GG123456789012345678902
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX007)   LATITUDE           401 r   20S                  20N
+ (AX011)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
@@ -60377,7 +59657,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX007)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! demonstrate proper management of dynamic axes
 DEFINE GRID/LIKE=gg123456789012345678902 gg123456789012345678903
@@ -60385,7 +59665,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX007)                         use count:   2
+    AXIS (AX011)                         use count:   2
 DEFINE GRID/like=temp[d=levitus_climatology] gg123456789012345678902
 show grid gg123456789012345678902
     GRID GG123456789012345678902
@@ -60400,7 +59680,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX007)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! SET GRID using a user-defined variable
 let g = sst[x=0:30:.1,d=coads_climatology]
@@ -60409,11 +59689,11 @@ show grid
  Default grid for DEFINE VARIABLE is (G006)
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- (AX009)   LONGITUDE          301 r   0E                   30E
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ (AX013)   LONGITUDE          301 r   0E                   30E                 full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  normal    E
  normal    F
  
@@ -60423,11 +59703,11 @@ show grid
  Default grid for DEFINE VARIABLE is (G006)
  Last successful data access was on grid (G005)
     GRID (G005)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX010)   LATITUDE           201 r   10S                  10N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX014)   LATITUDE           201 r   10S                  10N                 200 pts
  normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  normal    E
  normal    F
 show grid/dynamic
@@ -60435,23 +59715,23 @@ Dynamic grids:
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX010)   LATITUDE           201 r   10S                  10N
+ (AX014)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX009)   LONGITUDE          301 r   0E                   30E
+ (AX013)   LONGITUDE          301 r   0E                   30E
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX010)                         use count:   1
-    AXIS (AX009)                         use count:   1
-    AXIS (AX007)                         use count:   1
+    AXIS (AX014)                         use count:   1
+    AXIS (AX013)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! deliberate errors
 set mode ignore
@@ -60472,24 +59752,29 @@ SHOW GRID mygrid_123456789012345678901234567890
     GRID MYGRID_123456789012345678901234567890
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX010)   LATITUDE            41 r   10S                  2S
+ (AX014)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
  normal    F
-*** Running test: bn_xml_repl.jnl
+*** Running ferret script: bn_xml_repl.jnl
 ! bn_xml_repl.jnl
 ! replace > and < and & with their html equivalents.
  
-use coads_climatology
-set var/title="a title with & and > and < characters" sst
-set var/units="<<" sst
-set att sst.history = "Adding some ampersands.& & to the history"
+! make a short file
+let/units="meters" myvar = 7
+save/clobber/file=a.nc myvar
+can var/all
+use a.nc
+ 
+set var/title="a title with & and > and < characters" myvar
+set var/units="<<" myvar
+define att myvar.history = "Adding some ampersands.& & to the history"
 sh dat/xml/var
 <datasets>
-<dataset name="./coads_climatology.cdf" default="true">
+<dataset name="./a.nc" default="true">
 <title> </title>
-<var name="SST">
+<var name="MYVAR">
 <attribute name="units" type="char">
    <value><![CDATA[<<]]></value>
 </attribute>
@@ -60506,118 +59791,18 @@ sh dat/xml/var
    <value><![CDATA[FLOAT]]></value>
 </attribute>
 <attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="GSQ1">
+<grid name="GSI1">
 <axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME</taxis>
 </axes>
 </grid>
 </var>
 </dataset>
 </datasets>
 <axes>
-<axis name="COADSX">
-<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>180</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>21</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>379</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="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSX]]></value>
-</attribute>
-</axis>
-<axis name="COADSY">
-<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>90</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-89</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>89</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[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSY]]></value>
-</attribute>
-</axis>
-<axis name="TIME">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>3</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>0000-01-16 06:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>0000-03-17 02:58:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
-   <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
-   <value><![CDATA[0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
-   <value>8765.82</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[TIME]]></value>
-</attribute>
-</axis>
 </axes>
-shade/l=1 sst
-*** Running test: bn65_bug_fixes.jnl
+*** Running ferret script: bn65_bug_fixes.jnl
 ! bn65_bug_fixes.jnl
 ! Fixes that go into v6.5 release
  
@@ -60878,7 +60063,7 @@ poly/ov/nolab/line=15 pos,pos      ! this works
 go polymark "poly/ov/nolab/pal=red/line=1" pos pos " " circle .5
  
  
-*** Running test: bn_txtype_dmy.jnl
+*** Running ferret script: bn_txtype_dmy.jnl
 ! bn_txtype_dmy.jnl
 ! 2/2010 ACM
 !
@@ -61001,7 +60186,7 @@ ppl plot
 ! make sure this setting doesnt persist
 plot/y=-1/k=1/t=5-mar-1982:28-mar-1982/x=144w temp
 plot/y=-1/k=1/t=5-mar-1982:28-apr-1982/x=144w temp
-*** Running test: bn_n_open_dsets_sym.jnl
+*** Running ferret script: bn_n_open_dsets_sym.jnl
  !  bn_n_open_dsets_sym.jnl
 ! Ferret v6.5
 ! New special symbol N_OPEN_DSETS, evaulated when requested.
@@ -61042,7 +60227,7 @@ can dat/all
 sh sym N_OPEN_DSETS
 N_OPEN_DSETS = "0"
  
-*** Running test: bn_multi_decade.jnl
+*** Running ferret script: bn_multi_decade.jnl
 ! bn_multi_decade.jnl
 ! New default no-small tics for multi-decade plots
 ! See bug 670
@@ -61103,7 +60288,7 @@ set view v7; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar
 set view v8; plot/trans/nolab/ax=0,0,1,0/hlim=0:1/set tvar
   ppl tics,0.1,0.25
   ppl plot
-*** Running test: bn_show_xml_file.jnl
+*** Running ferret script: bn_show_xml_file.jnl
 ! bn_show_xml_file.jnl
 ! Testing SHOW DATA/OUTFILE
 !         SHOW AXIS/OUTFILE
@@ -61117,7 +60302,12 @@ set view v8; plot/trans/nolab/ax=0,0,1,0/hlim=0:1/set tvar
 ! Dont do show axis/all. Just the axes for one variable is a lot of output.
 ! Ferret v685, show/data/var/xml includes the output of show axis, so remove that.
  
-USE ocean_atlas_temp.cdf
+! create a short file
+LET sst = x[x=1:15] + y[y=1:5] + t[gt=month_irreg]
+save/clobber/file=b.nc sst
+can var/all
+ 
+use b
  
 DEFINE SYMBOL output_xml_file = the_xml_file.xml
  
@@ -61144,14 +60334,11 @@ sp cat the_xml_file.xml
 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
 <data>
 <datasets>
-<dataset name="./ocean_atlas_temp.cdf" default="true">
+<dataset name="./b.nc" default="true">
 <title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
-   <value><![CDATA[Deg C]]></value>
-</attribute>
+<var name="SST">
 <attribute name="long_name" type="char">
-   <value><![CDATA[Temperature]]></value>
+   <value><![CDATA[X[X=1:15] + Y[Y=1:5] + T[GT=MONTH_IRREG]]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
    <value>-1.E+34</value>
@@ -61163,96 +60350,75 @@ sp cat the_xml_file.xml
    <value><![CDATA[FLOAT]]></value>
 </attribute>
 <attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="GBS1">
+<grid name="GRR1">
 <axes>
-<xaxis>XAX_LEV9421_380</xaxis>
-<yaxis>YAX_LEV94</yaxis>
-<zaxis>ZAXLEVIT191_1</zaxis>
-<taxis>TIME</taxis>
+<xaxis>XAX1_15</xaxis>
+<yaxis>YAX1_5</yaxis>
+<taxis>MONTH_IRREG</taxis>
 </axes>
 </grid>
 </var>
 </dataset>
 </datasets>
 <axes>
-<axis name="XAX_LEV9421_380">
+<axis name="MONTH_IRREG">
 <attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
+   <value><![CDATA[L]]></value>
 </attribute>
 <attribute name="units" type="char">
-   <value><![CDATA[degrees_east]]></value>
+   <value><![CDATA[DAYS since 0000-01-01 00:00:00]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>360</value>
+   <value>12</value>
 </attribute>
 <attribute name="start" type="double">
-   <value>20.5</value>
+   <value>0000-01-16 12:00:00</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>379.5</value>
+   <value>0000-12-15 17:49:00</value>
 </attribute>
 <attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
+   <value>uneven</value>
 </attribute>
 <attribute name="modulo" type="char">
    <value><![CDATA[yes]]></value>
 </attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[XAX_LEV9421_380]]></value>
-</attribute>
-</axis>
-<axis name="YAX_LEV94">
-<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>180</value>
+<attribute name="time_origin" type="char">
+   <value><![CDATA[0000-01-01 00:00:00]]></value>
 </attribute>
-<attribute name="start" type="double">
-   <value>-89.5</value>
+<attribute name="calendar" type="char">
+   <value><![CDATA[GREGORIAN]]></value>
 </attribute>
-<attribute name="end" type="double">
-   <value>89.5</value>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
+<attribute name="axis" type="char">
+   <value><![CDATA[T]]></value>
 </attribute>
-<attribute name="modulo" type="char">
-   <value>no</value>
+<attribute name="standard_name" type="char">
+   <value><![CDATA[time]]></value>
 </attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
+<attribute name="bounds" type="char">
+   <value><![CDATA[MONTH_IRREG_bnds]]></value>
 </attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[YAX_LEV94]]></value>
+   <value><![CDATA[MONTH_IRREG]]></value>
 </attribute>
 </axis>
-<axis name="ZAXLEVIT191_1">
+<axis name="XAX1_15">
 <attribute name="direction" type="char">
-   <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[METERS]]></value>
+   <value><![CDATA[I]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>1</value>
+   <value>15</value>
 </attribute>
 <attribute name="start" type="double">
-   <value>0</value>
+   <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>0</value>
-</attribute>
-<attribute name="positive" type="char">
-   <value><![CDATA[down]]></value>
+   <value>15</value>
 </attribute>
 <attribute name="point_spacing" type="char">
    <value><![CDATA[even]]></value>
@@ -61263,52 +60429,46 @@ sp cat the_xml_file.xml
 <attribute name="infile_datatype" type="char">
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[X]]></value>
+</attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[ZAXLEVIT191_1]]></value>
+   <value><![CDATA[XAX1_15]]></value>
 </attribute>
 </axis>
-<axis name="TIME">
+<axis name="YAX1_5">
 <attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
+   <value><![CDATA[J]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>2</value>
+   <value>5</value>
 </attribute>
 <attribute name="start" type="double">
-   <value>0000-01-16 06:00:00</value>
+   <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>0000-02-15 16:29:00</value>
+   <value>5</value>
 </attribute>
 <attribute name="point_spacing" type="char">
    <value><![CDATA[even]]></value>
 </attribute>
 <attribute name="modulo" type="char">
-   <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
-   <value><![CDATA[0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
-   <value>8765.82</value>
+   <value>no</value>
 </attribute>
 <attribute name="infile_datatype" type="char">
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[Y]]></value>
+</attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[TIME]]></value>
+   <value><![CDATA[YAX1_5]]></value>
 </attribute>
 </axis>
 </axes>
 </data>
  
-*** Running test: bn66_bug_fixes.jnl
+*** Running ferret script: bn66_bug_fixes.jnl
 ! bn66_bug_fixes.jnl
 ! Fixes that go into v6.6 release
  
@@ -61404,11 +60564,11 @@ stat temp[z=@ave,t=@ave,y=-2:2]
  Standard deviation: 0.40997
  
 cancel region
-*** Running test: bn_netcdf4.jnl
+*** Running ferret script: bn_netcdf4.jnl
 ! bn_netcdf4.jnl
 ! test syntax for controling NetCDF-4 intput and output.
- 
- 
+! 2/2016 change file name in second intentinal-error case
+!        Also list the file sizes for compressed data
  
 show nccache
 Current NCDF Chunk Cache size 4.1943 MB, n_elems = 1009, preemption = 75
@@ -61454,6 +60614,18 @@ save/file=nc4_nodeflate3.nc/clobber/ncformat=3 sst
 save/file=nc4_deflate4_xyt.nc/clobber/ncformat=4/deflate/shuffle/tchunk=2/xchunk=30/ychunk=20  sst
 save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
  
+! get the file sizes
+! Note that small changes in file size may be caused by differences in the global
+! history attribute; e.g. changing the Ferret version name from v6.97 to v7
+ 
+sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
+Bytes: 197504
+sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
+Bytes: 125210
+sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
+Bytes: 124798
+sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
+Bytes: 118863
  
 ! Write variable as INT
 CAN DAT/all; can var/all; can mem/all
@@ -61466,6 +60638,14 @@ save/clobber/file=nc4_inttemp_set_list_deflate_chunk.nc temp
  
 save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
  
+! get the file sizes
+sp stat nc4_inttemp_classic.nc --printf="Bytes: %s\n"
+Bytes: 60544
+sp stat nc4_inttemp_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
+Bytes: 32390
+sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
+Bytes: 32567
+ 
 cancel list/all
 set list/ncformat=classic
 save/clobber/file=nc4_inttemp_set_classic.nc temp
@@ -61516,10 +60696,10 @@ set mode ignore
 save/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchunk=1  sst
  
 ! Chunk sizes bigger than dim sizes
-save/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
+save/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
 can mode ignore
  
-*** Running test: bn_scat2grid_bin.jnl
+*** Running ferret script: bn_scat2grid_bin.jnl
 ! bn_scat2grid_bin.jnl
 ! Tests of scat2grid_bin and scat2grid_nbin functions.
  
@@ -61530,11 +60710,11 @@ define axis/t=1-jan-2010:30-mar-2010:10/units=days tout
 let tt = t[gt=tout,L=1:10]
 sh grid tt
     GRID (G001)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   9 pts
  normal    E
  normal    F
  
@@ -61737,11 +60917,11 @@ list/x=2:3 sgrid
 let tpts = 39798 + 87*RANDU(I)
 show grid tt
     GRID (G004)
- name       axis              # pts   start                end
- X10       X                  201 r   0                    10
- Y10       Y                  201 r   0                    10
+ name       axis              # pts   start                end                 subset
+ X10       X                  201 r   0                    10                  full
+ Y10       Y                  201 r   0                    10                  full
  normal    Z
- TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   9 pts
  normal    E
  normal    F
  
@@ -61856,7 +61036,7 @@ can axis x10
 can axis tout
 can axis tin
  
-*** Running test: bn_axis_dir_symbols.jnl
+*** Running ferret script: bn_axis_dir_symbols.jnl
 ! bn_axis_dir_symbols.jnl
 ! 5/2010
 !
@@ -61882,7 +61062,7 @@ AX_VERT = "T"
 shade/x=180 sst; show sym ax*; can sym ax*
 AX_HORIZ = "T"
 AX_VERT = "Y"
-*** Running test: bn663_bug_fixes.jnl
+*** Running ferret script: bn663_bug_fixes.jnl
 ! bn663_bug_fixes.jnl
 ! Fixes that go into v6.63 release
  
@@ -61917,7 +61097,7 @@ USE coads_climatology
 SHADE/L=1/X=60:70/Y=40:50/LEV=v sst
  
 FILL/L=2/X=60:70/Y=40:50/LEV=v sst
-*** Running test: bn_set_axis_regular.jnl
+*** Running ferret script: bn_set_axis_regular.jnl
 ! bn_set_axis_regular.jnl
 ! Karl Smith, 5/2010
 ! tests for SET AXIS /REGULAR
@@ -61988,9 +61168,9 @@ show grid
  Default grid for DEFINE VARIABLE is MYGRID
  Last successful data access was on grid MYGRID
     GRID MYGRID
- name       axis              # pts   start                end
- MYX       X                   10 i   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX       X                   10 i   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -62049,9 +61229,9 @@ show grid
  Default grid for DEFINE VARIABLE is MYGRID
  Last successful data access was on grid MYGRID
     GRID MYGRID
- name       axis              # pts   start                end
- MYX       X                   10 r   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX       X                   10 r   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -62110,9 +61290,9 @@ show grid
  Default grid for DEFINE VARIABLE is MYGRID
  Last successful data access was on grid MYGRID
     GRID MYGRID
- name       axis              # pts   start                end
- MYX       X                   10 r   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX       X                   10 r   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -62151,9 +61331,9 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GOZ1
     GRID GOZ1
- name       axis              # pts   start                end
- MYX1      X                   10 i   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX1      X                   10 i   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -62182,15 +61362,15 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GOZ1
     GRID GOZ1
- name       axis              # pts   start                end
- MYX1      X                   10 r   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX1      X                   10 r   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
  normal    F
  
-*** Running test: bn_set_cancel_redirect.jnl
+*** Running ferret script: bn_set_cancel_redirect.jnl
 ! bn_set_cancel_redirect.jnl
 ! Karl Smith, 5/2010
 ! test for SET REDIRECT and CANCEL REDIRECT
@@ -62639,9 +61819,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 47 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v6.951 (beta)"                                                    
- 3    /  3:" ! Linux 2.6.32-573.7.1.el6.x86_64 64-bit - 11/06/15"                       
- 4    /  4:" !  6-Nov-15 15:54     "                                                    
+ 2    /  2:" ! FERRET v7 (beta/dbg)"                                                    
+ 3    /  3:" ! Linux 2.6.32-642.1.1.el6.x86_64 64-bit - 06/17/16"                       
+ 4    /  4:" ! 17-Jun-16 15:04     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -62692,7 +61872,7 @@ set grid abstract
 cancel grid mygrid
  
 !!! NOTE: journal mode is now turned off !!!
-*** Running test: bn_min_max_smoothers.jnl
+*** Running ferret script: bn_min_max_smoothers.jnl
 ! bn_min_max_smoothers.jnl
 ! New transforms @SMN and @SMX, smoothers based on the
 ! min and max of the data in the window.
@@ -62723,14 +61903,14 @@ regridding transforms e.g.SST[GX=x5deg at AVE]
    code        description                  code        description
    ----        -----------                  ----        -----------
    @LIN        lin. interp.                 @MODVAR     modulo var
-   @AVE        box avgd                     @MODNGD     # gd mod pts
+   @AVE        area-wgtd avgd               @MODNGD     # gd mod pts
    @XACT       exact match                  @MODNBD     #bad mod pts
    @ASN        index assn                   @MODSUM     modulo sum
    @VAR        variance                     @MODMIN     modulo min
    @MIN        minimum                      @MODMAX     modulo max
    @MAX        maximum                      @NRST       nearst coord
-   @SUM        sum                          @BIN        binning
-   @NGD        # gd pts                     @NBIN       #good in bin
+   @SUM        area-wgtd sum                @BIN        unwgtd avg
+   @NGD        #gd pts, area wgtd           @NBIN       #good in bin
    @MOD        modulo ave
  
 auxiliary varible regridding transforms e.g.TEMP[GZ(depth)=zax at AVE]
@@ -62980,7 +62160,7 @@ list/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
 85    /  9:  24.51  24.51  25.40  23.54
 95    / 10:  23.54  24.51  24.51  23.54
  
-*** Running test: bn_vector_symbols.jnl
+*** Running ferret script: bn_vector_symbols.jnl
 ! bn_vector_symbols.jnl
 ! ACM 7/16/21010 Ferret V6.6.3
 !
@@ -63025,7 +62205,7 @@ PPL_VEC_YSKIP = "8"
 VECTOR/NOLAB/KEY/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=6 i/j,j/i
  
 VECTOR/OVER/KEY/NOLAB/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=4 i/j,j/i
-*** Running test: bn_variance_large.jnl
+*** Running ferret script: bn_variance_large.jnl
 ! bn_variance_large.jnl
 ! Previous to v6.6.4, these returned messages **too big**
  
@@ -63071,7 +62251,7 @@ STAT/L=1 huge
 SHADE/L=1/LEV=v huge
  
 CANCEL SYMBOL lev*
-*** Running test: bn_labnum_calendar.jnl
+*** Running ferret script: bn_labnum_calendar.jnl
 ! bn_labnum_calendar.jn.
 ! Define new symbol, when a Calendar label is on
 ! the plot, pointing to its ppl label number.
@@ -63089,7 +62269,7 @@ sh sym lab($labnum_calend)
  !-> sh sym lab4
 LAB4 = "CALENDAR: NOLEAP"
  
-*** Running test: bn665_bug_fixes.jnl
+*** Running ferret script: bn665_bug_fixes.jnl
 ! bn65_bug_fixes.jnl
 ! test various fixes that went into version 6.6.5
 ! 11/2010 ACM
@@ -63371,6 +62551,27 @@ list/prec=7 t[gt=t_28]
              TIME     : 04-MAY-2007 05:02
           38825.21
  
+! 1/2016 additional tests, reading and saving data,
+! getting attribute information.
+ 
+set att/output=all .
+save/file=a.nc/clobber/k=1:5 t_28
+sp ncdump -h a.nc | grep INST_TYPE
+		:INST_TYPE = "Sea-Bird CTD SBE 9" ;
+ 
+let evar = T_28.generic_name
+save/append/file=a.nc evar
+ 
+list ..dimnames
+             VARIABLE : ..DIMNAMES
+             FILENAME : epic_formatted_file.nc
+             SUBSET   : 4 points (X)
+ 1   / 1:"time"
+ 2   / 2:"dep" 
+ 3   / 3:"lat" 
+ 4   / 4:"lon" 
+ 
+ 
  
 GO bn_reset
 cancel mode verify
@@ -63443,7 +62644,7 @@ list tax_year(a,a)
  JUL-0004 / 5:"01-JUL-0004"
  JUL-0005 / 6:"01-JUL-0005"
  
-*** Running test: bn_floatstr.jnl
+*** Running ferret script: bn_floatstr.jnl
 ! bn_floatstr.jnl
 ! testing new function to convert floating-point
 ! variables to strings.
@@ -63564,7 +62765,7 @@ LIST/X=165W:135W/Y=-50/L=1 STRLEN(var)
  139W   / 101:  0.000
  137W   / 102:  0.000
  135W   / 103:  0.000
-*** Running test: bn67_bug_fixes.jnl
+*** Running ferret script: bn67_bug_fixes.jnl
 ! bn67_bug_fixes.jnl
 ! test various fixes that went into version 6.7
 ! 2/2011 ACM
@@ -63728,27 +62929,32 @@ sh dat/att
   
  .                               history         CHAR        28   T       FERRET V6.7 (beta) 25-Mar-11
                                  Conventions     CHAR        6    F       CF-1.0
-                                 nco_input_file_nINT         1    F       1000
-                                 nco_input_file_lCHAR        2760 F       b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.00 [...]
+                                 nco_input_file_number
+                                                 INT         1    F       1000
+                                 nco_input_file_list
+                                                 CHAR        2760 F       b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.00 [...]
   
 (LON273_289)           DOUBLE    long_name       CHAR        9    T       longitude
                                  units           CHAR        12   T       degrees_east
                                  modulo          DOUBLE      1    T       360
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        10   F       LON273_289
+                                 orig_file_axname
+                                                 CHAR        10   F       LON273_289
   
 (LAT54_54)             DOUBLE    long_name       CHAR        8    T       latitude
                                  units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
-                                 orig_file_axnameCHAR        8    F       LAT54_54
+                                 orig_file_axname
+                                                 CHAR        8    F       LAT54_54
   
 (TIME)                 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
-                                 orig_file_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SFCO2                 FLOAT     units           CHAR        7    T       kg/m2/s
                                  long_name       CHAR        16   T       CO2 surface flux
@@ -63770,7 +62976,7 @@ set mode ignore
  
 ! setting too large
 set mode desperate `9999999999`
- !-> set mode desperate 1.E+10
+ !-> set mode desperate   9999999999.000000
 show mode desperate
       MODE            STATE        ARGUMENT
       DESPERATE     CANCELLED      2560000
@@ -63785,12 +62991,14 @@ show mode desperate
 ! Previously couldnt handle a floating point
 ! input. Now we can.
 set mode desperate `96 * 1024 * 1024`
- !-> set mode desperate 1.006633E+08
+ !-> set mode desperate   100663296.0000000
 show mode desperate
       MODE            STATE        ARGUMENT
-      DESPERATE        SET           100663300
+      DESPERATE        SET           100663296
 can mode ignore
  
+cancel mode desperate
+ 
 GO bn_reset
 cancel mode verify
 GO err667_dup_axnames
@@ -63912,7 +63120,7 @@ sh dat
  TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
  
  
-*** Running test: bn_NaN_note.jnl
+*** Running ferret script: bn_NaN_note.jnl
 ! bn_NaN_note.jnl
 ! Ferret v6.7  2/2011
 ! The message about no missing flags, and assuming NaN,
@@ -63929,7 +63137,7 @@ cancel mode verify
 SET MODE diag
 USE test0
 CANCEL MODE diag
-*** Running test: bn671_bug_fixes.jnl
+*** Running ferret script: bn671_bug_fixes.jnl
 ! bn671_bug_fixes.jnl
 ! test various fixes that went into version 6.71
 ! 4/2011 ACM
@@ -64219,7 +63427,7 @@ list var
  380   /  9:   ....
  390   / 10:   ....
  400   / 11:   ....
-*** Running test: bn68_bug_fixes.jnl
+*** Running ferret script: bn68_bug_fixes.jnl
 ! bn68_bug_fixes.jnl
 ! test various fixes that went into version 6.8
 !
@@ -64831,8 +64039,8 @@ GO err672_dset_cx
 let a = x[gx=0:2:1]; save/clob/file=a1.nc a
 sho grid/x a
     GRID (G008)
- name       axis              # pts   start                end
- (AX001)   X                    3 r   0                    2
+ name       axis              # pts   start                end                 subset
+ (AX007)   X                    3 r   0                    2                   2 pts
  normal    Y
  normal    Z
  normal    T
@@ -64847,8 +64055,8 @@ sho grid/x a
 let a = x[gx=1:3:1]; save/clob/file=a2.nc a
 sho grid/x a
     GRID (G008)
- name       axis              # pts   start                end
- (AX005)   X                    3 r   1                    3
+ name       axis              # pts   start                end                 subset
+ (AX002)   X                    3 r   1                    3                   2 pts
  normal    Y
  normal    Z
  normal    T
@@ -64869,14 +64077,14 @@ can var/all; can dat/all
 use a1
 list x[gx=a[d=1]]
              VARIABLE : X
-                        axis AX001
+                        axis AX007
              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 AX001
+                        axis AX007
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -64891,7 +64099,7 @@ use a2
  
 list x[gx=a[d=1]]
              VARIABLE : X
-                        axis AX001
+                        axis AX007
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -64900,7 +64108,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 AX001
+                        axis AX007
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -64916,12 +64124,12 @@ 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 AX001
+                        axis AX007
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
  2   / 3:  2.000
-*** Running test: bn_ifv.jnl
+*** Running ferret script: bn_ifv.jnl
 ! bn_ifv.jnl
 ! test IFV IfValid masking for a variety of combos
  
@@ -65056,7 +64264,7 @@ list IFV strings EQ "a" THEN "" ELSE strings
  1   / 1:"" 
  2   / 2:"b"
  3   / 3:"" 
-*** Running test: bn_randu2_randn2.jnl
+*** Running ferret script: bn_randu2_randn2.jnl
 ! Test randu2 and randn2 with newer random-number algorithm.
 ! 9/2011 acm
 ! Note that most of these results will differe from one
@@ -65073,40 +64281,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.633
-randu2_randn2       0.923
-randu2_randn2       0.140
-randu2_randn2       0.897
-randu2_randn2       0.548
+randu2_randn2       0.683
+randu2_randn2       0.222
+randu2_randn2       0.353
+randu2_randn2       0.343
+randu2_randn2       0.801
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.266
-randu2_randn2       0.933
-randu2_randn2       0.953
-randu2_randn2       0.187
-randu2_randn2       0.698
+randu2_randn2       0.495
+randu2_randn2       0.861
+randu2_randn2       0.378
+randu2_randn2       0.055
+randu2_randn2       0.942
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.582
-randu2_randn2       0.110
-randu2_randn2       0.976
-randu2_randn2       0.181
-randu2_randn2       0.825
-randu2_randn2       0.167
+randu2_randn2       0.084
+randu2_randn2       0.827
+randu2_randn2       0.542
+randu2_randn2       0.220
+randu2_randn2       0.666
+randu2_randn2       0.185
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.861
-randu2_randn2       0.964
-randu2_randn2       0.576
-randu2_randn2       0.825
-randu2_randn2       0.362
-randu2_randn2       0.932
+randu2_randn2       0.269
+randu2_randn2       0.984
+randu2_randn2       0.421
+randu2_randn2       0.136
+randu2_randn2       0.206
+randu2_randn2       0.407
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -65131,40 +64339,40 @@ randu2_randn2       0.638
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -0.480
-randu2_randn2      -0.007
-randu2_randn2       0.572
-randu2_randn2      -0.015
-randu2_randn2       2.431
+randu2_randn2      -0.614
+randu2_randn2       1.569
+randu2_randn2      -0.755
+randu2_randn2       0.211
+randu2_randn2       0.498
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.182
-randu2_randn2      -0.903
-randu2_randn2      -0.379
-randu2_randn2       0.360
-randu2_randn2       0.141
+randu2_randn2       0.861
+randu2_randn2       0.993
+randu2_randn2       1.219
+randu2_randn2       0.023
+randu2_randn2       0.386
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -0.007
-randu2_randn2      -0.438
-randu2_randn2       0.848
-randu2_randn2       0.722
-randu2_randn2       1.096
-randu2_randn2       1.026
+randu2_randn2      -0.499
+randu2_randn2       0.675
+randu2_randn2       1.434
+randu2_randn2       1.342
+randu2_randn2       0.211
+randu2_randn2      -0.779
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.803
-randu2_randn2       0.446
-randu2_randn2       0.647
-randu2_randn2       0.836
-randu2_randn2      -0.392
-randu2_randn2       1.482
+randu2_randn2      -1.513
+randu2_randn2      -1.701
+randu2_randn2       1.080
+randu2_randn2       0.144
+randu2_randn2      -0.043
+randu2_randn2       0.280
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -65189,15 +64397,15 @@ 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.110       1.411       0.973
-randu2_randn2       1.411       1.110       0.973
-randu2_randn2       0.973       0.973       0.252
-randu2_randn2      -0.331      -0.331       0.824
-randu2_randn2      -0.644      -0.384       0.697
-randu2_randn2      -0.384      -0.384       0.697
-randu2_randn2       0.252       0.252       0.697
-randu2_randn2       0.824       0.697       0.697
-*** Running test: bn_axis_cf.jnl
+randu2_randn2       1.930       1.930       0.351
+randu2_randn2       1.014       1.014       0.351
+randu2_randn2       0.328       0.351       0.328
+randu2_randn2       0.351       0.328       0.328
+randu2_randn2      -0.183      -0.183       0.328
+randu2_randn2      -0.736      -0.376       0.328
+randu2_randn2      -0.376      -0.376       0.328
+randu2_randn2       0.201       0.201       0.351
+*** Running ferret script: bn_axis_cf.jnl
 ! Ticket 1792: Write axes with CF-compliant units
 ! and with standard name attributes for geophysical attrs.
  
@@ -65263,7 +64471,7 @@ sp echo "bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since" >> all_nc
 sp ncdump -h a.nc >> all_ncdump.out
  
  
-*** Running test: bn_repeated_coords.jnl
+*** Running ferret script: bn_repeated_coords.jnl
 ! Test the use of micro-adjusting on NetCDF read
 ! when coordinates are repeated.
 ! See ticket 1910
@@ -65273,11 +64481,11 @@ sp ncdump -h a.nc >> all_ncdump.out
 use repeat_t_coord.nc
 show grid a
     GRID GKT1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10
+ TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10   full
  normal    E
  normal    F
 show axis tmin
@@ -65306,11 +64514,11 @@ can dat/all
 use/strict repeat_t_coord.nc
 show grid a
     GRID GKT1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TMIN      T                   71 r   1                    71
+ TMIN      T                   71 r   1                    71                  full
  normal    E
  normal    F
 show axis tmin
@@ -65335,7 +64543,7 @@ list aa[L=1:71:10]
  01-JAN-2001 01:00:00 / 7:  0.8949
  01-JAN-2001 01:10:00 / 8:  0.6997
  
-*** Running test: bn_xml_header.jnl
+*** Running ferret script: bn_xml_header.jnl
 ! bn_xml_header.jnl
 ! run the exact script that LAS uses to make XML header files
  
@@ -65556,7 +64764,7 @@ sp grep -A5 dimension xml_out_string.xml
 </dimension>
 </dimensions>
 </data>
-*** Running test: bn_eof_simple.jnl
+*** Running ferret script: bn_eof_simple.jnl
 ! bn_eof_simple
 ! Define a simple function with two known functions.
 ! decompose with EOFs.
@@ -65583,11 +64791,11 @@ let sinT = sin(T * 3.141592653589793 / 6.0)
 let spacetime = if (i eq 1) then cosT else sinT + 1
 show grid spacetime
     GRID XYTGRID
- name       axis              # pts   start                end
- XAXIS     X                    2 r   1                    2
- YAXIS     Y                    1 r   1                    1
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   full
+ YAXIS     Y                    1 r   1                    1                   full
  normal    Z
- TAXIS     T                  240 r   0                    59.75
+ TAXIS     T                  240 r   0                    59.75               full
  normal    E
  normal    F
  
@@ -66178,7 +65386,7 @@ can axis xaxis
  
  
 exit/script
-*** Running test: bn_eof_simple2.jnl
+*** Running ferret script: bn_eof_simple2.jnl
 ! bn_eof_simple2
 ! Define a simple function with four known functions, two of which are degenerate.
 ! decompose with EOFs.
@@ -66205,11 +65413,11 @@ let spacetime123 = if (i eq 2) and (j eq 1) then cost * sint + 2 else spacetime1
 let spacetime = if (i eq 2) and (j eq 2) then sint * sint + 3 else spacetime123
 show grid spacetime
     GRID XYTGRID
- name       axis              # pts   start                end
- XAXIS     X                    2 r   1                    2
- YAXIS     Y                    2 r   1                    2
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   full
+ YAXIS     Y                    2 r   1                    2                   full
  normal    Z
- TAXIS     T                  240 r   0                    23.9
+ TAXIS     T                  240 r   0                    23.9                full
  normal    E
  normal    F
  
@@ -66538,13 +65746,15 @@ can axis yaxis
 can axis xaxis
  
 exit/script
-*** Running test: bn_interpolate_6d.jnl
+*** Running ferret script: bn_interpolate_6d.jnl
 ! bn_interpolate_6d.JNL
 ! benchmark interpolation along various axes
 ! including the E and F axis
+! note with fix to ticket 2399 mode calendar applies to F axis
  
 SET LIST/PRECISION=6
 SET MODE LATITUDE:4
+set mode calendar:years
  
 LET v = x + 10*y + 100*_e + 1000*_f
 SET REGION/X=1:3/Y=1:3/E=1:3/F=1:3
@@ -66934,12 +66144,16 @@ LIST v[@xpt, at ypt, at ept, at fpt]
              E        : 1 (interpolated)
              F        : 1 (interpolated)
           1113.00
-*** Running test: bn_regrid_6d.jnl
+ 
+set mode/last calendar
+*** Running ferret script: bn_regrid_6d.jnl
 ! bn_regrid_6d.jnl
 ! version of bn_regrid, using E and F directions.
+! note with fix to ticket 2399 mode calendar applies to F axis
  
 set mode latit_label -4
 set mode long_label -4
+set mode calendar:years
  
 define axis/x=2:20:2 xeven
 define axis/x=1:19:2 xodd
@@ -68309,7 +67523,13 @@ list a24[g=g48]-a48
  05-JAN-1980 00 / 3: -438312.
  07-JAN-1980 00 / 4: -438312.
  
-*** Running test: bn_syntax_6d.jnl
+ 
+ 
+set mode/last latit_label
+set mode/last long_label
+set mode/last calendar
+ 
+*** Running ferret script: bn_syntax_6d.jnl
 ! bn_syntax_6d.JNL
 ! - test syntax interpretation of Program FERRET 6D
  
@@ -68337,35 +67557,35 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GNJ2
     GRID GNJ2
- name       axis              # pts   start                end
- PSXT70_71 LONGITUDE            2mr   160.5W               159.5W
- PSYT15_75 LATITUDE            61 i   10.169S              9.833N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
- EAXIS     E                    5 r   1                    5
- FAXIS     F                    4 r   1                    7
+ name       axis              # pts   start                end                 subset
+ PSXT70_71 LONGITUDE            2mr   160.5W               159.5W              full
+ PSYT15_75 LATITUDE            61 i   10.169S              9.833N              full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      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
 SET GRID ABSTRACT
 SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GNJ2
     GRID GNJ2
- name       axis              # pts   start                end
- PSXT70_71 LONGITUDE            2mr   160.5W               159.5W
- PSYT15_75 LATITUDE            61 i   10.169S              9.833N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
- EAXIS     E                    5 r   1                    5
- FAXIS     F                    4 r   1                    7
+ name       axis              # pts   start                end                 subset
+ PSXT70_71 LONGITUDE            2mr   160.5W               159.5W              full
+ PSYT15_75 LATITUDE            61 i   10.169S              9.833N              full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      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
     GRID GNJ2
- name       axis              # pts   start                end
- PSXT70_71 LONGITUDE            2mr   160.5W               159.5W
- PSYT15_75 LATITUDE            61 i   10.169S              9.833N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
- EAXIS     E                    5 r   1                    5
- FAXIS     F                    4 r   1                    7
+ name       axis              # pts   start                end                 subset
+ PSXT70_71 LONGITUDE            2mr   160.5W               159.5W              full
+ PSYT15_75 LATITUDE            61 i   10.169S              9.833N              full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      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
  
        I     X                   XBOX      XBOXLO
        0>  20E                   358        159W(-159)
@@ -68427,7 +67647,7 @@ cancel variables/all;\
 !-> REPEAT: M=3
      currently SET data sets:
           3.000
-*** Running test: bn_expressions_6d.jnl
+*** Running ferret script: bn_expressions_6d.jnl
 ! bn_expressions_6d.jnl
 ! testing expressions syntax in E and F directions.
 ! Note pseudo-variables are _E,
@@ -68907,7 +68127,7 @@ LIST/n=5:7 FBOXLO, FBOXHI
 5   / 5:  4.500  5.500
 6   / 6:  5.500  6.500
 7   / 7:  6.500  7.500
-*** Running test: bn_direction_fcns_6d.jnl
+*** Running ferret script: bn_direction_fcns_6d.jnl
 ! bn_direction_functions_6d
 ! Tests of sort, sample, reverse, convolve, compress, and compess_by
 ! functions in the E and F directions.
@@ -69124,13 +68344,15 @@ list compressn_by(fsequence({10,20,30,40,50}),mask)
  3   / 3:  50.00  50.00
  4   / 4:   ....   ....
  5   / 5:   ....   ....
-*** Running test: bn_regrid_transforms_6d.jnl
+*** Running ferret script: bn_regrid_transforms_6d.jnl
 ! bn_regrid_transforms_6d.jnl
 ! benchmark to test regridding transformations and syntax
 ! version of bn_regrid_transforms, using E and F directions.
+! note with fix to ticket 2399 mode calendar applies to F axis
  
 use gtsa056_1_ef
 set mode diag
+set mode calendar:years
  
 define axis/f=23-jan-1982:30-jan-1982:20/unit=hour fax20
 define axis/x=120e:60w:10/unit=degrees xax10
@@ -69157,7 +68379,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
              LONGITUDE: 130W to 125W
              LATITUDE: 0 to 1.5N
              DEPTH (m): 5
-             TIME: 21-JAN-1982 16:00
+             TIME: 1982
              E: 1 to 2
              FORECAST: 1982 to 1982
              DATA SET: ./gtsa056_1_ef.nc
@@ -69185,7 +68407,7 @@ LIST temp[g=g5day at ave]
              FILENAME : gtsa056_1_ef.nc
              SUBSET   : 5 by 6 by 2 by 2 points (LONGITUDE-LATITUDE-E-FORECAST)
              DEPTH (m): 5
-             TIME     : 21-JAN-1982 16:00
+             TIME     : 1982
               129.5W 128.5W 127.5W 126.5W 125.5W 
               101    102    103    104    105
  ---- N:1 F:   1982
@@ -69231,7 +68453,7 @@ LIST temp[g=g5day]
              FILENAME : gtsa056_1_ef.nc
              SUBSET   : 5 by 6 by 2 by 2 points (LONGITUDE-LATITUDE-E-FORECAST)
              DEPTH (m): 5
-             TIME     : 21-JAN-1982 16:00
+             TIME     : 1982
               129.5W 128.5W 127.5W 126.5W 125.5W 
               101    102    103    104    105
  ---- N:1 F:   1982
@@ -69289,21 +68511,21 @@ plot temp
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
+ strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
  eval    EX#1     C:  8 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  reading TEMP     M:  3 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 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 1    complete
 plot/over temp[g=g5day]
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
@@ -69312,7 +68534,7 @@ plot/over temp[g=g5day]
  regrid  TEMP     M:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 2    complete
 plot/over temp[g=g5day at ave]
@@ -69322,7 +68544,7 @@ plot/over temp[g=g5day at ave]
  -DELETE TEMP     M:  9 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  -DELETE TEMP     M: 10 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
@@ -69331,7 +68553,7 @@ plot/over temp[g=g5day at ave]
  regrid  TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 3    complete
 plot/over temp[g=g5day at asn]
@@ -69341,7 +68563,7 @@ plot/over temp[g=g5day at asn]
  -DELETE TEMP     M:  9 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  -DELETE TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
@@ -69350,7 +68572,7 @@ plot/over temp[g=g5day at asn]
  regrid  TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 4    complete
  
@@ -69365,26 +68587,26 @@ plot temp
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
+ strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
  eval    EX#1     C:  7 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  reading TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 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 5    complete
 plot/over temp[g=g5day]
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @LIN
  found   TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  regrid  TEMP     M: 11 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 6    complete
 plot/over temp[g=g5day at ave]
@@ -69393,14 +68615,14 @@ plot/over temp[g=g5day at ave]
  -DELETE TEMP     M: 12 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  -DELETE TEMP     M: 13 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @AVE
  found   TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  regrid  TEMP     M: 13 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 7    complete
 plot/over temp[g=g5day at asn]
@@ -69409,14 +68631,14 @@ plot/over temp[g=g5day at asn]
  -DELETE TEMP     M: 12 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  -DELETE TEMP     M: 13 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @ASN
  found   TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  regrid  TEMP     M: 13 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 8    complete
  
@@ -69846,13 +69068,13 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G005)
     GRID (G005)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
  normal    E
- EDAY      FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ EDAY      FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
 list afcst[gf=ehour at max]
  -DELETE _F       M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
  dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
@@ -69878,29 +69100,35 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
  normal    E
- EHOUR     FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ EHOUR     FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
  
 set mode/last diag
-*** Running test: bn_aggregate_e.jnl
+set mode/last calendar
+*** Running ferret script: bn_aggregate_e.jnl
 ! bn_aggregate_e.jnl
 ! using the DEFINE DATA/AGGREGATE/E command
 ! Datasets share sst, but only ens1 has airt.
  
+! v6.95+ 11/15 *sh* -- /T is now the default orientation
+! v6.98 12/15 *sh -- modified so that the sequence number of each
+!   dataset in the aggregation is not also its Ferret dataset number
+!   Allowing them to be the same was hiding bugs
+ 
 set mode diag
  
 use ens1, ens2, ens3, ens4
-define data/agg/title fourfiles = ens1, ens3, ens2, ens4
+define data/agg/E fourfiles = ens1, ens3, ens2, ens4
  
 ! The grid of SST is known.
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
+    5> fourfiles  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  
@@ -69914,16 +69142,21 @@ list/i=3 sst[T=@ave]
  strip aggregate gathering SST on E axis:     1     4 dset:   5
  reading SST      M:  1 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     1     1 dset:   1
- reading SST      M:  3 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  1 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:  1 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     2     2 dset:   3
- reading SST      M:  4 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  1 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:  1 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     3     3 dset:   2
- reading SST      M:  5 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  1 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:  1 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     4     4 dset:   4
+ -DELETE SST      M:  1 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
              VARIABLE : SST_IN (Deg C)
-             FILENAME : FOURFILES
-             SUBSET   : 9 by 4 points (LATITUDE-E)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
              LONGITUDE: 105W
              TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
             13N    15N    17N    19N    21N    23N    25N    27N    29N   
@@ -69932,60 +69165,111 @@ list/i=3 sst[T=@ave]
  2   / 2:   85.5   85.3   83.7   82.4   80.2   76.7   ....   ....   ....
  3   / 3:   57.0   56.9   55.8   54.9   53.5   51.1   ....   ....   ....
  4   / 4:  114.1  113.8  111.6  109.8  106.9  102.2   ....   ....   ....
+ 
+show memory/all  ! show memory-resident variables before canceling dataset
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+all data in memory:
+ SST[D=fourfiles]                  YE    mr:1  blk1:1  nblk:1
+    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+                                                              AVE
+ SST[D=fourfiles]                  YTE   mr:2  blk1:2  nblk:1
+    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ 
 cancel data fourfiles
- -DELETE SST      M:  2 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
- -DELETE SST      M:  6 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L: -999 -999  M:    1    4  N: -999 -999
  dealloc  dynamic grid (G006)          COADSX116_COADSY52_6NORMAL    TIME      ENSEMBLE  NORMAL
+ canceling dset fourfiles
+ -DELETE SST      M:  1 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L: -999 -999  M:    1    4  N: -999 -999
+ -DELETE SST      M:  2 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
+show memory/all  ! show memory-resident variables after  canceling dataset
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+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
+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
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+    6> fourfiles  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ 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 fourfiles
+show data/brief/all/hidden
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
  
 ! Create airt in the other datasets by LET/D definitions.
+use ens1, ens2, ens3, ens4
 let/d=ens2 airt = sst + 1
 let/d=ens3 airt = sst + 1
 let/d=ens4 airt = sst + 1
  
-define data/agg fourfiles = ens1, ens3, ens2, ens4
- 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    TIME      NORMAL    NORMAL
- getgrid AIRT     C:  5 dset:   2 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    TIME      NORMAL    NORMAL
+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    TIME      NORMAL    NORMAL
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   3 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   5 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
+    6> fourfiles  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
  
  
 list/i=3 airt[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 (G007)          COADSX116_COADSY52_6NORMAL    TIME      ENSEMBLE  NORMAL
+ getgrid EX#1     C:  5 dset:   6 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (G003)          COADSX116_COADSY52_6NORMAL    TIME1     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 --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
- strip aggregate gathering AIRT on E axis:     1     4 dset:   5
- reading AIRT     M:  6 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     1     1 dset:   1
- eval    AIRT     C:  9 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  7 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     2     2 dset:   3
- eval    AIRT     C:  9 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  8 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     3     3 dset:   2
+ eval    EX#1     C:  5 dset:   6 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
+ strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
+ strip aggregate gathering AIRT on E axis:     1     4 dset:   6
+ reading AIRT     M:  2 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     1     1 dset:   2
+ -DELETE AIRT     M:  2 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M: 10 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     4     4 dset:   4
- doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
+ reading SST      M:  2 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     2     2 dset:   4
+ -DELETE AIRT     M:  4 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:  4 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     3     3 dset:   3
+ -DELETE AIRT     M:  5 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:  5 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     4     4 dset:   5
+ -DELETE AIRT     M:  6 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
              VARIABLE : AIR TEMPERATURE (DEG C)
-             DATA SET : Ensemble
-             FILENAME : FOURFILES
-             SUBSET   : 9 by 4 points (LATITUDE-E)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
              LONGITUDE: 105W
              TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
             13N    15N    17N    19N    21N    23N    25N    27N    29N   
@@ -69995,6 +69279,63 @@ list/i=3 airt[T=@ave]
  3   / 3:   58.0   57.9   56.8   55.9   54.5   52.1   ....   ....   ....
  4   / 4:  115.1  114.8  112.6  110.8  107.9  103.2   ....   ....   ....
  
+! create an ensemble where one member is missing
+ENSEMBLE fourfiles_gap = ens1, -, ens3, ens4
+ getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   5 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
+show data/files fourfiles_gap
+     currently SET data sets:
+    7> fourfiles_gap  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
+ AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
+ 
+          Aggregated datasets:
+      1: ./ens1.nc
+      2: (dummy)
+      3: ./ens3.nc
+      4: ./ens4.nc
+list/i=3 airt[T=@ave]
+ getgrid EX#1     C:  5 dset:   7 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (G003)          COADSX116_COADSY52_6NORMAL    TIME1     ENSEMBLE  NORMAL
+ 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:  3 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     1     1 dset:   2
+ -DELETE AIRT     M:  3 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ dummy AIRT     M:  3 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     2     2 dset: 401
+ -DELETE AIRT     M:  3 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ found   SST      M:  2 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     3     3 dset:   4
+ -DELETE AIRT     M:  8 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ found   SST      M:  5 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     4     4 dset:   5
+ -DELETE AIRT     M:  3 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
+             VARIABLE : AIR TEMPERATURE (DEG C)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles_gap
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
+             LONGITUDE: 105W
+             TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
+            13N    15N    17N    19N    21N    23N    25N    27N    29N   
+             1      2      3      4      5      6      7      8      9
+ 1   / 1:   27.7   27.6   27.1   26.7   25.8   25.2   ....   ....   ....
+ 2   / 2:   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 3   / 3:   86.5   86.3   84.7   83.4   81.2   77.7   ....   ....   ....
+ 4   / 4:  115.1  114.8  112.6  110.8  107.9  103.2   ....   ....   ....
+ 
 cancel mode diag
 cancel data/all
 cancel var/all
@@ -70011,10 +69352,10 @@ use navy_uw
 set mode ignore
  
 ! Use dataset thats not open.
-define data/agg windy = 1,2,3
+ensemble windy = 1,2,3
  
 ! No variables on comparable grids.
-define data/agg windy = 1,2
+ensemble windy = 1,2
  
 set mode/last ignore
  
@@ -70052,12 +69393,12 @@ show data
  
  
 ! Define the ensemble dataset
-define data/agg windy = 1,2
+ensemble windy = 1,2
  
 ! The grid of the aggregate variables with LET/D is known.
 show data windy
      currently SET data sets:
-    3> WINDY  (default)  Ferret-defined Ensemble aggregation
+    3> windy  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
  UWND     ZONAL WIND                       1:30      1:30      ...       1:12      1:2       ...
  VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      1:2       ...
@@ -70070,10 +69411,10 @@ 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
              TIME: 17-MAR 02:58
  Column  1: UWND[D=coads_uw] is ZONAL WIND (M/S)
  Column  2: UWND[D=navy_uw] is ZONAL WIND (M/S)
- Column  3: UWND[D=WINDY,E=1] is ZONAL WIND (M/S)
- Column  4: VWND[D=WINDY,E=2] is MERIDIONAL WIND (M/S)
- Column  5: UWND[D=WINDY,E=0.5:2.5 at AVE] is ZONAL WIND (M/S)
-               UWND    UWND   UWND    VWND    UWND
+ Column  3: UWND[D=windy,E=1 (coads_uw)] is ZONAL WIND (M/S)
+ Column  4: UWND[D=windy,E=2 (navy_uw)] is ZONAL WIND (M/S)
+ Column  5: UWND[D=windy,E=1:2 at AVE] is ZONAL WIND (M/S)
+               UWND    UWND   UWND    UWND    UWND
 59W    / -30:  1.643  0.2317  1.643  0.2317  0.9371
 57W    / -29:  1.404  0.1102  1.404  0.1102  0.7573
 55W    / -28:  1.353 -0.0184  1.353 -0.0184  0.6674
@@ -70081,19 +69422,27 @@ 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
 51W    / -26:  1.086 -0.3088  1.086 -0.3088  0.3887
  
 ! 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
+    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
  
 ! Define the ensemble dataset
-define data/agg windy = 2,1
+ensemble windy = 2,1
  
 ! The grid of the aggregate variables with LET/D is known.
 show data windy
      currently SET data sets:
-    3> WINDY  (default)  Ferret-defined Ensemble aggregation
+    3> windy  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      1:2       ...
  VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      1:2       ...
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12      1:2       ...
  
  
 ! Use variable from the new dataset
@@ -70103,18 +69452,18 @@ 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
              TIME: 17-MAR 02:58
  Column  1: UWND[D=coads_uw] is ZONAL WIND (M/S)
  Column  2: UWND[D=navy_uw] is ZONAL WIND (M/S)
- Column  3: VWND[D=WINDY,E=1] is MERIDIONAL WIND (M/S)
- Column  4: UWND[D=WINDY,E=2] is ZONAL WIND (M/S)
- Column  5: VWND[D=WINDY,E=0.5:2.5 at AVE] is MERIDIONAL WIND (M/S)
-               UWND    UWND    VWND   UWND    VWND
+ Column  3: UWND[D=windy,E=1 (navy_uw)] is ZONAL WIND (M/S)
+ Column  4: UWND[D=windy,E=2 (coads_uw)] is ZONAL WIND (M/S)
+ Column  5: UWND[D=windy,E=1:2 at AVE] is ZONAL WIND (M/S)
+               UWND    UWND    UWND   UWND    UWND
 59W    / -30:  1.643  0.2317  0.2317  1.643  0.9371
 57W    / -29:  1.404  0.1102  0.1102  1.404  0.7573
 55W    / -28:  1.353 -0.0184 -0.0184  1.353  0.6674
 53W    / -27:  1.210 -0.1624 -0.1624  1.210  0.5237
 51W    / -26:  1.086 -0.3088 -0.3088  1.086  0.3887
  
-can data/all
-can var/all
+cancel data/all
+cancel variable/all
  
 ! DEFINE DATA/HIDE
 ! SHOW DATA/HIDDEN
@@ -70124,22 +69473,22 @@ can var/all
 ! member datasets and show only the ensemble.
 ! show dat/hidden forces showing all
  
-sh command define
+show command define
  DEFINE
  DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
          /DL/DM/DN
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
- DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
-sh command show
+show command show
  SHOW/ALL
  SHOW WINDOW/ALL
  SHOW REGION/ALL
@@ -70150,9 +69499,8 @@ sh command show
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
-       /CURVILIN
- SHOW COMMANDS/ALL
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+ SHOW COMMANDS/ALL/BRIEF
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
@@ -70165,149 +69513,76 @@ sh command show
  SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
  SHOW QUERIES/ALL
  
+use coads_climatology ! to offset indices so they arent equal to Ferret dset #s
+ 
 use ens1, ens2, ens3, ens4
 ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
  
-! should just show the ensemble set
-sh dat
+! should just show the ensemble set.  Members are hidden.
+show data/brief
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
+    1> ./coads_climatology.cdf
+    6> fourfiles  (default)  Ensemble aggregation
  
 ! If ask for a member set by name or number, do show it
-sh dat 2
+show data/brief 2
      currently SET data sets:
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-sh dat ens3
+    2> ./ens1.nc
+show data/brief ens3
      currently SET data sets:
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    4> ./ens3.nc
  
 ! should show all members plus ensemble
-sh dat/hidden
+show data/brief/hidden
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
+    1> ./coads_climatology.cdf
+    2> ./ens1.nc
+    3> ./ens2.nc
+    4> ./ens3.nc
+    5> ./ens4.nc
+    6> fourfiles  (default)  Ensemble aggregation
  
-! Should show original member datasets
-can dat fourfiles
-sh dat
+! Since the members were hidden, they get deleted with the aggregation
+cancel data fourfiles
+show data/brief
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-can dat/all
+    1> ./coads_climatology.cdf  (default)
+cancel data/all
  
 ! Cancel a member, then the ensemble gets canceled.
-! The hidden members should show up.
- 
+! The hidden members get canceled along with the parent (1/16)
+use coads_climatology ! to offset indices so they arent equal to Ferret dset #s
 use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2
-sh dat
+ensemble/HIDE/title="uvars in dset 2"  my_ens = 2,3
+show data/brief
      currently SET data sets:
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    5> MY_ENS  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:2       ...
- 
-can dat  2
-sh dat
+    1> ./coads_climatology.cdf
+    4> ./ens3.nc
+    5> ./ens4.nc
+    6> my_ens  (default)  Ensemble aggregation
+cancel data  ens2
+show data/brief
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    1> ./coads_climatology.cdf
+    4> ./ens3.nc
+    5> ./ens4.nc
  
-! Cancel the ensemble, then hidden members get un-hidden.
+! Cancel the ensemble, then hidden members get canceled too
  
 use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2,3,4
+ensemble/HIDE/title="uvars in dset 2"  my_ens = 2,3,4,5
  
 ! members hidden, showing only ensemble.
-sh dat
+show data/brief
      currently SET data sets:
-    5> MY_ENS  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
-can dat my_ens
+    1> ./coads_climatology.cdf
+    6> my_ens  (default)  Ensemble aggregation
+cancel data my_ens
  
-! Cancel ensemble dataset: members un-hidden
-sh dat
+! Cancel ensemble dataset: hidden members deleted
+show data/brief
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    1> ./coads_climatology.cdf  (default)
  
 ! Define several ensembles with /HIDE
 ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
@@ -70315,41 +69590,32 @@ ensemble/HIDE/title="ensemble with hidden members" some = ens1, ens2
 ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
  
 ! Shows all the ensembles
-sh dat
+show data/brief/files
      currently SET data sets:
-    5> FOURFILES     Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
-    6> SOME     Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:2       ...
- 
-    7> MORE  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:3       ...
- 
- 
-! Cancel a member of all the ensembles.
-! Cancels dataset 2 and also the ensemble sets.
-can dat 2
-sh dat
+    1> ./coads_climatology.cdf
+    6> fourfiles     Ensemble aggregation
+          Aggregated datasets:
+      1: ./ens1.nc
+      2: ./ens2.nc
+      3: ./ens3.nc
+      4: ./ens4.nc
+    7> some     Ensemble aggregation
+          Aggregated datasets:
+      1: ./ens1.nc
+      2: ./ens2.nc
+    8> more  (default)  Ensemble aggregation
+          Aggregated datasets:
+      1: ./ens2.nc
+      2: ./ens3.nc
+      3: ./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> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    1> ./coads_climatology.cdf  (default)
  
-*** Running test: bn_6d_lab_mode.jnl
+*** Running ferret script: bn_6d_lab_mode.jnl
 ! bn_6d_lab_mode.jnl
 !
 ! Tests of CANCEL MODE 6d_lab, writes SHOW and STAT output in classic 4D form.
@@ -70392,21 +69658,21 @@ show data
 set mode 6d_lab
 show grid temp
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
 cancel mode 6d_lab
 show grid temp
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  
 ! Mode affects output of STAT
  
@@ -70498,7 +69764,7 @@ can mode diag
  
 ! restore default setting
 set mode 6d_lab
-*** Running test: bn682_bug_fixes.jnl
+*** Running ferret script: bn682_bug_fixes.jnl
 ! bn682_bug_fixes.jnl
 ! test various fixes that went into version 6.82
 ! 8/2012 ACM
@@ -70539,15 +69805,15 @@ sh dat
  
 sho grid lon_c
     GRID GOS2
- name       axis              # pts   start                end
- ETA       X                    4 r   1                    4
- TAU1      Y                    7 r   1                    7
+ name       axis              # pts   start                end                 subset
+ ETA       X                    4 r   1                    4                   full
+ TAU1      Y                    7 r   1                    7                   full
  normal    Z
  normal    T
  normal    E
  normal    F
  
-*** Running test: bn683_bug_fixes.jnl
+*** Running ferret script: bn683_bug_fixes.jnl
 ! bn683_bug_fixes.jnl
 ! test various fixes that went into version 6.83
 ! 8/2012 ACM
@@ -70832,7 +70098,7 @@ list temp  ! values should match those above.
  02-JAN-1994 12 / 2:  28.63
  
 set mode/last upcase_output
-*** Running test: bn_outtype.jnl
+*** Running ferret script: bn_outtype.jnl
 ! bn_outtype
 ! Tests of output-type control:
 !  SET VAR/OUTTYPE
@@ -70865,7 +70131,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70873,20 +70139,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -70920,7 +70189,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70928,27 +70197,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
   
  SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -70964,7 +70237,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70972,27 +70245,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
   
  SST2                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -71008,7 +70285,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71016,20 +70293,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST3                  INT       missing_value   INT         1    T       -999
                                  _FillValue      INT         1    T       -999
@@ -71045,7 +70325,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71053,20 +70333,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST3                  SHORT     missing_value   SHORT       1    T       -999
                                  _FillValue      SHORT       1    T       -999
@@ -71083,7 +70366,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71091,20 +70374,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST4                  BYTE      missing_value   BYTE        1    T       -99
                                  _FillValue      BYTE        1    T       -99
@@ -71150,7 +70436,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71158,27 +70444,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
   
  SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -71199,7 +70489,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71207,20 +70497,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST3                  INT       missing_value   INT         1    T       -999
                                  _FillValue      INT         1    T       -999
@@ -71260,7 +70553,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71268,20 +70561,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -71301,7 +70597,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71309,20 +70605,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST2                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -71342,7 +70641,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71350,20 +70649,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST4                  INT       missing_value   INT         1    T       -99
                                  _FillValue      INT         1    T       -99
@@ -71383,7 +70685,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71391,20 +70693,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST4                  BYTE      missing_value   BYTE        1    T       -99
                                  _FillValue      BYTE        1    T       -99
@@ -71421,7 +70726,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71429,20 +70734,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST4                  INT       missing_value   INT         1    T       -99
                                  _FillValue      INT         1    T       -99
@@ -71457,7 +70765,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  
 ! Go back to default setting.
 can list/outtype
-*** Running test: bn_ribbon_plot.jnl
+*** Running ferret script: bn_ribbon_plot.jnl
 ! bn_ribbon_plot.jnl
 ! Test color-line-by variable style of plots
  
@@ -71600,7 +70908,7 @@ shade/NOLAB/L=1/x=-50:100/y=-60:50/pal=grayscale mask
 RIBBON/vs/over/nolab/thick=3/sym=20/key/set xpts, ypts, var
 ppl shakey,1,0
 ppl ribbon/over
-*** Running test: bn_descr_4digit.jnl
+*** Running ferret script: bn_descr_4digit.jnl
  ! bn_descr_4digit.jnl
  ! See ticket 1969: step files have 3- or 4-digit extensions
  ! coads_clim.999, coads_clim.1000, coads_clim.1001
@@ -71627,7 +70935,7 @@ list/x=180/y=0 sst
  17-APR-1900 / 4:  28.22
  17-MAY-1900 / 5:  28.49
  17-JUN-1900 / 6:  28.32
-*** Running test: bn_axis_outtype.jnl
+*** Running ferret script: bn_axis_outtype.jnl
 ! bn_axis_outtype.jnl
 !  SET AXIS/OUTTYPE
 ! 23-Oct-2012
@@ -71649,7 +70957,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -71657,20 +70965,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  modulo          FLOAT       1    T       360
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME1)                FLOAT     units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          FLOAT       1    T       8765.82
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -71687,7 +70998,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -71695,27 +71006,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  modulo          FLOAT       1    T       360
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME1)                FLOAT     units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          FLOAT       1    T       8765.82
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
   
  
 ! Restore the axis type from the file
@@ -71734,7 +71049,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71742,27 +71057,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  modulo          DOUBLE      1    T       360
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          DOUBLE      1    T       8765.82
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
   
  
 ! User-defined axes are output as double by default.
@@ -71778,7 +71097,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71786,7 +71105,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  calendar        CHAR        9    T       GREGORIAN
                                  time_origin     CHAR        11   T       15-JAN-1901
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
+                                 orig_file_axname
+                                                 CHAR        7    F       MYHOURS
   
  TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -71803,7 +71123,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71811,7 +71131,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  calendar        CHAR        9    T       GREGORIAN
                                  time_origin     CHAR        11   T       15-JAN-1901
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
+                                 orig_file_axname
+                                                 CHAR        7    F       MYHOURS
   
  TT                    INT       missing_value   INT         1    T       -9999
                                  _FillValue      INT         1    T       -9999
@@ -71828,7 +71149,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71836,7 +71157,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  calendar        CHAR        9    T       GREGORIAN
                                  time_origin     CHAR        11   T       15-JAN-1901
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
+                                 orig_file_axname
+                                                 CHAR        7    F       MYHOURS
   
  TT                    DOUBLE    missing_value   DOUBLE      1    T       -9999
                                  _FillValue      DOUBLE      1    T       -9999
@@ -71867,7 +71189,7 @@ save/clobber/file=mytype.nc my_data
  
 cancel mode ignore
  
-*** Running test: bn_axis_nonmonotonic.jnl
+*** Running ferret script: bn_axis_nonmonotonic.jnl
 ! bn_axis_nonmonotonic.jnl
 ! bn_define_axis doesnt test the case where the varible is not monotonic
 ! ACM 11/2012  With Ferret v6.83+ the message tells us the index value
@@ -71879,7 +71201,7 @@ let tvar = {85, 86, 86, 87, 88, 89, 90, 91, 92, 92, 92, 91, 92, 94, 95, 98}
 define axis/t/units=days tax = tvar
  
 cancel mode ignore
-*** Running test: bn_vec_mod.jnl
+*** Running ferret script: bn_vec_mod.jnl
 ! bn_vec_mod.jnl
 ! /MODULO qualifier for the vector command.
 ! 12/12/2012 ACM
@@ -71900,7 +71222,7 @@ set view lr
 vec/MOD/HLIM=-180:180 u,fakev,geolon_c,geolat_c
  
 can view
-*** Running test: bn685_bug_fixes.jnl
+*** Running ferret script: bn685_bug_fixes.jnl
 ! bn685_bug_fixes.jnl
 ! test various fixes that went into version 6.85
 ! 1/2013 ACM
@@ -72257,7 +71579,7 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72286,7 +71608,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72337,7 +71659,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72438,7 +71760,7 @@ sh dat/var/xml
    <value><![CDATA[Number of O2 Utilization Observations]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
-   <value>     -2147483647</value>
+   <value> -2147483647.</value>
 </attribute>
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
@@ -72763,7 +72085,7 @@ define axis/y=54:66:0.5/units=degrees_north lat_ax
  
 define grid/x=lon_ax/y=lat_ax/z=zax three_d_grd
  
-*** Running test: bn_dsg_e_x.jnl
+*** Running ferret script: bn_dsg_e_x.jnl
 ! bn_dsg_e.jnl
 !
 !  Discrete Sampling Geometries files
@@ -72796,17 +72118,17 @@ sh att profile
  profile.history = From FINAL_verification_data_all_PacOOS_NHL_OCNMS_CCCC_03072013.txt 
 sh grid rowsize
     GRID GEN1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
- PROF      E                    3 r   1                    3
+ PROF      E                    3 r   1                    3                   full
  normal    F
 sh grid sal
     GRID GEN2
- name       axis              # pts   start                end
- OBS       X                   34 r   1                    34
+ name       axis              # pts   start                end                 subset
+ OBS       X                   34 r   1                    34                  full
  normal    Y
  normal    Z
  normal    T
@@ -72844,23 +72166,23 @@ sh att (profile)
  (profile).orig_file_axname = profile 
 sh grid rowsize
     GRID GSS1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
- PROFILE   E                   21 r   70                   90
+ PROFILE   E                   21 r   70                   90                  full
  normal    F
 sh grid pco2
     GRID GSS2
- name       axis              # pts   start                end
- OBS1      X                  373 r   1                    373
+ name       axis              # pts   start                end                 subset
+ OBS1      X                  373 r   1                    373                 full
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
-*** Running test: bn_nco_append.jnl
+*** Running ferret script: bn_nco_append.jnl
 ! bn_nco_append.jnl
 ! 5/2013 add a test appending files with ncks
  
@@ -72909,12 +72231,12 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Fri Nov  6 15:55:01 2015: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V6.951   6-Nov-15" ;
+		:history = "Fri Jun 17 15:04:23 2016: ncks -h -A -h z1.nc append_to_this.nc\n",
+			"FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:NCO = "4.4.6" ;
 }
-*** Running test: bn_nobounds.jnl
+*** Running ferret script: bn_nobounds.jnl
 ! bn_nobounds.jnl
 ! The SAVE/NOBOUNDS qualifier causes bounds never to be written
 ! even if the data is irregular, and even if the axis came into
@@ -72941,7 +72263,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72972,7 +72294,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73004,7 +72326,8 @@ sh dat/att
                                  time_origin     CHAR        20   T       01-JAN-1990 00:00:00
                                  axis            CHAR        1    T       T
                                  bounds          CHAR        9    T       TGAP_bnds
-                                 orig_file_axnameCHAR        4    F       TGAP
+                                 orig_file_axname
+                                                 CHAR        4    F       TGAP
   
  TGAP_bnds             DOUBLE
   
@@ -73034,7 +72357,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -73062,11 +72385,11 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
-*** Running test: bn_write_integer_att.jnl
+*** Running ferret script: bn_write_integer_att.jnl
 ! bn_write_integer_att.jnl
 !  ACM 6/2013
 !
@@ -73097,7 +72420,7 @@ sp ncdump a.nc | grep numberOfObservations
 		MHCHLA:numberOfObservations = 15736939 ;
  
  
-*** Running test: bn_descriptor_mc.jnl
+*** Running ferret script: bn_descriptor_mc.jnl
 ! bn_descriptor_mc.jnl
 ! 7/2013 ACM
 ! See ticket 2087
@@ -73136,7 +72459,7 @@ list /x=300/y=10 sst
  16-APR-0000 / 2:  27.17
  16-MAY-0000 / 3:  27.22
  16-JUN-0000 / 4:  27.66
-*** Running test: bn_plot_color_only.jnl
+*** Running ferret script: bn_plot_color_only.jnl
 ! bn_plot_color_only.jnl
 ! 9/20/2013 ACM
 ! ticket 2094
@@ -73211,11 +72534,12 @@ plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
 set mode/last ignore
  
  
-*** Running test: bn_vtree.jnl
+*** Running ferret script: bn_vtree.jnl
 ! bn_tree.jnl
  
 ! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
 ! 12/14 update to test regridding output using bn_vtree_regrid.jnl
+! 11/15 - DEFINE DATA/AGG has become /T instead of /E
  
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -73510,16 +72834,16 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 ************************
  
 ! aggregate (ensemble) dataset of file variables
-define data/agg my_agg = my_file_vars, other_file_vars, another_file_vars
+ENSEMBLE my_agg = my_file_vars, other_file_vars, another_file_vars
 go bn_vtree.sub fv1
 /TREE=ALL
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
      FV1[d=my_file_vars]
      FV1[d=other_file_vars]
      FV1[d=another_file_vars]
 /TREE=USER
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
 /TREE=FILE
  
@@ -73532,10 +72856,10 @@ fv1 is ready and AVAILABLE
 ! aggregation in which some members are uvars
 let/d=other_file_vars   fvx = fv1 + x[gx=fvx[d=1],i=1:3]
 let/d=another_file_vars fvx = 2*fv1 + x[gx=fvx[d=1],i=1:3]
-define data/agg my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
+ENSEMBLE my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
 go bn_vtree.sub fvx
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=my_file_vars]
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
@@ -73543,7 +72867,7 @@ go bn_vtree.sub fvx
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
        FV1[d=another_file_vars]
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
@@ -73563,7 +72887,7 @@ let p2 = s3 + p3
 let p3 = p1 + S3
 go bn_vtree.sub p0    ! recursion
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -73574,7 +72898,7 @@ go bn_vtree.sub p0    ! recursion
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
            S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -73594,7 +72918,7 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
 let p3 = s1 + S3
 go bn_vtree.sub p0    ! ok
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -73605,7 +72929,7 @@ go bn_vtree.sub p0    ! ok
            S1 ??			<== UNKNOWN VARIABLE ******
            S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -73631,7 +72955,7 @@ show var/tree/d=my_file_vars    fv
    in default dataset my_file_vars
    FV = FV1 + FV1 + FV1
 show var/tree/d=my_uvar_agg     fv
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FV = FV1 + FV1 + FV1
      FV1   (aggregate variable)
 show var/tree/d=other_file_vars uv
@@ -73639,7 +72963,7 @@ show var/tree/d=other_file_vars uv
    UV = FVX + FVX + FVX
      FVX = FV1 + X[GX=FVX[D=1],I=1:3]
 show var/tree/d=my_uvar_agg     uv
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
        FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
@@ -73654,7 +72978,7 @@ let v2 = v1 + b + a + a        ! a appears after v1
 let v3 = a + v1 + b + a + a    ! a appears before v1
 go bn_vtree.sub v2
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -73665,7 +72989,7 @@ go bn_vtree.sub v2
      B =  (defined above)
      A =  (defined above)
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -73680,7 +73004,7 @@ v2 is ready and AVAILABLE
 ************************
 go bn_vtree.sub v3
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
        FV1[d=my_file_vars]
@@ -73691,7 +73015,7 @@ go bn_vtree.sub v3
          C = 1
      B =  (defined above)
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
      V1 = A  + B + B^2
@@ -73715,7 +73039,7 @@ let d = b + c
 let e = 1
 go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
        FV1[d=my_file_vars]
@@ -73726,7 +73050,7 @@ go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
    E = 1
    FVX[d=my_file_vars]
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
@@ -73750,12 +73074,12 @@ the problem is UNKNOWN VARIABLE: F
   let b = a[g=noexist]
   go bn_vtree.sub b
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
@@ -73769,11 +73093,11 @@ the problem is UNKNOWN GRID: NOEXIST
   let c = a[x=45s]
   go bn_vtree.sub c
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
@@ -73786,11 +73110,11 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
   let d = a[i=1,,j=2]
   go bn_vtree.sub d
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
@@ -73803,11 +73127,11 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
   let e = a[p=1]
   go bn_vtree.sub e
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
@@ -73820,11 +73144,11 @@ the problem is ERROR IN EXPRESSION: A[P=1]
   let f = a[i=10]
   go bn_vtree.sub f
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
 /TREE=FILE
@@ -73837,11 +73161,11 @@ f is ready and AVAILABLE
 ! dependency through attribute sharing (not yet implemented)
 let a = fvz.long_name[d=1]
 show var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = FVZ.LONG_NAME[D=1]
 let a = ..history[d=1]
 show var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = ..HISTORY[D=1]
  
 ! *****
@@ -73859,7 +73183,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR = 1
        regrid to GVAR = X[X=1:5]
@@ -73874,7 +73198,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
        regrid to GVAR = X[X=1:5]
@@ -73889,7 +73213,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR = 1
        regrid to GVAR ??		<== UNKNOWN GRID ******
@@ -73904,7 +73228,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
        regrid to GVAR ??		<== UNKNOWN GRID ******
@@ -74365,7 +73689,7 @@ vtree=all tempz4
        UNKNOWN_AUX   (unknown auxiliary variable)
  
  
-*** Running test: bn686_bug_fixes.jnl
+*** Running ferret script: bn686_bug_fixes.jnl
 ! bn686_bug_fixes
 ! test various fixes that went into version 6.86
 ! 11/2013 ACM
@@ -74507,22 +73831,22 @@ T0 = 1-JAN-2001
    Axis span (to cell edges) = 8
 show grid bb
     GRID GHC2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- UPPERCASETIME TIME             8 r   02-JAN-2001 00:00    09-JAN-2001 00:00
+ UPPERCASETIME TIME             8 r   02-JAN-2001 00:00    09-JAN-2001 00:00   full
  normal    E
  normal    F
  
 ! This variable has axis time, lowercase in the file
 sh grid aa
     GRID GHC1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TIME      T                   15 r   1                    15
+ TIME      T                   15 r   1                    15                  full
  normal    E
  normal    F
 set axis/t0=1-jan-2001/units=days time
@@ -74695,7 +74019,7 @@ LEV_MAX = "30"
 LEV_NUM = "4"
 LEV_DEL = "5"
  
-*** Running test: bn_long_symnames.jnl
+*** Running ferret script: bn_long_symnames.jnl
 ! bn_long_symnames.jnl
 ! *ACM* 11/22/2013
 ! Allow longer names for Ferret symbols
@@ -74732,7 +74056,7 @@ define symbol q23456789012345678901234567890q23456789012345678901234567890q23456
 show symbol q*
 Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890 = "5"
 Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567XXX = "6"
-*** Running test: bn_strdim.jnl
+*** Running ferret script: bn_strdim.jnl
 ! bn_strdim.jnl
 ! Keep the string dimension name and size from the intput file
 ! on writing the string variable.
@@ -74758,7 +74082,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74781,11 +74105,11 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
-*** Running test: bn_single_colorlev.jnl
+*** Running ferret script: bn_single_colorlev.jnl
 ! bn_single_colorlev.jnl
 ! Ticket 2123, mis-labeled color bars when
 ! single level is specified with a range of values
@@ -74802,7 +74126,7 @@ shade/lev=(25)/L=1 INT(sst)
 ! Label upper and lower end of the color bar with the range
 fill/lev=(20,30,10)/L=1 sst
  
-*** Running test: bn69_bug_fixes.jnl
+*** Running ferret script: bn69_bug_fixes.jnl
 ! bn69_bug_fixes
 ! test various fixes that went into version 6.9
 ! 02/2014 ACM
@@ -74925,7 +74249,7 @@ shade/n=3/L=6 bath_tf
 ! If so its label will show Julian too.
 sh sym lab($labnum_f)
  !-> sh sym lab2
-LAB2 = "FORECAST : 2000 JULIAN"
+LAB2 = "FORECAST : 03-JAN-2000 00:00 JULIAN"
  
 GO bn_reset
 cancel mode verify
@@ -74958,8 +74282,8 @@ sh dat
  
 sh grid a[d=1]
     GRID GSI1
- name       axis              # pts   start                end
- XAXIS_TEST1 X                  4 r   1                    4
+ name       axis              # pts   start                end                 subset
+ XAXIS_TEST1 X                  4 r   1                    4                   full
  normal    Y
  normal    Z
  normal    T
@@ -74967,8 +74291,8 @@ sh grid a[d=1]
  normal    F
 sh grid b[d=2]
     GRID GRR1
- name       axis              # pts   start                end
- XAXIS_TEST X                   4 r   11                   14
+ name       axis              # pts   start                end                 subset
+ XAXIS_TEST X                   4 r   11                   14                  full
  normal    Y
  normal    Z
  normal    T
@@ -75001,7 +74325,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75031,7 +74355,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75052,7 +74376,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75073,7 +74397,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75095,7 +74419,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75269,7 +74593,7 @@ show dat
 set var/name=diff w
  
 SET MODE/LAST ignore
-*** Running test: bn_bad_axis_bounds.jnl
+*** Running ferret script: bn_bad_axis_bounds.jnl
 ! bn_bad_axis_bounds
 ! Ticket 2146 If there are invalid axis bounds
 ! make them into a dependent variable.
@@ -75284,7 +74608,7 @@ show data
        (invalid axis bounds)
  TEMP2    TEMP[GT=MONTH_IRREG at ASN]         1:1       1:1       1:1       1:12      ...       ...
  
-*** Running test: bn_enter_exit_GO.jnl
+*** Running ferret script: bn_enter_exit_GO.jnl
 ! GO bn_enter_exit_GO
 ! Lines to allow trace of GO scripts:
 !
@@ -75321,8 +74645,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
@@ -75338,7 +74662,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
@@ -75347,11 +74671,11 @@ 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
-*** Running test: bn_stddev.jnl
+*** Running ferret script: bn_stddev.jnl
 ! bn_std.jnl
 ! New StdDev transform
  
@@ -75412,7 +74736,7 @@ list/y=3/l=1 temp[z=@std,x=@std]
              DEPTH (m): 0 to 100 (XZ stddev)
              TIME     : 17-AUG-1982 12:00
           0.9487
-*** Running test: bn_set_axis_name.jnl
+*** Running ferret script: bn_set_axis_name.jnl
 ! bn_set_axis_name.jnl
 ! ticket 2160 Implementing new qualifier SET AXIS/NAME
 ! 3/2014
@@ -75446,11 +74770,11 @@ set axis/name=daysaxis `a,return=taxis`
  !-> set axis/name=daysaxis DAYSAXIS1
 sh grid a
     GRID GSI1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- daysaxis  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00
+ daysaxis  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00   full
  normal    E
  normal    F
  
@@ -75504,13 +74828,14 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        7    F       X13AXIS
+                                 orig_file_axname
+                                                 CHAR        7    F       X13AXIS
   
  A                     DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -75520,13 +74845,14 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        7    F       X13AXIS
+                                 orig_file_axname
+                                                 CHAR        7    F       X13AXIS
   
  B                     DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -75536,13 +74862,14 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.951   6-Nov-15
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        7    F       X13AXIS
+                                 orig_file_axname
+                                                 CHAR        7    F       X13AXIS
   
  C                     DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -75561,7 +74888,205 @@ set axis/name=45 x_in_meters
 set axis/name=.fr x_in_meters
  
 set mode/last ignore
-*** Running test: bn691_bug_fixes.jnl
+*** Running ferret script: bn_let_remote.jnl
+! bn_let_remote.jnl
+! Tests of the F-TDS LET/REMOTE
+! 6/2016 installed NVODS on new-bock server
+ 
+! See if the F-TDS is working and bail if not.
+ 
+let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+load status
+if `status NE 0` then EXIT/SCRIPT
+ !-> if 0 then EXIT/SCRIPT
+ 
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
+let/D=1/remote myvar = t0112mn1[k=1:5 at sum]
+let/D=1/remote ave_z = t0112mn1[z=0:1000 at ave]
+sh var
+ Created by DEFINE VARIABLE:
+     AVE_Z[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = T0112MN1[Z=0:1000 at AVE]
+     MYVAR[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = T0112MN1[K=1:5 at SUM]
+ >>> Definitions that replace any file variable of same name:
+     STATUS = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+set view ul; shade/l=7 myvar
+set view ur; shade/l=3 ave_z
+ 
+list/l=7/x=300:310/y=15 myvar, ave_z
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+             LONGITUDE: 60W to 50W
+             LATITUDE: 14.5N
+             TIME: 14-JUL 12:00
+ Column  1: MYVAR is T0112MN1[K=1:5 at SUM]
+ Column  2: AVE_Z is T0112MN1[Z=0:1000 at AVE]
+             MYVAR   AVE_Z
+59.5W / 301:  139.9  12.94
+58.5W / 302:  139.5  12.91
+57.5W / 303:  140.5  13.68
+56.5W / 304:  140.0  12.37
+55.5W / 305:  137.6  13.60
+54.5W / 306:  136.1  12.27
+53.5W / 307:  134.2  12.13
+52.5W / 308:  137.2  12.35
+51.5W / 309:   27.3  27.30
+50.5W / 310:  135.4  12.16
+ 
+let/D=1/remote ave_t = t0112mn1[L=1:12 at ave]
+set view ll; shade/z=0 ave_t
+ 
+let/D=1/remote/units="`t0112mn1,ret=units`"/title="Summer average Temperature" ave_summer = t0112mn1[t=15-jun:15-sep at ave]
+ !-> DEFINE VARIABLE/D=1/remote/units="deg C"/title="Summer average Temperature" ave_summer = t0112mn1[t=15-jun:15-sep at ave]
+set view lr; shade/z=0 ave_summer
+ 
+can view
+can data/all; can var/all
+ 
+! open another dataset, define more remote variables
+ 
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+let/D=2/remote sstsum = sst[L=1:5 at sum]
+let/D=2/remote airtsum = airt[L=1:5 at sum]
+sh dat
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+ name     title                             I         J         K         L         M         N
+ T0112MN1 Temperature                      1:360     1:180     1:24      1:12      ...       ...
+ 
+    2> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:12      ...       ...
+ AIRT     AIR TEMPERATURE                  1:180     1:90      ...       1:12      ...       ...
+ SPEH     SPECIFIC HUMIDITY                1:180     1:90      ...       1:12      ...       ...
+ WSPD     WIND SPEED                       1:180     1:90      ...       1:12      ...       ...
+ UWND     ZONAL WIND                       1:180     1:90      ...       1:12      ...       ...
+ VWND     MERIDIONAL WIND                  1:180     1:90      ...       1:12      ...       ...
+ SLP      SEA LEVEL PRESSURE               1:180     1:90      ...       1:12      ...       ...
+ ------------------------------
+ AIRTSUM[D=data_coads_climatology.jnl] (/REMOTE) = AIRT[L=1:5 at SUM]
+ SSTSUM[D=data_coads_climatology.jnl] (/REMOTE) = SST[L=1:5 at SUM]
+ 
+ 
+set view ul; plot/y=-10/x=50:150 sstsum
+set view ur; plot/y=-10/x=50:150 airtsum
+list/y=-10/x=50:59 sstsum,airtsum
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
+             LONGITUDE: 50E to 59E
+             LATITUDE: 11S
+ Column  1: SSTSUM is SST[L=1:5 at SUM]
+ Column  2: AIRTSUM is AIRT[L=1:5 at SUM]
+           SSTSUM  AIRTSUM
+51E   / 16:  140.5   138.3
+53E   / 17:  140.6   138.4
+55E   / 18:  141.3   139.5
+57E   / 19:  141.4   138.5
+59E   / 20:  141.5   139.1
+ 
+let both = sstsum + airtsum
+set view lower; plot/y=-10/x=50:150 both
+list/y=-10/x=50:59 sstsum, airtsum, both
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
+             LONGITUDE: 50E to 59E
+             LATITUDE: 11S
+ Column  1: SSTSUM is SST[L=1:5 at SUM]
+ Column  2: AIRTSUM is AIRT[L=1:5 at SUM]
+ Column  3: BOTH is SSTSUM + AIRTSUM
+           SSTSUM  AIRTSUM  BOTH
+51E   / 16:  140.5   138.3  278.7
+53E   / 17:  140.6   138.4  279.0
+55E   / 18:  141.3   139.5  280.9
+57E   / 19:  141.4   138.5  279.9
+59E   / 20:  141.5   139.1  280.6
+ 
+can dat/all; can var/all
+ 
+! make several remote definitions. They can be used together in an expression.
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+let/D=1/remote sstsum = sst[L=1:5 at sum]
+let/D=1/remote airtsum = airt[L=1:5 at sum]
+let/D=1/remote factor = 12
+let/D=1/remote combo = factor*(airtsum - sstsum)
+list/y=-5/x=130w:110w combo
+             VARIABLE : FACTOR*(AIRTSUM - SSTSUM)
+             FILENAME : data_coads_climatology.jnl
+             FILEPATH : http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/
+             SUBSET   : 10 points (LONGITUDE)
+             LATITUDE : 5S
+                 5S    
+                 43
+ 129W   / 106:  -7.04
+ 127W   / 107:  -7.88
+ 125W   / 108:  -0.59
+ 123W   / 109: -10.31
+ 121W   / 110:  -1.90
+ 119W   / 111:  -4.39
+ 117W   / 112:  -6.35
+ 115W   / 113:  -9.40
+ 113W   / 114:  -9.81
+ 111W   / 115: -11.41
+ 
+ 
+can dat/all; can var/all
+ 
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
+ 
+! This is ok let/remote/D=
+let/D=1/remote myvar = t0112mn1[z=1:100 at ave]
+ 
+! Intentional errors:
+ 
+! But cannot put d= within the expression: the expr is evaluated on
+! the remote server so the same datsets are not open there.
+ 
+set mode ignore
+let/D=1/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+ 
+ 
+! But, require LET/D= with /REMOTE
+let/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+ 
+! If expressions involve local variables not defined in the remote dset,
+! then the variable can be computed but not as a remote-var.
+ 
+let a = 12
+let/D=1/remote avar = a*t0112mn1[L=@ave]
+list/x=300/y=15 avar
+ 
+SET MODE/LAST ignore
+ 
+! The dataset remains open, we can fix the definition.
+let/D=1/remote a = 12
+sho dat
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl  (default)
+ name     title                             I         J         K         L         M         N
+ T0112MN1 Temperature                      1:360     1:180     1:24      1:12      ...       ...
+ ------------------------------
+ A[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = 12
+ AVAR[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = A*T0112MN1[L=@AVE]
+ MYVAR[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = T0112MN1[Z=1:100 at AVE]
+ 
+list/x=300/y=15/z=0:100 avar
+             VARIABLE : A*T0112MN1[L=@AVE]
+             FILENAME : data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+             FILEPATH : http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/
+             SUBSET   : 7 points (DEPTH (m))
+             LONGITUDE: 60.5W
+             LATITUDE : 14.5N
+             TIME     : 01-JAN 12:00 to 30-DEC 06:00
+               60.5W 
+              300
+ 0      / 1:  331.0
+ 10     / 2:  330.6
+ 20     / 3:  330.4
+ 30     / 4:  329.6
+ 50     / 5:  324.5
+ 75     / 6:  313.6
+ 100    / 7:  299.4
+ 
+can dat/all; can var/all
+ 
+*** Running ferret script: bn691_bug_fixes.jnl
 ! bn691_bug_fixes
 ! test various fixes that went into version 6.91
 ! 04/2014 ACM
@@ -75792,11 +75317,11 @@ ensemble ens = 1,2,3
 list/y=29.25  MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3],  MAIZE_YIELD[m=@ngd]
              LONGITUDE: 8W(-8) to 6W(-6)
              LATITUDE: 29.3N
-             E: 0.5 to 3.5 (number of valid)
+             E (realization): 0.5 to 3.5 (number of valid)
  Column  1: MAIZE_YIELD[D=maize_1] is  Maize harvest (kgC.m-2.yr-1)
  Column  2: MAIZE_YIELD[D=maize_2] is  Maize harvest (kgC.m-2.yr-1)
  Column  3: MAIZE_YIELD[D=maize_3] is  Maize harvest (kgC.m-2.yr-1)
- Column  4: MAIZE_YIELD[D=ENS] is  Maize harvest (# of points)
+ Column  4: MAIZE_YIELD[D=ens] is  Maize harvest (# of points)
         MAIZE_YIELD  MAIZE_YI MAIZE_Y MAIZE_YIELD
 7.75W  / 1:     ....  0.05247  0.1022   2.000
 7.25W  / 2:  0.01818  0.03588  0.0049   3.000
@@ -75943,6 +75468,7 @@ GO err69_levels_v
 ! based levels returned useless levels. Changes
 ! made to throw out data outside 3 std when
 ! computing the mean and std dev for color levels.
+! Note: fixes to LEV=V 2/2016
  
 use "lev_v_bug.nc"
 shade/lev=v var2d
@@ -75950,11 +75476,11 @@ shade/lev=v var2d
 ! previously the computed levels spanned -8000 to 16000.
 sh sym *lev*
 LEV_TEXT = "V"
-LEV_HISTO_LEVELS = "1.1,1.2,1.6,1.9,2.4,2.5,3.8,5.4,10.2,13.6,14.9"
-LEV_MIN = "-1.E+34"
-LEV_MAX = "5.0000E+32"
-LEV_NUM = "21"
-LEV_DEL = "5.0000E+32"
+LEV_MIN = "290"
+LEV_MAX = "114930.72"
+LEV_NUM = "45"
+LEV_DEL = "irregular"
+LEV_OPNLEVS = "(290,330,10)(332,402,2)(400,450,10)(inf)"
  
  
 GO bn_reset
@@ -76061,12 +75587,12 @@ def axis/z=1:20:1 zaxis
 define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
 let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
 sh grid bigvar
-    GRID (G004)
- name       axis              # pts   start                end
- XAXIS     X                  360 r   1                    360
- YAXIS     Y                  180 r   1                    180
- ZAXIS     Z                   20 r   1                    20
- LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00
+    GRID (G003)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                  360 r   1                    360                 full
+ YAXIS     Y                  180 r   1                    180                 full
+ ZAXIS     Z                   20 r   1                    20                  full
+ LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
  normal    E
  normal    F
 load bigvar
@@ -76074,12 +75600,12 @@ load bigvar
 ! also was an incorrect size.
 define axis/t=1-jan-2000:1-jan-2010:1/units=days  longtime
 sh grid bigvar
-    GRID (G004)
- name       axis              # pts   start                end
- XAXIS     X                  360 r   1                    360
- YAXIS     Y                  180 r   1                    180
- ZAXIS     Z                   20 r   1                    20
- LONGTIME  TIME              3654 r   01-JAN-2000 00:00    01-JAN-2010 00:00
+    GRID (G003)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                  360 r   1                    360                 full
+ YAXIS     Y                  180 r   1                    180                 full
+ ZAXIS     Z                   20 r   1                    20                  full
+ LONGTIME  TIME              3654 r   01-JAN-2000 00:00    01-JAN-2010 00:00   full
  normal    E
  normal    F
 load bigvar
@@ -76095,11 +75621,11 @@ GO err69_write_attribute
 use gt4d011.cdf
 sh grid temp
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
 let a = temp[x=@ave,y=@ave,L=1]
@@ -76467,7 +75993,7 @@ list substring("hello",1,-2)
 list substring("hello",1,-3)
  
 set mode/last ignore
-*** Running test: bn_append_dsg.jnl
+*** Running ferret script: bn_append_dsg.jnl
 ! bn_append_dsg.jnl
 !From SOCAT 3: appending to a dsg file where the new variable is on the obs
 ! dimension. THe file has no coordinate variable, and we want to keep it that way.
@@ -76481,12 +76007,15 @@ set mode/last ignore
 !  Argument is a file name; the single-cruise dsg file from the data entry
 !
 ! We append more variables to the file, using the same obs dimension.
+! 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
  
 use test_save_dsg.nc
  
+cancel mode upcase
+ 
 ! Lon in 0-360
 let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
 define attribute/output lon360.ioos_category = "Location"
@@ -76523,14 +76052,14 @@ variables:
 		longitude:long_name = "longitude" ;
 		longitude:standard_name = "longitude" ;
 		longitude:ioos_category = "Location" ;
-	double LON360(obs) ;
-		LON360:missing_value = -1.e+34 ;
-		LON360:_FillValue = -1.e+34 ;
-		LON360:long_name = "longitude" ;
-		LON360:units = "degrees_east" ;
-		LON360:ioos_category = "Location" ;
-		LON360:standard_name = "Longitude" ;
-		LON360:history = "added to test_save_dsg.nc" ;
+	double lon360(obs) ;
+		lon360:missing_value = -1.e+34 ;
+		lon360:_FillValue = -1.e+34 ;
+		lon360:long_name = "longitude" ;
+		lon360:units = "degrees_east" ;
+		lon360:ioos_category = "Location" ;
+		lon360:standard_name = "Longitude" ;
+		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
 		:History = "CruiseDsgNcFile 1.0" ;
@@ -76542,13 +76071,16 @@ variables:
 		:geospatial_lat_max = 29.07 ;
 		:time_coverage_start = "2006-06-10T23:48:00Z" ;
 		:time_converage_end = "2006-06-11T00:12:00Z" ;
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 }
-*** Running test: bn_global_atts.jnl
- ! NOAA/PMEL TMAP
- ! FERRET v6.91 (beta)
- ! Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 04/07/14
- !  7-Apr-14 16:41
+ 
+set mode/last upcase
+ 
+*** Running ferret script: bn_global_atts.jnl
+! bn_global_atts
+! NOTE With the fix for ticket 2241, we need to add CANCEL MODE UPCASE.
+ 
+cancel mode upcase
  
 sp cp global.nc  global_copy.nc
 use global_copy.nc
@@ -76622,17 +76154,17 @@ variables:
 		longitude:long_name = "longitude" ;
 		longitude:standard_name = "longitude" ;
 		longitude:ioos_category = "Location" ;
-	double LON360(obs) ;
-		LON360:missing_value = -1.e+34 ;
-		LON360:_FillValue = -1.e+34 ;
-		LON360:long_name = "longitude" ;
-		LON360:units = "degrees_east" ;
-		LON360:ioos_category = "Location" ;
-		LON360:standard_name = "Longitude" ;
-		LON360:history = "added to test_save_dsg.nc" ;
+	double lon360(obs) ;
+		lon360:missing_value = -1.e+34 ;
+		lon360:_FillValue = -1.e+34 ;
+		lon360:long_name = "longitude" ;
+		lon360:units = "degrees_east" ;
+		lon360:ioos_category = "Location" ;
+		lon360:standard_name = "Longitude" ;
+		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V6.951   6-Nov-15" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V7  17-Jun-16" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -76659,12 +76191,13 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V6.951   6-Nov-15 
+ FERRET V7  17-Jun-16 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
+set mode/last upcase
  
-*** Running test: bn_conventions_history.jnl
+*** Running ferret script: bn_conventions_history.jnl
 ! bn_conventions_history.jnl
 ! ticket 2169:
 ! Write conventions CF-1.6
@@ -76688,9 +76221,9 @@ can dat/all; use conventions_history
 ! The new attibutes
 sh att .
      attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V6.951   6-Nov-15 
+ ..history = The history of the fileFERRET V7  17-Jun-16 
  ..Conventions = Conventions for variables named V2CF-1.6 
-*** Running test: bn_center_key_labels.jnl
+*** Running ferret script: bn_center_key_labels.jnl
 ! bn_center_key_labels
 !  6/2014
 !
@@ -76735,7 +76268,7 @@ can data coads_climatology
 ! Automatically restore regular handling of levels
 shade temp
  
-*** Running test: bn_wgt_transform.jnl
+*** Running ferret script: bn_wgt_transform.jnl
 ! bn_wgt_transform.jnl  test new @WGT transform,
 ! returns weights used in the equiv. average or integral transform
 ! ACM 7/2014
@@ -76845,7 +76378,7 @@ list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
  25    / 3:  10.00
  35    / 4:  10.00
  45    / 5:   3.50
-*** Running test: bn_show_outfile.jnl
+*** Running ferret script: bn_show_outfile.jnl
 ! bn_show_outfile
 ! Adding tests for SHOW/OUTFILE=
 ! Previously only tests when SHOW/XML/OUTFILE=
@@ -76880,18 +76413,6 @@ sp cat a.txt
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 365.2425 (modulo length = axis span)
  name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
-   Axis span (to cell edges) = 160 (modulo length = 360)
- PSXU      LONGITUDE          160mr   131E                 70W
-   Axis span (to cell edges) = 160 (modulo length = 360)
- PSYT      LATITUDE           100 i   28.836S              48.568N
-   Axis span (to cell edges) = 80.00004
- PSYU      LATITUDE           100 i   27.672S              50N
-   Axis span (to cell edges) = 80.2682
- PSZT      DEPTH (m)           27 i-  5                    3824
-   Axis span (to cell edges) = 4149
- PSZW      DEPTH (m)           27 i-  10                   4149
-   Axis span (to cell edges) = 4144
  
 ! show grid/outfile
  
@@ -76902,11 +76423,11 @@ SAY ---------------- Just the grid of sst
 ---------------- Just the grid of sst
 sp cat a.txt
     GRID GSQ1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ 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
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  normal    E
  normal    F
  
@@ -76959,11 +76480,11 @@ SAY ---------------- Just grid of sst
 ---------------- Just grid of sst
 sp cat a.txt
     GRID GSQ1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ 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
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  normal    E
  normal    F
  
@@ -77001,9 +76522,6 @@ show grid/clobber/outfile=a.txt PS3*
 SAY ---------------- only showing all grids starting with PS3
 ---------------- only showing all grids starting with PS3
 sp cat a.txt
-      PS3DT
-      PS3DU
-      PS3DW
  
 SAY ---------------- tests sending output of vtree to a file
 ---------------- tests sending output of vtree to a file
@@ -77011,6 +76529,7 @@ GO bn_vtree_outfile
 ! bn_tree_outfile.jnl
  
 ! 8/2014 -- demonstrate SHOW VARIABLE/TREE/OUTFILE
+! 11/15 -- default for DEFINE DATA/AGG has become /T instead of /E
  
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -77257,12 +76776,12 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 /TREE=FILE
 fv1 is ready and AVAILABLE
 ************************
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
      FV1[d=my_file_vars]
      FV1[d=other_file_vars]
      FV1[d=another_file_vars]
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
  
    FV1[d=my_file_vars]
@@ -77273,14 +76792,14 @@ fv1 is ready and AVAILABLE
 /TREE=FILE
 fvx is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=my_file_vars]
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
        FV1[d=other_file_vars]
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
        FV1[d=another_file_vars]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
@@ -77293,7 +76812,7 @@ fvx is ready and AVAILABLE
 /TREE=FILE
 the problem is ILLEGAL RECURSIVE VARIABLES: P1
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -77303,7 +76822,7 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
            S3 ??			<== UNKNOWN VARIABLE ******
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -77322,7 +76841,7 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
 /TREE=FILE
 the problem is UNKNOWN VARIABLE: S1
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -77332,7 +76851,7 @@ the problem is UNKNOWN VARIABLE: S1
          P3 = S1 + S3
            S1 ??			<== UNKNOWN VARIABLE ******
            S3 ??			<== UNKNOWN VARIABLE ******
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -77349,13 +76868,13 @@ the problem is UNKNOWN VARIABLE: S1
    *unknown variable: S3
    in default dataset my_file_vars
    FV = FV1 + FV1 + FV1
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FV = FV1 + FV1 + FV1
      FV1   (aggregate variable)
    in default dataset other_file_vars
    UV = FVX + FVX + FVX
      FVX = FV1 + X[GX=FVX[D=1],I=1:3]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
        FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
@@ -77366,7 +76885,7 @@ the problem is UNKNOWN VARIABLE: S1
 /TREE=FILE
 v2 is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -77376,7 +76895,7 @@ v2 is ready and AVAILABLE
          C = 1
      B =  (defined above)
      A =  (defined above)
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -77391,7 +76910,7 @@ v2 is ready and AVAILABLE
 /TREE=FILE
 v3 is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
        FV1[d=my_file_vars]
@@ -77401,7 +76920,7 @@ v3 is ready and AVAILABLE
        B = C
          C = 1
      B =  (defined above)
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
      V1 = A  + B + B^2
@@ -77416,7 +76935,7 @@ v3 is ready and AVAILABLE
 /TREE=FILE
 the problem is UNKNOWN VARIABLE: F
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
        FV1[d=my_file_vars]
@@ -77426,7 +76945,7 @@ the problem is UNKNOWN VARIABLE: F
    NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
    FVX[d=my_file_vars]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
@@ -77443,11 +76962,11 @@ the problem is UNKNOWN VARIABLE: F
 /TREE=FILE
 the problem is UNKNOWN GRID: NOEXIST
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
@@ -77457,10 +76976,10 @@ the problem is UNKNOWN GRID: NOEXIST
 /TREE=FILE
 the problem is ERROR IN EXPRESSION: A[X=45S]
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
       *WARNING: syntax error: A[X=45S]
@@ -77469,10 +76988,10 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
 /TREE=FILE
 the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
       *WARNING: syntax error: A[I=1,,J=2]
@@ -77481,10 +77000,10 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
 /TREE=FILE
 the problem is ERROR IN EXPRESSION: A[P=1]
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
       *WARNING: syntax error: A[P=1]
@@ -77493,19 +77012,19 @@ the problem is ERROR IN EXPRESSION: A[P=1]
 /TREE=FILE
 f is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = FVZ.LONG_NAME[D=1]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = ..HISTORY[D=1]
  
  
-*** Running test: bn_date1900_array.jnl
+*** Running ferret script: bn_date1900_array.jnl
 ! bn_date1900_array.jnl
 ! Let date1900 accept an array of date strings, returning a list
 ! of coordinate values, days since 1-jan-1900.
@@ -77554,7 +77073,7 @@ list t[gt=taxis]
  02-JAN-2001 00 / 2:  36891.
  30-JUL-2002 00 / 3:  37465.
  
-*** Running test: bn_spawn_size.jnl
+*** Running ferret script: bn_spawn_size.jnl
 ! bn_spawn_size.jnl
 ! Return the size of the result of a spawn, not
 ! the nominalabstract axis length.
@@ -77599,15 +77118,15 @@ list {spawn:"ls xml*.jnl"}
  
 LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
 say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 905
-905
+ !-> MESSAGE/CONTINUE 969
+969
  
 let files = {spawn:"ls *cdf*.jnl"}
 let name_len = strindex(files, ".sub")
 say `name_len, return=isize`
  !-> MESSAGE/CONTINUE 8
 8
-*** Running test: bn_polygon_log.jnl
+*** Running ferret script: bn_polygon_log.jnl
 ! bn_polygon_log.jnl
 ! polygon plots on a log axis need tests
  
@@ -77641,7 +77160,7 @@ poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
 poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
  
 set mode/last ignore
-*** Running test: bn694_bug_fixes.jnl
+*** Running ferret script: bn694_bug_fixes.jnl
 ! bn694_bug_fixes
 ! test various fixes that went into version 6.94
 ! 11/2014 ACM
@@ -77670,6 +77189,7 @@ list 'abc'
              FILENAME : aa.nc
           12.00
  
+set mode/last upcase
  
 GO bn_reset
 cancel mode verify
@@ -78042,7 +77562,7 @@ GO err693_line_over_axis
 ! Ticket 2232: line plots overlaid the plot axes
 show mode meta
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      metafile.plt
+      METAFILE      CANCELLED      .gif
 ! line plot with /VS draw on top of the axes
 let xval = {0.0, 0.2, 1.0, 0.8, 0}
 let yval = {0.0, 1.1, 1.1, 0.0, 0}
@@ -78085,11 +77605,13 @@ say `a[x=@min]`
  allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  strip --> A[X=25E:25E(385)@MIN,D=2]
- strip moduloing A on X axis:     0    83 dset:   2
- reading A        M:  1 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling A on X axis:     0    83 dset:   2
+ strip moduloing A on X axis:     0    82 dset:   2
+ reading A        M:  5 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:     1    82 dset:   2
+ doing modulo-void-filling A on X axis:     0    82 dset:   2
  doing --> A[X=25E:25E(385)@MIN,D=2]
- -DELETE A        M:  7 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 25.27740573883057
 25.27740573883057
  
@@ -78102,8 +77624,8 @@ say `b`
  allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  eval    B        C:  6 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   A        M:  8 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE B        M:  6 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   A        M:  7 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE B        M: 11 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 25.27740573883057
 25.27740573883057
  
@@ -78325,7 +77847,7 @@ set view lower; plot/m=2 efvar
 list/n=3 efvar
              VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
              SUBSET   : 4 points (E)
-             F        : 0.2
+             F        : 0.234
  1001.1 / 1:  4.000
  1234   / 2:  5.000
  2112.3 / 3:  6.000
@@ -78444,8 +77966,8 @@ GO err693_isize_and_gcfcn
 can mode verify
 8
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              7 pts
  normal    Y
  normal    Z
  normal    T
@@ -78469,8 +77991,8 @@ can mode verify
 8 h
 8
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -78791,7 +78313,7 @@ list b[x=@ave,k=@ave]
           2.765
  
  
-*** Running test: bn_permute_ascii.jnl
+*** Running ferret script: bn_permute_ascii.jnl
 ! bn_permute_ascii.jnl
 ! test permutations when reading ascii data, in E and F directions
 ! 11/18/2014
@@ -79097,7 +78619,7 @@ list tm
  3   / 3: -28.53  -8.29
  4   / 4: -28.54  -8.39
  
-*** Running test: bn_lon_lat_time_string.jnl
+*** Running ferret script: bn_lon_lat_time_string.jnl
 ! bn_lon_lat_time_string.jnl
 ! Test function written for LAS, to create profile labels from
 ! a list of lnogitudes, latitudes, times, and a prefix string.
@@ -79110,13 +78632,6 @@ LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
     time: numeric times
     time_axis: Varible with a time axis to use to convert time to time strings
     string to prepend: A label to start the strings (STRING)
-LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
-    Generate names based on longitude,latitude,time,and a string
-    longitude: Station longitude
-    latitude: Station latitude
-    time: numeric times
-    time_axis: Varible with a time axis to use to convert time to time strings
-    string to prepend: A label to start the names with (STRING)
  
 ! Longitudes are translated to 0:360 range
 let lon = {-172.44, 210.01, -19.5}
@@ -79136,7 +78651,7 @@ list lon_lat_time_string(lon, lat, time, tt, "my_string")
  2   / 2:"my_string_210E_4.9N_03-JAN-2001"    
  3   / 3:"my_string_340.5E_15.03S_04-JAN-2001"
  
-*** Running test: bn_save_justdim.jnl
+*** Running ferret script: bn_save_justdim.jnl
 ! bn_save_justdim.jnl
 ! When a dataset has axes that are dimensions but not 1-D coordinate variables,
 ! no longer save the coordinate axis that Ferret creates from the dimension.
@@ -79166,7 +78681,7 @@ save/clobber/keep/file=a.nc time
 sp ncdump a.nc >> all_ncdump.out
  
 SET MODE/LAST upcase_output
-*** Running test: bn_time2d.jnl
+*** Running ferret script: bn_time2d.jnl
 ! bn_time2d.jnl
 ! 1/30/2015 ACM
  
@@ -79197,7 +78712,7 @@ set att/like=time time2d
  
 shade time2d
 shade/trans time2d
-*** Running test: bn_legend_labels.jnl
+*** Running ferret script: bn_legend_labels.jnl
 ! bn_legend_labels.jnl
 ! The legend labels on a multi-line plot describe the
 !  variable and context but are not controlable by the user.
@@ -79218,7 +78733,7 @@ sh sym lab7,lab8,lab9
 ! 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
-*** Running test: bn_DQ.jnl
+*** Running ferret script: bn_DQ.jnl
 ! bn_DQ.jnl  *sh* 2/2015
 ! test the use of _DQ_ and _SQ_ in lieu of " and '
  
@@ -79716,7 +79231,7 @@ plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
 !   - inherit_attrs
  
 ! in xeq_define.F:  DEFINE AXIS/NAME='my-name' is of unclear purpose
-*** Running test: bn695_bug_fixes.jnl
+*** Running ferret script: bn695_bug_fixes.jnl
 ! bn695_bug_fixes
 ! test various fixes that went into version 6.95
  
@@ -79872,7 +79387,7 @@ list astd^2, avar, avar_calc, astd_e_f^2
            EX#1   AVAR  AVAR_CA   EX#4
 I / *:     5.778  5.778   5.778  0.4444
  
-*** Running test: bn_f_tax_fcns.jnl
+*** Running ferret script: bn_f_tax_fcns.jnl
 ! bn_f_from_tax_fcns.jnl
 ! test tax_* functions returning results from a
 ! time-formatted axis in the F direction
@@ -80138,63 +79653,69 @@ LIST/N=1:15 TAX_TSTEP(ff, "`reset_date`")
  01-JAN-1902 00:01:00 / 13:  60.00000
  01-JAN-1902 00:01:05 / 14:  65.00000
  01-JAN-1902 00:01:10 / 15:  70.00000
-*** Running test: bn_fmrc.jnl
+*** Running ferret script: bn_fmrc.jnl
 ! bn_fmrc.jnl
 ! initial test of DEFINE DATA/F
  
+! *sh* 11/15 MUCH MORE DETAILED BENCHMARK NEEDED!
+ 
 use "run1.nc"
 use "run2.nc"
 use "run3.nc"
 use "run4.nc"
  
-define data/hide/F/agg/title fourfiles = 1,2,3,4
+define data/hide/F/agg fourfiles = 1,2,3,4
  
 sh grid sst
     GRID (G007)
- name       axis              # pts   start                end
- LON       LONGITUDE           10mr   109W                 91W
- LAT       LATITUDE             9 r   13N                  29N
+ name       axis              # pts   start                end                 subset
+ LON       LONGITUDE           10mr   109W                 91W                 full
+ LAT       LATITUDE             9 r   13N                  29N                 full
  normal    Z
- TF_LAG_T  MODEL ELAPSED TIME (12 r   0                    11
+ TF_LAG_T  MODEL ELAPSED TIME (12 r   0.5                  11.5                full
  normal    E
- TF_CAL_F  FORECAST             4 r   02-JAN-2010 00:00    08-JAN-2010 00:00
+ TF_CAL_F  FORECAST             4 r   01-JAN-2010 12:00    07-JAN-2010 12:00   full
 list/i=1/j=1/L=1:6/n=1:4 sst
              VARIABLE : SST_IN (Deg C)
-             FILENAME : FOURFILES
+             DATA SET : Forecast series of 4 datasets patterned on run1
+             FILENAME : fourfiles
              SUBSET   : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
              LONGITUDE: 109W
              LATITUDE : 13N
              Verification time increases across row.  Initialization time increases down page. 
-                        0      1      2      3      4      5    
+                        0.5    1.5    2.5    3.5    4.5    5.5  
                         1      2      3      4      5      6
- 02-JAN-2010 00 / 1:   27.4   27.4   27.6   28.1   28.9   28.8
- 04-JAN-2010 00 / 2:   54.8   54.9   55.2   56.3   57.7   57.6
- 06-JAN-2010 00 / 3:   82.1   82.3   82.7   84.4   86.6   86.3
- 08-JAN-2010 00 / 4:  109.5  109.8  110.3  112.5  115.5  115.1
+ 01-JAN-2010 12 / 1:   27.4   27.4   27.6   28.1   28.9   28.8
+ 03-JAN-2010 12 / 2:   54.8   54.9   55.2   56.3   57.7   57.6
+ 05-JAN-2010 12 / 3:   82.1   82.3   82.7   84.4   86.6   86.3
+ 07-JAN-2010 12 / 4:  109.5  109.8  110.3  112.5  115.5  115.1
  
 show att sst
-     attributes for dataset: FOURFILES
+     attributes for dataset: fourfiles
  SST.long_name = SST_IN 
  SST.units = Deg C 
  SST.missing_value = -1.E+34
- SST.coordinates = FORECAST TF_TIMES LAT LON 
- SST._ftime2dRef = TF_TIMES 
+ SST.coordinates = RUN TF_TIMES LAT LON 
+ SST._ftime2d = TF_TIMES 
+ SST._cal_t_ax = TF_CAL_T 
+ SST._lag_f_ax = TF_LAG_F 
  
 ! Attribute _ftime2dRef pointe to the 2D time variable
-list/L=1:6/n=1:4 `sst._ftime2dRef`
+list/L=1:6/n=1:4 `sst._ftime2d`
  !-> list/L=1:6/n=1:4 TF_TIMES
              VARIABLE : Forecast time step matrix (day since 01-JAN-2010 00:00:00)
-             FILENAME : FOURFILES
+             DATA SET : Forecast series of 4 datasets patterned on run1
+             FILENAME : fourfiles
              SUBSET   : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
              Verification time increases across row.  Initialization time increases down page. 
-                        0      1      2      3      4      5    
+                        0.5    1.5    2.5    3.5    4.5    5.5  
                         1      2      3      4      5      6
- 02-JAN-2010 00 / 1:   1.00   2.00   3.00   4.00   5.00   6.00
- 04-JAN-2010 00 / 2:   7.00   8.00   9.00  10.00  11.00  12.00
- 06-JAN-2010 00 / 3:   3.00   4.00   5.00   6.00   7.00   8.00
- 08-JAN-2010 00 / 4:   9.00  10.00  11.00  12.00  13.00  14.00
+ 01-JAN-2010 12 / 1:   1.00   2.00   3.00   4.00   5.00   6.00
+ 03-JAN-2010 12 / 2:   3.00   4.00   5.00   6.00   7.00   8.00
+ 05-JAN-2010 12 / 3:   5.00   6.00   7.00   8.00   9.00  10.00
+ 07-JAN-2010 12 / 4:   7.00   8.00   9.00  10.00  11.00  12.00
  
-*** Running test: bn_return_defined.jnl
+*** Running ferret script: bn_return_defined.jnl
 ! bn_return_defined.jnl
 ! 5/3/2015 *acm*
 ! `return=defined` returns 1 if the user variable is defined
@@ -80216,7 +79737,7 @@ say `temp2,return=def`
 say `temp,return=defined`
  !-> MESSAGE/CONTINUE 0
 0
-*** Running test: bn_can_var_noerr.jnl
+*** Running ferret script: bn_can_var_noerr.jnl
 ! bn_can_var_noerr.jnl
 ! CANCEL VARIABLE/NOERROR
  
@@ -80262,7 +79783,7 @@ show var
 cancel var/noerror/all
 show var
  Created by DEFINE VARIABLE:
-*** Running test: bn_annotate.jnl
+*** Running ferret script: bn_annotate.jnl
 ! bn_annotate.jnl
 ! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
 ! locates user-defined labels on a plot.
@@ -80488,8 +80009,8 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  LAB14 -1.674E+00 -1.179E+00 0.500   45  USER    M
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB15 -3.884E+00  5.515E-08 0.500   45  USER    M
- LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
+ LAB15 -3.884E+00 -1.179E+00 0.500   45  USER    5.5148314619E-,1, M
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  LAB16 -2.558E+00 -3.536E+00 0.500   45  USER    M
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB17 -1.455E+00 -2.952E+00 0.500   45  USER    M
@@ -80538,7 +80059,7 @@ shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=0.1
 shad/set/i=1:2/j=1:2 i+j; def anno/nou/ypos=0 "My Lab"; ppl plot
 shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/hal=1/val=0 "My Lab"; ppl plot
 shad/set/i=1:2/j=1:2 i+j; def anno/nou/user/xpos=0/ypos=0 "My Lab"; ppl plot
-*** Running test: bn_auxiliary.jnl
+*** Running ferret script: bn_auxiliary.jnl
 ! bn_auxiliary.jnl:  exercise auxiliary coordinate regridding
  
 ! notes about the 6/2015 version:
@@ -80698,10 +80219,10 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GAO1
     GRID GAO1
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAXLEVITR DEPTH (m)           20 i-  0                    5000
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                10 pts
  normal    T
  normal    E
  normal    F
@@ -80766,10 +80287,10 @@ SHOW GRID tempz
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
     GRID (G002)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- (AX005)   Z                    5 r   100                  500
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX005)   Z                    5 r   100                  500                 full
  normal    T
  normal    E
  normal    F
@@ -80816,10 +80337,10 @@ LIST tempzax
  49.5S / 1:  4.879  5.102
 SHOW GRID tempzax
     GRID (G004)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAX       Z (METERS)           5 r   100                  500
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 full
  normal    T
  normal    E
  normal    F
@@ -80852,10 +80373,10 @@ LIST/PREC=7 tempz_alt
  49.5S / 1:  6.843000  7.021999
 SHOW GRID tempz_alt
     GRID (G005)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- (AX007)   Z                    5 r   2                    10
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX007)   Z                    5 r   2                    10                  4 pts
  normal    T
  normal    E
  normal    F
@@ -80879,10 +80400,10 @@ LIST/PREC=7 tempz_1pt
  49.5S / 1:  6.836600  7.016000
 SHOW GRID/z tempz_1pt
     GRID (G006)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- (AX008)   Z                    1 r   6                    6
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX008)   Z                    1 r   6                    6                   1 pt
  normal    T
  normal    E
  normal    F
@@ -80904,10 +80425,10 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GAO1
     GRID GAO1
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAXLEVITR DEPTH (m)           20 i-  0                    5000
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                1 pt
  normal    T
  normal    E
  normal    F
@@ -80946,10 +80467,10 @@ LIST/PREC=7 rvtempzax - tempz
  49.5S / 1:  0.0000000  0.0000000
 SHOW GRID rvtempzax
     GRID (G004)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAX       Z (METERS)           5 r   100                  500
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
  normal    E
  normal    F
@@ -82141,10 +81662,10 @@ LIST/PREC=7 rvtempzaxave - tempz
  49.5S / 1:  0.00000000  0.00000000
 SHOW GRID/z rvtempzaxave
     GRID (G004)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAX       Z (METERS)           5 r   100                  500
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
  normal    E
  normal    F
@@ -84322,7 +83843,7 @@ CANC MODE VERIFY
            161    162    163    164    165   
             1      2      3      4      5
           20.75  24.00  20.75   ....  20.75
-*** Running test: bn_plot_ribbon_gaploc.jnl
+*** Running ferret script: bn_plot_ribbon_gaploc.jnl
 ! bn_plot_ribbon_gaploc.jnl
 ! 7/20/2015 *acm*  new PLOT/VS/RIBBON/GAPLOC
 !
@@ -84361,7 +83882,7 @@ plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
 plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
 plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
 set mode/last ignore
-*** Running test: bn_time_short_axes.jnl
+*** Running ferret script: bn_time_short_axes.jnl
 ! bn_time_short_axes.jnl
 ! testing time axis style with HH:MM on the time axis labels.
  
@@ -84389,7 +83910,7 @@ shade/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
 shade/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
 fill/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
 shade/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
-*** Running test: bn_floatstr_extended.jnl
+*** Running ferret script: bn_floatstr_extended.jnl
 ! bn_floatstr_extended.jnl
 ! test use of Integer and zero-filled formats in FLOATSTR function (Ferret v6.95)
 ! 9/28/2015
@@ -84550,459 +84071,10220 @@ list floatstr(a, "(f06.1)")
  1   / 1:"0001.1"
  2   / 2:"0013.7"
  
-let a = {-1.1, 13.7}
-list  floatstr(a, "(f04.1)")
-             VARIABLE : FLOATSTR(A, "(f04.1)")
-             SUBSET   : 2 points (X)
- 1   / 1:"-1.1"
- 2   / 2:"13.7"
+let a = {-1.1, 13.7}
+list  floatstr(a, "(f04.1)")
+             VARIABLE : FLOATSTR(A, "(f04.1)")
+             SUBSET   : 2 points (X)
+ 1   / 1:"-1.1"
+ 2   / 2:"13.7"
+ 
+! testing negative numbers and null/missing results
+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
+             LATITUDE: 91S to 11S
+             LONGITUDE: 165W
+             TIME: 16-JAN 06:00
+ Column  1: VAR1[G=4 deg on Y] is FLOATSTR(SST-20,"(f5.1)") (regrid: 4 deg on Y)
+ Column  2: VAR2[G=4 deg on Y] is FLOATSTR(SST-20,"(f05.1)") (regrid: 4 deg on Y)
+              VAR1    VAR2
+89S   /  1: ""      ""     
+85S   /  2: ""      ""     
+81S   /  3: ""      ""     
+77S   /  4: "-20.4" "-20.4"
+73S   /  5: "-21.0" "-21.0"
+69S   /  6: "-19.8" "-19.8"
+65S   /  7: "-20.0" "-20.0"
+61S   /  8: "-17.3" "-17.3"
+57S   /  9: "-13.9" "-13.9"
+53S   / 10: "-11.2" "-11.2"
+49S   / 11: " -7.5" "0-7.5"
+45S   / 12: " -5.7" "0-5.7"
+41S   / 13: " -3.5" "0-3.5"
+37S   / 14: " -1.3" "0-1.3"
+33S   / 15: "  0.9" "000.9"
+29S   / 16: "  3.0" "003.0"
+25S   / 17: "  5.1" "005.1"
+21S   / 18: "  7.5" "007.5"
+17S   / 19: "  8.1" "008.1"
+13S   / 20: "  9.7" "009.7"
+ 
+! Now test (F0.0) and (I0) formats which return the
+! shortest possible value without the fractional part.
+! Per marco.van-hulten at lsce.ipsl.fr - this is legal in
+! gfortran, so allow it.
+ 
+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
+             LATITUDE: 91S to 11S
+             LONGITUDE: 165W
+             TIME: 16-JAN 06:00
+ Column  1: VAR1[G=4 deg on Y] is FLOATSTR(SST-20,"(f0.0)") (regrid: 4 deg on Y)
+ Column  2: VAR2[G=4 deg on Y] is FLOATSTR(SST-20,"(I0)") (regrid: 4 deg on Y)
+             VAR1   VAR2
+89S   /  1: ""     ""   
+85S   /  2: ""     ""   
+81S   /  3: ""     ""   
+77S   /  4: "-20." "-20"
+73S   /  5: "-21." "-21"
+69S   /  6: "-20." "-19"
+65S   /  7: "-20." "-20"
+61S   /  8: "-17." "-17"
+57S   /  9: "-14." "-13"
+53S   / 10: "-11." "-11"
+49S   / 11: "-7."  "-7" 
+45S   / 12: "-6."  "-5" 
+41S   / 13: "-4."  "-3" 
+37S   / 14: "-1."  "-1" 
+33S   / 15: "1."   "0"  
+29S   / 16: "3."   "2"  
+25S   / 17: "5."   "5"  
+21S   / 18: "8."   "7"  
+17S   / 19: "8."   "8"  
+13S   / 20: "10."  "9"  
+*** Running ferret script: bn696_bug_fixes.jnl
+! bn696_bug_fixes
+! test various fixes that went into version 6.96
+ 
+GO bn_reset
+cancel mode verify
+GO err695_bounds_match_axis
+! err695_bounds_match_axis.jnl
+! ticket 2321.
+!
+! The coordinates match the upper bound of each cell
+! to machine accuracy. The internal rep of the value
+! has pt > bound_hi however.  The logic in tm_check_bnds
+! handes this.
+ 
+use shorttemp.nc
+ 
+! Previously showed tbox=0 for every second pt.
+sh grid/l=1:4444 temp
+    GRID GSL1
+ name       axis              # pts   start                end                 subset
+ LON       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
+ TIME      TIME                 4 i   19-JUN-1997 00:00    19-JUN-1997 01:30   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  19-JUN-1997 00:00:00  0.0208333  18-JUN-1997 23:30:00    0.02083333
+       2>  19-JUN-1997 00:30:00  0.0208333  19-JUN-1997 00:00:00    0.04166667
+       3>  19-JUN-1997 01:00:00  0.0208333  19-JUN-1997 00:30:00    0.0625
+       4>  19-JUN-1997 01:30:00  0.0208333  19-JUN-1997 01:00:00    0.08333333
+ 
+GO bn_reset
+cancel mode verify
+GO err695_show_dat_nodata
+! err695_show_dat_nodata.jnl
+! ticket 2322
+!
+! SHOW DATA noexist should include the dataset name or number
+! in the error message.
+ 
+USE coads_climatology
+ 
+SHOW DATA 1
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+SHOW DATA coads_climatology
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+ 
+! intentional errors
+SET MODE ignore
+SHOW DATA noexist
+SHOW DATA 2
+SHOW DATA/ATT noexist
+ 
+SET MODE/LAST ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err695_grave_prec
+! err695_grave_prec
+! Bug 2323. Large numbers had incorrect results on grave-accent
+! evaluations, returning only 8 digits of precision
+ 
+list/nohead/p=16 1234567890123456, `1234567890123456`
+ !-> list/nohead/p=16 1234567890123456,   1234567890123456.
+I / *:     1234567890123456.  1234567890123456.
+list/nohead/p=16 -1234567890123.456, `-1234567890123.456`
+ !-> list/nohead/p=16 -1234567890123.456,  -1234567890123.456
+I / *:    -1234567890123.456 -1234567890123.456
+ 
+! this was ok
+list/nohead/p=16 1.234567890123456, `1.1234567890123456`
+ !-> list/nohead/p=16 1.234567890123456, 1.123456789012346
+I / *:     1.234567890123456  1.123456789012346
+ 
+! check output when asking for lower precision
+list/nohead/p=9 1234567890123456, `1234567890123456`
+ !-> list/nohead/p=9 1234567890123456,   1234567890123456.
+I / *:     1.23456789E+15  1.23456789E+15
+list/nohead/p=6 1234567890123456, `1234567890123456`
+ !-> list/nohead/p=6 1234567890123456,   1234567890123456.
+I / *:     1.23457E+15  1.23457E+15
+ 
+let var = 1.23456e+34
+say `var`
+ !-> MESSAGE/CONTINUE 1.23456E+34
+1.23456E+34
+ 
+say `var,prec=4`
+ !-> MESSAGE/CONTINUE 1.235E+34
+1.235E+34
+*** Running ferret script: bn_bin_regrid.jnl
+! bin regridding tests
+ 
+go bn_bin_regrid.sub X
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/X=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/X irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _X[GX=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _X[GX=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
+             X: 0.5 to 5.5
+ Column  1: DEST is _X[GX=DCOARSE]
+ Column  2: VAR[G=1 delta on X at AVE] is _X[GX=IRR] (regrid: 1 delta on X at AVE)
+ Column  3: VAR[G=1 delta on X at BIN] is _X[GX=IRR] (regrid: 1 delta on X at BIN)
+ Column  4: VAR[G=1 delta on X at NBIN] is _X[GX=IRR] (regrid: 1 delta on X at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.178  1.150  2.000
+2   / 2:  2.000  1.545   ....  0.000
+3   / 3:  3.000  3.500   ....  0.000
+4   / 4:  4.000  3.980  3.500  1.000
+5   / 5:  5.000  4.838  4.850  2.000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _X[gX=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _X[GX=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
+             X: 0.5 to 5.5
+ Column  1: DEST is _X[GX=DCOARSE]
+ Column  2: VAR[G=1 delta on X at AVE] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at AVE)
+ Column  3: VAR[G=1 delta on X at BIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at BIN)
+ Column  4: VAR[G=1 delta on X at NBIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.956  1.650  2.000
+2   / 2:  2.000  2.200   ....  0.000
+3   / 3:  3.000   ....   ....  0.000
+4   / 4:  4.000   ....   ....  0.000
+5   / 5:  5.000  5.000  5.000  1.000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GX=dcoarse]
+             X: 0.5 to 5.5
+ Column  1: DEST is _X[GX=DCOARSE]
+ Column  2: VAR[G=1 delta on X] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
+          DEST    VAR
+1   / 1:  1.000   ....
+2   / 2:  2.000   ....
+3   / 3:  3.000   ....
+4   / 4:  4.000   ....
+5   / 5:  5.000  5.000
+ 
+go bn_bin_regrid.sub Y
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/Y=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/Y irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _Y[GY=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _Y[GY=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
+             Y: 0.5 to 5.5
+ Column  1: DEST is _Y[GY=DCOARSE]
+ Column  2: VAR[G=1 delta on Y at AVE] is _Y[GY=IRR] (regrid: 1 delta on Y at AVE)
+ Column  3: VAR[G=1 delta on Y at BIN] is _Y[GY=IRR] (regrid: 1 delta on Y at BIN)
+ Column  4: VAR[G=1 delta on Y at NBIN] is _Y[GY=IRR] (regrid: 1 delta on Y at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.178  1.150  2.000
+2   / 2:  2.000  1.545   ....  0.000
+3   / 3:  3.000  3.500   ....  0.000
+4   / 4:  4.000  3.980  3.500  1.000
+5   / 5:  5.000  4.838  4.850  2.000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _Y[gY=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _Y[GY=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
+             Y: 0.5 to 5.5
+ Column  1: DEST is _Y[GY=DCOARSE]
+ Column  2: VAR[G=1 delta on Y at AVE] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at AVE)
+ Column  3: VAR[G=1 delta on Y at BIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at BIN)
+ Column  4: VAR[G=1 delta on Y at NBIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.956  1.650  2.000
+2   / 2:  2.000  2.200   ....  0.000
+3   / 3:  3.000   ....   ....  0.000
+4   / 4:  4.000   ....   ....  0.000
+5   / 5:  5.000  5.000  5.000  1.000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GY=dcoarse]
+             Y: 0.5 to 5.5
+ Column  1: DEST is _Y[GY=DCOARSE]
+ Column  2: VAR[G=1 delta on Y] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
+          DEST    VAR
+1   / 1:  1.000   ....
+2   / 2:  2.000   ....
+3   / 3:  3.000   ....
+4   / 4:  4.000   ....
+5   / 5:  5.000  5.000
+ 
+go bn_bin_regrid.sub Z
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/Z=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/Z irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _Z[GZ=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _Z[GZ=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
+             Z: 0.5 to 5.5
+ Column  1: DEST is _Z[GZ=DCOARSE]
+ Column  2: VAR[G=1 delta on Z at AVE] is _Z[GZ=IRR] (regrid: 1 delta on Z at AVE)
+ Column  3: VAR[G=1 delta on Z at BIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at BIN)
+ Column  4: VAR[G=1 delta on Z at NBIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.178  1.150  2.000
+2   / 2:  2.000  1.545   ....  0.000
+3   / 3:  3.000  3.500   ....  0.000
+4   / 4:  4.000  3.980  3.500  1.000
+5   / 5:  5.000  4.838  4.850  2.000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _Z[gZ=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _Z[GZ=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
+             Z: 0.5 to 5.5
+ Column  1: DEST is _Z[GZ=DCOARSE]
+ Column  2: VAR[G=1 delta on Z at AVE] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at AVE)
+ Column  3: VAR[G=1 delta on Z at BIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at BIN)
+ Column  4: VAR[G=1 delta on Z at NBIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.956  1.650  2.000
+2   / 2:  2.000  2.200   ....  0.000
+3   / 3:  3.000   ....   ....  0.000
+4   / 4:  4.000   ....   ....  0.000
+5   / 5:  5.000  5.000  5.000  1.000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GZ=dcoarse]
+             Z: 0.5 to 5.5
+ Column  1: DEST is _Z[GZ=DCOARSE]
+ Column  2: VAR[G=1 delta on Z] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
+          DEST    VAR
+1   / 1:  1.000   ....
+2   / 2:  2.000   ....
+3   / 3:  3.000   ....
+4   / 4:  4.000   ....
+5   / 5:  5.000  5.000
+ 
+go bn_bin_regrid.sub T
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/T=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/T irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _T[GT=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+             T: 0.5 to 5.5
+ Column  1: DEST is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T at AVE] is _T[GT=IRR] (regrid: 1 delta on T at AVE)
+ Column  3: VAR[G=1 delta on T at BIN] is _T[GT=IRR] (regrid: 1 delta on T at BIN)
+ Column  4: VAR[G=1 delta on T at NBIN] is _T[GT=IRR] (regrid: 1 delta on T at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.178  1.150  2.000
+2   / 2:  2.000  1.545   ....  0.000
+3   / 3:  3.000  3.500   ....  0.000
+4   / 4:  4.000  3.980  3.500  1.000
+5   / 5:  5.000  4.838  4.850  2.000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _T[gT=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+             T: 0.5 to 5.5
+ Column  1: DEST is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T at AVE] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at AVE)
+ Column  3: VAR[G=1 delta on T at BIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at BIN)
+ Column  4: VAR[G=1 delta on T at NBIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.956  1.650  2.000
+2   / 2:  2.000  2.200   ....  0.000
+3   / 3:  3.000   ....   ....  0.000
+4   / 4:  4.000   ....   ....  0.000
+5   / 5:  5.000  5.000  5.000  1.000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GT=dcoarse]
+             T: 0.5 to 5.5
+ Column  1: DEST is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
+          DEST    VAR
+1   / 1:  1.000   ....
+2   / 2:  2.000   ....
+3   / 3:  3.000   ....
+4   / 4:  4.000   ....
+5   / 5:  5.000  5.000
+ 
+go bn_bin_regrid.sub E
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/E=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/E irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _E[GE=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+             E: 0.5 to 5.5
+ Column  1: DEST is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E at AVE] is _E[GE=IRR] (regrid: 1 delta on E at AVE)
+ Column  3: VAR[G=1 delta on E at BIN] is _E[GE=IRR] (regrid: 1 delta on E at BIN)
+ Column  4: VAR[G=1 delta on E at NBIN] is _E[GE=IRR] (regrid: 1 delta on E at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.178  1.150  2.000
+2   / 2:  2.000  1.545   ....  0.000
+3   / 3:  3.000  3.500   ....  0.000
+4   / 4:  4.000  3.980  3.500  1.000
+5   / 5:  5.000  4.838  4.850  2.000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _E[gE=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+             E: 0.5 to 5.5
+ Column  1: DEST is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E at AVE] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at AVE)
+ Column  3: VAR[G=1 delta on E at BIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at BIN)
+ Column  4: VAR[G=1 delta on E at NBIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.956  1.650  2.000
+2   / 2:  2.000  2.200   ....  0.000
+3   / 3:  3.000   ....   ....  0.000
+4   / 4:  4.000   ....   ....  0.000
+5   / 5:  5.000  5.000  5.000  1.000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GE=dcoarse]
+             E: 0.5 to 5.5
+ Column  1: DEST is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
+          DEST    VAR
+1   / 1:  1.000   ....
+2   / 2:  2.000   ....
+3   / 3:  3.000   ....
+4   / 4:  4.000   ....
+5   / 5:  5.000  5.000
+ 
+go bn_bin_regrid.sub F
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/F=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/F irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _F[GF=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+             F: 0.5 to 5.5
+ Column  1: DEST is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F at AVE] is _F[GF=IRR] (regrid: 1 delta on F at AVE)
+ Column  3: VAR[G=1 delta on F at BIN] is _F[GF=IRR] (regrid: 1 delta on F at BIN)
+ Column  4: VAR[G=1 delta on F at NBIN] is _F[GF=IRR] (regrid: 1 delta on F at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.178  1.150  2.000
+2   / 2:  2.000  1.545   ....  0.000
+3   / 3:  3.000  3.500   ....  0.000
+4   / 4:  4.000  3.980  3.500  1.000
+5   / 5:  5.000  4.838  4.850  2.000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _F[gF=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+             F: 0.5 to 5.5
+ Column  1: DEST is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F at AVE] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at AVE)
+ Column  3: VAR[G=1 delta on F at BIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at BIN)
+ Column  4: VAR[G=1 delta on F at NBIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.956  1.650  2.000
+2   / 2:  2.000  2.200   ....  0.000
+3   / 3:  3.000   ....   ....  0.000
+4   / 4:  4.000   ....   ....  0.000
+5   / 5:  5.000  5.000  5.000  1.000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GF=dcoarse]
+             F: 0.5 to 5.5
+ Column  1: DEST is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
+          DEST    VAR
+1   / 1:  1.000   ....
+2   / 2:  2.000   ....
+3   / 3:  3.000   ....
+4   / 4:  4.000   ....
+5   / 5:  5.000  5.000
+ 
+*** Running ferret script: bn697_bug_fixes.jnl
+! bn697_bug_fixes
+! test various fixes that went into version 6.97
+ 
+GO bn_reset
+cancel mode verify
+GO err696_only_inf_lev
+! Bug 2326: levels with only a value and (inf) or (-inf)
+! should show values less-equal or greater-equal to that level.
+ 
+use coads_climatology; set reg/l=1
+ 
+! The plots should be the same left to right; just a triangle key
+! on the right
+set view ul; shade/lev=(20)(50) sst
+set view ur; shade/lev=(20)(inf) sst
+set view ll; shade/lev=(-50)(20) sst
+set view lr; shade/lev=(-inf)(20) sst
+ 
+! Horizontal keys
+can view
+set view ul; fill/lev=(20)(50) sst
+set view ur; fill/lev=(20)(inf) sst
+set view ll; fill/lev=(-50)(20) sst
+set view lr; fill/lev=(-inf)(20) sst
+ 
+! silly degenerate case, two-sided inf's
+can view
+set view ul; shade/lev=(-inf)(22)(inf) sst
+set view ur; shade/key=horiz/lev=(-inf)(22)(inf) sst
+ 
+GO bn_reset
+cancel mode verify
+GO err696_plot_ax_ppl
+! err696_plot_ax_ppl.jnl
+! ticket 2327
+!
+! restore settings properly after a PLOT/axes=
+! if there is a ppl axis-setting command before next plot
+ 
+plot/vs/noax 0,0
+ set view upper
+ppl axlabp 0 -1
+plot/nolab/vs 0,0
+ 
+ set view lower
+ppl axlabp 0 -1
+plot/nolab/vs 0,0
+ 
+can view
+vector/i=1:40/j=1:30/nolab/noax  j-20+(i-i),i-20+(j-j)
+ 
+set view upper
+ppl axlabp 0 -1
+vector/i=1:40/j=1:30/nolab j-20+(i-i),i-20+(j-j)
+ 
+ set view lower
+ppl axlabp 0 -1
+vector/i=1:40/j=1:30/nolab j-20+(i-i),i-20+(j-j)
+ 
+can view
+let var2d = i+j
+ 
+shade/i=1:40/j=1:30/nolab/noax var2d
+ set view upper
+ppl axlabp 0 -1
+shade/i=1:40/j=1:30/nolab var2d
+ 
+ set view lower
+ppl axlabp 0 -1
+shade/i=1:40/j=1:30/nolab var2d
+ 
+can view
+ 
+contour/i=1:40/j=1:30/nolab/noax var2d
+ set view upper
+ppl axlabp 0 -1
+contour/i=1:40/j=1:30/nolab var2d
+ 
+ set view lower
+ppl axlabp 0 -1
+contour/i=1:40/j=1:30/nolab var2d
+ 
+can view
+ 
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+let ypts = x/10
+let xpts = cos(x/10)
+ 
+polygon/trans/i=1:100/nolab/noax xpts+xsqr, ypts+ysqr, x*x/10
+ 
+ set view upper
+ppl axlabp 0 -1
+polygon/trans/i=1:100/nolab  xpts+xsqr, ypts+ysqr, x*x/10
+ 
+ set view lower
+ppl axlabp 0 -1
+polygon/trans/i=1:100/nolab  xpts+xsqr, ypts+ysqr, x*x/10
+can view
+ 
+! restore axis settings after a plot/set with/axes=
+ 
+set view upper
+plot/i=1:100/axes=1,0,0,1/set/title="labels" i*cos(i/8)
+ppl xlab "a label"
+ppl labset, , , 0.08
+ppl ylab "a multi line y label<NL>here"
+ppl plot
+ 
+set view lower
+plot/i=1:199 i*cos(i/10)
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_ft_calendars
+! err696_ft_calendars.jnl
+! see ticket 2332: check for matching calendars when
+! there are T and F axes in a file.
+ 
+! If the T or F calnedar is specified, use it for both axes
+! e.g. reference time has a calendar, forecast time does not list a calendar.
+ 
+use ft_cal_one.nc
+sh dat
+     currently SET data sets:
+    1> ./ft_cal_one.nc  (default)
+ name     title                             I         J         K         L         M         N
+ TIMEVAR  GRIB forecast or observation ti  ...       ...       ...       1:2       ...       1:3
+ 
+ 
+! Intentional error: two time axes with different calendars
+set mode ignore
+use ft_cal_mixed.nc
+ 
+can mode ignore
+ 
+can data/all
+ 
+GO bn_reset
+cancel mode verify
+GO err696_centerlab_restore
+! err696_centerlab_restore
+! Ticket 2331.
+! When a plot is made with
+!   shade/SET/key=centerlab; ppl shade
+! Then the nextsubsequent plot still had the centered key labeling.
+ 
+ 
+use coads_climatology
+set view left
+shade/SET/l=1/key=centerlab sst
+ppl shade
+ 
+set view right
+shade/l=1 sst
+ 
+! ...although the next one does restore the default.
+shade/l=1 sst
+ 
+! Horizontal plots with the same behavior.
+cancel view
+set view upper
+shade/SET/l=1/key=centerlab,horiz sst
+ppl shade
+ 
+set view lower
+shade/l=1/key=horiz sst
+ 
+! FILL plots
+cancel view
+set view left
+fill/SET/l=1/key=centerlab sst
+ppl shade
+ 
+! This plot still had the labels centered
+set view right
+fill/l=1 sst
+ 
+! Ribbon plots
+cancel view
+set view left; plot/ribbon/vs/line/thick/key=cent/SET {1,2,3,4}, {1,2,3,4}, {1,2,3,4}
+ppl ribbon
+set view right; plot/ribbon/vs/line/thick  {1,2,3,4}, {1,2,3,4}, {1,2,3,4}
+ 
+! Polygon plots
+cancel view
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+ 
+let ypts = x/10
+let xpts = cos(x/10)
+ 
+set view upper
+polygon/trans/i=1:20/nolab/key=horiz,center/SET xpts+xsqr, ypts+ysqr, x*x/10
+ppl polygon
+set view lower
+polygon/trans/i=1:20/nolab/key=horiz  xpts+xsqr, ypts+ysqr, x*x/10
+ 
+GO bn_reset
+cancel mode verify
+GO err696_time_overlay
+! err696_time_overlay
+! bug 2334, first plot/over takes too long and the line is incorrect.
+ 
+def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=noleap tax_nlp
+def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=julian tax_jul
+sp date
+Fri Jun 17 15:04:31 PDT 2016
+set view upper
+plot t[gt=tax_nlp]
+plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
+sp date
+Fri Jun 17 15:04:31 PDT 2016
+ 
+sp date
+Fri Jun 17 15:04:31 PDT 2016
+set view lower
+plot t[gt=tax_jul]
+plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
+sp date
+Fri Jun 17 15:04:31 PDT 2016
+ 
+GO bn_reset
+cancel mode verify
+GO err696_save_noupcase
+! err696_save_noupcase
+! Ticket 2336: When UPCASE canceled an extra upcase axis
+!  was written to a file - only when user-defined axis.
+!
+! Note as part of this fix, if MODE UPCASE is canceled,
+! then it also works as if SAVE/KEEP_AXISNAMES was given.
+! If keeping the original names then also don't write the
+! Ferret-added additions, e.g. TIME1 if there was already
+! a time axis; or a subset addition.
+ 
+ 
+! Tell Ferret to write everything in the original case
+cancel mode upcase
+ 
+! Define some axes and variables
+define axis/t=1-jan-2001:31-dec-2001:1/unit=days tday
+define axis/x=10:150:10/units=degrees_east xax
+ 
+let tt = t[gt=tday]
+let var  = 0*tt + x[gx=xax]
+ 
+save/clobber/file=myfile.nc tt, var
+ 
+! An extra TDAY axis was written out
+sp ncdump -h myfile.nc
+netcdf myfile {
+dimensions:
+	tday = UNLIMITED ; // (365 currently)
+	xax = 15 ;
+variables:
+	double tday(tday) ;
+		tday:units = "days since 1901-01-15 00:00:00" ;
+		tday:axis = "T" ;
+		tday:calendar = "GREGORIAN" ;
+		tday:time_origin = "15-JAN-1901" ;
+		tday:standard_name = "time" ;
+	double tt(tday) ;
+		tt:missing_value = -1.e+34 ;
+		tt:_FillValue = -1.e+34 ;
+		tt:long_name = "T[GT=TDAY]" ;
+	double xax(xax) ;
+		xax:units = "degrees_east" ;
+		xax:point_spacing = "even" ;
+		xax:axis = "X" ;
+		xax:modulo = 360. ;
+		xax:standard_name = "longitude" ;
+	double var(tday, xax) ;
+		var:missing_value = -1.e+34 ;
+		var:_FillValue = -1.e+34 ;
+		var:long_name = "0*TT + X[GX=XAX]" ;
+
+// global attributes:
+		:history = "FERRET V7  17-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+set mode/last upcase
+ 
+GO bn_reset
+cancel mode verify
+GO err696_argument_blanks
+! err696_argument_blanks.jnl
+! Ticket 2343: quoted argument with a blank at the end.
+ 
+ 
+! argument with a blank at the end
+go err696_argument_blanks_sub "hello "
+! for bug2343
+ 
+say ($1)there($2%.%)
+ !-> MESSAGE/CONTINUE hello there.
+hello there.
+ 
+! Preserve multiple blanks at the end
+go err696_argument_blanks_sub "hello     "
+! for bug2343
+ 
+say ($1)there($2%.%)
+ !-> MESSAGE/CONTINUE hello     there.
+hello     there.
+ 
+! 2 arguments; one with a blank at the end, next with a blank at the start.
+! Note the blanks at the start of Arg 1 are not preserved.  The command is
+! translated to  MESSAGE/CONTINUE   Hi Hi there my friend
+! and the blanks after MESSAGE/CONTINUE are just treated as a delimiter.
+ 
+go err696_argument_blanks_sub "  Hi Hi "  " my friend"
+! for bug2343
+ 
+say ($1)there($2%.%)
+ !-> MESSAGE/CONTINUE   Hi Hi there my friend
+Hi Hi there my friend
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_annotate_numeric
+! err696_annotate_numeric
+! 1/7/2016
+! ticket 2350: a purely numeric string
+! didn't appear on the plot.
+ 
+use coads_climatology
+shade/l=1/nokey/pal=white sst
+ 
+! text including non-numeric has worked fine
+annotate/user/xpos=180/ypos=30 "30 with text"
+ 
+! numeric only, with and witbhout quotes
+ 
+annotate/user/xpos=180/ypos=20/halign=-1 "20"
+annotate/user/xpos=180/ypos=10/halign=-1 10
+ 
+! tests with /NOUSER
+annotate/nouser/xpos=1/ypos=2.5 40
+ 
+! strings or purely numeric, without quotes works ok
+annotate/nouser/xpos=1/ypos=2.0 1.3+7.89
+annotate/nouser/xpos=1/ypos=1.5 `1.3+7.89-154,prec=6`
+ !-> annotate/nouser/xpos=1/ypos=1.5 -144.81
+ 
+! commas, just write the whole thing
+annotate/nouser/xpos=1/ypos=1.0 "40,30,20"
+ 
+annotate/nouser/xpos=1/ypos=0.5 1,2,3,4,5
+ 
+GO bn_reset
+cancel mode verify
+GO err696_e_component_mem_crptn
+! canceling of an E aggregation dataset is leaving
+! corrupted variables in memory as seen by the variable names "%%"
+ 
+use ens1, ens2, ens3, ens4
+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
+    5> fourfiles  (default)  Ensemble aggregation
+ 
+list/i=3 sst[T=@ave]
+             VARIABLE : SST_IN (Deg C)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
+             LONGITUDE: 105W
+             TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
+            13N    15N    17N    19N    21N    23N    25N    27N    29N   
+             1      2      3      4      5      6      7      8      9
+ 1   / 1:   28.5   28.4   27.9   27.5   26.7   25.6   ....   ....   ....
+ 2   / 2:   85.5   85.3   83.7   82.4   80.2   76.7   ....   ....   ....
+ 3   / 3:   57.0   56.9   55.8   54.9   53.5   51.1   ....   ....   ....
+ 4   / 4:  114.1  113.8  111.6  109.8  106.9  102.2   ....   ....   ....
+ 
+show mem/all
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+all data in memory:
+ SST[D=fourfiles]                  YE    mr:15  blk1:1  nblk:1
+    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+                                                              AVE
+ SST[D=fourfiles]                  YTE   mr:12  blk1:2  nblk:1
+    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ 
+cancel data fourfiles
+show mem/all
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+all data in memory:
+ 
+exit
+ 
+GO bn_reset
+cancel mode verify
+GO err696_mem_err_report
+! err696_mem_err_report.jnl
+! 1/21/2016 *acm*
+! Ticket 2354: The error message shows the wrong number for memory needed.
+!
+! Try to load some data larger than the default amount of memory
+ 
+let memsize = ($ferret_memory)
+ !-> DEFINE VARIABLE memsize = 25.6
+set mem/siz=2
+ 
+ 
+def axis/x=1:360:1 xaxis
+def axis/y=1:180:1 yaxis
+def axis/z=1:20:1 zaxis
+define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
+ 
+let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
+sh grid bigvar
+    GRID (G004)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                  360 r   1                    360                 full
+ YAXIS     Y                  180 r   1                    180                 full
+ ZAXIS     Z                   20 r   1                    20                  full
+ LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
+ normal    E
+ normal    F
+ 
+ 
+set mode ignore
+load/l=1:5 bigvar
+ 
+! Previously the number Mwords shown was too low
+show sym fer_last_error
+FER_LAST_ERROR = "**ERROR: request exceeds memory setting: 13 Mwords were requested. "
+cancel mode ignore
+ 
+! Get the number Ferret says it needs
+let ms1 = `strrindex("($fer_last_error)", ":")`
+ !-> DEFINE VARIABLE ms1 = 40
+let ms2 = `strindex("($fer_last_error)", "Mword")`
+ !-> DEFINE VARIABLE ms2 = 45
+let siz = substring("($fer_last_error)", `ms1+1`, `ms2-ms1-1`)
+ !-> DEFINE VARIABLE siz = substring("**ERROR: request exceeds memory setting: 13 Mwords were requested. ", 41, 4)
+ 
+! Increase memory accordingly
+ 
+set mem/siz=`siz`
+ !-> set mem/siz= 13
+load/l=1:5 bigvar
+ 
+! restore default
+set mem/siz=`memsize`
+ !-> set mem/siz=25.6
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_multiple_slashes
+! err696_multiple_slashes.jnl
+! 1/25/2016 *acm*
+!
+! For ticket 2356
+! Change parsing to allow multiple slashes in a row.
+! simplifies DEFINE SYMBOL QUALIFIERS= kinds of definitions
+ 
+def sym qual /x=1:2
+ 
+set reg/($qual)
+ !-> set reg//x=1:2
+show region
+default region:
+        X=1:2
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+cancel region
+ 
+ 
+! Several qualifiers on a command
+set reg//x=1:2///y=4:7
+show region
+default region:
+        X=1:2
+        Y=4:7
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+cancel region
+ 
+! Qualifiers with a command argument
+use coads_climatology
+def sym plotqual = /pal=grayscale/line//key=cont
+def sym regqual = /x=300:360///y=-20:20/L=3
+ 
+fill/($regqual)($plotqual) sst
+ !-> CONTOUR/FILL//x=300:360///y=-20:20/L=3/pal=grayscale/line//key=cont sst
+ 
+! command lines with urls unchanged
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+   set data///format=cdf http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+   let//d=coads_sst myvar = 1
+   sh dat
+     currently SET data sets:
+    1> ./coads_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+    2> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      Sea Surface Temperature          1:180     1:90      ...       1:1680    ...       ...
+ ------------------------------
+ MYVAR[D=coads_sst] = 1
+ 
+   cancel data/all
+ENDIF
+ 
+! Other syntax examples taken from bn_syntax but with extra slashes
+ 
+! Repeat loop
+cancel region
+cancel data/all
+show region;repeat//l=1:2 (show data;sh reg);can reg;show reg
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+!-> REPEAT: L=1
+     currently SET data sets:
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        L=1
+        E/M is unspecified
+        F/N is unspecified
+!-> REPEAT: L=2
+     currently SET data sets:
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        L=2
+        E/M is unspecified
+        F/N is unspecified
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+ 
+! continuation lines
+define axis \ ! comment on the command
+//x=1:10:1 \  ! comment on the qualifier
+xax\          ! comment on the argument
+              ! this line is significant -- completes the command
+show axis xax; cancel axis xax  ! clean up
+ name       axis              # pts   start                end
+ XAX       X                   10 r   1                    10
+   Axis span (to cell edges) = 10
+ 
+! Allow extra slashes at the end of the command line
+set reg/x=1:2/; sho reg
+default region:
+        X=1:2
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+set reg/x=1:4//; sho reg
+default region:
+        X=1:4
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+ 
+can reg
+repeat/l=1:2 (set reg/x=1:4//)
+!-> REPEAT: L=1
+!-> REPEAT: L=2
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_2d_time_overlay
+! err696_2d_time_overlay.jnl
+! ticket 2360: 2-D time overlay plots have never worked.
+ 
+! two different time axes
+ 
+def ax/edge/t=1-jan-1979:1-jan-2016:1/unit=year/t0=1-jan-1979 tax1
+def ax/edge/t=1-jan-1988:1-jan-2010:1/unit=year/t0=1-jan-1988 tax2
+let t1 = t[gt=tax1]
+let t2 = t[gt=tax2]
+let yr1 = tax_year(t1,t1)
+let yr2 = tax_year(t2,t2)
+let f1 = yr1 + 0*z[gz=1:5:1]
+let f2 = yr2 + 0*z[gz=2:3:1]
+ 
+can view
+ 
+! a 1-D overlay works correctly
+set view ul
+plot/step=con yr1
+plot/step=con/ov yr2
+ 
+set view ll
+ 
+! 2-D overlay was mis-located
+shade/lev=12 f1
+shade/ov/pal=grayscale/lev f2
+ 
+ppl shaset reset
+set view ur
+ 
+! Check a vertical time axis
+let fx1 = yr1 + 0*x[gx=1:5:1]
+let fx2 = yr2 + 0*x[gx=2:3:1]
+shade/lev=12/title="X-T plot, vertical time axis" fx1
+shade/ov/pal=grayscale/lev fx2
+ 
+ 
+! Different time units
+set view lr
+def ax/edge/t=1-jan-1988:04-feb-2010:60/unit=day/t0=1-jan-1988 tax2
+ 
+shade/lev=12/title="Underlay units year, Overlay units days" f1
+shade/ov/pal=grayscale/lev f2
+ 
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_singlevec_over
+! err696_singlevec_over.jnl
+! Ticket 2365: overlay a single vector. If
+! /nolab is added it disappears.
+ 
+use gtbc011
+vector/k=1/l=1   u,v
+let xa = 200
+let ya = 10
+let ya=10
+define axis/unit=degrees_east/x/from_data xax=xa
+define axis/unit=degrees_north/y/from_data yax=ya
+define grid/x=xax/y=yax xyg
+let u1 = 10 + 0*(x[gx=xyg]+y[gy=xyg] )
+let v1 = 10 + 0*(x[gx=xyg]+y[gy=xyg] )
+! Now I can plot the vector
+vec/over/len=10 u1,v1
+ 
+! PPL_XSKIP is 1, the single vector
+show sym ppl_vec*skip
+PPL_VEC_XSKIP = "1"
+PPL_VEC_YSKIP = "1"
+ 
+! Try it with /nolab added
+vector/k=1/l=1   u,v
+ vec/over/len=10/nolab u1,v1
+ 
+! PPL_XSKIP should still be 1
+! (with the bug, it was 4 from the vector underlay plot)
+show sym ppl_vec*skip
+PPL_VEC_XSKIP = "1"
+PPL_VEC_YSKIP = "1"
+ 
+! As an aside, now return PPL_VECLEN for VECTOR/NOLABEL plots.
+! previously this wasnt done.
+ 
+use gtbc011
+vector/k=3/l=1/nolab  u,v
+show symbol ppl_veclen
+PPL_VECLEN = "  27.2"
+ 
+GO bn_reset
+cancel mode verify
+GO err696_return_type
+! err696_return_type
+! See ticket #2367
+! incorrect return type when a user var
+! uses an expression involving alternative string versions of
+! a numeric exernal function
+ 
+! this works, explicitly calling xcat_str
+let c = xcat_str({"e","f"},{"g","h"})
+let d = c
+list d
+             VARIABLE : C
+             SUBSET   : 4 points (X)
+ 1   / 1:"e"
+ 2   / 2:"f"
+ 3   / 3:"g"
+ 4   / 4:"h"
+ 
+! returned pointers not strings
+let a = xcat({"a","b"},{"c","d"})
+let b = a
+list b
+             VARIABLE : A
+             SUBSET   : 4 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"c"
+ 4   / 4:"d"
+ 
+! Make more levels of variables, mixing xcat_str and xcat.
+ 
+let p = xcat_str({"1","2"},{"3","4"})
+let q = p
+ 
+let r = xcat({"5","6"},{"7","8"})
+let s = r
+ 
+! previously returned a string/numeric data type mix-up err.
+let allcat = xcat(q,s)
+list allcat
+             VARIABLE : XCAT(Q,S)
+             SUBSET   : 8 points (X)
+ 1   / 1:"1"
+ 2   / 2:"2"
+ 3   / 3:"3"
+ 4   / 4:"4"
+ 5   / 5:"5"
+ 6   / 6:"6"
+ 7   / 7:"7"
+ 8   / 8:"8"
+ 
+GO bn_reset
+cancel mode verify
+GO err696_hovmuller_mod_fill
+! err696_hovmuller_mod_fill.jnl
+! 3/7/2016 ACM
+! Ticket 2374
+! A single color extending across the plot was missing
+ 
+use coads_slice.nc
+fill/lin/t=1-jan-0000:31-dec-0001/hlim=1-jan-0000:1-jan-0001/x=180/lev=8 sst
+ 
+ 
+!GO bn_reset!
+!GO err696_axname_noupcase
+ 
+go bn_reset
+cancel mode verify
+go err696_repeat_escapes.jnl
+! err696_repeat_escapes.jnl
+! Ticket 2376 - parsing error with escaped grave-accent syntax
+ 
+let a = "seq 1 3"
+sp echo \``a`\`
+ !-> sp echo `seq 1 3`
+1 2 3
+ 
+! the escapes were removed on parsing the initial
+! command rather than keeping them until individual
+! commands parsed within the loop
+repeat/i=1:2 (sp echo \``a`\`)
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+ 
+! nested repeats
+repeat/k=1:3 (rep/i=1:2 (sp echo \``a`\`))
+!-> REPEAT: K=1
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: K=2
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: K=3
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_red_keylab.jnl
+! err696_red_keylab.jnl
+! Ticket 2375: outline and labels of color key were
+! drawn in red on an overlay.
+ 
+use levitus_climatology
+contour/lev=(0) temp
+ 
+! Always label the color key in pen0
+fill/over/nolab/key/lev=v,2min temp
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_poly_over_label
+! err696_poly_over_label
+! Tiket 2396: incorrect label in the lower
+! left on a POLY/OVER with just 2 arguments.
+ 
+use levitus_3d_subset.nc
+let allmissing = 0/0 + temp
+shade/nolabel/j=1 allmissing
+ 
+! Previously this plot had an incorrect label of ALLMISSING
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}
+ppl list labels  ! showed allmissing for lab2 now says cnst
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  4.000E+00  3.000E+00 0.200    0  SYSTEM  @ASNo Valid Data
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 2 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @AScnst
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+shade/nolabel/j=1 allmissing
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}, 2
+ 
+ppl list labels  ! shows cnst for lab2
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  4.000E+00  3.000E+00 0.200    0  SYSTEM  @ASNo Valid Data
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 2 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @AScnst
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+shade/nolabel/j=1 allmissing
+let cvar = 2
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}, cvar
+ppl list labels  ! shows cvar for lab2
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  4.000E+00  3.000E+00 0.200    0  SYSTEM  @ASNo Valid Data
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 2 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASCVAR
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+! color var for 2 rectangles with multiple values
+shade/nolabel/j=1 allmissing
+let cvar = {2,3}
+polygon/ov {120.2,121,121,120.2,,120.2,121,121,120.2},{4000,4000,1000,1000,,800,800,200,200}, cvar
+ppl list labels  ! shows cvar for lab2
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1  4.000E+00  3.000E+00 0.200    0  SYSTEM  @ASNo Valid Data
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
+ LAB 2 -4.700E-01 -5.500E-01 0.080    0  SYSTEM  @ASCVAR
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+go bn_reset
+cancel mode verify
+go err696_def_ax_f
+! err696_def_ax_f.jnl
+! See ticket 2380
+! *acm* 4/2016
+ 
+! Defining F axis using /F=LO:HI are ok
+define axis/f=1-jan-1980:3-jan-1980:1/t0=1-jan-1980/unit=days f_ax
+list _f[gf=f_ax]
+             VARIABLE : _F
+                        axis F_AX
+             SUBSET   : 3 points (FORECAST)
+ 01-JAN-1980 00 / 1:  0.000
+ 02-JAN-1980 00 / 2:  1.000
+ 03-JAN-1980 00 / 3:  2.000
+define axis/f=1-jan-1980:3-jan-1980/np=3/t0=1-jan-1980/unit=days f_ax
+list _f[gf=f_ax]
+             VARIABLE : _F
+                        axis F_AX
+             SUBSET   : 3 points (FORECAST)
+ 01-JAN-1980 00 / 1:  0.000
+ 02-JAN-1980 00 / 2:  1.000
+ 03-JAN-1980 00 / 3:  2.000
+ 
+! But just /F  with a /T0 was putting the axis in the T direction
+! Previously listing _F resulted in an error
+define axis/f/t0=1-jan-1980/unit=days f_ax = {1,2,3}
+list _f[gf=f_ax]
+             VARIABLE : _F
+                        axis F_AX
+             SUBSET   : 3 points (FORECAST)
+ 02-JAN-1980 00 / 1:  1.000
+ 03-JAN-1980 00 / 2:  2.000
+ 04-JAN-1980 00 / 3:  3.000
+ 
+! This came from code allowing the DEFINE to leave off the /F or /T
+! If there's a T0, its an F axis. Still allow this; it becomes a T axis.
+define axis/t0=1-jan-1980/unit=days aax = {1,2,3}
+list _t[gt=aax]
+             VARIABLE : T
+                        axis AAX
+             SUBSET   : 3 points (TIME)
+ 02-JAN-1980 00 / 1:  1.000
+ 03-JAN-1980 00 / 2:  2.000
+ 04-JAN-1980 00 / 3:  3.000
+ 
+go bn_reset
+cancel mode verify
+go err696_mode_cal_f
+! err696_mode_cal_f.jnl
+! ticket 2399 MODE CALENDAR and F calendar axes
+! The calendar setting should apply to T and F axes
+ 
+show mode calendar
+      MODE            STATE        ARGUMENT
+      CALENDAR         SET         minutes
+ 
+def ax/edges/t=1-jan-2016:1-mar-2016:1/unit=day/t0=1-jan-2016 t_axis
+def ax/edges/f=1-jan-2016:1-mar-2016:1/unit=day/t0=1-jan-2016 f_axis
+let a = _t[gt=t_axis] * {1,2,3}
+let b = _f[gf=f_axis] * {1,2,3}
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "TIME : 01-JAN-2016 12:00"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "FORECAST : 01-JAN-2016 12:00"
+ 
+set mode calendar:days
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "TIME : 01-JAN-2016"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "FORECAST : 01-JAN-2016"
+ 
+set mode/last calendar
+cancel mode calendar
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "T (DAY) : 0.5"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "F (DAY) : 0.5"
+ 
+set mode/last calendar
+show mode calendar
+      MODE            STATE        ARGUMENT
+      CALENDAR         SET         minutes
+ 
+! If they are not calendar axes, it's all fine, just not
+! labeled with dates
+ 
+def ax/edges/t=1:40:1/unit=day t_axis
+def ax/edges/f=1:40:1/unit=day f_axis
+ 
+let a = _t[gt=t_axis] * {1,2,3}
+let b = _f[gf=f_axis] * {1,2,3}
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "T (DAY) : 1.5"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "F (DAY) : 1.5"
+ 
+go bn_reset
+cancel mode verify
+go err696_def_ax_edges
+! err696_def_ax_edges
+! See ticket 2400
+! Incorrect coordinates when using /EDGES
+! Also incorrectly marked axes as irregular
+ 
+let edges = x[gx=0:360:20]
+ 
+! Previuosly these axes were marked as irregular, but with correct coordinates
+def ax/edge/x xax = edges[i=1:17]; sh axis xax
+ name       axis              # pts   start                end
+ XAX       X                   16 r   10                   310
+   Axis span (to cell edges) = 320
+def ax/edge/x xax = x[gx=0:360:20]; sh axis xax
+ name       axis              # pts   start                end
+ XAX       X                   18 r   10                   350
+   Axis span (to cell edges) = 360
+ 
+! This axis incorrectly showed coordinates starting at x=20.
+! It was found to be regular but start pt incorrect
+def ax/edge/x xax = x[gx=20:320:20]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                   15 r   30                   310
+   Axis span (to cell edges) = 300
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 15 points (X)
+ 30    /  1:   30.0
+ 50    /  2:   50.0
+ 70    /  3:   70.0
+ 90    /  4:   90.0
+ 110   /  5:  110.0
+ 130   /  6:  130.0
+ 150   /  7:  150.0
+ 170   /  8:  170.0
+ 190   /  9:  190.0
+ 210   / 10:  210.0
+ 230   / 11:  230.0
+ 250   / 12:  250.0
+ 270   / 13:  270.0
+ 290   / 14:  290.0
+ 310   / 15:  310.0
+ 
+! This was previously irregular, with correct coordinates
+def ax/edge/x xax = x[gx=20:320:20]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                   15 r   30                   310
+   Axis span (to cell edges) = 300
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 15 points (X)
+ 30    /  1:   30.0
+ 50    /  2:   50.0
+ 70    /  3:   70.0
+ 90    /  4:   90.0
+ 110   /  5:  110.0
+ 130   /  6:  130.0
+ 150   /  7:  150.0
+ 170   /  8:  170.0
+ 190   /  9:  190.0
+ 210   / 10:  210.0
+ 230   / 11:  230.0
+ 250   / 12:  250.0
+ 270   / 13:  270.0
+ 290   / 14:  290.0
+ 310   / 15:  310.0
+ 
+! Actually irregular edge locations
+let edges = {0,10,20,30,60,90,150,200,280,360}
+def ax/edge/x xax = edges; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                    9 i   5                    320
+   Axis span (to cell edges) = 360
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 9 points (X)
+ 5     / 1:    5.0
+ 15    / 2:   15.0
+ 25    / 3:   25.0
+ 45    / 4:   45.0
+ 75    / 5:   75.0
+ 120   / 6:  120.0
+ 175   / 7:  175.0
+ 240   / 8:  240.0
+ 320   / 9:  320.0
+ 
+def ax/edge/x xax = edges[i=1:8]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                    7 i   5                    175
+   Axis span (to cell edges) = 200
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 7 points (X)
+ 5     / 1:    5.0
+ 15    / 2:   15.0
+ 25    / 3:   25.0
+ 45    / 4:   45.0
+ 75    / 5:   75.0
+ 120   / 6:  120.0
+ 175   / 7:  175.0
+ 
+! This one is regular
+def ax/edge/x xax = edges[i=1:4]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                    3 r   5                    25
+   Axis span (to cell edges) = 30
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 3 points (X)
+ 5    / 1:   5.00
+ 15   / 2:  15.00
+ 25   / 3:  25.00
+ 
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_write_no_dim
+! err696_write_no_dim.jnl
+! ticket 2241: save a subset of a variable whose grid
+! contains dimensions that are not coordinate variables
+ 
+use nodim
+sh dat
+     currently SET data sets:
+    1> ./nodim.nc  (default)
+ name     title                             I         J         K         L         M         N
+ EXPOCODE expocode                         ...       ...       ...       ...       1:1       ...
+ NUM_OBS  Number of observations           ...       ...       ...       ...       1:1       ...
+ TEMP     sea surface temperature          1:51      ...       ...       ...       ...       ...
+ 
+ 
+! previously this gave an error
+save/clobber/file=a.nc/i=30:35  expocode, num_obs, temp
+ 
+! file has a coordinate variable with the subset in the OBS dimension
+sp ncdump -c a.nc
+netcdf a {
+dimensions:
+	TRAJECTORY = 1 ;
+	string_length = 64 ;
+	OBS30_35 = 6 ;
+variables:
+	char EXPOCODE(TRAJECTORY, string_length) ;
+		EXPOCODE:long_name = "expocode" ;
+		EXPOCODE:history = "From nodim" ;
+	int NUM_OBS(TRAJECTORY) ;
+		NUM_OBS:missing_value = -99 ;
+		NUM_OBS:_FillValue = -99 ;
+		NUM_OBS:long_name = "Number of observations" ;
+		NUM_OBS:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
+	double OBS30_35(OBS30_35) ;
+		OBS30_35:point_spacing = "even" ;
+		OBS30_35:axis = "X" ;
+	double TEMP(OBS30_35) ;
+		TEMP:missing_value = -1.e+34 ;
+		TEMP:_FillValue = -1.e+34 ;
+		TEMP:units = "degrees C" ;
+		TEMP:long_name = "sea surface temperature" ;
+		TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
+
+// global attributes:
+		:history = "FERRET V7  17-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+data:
+
+ OBS30_35 = 30, 31, 32, 33, 34, 35 ;
+}
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_mod_sub_fln
+! err696_mod_sub_fln.jnl
+! Ticket 2366, @FLN on a modulo subspan axis
+! smears results across what should not be filled in.
+ 
+def ax/x=0:180:10/unit=degree_e xax
+let xx = x[gx=xax]
+ 
+let b = IF xx GE 50 OR xx EQ 20 THEN xx
+save/clob/file=a.nc b
+can var/all
+ 
+use a
+ 
+! Do not get data from across the modulo void point at 90W
+list/x=-180:720 b, b[x=@fln]
+             DATA SET: ./a.nc
+             LONGITUDE: 180E(-180) to 0E(720)
+ Column  1: B is IF XX GE 50 OR XX EQ 20 THEN XX
+ Column  2: B[X=@FLN:1] is IF XX GE 50 OR XX EQ 20 THEN XX (linear-filled by 1 pts on X)
+                  B     B
+180E    / -1:  180.0  180.0
+90W     /  0:   ....   ....
+0E      /  1:   ....   ....
+10E     /  2:   ....   ....
+20E     /  3:   20.0   20.0
+30E     /  4:   ....   30.0
+40E     /  5:   ....   40.0
+50E     /  6:   50.0   50.0
+60E     /  7:   60.0   60.0
+70E     /  8:   70.0   70.0
+80E     /  9:   80.0   80.0
+90E     / 10:   90.0   90.0
+100E    / 11:  100.0  100.0
+110E    / 12:  110.0  110.0
+120E    / 13:  120.0  120.0
+130E    / 14:  130.0  130.0
+140E    / 15:  140.0  140.0
+150E    / 16:  150.0  150.0
+160E    / 17:  160.0  160.0
+170E    / 18:  170.0  170.0
+180E    / 19:  180.0  180.0
+90W     / 20:   ....   ....
+0E(360) / 21:   ....   ....
+10E     / 22:   ....   ....
+20E     / 23:   20.0   20.0
+30E     / 24:   ....   30.0
+40E     / 25:   ....   40.0
+50E     / 26:   50.0   50.0
+60E     / 27:   60.0   60.0
+70E     / 28:   70.0   70.0
+80E     / 29:   80.0   80.0
+90E     / 30:   90.0   90.0
+100E    / 31:  100.0  100.0
+110E    / 32:  110.0  110.0
+120E    / 33:  120.0  120.0
+130E    / 34:  130.0  130.0
+140E    / 35:  140.0  140.0
+150E    / 36:  150.0  150.0
+160E    / 37:  160.0  160.0
+170E    / 38:  170.0  170.0
+180E    / 39:  180.0  180.0
+90W     / 40:   ....   ....
+0E(720) / 41:   ....   ....
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_subspan_transforms
+! err696_subspan_transforms.jnl
+! See ticket 2364.  Results previously
+! put results at the modulo void point.
+ 
+def ax/x=0:180:20/unit=degrees_e xaxis
+let a = x[gx=xaxis]
+save/clob/file=a.nc a
+can var a; can ax xaxis; use a.nc
+ list/x=0:720 a, a[x=@ddc]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@DDC] is X[GX=XAXIS] (centered derivative on X)
+                  A       A
+0E      /  1:    0.0       ....
+20E     /  2:   20.0  8.993E-06
+40E     /  3:   40.0  8.993E-06
+60E     /  4:   60.0  8.993E-06
+80E     /  5:   80.0  8.993E-06
+100E    /  6:  100.0  8.993E-06
+120E    /  7:  120.0  8.993E-06
+140E    /  8:  140.0  8.993E-06
+160E    /  9:  160.0  8.993E-06
+180E    / 10:  180.0       ....
+90W     / 11:   ....       ....
+0E(360) / 12:    0.0       ....
+20E     / 13:   20.0  8.993E-06
+40E     / 14:   40.0  8.993E-06
+60E     / 15:   60.0  8.993E-06
+80E     / 16:   80.0  8.993E-06
+100E    / 17:  100.0  8.993E-06
+120E    / 18:  120.0  8.993E-06
+140E    / 19:  140.0  8.993E-06
+160E    / 20:  160.0  8.993E-06
+180E    / 21:  180.0       ....
+90W     / 22:   ....       ....
+0E(720) / 23:    0.0       ....
+ list/x=0:720 a, a[x=@ddf]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@DDF] is X[GX=XAXIS] (forward derivative on X)
+                  A       A
+0E      /  1:    0.0  8.993E-06
+20E     /  2:   20.0  8.993E-06
+40E     /  3:   40.0  8.993E-06
+60E     /  4:   60.0  8.993E-06
+80E     /  5:   80.0  8.993E-06
+100E    /  6:  100.0  8.993E-06
+120E    /  7:  120.0  8.993E-06
+140E    /  8:  140.0  8.993E-06
+160E    /  9:  160.0  8.993E-06
+180E    / 10:  180.0       ....
+90W     / 11:   ....       ....
+0E(360) / 12:    0.0  8.993E-06
+20E     / 13:   20.0  8.993E-06
+40E     / 14:   40.0  8.993E-06
+60E     / 15:   60.0  8.993E-06
+80E     / 16:   80.0  8.993E-06
+100E    / 17:  100.0  8.993E-06
+120E    / 18:  120.0  8.993E-06
+140E    / 19:  140.0  8.993E-06
+160E    / 20:  160.0  8.993E-06
+180E    / 21:  180.0       ....
+90W     / 22:   ....       ....
+0E(720) / 23:    0.0  8.993E-06
+ list/x=0:720 a, a[x=@ddb]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@DDB] is X[GX=XAXIS] (backwards derivative on X)
+                  A       A
+0E      /  1:    0.0       ....
+20E     /  2:   20.0  8.993E-06
+40E     /  3:   40.0  8.993E-06
+60E     /  4:   60.0  8.993E-06
+80E     /  5:   80.0  8.993E-06
+100E    /  6:  100.0  8.993E-06
+120E    /  7:  120.0  8.993E-06
+140E    /  8:  140.0  8.993E-06
+160E    /  9:  160.0  8.993E-06
+180E    / 10:  180.0  8.993E-06
+90W     / 11:   ....       ....
+0E(360) / 12:    0.0       ....
+20E     / 13:   20.0  8.993E-06
+40E     / 14:   40.0  8.993E-06
+60E     / 15:   60.0  8.993E-06
+80E     / 16:   80.0  8.993E-06
+100E    / 17:  100.0  8.993E-06
+120E    / 18:  120.0  8.993E-06
+140E    / 19:  140.0  8.993E-06
+160E    / 20:  160.0  8.993E-06
+180E    / 21:  180.0  8.993E-06
+90W     / 22:   ....       ....
+0E(720) / 23:    0.0       ....
+ list/x=0:720 a, a[x=@shf]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SHF:1] is X[GX=XAXIS] (shifted by 1 pts on X)
+                  A     A
+0E      /  1:    0.0   20.0
+20E     /  2:   20.0   40.0
+40E     /  3:   40.0   60.0
+60E     /  4:   60.0   80.0
+80E     /  5:   80.0  100.0
+100E    /  6:  100.0  120.0
+120E    /  7:  120.0  140.0
+140E    /  8:  140.0  160.0
+160E    /  9:  160.0  180.0
+180E    / 10:  180.0   ....
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   20.0
+20E     / 13:   20.0   40.0
+40E     / 14:   40.0   60.0
+60E     / 15:   60.0   80.0
+80E     / 16:   80.0  100.0
+100E    / 17:  100.0  120.0
+120E    / 18:  120.0  140.0
+140E    / 19:  140.0  160.0
+160E    / 20:  160.0  180.0
+180E    / 21:  180.0   ....
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   20.0
+ list/x=0:720 a, a[x=@sbx]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SBX:3] is X[GX=XAXIS] (box smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   ....
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   40.0
+60E     /  4:   60.0   60.0
+80E     /  5:   80.0   80.0
+100E    /  6:  100.0  100.0
+120E    /  7:  120.0  120.0
+140E    /  8:  140.0  140.0
+160E    /  9:  160.0  160.0
+180E    / 10:  180.0   ....
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   ....
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   40.0
+60E     / 15:   60.0   60.0
+80E     / 16:   80.0   80.0
+100E    / 17:  100.0  100.0
+120E    / 18:  120.0  120.0
+140E    / 19:  140.0  140.0
+160E    / 20:  160.0  160.0
+180E    / 21:  180.0   ....
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   ....
+ list/x=0:720 a, a[x=@sbn]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SBN:3] is X[GX=XAXIS] (binomial smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   ....
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   40.0
+60E     /  4:   60.0   60.0
+80E     /  5:   80.0   80.0
+100E    /  6:  100.0  100.0
+120E    /  7:  120.0  120.0
+140E    /  8:  140.0  140.0
+160E    /  9:  160.0  160.0
+180E    / 10:  180.0   ....
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   ....
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   40.0
+60E     / 15:   60.0   60.0
+80E     / 16:   80.0   80.0
+100E    / 17:  100.0  100.0
+120E    / 18:  120.0  120.0
+140E    / 19:  140.0  140.0
+160E    / 20:  160.0  160.0
+180E    / 21:  180.0   ....
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   ....
+ list/x=0:720 a, a[x=@swl]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SWL:3] is X[GX=XAXIS] (Welch smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   ....
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   40.0
+60E     /  4:   60.0   60.0
+80E     /  5:   80.0   80.0
+100E    /  6:  100.0  100.0
+120E    /  7:  120.0  120.0
+140E    /  8:  140.0  140.0
+160E    /  9:  160.0  160.0
+180E    / 10:  180.0   ....
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   ....
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   40.0
+60E     / 15:   60.0   60.0
+80E     / 16:   80.0   80.0
+100E    / 17:  100.0  100.0
+120E    / 18:  120.0  120.0
+140E    / 19:  140.0  140.0
+160E    / 20:  160.0  160.0
+180E    / 21:  180.0   ....
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   ....
+ list/x=0:720 a, a[x=@shn]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SHN:3] is X[GX=XAXIS] (Hanning smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   ....
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   40.0
+60E     /  4:   60.0   60.0
+80E     /  5:   80.0   80.0
+100E    /  6:  100.0  100.0
+120E    /  7:  120.0  120.0
+140E    /  8:  140.0  140.0
+160E    /  9:  160.0  160.0
+180E    / 10:  180.0   ....
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   ....
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   40.0
+60E     / 15:   60.0   60.0
+80E     / 16:   80.0   80.0
+100E    / 17:  100.0  100.0
+120E    / 18:  120.0  120.0
+140E    / 19:  140.0  140.0
+160E    / 20:  160.0  160.0
+180E    / 21:  180.0   ....
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   ....
+ list/x=0:720 a, a[x=@spz]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SPZ:3] is X[GX=XAXIS] (Parzen smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   ....
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   40.0
+60E     /  4:   60.0   60.0
+80E     /  5:   80.0   80.0
+100E    /  6:  100.0  100.0
+120E    /  7:  120.0  120.0
+140E    /  8:  140.0  140.0
+160E    /  9:  160.0  160.0
+180E    / 10:  180.0   ....
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   ....
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   40.0
+60E     / 15:   60.0   60.0
+80E     / 16:   80.0   80.0
+100E    / 17:  100.0  100.0
+120E    / 18:  120.0  120.0
+140E    / 19:  140.0  140.0
+160E    / 20:  160.0  160.0
+180E    / 21:  180.0   ....
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   ....
+ list/x=0:720 a, a[x=@med]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@MED:3] is X[GX=XAXIS] (median smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   20.0
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   40.0
+60E     /  4:   60.0   60.0
+80E     /  5:   80.0   80.0
+100E    /  6:  100.0  100.0
+120E    /  7:  120.0  120.0
+140E    /  8:  140.0  140.0
+160E    /  9:  160.0  160.0
+180E    / 10:  180.0  180.0
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   20.0
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   40.0
+60E     / 15:   60.0   60.0
+80E     / 16:   80.0   80.0
+100E    / 17:  100.0  100.0
+120E    / 18:  120.0  120.0
+140E    / 19:  140.0  140.0
+160E    / 20:  160.0  160.0
+180E    / 21:  180.0  180.0
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   20.0
+ list/x=0:720 a, a[x=@smx]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SMX:3] is X[GX=XAXIS] (maximum smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   20.0
+20E     /  2:   20.0   40.0
+40E     /  3:   40.0   60.0
+60E     /  4:   60.0   80.0
+80E     /  5:   80.0  100.0
+100E    /  6:  100.0  120.0
+120E    /  7:  120.0  140.0
+140E    /  8:  140.0  160.0
+160E    /  9:  160.0  180.0
+180E    / 10:  180.0  180.0
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   20.0
+20E     / 13:   20.0   40.0
+40E     / 14:   40.0   60.0
+60E     / 15:   60.0   80.0
+80E     / 16:   80.0  100.0
+100E    / 17:  100.0  120.0
+120E    / 18:  120.0  140.0
+140E    / 19:  140.0  160.0
+160E    / 20:  160.0  180.0
+180E    / 21:  180.0  180.0
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   20.0
+ list/x=0:720 a, a[x=@smn]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SMN:3] is X[GX=XAXIS] (minimum smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0    0.0
+20E     /  2:   20.0    0.0
+40E     /  3:   40.0   20.0
+60E     /  4:   60.0   40.0
+80E     /  5:   80.0   60.0
+100E    /  6:  100.0   80.0
+120E    /  7:  120.0  100.0
+140E    /  8:  140.0  120.0
+160E    /  9:  160.0  140.0
+180E    / 10:  180.0  160.0
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0    0.0
+20E     / 13:   20.0    0.0
+40E     / 14:   40.0   20.0
+60E     / 15:   60.0   40.0
+80E     / 16:   80.0   60.0
+100E    / 17:  100.0   80.0
+120E    / 18:  120.0  100.0
+140E    / 19:  140.0  120.0
+160E    / 20:  160.0  140.0
+180E    / 21:  180.0  160.0
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0    0.0
+ list/x=0:720 a, a[x=@wgt]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@WGT] is X[GX=XAXIS] (weights for avg,int on X)
+                  A      A
+0E      /  1:    0.0  2223898.
+20E     /  2:   20.0  2223898.
+40E     /  3:   40.0  2223898.
+60E     /  4:   60.0  2223898.
+80E     /  5:   80.0  2223898.
+100E    /  6:  100.0  2223898.
+120E    /  7:  120.0  2223898.
+140E    /  8:  140.0  2223898.
+160E    /  9:  160.0  2223898.
+180E    / 10:  180.0  2223898.
+90W     / 11:   ....      ....
+0E(360) / 12:    0.0  2223898.
+20E     / 13:   20.0  2223898.
+40E     / 14:   40.0  2223898.
+60E     / 15:   60.0  2223898.
+80E     / 16:   80.0  2223898.
+100E    / 17:  100.0  2223898.
+120E    / 18:  120.0  2223898.
+140E    / 19:  140.0  2223898.
+160E    / 20:  160.0  2223898.
+180E    / 21:  180.0  2223898.
+90W     / 22:   ....      ....
+0E(720) / 23:    0.0  2223898.
+ list/x=0:720 a, a[x=@spx]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SPX:3] is X[GX=XAXIS] (box smooth w/missing by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   ....
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   40.0
+60E     /  4:   60.0   60.0
+80E     /  5:   80.0   80.0
+100E    /  6:  100.0  100.0
+120E    /  7:  120.0  120.0
+140E    /  8:  140.0  140.0
+160E    /  9:  160.0  160.0
+180E    / 10:  180.0  170.0
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   ....
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   40.0
+60E     / 15:   60.0   60.0
+80E     / 16:   80.0   80.0
+100E    / 17:  100.0  100.0
+120E    / 18:  120.0  120.0
+140E    / 19:  140.0  140.0
+160E    / 20:  160.0  160.0
+180E    / 21:  180.0  170.0
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   ....
+ 
+! Note that Running Sum and Indefinite Integral, Event mask
+! now restart in each branch.
+ list/x=0:720 a, a[x=@rsu]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@RSU] is X[GX=XAXIS] (running sum on X)
+                  A     A
+0E      /  1:    0.0    0.0
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   60.0
+60E     /  4:   60.0  120.0
+80E     /  5:   80.0  200.0
+100E    /  6:  100.0  300.0
+120E    /  7:  120.0  420.0
+140E    /  8:  140.0  560.0
+160E    /  9:  160.0  720.0
+180E    / 10:  180.0  900.0
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0    0.0
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   60.0
+60E     / 15:   60.0  120.0
+80E     / 16:   80.0  200.0
+100E    / 17:  100.0  300.0
+120E    / 18:  120.0  420.0
+140E    / 19:  140.0  560.0
+160E    / 20:  160.0  720.0
+180E    / 21:  180.0  900.0
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0    0.0
+ list/x=0:720 a, a[x=@iin]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@IIN] is X[GX=XAXIS] (indef. integ. on X)
+                  A       A
+0E      /  1:    0.0  0.000E+00
+20E     /  2:   20.0  4.448E+07
+40E     /  3:   40.0  1.334E+08
+60E     /  4:   60.0  2.669E+08
+80E     /  5:   80.0  4.448E+08
+100E    /  6:  100.0  6.672E+08
+120E    /  7:  120.0  9.340E+08
+140E    /  8:  140.0  1.245E+09
+160E    /  9:  160.0  1.601E+09
+180E    / 10:  180.0  2.002E+09
+90W     / 11:   ....       ....
+0E(360) / 12:    0.0  0.000E+00
+20E     / 13:   20.0  4.448E+07
+40E     / 14:   40.0  1.334E+08
+60E     / 15:   60.0  2.669E+08
+80E     / 16:   80.0  4.448E+08
+100E    / 17:  100.0  6.672E+08
+120E    / 18:  120.0  9.340E+08
+140E    / 19:  140.0  1.245E+09
+160E    / 20:  160.0  1.601E+09
+180E    / 21:  180.0  2.002E+09
+90W     / 22:   ....       ....
+0E(720) / 23:    0.0  0.000E+00
+ list/x=0:720 a, a[x=@evnt:80]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@EVN:80] is X[GX=XAXIS] (event mask at 80 on X)
+                  A     A
+0E      /  1:    0.0  0.000
+20E     /  2:   20.0  0.000
+40E     /  3:   40.0  0.000
+60E     /  4:   60.0  0.000
+80E     /  5:   80.0  1.000
+100E    /  6:  100.0  1.000
+120E    /  7:  120.0  1.000
+140E    /  8:  140.0  1.000
+160E    /  9:  160.0  1.000
+180E    / 10:  180.0  1.000
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0  0.000
+20E     / 13:   20.0  0.000
+40E     / 14:   40.0  0.000
+60E     / 15:   60.0  0.000
+80E     / 16:   80.0  1.000
+100E    / 17:  100.0  1.000
+120E    / 18:  120.0  1.000
+140E    / 19:  140.0  1.000
+160E    / 20:  160.0  1.000
+180E    / 21:  180.0  1.000
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0  0.000
+ 
+ 
+! Transforms that deal with gaps
+can dat/all
+def ax/x=0:180:10/unit=degrees_e xaxis
+let a = if x[gx=xaxis] gt 40 and x[gx=xaxis] le 150 then x[gx=xaxis]
+save/clob/file=a.nc a
+can var a; can ax xaxis; use a.nc
+ list/x=0:720 a, a[x=@fav]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@FAV:3] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (ave-filled by 3 pts on X)
+                  A     A
+0E      /  1:   ....   ....
+10E     /  2:   ....   ....
+20E     /  3:   ....   ....
+30E     /  4:   ....   ....
+40E     /  5:   ....   50.0
+50E     /  6:   50.0   50.0
+60E     /  7:   60.0   60.0
+70E     /  8:   70.0   70.0
+80E     /  9:   80.0   80.0
+90E     / 10:   90.0   90.0
+100E    / 11:  100.0  100.0
+110E    / 12:  110.0  110.0
+120E    / 13:  120.0  120.0
+130E    / 14:  130.0  130.0
+140E    / 15:  140.0  140.0
+150E    / 16:  150.0  150.0
+160E    / 17:   ....  150.0
+170E    / 18:   ....   ....
+180E    / 19:   ....   ....
+90W     / 20:   ....   ....
+0E(360) / 21:   ....   ....
+10E     / 22:   ....   ....
+20E     / 23:   ....   ....
+30E     / 24:   ....   ....
+40E     / 25:   ....   50.0
+50E     / 26:   50.0   50.0
+60E     / 27:   60.0   60.0
+70E     / 28:   70.0   70.0
+80E     / 29:   80.0   80.0
+90E     / 30:   90.0   90.0
+100E    / 31:  100.0  100.0
+110E    / 32:  110.0  110.0
+120E    / 33:  120.0  120.0
+130E    / 34:  130.0  130.0
+140E    / 35:  140.0  140.0
+150E    / 36:  150.0  150.0
+160E    / 37:   ....  150.0
+170E    / 38:   ....   ....
+180E    / 39:   ....   ....
+90W     / 40:   ....   ....
+0E(720) / 41:   ....   ....
+ list/x=0:720 a, a[x=@fnr]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@FNR:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (nearest-filled by 1 pts on X)
+                  A     A
+0E      /  1:   ....   50.0
+10E     /  2:   ....   50.0
+20E     /  3:   ....   50.0
+30E     /  4:   ....   50.0
+40E     /  5:   ....   50.0
+50E     /  6:   50.0   50.0
+60E     /  7:   60.0   60.0
+70E     /  8:   70.0   70.0
+80E     /  9:   80.0   80.0
+90E     / 10:   90.0   90.0
+100E    / 11:  100.0  100.0
+110E    / 12:  110.0  110.0
+120E    / 13:  120.0  120.0
+130E    / 14:  130.0  130.0
+140E    / 15:  140.0  140.0
+150E    / 16:  150.0  150.0
+160E    / 17:   ....  150.0
+170E    / 18:   ....  150.0
+180E    / 19:   ....  150.0
+90W     / 20:   ....   ....
+0E(360) / 21:   ....   50.0
+10E     / 22:   ....   50.0
+20E     / 23:   ....   50.0
+30E     / 24:   ....   50.0
+40E     / 25:   ....   50.0
+50E     / 26:   50.0   50.0
+60E     / 27:   60.0   60.0
+70E     / 28:   70.0   70.0
+80E     / 29:   80.0   80.0
+90E     / 30:   90.0   90.0
+100E    / 31:  100.0  100.0
+110E    / 32:  110.0  110.0
+120E    / 33:  120.0  120.0
+130E    / 34:  130.0  130.0
+140E    / 35:  140.0  140.0
+150E    / 36:  150.0  150.0
+160E    / 37:   ....  150.0
+170E    / 38:   ....  150.0
+180E    / 39:   ....  150.0
+90W     / 40:   ....   ....
+0E(720) / 41:   ....   50.0
+ list/x=0:720 a, a[x=@cia]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CIA:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest index above on X)
+                  A     A
+0E      /  1:   ....  5.000
+10E     /  2:   ....  4.000
+20E     /  3:   ....  3.000
+30E     /  4:   ....  2.000
+40E     /  5:   ....  1.000
+50E     /  6:   50.0  0.000
+60E     /  7:   60.0  0.000
+70E     /  8:   70.0  0.000
+80E     /  9:   80.0  0.000
+90E     / 10:   90.0  0.000
+100E    / 11:  100.0  0.000
+110E    / 12:  110.0  0.000
+120E    / 13:  120.0  0.000
+130E    / 14:  130.0  0.000
+140E    / 15:  140.0  0.000
+150E    / 16:  150.0  0.000
+160E    / 17:   ....   ....
+170E    / 18:   ....   ....
+180E    / 19:   ....   ....
+90W     / 20:   ....   ....
+0E(360) / 21:   ....  5.000
+10E     / 22:   ....  4.000
+20E     / 23:   ....  3.000
+30E     / 24:   ....  2.000
+40E     / 25:   ....  1.000
+50E     / 26:   50.0  0.000
+60E     / 27:   60.0  0.000
+70E     / 28:   70.0  0.000
+80E     / 29:   80.0  0.000
+90E     / 30:   90.0  0.000
+100E    / 31:  100.0  0.000
+110E    / 32:  110.0  0.000
+120E    / 33:  120.0  0.000
+130E    / 34:  130.0  0.000
+140E    / 35:  140.0  0.000
+150E    / 36:  150.0  0.000
+160E    / 37:   ....   ....
+170E    / 38:   ....   ....
+180E    / 39:   ....   ....
+90W     / 40:   ....   ....
+0E(720) / 41:   ....  5.000
+ list/x=0:720 a, a[x=@cib]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CIB:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest index below on X)
+                  A     A
+0E      /  1:   ....   ....
+10E     /  2:   ....   ....
+20E     /  3:   ....   ....
+30E     /  4:   ....   ....
+40E     /  5:   ....   ....
+50E     /  6:   50.0  0.000
+60E     /  7:   60.0  0.000
+70E     /  8:   70.0  0.000
+80E     /  9:   80.0  0.000
+90E     / 10:   90.0  0.000
+100E    / 11:  100.0  0.000
+110E    / 12:  110.0  0.000
+120E    / 13:  120.0  0.000
+130E    / 14:  130.0  0.000
+140E    / 15:  140.0  0.000
+150E    / 16:  150.0  0.000
+160E    / 17:   ....  1.000
+170E    / 18:   ....  2.000
+180E    / 19:   ....  3.000
+90W     / 20:   ....   ....
+0E(360) / 21:   ....   ....
+10E     / 22:   ....   ....
+20E     / 23:   ....   ....
+30E     / 24:   ....   ....
+40E     / 25:   ....   ....
+50E     / 26:   50.0  0.000
+60E     / 27:   60.0  0.000
+70E     / 28:   70.0  0.000
+80E     / 29:   80.0  0.000
+90E     / 30:   90.0  0.000
+100E    / 31:  100.0  0.000
+110E    / 32:  110.0  0.000
+120E    / 33:  120.0  0.000
+130E    / 34:  130.0  0.000
+140E    / 35:  140.0  0.000
+150E    / 36:  150.0  0.000
+160E    / 37:   ....  1.000
+170E    / 38:   ....  2.000
+180E    / 39:   ....  3.000
+90W     / 40:   ....   ....
+0E(720) / 41:   ....   ....
+ list/x=0:720 a, a[x=@cda]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CDA:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest dist above on X)
+                  A     A
+0E      /  1:   ....  50.00
+10E     /  2:   ....  40.00
+20E     /  3:   ....  30.00
+30E     /  4:   ....  20.00
+40E     /  5:   ....  10.00
+50E     /  6:   50.0   0.00
+60E     /  7:   60.0   0.00
+70E     /  8:   70.0   0.00
+80E     /  9:   80.0   0.00
+90E     / 10:   90.0   0.00
+100E    / 11:  100.0   0.00
+110E    / 12:  110.0   0.00
+120E    / 13:  120.0   0.00
+130E    / 14:  130.0   0.00
+140E    / 15:  140.0   0.00
+150E    / 16:  150.0   0.00
+160E    / 17:   ....   ....
+170E    / 18:   ....   ....
+180E    / 19:   ....   ....
+90W     / 20:   ....   ....
+0E(360) / 21:   ....  50.00
+10E     / 22:   ....  40.00
+20E     / 23:   ....  30.00
+30E     / 24:   ....  20.00
+40E     / 25:   ....  10.00
+50E     / 26:   50.0   0.00
+60E     / 27:   60.0   0.00
+70E     / 28:   70.0   0.00
+80E     / 29:   80.0   0.00
+90E     / 30:   90.0   0.00
+100E    / 31:  100.0   0.00
+110E    / 32:  110.0   0.00
+120E    / 33:  120.0   0.00
+130E    / 34:  130.0   0.00
+140E    / 35:  140.0   0.00
+150E    / 36:  150.0   0.00
+160E    / 37:   ....   ....
+170E    / 38:   ....   ....
+180E    / 39:   ....   ....
+90W     / 40:   ....   ....
+0E(720) / 41:   ....  50.00
+ list/x=0:720 a, a[x=@cdb]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CDB:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest dist below on X)
+                  A     A
+0E      /  1:   ....   ....
+10E     /  2:   ....   ....
+20E     /  3:   ....   ....
+30E     /  4:   ....   ....
+40E     /  5:   ....   ....
+50E     /  6:   50.0   0.00
+60E     /  7:   60.0   0.00
+70E     /  8:   70.0   0.00
+80E     /  9:   80.0   0.00
+90E     / 10:   90.0   0.00
+100E    / 11:  100.0   0.00
+110E    / 12:  110.0   0.00
+120E    / 13:  120.0   0.00
+130E    / 14:  130.0   0.00
+140E    / 15:  140.0   0.00
+150E    / 16:  150.0   0.00
+160E    / 17:   ....  10.00
+170E    / 18:   ....  20.00
+180E    / 19:   ....  30.00
+90W     / 20:   ....   ....
+0E(360) / 21:   ....   ....
+10E     / 22:   ....   ....
+20E     / 23:   ....   ....
+30E     / 24:   ....   ....
+40E     / 25:   ....   ....
+50E     / 26:   50.0   0.00
+60E     / 27:   60.0   0.00
+70E     / 28:   70.0   0.00
+80E     / 29:   80.0   0.00
+90E     / 30:   90.0   0.00
+100E    / 31:  100.0   0.00
+110E    / 32:  110.0   0.00
+120E    / 33:  120.0   0.00
+130E    / 34:  130.0   0.00
+140E    / 35:  140.0   0.00
+150E    / 36:  150.0   0.00
+160E    / 37:   ....  10.00
+170E    / 38:   ....  20.00
+180E    / 39:   ....  30.00
+90W     / 40:   ....   ....
+0E(720) / 41:   ....   ....
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_subspan_mod_in_expr
+! err696_subspan_mod_in_expr.jnl
+! ticket 1845: a subspan modulo due to context info buried
+! in a multi-layer expression isn't applied when setting
+! the time axis limits for the plot.
+! *acm* 5/2016
+ 
+use bug1845.nc
+set v upper
+shade/x=137:146 salinity[l=1] -  salinity[l=2]
+sh sym xaxis_m*
+XAXIS_MIN = "137.000000"
+XAXIS_MAX = "145.345261"
+ 
+ 
+! When the region information is embedded a couple levels down inside
+! the expressions - in the square brackets, and then an expression involving
+! subtraction - the region isn't treated correctly, and the upper limit is
+! the modulo void point.
+ 
+! Previously XAXIS_MAX was 496.4, the x axis too long, and most of the plot was blank
+ 
+set v lower
+shade salinity[x=137:146,T="28-Mar-2011 00:00"] - salinity[x=137:146,T="28-Mar-2011 03:00"]
+sh sym xaxis_m*
+XAXIS_MIN = "136.443619"
+XAXIS_MAX = "145.345261"
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_shade_subspan_clim
+! err696_shade_subspan_clim
+! See ticket 2404
+ 
+def ax/edges/t/unit="day"/t0=1-jan-0001/cal=gregorian/modulo=365.25 \
+tax = {31, 59.2425, 90.2425, 120.2425, 151.2425, 181.2425, 212.2425}
+let a = t[gt=tax]
+save/clob/file=a.nc a
+can var a
+can axis tax
+use a.nc
+can view
+ 
+! The top-left SHADE plot looks fine.
+set view ul; shade a*x[gx=0:10:1]
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "31.0000000"
+YAXIS_MAX = "212.242500"
+ 
+! But the top-right SHADE plot was all messed up; it shifts the data
+! later by a full month, and stretches the last (shifted) cell all
+! the way to the upper limit of the plot domain
+ 
+set view ur; shade/t=1-jan-0001:1-jan-0002 a*x[gx=0:10:1]
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "31.0000000"
+YAXIS_MAX = "212.242500"
+ 
+! In the bottom-right line plot, the actual plotted data look ok.
+! But the plot limits extend all the way from 1-JUL-0000 to 1-MAR-0002,
+! rather than being shrink-wrapped around the data.
+ 
+set view lr; plot/step=con/t=1-jan-0001:1-jan-0002 a
+ 
+sh sym xaxis*
+XAXIS_REVERSED = "0"
+XAXIS_MIN = "31.0000000"
+XAXIS_MAX = "212.242500"
+ 
+go bn_reset
+cancel mode verify
+! go err696_subspan_mod_strides  ! do this test in bn_gif
+ 
+go bn_reset
+cancel mode verify
+go err696_def_att
+! err696_def_att.jnl
+! tickets 2415, 2416
+! data type for defined axes
+ 
+use coads_climatology
+ 
+! previously the values were corrupted when defining numeric
+! attributes on a coordinate variable
+define att/output (`sst,return=xaxis`).new2 = {1,3,6}
+ !-> define att/output (COADSX).new2 = {1,3,6}
+save/clobber/file=a.nc sst
+sp ncdump a.nc | grep -i coadsx
+	COADSX = 180 ;
+	double COADSX(COADSX) ;
+		COADSX:units = "degrees_east" ;
+		COADSX:modulo = " " ;
+		COADSX:point_spacing = "even" ;
+		COADSX:new2 = 1.f, 3.f, 6.f ;
+		COADSX:axis = "X" ;
+		COADSX:standard_name = "longitude" ;
+	float SST(TIME, COADSY, COADSX) ;
+ COADSX = 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 
+ 
+can dat/all
+use coads_climatology
+ 
+! previously could only specify /TYPE=float or /TYPE=string
+ 
+! default types from the expression
+define att/output sst.newch = "A string"
+define att/output sst.newch = 158.12
+ 
+define att/output/type=byt sst.abyte = 5
+define att/output/type=int sst.aint = {-5,-12,-1556,0,1}
+define att/output/type=string sst.str_from_num = 978.43
+define att/output/type=double sst.dbint = 123.45678901
+ 
+save/clobber/file=a.nc sst
+sp ncdump a.nc | grep -i sst
+	float SST(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" ;
+		SST:newch = 158.12f ;
+		SST:abyte = 5b ;
+		SST:aint = -5, -12, -1556, 0, 1 ;
+		SST:str_from_num = "978.43" ;
+		SST:dbint = 123.45678901 ;
+ SST =
+ 
+go bn_reset
+cancel mode verify
+go err696_return_prec
+! err696_return_prec.jnl
+! ACM 5/16 See ticket 2389.
+! For grave-accent returns, adjust the formatting so that `var,p=2` really
+! means 2 digits, and returning an exponential rather than a long integer
+! with lots of zero's.
+ 
+! Both of these as exponentials. Prev. the second switched to an integer.
+say `1.55551e8,p=2`
+ !-> MESSAGE/CONTINUE 1.6E+08
+1.6E+08
+say `1.55551e7,p=2`
+ !-> MESSAGE/CONTINUE 1.6E+07
+1.6E+07
+ 
+! Return only as many digits as requested
+ 
+say `1.555555551e-9,p=1`
+ !-> MESSAGE/CONTINUE  2.E-09
+2.E-09
+say `1.555555551e-9,p=2`
+ !-> MESSAGE/CONTINUE   1.6E-09
+1.6E-09
+say `1.555555551e-9,p=3`
+ !-> MESSAGE/CONTINUE    1.56E-09
+1.56E-09
+ 
+say `1.555555551e-9,p=5`
+ !-> MESSAGE/CONTINUE      1.5556E-09
+1.5556E-09
+say `1.555555551e-9,p=7`
+ !-> MESSAGE/CONTINUE       1.555556E-09
+1.555556E-09
+say `1.555555551e-9,p=10`
+ !-> MESSAGE/CONTINUE    1.555555551E-09
+1.555555551E-09
+ 
+! For large numbers, return an fixed-point value only when the number
+! of digits is at least the magnitude of the value
+ 
+say `1.55551e8,p=2`
+ !-> MESSAGE/CONTINUE 1.6E+08
+1.6E+08
+say `1.55551e8,p=3`
+ !-> MESSAGE/CONTINUE 1.56E+08
+1.56E+08
+say `1.55551e8,p=5`
+ !-> MESSAGE/CONTINUE 1.5555E+08
+1.5555E+08
+say `1.55551e8,p=9`
+ !-> MESSAGE/CONTINUE 155551000
+155551000
+say `1.55551e8,p=10`
+ !-> MESSAGE/CONTINUE 155551000
+155551000
+ 
+! Previously these returned fixed-point numbers with trailing zero's
+! after the decimal point. These are removed.
+say `1.55555551e8,p=14`
+ !-> MESSAGE/CONTINUE 155555551
+155555551
+say `1.555555001e8,p=14`
+ !-> MESSAGE/CONTINUE   155555500.1
+155555500.1
+ 
+ 
+ 
+ 
+go bn_reset
+cancel mode verify
+go err686_show_xml_letd
+! ! bn_show_xml_letd
+! Testing SHOW DATA/VAR/XML with a let/D variable
+! Ticket 2441
+ 
+use coads_climatology.cdf
+use gtbc011.cdf
+let/d=1 u2 = u[d=2]
+let/d=1 v2 = v[d=2]
+let/d=1 w2 = w[d=2]
+let/d=1 salt2 = salt[d=2]
+sh dat 1
+     currently SET data sets:
+    1> ./coads_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ ------------------------------
+ SALT2[D=coads_climatology] = SALT[D=2]
+ W2[D=coads_climatology] = W[D=2]
+ V2[D=coads_climatology] = V[D=2]
+ U2[D=coads_climatology] = U[D=2]
+ 
+ 
+sh dat/var/xml/outfile=out.xml/clobber 1
+ 
+! Showed w2 twice but missed u2.
+sp grep "var name" out.xml
+<var name="SST">
+<var name="salt2">
+<var name="w2">
+<var name="v2">
+<var name="u2">
+*** Running ferret script: bn_aggregate_t.jnl
+! bn_aggregate_t.jnl
+! 9/12/2015 *sh* tweak to put all test files into "tmp" subdirectory
+! 1/2016 *sh* added implicit naming of aggregation from script filename
+! 2/2016      and auto-sorting of member files
+ 
+spawn "mkdir -p tmp"     ! tmp directory t store files
+ 
+! *** create test files for T aggregation ***
+ 
+! --- files with regularly-spaced time points ---
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+ 
+! also define a time intependent field to be saved as the second variable
+! but only in the first data set
+let mymap = I[x=0E:0E:5]+ 10*J[Y=80s:80n:5]
+ 
+save/clobber/file="tmp/tagg_reg_1.nc" myvar[l=1:10], mymap
+save/clobber/file="tmp/tagg_reg_2.nc" myvar[l=11:20]
+save/clobber/file="tmp/tagg_reg_3.nc" myvar[l=21:30]
+save/clobber/file="tmp/tagg_reg_4.nc" myvar[l=31:40]
+save/clobber/file="tmp/tagg_reg_5.nc" myvar[l=41:50]
+save/clobber/file="tmp/tagg_reg_6.nc" myvar[l=51:60]
+save/clobber/file="tmp/tagg_reg_7.nc" myvar[l=61:70]
+save/clobber/file="tmp/tagg_reg_8.nc" myvar[l=71:80]
+save/clobber/file="tmp/tagg_reg_9.nc" myvar[l=81:90]
+save/clobber/file="tmp/tagg_reg_10.nc" myvar[l=91:100]
+ 
+! save a duplicate of the first file
+save/clobber/file="tmp/tagg_reg_1_duplicate.nc" myvar[l=1:10], mymap
+ 
+! save a file with no time-dependent variables
+save/clobber/file="tmp/tagg_reg_no_T.nc"  mymap
+ 
+! make a single file that is "too long": 15 time steps instead of 10
+! so that when used in a time series it creates reverse-ordered points
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+save/clobber/file="tmp/tagg_reg_2_overlarge.nc" myvar[l=11:25]
+cancel axis tday
+ 
+! --- files with irregularly-spaced time points ---
+define axis/T0=1-jan-1980/unit=days tday_ir = L[l=1:200]^1.01
+ 
+let myvar = SIN(T[gt=tday_ir]/10) + L[gt=tday_ir]/10
+!plot myvar[l=1:100]
+ 
+save/clobber/file="tmp/tagg_irreg_1.nc" myvar[l=1:10]
+save/clobber/file="tmp/tagg_irreg_2.nc" myvar[l=11:20]
+save/clobber/file="tmp/tagg_irreg_3.nc" myvar[l=21:30]
+save/clobber/file="tmp/tagg_irreg_4.nc" myvar[l=31:40]
+save/clobber/file="tmp/tagg_irreg_5.nc" myvar[l=41:50]
+save/clobber/file="tmp/tagg_irreg_6.nc" myvar[l=51:60]
+save/clobber/file="tmp/tagg_irreg_7.nc" myvar[l=61:70]
+save/clobber/file="tmp/tagg_irreg_8.nc" myvar[l=71:80]
+save/clobber/file="tmp/tagg_irreg_9.nc" myvar[l=81:90]
+save/clobber/file="tmp/tagg_irreg_10.nc" myvar[l=91:100]
+ 
+! create a regular time axis (lacking cell bounds) in the midst of the sequence
+define axis/T0=1-jan-1980/unit=days tday_ir = L[l=11:20]
+save/clobber/file="tmp/tagg_irreg_2_reg.nc" myvar
+cancel axis tday_ir
+ 
+ 
+! --- files in which the T0 origin varies ---
+! create a sequence of files with differing T0 dates, but the very same
+! timestep values (1, 2, 3, 4)
+ 
+let tt = t[gt=tday_tvar]
+ 
+repeat/i=1:5 (\
+define symbol file `i`;\
+define symbol start_day `(i-1)*4+1`;\
+define axis/T0=($start_day)-jan-1980/unit=days tday_Tvar = L[l=1:4];\
+let myvar0 = TAX_JDAY(L[l=1:4], tt);\
+let myvar = myvar0[gt=tday_Tvar at asn];\
+save/clobber/file="tmp/tagg_T0varying_($file).nc" myvar[l=1:4])
+ !-> repeat/i=1:5 (define symbol file `i`;define symbol start_day `(i-1)*4+1`;define axis/T0=($start_day)-jan-1980/unit=days tday_Tvar = L[l=1:4];let myvar0 = TAX_JDAY(L[l=1:4], tt);let myvar = myvar0[gt=tday_Tvar at asn];save/clobber/file="tmp/tagg_T0varying_($file).nc" myvar[l=1:4])
+!-> REPEAT: I=1
+ !-> define symbol file 1
+ !-> define symbol start_day 1
+ !-> define axis/T0=1-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_1.nc" myvar[l=1:4]
+!-> REPEAT: I=2
+ !-> define symbol file 2
+ !-> define symbol start_day 5
+ !-> define axis/T0=5-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_2.nc" myvar[l=1:4]
+!-> REPEAT: I=3
+ !-> define symbol file 3
+ !-> define symbol start_day 9
+ !-> define axis/T0=9-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_3.nc" myvar[l=1:4]
+!-> REPEAT: I=4
+ !-> define symbol file 4
+ !-> define symbol start_day 13
+ !-> define axis/T0=13-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_4.nc" myvar[l=1:4]
+!-> REPEAT: I=5
+ !-> define symbol file 5
+ !-> define symbol start_day 17
+ !-> define axis/T0=17-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_5.nc" myvar[l=1:4]
+ 
+! --- files with T0 varying and date gaps between files ---
+let myvar = L[gt=tday_Tvar]
+ 
+repeat/i=1:10 (\
+define symbol file `i`;\
+define symbol year `i+1980`;\
+define axis/T0=1-jan-($year)/unit=days tday_Tvar = L[l=1:10];\
+save/clobber/file="tmp/tagg_disjoint_T0varying_($file).nc" myvar[l=1:10])
+ !-> repeat/i=1:10 (define symbol file `i`;define symbol year `i+1980`;define axis/T0=1-jan-($year)/unit=days tday_Tvar = L[l=1:10];save/clobber/file="tmp/tagg_disjoint_T0varying_($file).nc" myvar[l=1:10])
+!-> REPEAT: I=1
+ !-> define symbol file 1
+ !-> define symbol year 1981
+ !-> define axis/T0=1-jan-1981/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_1.nc" myvar[l=1:10]
+!-> REPEAT: I=2
+ !-> define symbol file 2
+ !-> define symbol year 1982
+ !-> define axis/T0=1-jan-1982/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_2.nc" myvar[l=1:10]
+!-> REPEAT: I=3
+ !-> define symbol file 3
+ !-> define symbol year 1983
+ !-> define axis/T0=1-jan-1983/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_3.nc" myvar[l=1:10]
+!-> REPEAT: I=4
+ !-> define symbol file 4
+ !-> define symbol year 1984
+ !-> define axis/T0=1-jan-1984/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_4.nc" myvar[l=1:10]
+!-> REPEAT: I=5
+ !-> define symbol file 5
+ !-> define symbol year 1985
+ !-> define axis/T0=1-jan-1985/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_5.nc" myvar[l=1:10]
+!-> REPEAT: I=6
+ !-> define symbol file 6
+ !-> define symbol year 1986
+ !-> define axis/T0=1-jan-1986/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_6.nc" myvar[l=1:10]
+!-> REPEAT: I=7
+ !-> define symbol file 7
+ !-> define symbol year 1987
+ !-> define axis/T0=1-jan-1987/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_7.nc" myvar[l=1:10]
+!-> REPEAT: I=8
+ !-> define symbol file 8
+ !-> define symbol year 1988
+ !-> define axis/T0=1-jan-1988/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_8.nc" myvar[l=1:10]
+!-> REPEAT: I=9
+ !-> define symbol file 9
+ !-> define symbol year 1989
+ !-> define axis/T0=1-jan-1989/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_9.nc" myvar[l=1:10]
+!-> REPEAT: I=10
+ !-> define symbol file 10
+ !-> define symbol year 1990
+ !-> define axis/T0=1-jan-1990/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_10.nc" myvar[l=1:10]
+ 
+! alter first and third files to have only single time step
+define axis/T0=1-jan-1981/unit=days tday_Tvar = L[l=1:10]
+save/clobber/file="tmp/tagg_disjoint_T0varying_1.nc" myvar[l=1:1]
+define axis/T0=1-jan-1983/unit=days tday_Tvar = L[l=1:10]
+save/clobber/file="tmp/tagg_disjoint_T0varying_3.nc" myvar[l=1:1]
+ 
+! make an alternative file 4 that has a different name for the time axis
+define axis/T0=1-jan-1984/unit=days tday_WRONG = L[l=1:10]
+let myvar = L[gt=tday_WRONG]
+save/clobber/file="tmp/tagg_disjoint_T0varying_4_wrong.nc" myvar[l=1:1]
+cancel axis tday_Tvar
+cancel axis tday_WRONG
+ 
+! --- files each containing only a single time step ---
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+ 
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+ 
+! also define a time intependent field to be saved as the second variable
+! but only in the first data set
+let mymap = I[x=0E:0E:5]+ 10*J[Y=80s:80n:5]
+ 
+!save/rigid/keep_axisname/file=...
+ 
+save/clobber/file="tmp/tagg_single_1.nc" myvar[l=1], mymap
+save/clobber/file="tmp/tagg_single_2.nc" myvar[l=2]
+save/clobber/file="tmp/tagg_single_3.nc" myvar[l=3]
+save/clobber/file="tmp/tagg_single_4.nc" myvar[l=4]
+save/clobber/file="tmp/tagg_single_5.nc" myvar[l=5]
+save/clobber/file="tmp/tagg_single_6.nc" myvar[l=6]
+ 
+cancel axis tday
+ 
+cancel var/all
+ 
+ 
+! *****************************************
+! *** test the aggregation capabilities ***
+! --- regularly-spaced axes ---
+! if the first file of the aggregation is already open
+! it must not get disturbed by setting up the aggregation
+use tmp/tagg_reg_1.nc
+ 
+! single dataset aggregation
+tseries myagg1 =  tmp/tagg_reg_1.nc
+show data myagg1
+     currently SET data sets:
+    2> myagg1  (default)
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+show grid myvar
+    GRID GQC1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY1     TIME                10 r   01-JAN-1980 00:00    10-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+! double file aggregation
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show grid myvar
+    GRID GQC3
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY2     TIME                20 r   01-JAN-1980 00:00    20-JAN-1980 00:00   full
+ normal    E
+ normal    F
+stat myvar
+ 
+             SIN(T[GT=TDAY]/10) + L[GT=TDAY]/10
+             X:  N/A
+             Y:  N/A
+             Z:  N/A
+             TIME: 31-DEC-1979 12:00 to 20-JAN-1980 12:00
+             E:  N/A
+             F:  N/A
+             DATA SET: myagg2
+ 
+ Total # of data points: 20 (1*1*1*20*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.11794
+ Maximum value: 2.9403
+ Mean    value: 1.7434 (unweighted average)
+ Standard deviation: 0.90253
+ 
+! show that aggregate name is case-sensitive
+define data/agg/t myAgg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show data myAgg2
+     currently SET data sets:
+    3> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+ 
+! *sh* 1/28/2016 addition
+! same aggregation inheriting its name from the parent script
+define data/agg/t tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/tagg_reg_1.nc
+    2> myagg1
+    3> myagg2
+    4> myAgg2
+    5> ./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
+show data/full  ! all 4 datasets
+     currently SET data sets:
+    1> tmp/tagg_reg_1.nc
+ 
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+               on grid GTR1 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GTR2 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 10-JAN-1980 00:00
+ 
+    2> myagg1
+ 
+     T-aggregation of 1 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+               on grid GQC1 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC2 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 10-JAN-1980 00:00
+ 
+          time-dependent data files:
+01-JAN-1980 00:00 -> 10-JAN-1980 00:00    tmp/tagg_reg_1.nc
+ 
+    3> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+               on grid GQC3 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC4 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-JAN-1980 00:00
+ 
+          time-dependent data files:
+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
+ 
+    4> myAgg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+               on grid GQC5 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC6 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-JAN-1980 00:00
+ 
+          time-dependent data files:
+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
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+               on grid GQC7 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC8 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-JAN-1980 00:00
+ 
+          time-dependent data files:
+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
+ 
+    6> myagg8  (default)
+ 
+     T-aggregation of 8 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:80      ...       ...
+               on grid GQC9 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC10 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-MAR-1980 00:00
+ 
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+ 
+show grid myvar
+    GRID GQC9
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY3     TIME                80 r   01-JAN-1980 00:00    20-MAR-1980 00:00   full
+ normal    E
+ normal    F
+plot/line/sym myvar
+ 
+! read a time-independent field from the first file of the aggregation
+stat mymap
+ 
+             I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]
+             LONGITUDE: 2.5W(-2.5) to 2.5E(362.5)
+             LATITUDE: 82.5S to 82.5N
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: myagg8
+ 
+ Total # of data points: 2409 (73*33*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 11
+ Maximum value: 403
+ Mean    value: 207 (unweighted average)
+ Standard deviation: 97.543
+ 
+! 2/2016 -- reorder deliberately out of order regular files
+define data/agg/t myagg8_disordered1 = tmp/tagg_reg_2.nc, tmp/tagg_reg_1.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
+define data/agg/t myagg8_disordered2 = 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_8.nc, tmp/tagg_reg_7.nc
+show data/files/brief myagg8_disordered1
+     currently SET data sets:
+    7> myagg8_disordered1
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+ 
+show data/files/brief myagg8_disordered2
+     currently SET data sets:
+    8> myagg8_disordered2  (default)
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+ 
+stat/brief T[g=myvar[d=myagg8]] - T[g=myvar[d=myagg8_disordered1]]
+ 
+ Total # of data points: 80 (1*1*1*80*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXLO[g=myvar[d=myagg8]] - TBOXLO[g=myvar[d=myagg8_disordered1]]
+ 
+ Total # of data points: 80 (1*1*1*80*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXHI[g=myvar[d=myagg8]] - TBOXHI[g=myvar[d=myagg8_disordered1]]
+ 
+ Total # of data points: 80 (1*1*1*80*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+cancel data/all
+ 
+! deliberate errors
+set mode ignore
+! try to define the same aggregation again
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+ 
+! try to aggregate with the same file duplicated
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc, tmp/tagg_reg_2.nc
+ 
+! try to aggregate a missing file as first file
+define data/agg/t myaggbad = tmp/tagg_no_exist.nc, tmp/tagg_reg_2.nc
+ 
+! try to aggregate a missing file as subsequent file
+define data/agg/t myaggbad = tmp/tagg_reg_1.nc, tmp/tagg_no_exist.nc
+ 
+! try to define an aggregation where there is no time axis in the first file
+tseries myTindepagg = tmp/tagg_reg_no_T.nc
+ 
+! erroneous file 2 with 15 time steps, goes beyond start of file 3
+define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
+ 
+set mode/last ignore
+canc data/all
+ 
+ 
+! --- irregularly-spaced axes ---
+! aggregation of 2 irregular datasets
+ define data/agg/t myagg2 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc
+ 
+! aggregate a longer collection where all are irregular
+define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irreg_3.nc, tmp/tagg_irreg_4.nc,tmp/tagg_irreg_5.nc, tmp/tagg_irreg_6.nc,tmp/tagg_irreg_7.nc, tmp/tagg_irreg_8.nc
+  show data/full
+     currently SET data sets:
+    1> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+               on grid GCV1 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 21-JAN-1980 14:35
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 11-JAN-1980 05:35    tmp/tagg_irreg_1.nc
+12-JAN-1980 06:24 -> 21-JAN-1980 14:35    tmp/tagg_irreg_2.nc
+ 
+    2> myagg8  (default)
+ 
+     T-aggregation of 8 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:80      ...       ...
+               on grid GCV2 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 24-MAR-1980 14:00
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 11-JAN-1980 05:35    tmp/tagg_irreg_1.nc
+12-JAN-1980 06:24 -> 21-JAN-1980 14:35    tmp/tagg_irreg_2.nc
+22-JAN-1980 15:34 -> 01-FEB-1980 00:54    tmp/tagg_irreg_3.nc
+02-FEB-1980 01:59 -> 11-FEB-1980 12:04    tmp/tagg_irreg_4.nc
+12-FEB-1980 13:13 -> 21-FEB-1980 23:52    tmp/tagg_irreg_5.nc
+23-FEB-1980 01:05 -> 03-MAR-1980 12:10    tmp/tagg_irreg_6.nc
+04-MAR-1980 13:26 -> 14-MAR-1980 00:54    tmp/tagg_irreg_7.nc
+15-MAR-1980 02:12 -> 24-MAR-1980 14:00    tmp/tagg_irreg_8.nc
+ 
+  show data myagg2
+     currently SET data sets:
+    1> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+ 
+  show grid/t myvar[d=1]
+    GRID GCV1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_IR1  TIME                20 i   02-JAN-1980 00:00    21-JAN-1980 14:35   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
+       2>  03-JAN-1980 00:20:01  1.01657    02-JAN-1980 12:10:00    2.013911
+       3>  04-JAN-1980 00:47:43  1.020963   03-JAN-1980 12:33:52    3.03314
+       4>  05-JAN-1980 01:20:24  1.023991   04-JAN-1980 13:04:03    4.055838
+       5>  06-JAN-1980 01:56:49  1.026318   05-JAN-1980 13:38:36    5.081123
+       6>  07-JAN-1980 02:36:12  1.028212   06-JAN-1980 14:16:30    6.108474
+       7>  08-JAN-1980 03:18:04  1.029811   07-JAN-1980 14:57:08    7.137548
+       8>  09-JAN-1980 04:02:03  1.031196   08-JAN-1980 15:40:03    8.168097
+       9>  10-JAN-1980 04:47:54  1.032416   09-JAN-1980 16:24:59    9.199939
+      10>  11-JAN-1980 05:35:25  1.033509   10-JAN-1980 17:11:39    10.23293
+      11>  12-JAN-1980 06:24:25  1.034497   11-JAN-1980 17:59:55    11.26696
+      12>  13-JAN-1980 07:14:46  1.0354     12-JAN-1980 18:49:35    12.30192
+      13>  14-JAN-1980 08:06:22  1.036231   13-JAN-1980 19:40:34    13.33776
+      14>  15-JAN-1980 08:59:06  1.037001   14-JAN-1980 20:32:44    14.37439
+      15>  16-JAN-1980 09:52:55  1.037717   15-JAN-1980 21:26:01    15.41176
+      16>  17-JAN-1980 10:47:44  1.038388   16-JAN-1980 22:20:20    16.44982
+      17>  18-JAN-1980 11:43:29  1.039019   17-JAN-1980 23:15:36    17.48853
+      18>  19-JAN-1980 12:40:06  1.039613   19-JAN-1980 00:11:48    18.52786
+      19>  20-JAN-1980 13:37:34  1.040176   20-JAN-1980 01:08:50    19.56776
+      20>  21-JAN-1980 14:35:49  1.04071    21-JAN-1980 02:06:42    20.60821
+  show grid myvar[d=2]
+    GRID GCV2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_IR2  TIME                80 i   02-JAN-1980 00:00    24-MAR-1980 14:00   full
+ normal    E
+ normal    F
+  plot/line/sym myvar[d=2],myvar[d=1]
+ 
+! aggregate collection that mixes regular (file 2) with irregular
+define data/agg/t myagg4 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2_reg.nc,tmp/tagg_irreg_3.nc, tmp/tagg_irreg_4.nc
+  show grid/t myvar[d=myagg4]
+    GRID GCV3
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_IR3  TIME                40 i   02-JAN-1980 00:00    11-FEB-1980 12:04   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
+       2>  03-JAN-1980 00:20:01  1.01657    02-JAN-1980 12:10:00    2.013911
+       3>  04-JAN-1980 00:47:43  1.020963   03-JAN-1980 12:33:52    3.03314
+       4>  05-JAN-1980 01:20:24  1.023991   04-JAN-1980 13:04:03    4.055838
+       5>  06-JAN-1980 01:56:49  1.026318   05-JAN-1980 13:38:36    5.081123
+       6>  07-JAN-1980 02:36:12  1.028212   06-JAN-1980 14:16:30    6.108474
+       7>  08-JAN-1980 03:18:04  1.029811   07-JAN-1980 14:57:08    7.137548
+       8>  09-JAN-1980 04:02:03  1.031196   08-JAN-1980 15:40:03    8.168097
+       9>  10-JAN-1980 04:47:54  1.032416   09-JAN-1980 16:24:59    9.199939
+      10>  11-JAN-1980 05:35:25  0.9000306  10-JAN-1980 17:11:39    10.23293
+      11>  12-JAN-1980 00:00:00  0.883535   11-JAN-1980 14:47:42    11
+      12>  13-JAN-1980 00:00:00  1          12-JAN-1980 12:00:00    12
+      13>  14-JAN-1980 00:00:00  1          13-JAN-1980 12:00:00    13
+      14>  15-JAN-1980 00:00:00  1          14-JAN-1980 12:00:00    14
+      15>  16-JAN-1980 00:00:00  1          15-JAN-1980 12:00:00    15
+      16>  17-JAN-1980 00:00:00  1          16-JAN-1980 12:00:00    16
+      17>  18-JAN-1980 00:00:00  1          17-JAN-1980 12:00:00    17
+      18>  19-JAN-1980 00:00:00  1          18-JAN-1980 12:00:00    18
+      19>  20-JAN-1980 00:00:00  1          19-JAN-1980 12:00:00    19
+      20>  21-JAN-1980 00:00:00  1.324591   20-JAN-1980 12:00:00    20
+      21>  22-JAN-1980 15:34:49  1.345324   21-JAN-1980 19:47:24    21.64918
+      22>  23-JAN-1980 16:34:32  1.041703   23-JAN-1980 04:04:40    22.69065
+      23>  24-JAN-1980 17:34:55  1.042167   24-JAN-1980 05:04:43    23.73259
+      24>  25-JAN-1980 18:35:58  1.042611   25-JAN-1980 06:05:27    24.77498
+      25>  26-JAN-1980 19:37:38  1.043037   26-JAN-1980 07:06:48    25.81781
+      26>  27-JAN-1980 20:39:55  1.043446   27-JAN-1980 08:08:47    26.86106
+      27>  28-JAN-1980 21:42:46  1.04384    28-JAN-1980 09:11:20    27.9047
+      28>  29-JAN-1980 22:46:10  1.04422    29-JAN-1980 10:14:28    28.94874
+      29>  30-JAN-1980 23:50:07  1.044587   30-JAN-1980 11:18:09    29.99314
+      30>  01-FEB-1980 00:54:35  1.044941   31-JAN-1980 12:22:21    31.03791
+      31>  02-FEB-1980 01:59:33  1.045284   01-FEB-1980 13:27:04    32.08303
+      32>  03-FEB-1980 03:05:00  1.045616   02-FEB-1980 14:32:16    33.12848
+      33>  04-FEB-1980 04:10:55  1.045938   03-FEB-1980 15:37:58    34.17426
+      34>  05-FEB-1980 05:17:18  1.04625    04-FEB-1980 16:44:07    35.22035
+      35>  06-FEB-1980 06:24:07  1.046554   05-FEB-1980 17:50:43    36.26676
+      36>  07-FEB-1980 07:31:22  1.046849   06-FEB-1980 18:57:45    37.31346
+      37>  08-FEB-1980 08:39:03  1.047135   07-FEB-1980 20:05:13    38.36045
+      38>  09-FEB-1980 09:47:07  1.047415   08-FEB-1980 21:13:05    39.40773
+      39>  10-FEB-1980 10:55:36  1.047687   09-FEB-1980 22:21:22    40.45528
+      40>  11-FEB-1980 12:04:28  1.047821   10-FEB-1980 23:30:02    41.50311
+ 
+! deliberate error -- aggregated file out of order
+set mode ignore
+define data/agg/t myagg3 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_3.nc,tmp/tagg_irreg_2.nc
+set mode/last ignore
+canc data/all
+ 
+! --- aggregation from T0-varying files ---
+! aggregate two
+  define data/agg/t myagg2 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc
+ 
+! aggregate several
+define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/tagg_T0varying_3.nc, tmp/tagg_T0varying_4.nc,tmp/tagg_T0varying_5.nc
+  show data/full
+     currently SET data sets:
+    1> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+               on grid GBN1 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 09-JAN-1980 00:00
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_T0varying_1.nc
+06-JAN-1980 00:00 -> 09-JAN-1980 00:00    tmp/tagg_T0varying_2.nc
+ 
+    2> myagg8  (default)
+ 
+     T-aggregation of 5 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:20      ...       ...
+               on grid GBN2 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 21-JAN-1980 00:00
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_T0varying_1.nc
+06-JAN-1980 00:00 -> 09-JAN-1980 00:00    tmp/tagg_T0varying_2.nc
+10-JAN-1980 00:00 -> 13-JAN-1980 00:00    tmp/tagg_T0varying_3.nc
+14-JAN-1980 00:00 -> 17-JAN-1980 00:00    tmp/tagg_T0varying_4.nc
+18-JAN-1980 00:00 -> 21-JAN-1980 00:00    tmp/tagg_T0varying_5.nc
+ 
+  show data myagg2
+     currently SET data sets:
+    1> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+ 
+  show grid/t myvar[d=1]
+    GRID GBN1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR TIME                 8 r   02-JAN-1980 00:00    09-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1980 00:00:00  1          01-JAN-1980 12:00:00    1
+       2>  03-JAN-1980 00:00:00  1          02-JAN-1980 12:00:00    2
+       3>  04-JAN-1980 00:00:00  1          03-JAN-1980 12:00:00    3
+       4>  05-JAN-1980 00:00:00  1          04-JAN-1980 12:00:00    4
+       5>  06-JAN-1980 00:00:00  1          05-JAN-1980 12:00:00    5
+       6>  07-JAN-1980 00:00:00  1          06-JAN-1980 12:00:00    6
+       7>  08-JAN-1980 00:00:00  1          07-JAN-1980 12:00:00    7
+       8>  09-JAN-1980 00:00:00  1          08-JAN-1980 12:00:00    8
+  show grid myvar[d=2]
+    GRID GBN2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR1 TIME               20 r   02-JAN-1980 00:00    21-JAN-1980 00:00   full
+ normal    E
+ normal    F
+  plot/line/sym myvar[d=2],myvar[d=1]
+ 
+canc data/all
+ 
+! --- aggregations of disjoint, irregularly-sized, T0-varying files ---
+! aggregate two
+  define data/agg/t myagg2 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc
+ 
+ 
+! aggregate several
+define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4.nc,tmp/tagg_disjoint_T0varying_5.nc, tmp/tagg_disjoint_T0varying_6.nc,tmp/tagg_disjoint_T0varying_7.nc, tmp/tagg_disjoint_T0varying_8.nc
+  show data/full
+     currently SET data sets:
+    1> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+               on grid GKQ1 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1981 00:00 to 11-JAN-1982 00:00
+ 
+          time-dependent data files:
+02-JAN-1981 00:00 -> 02-JAN-1981 00:00    tmp/tagg_disjoint_T0varying_1.nc
+02-JAN-1982 00:00 -> 11-JAN-1982 00:00    tmp/tagg_disjoint_T0varying_2.nc
+ 
+    2> myagg8  (default)
+ 
+     T-aggregation of 8 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:62      ...       ...
+               on grid GKQ2 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1981 00:00 to 11-JAN-1988 00:00
+ 
+          time-dependent data files:
+02-JAN-1981 00:00 -> 02-JAN-1981 00:00    tmp/tagg_disjoint_T0varying_1.nc
+02-JAN-1982 00:00 -> 11-JAN-1982 00:00    tmp/tagg_disjoint_T0varying_2.nc
+02-JAN-1983 00:00 -> 02-JAN-1983 00:00    tmp/tagg_disjoint_T0varying_3.nc
+02-JAN-1984 00:00 -> 11-JAN-1984 00:00    tmp/tagg_disjoint_T0varying_4.nc
+02-JAN-1985 00:00 -> 11-JAN-1985 00:00    tmp/tagg_disjoint_T0varying_5.nc
+02-JAN-1986 00:00 -> 11-JAN-1986 00:00    tmp/tagg_disjoint_T0varying_6.nc
+02-JAN-1987 00:00 -> 11-JAN-1987 00:00    tmp/tagg_disjoint_T0varying_7.nc
+02-JAN-1988 00:00 -> 11-JAN-1988 00:00    tmp/tagg_disjoint_T0varying_8.nc
+ 
+  show data myagg2
+     currently SET data sets:
+    1> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+ 
+  show grid/t myvar[d=1]
+    GRID GKQ1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR TIME                11 i   02-JAN-1981 00:00    11-JAN-1982 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
+       2>  02-JAN-1982 00:00:00  183        03-JUL-1981 12:00:00    366
+       3>  03-JAN-1982 00:00:00  1          02-JAN-1982 12:00:00    367
+       4>  04-JAN-1982 00:00:00  1          03-JAN-1982 12:00:00    368
+       5>  05-JAN-1982 00:00:00  1          04-JAN-1982 12:00:00    369
+       6>  06-JAN-1982 00:00:00  1          05-JAN-1982 12:00:00    370
+       7>  07-JAN-1982 00:00:00  1          06-JAN-1982 12:00:00    371
+       8>  08-JAN-1982 00:00:00  1          07-JAN-1982 12:00:00    372
+       9>  09-JAN-1982 00:00:00  1          08-JAN-1982 12:00:00    373
+      10>  10-JAN-1982 00:00:00  1          09-JAN-1982 12:00:00    374
+      11>  11-JAN-1982 00:00:00  1          10-JAN-1982 12:00:00    375
+  show grid myvar[d=2]
+    GRID GKQ2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
+ normal    E
+ normal    F
+  plot/line/sym/vlim=0:11 myvar[d=2],myvar[d=1]
+ 
+! a few tests of using Ferret string variables to get the names of files
+define data/agg/t listAgg1 = {"tmp/tagg_reg_1.nc", "tmp/tagg_reg_2.nc"}
+show data/files listAgg1
+     currently SET data sets:
+    3> listAgg1  (default)
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+          time-dependent data files:
+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
+ 
+ 
+! define a long aggregation
+let file_list = SPAWN("ls -1 tmp/tagg_reg_?.nc")
+define data/agg/t listAgg2 = file_list
+show data/files listAgg2
+     currently SET data sets:
+    4> listAgg2  (default)
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:90      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+21-MAR-1980 00:00 -> 30-MAR-1980 00:00    tmp/tagg_reg_9.nc
+ 
+ 
+! reorder deliberately out of order file of differing lengths
+define data/agg/t myagg8_disordered3 = tmp/tagg_disjoint_T0varying_2.nc, tmp/tagg_disjoint_T0varying_1.nc,tmp/tagg_disjoint_T0varying_5.nc, tmp/tagg_disjoint_T0varying_4.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_8.nc,tmp/tagg_disjoint_T0varying_7.nc, tmp/tagg_disjoint_T0varying_6.nc
+show data/files/brief myagg8_disordered3
+     currently SET data sets:
+    5> myagg8_disordered3  (default)
+          time-dependent data files:
+02-JAN-1981 00:00 -> 02-JAN-1981 00:00    tmp/tagg_disjoint_T0varying_1.nc
+02-JAN-1982 00:00 -> 11-JAN-1982 00:00    tmp/tagg_disjoint_T0varying_2.nc
+02-JAN-1983 00:00 -> 02-JAN-1983 00:00    tmp/tagg_disjoint_T0varying_3.nc
+02-JAN-1984 00:00 -> 11-JAN-1984 00:00    tmp/tagg_disjoint_T0varying_4.nc
+02-JAN-1985 00:00 -> 11-JAN-1985 00:00    tmp/tagg_disjoint_T0varying_5.nc
+02-JAN-1986 00:00 -> 11-JAN-1986 00:00    tmp/tagg_disjoint_T0varying_6.nc
+02-JAN-1987 00:00 -> 11-JAN-1987 00:00    tmp/tagg_disjoint_T0varying_7.nc
+02-JAN-1988 00:00 -> 11-JAN-1988 00:00    tmp/tagg_disjoint_T0varying_8.nc
+ 
+! ... the same calendar axis, but encoded with the T0 of the first file
+show grid/l=1:8 myvar[d=myagg8]
+    GRID GKQ2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
+       2>  02-JAN-1982 00:00:00  183        03-JUL-1981 12:00:00    366
+       3>  03-JAN-1982 00:00:00  1          02-JAN-1982 12:00:00    367
+       4>  04-JAN-1982 00:00:00  1          03-JAN-1982 12:00:00    368
+       5>  05-JAN-1982 00:00:00  1          04-JAN-1982 12:00:00    369
+       6>  06-JAN-1982 00:00:00  1          05-JAN-1982 12:00:00    370
+       7>  07-JAN-1982 00:00:00  1          06-JAN-1982 12:00:00    371
+       8>  08-JAN-1982 00:00:00  1          07-JAN-1982 12:00:00    372
+show grid/l=1:8 myvar[d=myagg8_disordered3]
+    GRID GLF1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR2 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    -364
+       2>  02-JAN-1982 00:00:00  183        03-JUL-1981 12:00:00    1
+       3>  03-JAN-1982 00:00:00  1          02-JAN-1982 12:00:00    2
+       4>  04-JAN-1982 00:00:00  1          03-JAN-1982 12:00:00    3
+       5>  05-JAN-1982 00:00:00  1          04-JAN-1982 12:00:00    4
+       6>  06-JAN-1982 00:00:00  1          05-JAN-1982 12:00:00    5
+       7>  07-JAN-1982 00:00:00  1          06-JAN-1982 12:00:00    6
+       8>  08-JAN-1982 00:00:00  1          07-JAN-1982 12:00:00    7
+ 
+cancel data/all
+ 
+! deliberate errors
+set mode ignore
+! deliberate error - try to re-use a name already in use
+  define data/agg/t myagg2 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc
+ 
+! deliberate error - the fourth file (*_4_wrong.nc) changes time axis name
+define data/agg/t myagg5_bad = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4_wrong.nc,tmp/tagg_disjoint_T0varying_5.nc
+set mode/last ignore
+ 
+canc data/all
+ 
+! --- aggregations of single timestep files ---
+! define a regular aggregation
+define data/agg/t MYsing_reg_agg6 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_3.nc, tmp/tagg_single_4.nc,tmp/tagg_single_5.nc, tmp/tagg_single_6.nc
+show data/full  MYsing_reg_agg6
+     currently SET data sets:
+    1> MYsing_reg_agg6  (default)
+ 
+     T-aggregation of 6 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:6       ...       ...
+               on grid GMI1 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GMI2 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 06-JAN-1980 00:00
+ 
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+03-JAN-1980 00:00 -> 03-JAN-1980 00:00    tmp/tagg_single_3.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+06-JAN-1980 00:00 -> 06-JAN-1980 00:00    tmp/tagg_single_6.nc
+ 
+show grid/t myvar
+    GRID GMI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY1     TIME                 6 r   01-JAN-1980 00:00    06-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
+       2>  02-JAN-1980 00:00:00  1          01-JAN-1980 12:00:00    28841
+       3>  03-JAN-1980 00:00:00  1          02-JAN-1980 12:00:00    28842
+       4>  04-JAN-1980 00:00:00  1          03-JAN-1980 12:00:00    28843
+       5>  05-JAN-1980 00:00:00  1          04-JAN-1980 12:00:00    28844
+       6>  06-JAN-1980 00:00:00  1          05-JAN-1980 12:00:00    28845
+ 
+! read a time-independent field from the first file of the aggregation
+stat mymap
+ 
+             I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]
+             LONGITUDE: 2.5W(-2.5) to 2.5E(362.5)
+             LATITUDE: 82.5S to 82.5N
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: MYsing_reg_agg6
+ 
+ Total # of data points: 2409 (73*33*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 11
+ Maximum value: 403
+ Mean    value: 207 (unweighted average)
+ Standard deviation: 97.543
+ 
+! define an irregular aggregation
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+show data/full MYsing_irreg_agg4
+     currently SET data sets:
+    2> MYsing_irreg_agg4  (default)
+ 
+     T-aggregation of 4 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:4       ...       ...
+               on grid GMI3 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GMI4 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 05-JAN-1980 00:00
+ 
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+show grid/t myvar
+    GRID GMI3
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY2     TIME                 4 i   01-JAN-1980 00:00    05-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
+       2>  02-JAN-1980 00:00:00  1.5        01-JAN-1980 12:00:00    28841
+       3>  04-JAN-1980 00:00:00  1.5        03-JAN-1980 00:00:00    28843
+       4>  05-JAN-1980 00:00:00  1          04-JAN-1980 12:00:00    28844
+ 
+! 2/2016 - reorder deliberately out of order aggregation of irregular times
+define data/agg/t MYsing_irreg_agg4_disordered1 = tmp/tagg_single_2.nc, tmp/tagg_single_1.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+define data/agg/t MYsing_irreg_agg4_disordered2 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_5.nc, tmp/tagg_single_4.nc
+show data/files/brief
+     currently SET data sets:
+    1> MYsing_reg_agg6
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+03-JAN-1980 00:00 -> 03-JAN-1980 00:00    tmp/tagg_single_3.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+06-JAN-1980 00:00 -> 06-JAN-1980 00:00    tmp/tagg_single_6.nc
+ 
+    2> MYsing_irreg_agg4
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+    3> MYsing_irreg_agg4_disordered1
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+    4> MYsing_irreg_agg4_disordered2  (default)
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+stat/brief T[g=myvar[d=MYsing_irreg_agg4]] - T[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+ 
+ Total # of data points: 4 (1*1*1*4*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXLO[g=myvar[d=MYsing_irreg_agg4]] - TBOXLO[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+ 
+ Total # of data points: 4 (1*1*1*4*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXHI[g=myvar[d=MYsing_irreg_agg4]] - TBOXHI[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+ 
+ Total # of data points: 4 (1*1*1*4*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+canc data/all
+ 
+! OPeNDAP test
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
+ !-> IF 1 THEN
+   tseries COADS = http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
+show data COADS
+     currently SET data sets:
+    1> COADS  (default)
+ name     title                             I         J         K         L         M         N
+ AIR      Air Temperature Monthly Mean_da  1:180     1:90      ...       1:36      ...       ...
+ 
+show grid/T air
+    GRID GMW1
+ name       axis              # pts   start                end                 subset
+ LON       LONGITUDE          180mr   1E                   1W                  full
+ LAT       LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME      TIME                36 i   16-JAN-2012 12:00    16-DEC-2014 12:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN-2012 12:00:00  31         01-JAN-2012 00:00:00    77446.5
+       2>  15-FEB-2012 12:00:00  29         01-FEB-2012 00:00:00    77476.5
+       3>  16-MAR-2012 12:00:00  31         01-MAR-2012 00:00:00    77506.5
+       4>  16-APR-2012 00:00:00  30         01-APR-2012 00:00:00    77537
+       5>  16-MAY-2012 12:00:00  31         01-MAY-2012 00:00:00    77567.5
+       6>  16-JUN-2012 00:00:00  30         01-JUN-2012 00:00:00    77598
+       7>  16-JUL-2012 12:00:00  31         01-JUL-2012 00:00:00    77628.5
+       8>  16-AUG-2012 12:00:00  31         01-AUG-2012 00:00:00    77659.5
+       9>  16-SEP-2012 00:00:00  30         01-SEP-2012 00:00:00    77690
+      10>  16-OCT-2012 12:00:00  31         01-OCT-2012 00:00:00    77720.5
+      11>  16-NOV-2012 00:00:00  30         01-NOV-2012 00:00:00    77751
+      12>  16-DEC-2012 12:00:00  31         01-DEC-2012 00:00:00    77781.5
+      13>  16-JAN-2013 12:00:00  31         01-JAN-2013 00:00:00    77812.5
+      14>  15-FEB-2013 00:00:00  28         01-FEB-2013 00:00:00    77842
+      15>  16-MAR-2013 12:00:00  31         01-MAR-2013 00:00:00    77871.5
+      16>  16-APR-2013 00:00:00  30         01-APR-2013 00:00:00    77902
+      17>  16-MAY-2013 12:00:00  31         01-MAY-2013 00:00:00    77932.5
+      18>  16-JUN-2013 00:00:00  30         01-JUN-2013 00:00:00    77963
+      19>  16-JUL-2013 12:00:00  31         01-JUL-2013 00:00:00    77993.5
+      20>  16-AUG-2013 12:00:00  31         01-AUG-2013 00:00:00    78024.5
+      21>  16-SEP-2013 00:00:00  30         01-SEP-2013 00:00:00    78055
+      22>  16-OCT-2013 12:00:00  31         01-OCT-2013 00:00:00    78085.5
+      23>  16-NOV-2013 00:00:00  30         01-NOV-2013 00:00:00    78116
+      24>  16-DEC-2013 12:00:00  31         01-DEC-2013 00:00:00    78146.5
+      25>  16-JAN-2014 12:00:00  31         01-JAN-2014 00:00:00    78177.5
+      26>  15-FEB-2014 00:00:00  28         01-FEB-2014 00:00:00    78207
+      27>  16-MAR-2014 12:00:00  31         01-MAR-2014 00:00:00    78236.5
+      28>  16-APR-2014 00:00:00  30         01-APR-2014 00:00:00    78267
+      29>  16-MAY-2014 12:00:00  31         01-MAY-2014 00:00:00    78297.5
+      30>  16-JUN-2014 00:00:00  30         01-JUN-2014 00:00:00    78328
+      31>  16-JUL-2014 12:00:00  31         01-JUL-2014 00:00:00    78358.5
+      32>  16-AUG-2014 12:00:00  31         01-AUG-2014 00:00:00    78389.5
+      33>  16-SEP-2014 00:00:00  30         01-SEP-2014 00:00:00    78420
+      34>  16-OCT-2014 12:00:00  31         01-OCT-2014 00:00:00    78450.5
+      35>  16-NOV-2014 00:00:00  30         01-NOV-2014 00:00:00    78481
+      36>  16-DEC-2014 12:00:00  31         01-DEC-2014 00:00:00    78511.5
+canc data/all
+ELSE
+ENDIF
+ 
+! "USE file.agg" test
+! test the hack to XEQ_SET which permits "SET DATA file.agg" to metamorphose
+! into "GO file.agg"
+spawn echo "define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc,tmp/tagg_reg_3.nc" > tmp/good_agg.agg
+spawn echo "garbage command syntax" > tmp/bad_agg.agg
+ 
+! deliberate errorrs
+! bad .agg aggregation file
+set mode ignore
+USE "tmp/bad_agg.agg"
+garbage command syntax
+ 
+! irregular aggregation with first file duplicated
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+ 
+! irregular aggregation with last file duplicated
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc, tmp/tagg_single_5.nc
+ 
+set/last mode ignore
+ 
+! valid syntax to initialize an aggregation
+USE "tmp/good_agg.agg"
+define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc,tmp/tagg_reg_3.nc
+show data/br
+     currently SET data sets:
+    1> myagg3  (default)
+cancel data/all
+*** Running ferret script: bn_unquoted_args.jnl
+! bn_unquoted_args.jnl
+! 12/2015 -- a hack change to PPARSE_COMMAND to allow users to omit
+! the quotation marks in the argument(s) of SET DATA, GO and DEFINE SYMBOL
+ 
+! 2/2016 *sh* removed the GO/HELP tests
+ 
+spawn "mkdir -p tmp"
+ 
+! ****** SET DATA TESTS *****
+! make test files
+save/clobber/file="tmp/test1.nc" i[i=1:3] + 1
+save/clobber/file="tmp/test2.nc" i[i=1:3] + 2
+save/clobber/file="tmp/test3.nc" i[i=1:3] + 3
+! generate absolute path
+let dir = SPAWN("pwd")
+define sym use_abs_path = `DIR+"/tmp/test1.nc"`
+ !-> define sym use_abs_path = /home/flat/ksmith/ferret_dev/bench/tmp/test1.nc
+say ($use_abs_path)
+ !-> MESSAGE/CONTINUE /home/flat/ksmith/ferret_dev/bench/tmp/test1.nc
+/home/flat/ksmith/ferret_dev/bench/tmp/test1.nc
+ 
+use tmp/test1.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use "tmp/test1.nc"
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use "tmp/test1.nc"
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use tmp/test1.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use "($use_abs_path)"
+ !-> SET DAT/FORM=CDF "/home/flat/ksmith/ferret_dev/bench/tmp/test1.nc"
+show data/brief
+     currently SET data sets:
+    1> /home/flat/ksmith/ferret_dev/bench/tmp/test1.nc  (default)
+canc data/all
+ 
+use ($use_abs_path)
+ !-> SET DAT/FORM=CDF /home/flat/ksmith/ferret_dev/bench/tmp/test1.nc
+show data/brief
+     currently SET data sets:
+    1> /home/flat/ksmith/ferret_dev/bench/tmp/test1.nc  (default)
+canc data/all
+ 
+use tmp/test1.nc,tmp/test2.nc,tmp/test3.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc
+    2> tmp/test2.nc
+    3> tmp/test3.nc  (default)
+canc data/all
+ 
+use tmp/test1.nc,"tmp/test2.nc", tmp/test3.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc
+    2> tmp/test2.nc
+    3> tmp/test3.nc  (default)
+canc data/all
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+  use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+  show data/brief
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+  canc data/all
+  use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  show data/brief
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+  canc data/all
+  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc
+    2> tmp/test2.nc
+    3> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+  canc data/all
+ELSE
+ENDIF
+ 
+! deliberate errors
+! erroneous qualifier with no white space detected
+set mode ignore
+set data/erroneous tmp/test1.nc
+ 
+! erroneous qualifier with white space detected
+set data /erroneous tmp/test1.nc
+ 
+! erroneous qualifier with comma treated as an invalid filename
+set data /erroneous, tmp/test1.nc
+ 
+can mode ignore
+ 
+canc data/all
+ 
+ 
+! ****** GO script tests *****
+! make a dummy GO file for testing
+spawn rm -f tmp/dummy.jnl
+spawn echo "say hello" >tmp/dummy.jnl
+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" $7"7-n/a" $8"8-n/a"' > tmp/testMe.jnl
+ 
+! generate absolute path
+let dir = SPAWN("pwd")
+define sym abs_path = `DIR+"/tmp/testMe.jnl"`
+ !-> define sym abs_path = /home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl
+say ($abs_path)
+ !-> MESSAGE/CONTINUE /home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl
+/home/flat/ksmith/ferret_dev/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"
+ !-> 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 "tmp/testMe.jnl"
+say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
+ !-> MESSAGE/CONTINUE 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+ 
+go ($abs_path)
+ !-> go /home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl
+say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
+ !-> MESSAGE/CONTINUE 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+ 
+go "($abs_path)"
+ !-> go "/home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl"
+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 tmp/testMe 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 "tmp/testMe" 5 hello "bye" "/quoted_path" /unquoted_path
+say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
+ !-> MESSAGE/CONTINUE 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
+5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
+ 
+go ($abs_path) 5 hello "bye" "/quoted_path" /unquoted_path
+ !-> go /home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl 5 hello "bye" "/quoted_path" /unquoted_path
+say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
+ !-> MESSAGE/CONTINUE 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
+5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
+ 
+go "($abs_path)" 5 hello "bye" "/quoted_path" /unquoted_path
+ !-> go "/home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl" 5 hello "bye" "/quoted_path" /unquoted_path
+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
+ 
+! test GO/HELP
+! 2/2016 - commented these tests out, tho they work fine.   GO/HELP
+!          apparently runs asynchronously with the bench logging (why?)
+!          This results in the placement of the GO/HELP output shifting in
+!          the benchmark output log -- a hassle when comparing benchmarks
+!go/help tmp/testMe
+!go /help tmp/testMe
+!go/help "tmp/testMe"
+!go/help ($abs_path)
+!go/help "($abs_path)"
+ 
+! a few tests the slipped through the first time
+GO tmp/testMe POLYGON/KEY/lev=20 xpts,ypts,sst,star
+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 POLYGON/KEY/lev=20  xpts  ypts  sst star 6-n/a 7-n/a 8-n/a
+POLYGON/KEY/lev=20  xpts  ypts  sst star 6-n/a 7-n/a 8-n/a
+go "tmp/testMe.jnl" /home/users/tmap/ferret/linux/fer_dsets/data/coads_climatology.cdf
+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 /home/users/tmap/ferret/linux/fer_dsets/data/coads_climatology.cdf  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+/home/users/tmap/ferret/linux/fer_dsets/data/coads_climatology.cdf  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+if 1 then let/quiet mytestvar = whatever
+sh var mytestvar
+ MYTESTVAR = WHATEVER
+ 
+ 
+set mode ignore
+go/garbage tmp/testMe
+go/garbage "tmp/testMe"
+go/garbage ($abs_path)
+go/garbage "($abs_path)"
+set mode/last ignore
+ 
+ 
+*** Running ferret script: bn_long_lists.jnl
+! bn_long_lists.jnl
+! See ticket 2337
+!
+! Increase command-line buffer by a factor of 10, to accomodate long lists
+! defined in the variable definition.
+! Also allow for more items in the list.
+ 
+! 2/2016, backed off the extra-long buffer, but keep these tests, on shortened variables.
+ 
+! This one gets its Title truncated
+ 
+let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc"}
+ 
+let longlist = {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0}
+ 
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     LONGLIST = {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8 [...]
+     FILE_LIST = {"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmo [...]
+ 
+! do them in repeat loop
+ 
+repeat/range=1:4:1/name=q (let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0012.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0013.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0014.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0015.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0016.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0017.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0018.t_surf.nc",\
+} )
+!-> REPEAT: Q:1
+!-> REPEAT: Q:2
+!-> REPEAT: Q:3
+!-> REPEAT: Q:4
+ 
+! Intentional errors:
+! Make them longer
+ 
+set mode ignore
+ 
+! Line length still under 2048, but more items than 1000,
+! issues a NOTE that they're not all parsed.
+ 
+let a={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0}
+load a
+ 
+! command line too long
+ 
+let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0012.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0013.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0014.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0015.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0016.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0017.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0018.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0019.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0022.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0023.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0024.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0025.t_surf.nc",\}
+ 
+set mode/last ignore
+*** Running ferret script: bn_show_uvar_grid.jnl
+! bn_show_uvar_grid.jnl
+! Add notes to the output of SHOW GRID for variables and expressions
+! indicate compressed axes, point subsets and subset ranges.
+! For grid changing functions just mark axis as such
+!
+! 12/17/2015 *acm*
+! 12/18 2015 *acm* Add constant and constant-array variables,
+!                  and modulo axis request on more than full range
+ 
+use coads_climatology
+show grid sst[x=240:320,y=0,t=@ave]
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            39 pts
+ COADSY    LATITUDE            90 r   89S                  89N                 1 pt
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
+ normal    E
+ normal    F
+ 
+! Modulo axes ask for superset
+show grid sst[x=0:540,L=1:15]
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            269 pts
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        14 pts
+ normal    E
+ normal    F
+ 
+! Constant: full abstract grid
+show grid 1
+    GRID ABSTRACT
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
+ ABSTRACT  Y             99999999 r   1                    1.E+08              full
+ ABSTRACT  Z             99999999 r   1                    1.E+08              full
+ ABSTRACT  T             99999999 r   1                    1.E+08              full
+ ABSTRACT  E             99999999 r   1                    1.E+08              full
+ ABSTRACT  F             99999999 r   1                    1.E+08              full
+ 
+! Constant-array
+show grid {1}
+    GRID XABSTRACT
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              1 pt
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+let var = {1,2,4,8}  ! Note that show grid {1,2,4,8} fails: bug
+show grid var
+    GRID XABSTRACT
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              3 pts
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+ 
+! but don't show any user-var grid info if they just ask for the grid by name
+show grid `sst,return=grid`
+ !-> show grid GSQ1
+    GRID GSQ1
+ name       axis              # pts   start                end
+ COADSX    LONGITUDE          180mr   21E                  19E(379)
+ COADSY    LATITUDE            90 r   89S                  89N
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ normal    E
+ normal    F
+ 
+! grid of last variable loaded
+load sst[x=240,y=@iin,t=@ave]
+show grid
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid GSQ1
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
+ normal    E
+ normal    F
+ 
+! Result grid is full grid
+let var = sst[L=@ave] - sst[x=@max] - sst[y=0]
+show grid var
+    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
+ normal    E
+ normal    F
+ 
+! transform on single-point range is equiv. to single-point subset
+ 
+cancel mode interpolate  ! otherwise single-pt range fails
+let var = sst[X=30 at max]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+set mode/last interpolate
+let var = sst[X=30:30.1 at max]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+ 
+! dynamic grid
+let var = sst[y=-10:10:.1,l=1,x=160e]
+show grid var
+    GRID (G002)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX005)   LATITUDE           201 r   10S                  10N                 200 pts
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
+ normal    E
+ normal    F
+ 
+! striding
+show grid sst[i=1:180:3,j=1:90:2]
+    GRID (G003)
+ name       axis              # pts   start                end                 subset
+ (AX006)   LONGITUDE           60 r   21E                  15E(375)            59 pts
+ (AX007)   LATITUDE            45 r   89S                  87N                 44 pts
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+ 
+! regridding
+ 
+use coads_vwnd
+define axis/t=1-jan-1980:31-dec-1982:1/units=days dax
+let vwnd_days = vwnd[gt=dax,t=1-jun-1982:15-jul-1982]
+sh grid vwnd_days
+    GRID (G003)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ DAX       TIME              1096 r   01-JAN-1980 00:00    31-DEC-1982 00:00   44 pts
+ normal    E
+ normal    F
+ 
+let vwnd_clim = vwnd[gt=month_irreg at mod]
+sh grid vwnd_clim[L=4:9]
+    GRID (G005)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49        5 pts
+ normal    E
+ normal    F
+ 
+can dat/all
+use coads_climatology
+ 
+! non-compressing transforms
+ 
+let var = sst[y=@iin]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+ 
+let var = sst[y=-30:30 at iin]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 29 pts
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+ 
+use levitus_3d_subset
+let var = temp[z=@weq:20]
+show grid var
+    GRID GAO1
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                full
+ normal    T
+ normal    E
+ normal    F
+ 
+let var = temp[z=1:120 at weq:20]
+show grid var
+    GRID GAO1
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                6 pts
+ normal    T
+ normal    E
+ normal    F
+ 
+ 
+! grid-changing functions
+can dat/all
+use levitus_3d_subset
+let depth =  Z[G=TEMP]+ 0*TEMP[K=1]
+let depth_rev = zreverse(depth)
+show grid depth_rev
+    GRID (G004)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ABSTRACT  Z             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    T
+ normal    E
+ normal    F
+ 
+DEFINE AXIS/t=1-Jan-1990:31-Dec-1990:24/t0=1-jan-1980 dayt
+let tpts = t[gt=dayt]
+LET sample_function = sin(0.5*tpts - 6.)/2. - cos(0.3*tpts)
+ 
+show grid ffta(sample_function)
+    GRID (G003)
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ (AX002)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
+ normal    E
+ normal    F
+ 
+show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
+    GRID (G003)
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ (AX001)   T (CYC/HOURS)       76 r   0.00027412           0.020833            (axis from grid-changing func)
+ normal    E
+ normal    F
+ 
+show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
+    GRID (G005)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                3 pts
+ (AX002)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
+ normal    E
+ normal    F
+ 
+can dat/all
+ 
+! auxiliary regridding
+ 
+use levitus_3d_subset.nc
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+let  TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
+ 
+sh grid tempz
+    GRID (G002)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX002)   Z                    5 r   100                  500                 full
+ normal    T
+ normal    E
+ normal    F
+sh grid tempz[z=100:400]
+    GRID (G002)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX002)   Z                    5 r   100                  500                 3 pts
+ normal    T
+ normal    E
+ normal    F
+ 
+! and with a grid-changing function thrown in
+ 
+use levitus_3d_subset.nc
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+LET/D=levitus_3d_subset rvdepth  = rvdepth0[gz=temp at asn]
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp  = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+show grid rvtempzax
+    GRID (G002)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
+ normal    T
+ normal    E
+ normal    F
+ 
+! gc func: limits are hidden so a subset not seen
+ 
+LET rvtempzax = rvtemp[gz(rvdepth)=zax]
+show grid rvtempzax[z=100:300]
+    GRID (G002)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
+ normal    T
+ normal    E
+ normal    F
+*** Running ferret script: bn_aggregate_f.jnl
+! bn_aggregate_f.F
+! 12/2015 *sh*
+! 1/2016 *sh* added implicit naming of aggregation from script filename
+ 
+! exercise FMRC aggregations
+ 
+spawn "mkdir -p tmp"     ! tmp directory t store files
+ 
+! *** create an artificial forecast model run collection ***
+ 
+! a 20x20 lat-long region
+define axis/x=140e:160e:1 xax
+define axis/y=20n:40n:1 yax
+ 
+! a 20 year monthly axis starting in Jan 1950
+LET start_year = 1950
+LET nyears = 20
+LET indices = L[L=1:`nyears*12`]
+ !-> DEFINE VARIABLE indices = L[L=1:240]
+LET month = MOD(indices-1,12)+1
+LET year = start_year + INT((indices-1)/12)
+DEFINE AXIS/UNITS=days/T0=1-jan-1900/EDGES truemonth = DAYS1900(year,month,1)
+ 
+! define a moving field with errors increasing from a given forecast date
+let vy = 1/500      ! speed that forecast structure deviates from truth
+!let vx = 1/300
+let vx = (1+(T[gt=truemonth]-tstart)/2000)* 1/300
+let xt = x[gx=xax]-vx*T[gt=truemonth]
+let yt = y[gy=yax]-vy*T[gt=truemonth]
+let field = COS((xt-150)/5)*COS((yt-30)/5)
+let fcst = field + fcst_error
+let static_error = SIN((x[gx=xax]-140)/5)*SIN((y[gy=yax]-20)/5) + RANDU(x[gx=xax]+y[gy=yax])
+let structure_drift = (t[gt=truemonth]-tstart)/5000 * static_error
+let random_error = (t[gt=truemonth]-tstart)/2000 * RANDU(t[gt=truemonth]+x[gx=xax]+y[gy=yax])
+let fcst_error = structure_drift + random_error
+let/title="another variable" fcst_2 = fcst + 2
+ 
+! every 3 months another 2-year forecast
+repeat/name=fdate/range=1:31:3 (let tstart = t[gt=truemonth,l=`fdate`];save/clobber/file="tmp/fcst_`(fdate-1)/3+1`.nc"/l=`fdate`:`fdate+23` fcst,  fcst_2)
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_1.nc"/l=1:24 fcst,  fcst_2
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_2.nc"/l=4:27 fcst,  fcst_2
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_3.nc"/l=7:30 fcst,  fcst_2
+!-> REPEAT: FDATE:10
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_4.nc"/l=10:33 fcst,  fcst_2
+!-> REPEAT: FDATE:13
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=13]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_5.nc"/l=13:36 fcst,  fcst_2
+!-> REPEAT: FDATE:16
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=16]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_6.nc"/l=16:39 fcst,  fcst_2
+!-> REPEAT: FDATE:19
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=19]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_7.nc"/l=19:42 fcst,  fcst_2
+!-> REPEAT: FDATE:22
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=22]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_8.nc"/l=22:45 fcst,  fcst_2
+!-> REPEAT: FDATE:25
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=25]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_9.nc"/l=25:48 fcst,  fcst_2
+!-> REPEAT: FDATE:28
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=28]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_10.nc"/l=28:51 fcst,  fcst_2
+!-> REPEAT: FDATE:31
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=31]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_11.nc"/l=31:54 fcst,  fcst_2
+ 
+! a couple of long (3-year) forecasts
+let tstart = t[gt=truemonth,l=1]
+save/clobber/file="tmp/long_fcst_1.nc"/l=1:36 fcst,fcst_2   ! replaces file 1
+let tstart = t[gt=truemonth,l=16]
+save/clobber/file="tmp/long_fcst_6.nc"/l=16:52 fcst,fcst_2  ! replaces file 6
+ 
+! files lacking the second variable
+let tstart = t[gt=truemonth,l=1]
+save/clobber/file="tmp/one_var_fcst_1.nc"/l=1:24 fcst   ! alternative of file 1
+let tstart = t[gt=truemonth,l=16]
+save/clobber/file="tmp/one_var_fcst_6.nc"/l=16:39 fcst  ! alternative of file 6
+ 
+! files that violate the sequence
+save/clobber/file="tmp/consecutive_month_fcst.nc"/l=5:28 fcst, fcst_2
+! shift the time interpretation by 3 days through altered T0
+DEFINE AXIS/UNITS=days/T0=4-jan-1900/EDGES truemonth = DAYS1900(year,month,1)
+save/clobber/file="tmp/irregular_start_time_fcst.nc"/l=6:29 fcst, fcst_2
+ 
+cancel variables/all
+ 
+! ***** end of FMRC file creation ****************
+ 
+! define a complete FMRC aggregation
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+list files  ! notice that they are not properly ordered
+             VARIABLE : SPAWN("ls -1 tmp/fcst_*.nc")
+             SUBSET   : 11 points (X)
+ 1    /  1:"tmp/fcst_10.nc"
+ 2    /  2:"tmp/fcst_11.nc"
+ 3    /  3:"tmp/fcst_1.nc" 
+ 4    /  4:"tmp/fcst_2.nc" 
+ 5    /  5:"tmp/fcst_3.nc" 
+ 6    /  6:"tmp/fcst_4.nc" 
+ 7    /  7:"tmp/fcst_5.nc" 
+ 8    /  8:"tmp/fcst_6.nc" 
+ 9    /  9:"tmp/fcst_7.nc" 
+ 10   / 10:"tmp/fcst_8.nc" 
+ 11   / 11:"tmp/fcst_9.nc" 
+fmrc my_fmrc = files
+show data/brief    ! note that member files are hidden
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+show data/files my_fmrc
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:11
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1 : tmp/fcst_1.nc
+      2 : tmp/fcst_2.nc
+      3 : tmp/fcst_3.nc
+      4 : tmp/fcst_4.nc
+      5 : tmp/fcst_5.nc
+      6 : tmp/fcst_6.nc
+      7 : tmp/fcst_7.nc
+      8 : tmp/fcst_8.nc
+      9 : tmp/fcst_9.nc
+      10: tmp/fcst_10.nc
+      11: tmp/fcst_11.nc
+show data/attr my_fmrc
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        7    F       my_fmrc
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ FCST                  FLOAT     long_name       CHAR        18   T       FIELD + FCST_ERROR
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        20   T       RUN TF_TIMES YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ TF_TIMES              FLOAT     long_name       CHAR        25   T       Forecast time step matrix
+                                 units           CHAR        31   T       days since 01-JAN-1900 00:00:00
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 _CoordinateAxisType
+                                                 CHAR        4    T       Time
+                                 calendar        CHAR        9    T       GREGORIAN
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        25   T       TF_CAL_F TF_TIMES YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ 
+! plot and list the aggregation
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                1950    1950    1950    1950    1951    1951    1951    1951    1952    1952    1952  
+                 1       2       3       4       5       6       7       8       9      10      11
+ 15.2  /  1:  0.3308  0.3001  0.2668  0.2317  0.1953  0.1593  0.1222  0.0851  0.0486  0.0138 -0.0199
+ 45.6  /  2:  0.3453  0.2965  0.2624  0.2240  0.1894  0.1504  0.1121  0.0863  0.0525  0.0196 -0.0167
+ 76    /  3:  0.3319  0.3091  0.2654  0.2324  0.1761  0.1559  0.1246  0.0670  0.0344  0.0205 -0.0157
+ 106.4 /  4:  0.3184  0.2979  0.2596  0.2171  0.1555  0.1280  0.1215  0.0854  0.0421  0.0447  0.0361
+ 136.8 /  5:  0.3160  0.2501  0.2424  0.1723  0.1347  0.1038  0.0878  0.0543  0.0703  0.0260  0.0392
+ 167.2 /  6:  0.2888  0.1865  0.1544  0.1889  0.1184  0.0888  0.0830  0.0453  0.0910  0.0881  0.0345
+ 197.5 /  7:  0.1718  0.1641  0.1848  0.1604  0.1176  0.1330  0.0444  0.0940  0.0787  0.0613  0.1458
+ 227.9 /  8:  0.1266  0.1875  0.0983  0.0971  0.0576  0.0528  0.1196  0.0732  0.1283  0.1029  0.1147
+ 258.3 /  9:  0.1416  0.1048  0.0792  0.1302  0.1278  0.0588  0.1380  0.1241  0.1065  0.1050  0.2176
+ 288.7 / 10:  0.1275  0.1034  0.0772  0.1416  0.0450  0.1201  0.1679  0.2024  0.1395  0.2275  0.1590
+ 319.1 / 11:  0.0385  0.0194  0.0739  0.1482  0.1247  0.1833  0.1287  0.1830  0.1406  0.2100  0.2537
+ 349.5 / 12: -0.0359  0.0085  0.0426  0.0578  0.0799  0.1691  0.1258  0.2193  0.2261  0.2005  0.2238
+ 379.9 / 13: -0.0170  0.0135  0.0329  0.0698  0.1096  0.0967  0.2150  0.3087  0.2492  0.3527  0.3197
+ 410.3 / 14:  0.0479  0.1403 -0.0088  0.0596  0.1560  0.1085  0.2104  0.1930  0.2231  0.4187  0.3650
+ 440.7 / 15:  0.1228  0.0949  0.1626  0.1480  0.1623  0.2006  0.1533  0.2938  0.3674  0.2957  0.4216
+ 471.1 / 16: -0.0072  0.1918  0.0258  0.1213  0.2667  0.1604  0.2374  0.3573  0.4414  0.3070  0.3765
+ 501.5 / 17:  0.0518  0.0510  0.0654  0.1734  0.2131  0.1814  0.2729  0.3551  0.4522  0.3879  0.4448
+ 531.8 / 18:  0.0007  0.1034  0.0886  0.2906  0.2992  0.1942  0.3882  0.3758  0.2891  0.2431  0.2604
+ 562.2 / 19:  0.1838  0.1825  0.3120  0.2456  0.2396  0.2520  0.4347  0.2802  0.3323  0.1989  0.2438
+ 592.6 / 20:  0.1726  0.2160  0.3391  0.3763  0.1957  0.1832  0.2019  0.1743  0.4185  0.4028  0.4223
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 54 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         1950    1950    1950    1950    1951    1951    1951    1951    1952    1952    1952  
+                          1       2       3       4       5       6       7       8       9      10      11
+ 16-JAN-1950 12 /  1:  0.3308    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.3453    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.3319    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.3184  0.3001    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.3160  0.2965    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.2888  0.3091    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.1718  0.2979  0.2668    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.1266  0.2501  0.2624    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.1416  0.1865  0.2654    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.1275  0.1641  0.2596  0.2317    ....    ....    ....    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0385  0.1875  0.2424  0.2240    ....    ....    ....    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12: -0.0359  0.1048  0.1544  0.2324    ....    ....    ....    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13: -0.0170  0.1034  0.1848  0.2171  0.1953    ....    ....    ....    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0479  0.0194  0.0983  0.1723  0.1894    ....    ....    ....    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.1228  0.0085  0.0792  0.1889  0.1761    ....    ....    ....    ....    ....    ....
+ 16-APR-1951 00 / 16: -0.0072  0.0135  0.0772  0.1604  0.1555  0.1593    ....    ....    ....    ....    ....
+ 16-MAY-1951 12 / 17:  0.0518  0.1403  0.0739  0.0971  0.1347  0.1504    ....    ....    ....    ....    ....
+ 16-JUN-1951 00 / 18:  0.0007  0.0949  0.0426  0.1302  0.1184  0.1559    ....    ....    ....    ....    ....
+ 16-JUL-1951 12 / 19:  0.1838  0.1918  0.0329  0.1416  0.1176  0.1280  0.1222    ....    ....    ....    ....
+ 16-AUG-1951 12 / 20:  0.1726  0.0510 -0.0088  0.1482  0.0576  0.1038  0.1121    ....    ....    ....    ....
+ 16-SEP-1951 00 / 21:  0.3655  0.1034  0.1626  0.0578  0.1278  0.0888  0.1246    ....    ....    ....    ....
+ 16-OCT-1951 12 / 22:  0.3193  0.1825  0.0258  0.0698  0.0450  0.1330  0.1215  0.0851    ....    ....    ....
+ 16-NOV-1951 00 / 23:  0.1829  0.2160  0.0654  0.0596  0.1247  0.0528  0.0878  0.0863    ....    ....    ....
+ 16-DEC-1951 12 / 24:  0.4273  0.3928  0.0886  0.1480  0.0799  0.0588  0.0830  0.0670    ....    ....    ....
+ 16-JAN-1952 12 / 25:    ....  0.2804  0.3120  0.1213  0.1096  0.1201  0.0444  0.0854  0.0486    ....    ....
+ 15-FEB-1952 12 / 26:    ....  0.2155  0.3391  0.1734  0.1560  0.1833  0.1196  0.0543  0.0525    ....    ....
+ 16-MAR-1952 12 / 27:    ....  0.2246  0.2519  0.2906  0.1623  0.1691  0.1380  0.0453  0.0344    ....    ....
+ 16-APR-1952 00 / 28:    ....    ....  0.2021  0.2456  0.2667  0.0967  0.1679  0.0940  0.0421  0.0138    ....
+ 16-MAY-1952 12 / 29:    ....    ....  0.3907  0.3763  0.2131  0.1085  0.1287  0.0732  0.0703  0.0196    ....
+ 16-JUN-1952 00 / 30:    ....    ....  0.1899  0.4073  0.2992  0.2006  0.1258  0.1241  0.0910  0.0205    ....
+ 16-JUL-1952 12 / 31:    ....    ....    ....  0.3234  0.2396  0.1604  0.2150  0.2024  0.0787  0.0447 -0.0199
+ 16-AUG-1952 12 / 32:    ....    ....    ....  0.3334  0.1957  0.1814  0.2104  0.1830  0.1283  0.0260 -0.0167
+ 16-SEP-1952 00 / 33:    ....    ....    ....  0.2259  0.2331  0.1942  0.1533  0.2193  0.1065  0.0881 -0.0157
+ 16-OCT-1952 12 / 34:    ....    ....    ....    ....  0.4350  0.2520  0.2374  0.3087  0.1395  0.0613  0.0361
+ 16-NOV-1952 00 / 35:    ....    ....    ....    ....  0.4583  0.1832  0.2729  0.1930  0.1406  0.1029  0.0392
+ 16-DEC-1952 12 / 36:    ....    ....    ....    ....  0.4633  0.3565  0.3882  0.2938  0.2261  0.1050  0.0345
+ 16-JAN-1953 12 / 37:    ....    ....    ....    ....    ....  0.2654  0.4347  0.3573  0.2492  0.2275  0.1458
+ 15-FEB-1953 00 / 38:    ....    ....    ....    ....    ....  0.3712  0.2019  0.3551  0.2231  0.2100  0.1147
+ 16-MAR-1953 12 / 39:    ....    ....    ....    ....    ....  0.3677  0.2477  0.3758  0.3674  0.2005  0.2176
+ 16-APR-1953 00 / 40:    ....    ....    ....    ....    ....    ....  0.3270  0.2802  0.4414  0.3527  0.1590
+ 16-MAY-1953 12 / 41:    ....    ....    ....    ....    ....    ....  0.1943  0.1743  0.4522  0.4187  0.2537
+ 16-JUN-1953 00 / 42:    ....    ....    ....    ....    ....    ....  0.3242  0.1867  0.2891  0.2957  0.2238
+ 16-JUL-1953 12 / 43:    ....    ....    ....    ....    ....    ....    ....  0.3779  0.3323  0.3070  0.3197
+ 16-AUG-1953 12 / 44:    ....    ....    ....    ....    ....    ....    ....  0.2493  0.4185  0.3879  0.3650
+ 16-SEP-1953 00 / 45:    ....    ....    ....    ....    ....    ....    ....  0.0767  0.1507  0.2431  0.4216
+ 16-OCT-1953 12 / 46:    ....    ....    ....    ....    ....    ....    ....    ....  0.3272  0.1989  0.3765
+ 16-NOV-1953 00 / 47:    ....    ....    ....    ....    ....    ....    ....    ....  0.3700  0.4028  0.4448
+ 16-DEC-1953 12 / 48:    ....    ....    ....    ....    ....    ....    ....    ....  0.1684  0.3239  0.2604
+ 16-JAN-1954 12 / 49:    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.1105  0.2438
+ 15-FEB-1954 00 / 50:    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.3000  0.4223
+ 16-MAR-1954 12 / 51:    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.1442  0.3856
+ 16-APR-1954 00 / 52:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.1980
+ 16-MAY-1954 12 / 53:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.2112
+ 16-JUN-1954 00 / 54:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.2043
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.8   228     319.2   410.4   501.6   592.8   684    
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.0000  0.0182    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.0000  0.0195    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.0000 -0.0203    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.0000  0.0311 -0.0950    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.0000 -0.0124 -0.1358    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.0000 -0.0790 -0.1238    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000  0.0280 -0.0676 -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000  0.0184 -0.0365 -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000 -0.0780 -0.1276 -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218 -0.0105 -0.0920 -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171 -0.0911 -0.1699 -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127 -0.0969 -0.1677 -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011 -0.0821 -0.1458 -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533 -0.0765 -0.0101 -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258 -0.1133 -0.0610 -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194 -0.0893  0.0696  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361 -0.1209 -0.0611  0.0605    ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.8   228     319.2   410.4   501.6   592.8   684    
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.0000  0.0182    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.0000  0.0195    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.0000 -0.0203    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.0000  0.0311 -0.0950    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.0000 -0.0124 -0.1358    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.0000 -0.0790 -0.1238    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000  0.0280 -0.0676 -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000  0.0184 -0.0365 -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000 -0.0780 -0.1276 -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218 -0.0105 -0.0920 -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171 -0.0911 -0.1699 -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127 -0.0969 -0.1677 -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011 -0.0821 -0.1458 -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533 -0.0765 -0.0101 -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258 -0.1133 -0.0610 -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194 -0.0893  0.0696  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361 -0.1209 -0.0611  0.0605    ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+ 
+cancel data my_fmrc
+show data/hidden   ! note that all member files were canceled, too
+     currently SET data sets:
+ 
+! agg with 2nd, 3rd, 9th and 10th forecasts missing
+use tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_9.nc, tmp/fcst_10.nc, tmp/fcst_11.nc
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc/hide my_fmrc = XCAT(files[I=6:10],{"6","1"})           ! double-wide gaps
+!fmrc my_fmrc = XCAT(files[I=6:10],{"6","1","2","5"})  ! single-wide gaps
+show data/files my_fmrc
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:11
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1 : tmp/fcst_1.nc
+      2 : (dummy)
+      3 : (dummy)
+      4 : tmp/fcst_4.nc
+      5 : tmp/fcst_5.nc
+      6 : tmp/fcst_6.nc
+      7 : tmp/fcst_7.nc
+      8 : tmp/fcst_8.nc
+      9 : (dummy)
+      10: (dummy)
+      11: tmp/fcst_11.nc
+show data/brief
+     currently SET data sets:
+    2> tmp/fcst_2.nc
+    3> tmp/fcst_3.nc
+    4> tmp/fcst_9.nc
+    5> tmp/fcst_10.nc
+   12> my_fmrc  (default)  Forecast aggregation
+LIST tf_times
+             VARIABLE : Forecast time step matrix (days since 01-JAN-1900 00:00:00)
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 24 by 11 points (MODEL ELAPSED TIME (day)-FORECAST)
+             Verification time increases across row.  Initialization time increases down page. 
+      ... listing every   2th point
+                      15.2    76     136.8   197.5   258.3   319.1   379.9   440.7   501.5   562.2   623     683.8  
+                       1       3       5       7       9      11      13      15      17      19      21      23
+ 01-JAN-1950 /  1:  18278.  18337.  18398.  18459.  18520.  18581.  18643.  18702.  18763.  18824.  18885.  18946.
+ 01-APR-1950 /  2:  18367.  18428.  18490.  18551.  18612.  18672.  18732.  18793.  18855.  18916.  18977.  19038.
+ 01-JUL-1950 /  3:  18459.  18520.  18581.  18643.  18702.  18763.  18824.  18885.  18946.  19008.  19068.  19129.
+ 01-OCT-1950 /  4:  18551.  18612.  18672.  18732.  18793.  18855.  18916.  18977.  19038.  19098.  19159.  19221.
+ 01-JAN-1951 /  5:  18643.  18702.  18763.  18824.  18885.  18946.  19008.  19068.  19129.  19190.  19251.  19312.
+ 01-APR-1951 /  6:  18732.  18793.  18855.  18916.  18977.  19038.  19098.  19159.  19221.  19282.  19343.  19403.
+ 01-JUL-1951 /  7:  18824.  18885.  18946.  19008.  19068.  19129.  19190.  19251.  19312.  19374.  19433.  19494.
+ 01-OCT-1951 /  8:  18916.  18977.  19038.  19098.  19159.  19221.  19282.  19343.  19403.  19463.  19524.  19586.
+ 01-JAN-1952 /  9:  19008.  19068.  19129.  19190.  19251.  19312.  19374.  19433.  19494.  19555.  19616.  19677.
+ 01-APR-1952 / 10:  19098.  19159.  19221.  19282.  19343.  19403.  19463.  19524.  19586.  19647.  19708.  19768.
+ 01-JUL-1952 / 11:  19190.  19251.  19312.  19374.  19433.  19494.  19555.  19616.  19677.  19739.  19798.  19859.
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                1950    1950    1950    1950    1951    1951    1951    1951    1952    1952    1952  
+                 1       2       3       4       5       6       7       8       9      10      11
+ 15.2  /  1:  0.3308    ....    ....  0.2317  0.1953  0.1593  0.1222  0.0851    ....    .... -0.0199
+ 45.6  /  2:  0.3453    ....    ....  0.2240  0.1894  0.1504  0.1121  0.0863    ....    .... -0.0167
+ 76    /  3:  0.3319    ....    ....  0.2324  0.1761  0.1559  0.1246  0.0670    ....    .... -0.0157
+ 106.4 /  4:  0.3184    ....    ....  0.2171  0.1555  0.1280  0.1215  0.0854    ....    ....  0.0361
+ 136.8 /  5:  0.3160    ....    ....  0.1723  0.1347  0.1038  0.0878  0.0543    ....    ....  0.0392
+ 167.2 /  6:  0.2888    ....    ....  0.1889  0.1184  0.0888  0.0830  0.0453    ....    ....  0.0345
+ 197.5 /  7:  0.1718    ....    ....  0.1604  0.1176  0.1330  0.0444  0.0940    ....    ....  0.1458
+ 227.9 /  8:  0.1266    ....    ....  0.0971  0.0576  0.0528  0.1196  0.0732    ....    ....  0.1147
+ 258.3 /  9:  0.1416    ....    ....  0.1302  0.1278  0.0588  0.1380  0.1241    ....    ....  0.2176
+ 288.7 / 10:  0.1275    ....    ....  0.1416  0.0450  0.1201  0.1679  0.2024    ....    ....  0.1590
+ 319.1 / 11:  0.0385    ....    ....  0.1482  0.1247  0.1833  0.1287  0.1830    ....    ....  0.2537
+ 349.5 / 12: -0.0359    ....    ....  0.0578  0.0799  0.1691  0.1258  0.2193    ....    ....  0.2238
+ 379.9 / 13: -0.0170    ....    ....  0.0698  0.1096  0.0967  0.2150  0.3087    ....    ....  0.3197
+ 410.3 / 14:  0.0479    ....    ....  0.0596  0.1560  0.1085  0.2104  0.1930    ....    ....  0.3650
+ 440.7 / 15:  0.1228    ....    ....  0.1480  0.1623  0.2006  0.1533  0.2938    ....    ....  0.4216
+ 471.1 / 16: -0.0072    ....    ....  0.1213  0.2667  0.1604  0.2374  0.3573    ....    ....  0.3765
+ 501.5 / 17:  0.0518    ....    ....  0.1734  0.2131  0.1814  0.2729  0.3551    ....    ....  0.4448
+ 531.8 / 18:  0.0007    ....    ....  0.2906  0.2992  0.1942  0.3882  0.3758    ....    ....  0.2604
+ 562.2 / 19:  0.1838    ....    ....  0.2456  0.2396  0.2520  0.4347  0.2802    ....    ....  0.2438
+ 592.6 / 20:  0.1726    ....    ....  0.3763  0.1957  0.1832  0.2019  0.1743    ....    ....  0.4223
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 54 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         1950    1950    1950    1950    1951    1951    1951    1951    1952    1952    1952  
+                          1       2       3       4       5       6       7       8       9      10      11
+ 16-JAN-1950 12 /  1:  0.3308    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.3453    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.3319    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.3184    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.3160    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.2888    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.1718    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.1266    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.1416    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.1275    ....    ....  0.2317    ....    ....    ....    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0385    ....    ....  0.2240    ....    ....    ....    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12: -0.0359    ....    ....  0.2324    ....    ....    ....    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13: -0.0170    ....    ....  0.2171  0.1953    ....    ....    ....    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0479    ....    ....  0.1723  0.1894    ....    ....    ....    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.1228    ....    ....  0.1889  0.1761    ....    ....    ....    ....    ....    ....
+ 16-APR-1951 00 / 16: -0.0072    ....    ....  0.1604  0.1555  0.1593    ....    ....    ....    ....    ....
+ 16-MAY-1951 12 / 17:  0.0518    ....    ....  0.0971  0.1347  0.1504    ....    ....    ....    ....    ....
+ 16-JUN-1951 00 / 18:  0.0007    ....    ....  0.1302  0.1184  0.1559    ....    ....    ....    ....    ....
+ 16-JUL-1951 12 / 19:  0.1838    ....    ....  0.1416  0.1176  0.1280  0.1222    ....    ....    ....    ....
+ 16-AUG-1951 12 / 20:  0.1726    ....    ....  0.1482  0.0576  0.1038  0.1121    ....    ....    ....    ....
+ 16-SEP-1951 00 / 21:  0.3655    ....    ....  0.0578  0.1278  0.0888  0.1246    ....    ....    ....    ....
+ 16-OCT-1951 12 / 22:  0.3193    ....    ....  0.0698  0.0450  0.1330  0.1215  0.0851    ....    ....    ....
+ 16-NOV-1951 00 / 23:  0.1829    ....    ....  0.0596  0.1247  0.0528  0.0878  0.0863    ....    ....    ....
+ 16-DEC-1951 12 / 24:  0.4273    ....    ....  0.1480  0.0799  0.0588  0.0830  0.0670    ....    ....    ....
+ 16-JAN-1952 12 / 25:    ....    ....    ....  0.1213  0.1096  0.1201  0.0444  0.0854    ....    ....    ....
+ 15-FEB-1952 12 / 26:    ....    ....    ....  0.1734  0.1560  0.1833  0.1196  0.0543    ....    ....    ....
+ 16-MAR-1952 12 / 27:    ....    ....    ....  0.2906  0.1623  0.1691  0.1380  0.0453    ....    ....    ....
+ 16-APR-1952 00 / 28:    ....    ....    ....  0.2456  0.2667  0.0967  0.1679  0.0940    ....    ....    ....
+ 16-MAY-1952 12 / 29:    ....    ....    ....  0.3763  0.2131  0.1085  0.1287  0.0732    ....    ....    ....
+ 16-JUN-1952 00 / 30:    ....    ....    ....  0.4073  0.2992  0.2006  0.1258  0.1241    ....    ....    ....
+ 16-JUL-1952 12 / 31:    ....    ....    ....  0.3234  0.2396  0.1604  0.2150  0.2024    ....    .... -0.0199
+ 16-AUG-1952 12 / 32:    ....    ....    ....  0.3334  0.1957  0.1814  0.2104  0.1830    ....    .... -0.0167
+ 16-SEP-1952 00 / 33:    ....    ....    ....  0.2259  0.2331  0.1942  0.1533  0.2193    ....    .... -0.0157
+ 16-OCT-1952 12 / 34:    ....    ....    ....    ....  0.4350  0.2520  0.2374  0.3087    ....    ....  0.0361
+ 16-NOV-1952 00 / 35:    ....    ....    ....    ....  0.4583  0.1832  0.2729  0.1930    ....    ....  0.0392
+ 16-DEC-1952 12 / 36:    ....    ....    ....    ....  0.4633  0.3565  0.3882  0.2938    ....    ....  0.0345
+ 16-JAN-1953 12 / 37:    ....    ....    ....    ....    ....  0.2654  0.4347  0.3573    ....    ....  0.1458
+ 15-FEB-1953 00 / 38:    ....    ....    ....    ....    ....  0.3712  0.2019  0.3551    ....    ....  0.1147
+ 16-MAR-1953 12 / 39:    ....    ....    ....    ....    ....  0.3677  0.2477  0.3758    ....    ....  0.2176
+ 16-APR-1953 00 / 40:    ....    ....    ....    ....    ....    ....  0.3270  0.2802    ....    ....  0.1590
+ 16-MAY-1953 12 / 41:    ....    ....    ....    ....    ....    ....  0.1943  0.1743    ....    ....  0.2537
+ 16-JUN-1953 00 / 42:    ....    ....    ....    ....    ....    ....  0.3242  0.1867    ....    ....  0.2238
+ 16-JUL-1953 12 / 43:    ....    ....    ....    ....    ....    ....    ....  0.3779    ....    ....  0.3197
+ 16-AUG-1953 12 / 44:    ....    ....    ....    ....    ....    ....    ....  0.2493    ....    ....  0.3650
+ 16-SEP-1953 00 / 45:    ....    ....    ....    ....    ....    ....    ....  0.0767    ....    ....  0.4216
+ 16-OCT-1953 12 / 46:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.3765
+ 16-NOV-1953 00 / 47:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.4448
+ 16-DEC-1953 12 / 48:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.2604
+ 16-JAN-1954 12 / 49:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.2438
+ 15-FEB-1954 00 / 50:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.4223
+ 16-MAR-1954 12 / 51:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.3856
+ 16-APR-1954 00 / 52:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.1980
+ 16-MAY-1954 12 / 53:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.2112
+ 16-JUN-1954 00 / 54:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.2043
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.8   228     319.2   410.4   501.6   592.8   684    
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000    ....    .... -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000    ....    .... -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000    ....    .... -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218    ....    .... -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171    ....    .... -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127    ....    .... -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011    ....    .... -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533    ....    .... -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258    ....    .... -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194    ....    ....  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361    ....    ....  0.0605    ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.8   228     319.2   410.4   501.6   592.8   684    
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000    ....    .... -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000    ....    .... -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000    ....    .... -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218    ....    .... -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171    ....    .... -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127    ....    .... -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011    ....    .... -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533    ....    .... -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258    ....    .... -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194    ....    ....  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361    ....    ....  0.0605    ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+ 
+cancel data my_fmrc
+show data/brief/hidden
+     currently SET data sets:
+    2> tmp/fcst_2.nc
+    3> tmp/fcst_3.nc
+    4> tmp/fcst_9.nc
+    5> tmp/fcst_10.nc
+    6> tmp/fcst_11.nc
+    7> tmp/fcst_4.nc
+    8> tmp/fcst_5.nc
+    9> tmp/fcst_6.nc
+   10> tmp/fcst_7.nc
+   11> tmp/fcst_8.nc
+   12> my_fmrc  (default)  Forecast aggregation
+cancel data/all
+ 
+! agg with the first forecast of longer time range than the others
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc/hide my_fmrc = XCAT(files[I=4:11],{"tmp/long_fcst_1.nc"}) ! first member is long
+show data/files my_fmrc
+     currently SET data sets:
+   10> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:9
+       (L=1:36)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:9
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:9
+       (L=1:36)
+ 
+          Aggregated datasets:
+      1: tmp/long_fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/fcst_6.nc
+      7: tmp/fcst_7.nc
+      8: tmp/fcst_8.nc
+      9: tmp/fcst_9.nc
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 9 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                1950    1950    1950    1950    1951    1951    1951    1951    1952  
+                 1       2       3       4       5       6       7       8       9
+ 15.2  /  1:  0.3308  0.3001  0.2668  0.2317  0.1953  0.1593  0.1222  0.0851  0.0486
+ 45.6  /  2:  0.3453  0.2965  0.2624  0.2240  0.1894  0.1504  0.1121  0.0863  0.0525
+ 76    /  3:  0.3319  0.3091  0.2654  0.2324  0.1761  0.1559  0.1246  0.0670  0.0344
+ 106.4 /  4:  0.3184  0.2979  0.2596  0.2171  0.1555  0.1280  0.1215  0.0854  0.0421
+ 136.8 /  5:  0.3160  0.2501  0.2424  0.1723  0.1347  0.1038  0.0878  0.0543  0.0703
+ 167.2 /  6:  0.2888  0.1865  0.1544  0.1889  0.1184  0.0888  0.0830  0.0453  0.0910
+ 197.5 /  7:  0.1718  0.1641  0.1848  0.1604  0.1176  0.1330  0.0444  0.0940  0.0787
+ 227.9 /  8:  0.1266  0.1875  0.0983  0.0971  0.0576  0.0528  0.1196  0.0732  0.1283
+ 258.3 /  9:  0.1416  0.1048  0.0792  0.1302  0.1278  0.0588  0.1380  0.1241  0.1065
+ 288.7 / 10:  0.1275  0.1034  0.0772  0.1416  0.0450  0.1201  0.1679  0.2024  0.1395
+ 319.1 / 11:  0.0385  0.0194  0.0739  0.1482  0.1247  0.1833  0.1287  0.1830  0.1406
+ 349.5 / 12: -0.0359  0.0085  0.0426  0.0578  0.0799  0.1691  0.1258  0.2193  0.2261
+ 379.9 / 13: -0.0170  0.0135  0.0329  0.0698  0.1096  0.0967  0.2150  0.3087  0.2492
+ 410.3 / 14:  0.0479  0.1403 -0.0088  0.0596  0.1560  0.1085  0.2104  0.1930  0.2231
+ 440.7 / 15:  0.1228  0.0949  0.1626  0.1480  0.1623  0.2006  0.1533  0.2938  0.3674
+ 471.1 / 16: -0.0072  0.1918  0.0258  0.1213  0.2667  0.1604  0.2374  0.3573  0.4414
+ 501.5 / 17:  0.0518  0.0510  0.0654  0.1734  0.2131  0.1814  0.2729  0.3551  0.4522
+ 531.8 / 18:  0.0007  0.1034  0.0886  0.2906  0.2992  0.1942  0.3882  0.3758  0.2891
+ 562.2 / 19:  0.1838  0.1825  0.3120  0.2456  0.2396  0.2520  0.4347  0.2802  0.3323
+ 592.6 / 20:  0.1726  0.2160  0.3391  0.3763  0.1957  0.1832  0.2019  0.1743  0.4185
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 9 by 48 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         1950    1950    1950    1950    1951    1951    1951    1951    1952  
+                          1       2       3       4       5       6       7       8       9
+ 16-JAN-1950 12 /  1:  0.3308    ....    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.3453    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.3319    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.3184  0.3001    ....    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.3160  0.2965    ....    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.2888  0.3091    ....    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.1718  0.2979  0.2668    ....    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.1266  0.2501  0.2624    ....    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.1416  0.1865  0.2654    ....    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.1275  0.1641  0.2596  0.2317    ....    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0385  0.1875  0.2424  0.2240    ....    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12: -0.0359  0.1048  0.1544  0.2324    ....    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13: -0.0170  0.1034  0.1848  0.2171  0.1953    ....    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0479  0.0194  0.0983  0.1723  0.1894    ....    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.1228  0.0085  0.0792  0.1889  0.1761    ....    ....    ....    ....
+ 16-APR-1951 00 / 16: -0.0072  0.0135  0.0772  0.1604  0.1555  0.1593    ....    ....    ....
+ 16-MAY-1951 12 / 17:  0.0518  0.1403  0.0739  0.0971  0.1347  0.1504    ....    ....    ....
+ 16-JUN-1951 00 / 18:  0.0007  0.0949  0.0426  0.1302  0.1184  0.1559    ....    ....    ....
+ 16-JUL-1951 12 / 19:  0.1838  0.1918  0.0329  0.1416  0.1176  0.1280  0.1222    ....    ....
+ 16-AUG-1951 12 / 20:  0.1726  0.0510 -0.0088  0.1482  0.0576  0.1038  0.1121    ....    ....
+ 16-SEP-1951 00 / 21:  0.3655  0.1034  0.1626  0.0578  0.1278  0.0888  0.1246    ....    ....
+ 16-OCT-1951 12 / 22:  0.3193  0.1825  0.0258  0.0698  0.0450  0.1330  0.1215  0.0851    ....
+ 16-NOV-1951 00 / 23:  0.1829  0.2160  0.0654  0.0596  0.1247  0.0528  0.0878  0.0863    ....
+ 16-DEC-1951 12 / 24:  0.4273  0.3928  0.0886  0.1480  0.0799  0.0588  0.0830  0.0670    ....
+ 16-JAN-1952 12 / 25:    ....  0.2804  0.3120  0.1213  0.1096  0.1201  0.0444  0.0854  0.0486
+ 15-FEB-1952 12 / 26:    ....  0.2155  0.3391  0.1734  0.1560  0.1833  0.1196  0.0543  0.0525
+ 16-MAR-1952 12 / 27:    ....  0.2246  0.2519  0.2906  0.1623  0.1691  0.1380  0.0453  0.0344
+ 16-APR-1952 00 / 28:    ....    ....  0.2021  0.2456  0.2667  0.0967  0.1679  0.0940  0.0421
+ 16-MAY-1952 12 / 29:    ....    ....  0.3907  0.3763  0.2131  0.1085  0.1287  0.0732  0.0703
+ 16-JUN-1952 00 / 30:    ....    ....  0.1899  0.4073  0.2992  0.2006  0.1258  0.1241  0.0910
+ 16-JUL-1952 12 / 31:    ....    ....    ....  0.3234  0.2396  0.1604  0.2150  0.2024  0.0787
+ 16-AUG-1952 12 / 32:    ....    ....    ....  0.3334  0.1957  0.1814  0.2104  0.1830  0.1283
+ 16-SEP-1952 00 / 33:    ....    ....    ....  0.2259  0.2331  0.1942  0.1533  0.2193  0.1065
+ 16-OCT-1952 12 / 34:    ....    ....    ....    ....  0.4350  0.2520  0.2374  0.3087  0.1395
+ 16-NOV-1952 00 / 35:    ....    ....    ....    ....  0.4583  0.1832  0.2729  0.1930  0.1406
+ 16-DEC-1952 12 / 36:    ....    ....    ....    ....  0.4633  0.3565  0.3882  0.2938  0.2261
+ 16-JAN-1953 12 / 37:    ....    ....    ....    ....    ....  0.2654  0.4347  0.3573  0.2492
+ 15-FEB-1953 00 / 38:    ....    ....    ....    ....    ....  0.3712  0.2019  0.3551  0.2231
+ 16-MAR-1953 12 / 39:    ....    ....    ....    ....    ....  0.3677  0.2477  0.3758  0.3674
+ 16-APR-1953 00 / 40:    ....    ....    ....    ....    ....    ....  0.3270  0.2802  0.4414
+ 16-MAY-1953 12 / 41:    ....    ....    ....    ....    ....    ....  0.1943  0.1743  0.4522
+ 16-JUN-1953 00 / 42:    ....    ....    ....    ....    ....    ....  0.3242  0.1867  0.2891
+ 16-JUL-1953 12 / 43:    ....    ....    ....    ....    ....    ....    ....  0.3779  0.3323
+ 16-AUG-1953 12 / 44:    ....    ....    ....    ....    ....    ....    ....  0.2493  0.4185
+ 16-SEP-1953 00 / 45:    ....    ....    ....    ....    ....    ....    ....  0.0767  0.1507
+ 16-OCT-1953 12 / 46:    ....    ....    ....    ....    ....    ....    ....    ....  0.3272
+ 16-NOV-1953 00 / 47:    ....    ....    ....    ....    ....    ....    ....    ....  0.3700
+ 16-DEC-1953 12 / 48:    ....    ....    ....    ....    ....    ....    ....    ....  0.1684
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.9   228.1   319.4   410.6   501.9   593.1   684.4  
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.0000  0.0182    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.0000  0.0195    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.0000 -0.0203    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.0000  0.0311 -0.0950    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.0000 -0.0124 -0.1358    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.0000 -0.0790 -0.1238    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000  0.0280 -0.0676 -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000  0.0184 -0.0365 -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000 -0.0780 -0.1276 -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218 -0.0105 -0.0920 -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171 -0.0911 -0.1699 -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127 -0.0969 -0.1677 -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011 -0.0821 -0.1458 -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533 -0.0765 -0.0101 -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258 -0.1133 -0.0610 -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194 -0.0893  0.0696  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361 -0.1209 -0.0611  0.0605    ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.9   228.1   319.4   410.6   501.9   593.1   684.4  
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.0000  0.0182    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.0000  0.0195    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.0000 -0.0203    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.0000  0.0311 -0.0950    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.0000 -0.0124 -0.1358    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.0000 -0.0790 -0.1238    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000  0.0280 -0.0676 -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000  0.0184 -0.0365 -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000 -0.0780 -0.1276 -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218 -0.0105 -0.0920 -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171 -0.0911 -0.1699 -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127 -0.0969 -0.1677 -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011 -0.0821 -0.1458 -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533 -0.0765 -0.0101 -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258 -0.1133 -0.0610 -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194 -0.0893  0.0696  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361 -0.1209 -0.0611  0.0605    ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+cancel data my_fmrc
+ 
+! agg with the sixth forecast of longer time range than the others
+fmrc/hide my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/long_fcst_6.nc, tmp/fcst_7.nc, tmp/fcst_8.nc
+show data/files my_fmrc
+     currently SET data sets:
+    9> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:8
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:8
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:8
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/long_fcst_6.nc
+      7: tmp/fcst_7.nc
+      8: tmp/fcst_8.nc
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                1950    1950    1950    1950    1951    1951    1951    1951  
+                 1       2       3       4       5       6       7       8
+ 15.2  /  1:  0.3308  0.3001  0.2668  0.2317  0.1953  0.1593  0.1222  0.0851
+ 45.6  /  2:  0.3453  0.2965  0.2624  0.2240  0.1894  0.1504  0.1121  0.0863
+ 76    /  3:  0.3319  0.3091  0.2654  0.2324  0.1761  0.1559  0.1246  0.0670
+ 106.4 /  4:  0.3184  0.2979  0.2596  0.2171  0.1555  0.1280  0.1215  0.0854
+ 136.8 /  5:  0.3160  0.2501  0.2424  0.1723  0.1347  0.1038  0.0878  0.0543
+ 167.2 /  6:  0.2888  0.1865  0.1544  0.1889  0.1184  0.0888  0.0830  0.0453
+ 197.5 /  7:  0.1718  0.1641  0.1848  0.1604  0.1176  0.1330  0.0444  0.0940
+ 227.9 /  8:  0.1266  0.1875  0.0983  0.0971  0.0576  0.0528  0.1196  0.0732
+ 258.3 /  9:  0.1416  0.1048  0.0792  0.1302  0.1278  0.0588  0.1380  0.1241
+ 288.7 / 10:  0.1275  0.1034  0.0772  0.1416  0.0450  0.1201  0.1679  0.2024
+ 319.1 / 11:  0.0385  0.0194  0.0739  0.1482  0.1247  0.1833  0.1287  0.1830
+ 349.5 / 12: -0.0359  0.0085  0.0426  0.0578  0.0799  0.1691  0.1258  0.2193
+ 379.9 / 13: -0.0170  0.0135  0.0329  0.0698  0.1096  0.0967  0.2150  0.3087
+ 410.3 / 14:  0.0479  0.1403 -0.0088  0.0596  0.1560  0.1085  0.2104  0.1930
+ 440.7 / 15:  0.1228  0.0949  0.1626  0.1480  0.1623  0.2006  0.1533  0.2938
+ 471.1 / 16: -0.0072  0.1918  0.0258  0.1213  0.2667  0.1604  0.2374  0.3573
+ 501.5 / 17:  0.0518  0.0510  0.0654  0.1734  0.2131  0.1814  0.2729  0.3551
+ 531.8 / 18:  0.0007  0.1034  0.0886  0.2906  0.2992  0.1942  0.3882  0.3758
+ 562.2 / 19:  0.1838  0.1825  0.3120  0.2456  0.2396  0.2520  0.4347  0.2802
+ 592.6 / 20:  0.1726  0.2160  0.3391  0.3763  0.1957  0.1832  0.2019  0.1743
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 45 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         1950    1950    1950    1950    1951    1951    1951    1951  
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.3308    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.3453    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.3319    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.3184  0.3001    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.3160  0.2965    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.2888  0.3091    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.1718  0.2979  0.2668    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.1266  0.2501  0.2624    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.1416  0.1865  0.2654    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.1275  0.1641  0.2596  0.2317    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0385  0.1875  0.2424  0.2240    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12: -0.0359  0.1048  0.1544  0.2324    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13: -0.0170  0.1034  0.1848  0.2171  0.1953    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0479  0.0194  0.0983  0.1723  0.1894    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.1228  0.0085  0.0792  0.1889  0.1761    ....    ....    ....
+ 16-APR-1951 00 / 16: -0.0072  0.0135  0.0772  0.1604  0.1555  0.1593    ....    ....
+ 16-MAY-1951 12 / 17:  0.0518  0.1403  0.0739  0.0971  0.1347  0.1504    ....    ....
+ 16-JUN-1951 00 / 18:  0.0007  0.0949  0.0426  0.1302  0.1184  0.1559    ....    ....
+ 16-JUL-1951 12 / 19:  0.1838  0.1918  0.0329  0.1416  0.1176  0.1280  0.1222    ....
+ 16-AUG-1951 12 / 20:  0.1726  0.0510 -0.0088  0.1482  0.0576  0.1038  0.1121    ....
+ 16-SEP-1951 00 / 21:  0.3655  0.1034  0.1626  0.0578  0.1278  0.0888  0.1246    ....
+ 16-OCT-1951 12 / 22:  0.3193  0.1825  0.0258  0.0698  0.0450  0.1330  0.1215  0.0851
+ 16-NOV-1951 00 / 23:  0.1829  0.2160  0.0654  0.0596  0.1247  0.0528  0.0878  0.0863
+ 16-DEC-1951 12 / 24:  0.4273  0.3928  0.0886  0.1480  0.0799  0.0588  0.0830  0.0670
+ 16-JAN-1952 12 / 25:    ....  0.2804  0.3120  0.1213  0.1096  0.1201  0.0444  0.0854
+ 15-FEB-1952 12 / 26:    ....  0.2155  0.3391  0.1734  0.1560  0.1833  0.1196  0.0543
+ 16-MAR-1952 12 / 27:    ....  0.2246  0.2519  0.2906  0.1623  0.1691  0.1380  0.0453
+ 16-APR-1952 00 / 28:    ....    ....  0.2021  0.2456  0.2667  0.0967  0.1679  0.0940
+ 16-MAY-1952 12 / 29:    ....    ....  0.3907  0.3763  0.2131  0.1085  0.1287  0.0732
+ 16-JUN-1952 00 / 30:    ....    ....  0.1899  0.4073  0.2992  0.2006  0.1258  0.1241
+ 16-JUL-1952 12 / 31:    ....    ....    ....  0.3234  0.2396  0.1604  0.2150  0.2024
+ 16-AUG-1952 12 / 32:    ....    ....    ....  0.3334  0.1957  0.1814  0.2104  0.1830
+ 16-SEP-1952 00 / 33:    ....    ....    ....  0.2259  0.2331  0.1942  0.1533  0.2193
+ 16-OCT-1952 12 / 34:    ....    ....    ....    ....  0.4350  0.2520  0.2374  0.3087
+ 16-NOV-1952 00 / 35:    ....    ....    ....    ....  0.4583  0.1832  0.2729  0.1930
+ 16-DEC-1952 12 / 36:    ....    ....    ....    ....  0.4633  0.3565  0.3882  0.2938
+ 16-JAN-1953 12 / 37:    ....    ....    ....    ....    ....  0.2654  0.4347  0.3573
+ 15-FEB-1953 00 / 38:    ....    ....    ....    ....    ....  0.3712  0.2019  0.3551
+ 16-MAR-1953 12 / 39:    ....    ....    ....    ....    ....  0.3677  0.2477  0.3758
+ 16-APR-1953 00 / 40:    ....    ....    ....    ....    ....    ....  0.3270  0.2802
+ 16-MAY-1953 12 / 41:    ....    ....    ....    ....    ....    ....  0.1943  0.1743
+ 16-JUN-1953 00 / 42:    ....    ....    ....    ....    ....    ....  0.3242  0.1867
+ 16-JUL-1953 12 / 43:    ....    ....    ....    ....    ....    ....    ....  0.3779
+ 16-AUG-1953 12 / 44:    ....    ....    ....    ....    ....    ....    ....  0.2493
+ 16-SEP-1953 00 / 45:    ....    ....    ....    ....    ....    ....    ....  0.0767
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.7   227.9   319     410.1   501.3   592.4   683.6  
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.0000  0.0182    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.0000  0.0195    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.0000 -0.0203    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.0000  0.0311 -0.0950    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.0000 -0.0124 -0.1358    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.0000 -0.0790 -0.1238    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000  0.0280 -0.0676 -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000  0.0184 -0.0365 -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000 -0.0780 -0.1276 -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218 -0.0105 -0.0920 -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171 -0.0911 -0.1699 -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127 -0.0969 -0.1677 -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011 -0.0821 -0.1458 -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533 -0.0765 -0.0101 -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258 -0.1133 -0.0610 -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194 -0.0893  0.0696  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361 -0.1209 -0.0611  0.0605    ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.7   227.9   319     410.1   501.3   592.4   683.6  
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.0000  0.0182    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.0000  0.0195    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.0000 -0.0203    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.0000  0.0311 -0.0950    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.0000 -0.0124 -0.1358    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.0000 -0.0790 -0.1238    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000  0.0280 -0.0676 -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000  0.0184 -0.0365 -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000 -0.0780 -0.1276 -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218 -0.0105 -0.0920 -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171 -0.0911 -0.1699 -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127 -0.0969 -0.1677 -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011 -0.0821 -0.1458 -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533 -0.0765 -0.0101 -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258 -0.1133 -0.0610 -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194 -0.0893  0.0696  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361 -0.1209 -0.0611  0.0605    ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+cancel data my_fmrc
+ 
+! agg where one dataset lacks one of the variables
+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/files
+     currently SET data sets:
+    6> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:5
+       (L=7:30)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
+ 
+          Aggregated datasets:
+      1: tmp/fcst_3.nc
+      2: tmp/fcst_4.nc
+      3: tmp/fcst_5.nc
+      4: tmp/one_var_fcst_6.nc
+      5: tmp/fcst_7.nc
+stat/l=1:20 fcst
+ 
+             FIELD + FCST_ERROR
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             MODEL ELAPSED TIME (day): 0 to 609.13
+             E:  N/A
+             FORECAST: 16-MAY-1950 09:00 to 15-AUG-1951 15:00
+             DATA SET: my_fmrc
+ 
+ Total # of data points: 44100 (21*21*1*20*1*5)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.3839
+ Mean    value: 0.11163 (unweighted average)
+ Standard deviation: 0.54048
+cancel data my_fmrc
+ 
+! ... added 1/28/2016
+! the same agg, but the dataset name pulled implicitly from the script name
+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
+ 
+! 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
+     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
+       (L=7:30)
+               on grid GFN1 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=19.5N:40.5N  F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
+             days since 01-JAN-1900 00:00:00 on grid FTI with -1.E+34 for missing data
+             F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ 
+  time range: 15.228 to 715.73
+ 
+          Aggregated datasets:
+      1: tmp/fcst_3.nc
+      2: tmp/fcst_4.nc
+      3: tmp/fcst_5.nc
+      4: tmp/one_var_fcst_6.nc
+      5: tmp/fcst_7.nc
+    7> my_fmrc  (default)  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
+       (L=7:30)
+               on grid GFN2 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=19.5N:40.5N  F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
+             days since 01-JAN-1900 00:00:00 on grid FTI1 with -1.E+34 for missing data
+             F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ 
+  time range: 15.228 to 715.73
+ 
+          Aggregated datasets:
+      1: tmp/fcst_3.nc
+      2: tmp/fcst_4.nc
+      3: tmp/fcst_5.nc
+      4: tmp/one_var_fcst_6.nc
+      5: tmp/fcst_7.nc
+ 
+! cancel a component dataset -- used in two aggregations
+cancel data tmp/fcst_4.nc
+show data
+     currently SET data sets:
+ 
+! re-define the same aggs again.
+! then cancel one of them only and note that the hidden files remain
+fmrc/hide tmp/fcst_7.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_3.nc
+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
+cancel data my_fmrc
+show data/br/hidden
+     currently SET data sets:
+    1> tmp/fcst_7.nc
+    2> tmp/fcst_4.nc
+    3> tmp/fcst_5.nc
+    4> tmp/one_var_fcst_6.nc
+    5> tmp/fcst_3.nc
+    6> ./bn_aggregate_f.jnl     Forecast aggregation
+cancel data bn_aggregate_f.jnl   ! 3/16 bug fix (was "...sub")
+show data
+     currently SET data sets:
+ 
+! agg where a LET/D variable is used to fill in a missing variable
+use tmp/one_var_fcst_1.nc, tmp/one_var_fcst_6.nc
+let/d=one_var_fcst_1.nc fcst_2 = fcst + 2  ! compute same value as file vars
+let/d=one_var_fcst_6.nc fcst_2 = fcst + 2  ! compute same value as file vars
+FMRC/hide my_fmrc_letd_6 = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_7.nc
+FMRC/hide my_fmrc_letd_1 = tmp/one_var_fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/fcst_6.nc, tmp/fcst_7.nc
+FMRC/hide my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/fcst_6.nc, tmp/fcst_7.nc
+show data/files
+     currently SET data sets:
+    9> my_fmrc_letd_6     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/one_var_fcst_6.nc
+      7: tmp/fcst_7.nc
+   11> my_fmrc_letd_1     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=4:27)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/one_var_fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/fcst_6.nc
+      7: tmp/fcst_7.nc
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/fcst_6.nc
+      7: tmp/fcst_7.nc
+show data
+     currently SET data sets:
+    9> my_fmrc_letd_6     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+   11> my_fmrc_letd_1     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=4:27)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+! should be all 0's:
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst_2[d=my_fmrc_letd_6] - fcst_2[d=my_fmrc]
+             VARIABLE : FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC]
+             SUBSET   : 7 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                1950    1950    1950    1950    1951    1951    1951  
+                 1       2       3       4       5       6       7
+ 15.2  /  1:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 45.6  /  2:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 76    /  3:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 106.4 /  4:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 136.8 /  5:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 167.2 /  6:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 197.5 /  7:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 227.9 /  8:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 258.3 /  9:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 288.7 / 10:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 319.1 / 11:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 349.5 / 12:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 379.9 / 13:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 410.3 / 14:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 440.7 / 15:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 471.1 / 16:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 501.5 / 17:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 531.8 / 18:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 562.2 / 19:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 592.6 / 20:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+! should be all 0's:
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst_2[d=my_fmrc_letd_6] - fcst_2[d=my_fmrc_letd_1]
+             VARIABLE : FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC_LETD_1]
+             SUBSET   : 7 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                1950    1950    1950    1950    1951    1951    1951  
+                 1       2       3       4       5       6       7
+ 15.2  /  1:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 45.6  /  2:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 76    /  3:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 106.4 /  4:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 136.8 /  5:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 167.2 /  6:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 197.5 /  7:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 227.9 /  8:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 258.3 /  9:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 288.7 / 10:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 319.1 / 11:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 349.5 / 12:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 379.9 / 13:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 410.3 / 14:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 440.7 / 15:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 471.1 / 16:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 501.5 / 17:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 531.8 / 18:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 562.2 / 19:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 592.6 / 20:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+cancel data my_fmrc
+cancel data my_fmrc_letd_1, my_fmrc_letd_6
+ 
+! files already opened and not hidden remain open after aggregation
+use tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_9.nc, tmp/fcst_10.nc, tmp/fcst_11.nc
+fmrc my_fmrc = XCAT(files[I=6:10],{"6","1"})           ! without /HIDE
+cancel data my_fmrc
+show data/brief
+     currently SET data sets:
+    1> tmp/fcst_1.nc
+    2> tmp/fcst_2.nc
+    3> tmp/fcst_3.nc
+    4> tmp/fcst_9.nc
+    5> tmp/fcst_10.nc
+    6> tmp/fcst_11.nc
+cancel data/all
+ 
+! *************************************
+! deliberate errors
+set mode ignore
+ 
+! error - duplicate file
+fmrc my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc,tmp/fcst_2.nc,tmp/fcst_3.nc
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+! error - unknown dataset
+fmrc my_fmrc = XCAT(files,"tmp/no_exist.nc")
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+! error - inserting forecasts at two consecutive steps implies too many gaps
+fmrc my_fmrc = XCAT(files,"tmp/consecutive_month_fcst.nc")
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+! error - inserting out of sequence forecast
+fmrc my_fmrc = XCAT(files,"tmp/irregular_start_time_fcst.nc")
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+set mode/last ignore
+*** Running ferret script: bn_aggregate_tef.jnl
+! bn_aggregate_tef.F
+! 2/2016 *sh*
+! 3/2016 - modified to test single point axis aggregations on Z axis
+ 
+! to avoid re-creating the test files include argument "0" as in
+!  yes?  GO bn_aggregate_tef 0
+ 
+ 
+! exercise 6D aggregations: T, E, and F simultaneously
+ 
+! do not bother to echo the creation of files and the definitions of the
+! many time aggregations
+CANCEL MODE VERIFY
+ 
+show data/files/br
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f01_e3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e3_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e3_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e3_t3.nc
+ 
+    4> t_f01_e4
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e4_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e4_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e4_t3.nc
+ 
+    5> t_f01_e5
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e5_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e5_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e5_t3.nc
+ 
+    6> t_f02_e1
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_t3.nc
+ 
+    7> t_f02_e2
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_t3.nc
+ 
+    8> t_f02_e3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e3_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e3_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e3_t3.nc
+ 
+    9> t_f02_e4
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e4_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e4_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e4_t3.nc
+ 
+   10> t_f02_e5
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e5_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e5_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e5_t3.nc
+ 
+   11> t_f03_e1
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_t3.nc
+ 
+   12> t_f03_e2
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_t3.nc
+ 
+   13> t_f03_e3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e3_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e3_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e3_t3.nc
+ 
+   14> t_f03_e4
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e4_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e4_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e4_t3.nc
+ 
+   15> t_f03_e5
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e5_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e5_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e5_t3.nc
+ 
+   16> t_f04_e1
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e1_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e1_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e1_t3.nc
+ 
+   17> t_f04_e2
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e2_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e2_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e2_t3.nc
+ 
+   18> t_f04_e3
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e3_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e3_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3.nc
+ 
+   19> t_f04_e4
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e4_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e4_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e4_t3.nc
+ 
+   20> t_f04_e5
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e5_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e5_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e5_t3.nc
+ 
+   21> t_f05_e1
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e1_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e1_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e1_t3.nc
+ 
+   22> t_f05_e2
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e2_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e2_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e2_t3.nc
+ 
+   23> t_f05_e3
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e3_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e3_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e3_t3.nc
+ 
+   24> t_f05_e4
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e4_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e4_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e4_t3.nc
+ 
+   25> t_f05_e5
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e5_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e5_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e5_t3.nc
+ 
+   26> t_f06_e1
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e1_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e1_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e1_t3.nc
+ 
+   27> t_f06_e2
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e2_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e2_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e2_t3.nc
+ 
+   28> t_f06_e3
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e3_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e3_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e3_t3.nc
+ 
+   29> t_f06_e4
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e4_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e4_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e4_t3.nc
+ 
+   30> t_f06_e5
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e5_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e5_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e5_t3.nc
+ 
+   31> t_f07_e1
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e1_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e1_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e1_t3.nc
+ 
+   32> t_f07_e2
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e2_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e2_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e2_t3.nc
+ 
+   33> t_f07_e3
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e3_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e3_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e3_t3.nc
+ 
+   34> t_f07_e4
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e4_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e4_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e4_t3.nc
+ 
+   35> t_f07_e5
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e5_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e5_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e5_t3.nc
+ 
+   36> t_f08_e1
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e1_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e1_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e1_t3.nc
+ 
+   37> t_f08_e2
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e2_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e2_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e2_t3.nc
+ 
+   38> t_f08_e3
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e3_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e3_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e3_t3.nc
+ 
+   39> t_f08_e4
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e4_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e4_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e4_t3.nc
+ 
+   40> t_f08_e5
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e5_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e5_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e5_t3.nc
+ 
+   41> t_f09_e1
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e1_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e1_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e1_t3.nc
+ 
+   42> t_f09_e2
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e2_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e2_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e2_t3.nc
+ 
+   43> t_f09_e3
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e3_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e3_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e3_t3.nc
+ 
+   44> t_f09_e4
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e4_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e4_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e4_t3.nc
+ 
+   45> t_f09_e5
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e5_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e5_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e5_t3.nc
+ 
+   46> t_f10_e1
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e1_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e1_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e1_t3.nc
+ 
+   47> t_f10_e2
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e2_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e2_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e2_t3.nc
+ 
+   48> t_f10_e3
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e3_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e3_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e3_t3.nc
+ 
+   49> t_f10_e4
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e4_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e4_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e4_t3.nc
+ 
+   50> t_f10_e5
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e5_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e5_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e5_t3.nc
+ 
+   51> t_f11_e1
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e1_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e1_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e1_t3.nc
+ 
+   52> t_f11_e2
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e2_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e2_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e2_t3.nc
+ 
+   53> t_f11_e3
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e3_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e3_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e3_t3.nc
+ 
+   54> t_f11_e4
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e4_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e4_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e4_t3.nc
+ 
+   55> t_f11_e5
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e5_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e5_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e5_t3.nc
+ 
+   56> t_f04_e3_1v  (default)
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e3_t1_1v.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e3_t2_1v.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3_1v.nc
+ 
+ 
+! should share the same time axis
+show grid fcst[d=t_f01_e1]
+    GRID GFA1
+ name       axis              # pts   start                end                 subset
+ XAX       LONGITUDE           21mr   140E                 160E                full
+ YAX       LATITUDE            11 r   10N                  20N                 full
+ ZAX1      Z (m)                1 r   250                  250                 full
+ TRUEMONTH1 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
+ normal    E
+ normal    F
+show grid fcst[d=t_f01_e2]
+    GRID GFA1
+ name       axis              # pts   start                end                 subset
+ XAX       LONGITUDE           21mr   140E                 160E                full
+ YAX       LATITUDE            11 r   10N                  20N                 full
+ ZAX1      Z (m)                1 r   250                  250                 full
+ TRUEMONTH1 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
+ normal    E
+ normal    F
+ 
+! ======== TEST SET 1:  aggregate E first, then F
+ 
+! define te aggregations -- only the first 5 remain unhidden
+ENSEMBLE      te_f01 = t_f01_e1, t_f01_e2, t_f01_e3, t_f01_e4, t_f01_e5
+ENSEMBLE/hide te_f02 = t_f02_e1, t_f02_e2, t_f02_e3, t_f02_e4, t_f02_e5
+ENSEMBLE/hide te_f03 = t_f03_e1, t_f03_e2, t_f03_e3, t_f03_e4, t_f03_e5
+ENSEMBLE/hide te_f04 = t_f04_e1, t_f04_e2, t_f04_e3, t_f04_e4, t_f04_e5
+ENSEMBLE/hide te_f05 = t_f05_e1, t_f05_e2, t_f05_e3, t_f05_e4, t_f05_e5
+ENSEMBLE/hide te_f06 = t_f06_e1, t_f06_e2, t_f06_e3, t_f06_e4, t_f06_e5
+ENSEMBLE/hide te_f07 = t_f07_e1, t_f07_e2, t_f07_e3, t_f07_e4, t_f07_e5
+ENSEMBLE/hide te_f08 = t_f08_e1, t_f08_e2, t_f08_e3, t_f08_e4, t_f08_e5
+ENSEMBLE/hide te_f09 = t_f09_e1, t_f09_e2, t_f09_e3, t_f09_e4, t_f09_e5
+ENSEMBLE/hide te_f10 = t_f10_e1, t_f10_e2, t_f10_e3, t_f10_e4, t_f10_e5
+ENSEMBLE/hide te_f11 = t_f11_e1, t_f11_e2, t_f11_e3, t_f11_e4, t_f11_e5
+SHOW DATA/brief
+     currently SET data sets:
+    1> t_f01_e1
+    2> t_f01_e2
+    3> t_f01_e3
+    4> t_f01_e4
+    5> t_f01_e5
+   56> t_f04_e3_1v
+   57> te_f01     Ensemble aggregation
+   58> te_f02     Ensemble aggregation
+   59> te_f03     Ensemble aggregation
+   60> te_f04     Ensemble aggregation
+   61> te_f05     Ensemble aggregation
+   62> te_f06     Ensemble aggregation
+   63> te_f07     Ensemble aggregation
+   64> te_f08     Ensemble aggregation
+   65> te_f09     Ensemble aggregation
+   66> te_f10     Ensemble aggregation
+   67> te_f11  (default)  Ensemble aggregation
+SHOW DATA/FULL te_f11
+     currently SET data sets:
+   67> te_f11  (default)  Ensemble aggregation
+     Ensemble series of 5 datasets patterned on t_f11_e1
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:5       ...
+       (L=31:42)
+               on grid GEN11 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:5       ...
+       (L=31:42)
+               on grid GEN11 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  
+ REALIZATION
+          1                                ...       ...       ...       ...       1:5       ...
+               on grid GEN with -1.E+34 for missing data
+             E=0.5:5.5  
+ 
+  time range: 16-JUL-1952 12:00 to 16-JUN-1955 00:00
+ 
+          Aggregated datasets:
+      1: t_f11_e1
+      2: t_f11_e2
+      3: t_f11_e3
+      4: t_f11_e4
+      5: t_f11_e5
+SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
+     currently SET data sets:
+   67> te_f11  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        6    F       te_f11
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 im_everywhere   CHAR        13   F       so promote me
+                                 long_name_mod   CHAR        7    F       L=31:42
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 long_name_mod   CHAR        7    F       L=31:42
+  
+ REALIZATION           FLOAT     long_name       CHAR        1    T       1
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+! define tef aggregation
+FMRC/HIDE tef = te_f01, te_f02, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+SHOW DATA/brief/files
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f01_e3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e3_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e3_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e3_t3.nc
+ 
+    4> t_f01_e4
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e4_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e4_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e4_t3.nc
+ 
+    5> t_f01_e5
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e5_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e5_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e5_t3.nc
+ 
+   56> t_f04_e3_1v
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e3_t1_1v.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e3_t2_1v.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3_1v.nc
+ 
+   68> tef  (default)  Forecast aggregation
+          Aggregated datasets:
+      1 : te_f01
+      2 : te_f02
+      3 : te_f03
+      4 : te_f04
+      5 : te_f05
+      6 : te_f06
+      7 : te_f07
+      8 : te_f08
+      9 : te_f09
+      10: te_f10
+      11: te_f11
+show data/full tef
+     currently SET data sets:
+   68> tef  (default)  Forecast aggregation
+     Forecast series of 11 datasets patterned on te_f01
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  F=16-NOV-1949 09:36:15-AUG-1952 14:24  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:11
+             days since 01-JAN-1900 00:00:00 on grid FTI1 with -1.E+34 for missing data
+             F=16-NOV-1949 09:36:15-AUG-1952 14:24  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  F=16-NOV-1949 09:36:15-AUG-1952 14:24  
+ 
+  time range: 15.214 to 1080.2
+ 
+          Aggregated datasets:
+      1 : te_f01
+      2 : te_f02
+      3 : te_f03
+      4 : te_f04
+      5 : te_f05
+      6 : te_f06
+      7 : te_f07
+      8 : te_f08
+      9 : te_f09
+      10: te_f10
+      11: te_f11
+ 
+! simplest acess -- compact form -- just demonstrate it doesn't fail
+stat/brief fcst[i=11:12, j=5:6, l=31:32, m=1:2, n=5:6]
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 224.92
+ Maximum value: 237.87
+ Mean    value: 231.43 (unweighted average)
+ 
+! diagonal forecast view of ensemble mean
+let diag_fcst = fcst[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:5 at ave]
+ 
+! difference between the mean and the middle is zero within computational error
+let epsilon = 1 / 2^50   ! 52 mantissa bits in a double
+say using epsilon = `epsilon`
+ !-> MESSAGE/CONTINUE using epsilon = 8.881784197001E-16
+using epsilon = 8.881784197001E-16
+let rel_err = (diag_fcst[m=1:5 at ave]-diag_fcst[m=3])/diag_fcst[m=3]
+stat/brief/x=150E/y=15n IF ABS(rel_err) LT epsilon THEN 0.0 ELSE rel_err
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ 
+! warning message indicates fcst_2 is missing from a file
+ENSEMBLE te_f04_1v = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+SHOW DATA/ATT t_f04_e3_1v ! note atts im_everwhere vs im_not_everwhere
+     currently SET data sets:
+   56> t_f04_e3_1v
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(XAX)                  DOUBLE    units           CHAR        12   T       degrees_east
+                                 point_spacing   CHAR        4    T       even
+                                 axis            CHAR        1    T       X
+                                 modulo          DOUBLE      1    T       360
+                                 standard_name   CHAR        9    F       longitude
+                                 orig_file_axname
+                                                 CHAR        3    F       XAX
+  
+(YAX)                  DOUBLE    units           CHAR        13   T       degrees_north
+                                 point_spacing   CHAR        4    T       even
+                                 axis            CHAR        1    T       Y
+                                 standard_name   CHAR        8    F       latitude
+                                 orig_file_axname
+                                                 CHAR        3    F       YAX
+  
+(ZAX1)                 DOUBLE    units           CHAR        1    T       m
+                                 point_spacing   CHAR        4    T       even
+                                 axis            CHAR        1    T       Z
+                                 standard_name   CHAR        8    F       altitude
+                                 orig_file_axname
+                                                 CHAR        3    F       ZAX
+  
+(TRUEMONTH12)          DOUBLE    units           CHAR        30   T       days since 1900-01-01 00:00:00
+                                 axis            CHAR        1    T       T
+                                 bounds          CHAR        14   T       TRUEMONTH_bnds
+                                 time_origin     CHAR        10   T       1-JAN-1900
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        9    F       TRUEMONTH
+  
+ TRUEMONTH_bnds        DOUBLE
+  
+ FCST                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        13   T       some variable
+                                 im_everywhere   CHAR        13   F       so promote me
+                                 im_not_everywhere
+                                                 CHAR        19   F       so don't promote me
+                                 long_name_mod   CHAR        7    F       L=10:21
+  
+ REALIZATION           DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        1    T       3
+  
+SHOW DATA/ATT te_f04_1v  ! note atts im_everwhere vs im_not_everwhere
+     currently SET data sets:
+   69> te_f04_1v  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        9    F       te_f04_1v
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 im_everywhere   CHAR        13   F       so promote me
+                                 long_name_mod   CHAR        7    F       L=10:21
+  
+ REALIZATION           FLOAT     long_name       CHAR        1    T       1
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+! define fcst_2 as a LET/D variable and then do same calc
+let/d=t_f04_e3_1v fcst_2 = fcst + 2
+show data/br t_f04_e3_1v
+     currently SET data sets:
+   56> t_f04_e3_1v
+ENSEMBLE te_f04_letd = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+FMRC/hide tef_letd = te_f01, te_f02, te_f03, te_f04_letd, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+let diag_fcst_2 = fcst_2[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+let rel_err_2 = (diag_fcst_2[m=1:5 at ave]-diag_fcst_2[m=3])/diag_fcst_2[m=3]
+ 
+! can run in diagnostic mode and look for "eval FCST_2" to confirm LET/D eval
+set data tef_letd
+stat/brief/x=150E/y=15n diag_fcst_2
+ 
+ Total # of data points: 3960 (1*1*1*66*5*12)
+ # flagged as bad  data: 1980
+ Minimum value: 226.45
+ Maximum value: 277.75
+ Mean    value: 252.12 (unweighted average)
+stat/brief/x=150E/y=15n IF ABS(rel_err_2) LT epsilon THEN 0.0 ELSE rel_err_2
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ 
+! demonstrate redefining the LET/D variable without re-defining the agg
+! Look at the column 3 ("e3"), row 4 ("f04") to see  2.110 => 4.110
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1      2      3      4      5    
+                      1      2      3      4      5
+ 01-JAN-1950 /  1:  227.1  239.6  252.1  264.6  277.1
+ 01-APR-1950 /  2:  227.1  239.6  252.1  264.6  277.2
+ 01-JUL-1950 /  3:  227.0  239.5  252.0  264.5  277.0
+ 01-OCT-1950 /  4:  227.1  239.6  252.1  264.6  277.1
+ 01-JAN-1951 /  5:  227.1  239.7  252.2  264.7  277.2
+ 01-APR-1951 /  6:  227.2  239.7  252.2  264.8  277.3
+ 01-JUL-1951 /  7:  227.1  239.6  252.1  264.7  277.2
+ 01-OCT-1951 /  8:  227.2  239.7  252.2  264.7  277.2
+ 01-JAN-1952 /  9:  227.2  239.7  252.2  264.7  277.3
+ 01-APR-1952 / 10:  227.1  239.6  252.2  264.7  277.2
+ 01-JUL-1952 / 11:  227.2  239.7  252.2  264.7  277.2
+let/d=t_f04_e3_1v fcst_2 = fcst + 2 + 2   ! add 2
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1      2      3      4      5    
+                      1      2      3      4      5
+ 01-JAN-1950 /  1:  227.1  239.6  252.1  264.6  277.1
+ 01-APR-1950 /  2:  227.1  239.6  252.1  264.6  277.2
+ 01-JUL-1950 /  3:  227.0  239.5  252.0  264.5  277.0
+ 01-OCT-1950 /  4:  227.1  239.6  254.1  264.6  277.1
+ 01-JAN-1951 /  5:  227.1  239.7  252.2  264.7  277.2
+ 01-APR-1951 /  6:  227.2  239.7  252.2  264.8  277.3
+ 01-JUL-1951 /  7:  227.1  239.6  252.1  264.7  277.2
+ 01-OCT-1951 /  8:  227.2  239.7  252.2  264.7  277.2
+ 01-JAN-1952 /  9:  227.2  239.7  252.2  264.7  277.3
+ 01-APR-1952 / 10:  227.1  239.6  252.2  264.7  277.2
+ 01-JUL-1952 / 11:  227.2  239.7  252.2  264.7  277.2
+ 
+! agg members may have unique contexts on scalar axes of the aggregation
+! ... here the LET/D var is normal to Z
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+T[gt=fcst] + 1000
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1       2       3       4       5     
+                       1       2       3       4       5
+ 01-JAN-1950 /  1:    227.    240.    252.    265.    277.
+ 01-APR-1950 /  2:    227.    240.    252.    265.    277.
+ 01-JUL-1950 /  3:    227.    240.    252.    265.    277.
+ 01-OCT-1950 /  4:    227.    240.  19989.    265.    277.
+ 01-JAN-1951 /  5:    227.    240.    252.    265.    277.
+ 01-APR-1951 /  6:    227.    240.    252.    265.    277.
+ 01-JUL-1951 /  7:    227.    240.    252.    265.    277.
+ 01-OCT-1951 /  8:    227.    240.    252.    265.    277.
+ 01-JAN-1952 /  9:    227.    240.    252.    265.    277.
+ 01-APR-1952 / 10:    227.    240.    252.    265.    277.
+ 01-JUL-1952 / 11:    227.    240.    252.    265.    277.
+ 
+! ... here the LET/D var is averaged to a point in a pre-existing agg
+LET some_Z_function = Z[Z=0:100:10] + 1000
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+T[gt=fcst]+some_Z_function[Z=10:60 at ave]
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1       2       3       4       5     
+                       1       2       3       4       5
+ 01-JAN-1950 /  1:    227.    240.    252.    265.    277.
+ 01-APR-1950 /  2:    227.    240.    252.    265.    277.
+ 01-JUL-1950 /  3:    227.    240.    252.    265.    277.
+ 01-OCT-1950 /  4:    227.    240.  20024.    265.    277.
+ 01-JAN-1951 /  5:    227.    240.    252.    265.    277.
+ 01-APR-1951 /  6:    227.    240.    252.    265.    277.
+ 01-JUL-1951 /  7:    227.    240.    252.    265.    277.
+ 01-OCT-1951 /  8:    227.    240.    252.    265.    277.
+ 01-JAN-1952 /  9:    227.    240.    252.    265.    277.
+ 01-APR-1952 / 10:    227.    240.    252.    265.    277.
+ 01-JUL-1952 / 11:    227.    240.    252.    265.    277.
+ 
+! same as preceding, but the LET/D is included in the agg as defined
+ENSEMBLE te_f04_letd_new = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+FMRC/hide tef_letd_new = te_f01, te_f02, te_f03, te_f04_letd, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd_new
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1       2       3       4       5     
+                       1       2       3       4       5
+ 01-JAN-1950 /  1:    227.    240.    252.    265.    277.
+ 01-APR-1950 /  2:    227.    240.    252.    265.    277.
+ 01-JUL-1950 /  3:    227.    240.    252.    265.    277.
+ 01-OCT-1950 /  4:    227.    240.  20024.    265.    277.
+ 01-JAN-1951 /  5:    227.    240.    252.    265.    277.
+ 01-APR-1951 /  6:    227.    240.    252.    265.    277.
+ 01-JUL-1951 /  7:    227.    240.    252.    265.    277.
+ 01-OCT-1951 /  8:    227.    240.    252.    265.    277.
+ 01-JAN-1952 /  9:    227.    240.    252.    265.    277.
+ 01-APR-1952 / 10:    227.    240.    252.    265.    277.
+ 01-JUL-1952 / 11:    227.    240.    252.    265.    277.
+ 
+! deliberate errors:
+SET MODE IGNORE
+set data tef_letd
+! a new LET/D definition that alters the grid of the result is not acceptable
+let/d=t_f04_e3_1v fcst_2 = X[x=1:5]+Y[gy=fcst]+Z[gz=fcst]+T[gt=fcst] ! X ax chg
+list/x=150E/y=15n/L=10 fcst_2
+ 
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+Z[gz=fcst]+T[T=1:36:1] ! T chg
+list/x=150E/y=15n/L=10 fcst_2
+ 
+! LET definition may not compress an axis of N>1
+let/d=t_f04_e3_1v fcst_2 = fcst[i=1:5 at ave]
+list/x=150E/y=15n/L=10 fcst_2
+SET MODE/LAST IGNORE
+ 
+! now restore the original definition and verify it again works
+let/d=t_f04_e3_1v fcst_2 = fcst + 2
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1      2      3      4      5    
+                      1      2      3      4      5
+ 01-JAN-1950 /  1:  227.1  239.6  252.1  264.6  277.1
+ 01-APR-1950 /  2:  227.1  239.6  252.1  264.6  277.2
+ 01-JUL-1950 /  3:  227.0  239.5  252.0  264.5  277.0
+ 01-OCT-1950 /  4:  227.1  239.6  252.1  264.6  277.1
+ 01-JAN-1951 /  5:  227.1  239.7  252.2  264.7  277.2
+ 01-APR-1951 /  6:  227.2  239.7  252.2  264.8  277.3
+ 01-JUL-1951 /  7:  227.1  239.6  252.1  264.7  277.2
+ 01-OCT-1951 /  8:  227.2  239.7  252.2  264.7  277.2
+ 01-JAN-1952 /  9:  227.2  239.7  252.2  264.7  277.3
+ 01-APR-1952 / 10:  227.1  239.6  252.2  264.7  277.2
+ 01-JUL-1952 / 11:  227.2  239.7  252.2  264.7  277.2
+ 
+! ======== TEST SET 2:  aggregate F first, then E
+FMRC      tf_e1 = t_f01_e1, t_f02_e1, t_f03_e1, t_f04_e1, t_f05_e1, t_f06_e1, t_f07_e1, t_f08_e1, t_f09_e1, t_f10_e1, t_f11_e1
+FMRC/hide tf_e2 = t_f01_e2, t_f02_e2, t_f03_e2, t_f04_e2, t_f05_e2, t_f06_e2, t_f07_e2, t_f08_e2, t_f09_e2, t_f10_e2, t_f11_e2
+FMRC/hide tf_e3 = t_f01_e3, t_f02_e3, t_f03_e3, t_f04_e3, t_f05_e3, t_f06_e3, t_f07_e3, t_f08_e3, t_f09_e3, t_f10_e3, t_f11_e3
+FMRC/hide tf_e4 = t_f01_e4, t_f02_e4, t_f03_e4, t_f04_e4, t_f05_e4, t_f06_e4, t_f07_e4, t_f08_e4, t_f09_e4, t_f10_e4, t_f11_e4
+FMRC/hide tf_e5 = t_f01_e5, t_f02_e5, t_f03_e5, t_f04_e5, t_f05_e5, t_f06_e5, t_f07_e5, t_f08_e5, t_f09_e5, t_f10_e5, t_f11_e5
+ 
+! aggregate these F-aggs onto an E axis
+ENSEMBLE/HIDE tfe = tf_e1, tf_e2, tf_e3, tf_e4, tf_e5
+ 
+! F-aggregate inherits the TF-auxiliary variable pointers from the members
+SHOW DATA/ATTRIB tfe   ! also notice the promotion of fcst.im_everywhere
+     currently SET data sets:
+   79> tfe  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        3    F       tfe
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        25   T       RUN TF_TIMES ZAX1 YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+                                 im_everywhere   CHAR        13   F       so promote me
+  
+ TF_TIMES              FLOAT     long_name       CHAR        25   T       Forecast time step matrix
+                                 units           CHAR        31   T       days since 01-JAN-1900 00:00:00
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 _CoordinateAxisType
+                                                 CHAR        4    T       Time
+                                 calendar        CHAR        9    T       GREGORIAN
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        31   T       TF_CAL_F1 TF_TIMES ZAX1 YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ 
+! the 2-D coordinate variable (TF_TIMES) should be 2D, only, in T and F
+SHOW DATA tfe
+     currently SET data sets:
+   79> tfe  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:11
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+ 
+ 
+! confirm that the TF_TIMES variable is accessible in a T-F-E aggregation
+LIST/NOHEAD/L=18:19/N=5:6 tf_times   ! subset access
+ 01-JAN-1951 / 5:  19159.  19190.
+ 01-APR-1951 / 6:  19251.  19282.
+STAT/BRIEF tf_times
+ 
+ Total # of data points: 396 (1*1*1*36*1*11)
+ # flagged as bad  data: 0
+ Minimum value: 18278
+ Maximum value: 20254
+ Mean    value: 19266 (unweighted average)
+ 
+! confirm that the T-F-E agg and the T-E-F agg get the same results
+! exactlyidentically zero STAT output means correct functioning
+let tfe_tef_ave_diff = (diag_fcst[d=tfe,m=1:5 at ave]-diag_fcst[d=tef,m=1:5 at ave])
+stat/brief/x=150E/y=15n tfe_tef_ave_diff
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+let tfe_tef_diff = (diag_fcst[d=tfe]-diag_fcst[d=tef])
+stat/brief/x=150E/y=15n tfe_tef_diff[m=1:5 at ave]
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ 
+! missing forecast (t_f02_e2) in a T-F-E aggregation
+FMRC tf_e2_gap = t_f01_e2, -, t_f03_e2, t_f04_e2, t_f05_e2, t_f06_e2, t_f07_e2, t_f08_e2, t_f09_e2, t_f10_e2, t_f11_e2
+ENSEMBLE tfe_gap = tf_e1, tf_e2_gap, tf_e3, tf_e4, tf_e5
+LIST/l=10/i=10/j=10/k=1 fcst[d=tfe_gap]
+             VARIABLE : some variable
+             DATA SET : Ensemble series of 5 datasets patterned on tf_e1
+             FILENAME : tfe_gap
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 149E
+             LATITUDE : 19N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1      2      3      4      5    
+                      1      2      3      4      5
+ 01-JAN-1950 /  1:  225.2  237.7  250.2  262.8  275.3
+ 01-APR-1950 /  2:  225.3   ....  250.3  262.9  275.4
+ 01-JUL-1950 /  3:  225.3  237.8  250.3  262.8  275.4
+ 01-OCT-1950 /  4:  225.4  237.9  250.5  263.0  275.5
+ 01-JAN-1951 /  5:  225.5  238.0  250.5  263.0  275.6
+ 01-APR-1951 /  6:  225.5  238.0  250.6  263.1  275.6
+ 01-JUL-1951 /  7:  225.5  238.1  250.6  263.1  275.7
+ 01-OCT-1951 /  8:  225.6  238.1  250.6  263.2  275.7
+ 01-JAN-1952 /  9:  225.6  238.1  250.6  263.2  275.7
+ 01-APR-1952 / 10:  225.6  238.1  250.7  263.2  275.7
+ 01-JUL-1952 / 11:  225.6  238.2  250.7  263.3  275.8
+ 
+! missing ensemble member (t_f02_e2)in a T-E-F agregation
+ENSEMBLE te_f02_gap = t_f02_e1, -, t_f02_e3, t_f02_e4, t_f02_e5
+FMRC tef_gap = te_f01, te_f02_gap, te_f03, te_f04
+LIST/l=10/i=10/j=10/k=1 fcst[d=tef_gap]
+             VARIABLE : some variable
+             DATA SET : Forecast series of 4 datasets patterned on te_f01
+             FILENAME : tef_gap
+             SUBSET   : 5 by 4 points (E (realization)-FORECAST)
+             LONGITUDE: 149E
+             LATITUDE : 19N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                     1      2      3      4      5    
+                     1      2      3      4      5
+ 01-JAN-1950 / 1:  225.2  237.7  250.2  262.8  275.3
+ 01-APR-1950 / 2:  225.3   ....  250.3  262.9  275.4
+ 01-JUL-1950 / 3:  225.3  237.8  250.3  262.8  275.4
+ 01-OCT-1950 / 4:  225.4  237.9  250.5  263.0  275.5
+ 
+! deliberate errors
+set mode ignore
+! unequal ensemble axis lengths
+ENSEMBLE te_f02_short = t_f02_e1, t_f02_e2, t_f02_e3, t_f02_e4   ! shorter than others
+FMRC tef_short = te_f01, te_f02_short, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+ 
+! unequal forecast axis lengths
+FMRC tf_e2_short = t_f01_e2, t_f02_e2, t_f03_e2, t_f04_e2  ! shorter than others
+ENSEMBLE tfe_short = tf_e1, tf_e2_short, tf_e3, tf_e4, tf_e5
+ 
+! ensemble created with already-ensemble components
+ENSEMBLE te_f01 = t_f01_e1, t_f01_e2, t_f01_e3, t_f01_e4, t_f01_e5
+ENSEMBLE te_f03 = t_f03_e1, t_f03_e2, t_f03_e3, t_f03_e4, t_f03_e5
+ENSEMBLE te_f04 = t_f04_e1, t_f04_e2, t_f04_e3, t_f04_e4, t_f04_e5
+ENSEMBLE bad_ens = te_f01, te_f03, te_f04
+ 
+! fmrc created with already-fmrc components
+FMRC tf_e1 = t_f01_e1, t_f02_e1, t_f03_e1, t_f04_e1
+FMRC tf_e3 = t_f01_e3, t_f02_e3, t_f03_e3, t_f04_e3
+FMRC tf_e4 = t_f01_e4, t_f02_e4, t_f03_e4, t_f04_e4
+FMRC bad_fmrc = tf_e1, tf_e3, tf_e4
+ 
+set mode/last ignore
+ 
+CANCEL DATA/ALL
+*** Running ferret script: bn_dataset_qualifier.jnl
+! bn_dataset_qualifier
+! see ticket 2632
+! Test change from /D= to /DATASET= qualifier for LIST, PLOT, LOAD, etc
+! Various commands taken from other scripts.
+ 
+! LIST/DAT=
+use gt4d011
+use coads_climatology
+ 
+let nv = ..nvars
+let nd = ..ndims
+let vnames = ..varnames
+list/DAT=1 nv, nd
+             DATA SET: ./gt4d011.cdf
+             X: 1
+ Column  1: NV is ..NVARS
+ Column  2: ND is ..NDIMS
+             NV    ND
+I / *:     12.00  21.00
+list/DAT=1 vnames
+             VARIABLE : ..VARNAMES
+             FILENAME : gt4d011.cdf
+             SUBSET   : 12 points (X)
+ 1    /  1:"PS3DT2"
+ 2    /  2:"TEMP"  
+ 3    /  3:"SALT"  
+ 4    /  4:"PS3DU2"
+ 5    /  5:"U"     
+ 6    /  6:"V"     
+ 7    /  7:"PS3DW2"
+ 8    /  8:"W"     
+ 9    /  9:"PS2DU2"
+ 10   / 10:"TAUX"  
+ 11   / 11:"TAUY"  
+ 12   / 12:"PSI"   
+ 
+list/DAT=coads_climatology nv,nd
+             DATA SET: ./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
+             X: 1
+ Column  1: NV is ..NVARS
+ Column  2: ND is ..NDIMS
+             NV    ND
+I / *:     12.00  21.00
+ 
+! SET ATT/OUTPUT/DAT=
+! DEFINE ATT/OUTPUT/DAT=
+! CANCEL ATT/OUTPUT/DAT=
+can data/all
+use err491_attval
+use gt4d011
+set att/output/DATA=1 ..dt_internal
+define attribute/output/DATA=1 elev.newatt = 7
+save/clobber/file=a.nc/outtype=float elev[d=1]
+use a.nc
+sh att .
+     attributes for dataset: ./a.nc
+ ..history = FERRET V7  17-Jun-16 
+ ..Conventions = CF-1.6 
+ ..dt_internal = 15
+sh att elev
+     attributes for dataset: ./a.nc
+ ELEV.missing_value = -32767
+ ELEV._FillValue = -32768
+ ELEV.long_name = Surface elevation 
+ ELEV.units = meter 
+ ELEV.scale_factor = 0.000274675
+ ELEV.add_offset = 0
+ ELEV.newatt = 7
+ ELEV.Ferret_Precision_Note = This variable written using Ferret was converted from SHORT to FLOAT 
+ ELEV.history = From err491_attval 
+can data a
+cancel attribute/output/DATASET=1  ..dt_internal
+cancel attribute/output/DATASET=1  elev.newatt
+save/clobber/file=a.nc/outtype=float elev[d=1]
+use a.nc
+sh att .
+     attributes for dataset: ./a.nc
+ ..history = FERRET V7  17-Jun-16 
+ ..Conventions = CF-1.6 
+sh att elev
+     attributes for dataset: ./a.nc
+ ELEV.missing_value = -32767
+ ELEV._FillValue = -32768
+ ELEV.long_name = Surface elevation 
+ ELEV.units = meter 
+ ELEV.scale_factor = 0.000274675
+ ELEV.add_offset = 0
+ ELEV.Ferret_Precision_Note = This variable written using Ferret was converted from SHORT to FLOAT 
+ ELEV.history = From err491_attval 
+ 
+! LOAD/DAT=
+use coads_climatology
+use levitus_climatology
+ 
+load/DAT=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
+show grid
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid (G009)
+    GRID (G009)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX018)   LATITUDE           201 r   10S                  10N                 200 pts
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
+ normal    E
+ normal    F
+ 
+! LIST/DAT=, LET/DAT=,
+can dat/all
+use err491_attval
+use coads_climatology
+use levitus_climatology
+use ocean_atlas_temp
+use gt4d011
+ 
+let a = temp.units
+list/DAT=3 a
+             VARIABLE : TEMP.UNITS
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+        "DEG C"
+list/DAT=3 temp.history
+             VARIABLE : TEMP.HISTORY
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+        "From levitus_climatology"
+ 
+! PLOT, SHADE, FILL, CONTOUR, VECTOR, STAT
+! various plot and other action commands with /DATA
+ 
+let/DAT=2 temp = sst + 0*z[z=1:5:1]
+sh dat 2
+     currently SET data sets:
+    2> ./coads_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ ------------------------------
+ TEMP[D=coads_climatology] = SST + 0*Z[Z=1:5:1]
+ 
+plot/DATASET=2 sst[L=1,y=0,x=300:360]
+fill/DAT=2 sst[L=1,x=30:150,y=-60:0]
+contour/over/DATA=3 temp[Z=0]
+shade/DATA=2 sst[x=180,y=-10:10]
+vec/DAT=gt4d011/l=3 taux,tauy
+ 
+! STAT, LIST
+stat/DATASET=1 elev
+ 
+             Surface elevation
+             LONGITUDE: 135.5W(-135.5) to 135W(-135)
+             LATITUDE: 58.6N to 59.5N
+             Z:  N/A
+             T (day): 1.7837
+             E:  N/A
+             F:  N/A
+             DATA SET: ./err491_attval.cdf
+ 
+ Total # of data points: 4445 (35*127*1*1*1*1)
+ # flagged as bad  data: 3065
+ Minimum value: 2.9225
+ Maximum value: 3.0058
+ Mean    value: 2.9799 (unweighted average)
+ Standard deviation: 0.017437
+shade/DAT=1 elev
+list/DAT=1/x=-135.3/y=58.8 elev
+             VARIABLE : Surface elevation (meter)
+             DATA SET : K-Bay OAR3d model (200m)
+             FILENAME : err491_attval.cdf
+             LONGITUDE: 135.3W(-135.3)
+             LATITUDE : 58.8N
+             T (day)  : 1.7837
+          2.977
+ 
+! POLYGON/DAT
+define axis/x=330:350:1/units=degrees_east xax10
+define axis/y=-10:10:1/units=degrees_north yax10
+ 
+let fsst = sst[l=3,gx=xax10,gy=yax10]
+let lon = xsequence(x[gx=xax10] + 0*y[gy=yax10])
+let lat = xsequence(0*x[gx=xax10] + y[gy=yax10])
+shade/pal=white/nokey/nolab/DATA=2 sst[l=1,x=300:310,y=-10:10]   ! Set up plot params for polymark.jnl
+go polymark poly/DATA=2/key/title="Polygon test", lon, lat, xsequence(fsst), square, 1.2
+ 
+ 
+! Commands that have another qualifier also starting with /D
+! LIST/DATASET= with /DEFLATE
+cancel data/all
+use levitus_climatology
+use gt4d011
+use coads_climatology
+list/form=cdf/ncformat=4/DEFLATE/file=a.nc/clobber/DATA=1 temp
+ 
+! PLOT/DASH with /DATA=
+plot/dash/x=180/z=0/DATASET=1 temp
+ 
+! VECTOR/FLOW/DATA=/DENSITY
+flow/DAT=2/den=3/L=3 taux,tauy
+*** Running ferret script: bn_speedtest.jnl
+! bn_speedtest.jnl
+! issue large numbers of commands, timing with clock time
+can mode verify
+10K LET commands LET a = 0 takes  1.21  seconds
+Second 10K LET commands LET a = 0 takes  2.779  seconds
+5K LOAD with transform takes  3.996  seconds
+*** Running ferret script: bn_show_noupcase.jnl
+! bn_show_noupcase.jnl
+! 1/2016 ticket 1796
+ 
+cancel mode upcase
+ 
+ 
+! Previously this mode acted only when saving to netCDf.
+! Now applies to SHOW commands of all sorts, as well as `return=*axis`
+ 
+ 
+ 
+! User variable with lowercase letters in the name
+ 
+DEFINE AXIS/t=1-jan-1999:31-jan-1999:1/units=days/t0=31-dec-1998 tday
+LET MyUpperLowerCaseVar = x[x=1:10] + t[gt=tday]
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     MyUpperLowerCaseVar = X[X=1:10] + T[GT=TDAY]
+show grid MyUpperLowerCaseVar
+    GRID (G001)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              9 pts
+ normal    Y
+ normal    Z
+ tday      TIME                31 r   01-JAN-1999 00:00    31-JAN-1999 00:00   full
+ normal    E
+ normal    F
+ 
+ 
+! Files have variable and axis names in mixed case.
+ 
+USE a1478.nc
+USE a_cartesian_bug1179.nc
+show data
+     currently SET data sets:
+    1> ./a1478.nc
+ name     title                             I         J         K         L         M         N
+ lat1_5_bnds
+                                           1:2       1:5       ...       ...       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+ 
+    2> ./a_cartesian_bug1179.nc  (default)
+ name     title                             I         J         K         L         M         N
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ 
+ 
+! Previously the RETURN= gave the capitalized axis names
+say `temp,return=zaxis`
+ !-> MESSAGE/CONTINUE zt
+zt
+say `temp,return=xaxis`
+ !-> MESSAGE/CONTINUE grid_x_T
+grid_x_T
+ 
+sh axis `temp,return=xaxis`
+ !-> sh axis grid_x_T
+ name       axis              # pts   start                end
+ grid_x_T  LONGITUDE            1 r   79E                  79E
+   Axis span (to cell edges) = 1
+sh axis/x `temp,return=xaxis`
+ !-> sh axis/x grid_x_T
+ name       axis              # pts   start                end
+ grid_x_T  LONGITUDE            1 r   79E                  79E
+   Axis span (to cell edges) = 1
+ 
+       I     X                   XBOX      XBOXLO
+       1>  79E                   1          78.5E
+ 
+! Define an output variable with some axes from each dataset.
+! (the variable definitions have been upcased. Beyond the scope of this fix...)
+ 
+LET/D=1 zvar = 2*temp[d=2]
+LET/D=2 newvar =  0*zvar[d=2] + olr[d=1]
+ 
+show data
+     currently SET data sets:
+    1> ./a1478.nc
+ name     title                             I         J         K         L         M         N
+ lat1_5_bnds
+                                           1:2       1:5       ...       ...       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+ ------------------------------
+ zvar[D=a1478] = 2*TEMP[D=2]
+ 
+    2> ./a_cartesian_bug1179.nc  (default)
+ name     title                             I         J         K         L         M         N
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ ------------------------------
+ newvar[D=a_cartesian_bug1179] = 0*ZVAR[D=2] + OLR[D=1]
+ 
+go bn_reset
+cancel mode verify
+ 
+ 
+! xml output
+ 
+USE a_cartesian_bug1179.nc
+ 
+say/quiet <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
+<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
+say/quiet <data>
+<data>
+ 
+show var/xml
+show 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="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>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[TIME]]></value>
+</attribute>
+</axis>
+<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="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>
+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="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>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[TIME]]></value>
+</attribute>
+</axis>
+<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="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 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>
+</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>
+</axes>
+SHO AXIS/XML `temp,return=taxis`
+ !-> SHO AXIS/XML TIME
+<axes>
+<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>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[TIME]]></value>
+</attribute>
+</axis>
+</axes>
+ 
+! Define a dataset variable
+! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
+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">
+<title> </title>
+<var name="temp" />
+<var name="temp_180" />
+</dataset>
+</datasets>
+ 
+USE a1478.nc
+SHOW DATA/XML
+<datasets>
+<dataset name="./a_cartesian_bug1179.nc" default="false">
+<title> </title>
+<var name="temp" />
+<var name="temp_180" />
+</dataset>
+<dataset name="./a1478.nc" default="true">
+<title> </title>
+<var name="lat1_5_bnds" />
+<var name="olr" />
+</dataset>
+</datasets>
+SHO DATA/VAR/XML
+<datasets>
+<dataset name="./a_cartesian_bug1179.nc" default="false">
+<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>
+<var name="temp_180">
+<attribute name="definition" type="char">
+   <value><![CDATA[TEMP[X=79E:79E at AVE]]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[TEMP[X=79E:79E at AVE]]]></value>
+</attribute>
+<grid name="GHU1">
+<axes>
+<yaxis>grid_y_T</yaxis>
+<zaxis>zt</zaxis>
+<taxis>TIME</taxis>
+</axes>
+</grid>
+</var>
+</dataset>
+</datasets>
+<axes>
+<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>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[TIME]]></value>
+</attribute>
+</axis>
+<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="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>
+<dataset name="./a1478.nc" default="true">
+<title> </title>
+<var name="lat1_5_bnds">
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<grid name="GPY1">
+<axes>
+<xaxis>bnds</xaxis>
+<yaxis>lat1_5</yaxis>
+</axes>
+</grid>
+</var>
+<var name="olr">
+<attribute name="units" type="char">
+   <value><![CDATA[watts/m2]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[outgoing longwave radiation]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-999</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-999</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<grid name="GPY2">
+<axes>
+<xaxis>lon1_5</xaxis>
+<yaxis>lat1_5</yaxis>
+<taxis>time1478</taxis>
+</axes>
+</grid>
+</var>
+</dataset>
+</datasets>
+<axes>
+<axis name="time1478">
+<attribute name="direction" type="char">
+   <value><![CDATA[L]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>3</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>14782.5</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>15512.5</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[DOUBLE]]></value>
+</attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[T]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[time1478]]></value>
+</attribute>
+</axis>
+<axis name="lat1_5">
+<attribute name="direction" type="char">
+   <value><![CDATA[J]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>5</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>-89.49438</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>-81.91011</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[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[lat1_5]]></value>
+</attribute>
+<attribute name="bounds" type="char">
+   <value>lat1_5_bnds</value>
+</attribute>
+</axis>
+<axis name="lon1_5">
+<attribute name="direction" type="char">
+   <value><![CDATA[I]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>5</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>1.25</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>11.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[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[lon1_5]]></value>
+</attribute>
+</axis>
+<axis name="bnds">
+<attribute name="direction" type="char">
+   <value><![CDATA[I]]></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.
+CAN DATA/ALL
+CAN VAR/ALL
+ 
+USE a1478
+USE a_cartesian_bug1179
+ 
+! Define a dataset variable
+LET/D=a1478 temp_20 temp[Z=0:20 at SUM]
+ 
+! Define a global variable
+LET t30 = temp[Z=0:30 at SUM]
+ 
+! Another variable, setting title, units, bad flag.
+LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral of SALT" salty = salt[Z=@IIN]
+ 
+ 
+! list tha variables
+SHO VAR/XML
+<global>
+<var name="t30">
+<attribute name="definition" type="char">
+   <value><![CDATA[TEMP[Z=0:30 at SUM]]]></value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<grid name="GHU1">
+<axes>
+<xaxis>grid_x_T</xaxis>
+<yaxis>grid_y_T</yaxis>
+<taxis>TIME</taxis>
+</axes>
+</grid>
+</var>
+</global>
+ 
+set mode/last upcase
+ 
+*** Running ferret script: bn_letd_attributes.jnl
+! bn_letd_attributes.jnl
+! Allow for the same variable name defined with LET/D in multiple datasets.
+! See ticket 2352.  Previously for all user variables the
+! attribute information stored was in fake uvar-dataset = -1.
+! Now if the variable is a LET/D variable, it is stored with
+! the attribute information of the dataset.
+ 
+ 
+! See the variable defined with LET/D in SHOW DAT, SHOW DAT/ATT
+! and with SHOW ATT
+ 
+use coads_climatology
+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)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ ------------------------------
+ MYVAR[D=coads_climatology] = 1
+ 
+ 
+show dat/att 1
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        28   T       FERRET V4.91 (GUI)  1-Mar-99
+  
+(COADSX)               DOUBLE    units           CHAR        12   T       degrees_east
+                                 modulo          CHAR        1    T
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSX
+  
+(COADSY)               DOUBLE    units           CHAR        13   T       degrees_north
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSY
+  
+(TIME)                 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
+                                                 CHAR        4    F       TIME
+  
+ SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
+                                 _FillValue      FLOAT       1    T       -1.E+34
+                                 long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
+                                 history         CHAR        22   T       From coads_climatology
+                                 units           CHAR        5    T       Deg C
+  
+ ------------------------------
+ myvar[D=coads_climatology]      long_name       CHAR        11   T       coads myvar
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+show att myvar
+     attributes for dataset: ./coads_climatology.cdf
+ myvar.long_name = coads myvar 
+ myvar.missing_value = -1.E+34
+ 
+! If there is also a global variable of the same name, SHOW VAR
+! and SHOW ATT list results for both variables
+ 
+let/title="Global myvar" myvar = 0  ! global
+show att myvar
+     attributes for user-defined variables
+ myvar.long_name = Global myvar 
+ myvar.missing_value = -1.E+34
+ 
+! Now a LET/D variable with the same name on a second datset.
+! SHOW ATT lists results for the current datset and any global variables
+ 
+use levitus_climatology
+let/d=2/title="Levitus myvar" myvar = 2
+show dat 2
+     currently SET data sets:
+    2> ./levitus_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ ------------------------------
+ MYVAR[D=levitus_climatology] = 2
+ 
+show dat/att 2
+     currently SET data sets:
+    2> ./levitus_climatology.cdf  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        24   T       FERRET V5.22    5-Apr-01
+  
+(XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
+                                 modulo          CHAR        1    T
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
+  
+(YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
+  
+(ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
+                                 positive        CHAR        4    T       down
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
+  
+ TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
+                                 _FillValue      FLOAT       1    T       -1.E+10
+                                 long_name       CHAR        11   T       TEMPERATURE
+                                 history         CHAR        24   T       From levitus_climatology
+                                 units           CHAR        5    T       DEG C
+  
+ ------------------------------
+ myvar[D=levitus_climatology]    long_name       CHAR        13   T       Levitus myvar
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+show att myvar
+     attributes for user-defined variables
+ myvar.long_name = Global myvar 
+ myvar.missing_value = -1.E+34
+ 
+show att/d=1 myvar
+     attributes for dataset: ./coads_climatology.cdf
+ myvar.long_name = coads myvar 
+ myvar.missing_value = -1.E+34
+ 
+! ..varnames is the list of file variables. Now to include LET/D variables
+ 
+let vnames = ..varnames
+list vnames
+             VARIABLE : ..VARNAMES
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1:"TEMP" 
+ 2   / 2:"myvar"
+ 
+ 
+set data 1
+list vnames
+             VARIABLE : ..VARNAMES
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1:"SST"  
+ 2   / 2:"myvar"
+ 
+ 
+! CANCEL VAR deletes the variables from the linked-list attribute structure.
+cancel var/all
+show dat
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+    2> ./levitus_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ 
+ 
+show dat/att 2
+     currently SET data sets:
+    2> ./levitus_climatology.cdf
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        24   T       FERRET V5.22    5-Apr-01
+  
+(XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
+                                 modulo          CHAR        1    T
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
+  
+(YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
+  
+(ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
+                                 positive        CHAR        4    T       down
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
+  
+ TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
+                                 _FillValue      FLOAT       1    T       -1.E+10
+                                 long_name       CHAR        11   T       TEMPERATURE
+                                 history         CHAR        24   T       From levitus_climatology
+                                 units           CHAR        5    T       DEG C
+  
+ 
+! Redefine our LET/D variables
+ 
+use coads_climatology
+let/d=1/title="coads myvar" myvar = 1
+ 
+use levitus_climatology
+let/d=2/title="Levitus myvar" myvar = 2
+ 
+! Define new attributes on the file variable and LET/D variable
+! in the default dataset
+ 
+define att/output temp.my_new_att="temperature attrib"
+define att/output myvar.units="meters"
+show att temp
+     attributes for dataset: ./levitus_climatology.cdf
+ TEMP.missing_value = -1.E+10
+ TEMP._FillValue = -1.E+10
+ TEMP.long_name = TEMPERATURE 
+ TEMP.history = From levitus_climatology 
+ TEMP.units = DEG C 
+ TEMP.my_new_att = temperature attrib 
+show att myvar
+     attributes for dataset: ./levitus_climatology.cdf
+ myvar.long_name = Levitus myvar 
+ myvar.missing_value = -1.E+34
+ myvar.units = meters 
+ 
+! use /D= to define an attribute for a file-specific var
+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
+ myvar.long_name = coads myvar 
+ myvar.missing_value = -1.E+34
+ myvar.units = feet 
+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
+ myvar.long_name = Levitus myvar 
+ myvar.missing_value = -1.E+34
+ myvar.units = meters 
+ myvar.standard_name = None 
+save/clobber/file=a.nc myvar[d=2]
+sp ncdump -h a.nc >> all_ncdump.out
+ 
+*** Running ferret script: bn_list_clim_axes.jnl
+! bn_list_clim_axes.jnl
+! *acm* 3/16
+! Show and list coordinates for climatological axes
+! that are pre-defined in Ferret
+ 
+show axis seasonal_reg
+ name       axis              # pts   start                end
+ SEASONAL_REG TIME              4mr   15-FEB 15:43         15-NOV 14:05
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 8765.82 (modulo length = axis span)
+show axis month*
+ name       axis              # pts   start                end
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ MONTH_REG TIME                12mr   16-JAN 06:00         16-DEC 01:20
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 8765.82 (modulo length = axis span)
+ MONTH_GREGORIAN TIME          12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ MONTH_NOLEAP TIME             12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = NOLEAP
+   Axis span (to cell edges) = 365 (modulo length = axis span)
+ MONTH_360_DAY TIME            12mr   16-JAN 00:00         16-DEC 00:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ MONTH_ALL_LEAP TIME           12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = ALL_LEAP
+   Axis span (to cell edges) = 366 (modulo length = axis span)
+ MONTH_JULIAN TIME             12mi   16-JAN 12:00         15-DEC 18:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 365.25 (modulo length = axis span)
+show axis/t month_irreg
+ name       axis              # pts   start                end
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 02:54:36       28.2425    01-FEB 00:00:00         45.12125
+       3>  15-MAR 17:49:12       31         29-FEB 05:49:12         74.7425
+       4>  15-APR 05:49:12       30         31-MAR 05:49:12         105.2425
+       5>  15-MAY 17:49:12       31         30-APR 05:49:12         135.7425
+       6>  15-JUN 05:49:12       30         31-MAY 05:49:12         166.2425
+       7>  15-JUL 17:49:12       31         30-JUN 05:49:12         196.7425
+       8>  15-AUG 17:49:12       31         31-JUL 05:49:12         227.7425
+       9>  15-SEP 05:49:12       30         31-AUG 05:49:12         258.2425
+      10>  15-OCT 17:49:12       31         30-SEP 05:49:12         288.7425
+      11>  15-NOV 05:49:12       30         31-OCT 05:49:12         319.2425
+      12>  15-DEC 17:49:12       31         30-NOV 05:49:12         349.7425
+show axis/t month_gregorian
+ name       axis              # pts   start                end
+ MONTH_GREGORIAN TIME          12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 02:54:36       28.2425    01-FEB 00:00:00         45.12125
+       3>  15-MAR 17:49:12       31         29-FEB 05:49:12         74.7425
+       4>  15-APR 05:49:12       30         31-MAR 05:49:12         105.2425
+       5>  15-MAY 17:49:12       31         30-APR 05:49:12         135.7425
+       6>  15-JUN 05:49:12       30         31-MAY 05:49:12         166.2425
+       7>  15-JUL 17:49:12       31         30-JUN 05:49:12         196.7425
+       8>  15-AUG 17:49:12       31         31-JUL 05:49:12         227.7425
+       9>  15-SEP 05:49:12       30         31-AUG 05:49:12         258.2425
+      10>  15-OCT 17:49:12       31         30-SEP 05:49:12         288.7425
+      11>  15-NOV 05:49:12       30         31-OCT 05:49:12         319.2425
+      12>  15-DEC 17:49:12       31         30-NOV 05:49:12         349.7425
+show axis/t month_noleap
+ name       axis              # pts   start                end
+ MONTH_NOLEAP TIME             12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = NOLEAP
+   Axis span (to cell edges) = 365 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 00:00:00       28         01-FEB 00:00:00         45
+       3>  16-MAR 12:00:00       31         01-MAR 00:00:00         74.5
+       4>  16-APR 00:00:00       30         01-APR 00:00:00         105
+       5>  16-MAY 12:00:00       31         01-MAY 00:00:00         135.5
+       6>  16-JUN 00:00:00       30         01-JUN 00:00:00         166
+       7>  16-JUL 12:00:00       31         01-JUL 00:00:00         196.5
+       8>  16-AUG 12:00:00       31         01-AUG 00:00:00         227.5
+       9>  16-SEP 00:00:00       30         01-SEP 00:00:00         258
+      10>  16-OCT 12:00:00       31         01-OCT 00:00:00         288.5
+      11>  16-NOV 00:00:00       30         01-NOV 00:00:00         319
+      12>  16-DEC 12:00:00       31         01-DEC 00:00:00         349.5
+show axis/t month_360_day
+ name       axis              # pts   start                end
+ MONTH_360_DAY TIME            12mr   16-JAN 00:00         16-DEC 00:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 00:00:00       30         01-JAN 00:00:00         15
+       2>  16-FEB 00:00:00       30         01-FEB 00:00:00         45
+       3>  16-MAR 00:00:00       30         01-MAR 00:00:00         75
+       4>  16-APR 00:00:00       30         01-APR 00:00:00         105
+       5>  16-MAY 00:00:00       30         01-MAY 00:00:00         135
+       6>  16-JUN 00:00:00       30         01-JUN 00:00:00         165
+       7>  16-JUL 00:00:00       30         01-JUL 00:00:00         195
+       8>  16-AUG 00:00:00       30         01-AUG 00:00:00         225
+       9>  16-SEP 00:00:00       30         01-SEP 00:00:00         255
+      10>  16-OCT 00:00:00       30         01-OCT 00:00:00         285
+      11>  16-NOV 00:00:00       30         01-NOV 00:00:00         315
+      12>  16-DEC 00:00:00       30         01-DEC 00:00:00         345
+show axis/t month_all_leap
+ name       axis              # pts   start                end
+ MONTH_ALL_LEAP TIME           12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = ALL_LEAP
+   Axis span (to cell edges) = 366 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 12:00:00       29         01-FEB 00:00:00         45.5
+       3>  16-MAR 12:00:00       31         01-MAR 00:00:00         75.5
+       4>  16-APR 00:00:00       30         01-APR 00:00:00         106
+       5>  16-MAY 12:00:00       31         01-MAY 00:00:00         136.5
+       6>  16-JUN 00:00:00       30         01-JUN 00:00:00         167
+       7>  16-JUL 12:00:00       31         01-JUL 00:00:00         197.5
+       8>  16-AUG 12:00:00       31         01-AUG 00:00:00         228.5
+       9>  16-SEP 00:00:00       30         01-SEP 00:00:00         259
+      10>  16-OCT 12:00:00       31         01-OCT 00:00:00         289.5
+      11>  16-NOV 00:00:00       30         01-NOV 00:00:00         320
+      12>  16-DEC 12:00:00       31         01-DEC 00:00:00         350.5
+*** Running ferret script: bn_climatology_attr.jnl
+! bn_climatology_attr.jnl
+! *acm* 3/16  See ticket 2278
+!
+! Add an attribute climatology_time_range when writing a computed
+! climatology, listing the month/year of the start and end of the
+! data used in computing it.
+ 
+! Define a monthly axis
+def ax/t=1-feb-1980:1-feb-2003/np=276/unit="day"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
+ 
+! entire input time range used
+let clim1 = tvar[gt=month_irreg at mod]
+save/file=a.nc/clobber clim1
+ 
+! a subset of the time range used
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let clim2 = t_subset[gt=month_reg at mod]
+save/append/file=a.nc clim2
+ 
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow clim1.climatology_time_range, clim2.climatology_time_range
+ "FEB-1980:FEB-2003" "FEB-1990:DEC-1999"
+ 
+ 
+! noleap axis
+def ax/edge/t=1-feb-1980:1-feb-2003/np=276/cal=noleap/unit="hour"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_noleap at mod]
+save/file=a.nc/clobber clim1
+ 
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let clim2 = t_subset[gt=month_noleap at mod]
+save/append/file=a.nc clim2
+ 
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow clim1.climatology_time_range, clim2.climatology_time_range
+ "FEB-1980:JAN-2003" "FEB-1990:DEC-1999"
+ 
+ 
+ 
+! If the expression compbines data from multiple ranges, indicate that
+ 
+def ax/t=1-feb-1980:1-feb-2003/np=276/unit="day"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
+let a = tvar[gt=month_reg at mod]
+ 
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let b = t_subset[gt=month_reg at mod]
+let c = a+b
+ 
+save/append/file=a.nc c
+ 
+can dat/all; use a.nc
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow c.climatology_time_range
+ "Multiple time ranges used"
+ 
+*** Running ferret script: bn_plot_along.jnl
+! BN_PLOT_ALONG
+ 
+! *sh* 3/2016
+ 
+!  yes? GO bn_plot_along [debug]
+ 
+! exercise breaking up of plot command argument into lones along the
+! indicated direction
+ 
+DEFINE SYMBOL debugme = ($1"SAY continuing|debug>PAUSE")
+ !-> DEFINE SYMBOL debugme = SAY continuing
+ 
+! basic
+LET blocky10 = x[i=1:10]+y[j=1:10]
+PLOT/ALONG=x blocky10
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! degenerate case -- only a single line
+LET blocky1 = x[i=1:10]+y[j=1:1]
+PLOT/ALONG=x blocky1
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! number of lines exceeds key limit  (40 at time of this writing)
+! automatic decimation to keep within key limit
+LET blocky200 = x[i=1:10]+y[j=1:200]
+PLOT/ALONG=x blocky200
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey  - no longer limited to the number of keys that can be drawn
+LET blocky50 = x[i=1:10]+y[j=1:50]
+PLOT/ALONG=x/nokey blocky50
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey -- number of lines exceeds line limit  (200 at time of this writing)
+! automatic decimation to keep within line limit
+LET blocky201 = x[i=1:10]+y[j=1:201]
+PLOT/ALONG=x/nokey blocky201
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! multi-dimensional
+LET blockxyz        = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:5]+100*z[k=1:30]
+LET blockxyz_little = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:3] +100*z[k=1:4]
+PLOT/ALONG=t blockxyz_little
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+PLOT/ALONG=t blockxyz         ! decimate to key  limit
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+PLOT/ALONG=t/nokey blockxyz   ! decimate to line limit
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+ 
+! ensemble application
+LET block = x[i=1:2]+10*y[j=1:3]+100*z[k=1:4]
+LET sin_block = SIN(T[l=1:100]/10)*block
+LET ens_sin_block = sin_block*( (20+_E[m=1:20])/20 )
+PLOT/ALONG=t ens_sin_block[i=1,j=2,k=3]
+*** Running ferret script: bn_show_commands.jnl
+! bn_show_commands.jnl
+! Testing results for ticket 2078: SHOW COMMAND cmnd subcmnd
+! Also new SHOW COMMAND/BRIEF
+! 3/2016 *acm*
+!
+! When commands are highly abbreviated, which command/subcommand is
+! executed depends on the order in which they are listed in Ferret
+! internal data structures. Keep this output consistent if new commands
+! added or command list are reordered.
+ 
+! Commands with subcommands
+ 
+sho command set
+ 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
+ SET VIEWPORT
+ SET EXPRSION
+ 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
+ SET MODE/LAST
+ SET MOVI/FILE/COMPRESS/LASER/START
+ SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
+      /LAYERZ/CURVILIN
+ SET GRID/SAVE/RESTORE
+ SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
+ SET MEMORY/SIZE
+ SET ATTRIBUT/TYPE/DATASET/OUTPUT/LIKE/QUIET
+ SET NCCACHE/SIZE/NELEMS/PREEMPT
+ SET REDIRECT/TEE/JOURNAL/FILE/APPEND/CLOBBER
+ SET GIFFILE
+sho command set w  ! SET WINDOW
+ SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE
+sho command set r  ! SET REGION
+ SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
+sho command set v  ! SET VIEWPORT
+ SET VIEWPORT
+sho command set e  ! SET EXPRSION
+ SET EXPRSION
+sho command set l  ! SET LIST
+ SET LIST/PRECISIO/FILE/FORMAT/APPEND/HEADING/NCFORMAT/ENDIAN/DEFLATE/SHUFFLE
+      /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
+sho command set m  ! SET MODE
+ SET MODE/LAST
+sho command set mov! SET MOVIE
+ SET MOVI/FILE/COMPRESS/LASER/START
+sho command set va ! SET VARIABLE
+ SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
+      /LAYERZ/CURVILIN
+sho command set g  ! SET GRID
+ SET GRID/SAVE/RESTORE
+sho command set a  ! SET AXIS
+ SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
+sho command set me ! SET MEMORY
+ SET MEMORY/SIZE
+sho command set at ! SET ATTRIBUTE
+ SET ATTRIBUT/TYPE/DATASET/OUTPUT/LIKE/QUIET
+sho command set n  ! SET NCCACHE
+ SET NCCACHE/SIZE/NELEMS/PREEMPT
+sho command set red! SET REDIRECT
+ SET REDIRECT/TEE/JOURNAL/FILE/APPEND/CLOBBER
+sho command set gi ! SET GIFFILE
+ SET GIFFILE
+ 
+sho command sho
+ SHOW/ALL
+ SHOW WINDOW/ALL
+ SHOW REGION/ALL
+ SHOW AXIS/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/XML/OUTFILE/APPEND/CLOBBER
+ SHOW EXPRSION/ALL
+ SHOW LIST/ALL
+ SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
+       /HIDDEN
+ SHOW MODE/ALL
+ SHOW MOVIE/ALL
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+ SHOW COMMANDS/ALL/BRIEF
+ SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
+ SHOW VIEWPORT/ALL
+ SHOW TRANFORM/ALL
+ SHOW ALIAS/ALL
+ SHOW SYMBOL/ALL
+ SHOW ATTRIBUT/ALL/DATASET/OUTPUT
+ SHOW NCCACHE
+ SHOW GIFFILE
+ SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
+ SHOW QUERIES/ALL
+sho command sho w  ! SHOW WINDOW
+ SHOW WINDOW/ALL
+sho command sho r  ! SHOW REGION
+ SHOW REGION/ALL
+sho command sho a  ! SHOW AXIS
+ SHOW AXIS/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/XML/OUTFILE/APPEND/CLOBBER
+sho command sho e  ! SHOW EXPRSTION
+ SHOW EXPRSION/ALL
+sho command sho l  ! SHOW LIST
+ SHOW LIST/ALL
+sho command sho d  ! SHOW DATA
+ SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
+       /HIDDEN
+sho command sho m  ! SHOW MODE
+ SHOW MODE/ALL
+sho command sho mov! SHOW MOVIE
+ SHOW MOVIE/ALL
+sho command sho v  ! SHOW VARIABLE
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+sho command sho c  ! SHOW COMMANDS
+ SHOW COMMANDS/ALL/BRIEF
+sho command sho me ! SHOW MEMORY
+ SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+sho command sho g  ! SHOW GRID
+ SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
+sho command sho vi ! SHOW VIEWPORT
+ SHOW VIEWPORT/ALL
+sho command sho t  ! SHOW TRANSFORM
+ SHOW TRANFORM/ALL
+sho command sho al ! SHOW ALIAS
+ SHOW ALIAS/ALL
+sho command sho s  ! SHOW SYMBOL
+ SHOW SYMBOL/ALL
+sho command sho at ! SHOW ATTRIBUTE
+ SHOW ATTRIBUT/ALL/DATASET/OUTPUT
+sho command sho n  ! SHOW NCCACHE
+ SHOW NCCACHE
+sho command sho gi ! SHOW GIFFILE
+ SHOW GIFFILE
+sho command sho f  ! SHOW FUNCTION
+ SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
+sho command sho q  ! SHOW QUERIES
+ SHOW QUERIES/ALL
+ 
+sho command can
+ CANCEL
+ CANCEL WIND/ALL
+ CANCEL REGION/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F
+ CANCEL MEMORY/ALL/TEMPORY/PERMANT
+ CANCEL EXPRSION/ALL
+ CANCEL LIST/ALL/PRECISIO/FILE/FORMAT/HEADING/APPEND/OUTTYPE
+ CANCEL DATA/ALL/NOERROR
+ CANCEL MODE
+ CANCEL MOVIE/ALL
+ CANCEL VIEWPORT
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
+ CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
+ CANCEL GRID
+ CANCEL ATTRIBUT/OUTPUT/DATASET
+ CANCEL REDIRECT
+ CANCEL ALIAS/ALL
+ CANCEL SYMBOL/ALL
+ CANCEL NCCACHE
+sho command can w  ! CANCEL WINDOW
+ CANCEL WIND/ALL
+sho command can r  ! CANCEL REGION
+ CANCEL REGION/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F
+sho command can m  ! CANCEL MEMORY
+ CANCEL MEMORY/ALL/TEMPORY/PERMANT
+sho command can e  ! CANCEL EXPRSION
+ CANCEL EXPRSION/ALL
+sho command can l  ! CANCEL LIST
+ CANCEL LIST/ALL/PRECISIO/FILE/FORMAT/HEADING/APPEND/OUTTYPE
+sho command can d  ! CANCEL DATA
+ CANCEL DATA/ALL/NOERROR
+sho command can mo ! CANCEL MODE
+ CANCEL MODE
+sho command can mov! CANCEL MOVIE
+ CANCEL MOVIE/ALL
+sho command can v  ! CANCEL VIEWPORT
+ CANCEL VIEWPORT
+sho command can va ! CANCEL VARIABLE
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
+sho command can a  ! CANCEL AXIS
+ CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
+sho command can g  ! CANCEL GRID
+ CANCEL GRID
+sho command can at ! CANCEL ATTRIBUTE
+ CANCEL ATTRIBUT/OUTPUT/DATASET
+sho command can red! CANCEL REDIRECT
+ CANCEL REDIRECT
+sho command can al ! CANCEL ALIAS
+ CANCEL ALIAS/ALL
+sho command can s  ! CANCEL SYMBOL
+ CANCEL SYMBOL/ALL
+sho command can n  ! CANCEL NCCACHE
+ CANCEL NCCACHE
+ 
+sho command def
+ DEFINE
+ DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
+         /DL/DM/DN
+ DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
+ DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
+ DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+ DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
+ DEFINE ALIAS
+ DEFINE SYMBOL
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
+ DEFINE PYFUNC/NAME
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
+sho command def r  ! DEFINE REGION
+ DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
+         /DL/DM/DN
+sho command def g  ! DEFINE GRID
+ DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
+sho command def v  ! DEFINE VARIABLE
+ DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
+sho command def a  ! DEFINE AXIS
+ DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+sho command def vi ! DEFINE VIEWPORT
+ DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
+sho command def al ! DEFINE ALIAS
+ DEFINE ALIAS
+sho command def s  ! DEFINE SYMBOL
+ DEFINE SYMBOL
+sho command def at ! DEFINE ATTRIBUTE
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
+sho command def P  ! DEFINE PYFUNC
+ DEFINE PYFUNC/NAME
+sho command def d  ! DEFINE DATA
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+sho command def an ! DEFINE ANNOTATE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
+ 
+ 
+! Also new SHOW COMMAND/BRIEF
+! Single commands, abbreviated.
+ 
+sho command/brief a
+ ANNOTATE
+sho command/brief c
+ CANCEL
+ CANCEL WIND
+ CANCEL REGION
+ CANCEL MEMORY
+ CANCEL EXPRSION
+ CANCEL LIST
+ CANCEL DATA
+ CANCEL MODE
+ CANCEL MOVIE
+ CANCEL VIEWPORT
+ CANCEL VARIABLE
+ CANCEL AXIS
+ CANCEL GRID
+ CANCEL ATTRIBUT
+ CANCEL REDIRECT
+ CANCEL ALIAS
+ CANCEL SYMBOL
+ CANCEL NCCACHE
+sho command/brief ca
+ CANCEL
+ CANCEL WIND
+ CANCEL REGION
+ CANCEL MEMORY
+ CANCEL EXPRSION
+ CANCEL LIST
+ CANCEL DATA
+ CANCEL MODE
+ CANCEL MOVIE
+ CANCEL VIEWPORT
+ CANCEL VARIABLE
+ CANCEL AXIS
+ CANCEL GRID
+ CANCEL ATTRIBUT
+ CANCEL REDIRECT
+ CANCEL ALIAS
+ CANCEL SYMBOL
+ CANCEL NCCACHE
+sho command/brief co
+ CONTOUR
+sho command/brief d
+ DEFINE
+ DEFINE REGION
+ DEFINE GRID
+ DEFINE VARIABLE
+ DEFINE AXIS
+ DEFINE VIEWPORT
+ DEFINE ALIAS
+ DEFINE SYMBOL
+ DEFINE ATTRIBUT
+ DEFINE PYFUNC
+ DEFINE DATA
+ DEFINE ANNOTATI
+sho command/brief e
+ EXIT
+sho command/brief el
+ ELSE
+sho command/brief en
+ ENDIF
+sho command/brief ex
+ EXIT
+sho command/brief f
+ FRAME
+sho command/brief h
+ HELP
+sho command/brief h
+ HELP
+sho command/brief i
+ IF
+sho command/brief l
+ LIST
+sho command/brief li
+ LIST
+sho command/brief lo
+ LOAD
+sho command/brief m
+ MESSAGE
+sho command/brief p
+ PLOT
+sho command/brief pl
+ PLOT
+sho command/brief po
+ POLYGON
+sho command/brief pp
+ PPLUS
+sho command/brief q
+ QUERY
+sho command/brief r
+ REPEAT
+sho command/brief s
+ SET
+ SET WINDOW
+ SET REGION
+ SET VIEWPORT
+ SET EXPRSION
+ SET LIST
+ SET DATA
+ SET MODE
+ SET MOVI
+ SET VARIABLE
+ SET GRID
+ SET AXIS
+ SET MEMORY
+ SET ATTRIBUT
+ SET NCCACHE
+ SET REDIRECT
+ SET GIFFILE
+sho command/brief se
+ SET
+ SET WINDOW
+ SET REGION
+ SET VIEWPORT
+ SET EXPRSION
+ SET LIST
+ SET DATA
+ SET MODE
+ SET MOVI
+ SET VARIABLE
+ SET GRID
+ SET AXIS
+ SET MEMORY
+ SET ATTRIBUT
+ SET NCCACHE
+ SET REDIRECT
+ SET GIFFILE
+sho command/brief sh
+ SHOW
+ SHOW WINDOW
+ SHOW REGION
+ SHOW AXIS
+ SHOW EXPRSION
+ SHOW LIST
+ SHOW DATA
+ SHOW MODE
+ SHOW MOVIE
+ SHOW VARIABLE
+ SHOW COMMANDS
+ SHOW MEMORY
+ SHOW GRID
+ SHOW VIEWPORT
+ SHOW TRANFORM
+ SHOW ALIAS
+ SHOW SYMBOL
+ SHOW ATTRIBUT
+ SHOW NCCACHE
+ SHOW GIFFILE
+ SHOW FUNCTION
+ SHOW QUERIES
+sho command/brief sp
+ SPAWN
+sho command/brief st
+ STAT
+sho command/brief u
+ USER
+sho command/brief v
+ VECTOR
+ 
+ 
+! All the commands, no subcommands, no qualifiers
+SHOW COMMAND/BRIEF
+ Commands in Program FERRET  version7:
+ SET
+ SHOW
+ CANCEL
+ CONTOUR
+ LIST
+ PLOT
+ GO
+ HELP
+ LOAD
+ DEFINE
+ EXIT
+ MESSAGE
+ VECTOR
+ PPLUS
+ FRAME
+ REPEAT
+ STAT
+ SHADE
+ SPAWN
+ USER
+ WIRE
+ QUERY
+ IF
+ ELSE
+ ELIF
+ ENDIF
+ POLYGON
+ ANNOTATE
+ 
+ Use SHOW ALIAS to see alternative command names
+ 
+! With a command, just show subcommands, no qualifiers
+SHOW COMMAND/BRIEF sho
+ SHOW
+ SHOW WINDOW
+ SHOW REGION
+ SHOW AXIS
+ SHOW EXPRSION
+ SHOW LIST
+ SHOW DATA
+ SHOW MODE
+ SHOW MOVIE
+ SHOW VARIABLE
+ SHOW COMMANDS
+ SHOW MEMORY
+ SHOW GRID
+ SHOW VIEWPORT
+ SHOW TRANFORM
+ SHOW ALIAS
+ SHOW SYMBOL
+ SHOW ATTRIBUT
+ SHOW NCCACHE
+ SHOW GIFFILE
+ SHOW FUNCTION
+ SHOW QUERIES
+ 
+! With a command and subcommand, no qualifiers
+SHOW COMMAND/BRIEF sho da
+ SHOW DATA
+ 
+*** Running ferret script: bn_plot_decimate.jnl
+! BN_PLOT_SKIP
+ 
+! *acm* 3/2016
+ 
+!  yes? GO bn_plot_skip [debug]
+ 
+! based on PLOT/ALONG tests.
+! PLOT/SKIP=n for /SYMBOL plots makes only every SKIP symbol.
+ 
+DEFINE SYMBOL debugme = ($1"SAY continuing|debug>PAUSE")
+ !-> DEFINE SYMBOL debugme = SAY continuing
+ 
+DEFINE SYMBOL deci = 2
+ 
+! basic
+LET blocky10 = x[i=1:10]+y[j=1:10]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky10
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x blocky10
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! degenerate case -- only a single line
+LET blocky1 = x[i=1:10]+y[j=1:1]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky1
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x blocky1
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! number of lines exceeds key limit  (40 at time of this writing)
+! automatic decimation to keep within key limit
+LET blocky200 = x[i=1:10]+y[j=1:200]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky200
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x blocky200
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey  - no longer limited to the number of keys that can be drawn
+LET blocky50 = x[i=1:10]+y[j=1:50]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x/nokey blocky50
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x/nokey blocky50
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey -- number of lines exceeds line limit  (200 at time of this writing)
+! automatic decimation to keep within line limit
+LET blocky201 = x[i=1:10]+y[j=1:201]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x/nokey blocky201
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x/nokey blocky201
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! multi-dimensional
+LET blockxyz        = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:5]+100*z[k=1:30]
+LET blockxyz_little = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:3] +100*z[k=1:4]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t blockxyz_little
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=t blockxyz_little
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t blockxyz         ! decimate to key  limit
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=t blockxyz
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+define symbol deci = 5
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t/nokey blockxyz   ! decimate to line limit
+ !-> PLOT/SYM/LINE/SKIP=5/ALONG=t/nokey blockxyz
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+ 
+! ensemble application
+! Here the symbols appear on lines automatically for distinguishing
+! large number of lines. /SKIP works without explicitly saying /SYM
+LET block = x[i=1:2]+10*y[j=1:3]+100*z[k=1:4]
+LET sin_block = SIN(T[l=1:100]/10)*block
+LET ens_sin_block = sin_block*( (20+_E[m=1:20])/20 )
+PLOT/SKIP=($deci)/ALONG=t ens_sin_block[i=1,j=2,k=3]
+ !-> PLOT/SKIP=5/ALONG=t ens_sin_block[i=1,j=2,k=3]
+*** Running ferret script: bn_auto_tprec.jnl
+! bn_auto_tprec.jnl
+! See ticket 2405
+! Time labels on plots always just get the precision from MODE CALENDAR
+! Instead, use the same logic as is used for text labels, automatically adjust.
+! (later make this the default setting??)
+ 
+set mode calendar:auto
+show mode calendar
+      MODE            STATE        ARGUMENT
+      CALENDAR         SET         auto
+ 
+use levitus_climatology
+let ttim = temp + t[gt=tax]
+ 
+!  Varies in seconds
+define axis/t/units="seconds"/t0="1-jan-2001" tax = {1,12,13,14,16,17,18,19,24}
+ 
+list/k=1/x=60/y=-40 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 9 points (TIME)
+             LONGITUDE: 59.5E
+             LATITUDE : 40.5S
+             DEPTH (m): 0
+                             59.5E 
+                             40
+ 01-JAN-2001 00:00:01 / 1:  15.13
+ 01-JAN-2001 00:00:12 / 2:  26.13
+ 01-JAN-2001 00:00:13 / 3:  27.13
+ 01-JAN-2001 00:00:14 / 4:  28.13
+ 01-JAN-2001 00:00:16 / 5:  30.13
+ 01-JAN-2001 00:00:17 / 6:  31.13
+ 01-JAN-2001 00:00:18 / 7:  32.13
+ 01-JAN-2001 00:00:19 / 8:  33.13
+ 01-JAN-2001 00:00:24 / 9:  38.13
+shade/title="seconds"/l=9/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 00:00:24"
+ 
+!  Varies in minutes, fractions of minutes
+define axis/t/units="minutes"/t0="1-jan-2001" tax = {1,1.1,12,13,14,16,17,18.5,19,24}
+list/k=1/x=60/y=-40 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 10 points (TIME)
+             LONGITUDE: 59.5E
+             LATITUDE : 40.5S
+             DEPTH (m): 0
+                              59.5E 
+                              40
+ 01-JAN-2001 00:01:00 /  1:  15.13
+ 01-JAN-2001 00:01:06 /  2:  15.23
+ 01-JAN-2001 00:12:00 /  3:  26.13
+ 01-JAN-2001 00:13:00 /  4:  27.13
+ 01-JAN-2001 00:14:00 /  5:  28.13
+ 01-JAN-2001 00:16:00 /  6:  30.13
+ 01-JAN-2001 00:17:00 /  7:  31.13
+ 01-JAN-2001 00:18:30 /  8:  32.63
+ 01-JAN-2001 00:19:00 /  9:  33.13
+ 01-JAN-2001 00:24:00 / 10:  38.13
+shade/title="minutes/fractions of minutes"/l=9/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 00:19:00"
+ 
+! varies in hours, fractions of hours
+define axis/t/units="hour"/t0="1-jan-2001" tax = {1,1.1,12.1,12.2,14,16,17,18.5,19,24}
+list/k=1/x=60/y=-40 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 10 points (TIME)
+             LONGITUDE: 59.5E
+             LATITUDE : 40.5S
+             DEPTH (m): 0
+                              59.5E 
+                              40
+ 01-JAN-2001 01:00:00 /  1:  15.13
+ 01-JAN-2001 01:06:00 /  2:  15.23
+ 01-JAN-2001 12:06:00 /  3:  26.23
+ 01-JAN-2001 12:12:00 /  4:  26.33
+ 01-JAN-2001 14:00:00 /  5:  28.13
+ 01-JAN-2001 16:00:00 /  6:  30.13
+ 01-JAN-2001 17:00:00 /  7:  31.13
+ 01-JAN-2001 18:30:00 /  8:  32.63
+ 01-JAN-2001 19:00:00 /  9:  33.13
+ 02-JAN-2001 00:00:00 / 10:  38.13
+shade/title="hours/fractions of hours"/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 12:06"
+ 
+! 6-hour even spacing
+define axis/t=1-jan-2001:8-jan-2001:6/units="hour"/t0="1-jan-2001" tax
+list/k=1/x=60/y=-40/L=1:6 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 6 points (TIME)
+             LONGITUDE: 59.5E
+             LATITUDE : 40.5S
+             DEPTH (m): 0
+                          59.5E 
+                          40
+ 01-JAN-2001 00:00 / 1:  14.13
+ 01-JAN-2001 06:00 / 2:  20.13
+ 01-JAN-2001 12:00 / 3:  26.13
+ 01-JAN-2001 18:00 / 4:  32.13
+ 02-JAN-2001 00:00 / 5:  38.13
+ 02-JAN-2001 06:00 / 6:  44.13
+shade/title="hours "/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 12:00"
+ 
+! Reynolds SST weekly, even 7-day spacing
+use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
+list/x=180/y=0/l=20:25 fsst
+             VARIABLE : Filtered Weekly SST Means (deg C)
+             DATA SET : Reynolds Optimum Interpolation Weekly SST Analysis
+             FILENAME : reynolds_sst_wk.nc
+             FILEPATH : http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+             SUBSET   : 6 points (TIME)
+             LONGITUDE: 179.5E
+             LATITUDE : 0.5S
+                       179.5E 
+                       180
+ 18-MAY-1982 00 / 20:  29.84
+ 25-MAY-1982 00 / 21:  29.85
+ 01-JUN-1982 00 / 22:  29.85
+ 08-JUN-1982 00 / 23:  29.97
+ 15-JUN-1982 00 / 24:  30.16
+ 22-JUN-1982 00 / 25:  30.28
+shade/title="7-day axis"/l=30/x=60:70/y=-40:-30 fsst; sh sym  lab($labnum_t)
+ !-> sh sym  lab1
+LAB1 = "TIME : 27-JUL-1982 00"
+ 
+! monthly climatology
+use TAO_SST_clim
+list/x=180/y=0 sst_clim
+             VARIABLE : Climatological TAO SST, 1992-1997 (Degrees C)
+             FILENAME : TAO_SST_clim.cdf
+             SUBSET   : 12 points (TIME)
+             LONGITUDE: 180E
+             LATITUDE : 0
+                     180E  
+                      5
+ 16-JAN      /  1:  28.47
+ 15-FEB      /  2:  28.02
+ 17-MAR      /  3:  28.06
+ 16-APR      /  4:  28.63
+ 16-MAY      /  5:  28.79
+ 16-JUN      /  6:  28.89
+ 16-JUL      /  7:  29.11
+ 16-AUG      /  8:  29.24
+ 15-SEP      /  9:  29.15
+ 16-OCT      / 10:  29.06
+ 15-NOV      / 11:  28.97
+ 16-DEC      / 12:  28.88
+shade/title="monthly climatology"/k=1/l=5 sst_clim; sh sym  lab($labnum_t)
+ !-> sh sym  lab1
+LAB1 = "TIME : 16-MAY"
+ 
+! truemonth
+use truemonth
+list/x=180/y=0/l=20:25 var
+             VARIABLE : COS(T[GT=TRUEMONTH]/100)
+             FILENAME : truemonth.nc
+             SUBSET   : 6 points (TIME)
+ 16-AUG-1951 / 20:  0.9988
+ 16-SEP-1951 / 21:  0.9378
+ 16-OCT-1951 / 22:  0.7903
+ 16-NOV-1951 / 23:  0.5699
+ 16-DEC-1951 / 24:  0.2968
+ 16-JAN-1952 / 25: -0.0086
+ 
+let ttim = temp[d=levitus_climatology] + var
+shade/title="true-month axis"/L=32/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 16-AUG-1952"
+ 
+set mode/last calendar
+ 
+! Is the default precision of minutes restored?
+use truemonth
+let ttim = temp[d=levitus_climatology] + var
+shade/title="true-month axis"/L=32/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 16-AUG-1952 12:00"
+*** Running ferret script: bn_coordvars_atts.jnl
+! bn_coordvars_atts.jnl
+! 5/2016 *acm*  see ticket 2413
+! Additional attribute keywords for returning  coordinate variable
+! names and number of coordinate vars, to distinguish coordinate
+! info from dimension info.
+ 
+! File has dimensions which are not coordinate variables, for
+! the dimensions of the 2D coordinate variables.
+use dims_not_coord.nc
+list/nohead ..ndims
+          3.000
+list/nohead ..dimnames
+ 1   / 1:"ETA"     
+ 2   / 2:"TAU1"    
+ 3   / 3:"ZT_OCEAN"
+list/nohead ..ncoordvars
+          1.000
+list/nohead ..coordnames
+        "ZT_OCEAN"
+let cname = ..coordnames
+sh axis `cname[i=1]`
+ !-> sh axis ZT_OCEAN
+ name       axis              # pts   start                end
+ ZT_OCEAN  DEPTH (m)            1 r-  15                   15
+   Axis span (to cell edges) = 1
+ 
+! The depth axis has coordinate bounds; the length-2 bnds
+! dimension is not a coordinate variable
+use levitus_3d_subset.nc
+list/nohead ..ndims
+          4.000
+list/nohead ..dimnames
+ 1   / 1:"XAXLEVITR101_102"
+ 2   / 2:"YAXLEVITR41_42"  
+ 3   / 3:"ZAXLEVITR"       
+ 4   / 4:"bnds"            
+list/nohead ..ncoordvars
+          3.000
+list/nohead ..coordnames
+ 1   / 1:"XAXLEVITR101_102"
+ 2   / 2:"YAXLEVITR41_42"  
+ 3   / 3:"ZAXLEVITR"       
+ 
+! String variables in netcdf files have string-length
+! dimensions which are not coordinate variables.
+use numstring.nc
+list/nohead ..ndims
+          4.000
+list/nohead ..dimnames
+ 1   / 1:"XAX"      
+ 2   / 2:"ZAX"      
+ 3   / 3:"XAX1_10"  
+ 4   / 4:"STRING1_7"
+list/nohead ..ncoordvars
+          3.000
+list/nohead ..coordnames
+ 1   / 1:"XAX"    
+ 2   / 2:"ZAX"    
+ 3   / 3:"XAX1_10"
+*** Running ferret script: bn_gif.jnl
+! bn450_gif.JNL - copied from bn450_plot.jnl
+! this journal file only tests the writing of gif file in batch mode using
+! frame/file=bnplot.gif....will create three gif files
+! *kob*
+ 
+ 
+can mode logo
+ 
+! define a 6 viewport window (modified definitions 11/92)
+def view/text=.4/xlim=0,.333/ylim=0,.5    ll6
+def view/text=.2/xlim=0,.333/ylim=.5,1    ul6
+def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6
+def view/text=.6/xlim=.333,.666/ylim=.5,1 um6
+def view/text=1.5/xlim=.666,1/ylim=0,.5   lr6
+def view/xlim=.666,1/ylim=.5,1            ur6     ! auto /TEXT
+show view
+ 
+ name             text    xlimits     ylimits    mode
+ 
+ UPPER            1.00   0.00,1.00   0.50,1.00   edges
+ LOWER            1.00   0.00,1.00   0.00,0.50   edges
+ RIGHT            1.00   0.50,1.00   0.00,1.00   edges
+ LEFT             1.00   0.00,0.50   0.00,1.00   edges
+ LL               0.50   0.00,0.50   0.00,0.50   edges
+ LR               0.50   0.50,1.00   0.00,0.50   edges
+ UL               0.50   0.00,0.50   0.50,1.00   edges
+ UR               0.50   0.50,1.00   0.50,1.00   edges
+ FULL             1.00   0.00,1.00   0.00,1.00   edges
+ LL6              0.40   0.00,0.33   0.00,0.50   edges
+ UL6              0.20   0.00,0.33   0.50,1.00   edges
+ LM6              0.10   0.33,0.67   0.00,0.50   edges
+ UM6              0.60   0.33,0.67   0.50,1.00   edges
+ LR6              1.50   0.67,1.00   0.00,0.50   edges
+ UR6              0.41   0.67,1.00   0.50,1.00   edges
+   current viewport is NONE
+ 
+! some variables for plotting
+let a = 0.8*sin(l/10)
+let b = 0.6*cos(l/10)
+let c = sin(100/(l+k))
+let d = l/50
+let e = k-(l/25)
+let f = -.5+(l/125)
+let g = (l-25)/(k*35)
+let h = 0.1
+let m = 0.2
+ 
+! illegal plot commands
+set mode ignore
+plot/i=1:10/j=1:20/nolabel i+j			! not a line
+plot/i=1:10/j=1:20/nolabel i,i+j		! not a line
+plot/i=1:10/j=1:20/nolabel i+j,i		! not a line
+plot/i=1:10/j=1:20/nolabel j,i			! differing axes
+plot/i=1:10/j=1:20/vs/line/nolabel j,i		! unequal lengths
+contour/i=1:10/j=1:20/nolabel i			! only 1 D
+contour/i=1:10/j=1:20/nolabel i/j,j/i		! multiple fields
+vector/i=1:10/j=1:20/nolabel i/j		! only 1 field
+vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j	! 3 fields
+set mode/last ignore
+ 
+! notice the default window size is 10.2,width x 8.8,height
+ppl list plot
+         WIDTH=   10.20  HEIGHT=    8.80  TKTYPE=    0  BAUD=  110
+         WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
+         PLOT MODE=   A
+         PLOT FILE= .gif                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     [...]
+ 
+! enlarge it to accomodate an additional 50% width
+ppl size 15.3,8.8
+ 
+! turn on metafile (enabled 10/29/91)
+! commented out 9/97 - instead set in bn450_all.jnl
+! set mode metafile
+ 
+! draw a plot into a viewport - to be deleted (check hard copy)
+set view ll6
+contour/i=1:50/j=1:50/nolabel i/(j+20)
+ 
+! 4 frames testing PLOT output
+set view ul6
+plot/l=1:50/k=1/trans/nolabel a,b,c
+plot/l=1:50/k=1/trans/over/line=6/nolabel d
+plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
+plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
+def view/text=.1/xlim=.333,1/ylim=0,.5 lm6   ! redefine longer in x (11/92)
+set view lm6
+!ppl axlen 16
+set region/k=1
+plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
+def view/text=.6/xlim=.333,1/ylim=.5,1 um6    ! redefine it longer in x (11/92)
+set view um6
+!ppl axlen 17,5
+plot/l=1:50/nolabel sin(100/(l+5))
+plot/l=1:50/over/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
+set view ll6
+!ppl axlen 8,6
+plot/l=1:99000/nolabel sin(200000/(l+10000))
+ 
+! reset to normal axis lengths and prepare for a new piccie
+!ppl axlen 8
+frame/file=bnplot_1.gif
+set wind/clear
+ 
+! draw six frames
+set view ll6
+contour/i=1:50/j=1:50/levels=(0,2.5,.25)/nolabel i/(j+20)
+plot/over/nolab/vs/line/i=1:50/j=1:50/nolabel 6*i/j,5*j/i
+set view ul6
+vector/i=1:50/j=1:50/length=50/aspect/nolabel sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
+def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6  ! redefine it (11/92)
+set view lm6
+shade/i=1:50/j=1:50/nolabel i/(j+20)
+set view lr6
+ppl lev () (0,2.5,.1)
+shade/i=1:50/j=1:50/line/level/nolabel i/(j+20)
+set view ur6
+let icomp = (sin(i/20)*10+j-20)
+let jcomp = (-1*cos(j/10)*10+i-20)
+contour/i=1:50/j=1:50/nolabel icomp^2+jcomp^2
+contour/i=1:50/j=1:50/over/level/nolabel icomp^2+(-1*cos(i/10)*80)^2
+! note: "i-i" and "j-j" are needed to create 2D structures
+vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
+vector/i=1:50/j=1:50/overlay/length/nolabel i-20+(j-j),40-j+(i-i)
+def view/text=.6/xlim=.333,.666/ylim=.5,1 um6    ! redefine it (11/92)
+set view um6
+shade/i=1:50/j=1:50/nolabel i/(j+20)
+contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
+vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
+frame/file=bnplot_2.gif
+! additions for version 3.01 "/TITLE=" controls
+cancel viewports
+set view ul6
+plot/title="My Custom Title"/i=1:100/nolabel sin(i/6)
+plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/5)
+set view um6
+plot/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
+plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+set view ur6
+plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
+plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+set view ll6
+plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
+plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+set view lm6
+contour/i=1:20/j=1:20/title="My Contour Title"/nolabel sin(i/3)*cos(j/4)
+contour/over/i=5:30/j=5:30/title="My Contour Overlay"/nolabel sin(i/2)*cos(j/3)
+set view lr6
+wire/view=0,0,2/i=1:20/j=1:20/title="My Egg Carton"/nolabel sin(i/3)*cos(j/4)
+ 
+! addition for 3.20 showing changed default behavior of plot/vs
+! return to window and redraw with symbols
+set view ll6
+plot/vs/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
+plot/vs/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+frame/file=bnplot_3.gif
+ 
+! Prior to v5.8 could not get the window size in pixels when in gif mode
+show symbol ppl$xpixel
+PPL$XPIXEL = "1152"
+show symbol ppl$ypixel
+PPL$YPIXEL = "662"
+ 
+! V6.13
+! transparency with FRAME/TRANS
+!!
+! These gif images have the background color white or black
+! replaced by transparent color. This can be tested by putting
+! them into an HTML document with a colored background.
+! e.g. a file called test_transparent.html containing only this line:
+! <html> <body bgcolor="orange"> <img src="testfile.gif"/> </body> </html>
+ 
+can view
+use coads_climatology
+shade/nokey/lev=50 sst[L=1]
+frame/trans/file=testbackground.gif
+ 
+! moved here from bn500_bug_fixes.jnl. The frame/  command it contains
+! has trouble when running the benchmarks from remote desktop
+go bn_reset
+cancel mode verify
+go err491_long_gif_name
+! err491_long_gif_name.jnl
+! *sh* 4/99 - test 175 character gif name
+ 
+! name length extended with changes to save_frame.F and xeq_frame.F
+ 
+set wind/siz=0.03
+go ptest
+! Description: create a simple test line plot
+ 
+! spirograph picture ...
+PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
+ 
+ 
+sp rm -f abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
+ 
+frame/file="abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif"
+ 
+spawn ls abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
+abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif
+ 
+ 
+! The fix for bug 1396
+set v ul; plot/dash x[gx=0:20:.5]
+set v ur; plot/dash x[gx=0:20:.1]
+set v ll; plot/dash x[gx=0:20:.05]
+set v lr; plot/dash x[gx=0:20:.01]
+frame/file=gif_dashbug.gif
+ 
+! Restore size
+set win/siz=1/asp=1
+ 
+! New benchmark gif outputs in v6.97
+go bn_reset
+cancel mode verify
+GO bn_hovmuller_overlays
+! bn_hovmuller_overlays.jnl
+! Previously a time series plot overlaid oon a Hovmuller plot did not
+! work unless the time axis of the original data had units of hours.
+! See ticket 2344
+ 
+! 1/6/2016 ACM
+ 
+! run this in the gif benchmarks.
+ 
+ 
+def view/xlim=0,.333/ylim=.5,1    ul6
+def view/xlim=.333,.666/ylim=.5,1 um6
+def view/xlim=.666,1/ylim=.5,1    ur6
+def view/xlim=0,.333/ylim=0,.5    ll6
+def view/xlim=.333,1/ylim=0,.5    lr6
+ 
+! The example from the FAQ, "Overlaying a time series on a 2D plot"
+set view ul6
+ 
+! Define a 2D field in YT with a time axis in units of DAYS
+DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":5/UNITS=DAYS tdays
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+ 
+LET/TITLE=XY my_var = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+ 
+! make a Hovmoller plot
+ 
+SHADE my_var
+ 
+! This did not work previously.  Needed to re-define the axis in units of hours
+PLOT/OVER my_var[Y=@loc:-4]
+ 
+ 
+! XT variable
+set view um6
+ 
+DEFINE AXIS/X=0:40E:1/UNITS=DEGREES xax
+LET/TITLE="XT" my_var = 10*cos(T[gt=tdays]/20)*EXP((-1)*x[gx=xax]/20)
+SHADE/t=1-jan-1987:1-jan-1989 my_var
+PLOT/OVER/TRANS/THICK my_var[x=@loc:-4]
+ 
+ 
+! Irregular time axis
+set view ur6
+ 
+DEFINE AXIS/T0=1-jan-2001/UNITS=DAYS tdays = {1,2,4,5,6,8,9,10,12,30,35,41,42,44,45,46,48,49,50,58}
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+LET my_var = 10*cos(T[gt=tdays])*EXP((-1)*y[gy=yax]/8)
+ 
+FILL/title="irregular t" my_var
+PLOT/OVER/thick/y=8 my_var+10
+ 
+ 
+! Like the dataset example from the FAQ
+set view ll6
+ 
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
+shade sst
+plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+ 
+can data/all
+can region
+ 
+! vector plots with a time series
+set view lr6
+ 
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
  
-! testing negative numbers and null/missing results
-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
-             LATITUDE: 91S to 11S
-             LONGITUDE: 165W
-             TIME: 16-JAN 06:00
- Column  1: VAR1[G=4 deg on Y] is FLOATSTR(SST-20,"(f5.1)") (regrid: 4 deg on Y)
- Column  2: VAR2[G=4 deg on Y] is FLOATSTR(SST-20,"(f05.1)") (regrid: 4 deg on Y)
-              VAR1    VAR2
-89S   /  1: ""      ""     
-85S   /  2: ""      ""     
-81S   /  3: ""      ""     
-77S   /  4: "-20.4" "-20.4"
-73S   /  5: "-21.0" "-21.0"
-69S   /  6: "-19.8" "-19.8"
-65S   /  7: "-20.0" "-20.0"
-61S   /  8: "-17.3" "-17.3"
-57S   /  9: "-13.9" "-13.9"
-53S   / 10: "-11.2" "-11.2"
-49S   / 11: " -7.5" "0-7.5"
-45S   / 12: " -5.7" "0-5.7"
-41S   / 13: " -3.5" "0-3.5"
-37S   / 14: " -1.3" "0-1.3"
-33S   / 15: "  0.9" "000.9"
-29S   / 16: "  3.0" "003.0"
-25S   / 17: "  5.1" "005.1"
-21S   / 18: "  7.5" "007.5"
-17S   / 19: "  8.1" "008.1"
-13S   / 20: "  9.7" "009.7"
-*** Running test: bn696_bug_fixes
-! bn696_bug_fixes
-! test various fixes that went into version 6.96
+vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
  
-GO bn_reset
+let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
+plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
+ 
+FRAME/FILE=bn_hovmuller_overlays.gif
+ 
+ 
+Go bn_reset
 cancel mode verify
-GO err695_bounds_match_axis
-! err695_bounds_match_axis.jnl
-! ticket 2321.
-!
-! The coordinates match the upper bound of each cell
-! to machine accuracy. The internal rep of the value
-! has pt > bound_hi however.  The logic in tm_check_bnds
-! handes this.
+GO bn_labels_on_taxis
+! bn_labels_on_taxis.jnl
+! tests of labels and overlays on time axes
  
-use shorttemp.nc
  
-! Previously showed tbox=0 for every second pt.
-sh grid/l=1:4444 temp
-    GRID GSL1
- name       axis              # pts   start                end
- LON       LONGITUDE            1 r   97.45W               97.45W
- LAT       LATITUDE             1 r   36.65N               36.65N
- PFULL1_1  Z (hpa)              1 r-  3.3236               3.3236
- TIME      TIME                 4 i   19-JUN-1997 00:00    19-JUN-1997 01:30
- normal    E
- normal    F
+set v ul
+DEFINE AXIS/T=1-JAN-1980:31-JAN-1985:30/T0=1-jan-1980/UNIT=days tax
+LET tt = t[gt=tax]
+LET tvar = cos(tt/200)
+plot tvar
  
-       L     T                   TBOX      TBOXLO                TSTEP (days)
-       1>  19-JUN-1997 00:00:00  0.0208333  18-JUN-1997 23:30:00    0.02083333
-       2>  19-JUN-1997 00:30:00  0.0208333  19-JUN-1997 00:00:00    0.04166667
-       3>  19-JUN-1997 01:00:00  0.0208333  19-JUN-1997 00:30:00    0.0625
-       4>  19-JUN-1997 01:30:00  0.0208333  19-JUN-1997 01:00:00    0.08333333
-*** Running test: bn_bin_regrid
-! bin regridding tests
+LET xsqr = {-1,1,1,-1}                ! coordinates of a unit square
+LET ysqr = {-1,-1,1,1}
+LET xcircle = COS(6.3*i[i=1:42]/40)    ! coordinates of unit circle
+LET ycircle = SIN(6.3*i[i=1:42]/40)
  
-go bn_bin_regrid.sub X
-! Tests of @BIN and @NBIN regridding transforms
+!   place an "X" at the value exactly at 7-aug-1982
+!   "@ITP" causes interpolation to exact location
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/X=1:5:1 dcoarse
+let t0   = tt[t="7-aug-1982"@itp]
+let val0 = tvar[t="7-aug-1982"@itp]
+plot/vs/over/nolab/sym=2/thick/color=red t0,val0
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/X irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _X[GX=irr]
+!   put a box around the "X"
+polygon/over/thick/color=red/nolab t0+30*xsqr, 0.05*ysqr+val0
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _X[GX=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
-             X: 0.5 to 5.5
- Column  1: DEST is _X[GX=DCOARSE]
- Column  2: VAR[G=1 delta on X at AVE] is _X[GX=IRR] (regrid: 1 delta on X at AVE)
- Column  3: VAR[G=1 delta on X at BIN] is _X[GX=IRR] (regrid: 1 delta on X at BIN)
- Column  4: VAR[G=1 delta on X at NBIN] is _X[GX=IRR] (regrid: 1 delta on X at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.178  1.150  2.000
-2   / 2:  2.000  1.545   ....  0.000
-3   / 3:  3.000  3.500   ....  0.000
-4   / 4:  4.000  3.980  3.500  1.000
-5   / 5:  5.000  4.838  4.850  2.000
+!   place an "X" on the data point nearest to 15-may-1984
+!   Note that @ITP is absent, so behavior is set by MODE INTERPOLATE
+let t1   = tt[t="15-may-1984"]
+let val1 = tvar[t="15-may-1984"]
+plot/vs/over/nolab/sym=2/color=blue/thick t1,val1
  
+!     put a circle around the "X"
+plot/vs/over/color=blue/thick/nolab t1+30*xcircle,0.05*ycircle+val1
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _X[gX=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _X[GX=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
-             X: 0.5 to 5.5
- Column  1: DEST is _X[GX=DCOARSE]
- Column  2: VAR[G=1 delta on X at AVE] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at AVE)
- Column  3: VAR[G=1 delta on X at BIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at BIN)
- Column  4: VAR[G=1 delta on X at NBIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.956  1.650  2.000
-2   / 2:  2.000  2.200   ....  0.000
-3   / 3:  3.000   ....   ....  0.000
-4   / 4:  4.000   ....   ....  0.000
-5   / 5:  5.000  5.000  5.000  1.000
+set v ur
+! Latitude/time plot
+let ytvar = cos(tt/200) + sin(j/3)
+shade/y=1:50/t=1-jan-1982:31-dec-1982 ytvar
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GX=dcoarse]
-             X: 0.5 to 5.5
- Column  1: DEST is _X[GX=DCOARSE]
- Column  2: VAR[G=1 delta on X] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
-          DEST    VAR
-1   / 1:  1.000   ....
-2   / 2:  2.000   ....
-3   / 3:  3.000   ....
-4   / 4:  4.000   ....
-5   / 5:  5.000  5.000
+let tlo = tt[t="1-jul-1982"@itp]
+let thi = tt[t="1-aug-1982"@itp]
+polygon/over/nolab/thick/pal=gray {`tlo`, `thi`,` thi`, `tlo`},  {20, 20, 25, 25}
+ !-> polygon/over/nolab/thick/pal=gray {912, 943,943, 912},  {20, 20, 25, 25}
  
-go bn_bin_regrid.sub Y
-! Tests of @BIN and @NBIN regridding transforms
+set v ll
+! Plot the time series.
+!----------------------------------
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/Y=1:5:1 dcoarse
+LET tvar = cos(tt/200)* tt/100
+PLOT/vlim=-20:20 tvar
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/Y irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _Y[GY=irr]
+!----------------------------------
+! Locate label position on time variable axis: the coordinate at the start of 1985.
+LET datelabelpos=TT[T="01-JAN-1981"@ITP]
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _Y[GY=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
-             Y: 0.5 to 5.5
- Column  1: DEST is _Y[GY=DCOARSE]
- Column  2: VAR[G=1 delta on Y at AVE] is _Y[GY=IRR] (regrid: 1 delta on Y at AVE)
- Column  3: VAR[G=1 delta on Y at BIN] is _Y[GY=IRR] (regrid: 1 delta on Y at BIN)
- Column  4: VAR[G=1 delta on Y at NBIN] is _Y[GY=IRR] (regrid: 1 delta on Y at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.178  1.150  2.000
-2   / 2:  2.000  1.545   ....  0.000
-3   / 3:  3.000  3.500   ....  0.000
-4   / 4:  4.000  3.980  3.500  1.000
-5   / 5:  5.000  4.838  4.850  2.000
+! Do nothing but set $PPL$XFIRST1 symbol at the time axis plot units
+PLOT/LINE/VS/OVER/NOLAB datelabelpos,-9
  
+! Make the label; left-justified
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),-8,-1,0,0.12, at AC Year 81 starts
+ !-> PPL %LABEL 17905.00,-8,-1,0,0.12, at AC Year 81 starts
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _Y[gY=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _Y[GY=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
-             Y: 0.5 to 5.5
- Column  1: DEST is _Y[GY=DCOARSE]
- Column  2: VAR[G=1 delta on Y at AVE] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at AVE)
- Column  3: VAR[G=1 delta on Y at BIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at BIN)
- Column  4: VAR[G=1 delta on Y at NBIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.956  1.650  2.000
-2   / 2:  2.000  2.200   ....  0.000
-3   / 3:  3.000   ....   ....  0.000
-4   / 4:  4.000   ....   ....  0.000
-5   / 5:  5.000  5.000  5.000  1.000
+! Draw a vertical red line at the year boundary
+PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {`datelabelpos`,`datelabelpos`},{-20,20}
+ !-> PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {366,366},{-20,20}
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GY=dcoarse]
-             Y: 0.5 to 5.5
- Column  1: DEST is _Y[GY=DCOARSE]
- Column  2: VAR[G=1 delta on Y] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
-          DEST    VAR
-1   / 1:  1.000   ....
-2   / 2:  2.000   ....
-3   / 3:  3.000   ....
-4   / 4:  4.000   ....
-5   / 5:  5.000  5.000
+! Do the same for the start of 1984
+!----------------------------------
+! Locate label position on time var axis
+LET datelabelpos=TT[T="01-JAN-1984"@ITP]
  
-go bn_bin_regrid.sub Z
-! Tests of @BIN and @NBIN regridding transforms
+! Do nothing but set $PPL$XFIRST1 symbol at the time axis plot units
+plot/line/vs/over/nolab datelabelpos,-9
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/Z=1:5:1 dcoarse
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),-8,-1,0,0.12, at AC Year 84 starts
+ !-> PPL %LABEL 44185.00,-8,-1,0,0.12, at AC Year 84 starts
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/Z irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _Z[GZ=irr]
+! Draw a vertical red line at the year boundary
+PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {`datelabelpos`,`datelabelpos`},{-20,20}
+ !-> PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {1461,1461},{-20,20}
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _Z[GZ=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
-             Z: 0.5 to 5.5
- Column  1: DEST is _Z[GZ=DCOARSE]
- Column  2: VAR[G=1 delta on Z at AVE] is _Z[GZ=IRR] (regrid: 1 delta on Z at AVE)
- Column  3: VAR[G=1 delta on Z at BIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at BIN)
- Column  4: VAR[G=1 delta on Z at NBIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.178  1.150  2.000
-2   / 2:  2.000  1.545   ....  0.000
-3   / 3:  3.000  3.500   ....  0.000
-4   / 4:  4.000  3.980  3.500  1.000
-5   / 5:  5.000  4.838  4.850  2.000
+!----------------------------------
+! Now lets locate and label the maximum of the variable
+LET vmax = `tvar[T=@MAX]`
+ !-> DEFINE VARIABLE vmax = 12.72093076292341
+LET t_at_max = tvar[T=01-JAN-1980:31-DEC-1985 at LOC:`vmax`]
+ !-> DEFINE VARIABLE t_at_max = tvar[T=01-JAN-1980:31-DEC-1985 at LOC:12.72093076292341]
  
+! This will define $PPL$XFIRST1 and also make a mark at the maximum location
+PLOT/VS/OVER/NOLAB/SYM=17/COLOR=red t_at_max, vmax
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _Z[gZ=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _Z[GZ=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
-             Z: 0.5 to 5.5
- Column  1: DEST is _Z[GZ=DCOARSE]
- Column  2: VAR[G=1 delta on Z at AVE] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at AVE)
- Column  3: VAR[G=1 delta on Z at BIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at BIN)
- Column  4: VAR[G=1 delta on Z at NBIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.956  1.650  2.000
-2   / 2:  2.000  2.200   ....  0.000
-3   / 3:  3.000   ....   ....  0.000
-4   / 4:  4.000   ....   ....  0.000
-5   / 5:  5.000  5.000  5.000  1.000
+! Use a centered label this time
+! 1.02*vmax moves the label up a bit.
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),`1.02*vmax`,0,0,0.12, at AC MAX = `vmax,prec=3`
+ !-> PPL %LABEL 40081.00,12.97534937818188,0,0,0.12, at AC MAX = 12.7
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GZ=dcoarse]
-             Z: 0.5 to 5.5
- Column  1: DEST is _Z[GZ=DCOARSE]
- Column  2: VAR[G=1 delta on Z] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
-          DEST    VAR
-1   / 1:  1.000   ....
-2   / 2:  2.000   ....
-3   / 3:  3.000   ....
-4   / 4:  4.000   ....
-5   / 5:  5.000  5.000
+set v lr
  
-go bn_bin_regrid.sub T
-! Tests of @BIN and @NBIN regridding transforms
+! Define a dummy track line, position as a function of time.
+DEFINE AXIS/T=1-JAN-1980:31-JAN-1985:30/UNIT=days tax
+LET ypos = 40 *COS(L[GT=tax]/32)
+LET xpos = 220 - 50 *SIN(L[GT=tax]/22)
+! Make the basic track plot
+use ocean_atlas_temp
+shade/pal=blue_light/X=110E:40W/Y=20S:50N/L=1 temp
+ 
+PLOT/VS/NOLAB/OVER XPOS,YPOS
+! Label every 5th date. The labels could be positioned differently, using
+! the 3rd argument of the LABEL command to control centering. Or, to put the
+! labels a bit above the corresponding point location, add a small amount to
+! the y positions, for instance `ypos + 0.04` in the second argument to LABEL.
+LET tt = t[gt=tax]
+! Loop over L; at each L we evaluate TAX_DATESTRING for the time step,
+! and compute the location for the label
+REPEAT/L=5:60:10 (DEFINE SYMBOL tlab = "`TAX_DATESTRING(tt,tt,"day")`"; \
+ LABEL `xpos` `ypos` 1 0 0.09 ($tlab) )
+ !-> REPEAT/L=5:60:10 (DEFINE SYMBOL tlab = "`TAX_DATESTRING(tt,tt,"day")`";  LABEL `xpos` `ypos` 1 0 0.09 ($tlab) )
+!-> REPEAT: L=5
+ !-> DEFINE SYMBOL tlab = "30-APR-1980"
+ !-> PPL %LABEL 208.7339387413628 39.51271135265888 1 0 0.09 "30-APR-1980"
+!-> REPEAT: L=15
+ !-> DEFINE SYMBOL tlab = "24-FEB-1981"
+ !-> PPL %LABEL 188.4897123753973 35.68534797467977 1 0 0.09 "24-FEB-1981"
+!-> REPEAT: L=25
+ !-> DEFINE SYMBOL tlab = "21-DEC-1981"
+ !-> PPL %LABEL 174.6445516747008 28.40135534264319 1 0 0.09 "21-DEC-1981"
+!-> REPEAT: L=35
+ !-> DEFINE SYMBOL tlab = "17-OCT-1982"
+ !-> PPL %LABEL 170.0101127410977 18.36629087569217 1 0 0.09 "17-OCT-1982"
+!-> REPEAT: L=45
+ !-> DEFINE SYMBOL tlab = "13-AUG-1983"
+ !-> PPL %LABEL 175.527551028677 6.552192101033334 1 0 0.09 "13-AUG-1983"
+!-> REPEAT: L=55
+ !-> DEFINE SYMBOL tlab = "08-JUN-1984"
+ !-> PPL %LABEL 190.0763927948022 -5.896578890096701 1 0 0.09 "08-JUN-1984"
+ 
+FRAME/FILE=bn_labels_on_taxis.gif
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/T=1:5:1 dcoarse
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/T irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _T[GT=irr]
+GO bn_reset
+cancel mode verify
+GO err696_contour_conset
+! err696_contour_conset.jnl
+! Ticket 2351. The PPL CONSET command had stopped working to set
+! the # of digits in contour labels.  See the setting in PPL LIST LEVELS
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T at AVE] is _T[GT=IRR] (regrid: 1 delta on T at AVE)
- Column  3: VAR[G=1 delta on T at BIN] is _T[GT=IRR] (regrid: 1 delta on T at BIN)
- Column  4: VAR[G=1 delta on T at NBIN] is _T[GT=IRR] (regrid: 1 delta on T at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.178  1.150  2.000
-2   / 2:  2.000  1.545   ....  0.000
-3   / 3:  3.000  3.500   ....  0.000
-4   / 4:  4.000  3.980  3.500  1.000
-5   / 5:  5.000  4.838  4.850  2.000
+contour/i=1:20/j=1:20/lev=(-10,10,2.125)/set/title="CONTOUR/SET with PPL CONSET,,4"  10*sin(i/3)*cos(j/4)
+ppl conset,,4
+ppl contour
  
+! This should show NDIG=3
+ppl list levels
+
+
+         LEVEL       TYPE       NDIG       PEN
+         -1.00E+01     DASH        3        0
+         -7.88E+00     DASH        3        0
+         -5.75E+00     DASH        3        0
+         -3.63E+00     DASH        3        0
+         -1.50E+00     DASH        3        0
+          6.25E-01     LINE        3        0
+          2.75E+00     LINE        3        0
+          4.88E+00     LINE        3        0
+          7.00E+00     LINE        3        0
+          9.13E+00     LINE        3        0
+          1.13E+01     LINE        3        0
+ 
+! Now make the same setting with CONTOUR/SIGDIG=
+contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/sigdig=4/title="CONTOUR/SIGDIG=4"  10*sin(i/3)*cos(j/4)
+ 
+! This should show NDIG=3
+ppl list levels
+
+
+         LEVEL       TYPE       NDIG       PEN
+         -1.00E+01     DASH        3        0
+         -7.88E+00     DASH        3        0
+         -5.75E+00     DASH        3        0
+         -3.63E+00     DASH        3        0
+         -1.50E+00     DASH        3        0
+          0.00E+00     DARK       -1        0
+          6.25E-01     LINE        3        0
+          2.75E+00     LINE        3        0
+          4.88E+00     LINE        3        0
+          7.00E+00     LINE        3        0
+          9.13E+00     LINE        3        0
+          1.13E+01     LINE        3        0
+ 
+! test CONTOUR/SET; CONSET; PPL CONTOUR settings
+contour/i=1:20/j=1:20/lev=(-10,10,2.125)/set/title="CONTOUR/SET with PPL CONSET,,4"  10*sin(i/3)*cos(j/4)
+ppl conset,0.07,4,,,,,,1
+ppl contour
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _T[gT=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T at AVE] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at AVE)
- Column  3: VAR[G=1 delta on T at BIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at BIN)
- Column  4: VAR[G=1 delta on T at NBIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.956  1.650  2.000
-2   / 2:  2.000  2.200   ....  0.000
-3   / 3:  3.000   ....   ....  0.000
-4   / 4:  4.000   ....   ....  0.000
-5   / 5:  5.000  5.000  5.000  1.000
+! test CONTOUR qualifiers that make CONSET settings. Should exactly overlay the previous plot.
+contour/over/color=red/i=1:20/j=1:20/lev=(-10,10,2.125)\
+/sigdig=4/siz=0.07/spacing=1  10*sin(i/3)*cos(j/4)
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GT=dcoarse]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
-          DEST    VAR
-1   / 1:  1.000   ....
-2   / 2:  2.000   ....
-3   / 3:  3.000   ....
-4   / 4:  4.000   ....
-5   / 5:  5.000  5.000
+frame/file=bn_contour_conset.gif
  
-go bn_bin_regrid.sub E
-! Tests of @BIN and @NBIN regridding transforms
+GO bn_reset
+cancel mode verify
+GO err696_subspan_mod_strides
+! err696_subspan_mod_strides
+! See ticket 513. Axis is subspan modulo, and strides
+! on a plot with a larger region than the axis span caused the
+! shade plot to smear out beyond the edges.
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/E=1:5:1 dcoarse
+define axis/x/units=degrees_e xax = {-82.96,-81.46,-79.96,-78.47,-76.97,-75.48,-73.98,-72.48,-70.99,-69.49}
+let xx = x[gx=xax]
+let yy = y[y=4:20:2]
+let d10 = randu(xx) - randu(yy)
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/E irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _E[GE=irr]
+! previously smeared out to the plot edges.
+set view upper
+shade/hlim=-95:-60/vlim=0:25 d10[i=1:10:2,j=1:10]
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E at AVE] is _E[GE=IRR] (regrid: 1 delta on E at AVE)
- Column  3: VAR[G=1 delta on E at BIN] is _E[GE=IRR] (regrid: 1 delta on E at BIN)
- Column  4: VAR[G=1 delta on E at NBIN] is _E[GE=IRR] (regrid: 1 delta on E at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.178  1.150  2.000
-2   / 2:  2.000  1.545   ....  0.000
-3   / 3:  3.000  3.500   ....  0.000
-4   / 4:  4.000  3.980  3.500  1.000
-5   / 5:  5.000  4.838  4.850  2.000
+! similar behavior with overlays
+set view lower
+use coads_climatology
+shade/L=3/pal=white/nokey/x=-180:0/y=0:30/title="Overlay Test" sst
+shade/over d10[i=1:10:2,j=1:10]
  
+frame/file=bn_subspan_mod_strides.gif
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _E[gE=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E at AVE] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at AVE)
- Column  3: VAR[G=1 delta on E at BIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at BIN)
- Column  4: VAR[G=1 delta on E at NBIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.956  1.650  2.000
-2   / 2:  2.000  2.200   ....  0.000
-3   / 3:  3.000   ....   ....  0.000
-4   / 4:  4.000   ....   ....  0.000
-5   / 5:  5.000  5.000  5.000  1.000
+exit/command
+*** Running ferret script: bn_ps.jnl
+! bn450_ps.JNL - copied from bn450_plot.jnl
+! this journal file only tests the writing of ps files in batch mode using
+! "-batch bnplot.ps" command line option...will create on final ps file
+! *kob*
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GE=dcoarse]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
-          DEST    VAR
-1   / 1:  1.000   ....
-2   / 2:  2.000   ....
-3   / 3:  3.000   ....
-4   / 4:  4.000   ....
-5   / 5:  5.000  5.000
+! define a 6 viewport window (modified definitions 11/92)
+def view/text=.4/xlim=0,.333/ylim=0,.5    ll6
+def view/text=.2/xlim=0,.333/ylim=.5,1    ul6
+def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6
+def view/text=.6/xlim=.333,.666/ylim=.5,1 um6
+def view/text=1.5/xlim=.666,1/ylim=0,.5   lr6
+def view/xlim=.666,1/ylim=.5,1            ur6     ! auto /TEXT
+show view
  
-go bn_bin_regrid.sub F
-! Tests of @BIN and @NBIN regridding transforms
+ name             text    xlimits     ylimits    mode
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/F=1:5:1 dcoarse
+ UPPER            1.00   0.00,1.00   0.50,1.00   edges
+ LOWER            1.00   0.00,1.00   0.00,0.50   edges
+ RIGHT            1.00   0.50,1.00   0.00,1.00   edges
+ LEFT             1.00   0.00,0.50   0.00,1.00   edges
+ LL               0.50   0.00,0.50   0.00,0.50   edges
+ LR               0.50   0.50,1.00   0.00,0.50   edges
+ UL               0.50   0.00,0.50   0.50,1.00   edges
+ UR               0.50   0.50,1.00   0.50,1.00   edges
+ FULL             1.00   0.00,1.00   0.00,1.00   edges
+ LL6              0.40   0.00,0.33   0.00,0.50   edges
+ UL6              0.20   0.00,0.33   0.50,1.00   edges
+ LM6              0.10   0.33,0.67   0.00,0.50   edges
+ UM6              0.60   0.33,0.67   0.50,1.00   edges
+ LR6              1.50   0.67,1.00   0.00,0.50   edges
+ UR6              0.41   0.67,1.00   0.50,1.00   edges
+   current viewport is NONE
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/F irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _F[GF=irr]
+! some variables for plotting
+let a = 0.8*sin(l/10)
+let b = 0.6*cos(l/10)
+let c = sin(100/(l+k))
+let d = l/50
+let e = k-(l/25)
+let f = -.5+(l/125)
+let g = (l-25)/(k*35)
+let h = 0.1
+let m = 0.2
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F at AVE] is _F[GF=IRR] (regrid: 1 delta on F at AVE)
- Column  3: VAR[G=1 delta on F at BIN] is _F[GF=IRR] (regrid: 1 delta on F at BIN)
- Column  4: VAR[G=1 delta on F at NBIN] is _F[GF=IRR] (regrid: 1 delta on F at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.178  1.150  2.000
-2   / 2:  2.000  1.545   ....  0.000
-3   / 3:  3.000  3.500   ....  0.000
-4   / 4:  4.000  3.980  3.500  1.000
-5   / 5:  5.000  4.838  4.850  2.000
+! illegal plot commands
+set mode ignore
+plot/i=1:10/j=1:20/nolabel i+j			! not a line
+plot/i=1:10/j=1:20/nolabel i,i+j		! not a line
+plot/i=1:10/j=1:20/nolabel i+j,i		! not a line
+plot/i=1:10/j=1:20/nolabel j,i			! differing axes
+plot/i=1:10/j=1:20/vs/line/nolabel j,i		! unequal lengths
+contour/i=1:10/j=1:20/nolabel i			! only 1 D
+contour/i=1:10/j=1:20/nolabel i/j,j/i		! multiple fields
+vector/i=1:10/j=1:20/nolabel i/j		! only 1 field
+vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j	! 3 fields
+set mode/last ignore
  
+! notice the default window size is 10.2,width x 8.8,height
+ppl list plot
+         WIDTH=   10.20  HEIGHT=    8.80  TKTYPE=    0  BAUD=  110
+         WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
+         PLOT MODE=   A
+         PLOT FILE= .gif                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     [...]
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _F[gF=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F at AVE] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at AVE)
- Column  3: VAR[G=1 delta on F at BIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at BIN)
- Column  4: VAR[G=1 delta on F at NBIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.956  1.650  2.000
-2   / 2:  2.000  2.200   ....  0.000
-3   / 3:  3.000   ....   ....  0.000
-4   / 4:  4.000   ....   ....  0.000
-5   / 5:  5.000  5.000  5.000  1.000
+! enlarge it to accomodate an additional 50% width
+ppl size 15.3,8.8
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GF=dcoarse]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
-          DEST    VAR
-1   / 1:  1.000   ....
-2   / 2:  2.000   ....
-3   / 3:  3.000   ....
-4   / 4:  4.000   ....
-5   / 5:  5.000  5.000
+! turn on metafile (enabled 10/29/91)
+! commented out 9/97 - instead set in bn450_all.jnl
+! set mode metafile
  
-*** Running test: bn_all_ef.jnl
+! draw a plot into a viewport - to be deleted (check hard copy)
+set view ll6
+contour/i=1:50/j=1:50/nolabel i/(j+20)
+ 
+! 4 frames testing PLOT output
+set view ul6
+plot/l=1:50/k=1/trans/nolabel a,b,c
+plot/l=1:50/k=1/trans/over/line=6/nolabel d
+plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
+plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
+def view/text=.1/xlim=.333,1/ylim=0,.5 lm6   ! redefine longer in x (11/92)
+set view lm6
+!ppl axlen 16
+set region/k=1
+plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
+def view/text=.6/xlim=.333,1/ylim=.5,1 um6    ! redefine it longer in x (11/92)
+set view um6
+!ppl axlen 17,5
+plot/l=1:50/nolabel sin(100/(l+5))
+plot/l=1:50/over/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
+set view ll6
+!ppl axlen 8,6
+plot/l=1:99000/nolabel sin(200000/(l+10000))
+ 
+! reset to normal axis lengths and prepare for a new piccie
+!ppl axlen 8
+ 
+set mode ignore
+frame/file=bnplot.ps    ! DELIBERATE ERROR MESSAGE
+can mode ignore
+exit/command
+*** Running ferret script: bn_all_ef.jnl
 SET MODE VERIFY
 ! bn_all_ef.jnl
 ! - run all the benchmark tests for externally-linked external functions.
@@ -85834,28 +95116,29 @@ go bn_fcn_calls.jnl
 exit
  
 exit/command
-*** Running test: bn_startupfile.jnl
+*** Running ferret script: bn_startupfile.jnl
  Current size of FERRET memory cache: 31 MegaWords  (1 word = 8 bytes)
-PPL$XPIXEL = "656"
-PPL$YPIXEL = "492"
+PPL$XPIXEL = "0"
+PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.951"
-FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7"
+FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3.1 of Jul  1 2015 15:02:01 $"
+NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = " 6-Nov-15"
-SESSION_TIME = "15:55"
-SESSION_PID = "20755"
-DELTA_CPU = "0.014997"
-CLOCK_SECS = "0.07"
-CURRENT_DATE = " 6-Nov-15"
-CURRENT_TIME = "15:55:16"
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:04"
+SESSION_PID = "9938"
+DELTA_CPU = "0.011997"
+CLOCK_SECS = "0.011"
+CURRENT_DATE = "17-Jun-16"
+CURRENT_TIME = "15:04:48"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+GO_FILE = "./bn_startupfile.jnl"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
-PPL$PLTNME = "startup_tests.plt"
+PPL$PLTNME = ".gif"
 PPL$TEKNME = "/dev/tt"
 PPL$XLEN = "8.00000"
 PPL$YLEN = "6.00000"
@@ -85872,7 +95155,6 @@ PPL$VIEW_X = "0.000"
 PPL$VIEW_Y = "0.000"
 PPL$VIEW_Z = "0.000"
 PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "6-Nov-15:15:55"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 VP_SCALE = "1"
@@ -85894,14 +95176,14 @@ VP_YHI = "1"
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
       DESPERATE     CANCELLED      3100000
       GKS              SET
       REFRESH          SET
-      METAFILE         SET         startup_tests.plt
+      METAFILE      CANCELLED      .gif
       PPLLIST       CANCELLED      ppllist.out
       GUI           CANCELLED
       LOGO             SET
@@ -85927,4 +95209,4 @@ VP_YHI = "1"
  TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
  PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
  
-Ended at Fri Nov  6 15:55:16 PST 2015
+Ended at Fri Jun 17 15:04:48 PDT 2016
diff --git a/bench/test_results/ferret_run_tests_ncdump b/bench/test_results/ferret_run_tests_ncdump
index e515648..dca78c1 100644
--- a/bench/test_results/ferret_run_tests_ncdump
+++ b/bench/test_results/ferret_run_tests_ncdump
@@ -1,38 +1,39 @@
-*** Running test: bn_syntax.jnl
-*** Running test: bn_dollar.jnl
-*** Running test: bn_grave.jnl
-*** Running test: bn_letd.jnl
-*** Running test: bn_if.jnl
-*** Running test: bn_expressions.jnl
-*** Running test: bn_geometry.jnl
-*** Running test: bn_output.jnl
-*** Running test: bn_in_plane.jnl
-*** Running test: bn_compress.jnl
-*** Running test: bn_interpolate.jnl
-*** Running test: bn_regrid.jnl
-*** Running test: bn_ez.jnl
-*** Running test: bn_plot.jnl
-*** Running test: bn_curv.jnl
-*** Running test: bn_symbols.jnl
-*** Running test: bn_comma_delimited.jnl
-*** Running test: bn_dynamic_grids.jnl
-*** Running test: bn_cdf.jnl
-*** Running test: bn_regrid_transforms.jnl
-*** Running test: bn_axis_limits.jnl
-*** Running test: bn_movie.jnl
-*** Running test: bn_ez_order.jnl
-*** Running test: bn_user.jnl
-*** Running test: bn_stream.jnl
-*** Running test: bn_mc.jnl
-*** Running test: bn_negative_t.jnl
-*** Running test: bn_xact_regrid.jnl
-*** Running test: bn_gc_functions.jnl
-*** Running test: bn491_bug_fixes.jnl
-*** Running test: bn_odd_variable_name.jnl
-*** Running test: bn_test_stream.jnl
-*** Running test: bn_define_axes.jnl
-*** Running test: bn_polygon.jnl
-*** Running test: bn500_bug_fixes.jnl
+*** Running ferret script: bn_syntax.jnl
+*** Running ferret script: bn_dollar.jnl
+*** Running ferret script: bn_grave.jnl
+*** Running ferret script: bn_letd.jnl
+*** Running ferret script: bn_if.jnl
+*** Running ferret script: bn_expressions.jnl
+*** Running ferret script: bn_geometry.jnl
+*** Running ferret script: bn_output.jnl
+*** Running ferret script: bn_in_plane.jnl
+*** Running ferret script: bn_compress.jnl
+*** Running ferret script: bn_interpolate.jnl
+*** Running ferret script: bn_regrid.jnl
+*** Running ferret script: bn_ez.jnl
+*** Running ferret script: bn_plot.jnl
+*** Running ferret script: bn_curv.jnl
+*** Running ferret script: bn_symbols.jnl
+*** Running ferret script: bn_comma_delimited.jnl
+*** Running ferret script: bn_dynamic_grids.jnl
+*** Running ferret script: bn_cdf.jnl
+*** Running ferret script: bn_regrid_transforms.jnl
+*** Running ferret script: bn_axis_limits.jnl
+*** Running ferret script: bn_movie.jnl
+*** Running ferret script: bn_ez_order.jnl
+*** Running ferret script: bn_user.jnl
+*** Running ferret script: bn_stream.jnl
+*** Running ferret script: bn_mc.jnl
+*** Running ferret script: bn_negative_t.jnl
+*** Running ferret script: bn_xact_regrid.jnl
+*** Running ferret script: bn_gc_functions.jnl
+*** Running ferret script: bn491_bug_fixes.jnl
+*** Running ferret script: bn_odd_variable_name.jnl
+*** Running ferret script: bn_test_stream.jnl
+*** Running ferret script: bn_define_axes.jnl
+*** Running ferret script: bn_pattern.jnl
+*** Running ferret script: bn_polygon.jnl
+*** Running ferret script: bn500_bug_fixes.jnl
 err491_dp_time_write.jnl --- 1 original file
 netcdf out {
 dimensions:
@@ -50,7 +51,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -75,7 +76,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -83,19 +84,19 @@ data:
 
  MY_VAR = 50757969, 50757974 ;
 }
-*** Running test: bn_sample.jnl
-*** Running test: bn_strides_revs_perms.jnl
-*** Running test: bn_non_COARDS_netCDF.jnl
-*** Running test: bn_cache_hits.jnl
-*** Running test: bn_regrid_to_user.jnl
-*** Running test: bn_calendar.jnl
-*** Running test: bn_dash_dot.jnl
-*** Running test: bn_flowlines.jnl
-*** Running test: bn_logaxes.jnl
-*** Running test: bn_internal_external_functions.jnl
-*** Running test: bn_modulo_strides.jnl
-*** Running test: bn_axis_viewports.jnl
-*** Running test: bn_strings.jnl
+*** Running ferret script: bn_sample.jnl
+*** Running ferret script: bn_strides_revs_perms.jnl
+*** Running ferret script: bn_non_COARDS_netCDF.jnl
+*** Running ferret script: bn_cache_hits.jnl
+*** Running ferret script: bn_regrid_to_user.jnl
+*** Running ferret script: bn_calendar.jnl
+*** Running ferret script: bn_dash_dot.jnl
+*** Running ferret script: bn_flowlines.jnl
+*** Running ferret script: bn_logaxes.jnl
+*** Running ferret script: bn_internal_external_functions.jnl
+*** Running ferret script: bn_modulo_strides.jnl
+*** Running ferret script: bn_axis_viewports.jnl
+*** Running ferret script: bn_strings.jnl
 bn_strings.jnl --- 1 original file
 netcdf test_string {
 dimensions:
@@ -112,7 +113,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -151,7 +152,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -186,7 +187,7 @@ variables:
 		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -205,37 +206,37 @@ data:
   "",
   "a" ;
 }
-*** Running test: bn_axcontrol.jnl
-*** Running test: bn_vec_curv.jnl
-*** Running test: bn_delimited_read.jnl
-*** Running test: bn541_bug_fixes.jnl
-*** Running test: bn_cancel_axes.jnl
-*** Running test: bn542_bug_fixes.jnl
-*** Running test: bn_subspan_modulo.jnl
-*** Running test: bn_dots.jnl
-*** Running test: bn_lev_symbols.jnl
-*** Running test: bn_mode_logo_lab.jnl
-*** Running test: bn_modulo_attribute.jnl
-*** Running test: bn550_bug_fixes.jnl
-*** Running test: bn551_bug_fixes.jnl
+*** Running ferret script: bn_axcontrol.jnl
+*** Running ferret script: bn_vec_curv.jnl
+*** Running ferret script: bn_delimited_read.jnl
+*** Running ferret script: bn541_bug_fixes.jnl
+*** Running ferret script: bn_cancel_axes.jnl
+*** Running ferret script: bn542_bug_fixes.jnl
+*** Running ferret script: bn_subspan_modulo.jnl
+*** Running ferret script: bn_dots.jnl
+*** Running ferret script: bn_lev_symbols.jnl
+*** Running ferret script: bn_mode_logo_lab.jnl
+*** Running ferret script: bn_modulo_attribute.jnl
+*** Running ferret script: bn550_bug_fixes.jnl
+*** Running ferret script: bn551_bug_fixes.jnl
 err550_nc_seconds.jnl --- seconds of time axis
 		TIME:time_origin = "10-JUN-1996 04:03:36" ;
-*** Running test: bn_multi_line_labels.jnl
-*** Running test: bn552_bug_fixes.jnl
-*** Running test: bn_set_var_scale_off.jnl
-*** Running test: bn_longvarnames.jnl
-*** Running test: bn_shakey.jnl
-*** Running test: bn_eof_4d.jnl
-*** Running test: bn_abstract_axis_names.jnl
-*** Running test: bn_many_polygons.jnl
-*** Running test: bn_fill_irregular.jnl
-*** Running test: bn_xml_output.jnl
-*** Running test: bn_test_nan.jnl
-*** Running test: bn553_bug_fixes.jnl
-*** Running test: bn_graticules.jnl
-*** Running test: bn_repeat_range.jnl
-*** Running test: bn554_bug_fixes.jnl
-*** Running test: bn_bounds.jnl
+*** Running ferret script: bn_multi_line_labels.jnl
+*** Running ferret script: bn552_bug_fixes.jnl
+*** Running ferret script: bn_set_var_scale_off.jnl
+*** Running ferret script: bn_longvarnames.jnl
+*** Running ferret script: bn_shakey.jnl
+*** Running ferret script: bn_eof_4d.jnl
+*** Running ferret script: bn_abstract_axis_names.jnl
+*** Running ferret script: bn_many_polygons.jnl
+*** Running ferret script: bn_fill_irregular.jnl
+*** Running ferret script: bn_xml_output.jnl
+*** Running ferret script: bn_test_nan.jnl
+*** Running ferret script: bn553_bug_fixes.jnl
+*** Running ferret script: bn_graticules.jnl
+*** Running ferret script: bn_repeat_range.jnl
+*** Running ferret script: bn554_bug_fixes.jnl
+*** Running ferret script: bn_bounds.jnl
 bn_bounds.jnl --- 1 output of bounds on irreg axes.
 netcdf a {
 dimensions:
@@ -256,7 +257,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -313,7 +314,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -370,7 +371,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -425,7 +426,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -473,7 +474,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -567,7 +568,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -637,7 +638,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -688,7 +689,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -747,22 +748,22 @@ data:
   87, 88, 91, 92, 93, 94,
   132, 133, 136, 137, 138, 139 ;
 }
-*** Running test: bn_all_leap.jnl
-*** Running test: bn570_bug_fixes.jnl
-*** Running test: bn_modstats.jnl
-*** Running test: bn_mc_vary_scale.jnl
-*** Running test: bn_plot_nokey.jnl
-*** Running test: bn580_bug_fixes.jnl
-*** Running test: bn_inf_levels.jnl
-*** Running test: bn_regulart.jnl
-*** Running test: bn_labwid.jnl
-*** Running test: bn_redefine_taxis_mc.jnl
-*** Running test: bn_illegal_axisname.jnl
-*** Running test: bn_exit_script.jnl
-*** Running test: bn_exit_cycle.jnl
-*** Running test: bn_curv_mod.jnl
-*** Running test: bn_shade_keycont.jnl
-*** Running test: bn581_bug_fixes.jnl
+*** Running ferret script: bn_all_leap.jnl
+*** Running ferret script: bn570_bug_fixes.jnl
+*** Running ferret script: bn_modstats.jnl
+*** Running ferret script: bn_mc_vary_scale.jnl
+*** Running ferret script: bn_plot_nokey.jnl
+*** Running ferret script: bn580_bug_fixes.jnl
+*** Running ferret script: bn_inf_levels.jnl
+*** Running ferret script: bn_regulart.jnl
+*** Running ferret script: bn_labwid.jnl
+*** Running ferret script: bn_redefine_taxis_mc.jnl
+*** Running ferret script: bn_illegal_axisname.jnl
+*** Running ferret script: bn_exit_script.jnl
+*** Running ferret script: bn_exit_cycle.jnl
+*** Running ferret script: bn_curv_mod.jnl
+*** Running ferret script: bn_shade_keycont.jnl
+*** Running ferret script: bn581_bug_fixes.jnl
 err580_irreg_bounds.jnl --- 
 netcdf a {
 dimensions:
@@ -779,7 +780,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -806,7 +807,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
 data:
@@ -830,7 +831,7 @@ variables:
 		A:history = "From x" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title, longer than the previous limit of 80 characters.  Previously various buffers were set to 80, and storage in ds_title was also too short." ;
 data:
@@ -857,19 +858,19 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
-*** Running test: bn_tab_comma_multivar.jnl
-*** Running test: bn_element_functions.jnl
-*** Running test: bn_long_revision_num.jnl
+*** 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 V6.951   6-Nov-15" ;
-*** Running test: bn_window_title.jnl
-*** Running test: bn_last_error.jnl
-*** Running test: bn_deg_min.jnl
-*** Running test: bn_dp_readscale.jnl
-*** Running test: bn_bounds_defineax.jnl
+		:history = "FERRET V7  17-Jun-16" ;
+*** Running ferret script: bn_window_title.jnl
+*** Running ferret script: bn_last_error.jnl
+*** Running ferret script: bn_deg_min.jnl
+*** Running ferret script: bn_dp_readscale.jnl
+*** Running ferret script: bn_bounds_defineax.jnl
 bn_bounds_defineax.jnl --- N+1 def of bounds.
 netcdf irrxzt {
 dimensions:
@@ -900,7 +901,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -959,7 +960,7 @@ data:
   87, 88, 91, 92, 93, 94,
   132, 133, 136, 137, 138, 139 ;
 }
-*** Running test: bn_attributes.jnl
+*** Running ferret script: bn_attributes.jnl
 bn_attributes.jnl --- 1 attributes of string variables
 netcdf a {
 dimensions:
@@ -973,7 +974,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -995,7 +996,7 @@ variables:
 		COADSX105_105:units = "degrees_east" ;
 		COADSX105_105:modulo = " " ;
 		COADSX105_105:point_spacing = "even" ;
-		COADSX105_105:newatt = 0.f ;
+		COADSX105_105:newatt = 3.f ;
 		COADSX105_105:axis = "X" ;
 		COADSX105_105:standard_name = "longitude" ;
 	double COADSY45_45(COADSY45_45) ;
@@ -1017,7 +1018,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1059,7 +1060,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1167,38 +1168,38 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
 netcdf a {
 dimensions:
-	Xc3_3 = 1 ;
-	Yc2_4 = 3 ;
+	Xc = 1 ;
+	Yc = 3 ;
 	bnds = 2 ;
 	Ti = UNLIMITED ; // (1 currently)
 variables:
-	double Xc3_3(Xc3_3) ;
-		Xc3_3:long_name = "Longitude" ;
-		Xc3_3:units = "degrees_east" ;
-		Xc3_3:modulo = 360. ;
-		Xc3_3:point_spacing = "even" ;
-		Xc3_3:axis = "X" ;
-		Xc3_3:standard_name = "longitude" ;
-	double Yc2_4(Yc2_4) ;
-		Yc2_4:long_name = "Latitude" ;
-		Yc2_4:units = "degrees_north" ;
-		Yc2_4:point_spacing = "uneven" ;
-		Yc2_4:axis = "Y" ;
-		Yc2_4:standard_name = "latitude" ;
-		Yc2_4:bounds = "Yc2_4_bnds" ;
-	double Yc2_4_bnds(Yc2_4, bnds) ;
+	double Xc(Xc) ;
+		Xc:long_name = "Longitude" ;
+		Xc:units = "degrees_east" ;
+		Xc:modulo = 360. ;
+		Xc:point_spacing = "even" ;
+		Xc:axis = "X" ;
+		Xc:standard_name = "longitude" ;
+	double Yc(Yc) ;
+		Yc:long_name = "Latitude" ;
+		Yc:units = "degrees_north" ;
+		Yc:point_spacing = "uneven" ;
+		Yc:axis = "Y" ;
+		Yc:standard_name = "latitude" ;
+		Yc:bounds = "Yc_bnds" ;
+	double Yc_bnds(Yc, bnds) ;
 	double Ti(Ti) ;
 		Ti:long_name = "Time" ;
 		Ti:units = "day" ;
 		Ti:axis = "T" ;
 		Ti:standard_name = "time" ;
-	short Elev(Ti, Yc2_4, Xc3_3) ;
+	short Elev(Ti, Yc, Xc) ;
 		Elev:missing_value = -32767s ;
 		Elev:_FillValue = -32768s ;
 		Elev:long_name = "Surface elevation" ;
@@ -1208,7 +1209,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -1231,7 +1232,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1257,7 +1258,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1277,7 +1278,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1298,7 +1299,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1341,7 +1342,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -1381,7 +1382,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -1419,40 +1420,40 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
 netcdf a {
 dimensions:
-	AX011 = 5 ;
+	AX002 = 5 ;
 variables:
-	double AX011(AX011) ;
-		AX011:point_spacing = "even" ;
-		AX011:axis = "X" ;
-	float A1(AX011) ;
+	double AX002(AX002) ;
+		AX002:point_spacing = "even" ;
+		AX002:axis = "X" ;
+	float A1(AX002) ;
 		A1:missing_value = -1.e+34f ;
 		A1:_FillValue = -1.e+34f ;
 		A1:long_name = "A1" ;
 		A1:three = 1.f, 2.f, 3.f ;
 		A1:history = "From EZ.DAT" ;
-	float A2(AX011) ;
+	float A2(AX002) ;
 		A2:missing_value = -1.e+34f ;
 		A2:_FillValue = -1.e+34f ;
 		A2:long_name = "A2" ;
 		A2:history = "From EZ.DAT" ;
-	float A3(AX011) ;
+	float A3(AX002) ;
 		A3:missing_value = -1.e+34f ;
 		A3:_FillValue = -1.e+34f ;
 		A3:long_name = "A3" ;
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
- AX011 = 1, 2, 3, 4, 5 ;
+ AX002 = 1, 2, 3, 4, 5 ;
 
  A1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
 
@@ -1463,29 +1464,29 @@ data:
 bn_attributes.jnl --- 15 attributes of data from delimited data.
 netcdf a {
 dimensions:
-	AX008 = 5 ;
+	AX012 = 5 ;
 variables:
-	double AX008(AX008) ;
-		AX008:point_spacing = "even" ;
-		AX008:axis = "X" ;
-	float V1(AX008) ;
+	double AX012(AX012) ;
+		AX012:point_spacing = "even" ;
+		AX012:axis = "X" ;
+	float V1(AX012) ;
 		V1:missing_value = -1.e+34f ;
 		V1:_FillValue = -1.e+34f ;
 		V1:long_name = "V1" ;
 		V1:strval = "2" ;
 		V1:history = "From EZ.DAT" ;
-	float V4(AX008) ;
+	float V4(AX012) ;
 		V4:missing_value = -1.e+34f ;
 		V4:_FillValue = -1.e+34f ;
 		V4:long_name = "V4" ;
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
- AX008 = 1, 2, 3, 4, 5 ;
+ AX012 = 1, 2, 3, 4, 5 ;
 
  V1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
 
@@ -1507,7 +1508,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1553,7 +1554,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -1594,7 +1595,7 @@ dimensions:
 	TI = UNLIMITED ; // (1 currently)
 	PSXT100_100 = 1 ;
 	PSYT35_56 = 22 ;
-	PSZT11_1 = 1 ;
+	PSZT1_1 = 1 ;
 	TIME1 = 25 ;
 variables:
 	double XC(XC) ;
@@ -1638,21 +1639,21 @@ variables:
 		PSYT35_56:standard_name = "latitude" ;
 		PSYT35_56:bounds = "PSYT35_56_bnds" ;
 	double PSYT35_56_bnds(PSYT35_56, bnds) ;
-	double PSZT11_1(PSZT11_1) ;
-		PSZT11_1:units = "meters" ;
-		PSZT11_1:positive = "down" ;
-		PSZT11_1:point_spacing = "uneven" ;
-		PSZT11_1:axis = "Z" ;
-		PSZT11_1:standard_name = "depth" ;
-		PSZT11_1:bounds = "PSZT11_1_bnds" ;
-	double PSZT11_1_bnds(PSZT11_1, bnds) ;
+	double PSZT1_1(PSZT1_1) ;
+		PSZT1_1:units = "meters" ;
+		PSZT1_1:positive = "down" ;
+		PSZT1_1:point_spacing = "uneven" ;
+		PSZT1_1:axis = "Z" ;
+		PSZT1_1:standard_name = "depth" ;
+		PSZT1_1:bounds = "PSZT1_1_bnds" ;
+	double PSZT1_1_bnds(PSZT1_1, bnds) ;
 	double TIME1(TIME1) ;
 		TIME1:units = "hour since 1980-01-14 14:00:00" ;
 		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME1:point_spacing = "even" ;
 		TIME1:axis = "T" ;
 		TIME1:standard_name = "time" ;
-	float TEMP(TIME1, PSZT11_1, PSYT35_56, PSXT100_100) ;
+	float TEMP(TIME1, PSZT1_1, PSYT35_56, PSXT100_100) ;
 		TEMP:missing_value = -1.e+34f ;
 		TEMP:_FillValue = -1.e+34f ;
 		TEMP:long_name = "TEMPERATURE" ;
@@ -1660,7 +1661,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -1702,7 +1703,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1732,7 +1733,7 @@ data:
     -32767, -32767, -32767, -32767, -32767, -32767 ;
 }
 bn_attributes.jnl --- 20 set data type on output int4
-	int TEMP(TIME1, PSZT11_1, PSYT48_48, PSXT91_108) ;
+	int TEMP(TIME1, PSZT1_1, PSYT48_48, PSXT91_108) ;
 		TEMP:missing_value = -1000 ;
 		TEMP:_FillValue = -1000 ;
 		TEMP:long_name = "TEMPERATURE" ;
@@ -1745,7 +1746,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(TIME1, PSZT11_1, PSYT48_48, PSXT91_108) ;
+	double SALT(TIME1, PSZT1_1, PSYT48_48, PSXT91_108) ;
 		SALT:missing_value = 0.00999999977648258 ;
 		SALT:_FillValue = 0.00999999977648258 ;
 		SALT:long_name = "(SALINITY(ppt) - 35) /1000" ;
@@ -1785,7 +1786,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1822,7 +1823,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1862,7 +1863,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1913,7 +1914,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1936,7 +1937,7 @@ dimensions:
 	PSXT91_108 = 18 ;
 	PSYT35_56 = 22 ;
 	bnds = 2 ;
-	PSZT11_10 = 10 ;
+	PSZT1_10 = 10 ;
 	TIME1 = UNLIMITED ; // (1 currently)
 variables:
 	double PSXT91_108(PSXT91_108) ;
@@ -1952,27 +1953,27 @@ variables:
 		PSYT35_56:standard_name = "latitude" ;
 		PSYT35_56:bounds = "PSYT35_56_bnds" ;
 	double PSYT35_56_bnds(PSYT35_56, bnds) ;
-	double PSZT11_10(PSZT11_10) ;
-		PSZT11_10:units = "meters" ;
-		PSZT11_10:positive = "down" ;
-		PSZT11_10:point_spacing = "uneven" ;
-		PSZT11_10:axis = "Z" ;
-		PSZT11_10:standard_name = "depth" ;
-		PSZT11_10:bounds = "PSZT11_10_bnds" ;
-	double PSZT11_10_bnds(PSZT11_10, bnds) ;
+	double PSZT1_10(PSZT1_10) ;
+		PSZT1_10:units = "meters" ;
+		PSZT1_10:positive = "down" ;
+		PSZT1_10:point_spacing = "uneven" ;
+		PSZT1_10:axis = "Z" ;
+		PSZT1_10:standard_name = "depth" ;
+		PSZT1_10:bounds = "PSZT1_10_bnds" ;
+	double PSZT1_10_bnds(PSZT1_10, bnds) ;
 	double TIME1(TIME1) ;
 		TIME1:units = "hour since 1980-01-14 14:00:00" ;
 		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME1:axis = "T" ;
 		TIME1:standard_name = "time" ;
-	double T2(TIME1, PSZT11_10, PSYT35_56, PSXT91_108) ;
+	double T2(TIME1, PSZT1_10, PSYT35_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 V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -1980,7 +1981,7 @@ dimensions:
 	PSXT91_108 = 18 ;
 	PSYT35_56 = 22 ;
 	bnds = 2 ;
-	PSZT11_10 = 10 ;
+	PSZT1_10 = 10 ;
 	TIME1 = UNLIMITED ; // (1 currently)
 variables:
 	double PSXT91_108(PSXT91_108) ;
@@ -1997,27 +1998,27 @@ variables:
 		PSYT35_56:standard_name = "latitude" ;
 		PSYT35_56:bounds = "PSYT35_56_bnds" ;
 	double PSYT35_56_bnds(PSYT35_56, bnds) ;
-	double PSZT11_10(PSZT11_10) ;
-		PSZT11_10:units = "meters" ;
-		PSZT11_10:positive = "down" ;
-		PSZT11_10:point_spacing = "uneven" ;
-		PSZT11_10:axis = "Z" ;
-		PSZT11_10:standard_name = "depth" ;
-		PSZT11_10:bounds = "PSZT11_10_bnds" ;
-	double PSZT11_10_bnds(PSZT11_10, bnds) ;
+	double PSZT1_10(PSZT1_10) ;
+		PSZT1_10:units = "meters" ;
+		PSZT1_10:positive = "down" ;
+		PSZT1_10:point_spacing = "uneven" ;
+		PSZT1_10:axis = "Z" ;
+		PSZT1_10:standard_name = "depth" ;
+		PSZT1_10:bounds = "PSZT1_10_bnds" ;
+	double PSZT1_10_bnds(PSZT1_10, bnds) ;
 	double TIME1(TIME1) ;
 		TIME1:units = "hour since 1980-01-14 14:00:00" ;
 		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME1:axis = "T" ;
 		TIME1:standard_name = "time" ;
-	double T2(TIME1, PSZT11_10, PSYT35_56, PSXT91_108) ;
+	double T2(TIME1, PSZT1_10, PSYT35_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 V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2025,7 +2026,7 @@ dimensions:
 	PSXT91_108 = 18 ;
 	PSYT35_56 = 22 ;
 	bnds = 2 ;
-	PSZT11_10 = 10 ;
+	PSZT1_10 = 10 ;
 	TIME1 = UNLIMITED ; // (1 currently)
 variables:
 	double PSXT91_108(PSXT91_108) ;
@@ -2040,27 +2041,27 @@ variables:
 		PSYT35_56:axis = "Y" ;
 		PSYT35_56:bounds = "PSYT35_56_bnds" ;
 	double PSYT35_56_bnds(PSYT35_56, bnds) ;
-	double PSZT11_10(PSZT11_10) ;
-		PSZT11_10:units = "meters" ;
-		PSZT11_10:positive = "down" ;
-		PSZT11_10:point_spacing = "uneven" ;
-		PSZT11_10:axis = "Z" ;
-		PSZT11_10:standard_name = "depth" ;
-		PSZT11_10:bounds = "PSZT11_10_bnds" ;
-	double PSZT11_10_bnds(PSZT11_10, bnds) ;
+	double PSZT1_10(PSZT1_10) ;
+		PSZT1_10:units = "meters" ;
+		PSZT1_10:positive = "down" ;
+		PSZT1_10:point_spacing = "uneven" ;
+		PSZT1_10:axis = "Z" ;
+		PSZT1_10:standard_name = "depth" ;
+		PSZT1_10:bounds = "PSZT1_10_bnds" ;
+	double PSZT1_10_bnds(PSZT1_10, bnds) ;
 	double TIME1(TIME1) ;
 		TIME1:units = "hour since 1980-01-14 14:00:00" ;
 		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME1:axis = "T" ;
 		TIME1:standard_name = "time" ;
-	double T2(TIME1, PSZT11_10, PSYT35_56, PSXT91_108) ;
+	double T2(TIME1, PSZT1_10, PSYT35_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 V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2095,7 +2096,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2129,7 +2130,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 27 attributes of  user-defined axes
@@ -2159,7 +2160,7 @@ variables:
 		AXY:long_name = "RESHAPE (A,RVAR)" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 28 Define a new global attribute
@@ -2188,7 +2189,7 @@ variables:
 		BROILED:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -2209,39 +2210,39 @@ data:
 bn_attributes.jnl --- 29 SET VAR/OUTTYPE for user variable
 netcdf a {
 dimensions:
-	PSXT191_108 = 18 ;
-	PSYT135_56 = 22 ;
+	PSXT91_108 = 18 ;
+	PSYT35_56 = 22 ;
 	bnds = 2 ;
-	PSZT11_10 = 10 ;
+	PSZT1_10 = 10 ;
 	TIME1 = UNLIMITED ; // (25 currently)
 variables:
-	double PSXT191_108(PSXT191_108) ;
-		PSXT191_108:units = "degrees_east" ;
-		PSXT191_108:point_spacing = "even" ;
-		PSXT191_108:modulo = 360. ;
-		PSXT191_108:axis = "X" ;
-		PSXT191_108:standard_name = "longitude" ;
-	double PSYT135_56(PSYT135_56) ;
-		PSYT135_56:units = "degrees_north" ;
-		PSYT135_56:point_spacing = "uneven" ;
-		PSYT135_56:axis = "Y" ;
-		PSYT135_56:standard_name = "latitude" ;
-		PSYT135_56:bounds = "PSYT135_56_bnds" ;
-	double PSYT135_56_bnds(PSYT135_56, bnds) ;
-	double PSZT11_10(PSZT11_10) ;
-		PSZT11_10:units = "meters" ;
-		PSZT11_10:positive = "down" ;
-		PSZT11_10:point_spacing = "uneven" ;
-		PSZT11_10:axis = "Z" ;
-		PSZT11_10:standard_name = "depth" ;
-		PSZT11_10:bounds = "PSZT11_10_bnds" ;
-	double PSZT11_10_bnds(PSZT11_10, bnds) ;
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees_east" ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:axis = "X" ;
+		PSXT91_108:standard_name = "longitude" ;
+	double PSYT35_56(PSYT35_56) ;
+		PSYT35_56:units = "degrees_north" ;
+		PSYT35_56:point_spacing = "uneven" ;
+		PSYT35_56:axis = "Y" ;
+		PSYT35_56:standard_name = "latitude" ;
+		PSYT35_56:bounds = "PSYT35_56_bnds" ;
+	double PSYT35_56_bnds(PSYT35_56, bnds) ;
+	double PSZT1_10(PSZT1_10) ;
+		PSZT1_10:units = "meters" ;
+		PSZT1_10:positive = "down" ;
+		PSZT1_10:point_spacing = "uneven" ;
+		PSZT1_10:axis = "Z" ;
+		PSZT1_10:standard_name = "depth" ;
+		PSZT1_10:bounds = "PSZT1_10_bnds" ;
+	double PSZT1_10_bnds(PSZT1_10, bnds) ;
 	double TIME1(TIME1) ;
 		TIME1:units = "hour since 1980-01-14 14:00:00" ;
 		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME1:axis = "T" ;
 		TIME1:standard_name = "time" ;
-	double FAREN(TIME1, PSZT11_10, PSYT135_56, PSXT191_108) ;
+	double FAREN(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
 		FAREN:missing_value = -1.e+34 ;
 		FAREN:_FillValue = -1.e+34 ;
 		FAREN:long_name = "TEMP*9/5 + 32" ;
@@ -2249,44 +2250,44 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
-	PSXT191_108 = 18 ;
-	PSYT135_56 = 22 ;
+	PSXT91_108 = 18 ;
+	PSYT35_56 = 22 ;
 	bnds = 2 ;
-	PSZT11_10 = 10 ;
+	PSZT1_10 = 10 ;
 	TIME1 = UNLIMITED ; // (25 currently)
 variables:
-	double PSXT191_108(PSXT191_108) ;
-		PSXT191_108:units = "degrees_east" ;
-		PSXT191_108:point_spacing = "even" ;
-		PSXT191_108:modulo = 360. ;
-		PSXT191_108:axis = "X" ;
-		PSXT191_108:standard_name = "longitude" ;
-	double PSYT135_56(PSYT135_56) ;
-		PSYT135_56:units = "degrees_north" ;
-		PSYT135_56:point_spacing = "uneven" ;
-		PSYT135_56:axis = "Y" ;
-		PSYT135_56:standard_name = "latitude" ;
-		PSYT135_56:bounds = "PSYT135_56_bnds" ;
-	double PSYT135_56_bnds(PSYT135_56, bnds) ;
-	double PSZT11_10(PSZT11_10) ;
-		PSZT11_10:units = "meters" ;
-		PSZT11_10:positive = "down" ;
-		PSZT11_10:point_spacing = "uneven" ;
-		PSZT11_10:axis = "Z" ;
-		PSZT11_10:standard_name = "depth" ;
-		PSZT11_10:bounds = "PSZT11_10_bnds" ;
-	double PSZT11_10_bnds(PSZT11_10, bnds) ;
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees_east" ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:axis = "X" ;
+		PSXT91_108:standard_name = "longitude" ;
+	double PSYT35_56(PSYT35_56) ;
+		PSYT35_56:units = "degrees_north" ;
+		PSYT35_56:point_spacing = "uneven" ;
+		PSYT35_56:axis = "Y" ;
+		PSYT35_56:standard_name = "latitude" ;
+		PSYT35_56:bounds = "PSYT35_56_bnds" ;
+	double PSYT35_56_bnds(PSYT35_56, bnds) ;
+	double PSZT1_10(PSZT1_10) ;
+		PSZT1_10:units = "meters" ;
+		PSZT1_10:positive = "down" ;
+		PSZT1_10:point_spacing = "uneven" ;
+		PSZT1_10:axis = "Z" ;
+		PSZT1_10:standard_name = "depth" ;
+		PSZT1_10:bounds = "PSZT1_10_bnds" ;
+	double PSZT1_10_bnds(PSZT1_10, bnds) ;
 	double TIME1(TIME1) ;
 		TIME1:units = "hour since 1980-01-14 14:00:00" ;
 		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME1:axis = "T" ;
 		TIME1:standard_name = "time" ;
-	int FAREN(TIME1, PSZT11_10, PSYT135_56, PSXT191_108) ;
+	int FAREN(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
 		FAREN:missing_value = -999 ;
 		FAREN:_FillValue = -999 ;
 		FAREN:long_name = "TEMP*9/5 + 32" ;
@@ -2294,31 +2295,31 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
-		:Conventions = "CF-1.6" ;
-}
-*** Running test: bn_transforms.jnl
-*** Running test: bn_variance.jnl
-*** Running test: bn_linecolors.jnl
-*** Running test: bn_cdf_errmsg.jnl
-*** Running test: bn600_bug_fixes.jnl
-*** Running test: bn601_bug_fixes.jnl
-*** Running test: bn_set_strides.jnl
-*** Running test: bn_lsl_lowpass.jnl
-*** Running test: bn_return_xmod_tmod.jnl
-*** Running test: bn602_bug_fixes.jnl
-*** Running test: bn_modnbd.jnl
-*** Running test: bn_fifty_files.jnl
-*** Running test: bn603_bug_fixes.jnl
-*** Running test: bn_set_var_name.jnl
-*** Running test: bn_memory_symbol.jnl
-*** Running test: bn605_bug_fixes.jnl
-*** Running test: bn608_bug_fixes.jnl
-*** Running test: bn_shade_trim.jnl
-*** Running test: bn_mode_nlevels.jnl
-*** Running test: bn61_bug_fixes.jnl
-*** Running test: bn_test_opendap.jnl
-*** Running test: bn611_bug_fixes.jnl
+		:history = "FERRET V7  17-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
+*** Running ferret script: bn_transforms.jnl
+*** Running ferret script: bn_variance.jnl
+*** Running ferret script: bn_linecolors.jnl
+*** Running ferret script: bn_cdf_errmsg.jnl
+*** Running ferret script: bn600_bug_fixes.jnl
+*** Running ferret script: bn601_bug_fixes.jnl
+*** Running ferret script: bn_set_strides.jnl
+*** Running ferret script: bn_lsl_lowpass.jnl
+*** Running ferret script: bn_return_xmod_tmod.jnl
+*** Running ferret script: bn602_bug_fixes.jnl
+*** Running ferret script: bn_modnbd.jnl
+*** Running ferret script: bn_fifty_files.jnl
+*** Running ferret script: bn603_bug_fixes.jnl
+*** Running ferret script: bn_set_var_name.jnl
+*** Running ferret script: bn_memory_symbol.jnl
+*** Running ferret script: bn605_bug_fixes.jnl
+*** Running ferret script: bn608_bug_fixes.jnl
+*** Running ferret script: bn_shade_trim.jnl
+*** Running ferret script: bn_mode_nlevels.jnl
+*** Running ferret script: bn61_bug_fixes.jnl
+*** Running ferret script: bn_test_opendap.jnl
+*** Running ferret script: bn611_bug_fixes.jnl
 netcdf a {
 dimensions:
 	XAX = 4 ;
@@ -2335,7 +2336,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2365,7 +2366,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2395,7 +2396,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2448,7 +2449,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2490,7 +2491,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2508,12 +2509,12 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
-*** Running test: bn_no_valid_on_plot.jnl
-*** Running test: bn_median.jnl
-*** Running test: bn614_bug_fixes.jnl
+*** Running ferret script: bn_no_valid_on_plot.jnl
+*** Running ferret script: bn_median.jnl
+*** Running ferret script: bn614_bug_fixes.jnl
 err611_set_var_ez.jnl --- 
 netcdf a {
 dimensions:
@@ -2530,7 +2531,7 @@ variables:
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2548,7 +2549,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -2565,7 +2566,7 @@ variables:
 		A:long_name = "{1.1,2.2,3.3}" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2586,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 V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2594,17 +2595,17 @@ data:
 
  A = 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5 ;
 }
-*** Running test: bn_mode_nodata_lab.jnl
-*** Running test: bn_proleptic_gregorian_calendar.jnl
-*** Running test: bn_string_ngd_nbd.jnl
-*** Running test: bn_cat_string.jnl
-*** Running test: bn_sort_strings.jnl
-*** Running test: bn_samplexyt.jnl
-*** Running test: bn_last_go_file.jnl
-*** Running test: bn_cancel_upcase_uservar.jnl
+*** Running ferret script: bn_mode_nodata_lab.jnl
+*** Running ferret script: bn_proleptic_gregorian_calendar.jnl
+*** Running ferret script: bn_string_ngd_nbd.jnl
+*** Running ferret script: bn_cat_string.jnl
+*** Running ferret script: bn_sort_strings.jnl
+*** Running ferret script: bn_samplexyt.jnl
+*** Running ferret script: bn_last_go_file.jnl
+*** Running ferret script: bn_cancel_upcase_uservar.jnl
 netcdf a {
 dimensions:
-	XAX1_10 = 10 ;
+	XAX = 10 ;
 	tday = UNLIMITED ; // (31 currently)
 	lon1_5 = 5 ;
 	lat1_5 = 5 ;
@@ -2612,16 +2613,16 @@ dimensions:
 	zt = 10 ;
 	time1478 = 3 ;
 variables:
-	double XAX1_10(XAX1_10) ;
-		XAX1_10:point_spacing = "even" ;
-		XAX1_10:axis = "X" ;
+	double XAX(XAX) ;
+		XAX:point_spacing = "even" ;
+		XAX:axis = "X" ;
 	double tday(tday) ;
 		tday:units = "days since 1998-12-31 00:00:00" ;
 		tday:axis = "T" ;
 		tday:calendar = "GREGORIAN" ;
 		tday:time_origin = "31-DEC-1998" ;
 		tday:standard_name = "time" ;
-	double MyUpperLowerCaseVar(tday, XAX1_10) ;
+	double MyUpperLowerCaseVar(tday, XAX) ;
 		MyUpperLowerCaseVar:missing_value = -1.e+34 ;
 		MyUpperLowerCaseVar:_FillValue = -1.e+34 ;
 		MyUpperLowerCaseVar:long_name = "X[X=1:10] + T[GT=TDAY]" ;
@@ -2657,11 +2658,11 @@ variables:
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
-*** Running test: bn_cdf_keepax.jnl
-*** Running test: bn_keep_axisnames.jnl
+*** Running ferret script: bn_cdf_keepax.jnl
+*** Running ferret script: bn_keep_axisnames.jnl
 bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
 netcdf a {
 dimensions:
@@ -2686,7 +2687,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -2713,47 +2714,47 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
-		:Conventions = "CF-1.6" ;
-}
-*** Running test: bn_key_label_minmax.jnl
-*** Running test: bn62_bug_fixes.jnl
-*** Running test: bn_convolve.jnl
-*** Running test: bn_tax_tstep.jnl
-*** Running test: bn_grads_z.jnl
-*** Running test: bn_clock_syms.jnl
-*** Running test: bn63_bug_fixes.jnl
-*** Running test: bn_axis_reversed_syms.jnl
-*** Running test: bn_isdepth.jnl
-*** Running test: bn_var_hist_levels.jnl
-*** Running test: bn64_bug_fixes.jnl
-*** Running test: bn_long_grid_names.jnl
-*** Running test: bn_xml_repl.jnl
-*** Running test: bn65_bug_fixes.jnl
-*** Running test: bn_txtype_dmy.jnl
-*** Running test: bn_n_open_dsets_sym.jnl
-*** Running test: bn_multi_decade.jnl
-*** Running test: bn_show_xml_file.jnl
-*** Running test: bn66_bug_fixes.jnl
-*** Running test: bn_netcdf4.jnl
-*** Running test: bn_scat2grid_bin.jnl
-*** Running test: bn_axis_dir_symbols.jnl
-*** Running test: bn663_bug_fixes.jnl
-*** Running test: bn_set_axis_regular.jnl
-*** Running test: bn_set_cancel_redirect.jnl
-*** Running test: bn_min_max_smoothers.jnl
-*** Running test: bn_vector_symbols.jnl
-*** Running test: bn_variance_large.jnl
-*** Running test: bn_labnum_calendar.jnl
-*** Running test: bn665_bug_fixes.jnl
-*** Running test: bn_floatstr.jnl
-*** Running test: bn67_bug_fixes.jnl
-*** Running test: bn_NaN_note.jnl
-*** Running test: bn671_bug_fixes.jnl
-*** Running test: bn68_bug_fixes.jnl
-*** Running test: bn_ifv.jnl
-*** Running test: bn_randu2_randn2.jnl
-*** Running test: bn_axis_cf.jnl
+		:history = "FERRET V7  17-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
+*** Running ferret script: bn_key_label_minmax.jnl
+*** Running ferret script: bn62_bug_fixes.jnl
+*** Running ferret script: bn_convolve.jnl
+*** Running ferret script: bn_tax_tstep.jnl
+*** Running ferret script: bn_grads_z.jnl
+*** Running ferret script: bn_clock_syms.jnl
+*** Running ferret script: bn63_bug_fixes.jnl
+*** Running ferret script: bn_axis_reversed_syms.jnl
+*** Running ferret script: bn_isdepth.jnl
+*** Running ferret script: bn_var_hist_levels.jnl
+*** Running ferret script: bn64_bug_fixes.jnl
+*** Running ferret script: bn_long_grid_names.jnl
+*** Running ferret script: bn_xml_repl.jnl
+*** Running ferret script: bn65_bug_fixes.jnl
+*** Running ferret script: bn_txtype_dmy.jnl
+*** Running ferret script: bn_n_open_dsets_sym.jnl
+*** Running ferret script: bn_multi_decade.jnl
+*** Running ferret script: bn_show_xml_file.jnl
+*** Running ferret script: bn66_bug_fixes.jnl
+*** Running ferret script: bn_netcdf4.jnl
+*** Running ferret script: bn_scat2grid_bin.jnl
+*** Running ferret script: bn_axis_dir_symbols.jnl
+*** Running ferret script: bn663_bug_fixes.jnl
+*** Running ferret script: bn_set_axis_regular.jnl
+*** Running ferret script: bn_set_cancel_redirect.jnl
+*** Running ferret script: bn_min_max_smoothers.jnl
+*** Running ferret script: bn_vector_symbols.jnl
+*** Running ferret script: bn_variance_large.jnl
+*** Running ferret script: bn_labnum_calendar.jnl
+*** Running ferret script: bn665_bug_fixes.jnl
+*** Running ferret script: bn_floatstr.jnl
+*** Running ferret script: bn67_bug_fixes.jnl
+*** Running ferret script: bn_NaN_note.jnl
+*** Running ferret script: bn671_bug_fixes.jnl
+*** Running ferret script: bn68_bug_fixes.jnl
+*** Running ferret script: bn_ifv.jnl
+*** Running ferret script: bn_randu2_randn2.jnl
+*** Running ferret script: bn_axis_cf.jnl
 bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
 netcdf a {
 dimensions:
@@ -2818,7 +2819,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -2850,7 +2851,7 @@ variables:
 		Y_:long_name_mod = "axis YFIFTEEN" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -2883,60 +2884,61 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
-		:Conventions = "CF-1.6" ;
-}
-*** Running test: bn_repeated_coords.jnl
-*** Running test: bn_xml_header.jnl
-*** Running test: bn_eof_simple.jnl
-*** Running test: bn_eof_simple2.jnl
-*** Running test: bn_interpolate_6d.jnl
-*** Running test: bn_regrid_6d.jnl
-*** Running test: bn_syntax_6d.jnl
-*** Running test: bn_expressions_6d.jnl
-*** Running test: bn_direction_fcns_6d.jnl
-*** Running test: bn_regrid_transforms_6d.jnl
-*** Running test: bn_aggregate_e.jnl
-*** Running test: bn_6d_lab_mode.jnl
-*** Running test: bn682_bug_fixes.jnl
-*** Running test: bn683_bug_fixes.jnl
-*** Running test: bn_outtype.jnl
-*** Running test: bn_ribbon_plot.jnl
-*** Running test: bn_descr_4digit.jnl
-*** Running test: bn_axis_outtype.jnl
-*** Running test: bn_axis_nonmonotonic.jnl
-*** Running test: bn_vec_mod.jnl
-*** Running test: bn685_bug_fixes.jnl
-*** Running test: bn_dsg_e_x.jnl
-*** Running test: bn_nco_append.jnl
-*** Running test: bn_nobounds.jnl
-*** Running test: bn_write_integer_att.jnl
-*** Running test: bn_descriptor_mc.jnl
-*** Running test: bn_plot_color_only.jnl
-*** Running test: bn_vtree.jnl
-*** Running test: bn686_bug_fixes.jnl
-*** Running test: bn_long_symnames.jnl
-*** Running test: bn_strdim.jnl
-*** Running test: bn_single_colorlev.jnl
-*** Running test: bn69_bug_fixes.jnl
-*** Running test: bn_bad_axis_bounds.jnl
-*** Running test: bn_enter_exit_GO.jnl
-*** Running test: bn_stddev.jnl
-*** Running test: bn_set_axis_name.jnl
-*** Running test: bn691_bug_fixes.jnl
-*** Running test: bn_append_dsg.jnl
-*** Running test: bn_global_atts.jnl
-*** Running test: bn_conventions_history.jnl
-*** Running test: bn_center_key_labels.jnl
-*** Running test: bn_wgt_transform.jnl
-*** Running test: bn_show_outfile.jnl
-*** Running test: bn_date1900_array.jnl
-*** Running test: bn_spawn_size.jnl
-*** Running test: bn_polygon_log.jnl
-*** Running test: bn694_bug_fixes.jnl
-*** Running test: bn_permute_ascii.jnl
-*** Running test: bn_lon_lat_time_string.jnl
-*** Running test: bn_save_justdim.jnl
+		:history = "FERRET V7  17-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
+*** Running ferret script: bn_repeated_coords.jnl
+*** Running ferret script: bn_xml_header.jnl
+*** Running ferret script: bn_eof_simple.jnl
+*** Running ferret script: bn_eof_simple2.jnl
+*** Running ferret script: bn_interpolate_6d.jnl
+*** Running ferret script: bn_regrid_6d.jnl
+*** Running ferret script: bn_syntax_6d.jnl
+*** Running ferret script: bn_expressions_6d.jnl
+*** Running ferret script: bn_direction_fcns_6d.jnl
+*** Running ferret script: bn_regrid_transforms_6d.jnl
+*** Running ferret script: bn_aggregate_e.jnl
+*** Running ferret script: bn_6d_lab_mode.jnl
+*** Running ferret script: bn682_bug_fixes.jnl
+*** Running ferret script: bn683_bug_fixes.jnl
+*** Running ferret script: bn_outtype.jnl
+*** Running ferret script: bn_ribbon_plot.jnl
+*** Running ferret script: bn_descr_4digit.jnl
+*** Running ferret script: bn_axis_outtype.jnl
+*** Running ferret script: bn_axis_nonmonotonic.jnl
+*** Running ferret script: bn_vec_mod.jnl
+*** Running ferret script: bn685_bug_fixes.jnl
+*** Running ferret script: bn_dsg_e_x.jnl
+*** Running ferret script: bn_nco_append.jnl
+*** Running ferret script: bn_nobounds.jnl
+*** Running ferret script: bn_write_integer_att.jnl
+*** Running ferret script: bn_descriptor_mc.jnl
+*** Running ferret script: bn_plot_color_only.jnl
+*** Running ferret script: bn_vtree.jnl
+*** Running ferret script: bn686_bug_fixes.jnl
+*** Running ferret script: bn_long_symnames.jnl
+*** Running ferret script: bn_strdim.jnl
+*** Running ferret script: bn_single_colorlev.jnl
+*** Running ferret script: bn69_bug_fixes.jnl
+*** Running ferret script: bn_bad_axis_bounds.jnl
+*** Running ferret script: bn_enter_exit_GO.jnl
+*** Running ferret script: bn_stddev.jnl
+*** Running ferret script: bn_set_axis_name.jnl
+*** Running ferret script: bn_let_remote.jnl
+*** Running ferret script: bn691_bug_fixes.jnl
+*** Running ferret script: bn_append_dsg.jnl
+*** Running ferret script: bn_global_atts.jnl
+*** Running ferret script: bn_conventions_history.jnl
+*** Running ferret script: bn_center_key_labels.jnl
+*** Running ferret script: bn_wgt_transform.jnl
+*** Running ferret script: bn_show_outfile.jnl
+*** Running ferret script: bn_date1900_array.jnl
+*** Running ferret script: bn_spawn_size.jnl
+*** Running ferret script: bn_polygon_log.jnl
+*** Running ferret script: bn694_bug_fixes.jnl
+*** Running ferret script: bn_permute_ascii.jnl
+*** Running ferret script: bn_lon_lat_time_string.jnl
+*** Running ferret script: bn_save_justdim.jnl
 netcdf a {
 dimensions:
 	TIME = 8 ;
@@ -2959,7 +2961,7 @@ variables:
 		TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2997,7 +2999,7 @@ variables:
 		time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V6.951   6-Nov-15" ;
+		:history = "FERRET V7  17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -3013,20 +3015,67 @@ data:
   2, 3, 4, 5, 6, 7, 8, 9,
   3, 4, 5, 6, 7, 8, 9, 10 ;
 }
-*** Running test: bn_time2d.jnl
-*** Running test: bn_legend_labels.jnl
-*** Running test: bn_DQ.jnl
-*** Running test: bn695_bug_fixes.jnl
-*** Running test: bn_f_tax_fcns.jnl
-*** Running test: bn_fmrc.jnl
-*** Running test: bn_return_defined.jnl
-*** Running test: bn_can_var_noerr.jnl
-*** Running test: bn_annotate.jnl
-*** Running test: bn_auxiliary.jnl
-*** Running test: bn_plot_ribbon_gaploc.jnl
-*** Running test: bn_time_short_axes.jnl
-*** Running test: bn_floatstr_extended.jnl
-*** Running test: bn696_bug_fixes
-*** Running test: bn_bin_regrid
-*** Running test: bn_all_ef.jnl
-*** Running test: bn_startupfile.jnl
+*** Running ferret script: bn_time2d.jnl
+*** Running ferret script: bn_legend_labels.jnl
+*** Running ferret script: bn_DQ.jnl
+*** Running ferret script: bn695_bug_fixes.jnl
+*** Running ferret script: bn_f_tax_fcns.jnl
+*** Running ferret script: bn_fmrc.jnl
+*** Running ferret script: bn_return_defined.jnl
+*** Running ferret script: bn_can_var_noerr.jnl
+*** Running ferret script: bn_annotate.jnl
+*** Running ferret script: bn_auxiliary.jnl
+*** Running ferret script: bn_plot_ribbon_gaploc.jnl
+*** Running ferret script: bn_time_short_axes.jnl
+*** Running ferret script: bn_floatstr_extended.jnl
+*** Running ferret script: bn696_bug_fixes.jnl
+*** Running ferret script: bn_bin_regrid.jnl
+*** Running ferret script: bn697_bug_fixes.jnl
+*** Running ferret script: bn_aggregate_t.jnl
+*** Running ferret script: bn_unquoted_args.jnl
+*** Running ferret script: bn_long_lists.jnl
+*** Running ferret script: bn_show_uvar_grid.jnl
+*** Running ferret script: bn_aggregate_f.jnl
+*** Running ferret script: bn_aggregate_tef.jnl
+*** Running ferret script: bn_dataset_qualifier.jnl
+*** Running ferret script: bn_speedtest.jnl
+*** Running ferret script: bn_show_noupcase.jnl
+*** Running ferret script: bn_letd_attributes.jnl
+netcdf a {
+variables:
+	double MYVAR ;
+		MYVAR:missing_value = -1.e+34 ;
+		MYVAR:_FillValue = -1.e+34 ;
+		MYVAR:long_name = "coads myvar" ;
+		MYVAR:units = "feet" ;
+		MYVAR:history = "From coads_climatology" ;
+
+// global attributes:
+		:history = "FERRET V7  17-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
+netcdf a {
+variables:
+	double MYVAR ;
+		MYVAR:missing_value = -1.e+34 ;
+		MYVAR:_FillValue = -1.e+34 ;
+		MYVAR:long_name = "Levitus myvar" ;
+		MYVAR:units = "meters" ;
+		MYVAR:standard_name = "None" ;
+		MYVAR:history = "From levitus_climatology" ;
+
+// global attributes:
+		:history = "FERRET V7  17-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
+*** Running ferret script: bn_list_clim_axes.jnl
+*** Running ferret script: bn_climatology_attr.jnl
+*** Running ferret script: bn_plot_along.jnl
+*** Running ferret script: bn_show_commands.jnl
+*** Running ferret script: bn_plot_decimate.jnl
+*** Running ferret script: bn_auto_tprec.jnl
+*** Running ferret script: bn_coordvars_atts.jnl
+*** Running ferret script: bn_gif.jnl
+*** Running ferret script: bn_ps.jnl
+*** Running ferret script: bn_all_ef.jnl
+*** Running ferret script: bn_startupfile.jnl
diff --git a/bench/test_results/flowlines.pdf b/bench/test_results/flowlines.pdf
index 463bb6a..f1bae62 100644
Binary files a/bench/test_results/flowlines.pdf and b/bench/test_results/flowlines.pdf differ
diff --git a/bench/test_results/gif_dashbug.gif b/bench/test_results/gif_dashbug.gif
new file mode 100644
index 0000000..1c08529
Binary files /dev/null and b/bench/test_results/gif_dashbug.gif differ
diff --git a/bench/test_results/gif_dashbug.png b/bench/test_results/gif_dashbug.png
new file mode 100644
index 0000000..8082e84
Binary files /dev/null and b/bench/test_results/gif_dashbug.png differ
diff --git a/bench/test_results/linecolors.pdf b/bench/test_results/linecolors.pdf
index c797798..9e375bb 100644
Binary files a/bench/test_results/linecolors.pdf and b/bench/test_results/linecolors.pdf differ
diff --git a/bench/test_results/multi_line_labels.pdf b/bench/test_results/multi_line_labels.pdf
index 33ed62f..3fd6f00 100644
Binary files a/bench/test_results/multi_line_labels.pdf and b/bench/test_results/multi_line_labels.pdf differ
diff --git a/bench/test_results/outline_poly.pdf b/bench/test_results/outline_poly.pdf
index bab86ad..4f0ce45 100644
Binary files a/bench/test_results/outline_poly.pdf and b/bench/test_results/outline_poly.pdf differ
diff --git a/bench/test_results/polygon_plot.pdf b/bench/test_results/polygon_plot.pdf
index 786f183..388ba5c 100644
Binary files a/bench/test_results/polygon_plot.pdf and b/bench/test_results/polygon_plot.pdf differ
diff --git a/bench/test_results/pyferret_run_tests_err b/bench/test_results/pyferret_run_tests_err
index 37897e7..37f81be 100644
--- a/bench/test_results/pyferret_run_tests_err
+++ b/bench/test_results/pyferret_run_tests_err
@@ -1,8 +1,23 @@
-Using FERRET /home/users/ksmith/PyFerret/bin/pyferret
--rwxr-xr-x. 1 ksmith tmap 1188 Nov 19 12:01 /home/users/ksmith/PyFerret/bin/pyferret
-Using external functions from /home/users/ksmith/PyFerret/ext_func/pylibs
+Using FERRET /home/flat/ksmith/PyFerret/bin/pyferret
+-rwxr-xr-x. 1 ksmith oerdnewp 1387 Jun 17 15:17 /home/flat/ksmith/PyFerret/bin/pyferret
+Using external functions from /home/flat/ksmith/PyFerret/ext_func/pylibs
 Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for debug PyFerret on RHEL6-64
+Note: RUN_TESTS.sh test results for PyFerret
+****** Restricting Ferret paths to bench directory ******
+FER_DAT=.
+FER_DATA=.
+FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/flat/ksmith/Datasets
+FER_DESCR=.
+FER_DIR=.
+FER_DSETS=.
+FER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/PyFerret/ext_func/libs
+FER_FONTS=/home/flat/ksmith/PyFerret/ppl/fonts
+FER_GO=. /home/flat/ksmith/PyFerret/go /home/flat/ksmith/PyFerret/examples /home/flat/ksmith/PyFerret/contrib
+FER_GRIDS=.
+FER_LIBS=/home/flat/ksmith/PyFerret/lib
+FER_PALETTE=. /home/flat/ksmith/PyFerret/ppl
+FER_WEB_BROWSER=firefox
+PYFER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/PyFerret/ext_func/pylibs
 Benchmark scripts that will be run:
    bn_syntax.jnl
    bn_dollar.jnl
@@ -216,6 +231,7 @@ Benchmark scripts that will be run:
    bn_enter_exit_GO.jnl
    bn_stddev.jnl
    bn_set_axis_name.jnl
+   bn_let_remote.jnl
    bn691_bug_fixes.jnl
    bn_append_dsg.jnl
    bn_global_atts.jnl
@@ -243,28 +259,43 @@ Benchmark scripts that will be run:
    bn_plot_ribbon_gaploc.jnl
    bn_time_short_axes.jnl
    bn_floatstr_extended.jnl
-   bn696_bug_fixes
-   bn_bin_regrid
+   bn696_bug_fixes.jnl
+   bn_bin_regrid.jnl
+   bn697_bug_fixes.jnl
+   bn_aggregate_t.jnl
+   bn_unquoted_args.jnl
+   bn_long_lists.jnl
+   bn_show_uvar_grid.jnl
+   bn_aggregate_f.jnl
+   bn_aggregate_tef.jnl
+   bn_dataset_qualifier.jnl
+   bn_speedtest.jnl
+   bn_show_noupcase.jnl
+   bn_letd_attributes.jnl
+   bn_list_clim_axes.jnl
+   bn_climatology_attr.jnl
+   bn_plot_along.jnl
+   bn_show_commands.jnl
+   bn_plot_decimate.jnl
+   bn_auto_tprec.jnl
+   bn_coordvars_atts.jnl
+   bn_gif.jnl
+   bn_ps.jnl
    bn_all_ef.jnl
    bn_startupfile.jnl
    bn_outline_poly.jnl
-****** Restricting Ferret paths to bench directory ******
-FER_DAT=.
-FER_DATA=.
-FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/ksmith/Datasets
-FER_DESCR=.
-FER_DIR=.
-FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ksmith/PyFerret/ext_func/libs
-FER_FONTS=/home/users/ksmith/PyFerret/ppl/fonts
-FER_GO=. /home/users/ksmith/PyFerret/go /home/users/ksmith/PyFerret/examples /home/users/ksmith/PyFerret/contrib
-FER_GRIDS=.
-FER_LIBS=/home/users/ksmith/PyFerret/lib
-FER_PALETTE=. /home/users/ksmith/PyFerret/ppl
-FER_WEB_BROWSER=firefox
-PYFER_EXTERNAL_FUNCTIONS=/home/users/ksmith/PyFerret/ext_func/pylibs
-Beginning at Thu Nov 19 12:03:16 PST 2015
-*** Running test: bn_syntax.jnl
+   bn_contourcolor.jnl
+   testgetstrdata.py
+   testferregion.py
+   testferdset.py
+   testfervar.py
+   testferaggdset.py
+   testferaxis.py
+   testfergrid.py
+   testferpyvar.py
+   testfermethods.py
+Beginning at Fri Jun 17 15:17:18 PDT 2016
+*** Running ferret script: bn_syntax.jnl
  Cached data cleared from memory
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
@@ -289,13 +320,13 @@ Beginning at Thu Nov 19 12:03:16 PST 2015
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
         SET EXPRESSION has not been given or implied
- **ERROR: unknown command qualifier: help
-MESSAGE/CONTINUE /help
+ **ERROR: unknown command qualifier: notaqualifier
+MESSAGE/CONTINUE/notaqualifier
  **ERROR: unknown command: that
 that
  **ERROR: command syntax: \!
 \! ignore (err cuz bang gets escaped)
-*** Running test: bn_dollar.jnl
+*** Running ferret script: bn_dollar.jnl
  Cached data cleared from memory
  **ERROR: invalid command: Value needed for argument 3 in command
           GO "bn_dollar.jnl" "hello"
@@ -306,11 +337,13 @@ message/cont $3"<my error message"
 message/cont $1"|xxxxx|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $1
 message/cont $1"greetings|xxxxx|goodbye"
+           *** NOTE: Argument $1 received was: hello
            *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
  **ERROR: my error message
 message/cont $3"|hello|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3">greetings|hello|goodbye"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: hello|goodbye
  **ERROR: my error message
 message/cont $3">greetings|hello|goodbye<my error message"
@@ -322,9 +355,11 @@ message/cont $3""
 message/cont $3"<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"||"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: |
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>|"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: >|
  **ERROR: command syntax: empty text string provided with ">": >|
 message/cont $3">|"
@@ -332,6 +367,7 @@ message/cont $3">|"
 message/cont $3"|<"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3"|>"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: >
  **ERROR: command syntax: arg number not in 1-99 range: $100
 say $100
@@ -340,7 +376,7 @@ say ($100)
  **ERROR: invalid command: Value needed for argument 10 in command
           GO "bn_dollar.jnl" "hello"
 say ($10)0
-*** Running test: bn_grave.jnl
+*** Running ferret script: bn_grave.jnl
  Cached data cleared from memory
  **ERROR: command syntax: unpaired grave accents: message/continue "2+2=`2+2"
 message/continue "2+2=`2+2"
@@ -382,7 +418,7 @@ MESSAGE/CONTINUE `sst,return=Xsize`
             calendar,dtype,xmod,tmod,status,isDepth,isReady,defined
           sst,return=trash
 MESSAGE/CONTINUE `sst,return=trash`
-*** Running test: bn_letd.jnl
+*** Running ferret script: bn_letd.jnl
  Cached data cleared from memory
  **ERROR: unknown data set: NOEXIST
 DEFINE VARIABLE/d=noexist a = b
@@ -392,7 +428,7 @@ list/l=1/x=180/y=0 airt[d=gt4d011]
 can var
  LISTing to file v12file.nc
  LISTing to file v1file.nc
-*** Running test: bn_if.jnl
+*** Running ferret script: bn_if.jnl
  Cached data cleared from memory
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 ENDIF
@@ -410,7 +446,7 @@ endif
  **ERROR: invalid command: ELIF can only be used between IF and ENDIF
 elif
            *** NOTE: Unclosed IF statement ... assuming ENDIF
-*** Running test: bn_expressions.jnl
+*** Running ferret script: bn_expressions.jnl
  Cached data cleared from memory
  **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
@@ -421,7 +457,7 @@ LIST/ORDER=X  IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
 DEFINE VARIABLE A = IF I LT 5 THEN I ELSE -9
  **ERROR: variable unknown or not in data set: A1
 load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
-*** Running test: bn_geometry.jnl
+*** Running ferret script: bn_geometry.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -432,7 +468,7 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
           X[I=6:9] has 4 points (I=6:9)
           expression has 5 points (I=1:5)
 LIST X[I=1:5] - X[I=6:9]
-*** Running test: bn_output.jnl
+*** Running ferret script: bn_output.jnl
  Cached data cleared from memory
  LISTing to file WV.J34K56L7
  LISTing to file test.dat
@@ -440,15 +476,15 @@ LIST X[I=1:5] - X[I=6:9]
  LISTing to file test.unf
  **ERROR: invalid subcommand: File type no longer supported TMA
 LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
-*** Running test: bn_in_plane.jnl
+*** Running ferret script: bn_in_plane.jnl
  Cached data cleared from memory
-*** Running test: bn_compress.jnl
+*** Running ferret script: bn_compress.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_interpolate.jnl
+*** Running ferret script: bn_interpolate.jnl
  Cached data cleared from memory
-*** Running test: bn_regrid.jnl
+*** Running ferret script: bn_regrid.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -457,10 +493,10 @@ Replacing definition of axis XCOARSE
 Replacing definition of axis YFINE
 Replacing definition of axis YCOARSE
 Replacing definition of grid G24
-*** Running test: bn_ez.jnl
+*** Running ferret script: bn_ez.jnl
  Cached data cleared from memory
  LISTing to file test.unf
-*** Running test: bn_plot.jnl
+*** Running ferret script: bn_plot.jnl
  Cached data cleared from memory
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
@@ -524,7 +560,7 @@ cont/over/i=1:10/thick=4 i
  **ERROR: value out of legal range: sigdig=-1
           Value must be positive
 cont/over/i=1:10/sigdig=-1 i
-*** Running test: bn_curv.jnl
+*** Running ferret script: bn_curv.jnl
  Cached data cleared from memory
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
@@ -553,7 +589,7 @@ shade/nolabel sst, x_page[j=1:12], y_page
 shade/nolabel sst, x_page[j=1:12], y_page
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
-*** Running test: bn_symbols.jnl
+*** Running ferret script: bn_symbols.jnl
  Cached data cleared from memory
  **ERROR: command syntax: illegal name: TEST*
 define symbol test* = hello
@@ -564,15 +600,17 @@ define symbol t$5 = hi
 message/continue ($test2"<error message")
  **ERROR: invalid command: Valid value needed for symbol test2
 message/continue ($test2"|hello|bye|")
+           *** NOTE: symbol test2 was missing or empty.
            *** NOTE: Valid symbol test2 choices are: hello|bye|
  **ERROR: error message
 message/continue ($test2"|hello|bye|<error message")
  **ERROR: invalid command: Valid value needed for symbol t2
 message/continue ($t2"|solong>really hello|bye|")
+           *** NOTE: symbol t2 received was: hello
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
-*** Running test: bn_comma_delimited.jnl
+*** Running ferret script: bn_comma_delimited.jnl
  Cached data cleared from memory
-*** Running test: bn_dynamic_grids.jnl
+*** Running ferret script: bn_dynamic_grids.jnl
  Cached data cleared from memory
  **ERROR: unknown defining grid: GX=NOEXIST
 list temp[gx=noexist]
@@ -617,7 +655,7 @@ list tu
  **ERROR: regridding: Axis orientation not matching request:GX=PSYU
 list tu
  Cached data cleared from memory
- **ERROR: request exceeds memory setting: 25 Mwords were requested.
+ **ERROR: request exceeds memory setting: 50 Mwords were requested.
 list temp[gz=z999999,z=5:15]
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
@@ -642,7 +680,7 @@ list a
  **ERROR: illegal limits: A is not in the range I=101:105
           Axis extremes are I=1:8
 list a
-*** Running test: bn_cdf.jnl
+*** Running ferret script: bn_cdf.jnl
  Cached data cleared from memory
  LISTing to file test0a.cdf
  LISTing to file test0b.cdf
@@ -755,13 +793,13 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
  LISTing to file test_fil.cdf
  LISTing to file test_fil.cdf
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
-*** Running test: bn_regrid_transforms.jnl
+*** Running ferret script: bn_regrid_transforms.jnl
  Cached data cleared from memory
  **ERROR: regridding: G=W - more than 1 target grid
 load temp[g=u,g=w]
  **ERROR: unknown defining grid: G=X --> g=user-or-pseudo-var not allowed
 load temp[g=x]
-*** Running test: bn_axis_limits.jnl
+*** Running ferret script: bn_axis_limits.jnl
  Cached data cleared from memory
            *** NOTE: /XLIMITS and /YLIMITS are deprecated.
            *** NOTE: Use /HLIMITS and /VLIMITS instead.
@@ -781,9 +819,9 @@ plot/xlimits=1:: i
 plot/xlimits=1:2: i
  **ERROR: invalid command: Must give a range: xlimits=5:5
 plot/xlimits=5:5 i
-*** Running test: bn_movie.jnl
+*** Running ferret script: bn_movie.jnl
  Cached data cleared from memory
-*** Running test: bn_ez_order.jnl
+*** Running ferret script: bn_ez_order.jnl
  Cached data cleared from memory
  LISTing to file test_perm10.dat
  LISTing to file test_perm24.dat
@@ -793,11 +831,11 @@ plot/xlimits=5:5 i
  LISTing to file test_stream.unf
  LISTing to file test_stream.unf
  LISTing to file test_stream.unf
-*** Running test: bn_user.jnl
+*** Running ferret script: bn_user.jnl
  Cached data cleared from memory
-*** Running test: bn_stream.jnl
+*** Running ferret script: bn_stream.jnl
  Cached data cleared from memory
-*** Running test: bn_mc.jnl
+*** Running ferret script: bn_mc.jnl
  Cached data cleared from memory
  **TMAP ERR: Attempt to access unsupported feature
              Descriptor requests delta of 0, please use 1
@@ -809,18 +847,18 @@ set data coads_clim_step_order.des
  **TMAP ERR: non-existent or not on line
              coads_clim.001b
 list sst
-*** Running test: bn_negative_t.jnl
+*** Running ferret script: bn_negative_t.jnl
  Cached data cleared from memory
  **ERROR: regridding: only @ASN regridding between calendar and
           non-calendar axes: A
 LIST a[gt=tcal]
-*** Running test: bn_xact_regrid.jnl
+*** Running ferret script: bn_xact_regrid.jnl
  Cached data cleared from memory
-*** Running test: bn_gc_functions.jnl
+*** Running ferret script: bn_gc_functions.jnl
  Cached data cleared from memory
            *** NOTE: /XLIMITS and /YLIMITS are deprecated.
            *** NOTE: Use /HLIMITS and /VLIMITS instead.
-*** Running test: bn491_bug_fixes.jnl
+*** Running ferret script: bn491_bug_fixes.jnl
  Cached data cleared from memory
  LISTing to file test.cdf
  PERMANENT data cleared from memory
@@ -842,7 +880,7 @@ Replacing definition of axis TAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_odd_variable_name.jnl
+*** Running ferret script: bn_odd_variable_name.jnl
  Cached data cleared from memory
  Cached data cleared from memory
  **ERROR: command syntax: v2-and-minus
@@ -860,18 +898,18 @@ list i
           - before and is illegal
 list v2-and-minus[i=5:15 at ddc]
  Cached data cleared from memory
-*** Running test: bn_test_stream.jnl
+*** Running ferret script: bn_test_stream.jnl
  Cached data cleared from memory
  LISTing to file permutedBinaryTest.dat
  LISTing to file junk.dat
- **ERROR: request exceeds memory setting: 24000 Mwords were requested.
+ **ERROR: request exceeds memory setting: 48000 Mwords were requested.
 load num
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: 1000 Mwords were requested.
+ **ERROR: request exceeds memory setting: 2000 Mwords were requested.
 load num
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
@@ -889,7 +927,7 @@ load num
 SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
  **ERROR: invalid command: invalid argument for /TYPE
 SET DATA/EZ/var=num/type=i3/grid=mygrid/form=stream junk.dat
-*** Running test: bn_define_axes.jnl
+*** Running ferret script: bn_define_axes.jnl
  Cached data cleared from memory
 Replacing definition of axis XAX
 Replacing definition of axis XAX
@@ -947,11 +985,11 @@ Replacing definition of axis XAX
 Replacing definition of axis XAX2
            *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
 Replacing definition of axis XAX2
-*** Running test: bn_polygon.jnl
+*** Running ferret script: bn_polygon.jnl
  Cached data cleared from memory
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
-*** Running test: bn500_bug_fixes.jnl
+*** Running ferret script: bn500_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -985,7 +1023,7 @@ Replacing definition of axis XAX2
 stat i, noname(i)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_sample.jnl
+*** Running ferret script: bn_sample.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1023,7 +1061,7 @@ stat i, noname(i)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_strides_revs_perms.jnl
+*** Running ferret script: bn_strides_revs_perms.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1043,23 +1081,23 @@ LIST/i=2:4:2 VAR
  TEMPORARY data cleared from memory
            *** NOTE: Not using NetCDF strides for multi-cycle modulo
            *** NOTE: Stride value not a factor of axis length
-*** Running test: bn_non_COARDS_netCDF.jnl
+*** Running ferret script: bn_non_COARDS_netCDF.jnl
  Cached data cleared from memory
            *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
-*** Running test: bn_cache_hits.jnl
+*** Running ferret script: bn_cache_hits.jnl
  Cached data cleared from memory
-*** Running test: bn_regrid_to_user.jnl
+*** Running ferret script: bn_regrid_to_user.jnl
  Cached data cleared from memory
 Replacing definition of grid GG2
  **ERROR: unknown defining grid: G=NO_EXIST
 load/x=160e/y=5s temp[d=2,k=1,g=no_exist]
  **ERROR: unknown defining grid: GX=A[D=1]
 load/x=160e/y=5s v2
-*** Running test: bn_calendar.jnl
+*** Running ferret script: bn_calendar.jnl
  Cached data cleared from memory
 Replacing definition of axis TDAYS
 Replacing definition of axis TDAYS
@@ -1074,7 +1112,7 @@ Replacing definition of grid TGRID
 Replacing definition of axis TDAYS
 Replacing definition of grid TGRID
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
-*** Running test: bn_dash_dot.jnl
+*** Running ferret script: bn_dash_dot.jnl
  Cached data cleared from memory
  **ERROR: command syntax: dash=(1., 2.)
           DASH[=(dn1,up1,dn2,up2)] takes 4 arguments or no argument
@@ -1082,7 +1120,7 @@ plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
  **ERROR: value out of legal range: dash=(-1., 2., 3., 4.)
           DASH arguments must be positive
 plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
-*** Running test: bn_flowlines.jnl
+*** Running ferret script: bn_flowlines.jnl
  Cached data cleared from memory
  Using every   2th vector in the Y direction
  Using every   2th vector in the Y direction
@@ -1094,29 +1132,20 @@ plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_logaxes.jnl
+*** Running ferret script: bn_logaxes.jnl
  Cached data cleared from memory
 Replacing definition of axis DLOG
 Replacing definition of axis DLOG
  **ERROR: value out of legal range: Limits for log axis negative or too small: -9.00 : 0.00
 plot/hlog fcn
-*** Running test: bn_internal_external_functions.jnl
-
-Bailing out of external function "ffta":
-	 Time axis must be a regular axis
-
-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_stat":
-	 Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
-
-Bailing out of external function "eof_tfunc":
-	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+*** Running ferret script: bn_internal_external_functions.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis DAYT
+
+Bailing out of external function "ffta":
+	 Time axis must be a regular axis
  **ERROR: error in external function
 LIST vw_fft
 Replacing definition of grid TGRID
@@ -1155,10 +1184,19 @@ Replacing definition of grid TGRID
 list tsorted_indices, tsorted_wnd
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+
+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/l=1:2 eofxyfcn
+
+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/i=1:3/j=1:3 eofstat
+
+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/i=1:2 eoftime
  PERMANENT data cleared from memory
@@ -1190,7 +1228,9 @@ list strcat ("All work and no play")
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_modulo_strides.jnl
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+*** Running ferret script: bn_modulo_strides.jnl
  Cached data cleared from memory
  LISTing to file test_modulo.cdf
  PERMANENT data cleared from memory
@@ -1199,7 +1239,7 @@ list strcat ("All work and no play")
            *** NOTE: Stride value not a factor of axis length
            *** NOTE: Not using NetCDF strides for multi-cycle modulo
            *** NOTE: Stride value not a factor of axis length
-*** Running test: bn_axis_viewports.jnl
+*** Running ferret script: bn_axis_viewports.jnl
  Cached data cleared from memory
 Re-defining viewport MID
 Re-defining viewport MID2
@@ -1207,7 +1247,7 @@ Re-defining viewport LLAX
 Re-defining viewport LRAX
 Re-defining viewport ULAX
 Re-defining viewport URAX
-*** Running test: bn_strings.jnl
+*** Running ferret script: bn_strings.jnl
  Cached data cleared from memory
  **ERROR: command syntax: "string2"}
 list e
@@ -1250,15 +1290,15 @@ list/nohead "b" ^ {"a","b"}
 list/nohead SIN({"a","b","c"})
  **ERROR: invalid command: cannot use strings in numerical expression
 list/nohead MAX("a",{"a","b","c"})
-*** Running test: bn_axcontrol.jnl
+*** Running ferret script: bn_axcontrol.jnl
  Cached data cleared from memory
-*** Running test: bn_vec_curv.jnl
+*** Running ferret script: bn_vec_curv.jnl
  Cached data cleared from memory
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
-*** Running test: bn_delimited_read.jnl
+*** Running ferret script: bn_delimited_read.jnl
  Cached data cleared from memory
 Replacing definition of axis TAX
 Replacing definition of grid G1
@@ -1274,7 +1314,7 @@ SET DATA/FORM=delimited/type="d, da2,date2"  bn_delimited_read_date_time.dat
 SET DATA/FORM=delimited/type="da,da, date2"  bn_delimited_read_date_time.dat
  **ERROR: command syntax: ,,:
 SET DATA/EZ/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
-*** Running test: bn541_bug_fixes.jnl
+*** Running ferret script: bn541_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1318,7 +1358,7 @@ Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_cancel_axes.jnl
+*** Running ferret script: bn_cancel_axes.jnl
  Cached data cleared from memory
  LISTing to file longax.dat
  PERMANENT data cleared from memory
@@ -1339,7 +1379,7 @@ Replacing definition of axis YAX
  TEMPORARY data cleared from memory
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
-*** Running test: bn542_bug_fixes.jnl
+*** Running ferret script: bn542_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1361,7 +1401,7 @@ Replacing definition of axis YAX
            *** NOTE: Axis is in use by grid (G001)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_subspan_modulo.jnl
+*** Running ferret script: bn_subspan_modulo.jnl
  Cached data cleared from memory
  LISTing to file test_mod.cdf
  LISTing to file test_mod.cdf
@@ -1386,27 +1426,27 @@ define axis/x=130e:500:10/modulo=360 xsub
            *** NOTE: Stride value not a factor of axis length
            *** NOTE: Not using NetCDF strides for multi-cycle modulo
            *** NOTE: Stride value not a factor of axis length
-*** Running test: bn_dots.jnl
+*** Running ferret script: bn_dots.jnl
  Cached data cleared from memory
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
            *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
            *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
-*** Running test: bn_lev_symbols.jnl
+*** Running ferret script: bn_lev_symbols.jnl
  Cached data cleared from memory
-*** Running test: bn_mode_logo_lab.jnl
+*** Running ferret script: bn_mode_logo_lab.jnl
  Cached data cleared from memory
-*** Running test: bn_modulo_attribute.jnl
+*** Running ferret script: bn_modulo_attribute.jnl
  Cached data cleared from memory
            *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
            *** NOTE: modulo = "j"
            *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
            *** NOTE: modulo = "j"
-*** Running test: bn550_bug_fixes.jnl
+*** Running ferret script: bn550_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn551_bug_fixes.jnl
+*** Running ferret script: bn551_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1424,13 +1464,13 @@ Replacing definition of axis TAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_multi_line_labels.jnl
+*** Running ferret script: bn_multi_line_labels.jnl
  Cached data cleared from memory
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
-*** Running test: bn552_bug_fixes.jnl
+*** Running ferret script: bn552_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1485,13 +1525,13 @@ Replacing definition of axis YAX
  **ERROR: illegal limits: "DUMMY" does not exist at T=01-JAN-1990 00:00
           Axis extremes are T=31-DEC-1997 12:00:30-JAN-1998 12:00
 list/t=1-jan-1990 dummy
-*** Running test: bn_set_var_scale_off.jnl
+*** Running ferret script: bn_set_var_scale_off.jnl
  Cached data cleared from memory
  **ERROR: invalid command: Can SET VARIABLE/OFFSET= only with NetCDF datasets
 SET VAR/OFFSET=1 x1
  **ERROR: invalid command: Can SET VARIABLE/SCALEFAC= only with NetCDF datasets
 SET VAR/SCALE=10 x2
-*** Running test: bn_longvarnames.jnl
+*** Running ferret script: bn_longvarnames.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1503,14 +1543,14 @@ SET VAR/SCALE=10 x2
  LISTing to file longvname.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_shakey.jnl
+*** Running ferret script: bn_shakey.jnl
  Cached data cleared from memory
-*** Running test: bn_eof_4d.jnl
+*** Running ferret script: bn_eof_4d.jnl
  Cached data cleared from memory
  LISTing to file eofsp.cdf
  LISTing to file eofti.cdf
  LISTing to file eofst.cdf
-*** Running test: bn_abstract_axis_names.jnl
+*** Running ferret script: bn_abstract_axis_names.jnl
  Cached data cleared from memory
  LISTing to file confuse_xz.nc
  LISTing to file confuse_yz.nc
@@ -1520,22 +1560,29 @@ SET VAR/SCALE=10 x2
  LISTing to file confuse_yz.nc
  LISTing to file confuse_yt.nc
  LISTing to file confuse_yzt.nc
-*** Running test: bn_many_polygons.jnl
+*** Running ferret script: bn_many_polygons.jnl
  Cached data cleared from memory
 Replacing definition of axis YQ
-*** Running test: bn_fill_irregular.jnl
+*** Running ferret script: bn_fill_irregular.jnl
  Cached data cleared from memory
-*** Running test: bn_xml_output.jnl
+*** Running ferret script: bn_xml_output.jnl
  Cached data cleared from memory
+ LISTing to file a.nc
+ LISTing to file b.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
 SHOW VAR/XML
 SHOW VAR/XML
-*** Running test: bn_test_nan.jnl
+SHOW VAR/XML
+ LISTing to file a.nc
+*** Running ferret script: bn_test_nan.jnl
  Cached data cleared from memory
-*** Running test: bn553_bug_fixes.jnl
+*** Running ferret script: bn553_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1543,7 +1590,7 @@ SHOW VAR/XML
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_graticules.jnl
+*** Running ferret script: bn_graticules.jnl
  Cached data cleared from memory
  Using every   5th vector in the X direction
  Using every   3th vector in the Y direction
@@ -1555,7 +1602,7 @@ Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
-*** Running test: bn_repeat_range.jnl
+*** Running ferret script: bn_repeat_range.jnl
  Cached data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: invalid command: REPEAT/NAME requires /RANGE
@@ -1586,7 +1633,7 @@ repeat/range=3:1:-1/name=a list a
 repeat/range=3:1:-1/name=a list a
  **ERROR: command syntax: nested REPEAT loops with the same counter name a
 repeat/range=3:1:-1/name=a list a
-*** Running test: bn554_bug_fixes.jnl
+*** Running ferret script: bn554_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1648,7 +1695,7 @@ Replacing definition of axis X_AX
  TEMPORARY data cleared from memory
 Replacing definition of axis XAX
 Replacing definition of axis YAX
-*** Running test: bn_bounds.jnl
+*** Running ferret script: bn_bounds.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
@@ -1697,11 +1744,11 @@ def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,
            *** NOTE: Axis definition error on axis: TAX. Bounds describe cells that overlap one another
            *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
            *** NOTE: Substituting coordinate midpoints
-*** Running test: bn_all_leap.jnl
+*** Running ferret script: bn_all_leap.jnl
  Cached data cleared from memory
  **ERROR: command syntax: Invalid calendar name. Names are, GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
 def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
-*** Running test: bn570_bug_fixes.jnl
+*** Running ferret script: bn570_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1721,15 +1768,15 @@ def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_modstats.jnl
+*** Running ferret script: bn_modstats.jnl
  Cached data cleared from memory
-*** Running test: bn_mc_vary_scale.jnl
+*** Running ferret script: bn_mc_vary_scale.jnl
  Cached data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_plot_nokey.jnl
+*** Running ferret script: bn_plot_nokey.jnl
  Cached data cleared from memory
-*** Running test: bn580_bug_fixes.jnl
+*** Running ferret script: bn580_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1760,7 +1807,6 @@ Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file fine.dat
-Cannot create cookie file
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: illegal limits: One-point independent axis: Requires a /HLIMIT or /VLIMIT specification
@@ -1782,26 +1828,31 @@ plot/sym/siz=0.3 0*t[gt=vwnd]
 query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
  **ERROR: invalid command: Valid value needed for argument $2
 query/ignore $2%|a|b|c|d|%
+           *** NOTE: Argument $2 was missing or empty.
            *** NOTE: Valid argument $2 choices are: a|b|c|d|
  **ERROR: my error message
 message/cont $1"|xxxxx|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $1
 message/cont $1"greetings|xxxxx|goodbye"
+           *** NOTE: Argument $1 received was: hello
            *** NOTE: Valid argument $1 choices are: xxxxx|goodbye
  **ERROR: my error message
 message/cont $3"|hello|goodbye<my error message"
  **ERROR: invalid command: Valid value needed for argument $3
 message/cont $3">greetings|hello|goodbye"
+           *** NOTE: Argument $3 was missing or empty.
            *** NOTE: Valid argument $3 choices are: hello|goodbye
  **ERROR: my error message
 message/continue ($test2"<my error message")
  **ERROR: invalid command: Valid value needed for symbol test2
 message/continue ($test2"|hello|bye|")
+           *** NOTE: symbol test2 was missing or empty.
            *** NOTE: Valid symbol test2 choices are: hello|bye|
  **ERROR: my error message
 message/continue ($test2"|hello|bye|<my error message")
  **ERROR: invalid command: Valid value needed for symbol t2
 message/continue ($t2"|solong>really hello|bye|")
+           *** NOTE: symbol t2 was missing or empty.
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1820,13 +1871,13 @@ list/l=1/j=40/i=0:300:0 sst
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_inf_levels.jnl
+*** Running ferret script: bn_inf_levels.jnl
  Cached data cleared from memory
-*** Running test: bn_regulart.jnl
+*** Running ferret script: bn_regulart.jnl
  Cached data cleared from memory
-*** Running test: bn_labwid.jnl
+*** Running ferret script: bn_labwid.jnl
  Cached data cleared from memory
-*** Running test: bn_redefine_taxis_mc.jnl
+*** Running ferret script: bn_redefine_taxis_mc.jnl
  Cached data cleared from memory
 Replacing definition of axis TIME1
            *** NOTE: grid GHB1 used by data set coads_clim
@@ -1834,7 +1885,7 @@ Replacing definition of axis TIME1
 Replacing definition of axis TIME1
            *** NOTE: grid GHB1 used by data set coads_clim
            *** NOTE: Redefinition may alter apparent contents of data set
-*** Running test: bn_illegal_axisname.jnl
+*** Running ferret script: bn_illegal_axisname.jnl
  Cached data cleared from memory
 Replacing definition of axis COADSX.ILLEGAL
            *** NOTE: grid GEX1 used by data set illeg_axname
@@ -1846,15 +1897,15 @@ Replacing definition of axis COADSY.ILLEGAL
            *** NOTE: Redefinition may alter apparent contents of data set
            *** NOTE: grid GEX3 used by data set illeg_axname
            *** NOTE: Redefinition may alter apparent contents of data set
-*** Running test: bn_exit_script.jnl
+*** Running ferret script: bn_exit_script.jnl
  Cached data cleared from memory
-*** Running test: bn_exit_cycle.jnl
+*** Running ferret script: bn_exit_cycle.jnl
  Cached data cleared from memory
-*** Running test: bn_curv_mod.jnl
+*** Running ferret script: bn_curv_mod.jnl
  Cached data cleared from memory
-*** Running test: bn_shade_keycont.jnl
+*** Running ferret script: bn_shade_keycont.jnl
  Cached data cleared from memory
-*** Running test: bn581_bug_fixes.jnl
+*** Running ferret script: bn581_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1908,19 +1959,16 @@ DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_tab_comma_multivar.jnl
+*** Running ferret script: bn_tab_comma_multivar.jnl
  Cached data cleared from memory
-*** Running test: bn_element_functions.jnl
+*** Running ferret script: bn_element_functions.jnl
  Cached data cleared from memory
-*** Running test: bn_long_revision_num.jnl
+*** Running ferret script: bn_long_revision_num.jnl
  Cached data cleared from memory
  LISTing to file revision.nc
-*** Running test: bn_window_title.jnl
+*** Running ferret script: bn_window_title.jnl
  Cached data cleared from memory
-*** Running test: bn_last_error.jnl
-
-Bailing out of external function "ffta":
-	 Time axis must be a regular axis
+*** Running ferret script: bn_last_error.jnl
  Cached data cleared from memory
  **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
@@ -1938,20 +1986,23 @@ set data nofile.nc
 repeat/name=a (say `a`)
  **ERROR: command syntax: L is a pseudo-variable; cannot use with REPEAT/RANGE/NAME. Instead use REPEAT/L=
 repeat/range=1:3/name=L (use coads_climatology; list/nohead [sst=I=1,j=1])
+
+Bailing out of external function "ffta":
+	 Time axis must be a regular axis
  **ERROR: error in external function
 LOAD vw_fft
-*** Running test: bn_deg_min.jnl
+*** Running ferret script: bn_deg_min.jnl
  Cached data cleared from memory
-*** Running test: bn_dp_readscale.jnl
+*** Running ferret script: bn_dp_readscale.jnl
  Cached data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_bounds_defineax.jnl
+*** Running ferret script: bn_bounds_defineax.jnl
  Cached data cleared from memory
 Replacing definition of axis TAX
  LISTing to file irrxzt.nc
 Replacing definition of axis ZAX
 Replacing definition of axis ZAX2
-*** Running test: bn_attributes.jnl
+*** Running ferret script: bn_attributes.jnl
  Cached data cleared from memory
  **ERROR: invalid command: SHOW ATTRIBUTE given with no argument
 sho att/all
@@ -2106,11 +2157,11 @@ Replacing definition of axis TIME
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_transforms.jnl
+*** Running ferret script: bn_transforms.jnl
  Cached data cleared from memory
-*** Running test: bn_variance.jnl
+*** Running ferret script: bn_variance.jnl
  Cached data cleared from memory
-*** Running test: bn_linecolors.jnl
+*** Running ferret script: bn_linecolors.jnl
  Cached data cleared from memory
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
@@ -2119,22 +2170,19 @@ Replacing definition of axis TIME
  Using every   3th vector in the X direction
  Using every   4th vector in the Y direction
            *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
-*** Running test: bn_cdf_errmsg.jnl
-Cannot create cookie file
-Cannot create cookie file
-syntax error, unexpected WORD_STRING, expecting WORD_WORD
-context: Error { code = 404; message = "data/PMEL/COADS/coads_nothing.cdf"^;};
-Cannot create cookie file
-CURL Error: Couldn't resolve host name
-curl error details: 
+*** Running ferret script: bn_cdf_errmsg.jnl
  Cached data cleared from memory
  **TMAP ERR: non-existent or not on line
              this_is_not_a_file.nc
 SET DAT/FORM=CDF this_is_not_a_file.nc
+syntax error, unexpected WORD_STRING, expecting WORD_WORD
+context: Error { code = 404; message = "data/PMEL/COADS/coads_nothing.cdf"^;};
  **Internet Data error
              NetCDF: file not found (OPeNDAP/netCDF Error code -90)
              Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
 SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
+CURL Error: Couldn't resolve host name
+curl error details: 
  **Internet Data error
              NetCDF: I/O failure (OPeNDAP/netCDF Error code -68)
              Data set: http://noserver/a/nofile.cdf
@@ -2144,7 +2192,7 @@ SET DAT/FORM=CDF  "http://noserver/a/nofile.cdf"
              NetCDF: Unknown file format (OPeNDAP/netCDF Error code -51)
              Data set: ./asc.nc
 SET DAT/FORM=CDF asc.nc
-*** Running test: bn600_bug_fixes.jnl
+*** Running ferret script: bn600_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2208,7 +2256,7 @@ Replacing definition of axis XAX
  TEMPORARY data cleared from memory
  Cached data cleared from memory
  Cached data cleared from memory
-*** Running test: bn601_bug_fixes.jnl
+*** Running ferret script: bn601_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2259,7 +2307,7 @@ Replacing definition of axis TIME
  LISTing to file out.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_set_strides.jnl
+*** Running ferret script: bn_set_strides.jnl
  Cached data cleared from memory
  **ERROR: invalid command: it is a child axis already
 set axis/stride=2/offset=1 (AX005)
@@ -2274,11 +2322,11 @@ cancel axis/stride COADSX
            *** NOTE: Stride value not an integer factor of axis length: Axis loses modulo property
  **ERROR: invalid command: unknown axis: NORMAL
 set axis/stride=2 NORMAL
-*** Running test: bn_lsl_lowpass.jnl
+*** Running ferret script: bn_lsl_lowpass.jnl
  Cached data cleared from memory
-*** Running test: bn_return_xmod_tmod.jnl
+*** Running ferret script: bn_return_xmod_tmod.jnl
  Cached data cleared from memory
-*** Running test: bn602_bug_fixes.jnl
+*** Running ferret script: bn602_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2296,9 +2344,9 @@ set axis/stride=2 NORMAL
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_modnbd.jnl
+*** Running ferret script: bn_modnbd.jnl
  Cached data cleared from memory
-*** Running test: bn_fifty_files.jnl
+*** Running ferret script: bn_fifty_files.jnl
  Cached data cleared from memory
            *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
            *** NOTE: Axis has repeated values -- micro-adjusting TIME
@@ -2325,7 +2373,7 @@ set axis/stride=2 NORMAL
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
-*** Running test: bn603_bug_fixes.jnl
+*** Running ferret script: bn603_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2333,24 +2381,26 @@ set axis/stride=2 NORMAL
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_set_var_name.jnl
+*** Running ferret script: bn_set_var_name.jnl
  Cached data cleared from memory
-*** Running test: bn_memory_symbol.jnl
+*** Running ferret script: bn_memory_symbol.jnl
  Cached data cleared from memory
  Cached data cleared from memory
  Cached data cleared from memory
  Cached data cleared from memory
  Cached data cleared from memory
-*** Running test: bn605_bug_fixes.jnl
+*** Running ferret script: bn605_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn608_bug_fixes.jnl
+*** Running ferret script: bn608_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
@@ -2360,24 +2410,22 @@ set axis/stride=2 NORMAL
  TEMPORARY data cleared from memory
  **ERROR: invalid command: "300": Number of contour levels must be between 1 and 250
 SHADE/LEV=300/I=1:100/J=1:100 i+j
-*** Running test: bn_shade_trim.jnl
+*** Running ferret script: bn_shade_trim.jnl
  Cached data cleared from memory
-*** Running test: bn_mode_nlevels.jnl
+*** Running ferret script: bn_mode_nlevels.jnl
  Cached data cleared from memory
-*** Running test: bn61_bug_fixes.jnl
+*** Running ferret script: bn61_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_test_opendap.jnl
-Cannot create cookie file
-Cannot create cookie file
+*** Running ferret script: bn_test_opendap.jnl
+ Cached data cleared from memory
 CURL Error: Couldn't resolve host name
 curl error details: 
- Cached data cleared from memory
-*** Running test: bn611_bug_fixes.jnl
+*** Running ferret script: bn611_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2420,14 +2468,14 @@ Replacing definition of axis TIME
  LISTing to file a.nc
  LISTing to file b.nc
  LISTing to file b.nc
-*** Running test: bn_no_valid_on_plot.jnl
+*** Running ferret script: bn_no_valid_on_plot.jnl
  Cached data cleared from memory
  Using every   5th vector in the X direction
-*** Running test: bn_median.jnl
+*** Running ferret script: bn_median.jnl
  Cached data cleared from memory
  **ERROR: value out of legal range: Median smoother length must be odd
 plot/trans var, var[z=@med:4]
-*** Running test: bn614_bug_fixes.jnl
+*** Running ferret script: bn614_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2493,11 +2541,11 @@ LIST a_regrid[D=1,GT=b[D=2]@MOD]
  TEMPORARY data cleared from memory
  LISTing to file a.nc
  LISTing to file b.nc
-*** Running test: bn_mode_nodata_lab.jnl
+*** Running ferret script: bn_mode_nodata_lab.jnl
  Cached data cleared from memory
-*** Running test: bn_proleptic_gregorian_calendar.jnl
+*** Running ferret script: bn_proleptic_gregorian_calendar.jnl
  Cached data cleared from memory
-*** Running test: bn_string_ngd_nbd.jnl
+*** Running ferret script: bn_string_ngd_nbd.jnl
  Cached data cleared from memory
            *** NOTE: @NGD of string variable, counting null strings as missing
            *** NOTE: @NBD of string variable, counting null strings as missing
@@ -2520,21 +2568,21 @@ Replacing definition of axis TAX
            *** NOTE: @NGD of string variable, counting null strings as missing
            *** NOTE: @NBD of string variable, counting null strings as missing
            *** NOTE: @NGD of string variable, counting null strings as missing
-*** Running test: bn_cat_string.jnl
+*** Running ferret script: bn_cat_string.jnl
  Cached data cleared from memory
-*** Running test: bn_sort_strings.jnl
+*** Running ferret script: bn_sort_strings.jnl
  Cached data cleared from memory
-*** Running test: bn_samplexyt.jnl
+*** Running ferret script: bn_samplexyt.jnl
  Cached data cleared from memory
            *** NOTE: /XLIMITS and /YLIMITS are deprecated.
            *** NOTE: Use /HLIMITS and /VLIMITS instead.
-*** Running test: bn_last_go_file.jnl
+*** Running ferret script: bn_last_go_file.jnl
  Cached data cleared from memory
-*** Running test: bn_cancel_upcase_uservar.jnl
+*** Running ferret script: bn_cancel_upcase_uservar.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_cdf_keepax.jnl
+*** Running ferret script: bn_cdf_keepax.jnl
  Cached data cleared from memory
  LISTing to file test0a.cdf
  LISTing to file test0b.cdf
@@ -2730,32 +2778,32 @@ list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
  **ERROR: variable unknown or not in data set: IJKL
 show grid ijkl
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
-*** Running test: bn_keep_axisnames.jnl
+*** Running ferret script: bn_keep_axisnames.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_key_label_minmax.jnl
+*** Running ferret script: bn_key_label_minmax.jnl
  Cached data cleared from memory
-*** Running test: bn62_bug_fixes.jnl
+*** Running ferret script: bn62_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_convolve.jnl
+*** Running ferret script: bn_convolve.jnl
  Cached data cleared from memory
-*** Running test: bn_tax_tstep.jnl
+*** Running ferret script: bn_tax_tstep.jnl
  Cached data cleared from memory
  LISTing to file a.nc
 Replacing definition of axis TSEC
-*** Running test: bn_grads_z.jnl
+*** Running ferret script: bn_grads_z.jnl
  Cached data cleared from memory
 Replacing definition of axis CAXIS
            *** NOTE: grid GMY1 used by data set grads_bug_file
            *** NOTE: Redefinition may alter apparent contents of data set
-*** Running test: bn_clock_syms.jnl
+*** Running ferret script: bn_clock_syms.jnl
  Cached data cleared from memory
-*** Running test: bn63_bug_fixes.jnl
+*** Running ferret script: bn63_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2814,13 +2862,13 @@ SET AXIS/STRIDE=12/OFFSET=-1 truemonth
 SET AXIS/STRIDE=-1/OFFSET=1 truemonth
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_axis_reversed_syms.jnl
+*** Running ferret script: bn_axis_reversed_syms.jnl
  Cached data cleared from memory
-*** Running test: bn_isdepth.jnl
+*** Running ferret script: bn_isdepth.jnl
  Cached data cleared from memory
-*** Running test: bn_var_hist_levels.jnl
+*** Running ferret script: bn_var_hist_levels.jnl
  Cached data cleared from memory
-*** Running test: bn64_bug_fixes.jnl
+*** Running ferret script: bn64_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2828,7 +2876,7 @@ SET AXIS/STRIDE=-1/OFFSET=1 truemonth
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_long_grid_names.jnl
+*** Running ferret script: bn_long_grid_names.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2839,10 +2887,10 @@ Replacing definition of grid GG123456789012345678902
 load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_xml_repl.jnl
+*** Running ferret script: bn_xml_repl.jnl
  Cached data cleared from memory
-           *** NOTE: Changing the value of attribute sst.history
-*** Running test: bn65_bug_fixes.jnl
+ LISTing to file a.nc
+*** Running ferret script: bn65_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2870,12 +2918,12 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis TAX
-*** Running test: bn_txtype_dmy.jnl
+*** Running ferret script: bn_txtype_dmy.jnl
  Cached data cleared from memory
-*** Running test: bn_n_open_dsets_sym.jnl
+*** Running ferret script: bn_n_open_dsets_sym.jnl
  Cached data cleared from memory
  LISTing to file list_of_numbers.dat
-*** Running test: bn_multi_decade.jnl
+*** Running ferret script: bn_multi_decade.jnl
  Cached data cleared from memory
 Re-defining viewport V1
 Re-defining viewport V2
@@ -2885,14 +2933,15 @@ Re-defining viewport V5
 Re-defining viewport V6
 Re-defining viewport V7
 Re-defining viewport V8
-*** Running test: bn_show_xml_file.jnl
+*** Running ferret script: bn_show_xml_file.jnl
  Cached data cleared from memory
+ LISTing to file b.nc
  LISTing to file dummy.dat
-*** Running test: bn66_bug_fixes.jnl
+*** Running ferret script: bn66_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_netcdf4.jnl
+*** Running ferret script: bn_netcdf4.jnl
  Cached data cleared from memory
  Restoring default chunk cache settings
  Restoring default chunk cache settings
@@ -2922,19 +2971,19 @@ Re-defining viewport V8
  **TMAP ERR: syntax error in string
              If ChunkSize is set for any dimension of var, must set for all its dimensions
 LIST/FORMAT=CDF/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchunk=1  sst
- LISTing to file nc4_deflate4bigchunk.nc
+ LISTing to file nc4_deflate4chunktoobig.nc
  **TMAP ERR: error specifying chunk sizes
              TChunkSize 0 is larger than dimension length 3
-LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
-*** Running test: bn_scat2grid_bin.jnl
+LIST/FORMAT=CDF/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
+*** Running ferret script: bn_scat2grid_bin.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_axis_dir_symbols.jnl
+*** Running ferret script: bn_axis_dir_symbols.jnl
  Cached data cleared from memory
-*** Running test: bn663_bug_fixes.jnl
+*** Running ferret script: bn663_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2942,14 +2991,14 @@ LIST/FORMAT=CDF/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_set_axis_regular.jnl
+*** Running ferret script: bn_set_axis_regular.jnl
  Cached data cleared from memory
            *** NOTE: Axis reset to be regular (evenly-spaced): MYX
            *** NOTE: Axis is already regular: MYX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
            *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
-*** Running test: bn_set_cancel_redirect.jnl
+*** Running ferret script: bn_set_cancel_redirect.jnl
  Cached data cleared from memory
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
@@ -3004,17 +3053,17 @@ show grid garbage
      e.g.   yes? GO filename
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
-*** Running test: bn_min_max_smoothers.jnl
+*** Running ferret script: bn_min_max_smoothers.jnl
  Cached data cleared from memory
-*** Running test: bn_vector_symbols.jnl
+*** Running ferret script: bn_vector_symbols.jnl
  Cached data cleared from memory
  Using every   8th vector in the X direction
  Using every   7th vector in the Y direction
-*** Running test: bn_variance_large.jnl
+*** Running ferret script: bn_variance_large.jnl
  Cached data cleared from memory
-*** Running test: bn_labnum_calendar.jnl
+*** Running ferret script: bn_labnum_calendar.jnl
  Cached data cleared from memory
-*** Running test: bn665_bug_fixes.jnl
+*** Running ferret script: bn665_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3022,11 +3071,13 @@ show grid garbage
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_floatstr.jnl
+*** Running ferret script: bn_floatstr.jnl
  Cached data cleared from memory
-*** Running test: bn67_bug_fixes.jnl
+*** Running ferret script: bn67_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3044,7 +3095,7 @@ Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
-set mode desperate   9999999999.000000
+set mode desperate 1.E+10
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
 set mode desperate 1234567890123456789
  PERMANENT data cleared from memory
@@ -3065,20 +3116,20 @@ Replacing definition of axis YAX_DUP_AXNAMES
  TEMPORARY data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_NaN_note.jnl
+*** Running ferret script: bn_NaN_note.jnl
  Cached data cleared from memory
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
            *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
-*** Running test: bn671_bug_fixes.jnl
-
-Bailing out of external function "tax_year":
-	 Function not valid for modulo time axis
+*** Running ferret script: bn671_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+
+Bailing out of external function "tax_year":
+	 Function not valid for modulo time axis
  **ERROR: error in external function
 list/L=15:20 tax_year(t[gt=tvar],tvar)
  PERMANENT data cleared from memory
@@ -3097,7 +3148,7 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn68_bug_fixes.jnl
+*** Running ferret script: bn68_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3151,7 +3202,7 @@ DEFINE VARIABLE ELSE = 5
  TEMPORARY data cleared from memory
  LISTing to file a1.nc
  LISTing to file a2.nc
-*** Running test: bn_ifv.jnl
+*** Running ferret script: bn_ifv.jnl
  Cached data cleared from memory
  **ERROR: command syntax: IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
@@ -3160,7 +3211,7 @@ LIST/ORDER=X  IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
           ELSE before - is illegal
           negative constants need to be enclosed in parentheses
 DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
-*** Running test: bn_randu2_randn2.jnl
+*** Running ferret script: bn_randu2_randn2.jnl
  Cached data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
@@ -3168,7 +3219,7 @@ DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_axis_cf.jnl
+*** Running ferret script: bn_axis_cf.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
@@ -3178,37 +3229,37 @@ DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_repeated_coords.jnl
+*** Running ferret script: bn_repeated_coords.jnl
  Cached data cleared from memory
            *** NOTE: Axis has repeated values -- micro-adjusting TMIN
            *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis has repeated values -- micro-adjusting ...
-*** Running test: bn_xml_header.jnl
+*** Running ferret script: bn_xml_header.jnl
+ Cached data cleared from memory
+*** Running ferret script: bn_eof_simple.jnl
  Cached data cleared from memory
-*** Running test: bn_eof_simple.jnl
+Replacing definition of axis XAXIS
 
 Bailing out of external function "eofsvd_stat":
 	There are no spatial locations having complete time series.
+ **ERROR: error in external function
+list eofsvd_stat(spacegap)
 
 Bailing out of external function "eofsvd_space":
 	There are no spatial locations having complete time series.
+ **ERROR: error in external function
+list eofsvd_space(spacegap)
 
 Bailing out of external function "eofsvd_tfunc":
 	There are no spatial locations having complete time series.
- Cached data cleared from memory
-Replacing definition of axis XAXIS
- **ERROR: error in external function
-list eofsvd_stat(spacegap)
- **ERROR: error in external function
-list eofsvd_space(spacegap)
  **ERROR: error in external function
 list eofsvd_tfunc(spacegap)
-*** Running test: bn_eof_simple2.jnl
+*** Running ferret script: bn_eof_simple2.jnl
  Cached data cleared from memory
-*** Running test: bn_interpolate_6d.jnl
+*** Running ferret script: bn_interpolate_6d.jnl
  Cached data cleared from memory
-*** Running test: bn_regrid_6d.jnl
+*** Running ferret script: bn_regrid_6d.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3217,9 +3268,9 @@ Replacing definition of axis XCOARSE
 Replacing definition of axis YFINE
 Replacing definition of axis YCOARSE
 Replacing definition of grid G24
-*** Running test: bn_syntax_6d.jnl
+*** Running ferret script: bn_syntax_6d.jnl
  Cached data cleared from memory
-*** Running test: bn_expressions_6d.jnl
+*** Running ferret script: bn_expressions_6d.jnl
  Cached data cleared from memory
  **ERROR: command syntax: IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
@@ -3230,61 +3281,52 @@ LIST/order=e  IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
 DEFINE VARIABLE A = IF _m LT 5 THEN _m ELSE -9
  **ERROR: variable unknown or not in data set: A1
 load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
-*** Running test: bn_direction_fcns_6d.jnl
+*** Running ferret script: bn_direction_fcns_6d.jnl
  Cached data cleared from memory
-*** Running test: bn_regrid_transforms_6d.jnl
+*** Running ferret script: bn_regrid_transforms_6d.jnl
  Cached data cleared from memory
 Replacing definition of axis FAX4DAY
-*** Running test: bn_aggregate_e.jnl
- Cached data cleared from memory
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
- **ERROR: unknown data set: dset 3 unknown or is already an aggregate dataset
-define data/agg windy = 1,2,3
-           *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: UWND
-           *** NOTE: Exclude variable from aggregate. Grid differs in member datasets: VWND
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
+*** Running ferret script: bn_aggregate_e.jnl
+ Cached data cleared from memory
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+ **ERROR: unknown data set: dset 3
+DEFINE DATA/AGGREGAT/E windy = 1,2,3
+           *** NOTE: Variable "UWND" excluded from aggregate: T axis differs among members
+           *** NOTE: Variable "VWND" excluded from aggregate: T axis differs among members
+           *** NOTE: Variable "SPEH" excluded from aggregate: Not found in all member datasets
  **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
-define data/agg windy = 1,2
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: SPEH
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: UIN
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: VIN
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: AIRT
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets:
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 5
-           *** NOTE: Cancel aggregate dataset. Un-hiding hidden member datasets
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 6
-           *** NOTE: Dataset 2 was a member of an ensemble. Canceling ensemble, dataset 7
-*** Running test: bn_6d_lab_mode.jnl
+DEFINE DATA/AGGREGAT/E windy = 1,2
+           *** NOTE: Variable "SPEH" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "UIN" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "VIN" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, my_ens
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, fourfiles
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, some
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, more
+*** Running ferret script: bn_6d_lab_mode.jnl
  Cached data cleared from memory
-*** Running test: bn682_bug_fixes.jnl
+*** Running ferret script: bn682_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn683_bug_fixes.jnl
+*** Running ferret script: bn683_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
-           *** NOTE: /home/users/ksmith/PyFerret/go/magnify.jnl
+           *** NOTE: /home/flat/ksmith/PyFerret/go/magnify.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **netCDF error
-             NetCDF: Unknown file format (OPeNDAP/netCDF Error code -51)
-             Data set: ./.
-SET DAT/FORM=CDF ./z1.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3295,7 +3337,7 @@ SET DAT/FORM=CDF ./z1.nc
  TEMPORARY data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_outtype.jnl
+*** Running ferret script: bn_outtype.jnl
  Cached data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3311,11 +3353,11 @@ SET DAT/FORM=CDF ./z1.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
-*** Running test: bn_ribbon_plot.jnl
+*** Running ferret script: bn_ribbon_plot.jnl
  Cached data cleared from memory
-*** Running test: bn_descr_4digit.jnl
+*** Running ferret script: bn_descr_4digit.jnl
  Cached data cleared from memory
-*** Running test: bn_axis_outtype.jnl
+*** Running ferret script: bn_axis_outtype.jnl
  Cached data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3333,16 +3375,16 @@ NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
  failure writing to CDF output file
 LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
  LISTing to file mytype.nc
-*** Running test: bn_axis_nonmonotonic.jnl
+*** Running ferret script: bn_axis_nonmonotonic.jnl
  Cached data cleared from memory
  **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index 12
 define axis/t/units=days tax = tvar
-*** Running test: bn_vec_mod.jnl
+*** Running ferret script: bn_vec_mod.jnl
  Cached data cleared from memory
  Using every   9th vector in the X direction
  Using every   9th vector in the X direction
  Using every   9th vector in the X direction
-*** Running test: bn685_bug_fixes.jnl
+*** Running ferret script: bn685_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3431,12 +3473,12 @@ Replacing definition of axis AXI_COARSE
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_dsg_e_x.jnl
+*** Running ferret script: bn_dsg_e_x.jnl
  Cached data cleared from memory
-*** Running test: bn_nco_append.jnl
+*** Running ferret script: bn_nco_append.jnl
  Cached data cleared from memory
  LISTing to file append_to_this.nc
-*** Running test: bn_nobounds.jnl
+*** Running ferret script: bn_nobounds.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
@@ -3445,12 +3487,12 @@ Replacing definition of axis AXI_COARSE
            *** NOTE: Using the LOWER bound specified for each axis cell
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_write_integer_att.jnl
+*** Running ferret script: bn_write_integer_att.jnl
  Cached data cleared from memory
  LISTing to file a.nc
-*** Running test: bn_descriptor_mc.jnl
+*** Running ferret script: bn_descriptor_mc.jnl
  Cached data cleared from memory
-*** Running test: bn_plot_color_only.jnl
+*** Running ferret script: bn_plot_color_only.jnl
  Cached data cleared from memory
            *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
            *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
@@ -3460,11 +3502,11 @@ plot/i=1:100/over/COLOR 0.6*sin(i/7)
  **ERROR: command syntax: COLOR
           /COLOR not valid for PLOT/LEVELS ribbon plot
 plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
-*** Running test: bn_vtree.jnl
+*** Running ferret script: bn_vtree.jnl
  Cached data cleared from memory
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+           *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3477,7 +3519,7 @@ list e
           Are you giving explicit limits when SET REGION would suffice ?
 list f
 Replacing definition of axis ZAX
-*** Running test: bn686_bug_fixes.jnl
+*** Running ferret script: bn686_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3489,6 +3531,7 @@ Replacing definition of axis ZAX
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+           *** NOTE: Changing the type of attribute a.ival
            *** NOTE: Changing the value of attribute a.ival
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3514,15 +3557,15 @@ SET DAT/FORM=CDF snoopy.dat
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_long_symnames.jnl
+*** Running ferret script: bn_long_symnames.jnl
  Cached data cleared from memory
-*** Running test: bn_strdim.jnl
+*** Running ferret script: bn_strdim.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
-*** Running test: bn_single_colorlev.jnl
+*** Running ferret script: bn_single_colorlev.jnl
  Cached data cleared from memory
-*** Running test: bn69_bug_fixes.jnl
+*** Running ferret script: bn69_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3568,16 +3611,16 @@ set var/name=temp salt
 set var/name=psi myvar
  **ERROR: invalid command: illegal new name.  Variable diff already defined
 set var/name=diff w
-*** Running test: bn_bad_axis_bounds.jnl
+*** Running ferret script: bn_bad_axis_bounds.jnl
  Cached data cleared from memory
            *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
            *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
            *** NOTE: Substituting coordinate midpoints
-*** Running test: bn_enter_exit_GO.jnl
+*** Running ferret script: bn_enter_exit_GO.jnl
  Cached data cleared from memory
-*** Running test: bn_stddev.jnl
+*** Running ferret script: bn_stddev.jnl
  Cached data cleared from memory
-*** Running test: bn_set_axis_name.jnl
+*** Running ferret script: bn_set_axis_name.jnl
  Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
@@ -3591,7 +3634,64 @@ set axis/name x_in_meters
 set axis/name=45 x_in_meters
  **ERROR: invalid command: illegal new name given for axis .fr
 set axis/name=.fr x_in_meters
-*** Running test: bn691_bug_fixes.jnl
+*** Running ferret script: bn_let_remote.jnl
+ Cached data cleared from memory
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "time_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "depth_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lat_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lon_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "time_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "depth_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lat_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lon_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "time_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "depth_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lat_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+           *** NOTE: netCDF bounds variable definition error
+           *** NOTE: Bounds definition "lon_bnds" points to no existing axis
+           *** NOTE: Ignoring BOUNDS attribute
+ **ERROR: command syntax: /REMOTE variable expression may not contain [d=
+DEFINE VARIABLE/D=1/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+ **ERROR: command syntax: /REMOTE variable definition must also specify /D=
+DEFINE VARIABLE/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+syntax error, unexpected WORD_STRING, expecting WORD_WORD
+context: Error { code = 500; message = "Error processing XML header file /usr/local/src/nvods/tomcat/content/las/conf/server/temp/6790FDCBF64A0E6EFAA6A20D854071E0/header.xml (No such file or directory)"^;};
+ **netCDF error
+             Unable to open URL with REMOTE variable definitions:
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+ **TMAP ERR: attribute reading error
+             Unable to get varid for LET/REMOTE variable: NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+ **TMAP ERR: attribute reading error
+             Unable to get bad-value for LET/REMOTE variable: NetCDF: Attribute not found (OPeNDAP/netCDF Error code -43)
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+ **netCDF error
+             NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
+             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+list/x=300/y=15 avar
+*** Running ferret script: bn691_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3644,12 +3744,12 @@ list {5*3+1, 2+3}
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XAXIS
- **ERROR: request exceeds memory setting: 2369 Mwords were requested.
+ **ERROR: request exceeds memory setting: 4739 Mwords were requested.
 load bigvar
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis LONGTIME
- **ERROR: request exceeds memory setting: 4735 Mwords were requested.
+ **ERROR: request exceeds memory setting: 9472 Mwords were requested.
 load bigvar
            *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
            *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
@@ -3701,24 +3801,24 @@ shade a
 list substring("hello",1,-2)
  **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
 list substring("hello",1,-3)
-*** Running test: bn_append_dsg.jnl
+*** Running ferret script: bn_append_dsg.jnl
  Cached data cleared from memory
 rm: cannot remove `test_save_dsg.nc': No such file or directory
-*** Running test: bn_global_atts.jnl
+*** Running ferret script: bn_global_atts.jnl
  Cached data cleared from memory
  LISTing to file anew_global.nc
-*** Running test: bn_conventions_history.jnl
+*** Running ferret script: bn_conventions_history.jnl
  Cached data cleared from memory
  LISTing to file conventions_history.nc
-*** Running test: bn_center_key_labels.jnl
+*** Running ferret script: bn_center_key_labels.jnl
  Cached data cleared from memory
-*** Running test: bn_wgt_transform.jnl
+*** Running ferret script: bn_wgt_transform.jnl
  Cached data cleared from memory
-*** Running test: bn_show_outfile.jnl
+*** Running ferret script: bn_show_outfile.jnl
  Cached data cleared from memory
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
-           *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+           *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
  **ERROR: unknown defining grid: G=NOEXIST
 list b
  **ERROR: command syntax: 45S
@@ -3730,17 +3830,17 @@ list e
  **ERROR: illegal limits: X axis limits don't match variable def'n: A
           Are you giving explicit limits when SET REGION would suffice ?
 list f
-*** Running test: bn_date1900_array.jnl
+*** Running ferret script: bn_date1900_array.jnl
  Cached data cleared from memory
-*** Running test: bn_spawn_size.jnl
+*** Running ferret script: bn_spawn_size.jnl
  Cached data cleared from memory
-*** Running test: bn_polygon_log.jnl
+*** Running ferret script: bn_polygon_log.jnl
  Cached data cleared from memory
  **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.850
 poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
  **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
 poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
-*** Running test: bn694_bug_fixes.jnl
+*** Running ferret script: bn694_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3810,8 +3910,6 @@ frame/format=hdf/file=a.hdf
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Could not compute Std Dev. Data too large or or not within 3 std of computed mean.
-           *** NOTE: Using linear levels instead.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -3830,26 +3928,26 @@ frame/format=hdf/file=a.hdf
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_permute_ascii.jnl
+*** Running ferret script: bn_permute_ascii.jnl
  Cached data cleared from memory
 Replacing definition of grid GRID3D
-*** Running test: bn_lon_lat_time_string.jnl
+*** Running ferret script: bn_lon_lat_time_string.jnl
  Cached data cleared from memory
-*** Running test: bn_save_justdim.jnl
+*** Running ferret script: bn_save_justdim.jnl
  Cached data cleared from memory
  LISTing to file a.nc
            *** NOTE: Saving E or F axis with time axis uses /RIGID in time
  LISTing to file a.nc
-*** Running test: bn_time2d.jnl
+*** Running ferret script: bn_time2d.jnl
  Cached data cleared from memory
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-*** Running test: bn_legend_labels.jnl
+*** Running ferret script: bn_legend_labels.jnl
  Cached data cleared from memory
-*** Running test: bn_DQ.jnl
+*** Running ferret script: bn_DQ.jnl
  Cached data cleared from memory
            *** NOTE: Changing the value of attribute foobar.some_text
            *** NOTE: Changing the value of attribute foobar.some_text
-*** Running test: bn695_bug_fixes.jnl
+*** Running ferret script: bn695_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3858,21 +3956,21 @@ Replacing definition of grid GRID3D
 rm: cannot remove `WestCoastCarbon_9d9c_f562_77b5_5.nc': No such file or directory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_f_tax_fcns.jnl
+*** Running ferret script: bn_f_tax_fcns.jnl
  Cached data cleared from memory
  LISTing to file a.nc
 Replacing definition of axis FSEC
            *** NOTE: grid GSI1 used by data set a
            *** NOTE: Redefinition may alter apparent contents of data set
-*** Running test: bn_fmrc.jnl
+*** Running ferret script: bn_fmrc.jnl
  Cached data cleared from memory
-*** Running test: bn_return_defined.jnl
+*** Running ferret script: bn_return_defined.jnl
  Cached data cleared from memory
-*** Running test: bn_can_var_noerr.jnl
+*** Running ferret script: bn_can_var_noerr.jnl
  Cached data cleared from memory
  **ERROR: variable unknown or not in data set: B
 cancel var b,a
-*** Running test: bn_annotate.jnl
+*** Running ferret script: bn_annotate.jnl
  Cached data cleared from memory
  **ERROR: command syntax: xpos=a2
 annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
@@ -3906,7 +4004,7 @@ def anno/nou/ypos=0 "My Lab"
 def anno/nou/xpos=0/hal=1/val=0 "My Lab"
  **ERROR: invalid command: Specify only one of /USER /NOUSER /NORM
 def anno/nou/user/xpos=0/ypos=0 "My Lab"
-*** Running test: bn_auxiliary.jnl
+*** Running ferret script: bn_auxiliary.jnl
  Cached data cleared from memory
 rm: cannot remove `layerz_test_data.txt': No such file or directory
  LISTing to file layerz_test_data.txt
@@ -3916,7 +4014,7 @@ SET VAR/layerz=depth noexist
  **ERROR: invalid command: auxiliary variable DEPTH6D has a T axis not found on variable TEMP
 LIST/PREC=7 tempz6d_unmatch
 Replacing definition of axis ZAX
-*** Running test: bn_plot_ribbon_gaploc.jnl
+*** Running ferret script: bn_plot_ribbon_gaploc.jnl
  Cached data cleared from memory
  **ERROR: command syntax: PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments
 plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
@@ -3924,11 +4022,11 @@ plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
 plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
  **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
 plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
-*** Running test: bn_time_short_axes.jnl
+*** Running ferret script: bn_time_short_axes.jnl
  Cached data cleared from memory
-*** Running test: bn_floatstr_extended.jnl
+*** Running ferret script: bn_floatstr_extended.jnl
  Cached data cleared from memory
-*** Running test: bn696_bug_fixes
+*** Running ferret script: bn696_bug_fixes.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3942,7 +4040,9 @@ SHOW DATA noexist
 SHOW DATA 2
  **ERROR: unknown data set: noexist
 SHOW DATA/ATT noexist
-*** Running test: bn_bin_regrid
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+*** Running ferret script: bn_bin_regrid.jnl
  Cached data cleared from memory
 Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
@@ -3954,7 +4054,607 @@ Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
 Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
-*** Running test: bn_all_ef.jnl
+*** Running ferret script: bn697_bug_fixes.jnl
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **TMAP ERR: error in axis attributes
+             Calendar definitions on T and F axes must match
+             Data file: ./ft_cal_one.nc
+SET DAT/FORM=CDF ft_cal_mixed.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file myfile.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ Cached data cleared from memory
+ **ERROR: request exceeds memory setting: 13 Mwords were requested.
+load/l=1:5 bigvar
+           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ Cached data cleared from memory
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX2
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ Using every   4th vector in the Y direction
+ Using every   4th vector in the Y direction
+ Using every   4th vector in the Y direction
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis F_AX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis T_AXIS
+Replacing definition of axis F_AXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAXIS
+ LISTing to file a.nc
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+           *** NOTE: Changing the type of attribute sst.newch
+           *** NOTE: Changing the value of attribute sst.newch
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+*** Running ferret script: bn_aggregate_t.jnl
+ Cached data cleared from memory
+ LISTing to file tmp/tagg_reg_1.nc
+ LISTing to file tmp/tagg_reg_2.nc
+ LISTing to file tmp/tagg_reg_3.nc
+ LISTing to file tmp/tagg_reg_4.nc
+ LISTing to file tmp/tagg_reg_5.nc
+ LISTing to file tmp/tagg_reg_6.nc
+ LISTing to file tmp/tagg_reg_7.nc
+ LISTing to file tmp/tagg_reg_8.nc
+ LISTing to file tmp/tagg_reg_9.nc
+ LISTing to file tmp/tagg_reg_10.nc
+ LISTing to file tmp/tagg_reg_1_duplicate.nc
+ LISTing to file tmp/tagg_reg_no_T.nc
+ LISTing to file tmp/tagg_reg_2_overlarge.nc
+           *** NOTE: Not deleted: TDAY
+           *** NOTE: Axis is in use by grid (G001)
+ LISTing to file tmp/tagg_irreg_1.nc
+ LISTing to file tmp/tagg_irreg_2.nc
+ LISTing to file tmp/tagg_irreg_3.nc
+ LISTing to file tmp/tagg_irreg_4.nc
+ LISTing to file tmp/tagg_irreg_5.nc
+ LISTing to file tmp/tagg_irreg_6.nc
+ LISTing to file tmp/tagg_irreg_7.nc
+ LISTing to file tmp/tagg_irreg_8.nc
+ LISTing to file tmp/tagg_irreg_9.nc
+ LISTing to file tmp/tagg_irreg_10.nc
+Replacing definition of axis TDAY_IR
+ LISTing to file tmp/tagg_irreg_2_reg.nc
+           *** NOTE: Not deleted: TDAY_IR
+           *** NOTE: Axis is in use by grid (G001)
+ LISTing to file tmp/tagg_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_2.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_3.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_4.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_T0varying_5.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_2.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_3.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_4.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_5.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_6.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_7.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_8.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_9.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_10.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_1.nc
+Replacing definition of axis TDAY_TVAR
+ LISTing to file tmp/tagg_disjoint_T0varying_3.nc
+ LISTing to file tmp/tagg_disjoint_T0varying_4_wrong.nc
+           *** NOTE: Not deleted: TDAY_WRONG
+           *** NOTE: Axis is in use by grid (G001)
+ LISTing to file tmp/tagg_single_1.nc
+ LISTing to file tmp/tagg_single_2.nc
+ LISTing to file tmp/tagg_single_3.nc
+ LISTing to file tmp/tagg_single_4.nc
+ LISTing to file tmp/tagg_single_5.nc
+ LISTing to file tmp/tagg_single_6.nc
+           *** NOTE: Not deleted: tday
+           *** NOTE: Axis is in use by grid (G001)
+ **ERROR: invalid command: given aggregation dataset name already in use: myagg2
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc, tmp/tagg_reg_2.nc
+ **TMAP ERR: non-existent or not on line
+             tmp/tagg_no_exist.nc
+define data/agg/t myaggbad = tmp/tagg_no_exist.nc, tmp/tagg_reg_2.nc
+ **TMAP ERR: non-existent or not on line
+             tmp/tagg_no_exist.nc
+define data/agg/t myaggbad = tmp/tagg_reg_1.nc, tmp/tagg_no_exist.nc
+ **ERROR: improper grid or axis definition: first file of aggregation has no time axis tmp/tagg_reg_no_T.nc
+DEFINE DATA/AGGREGAT/T myTindepagg = tmp/tagg_reg_no_T.nc
+ **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_reg_3.nc
+define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
+ **TMAP ERR: Unknown variable code
+             in file tmp/tagg_disjoint_T0varying_4_wrong.nc time axis variable is missing: TDAY_TVAR
+define data/agg/t myagg5_bad = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4_wrong.nc,tmp/tagg_disjoint_T0varying_5.nc
+ **ERROR: unknown command: garbage
+garbage command syntax
+ **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_single_1.nc
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+ **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_single_5.nc
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc, tmp/tagg_single_5.nc
+*** Running ferret script: bn_unquoted_args.jnl
+ Cached data cleared from memory
+ LISTing to file tmp/test1.nc
+ LISTing to file tmp/test2.nc
+ LISTing to file tmp/test3.nc
+ **ERROR: unknown command qualifier: erroneous
+set data/erroneous tmp/test1.nc
+ **ERROR: unknown command qualifier: erroneous
+set data /erroneous tmp/test1.nc
+ **TMAP ERR: non-existent or not on line
+             /erroneous(.nc ,.cdf,.nc)
+set data /erroneous, tmp/test1.nc
+ **ERROR: unknown command qualifier: garbage
+go/garbage tmp/testMe
+ **ERROR: unknown command qualifier: garbage
+go/garbage "tmp/testMe"
+ **ERROR: unknown command qualifier: garbage
+go/garbage /home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl
+ **ERROR: unknown command qualifier: garbage
+go/garbage "/home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl"
+*** Running ferret script: bn_long_lists.jnl
+ Cached data cleared from memory
+ **ERROR: command syntax: command line too long -- exceeds 2048
+DEFINE VARIABLE a={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7 [...]
+ **ERROR: variable unknown or not in data set: A
+load a
+ **ERROR: command syntax: command line too long -- exceeds 2048
+"/arch
+ **ERROR: command syntax: "/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf...
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0022.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0023.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr [...]
+*** Running ferret script: bn_show_uvar_grid.jnl
+ Cached data cleared from memory
+*** Running ferret script: bn_aggregate_f.jnl
+ Cached data cleared from memory
+ LISTing to file tmp/fcst_1.nc
+ LISTing to file tmp/fcst_2.nc
+ LISTing to file tmp/fcst_3.nc
+ LISTing to file tmp/fcst_4.nc
+ LISTing to file tmp/fcst_5.nc
+ LISTing to file tmp/fcst_6.nc
+ LISTing to file tmp/fcst_7.nc
+ LISTing to file tmp/fcst_8.nc
+ LISTing to file tmp/fcst_9.nc
+ LISTing to file tmp/fcst_10.nc
+ LISTing to file tmp/fcst_11.nc
+ LISTing to file tmp/long_fcst_1.nc
+ LISTing to file tmp/long_fcst_6.nc
+ LISTing to file tmp/one_var_fcst_1.nc
+ LISTing to file tmp/one_var_fcst_6.nc
+ LISTing to file tmp/consecutive_month_fcst.nc
+Replacing definition of axis TRUEMONTH
+ LISTing to file tmp/irregular_start_time_fcst.nc
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, bn_aggregate_f.jnl
+           *** NOTE: Dataset used in aggregation.  Canceling aggregation, my_fmrc
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Ambiguous coordinates on T axis: FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC_LETD_1]
+ **ERROR: error defining aggregate dataset: some files have duplicate forecast start times
+DEFINE DATA/AGGREGAT/F my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc,tmp/fcst_2.nc,tmp/fcst_3.nc
+ **TMAP ERR: non-existent or not on line
+             tmp/no_exist.nc
+DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/no_exist.nc")
+ **ERROR: error defining aggregate dataset: forecast start times are irregular or too gappy
+DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/consecutive_month_fcst.nc")
+ **ERROR: error defining aggregate dataset: forecast start times are irregular or too gappy
+DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/irregular_start_time_fcst.nc")
+*** Running ferret script: bn_aggregate_tef.jnl
+ Cached data cleared from memory
+ LISTing to file tmp/f01_e1_t1.nc
+ LISTing to file tmp/f01_e1_t2.nc
+ LISTing to file tmp/f01_e1_t3.nc
+ LISTing to file tmp/f01_e2_t1.nc
+ LISTing to file tmp/f01_e2_t2.nc
+ LISTing to file tmp/f01_e2_t3.nc
+ LISTing to file tmp/f01_e3_t1.nc
+ LISTing to file tmp/f01_e3_t2.nc
+ LISTing to file tmp/f01_e3_t3.nc
+ LISTing to file tmp/f01_e4_t1.nc
+ LISTing to file tmp/f01_e4_t2.nc
+ LISTing to file tmp/f01_e4_t3.nc
+ LISTing to file tmp/f01_e5_t1.nc
+ LISTing to file tmp/f01_e5_t2.nc
+ LISTing to file tmp/f01_e5_t3.nc
+ LISTing to file tmp/f02_e1_t1.nc
+ LISTing to file tmp/f02_e1_t2.nc
+ LISTing to file tmp/f02_e1_t3.nc
+ LISTing to file tmp/f02_e2_t1.nc
+ LISTing to file tmp/f02_e2_t2.nc
+ LISTing to file tmp/f02_e2_t3.nc
+ LISTing to file tmp/f02_e3_t1.nc
+ LISTing to file tmp/f02_e3_t2.nc
+ LISTing to file tmp/f02_e3_t3.nc
+ LISTing to file tmp/f02_e4_t1.nc
+ LISTing to file tmp/f02_e4_t2.nc
+ LISTing to file tmp/f02_e4_t3.nc
+ LISTing to file tmp/f02_e5_t1.nc
+ LISTing to file tmp/f02_e5_t2.nc
+ LISTing to file tmp/f02_e5_t3.nc
+ LISTing to file tmp/f03_e1_t1.nc
+ LISTing to file tmp/f03_e1_t2.nc
+ LISTing to file tmp/f03_e1_t3.nc
+ LISTing to file tmp/f03_e2_t1.nc
+ LISTing to file tmp/f03_e2_t2.nc
+ LISTing to file tmp/f03_e2_t3.nc
+ LISTing to file tmp/f03_e3_t1.nc
+ LISTing to file tmp/f03_e3_t2.nc
+ LISTing to file tmp/f03_e3_t3.nc
+ LISTing to file tmp/f03_e4_t1.nc
+ LISTing to file tmp/f03_e4_t2.nc
+ LISTing to file tmp/f03_e4_t3.nc
+ LISTing to file tmp/f03_e5_t1.nc
+ LISTing to file tmp/f03_e5_t2.nc
+ LISTing to file tmp/f03_e5_t3.nc
+ LISTing to file tmp/f04_e1_t1.nc
+ LISTing to file tmp/f04_e1_t2.nc
+ LISTing to file tmp/f04_e1_t3.nc
+ LISTing to file tmp/f04_e2_t1.nc
+ LISTing to file tmp/f04_e2_t2.nc
+ LISTing to file tmp/f04_e2_t3.nc
+ LISTing to file tmp/f04_e3_t1.nc
+ LISTing to file tmp/f04_e3_t2.nc
+ LISTing to file tmp/f04_e3_t3.nc
+ LISTing to file tmp/f04_e4_t1.nc
+ LISTing to file tmp/f04_e4_t2.nc
+ LISTing to file tmp/f04_e4_t3.nc
+ LISTing to file tmp/f04_e5_t1.nc
+ LISTing to file tmp/f04_e5_t2.nc
+ LISTing to file tmp/f04_e5_t3.nc
+ LISTing to file tmp/f05_e1_t1.nc
+ LISTing to file tmp/f05_e1_t2.nc
+ LISTing to file tmp/f05_e1_t3.nc
+ LISTing to file tmp/f05_e2_t1.nc
+ LISTing to file tmp/f05_e2_t2.nc
+ LISTing to file tmp/f05_e2_t3.nc
+ LISTing to file tmp/f05_e3_t1.nc
+ LISTing to file tmp/f05_e3_t2.nc
+ LISTing to file tmp/f05_e3_t3.nc
+ LISTing to file tmp/f05_e4_t1.nc
+ LISTing to file tmp/f05_e4_t2.nc
+ LISTing to file tmp/f05_e4_t3.nc
+ LISTing to file tmp/f05_e5_t1.nc
+ LISTing to file tmp/f05_e5_t2.nc
+ LISTing to file tmp/f05_e5_t3.nc
+ LISTing to file tmp/f06_e1_t1.nc
+ LISTing to file tmp/f06_e1_t2.nc
+ LISTing to file tmp/f06_e1_t3.nc
+ LISTing to file tmp/f06_e2_t1.nc
+ LISTing to file tmp/f06_e2_t2.nc
+ LISTing to file tmp/f06_e2_t3.nc
+ LISTing to file tmp/f06_e3_t1.nc
+ LISTing to file tmp/f06_e3_t2.nc
+ LISTing to file tmp/f06_e3_t3.nc
+ LISTing to file tmp/f06_e4_t1.nc
+ LISTing to file tmp/f06_e4_t2.nc
+ LISTing to file tmp/f06_e4_t3.nc
+ LISTing to file tmp/f06_e5_t1.nc
+ LISTing to file tmp/f06_e5_t2.nc
+ LISTing to file tmp/f06_e5_t3.nc
+ LISTing to file tmp/f07_e1_t1.nc
+ LISTing to file tmp/f07_e1_t2.nc
+ LISTing to file tmp/f07_e1_t3.nc
+ LISTing to file tmp/f07_e2_t1.nc
+ LISTing to file tmp/f07_e2_t2.nc
+ LISTing to file tmp/f07_e2_t3.nc
+ LISTing to file tmp/f07_e3_t1.nc
+ LISTing to file tmp/f07_e3_t2.nc
+ LISTing to file tmp/f07_e3_t3.nc
+ LISTing to file tmp/f07_e4_t1.nc
+ LISTing to file tmp/f07_e4_t2.nc
+ LISTing to file tmp/f07_e4_t3.nc
+ LISTing to file tmp/f07_e5_t1.nc
+ LISTing to file tmp/f07_e5_t2.nc
+ LISTing to file tmp/f07_e5_t3.nc
+ LISTing to file tmp/f08_e1_t1.nc
+ LISTing to file tmp/f08_e1_t2.nc
+ LISTing to file tmp/f08_e1_t3.nc
+ LISTing to file tmp/f08_e2_t1.nc
+ LISTing to file tmp/f08_e2_t2.nc
+ LISTing to file tmp/f08_e2_t3.nc
+ LISTing to file tmp/f08_e3_t1.nc
+ LISTing to file tmp/f08_e3_t2.nc
+ LISTing to file tmp/f08_e3_t3.nc
+ LISTing to file tmp/f08_e4_t1.nc
+ LISTing to file tmp/f08_e4_t2.nc
+ LISTing to file tmp/f08_e4_t3.nc
+ LISTing to file tmp/f08_e5_t1.nc
+ LISTing to file tmp/f08_e5_t2.nc
+ LISTing to file tmp/f08_e5_t3.nc
+ LISTing to file tmp/f09_e1_t1.nc
+ LISTing to file tmp/f09_e1_t2.nc
+ LISTing to file tmp/f09_e1_t3.nc
+ LISTing to file tmp/f09_e2_t1.nc
+ LISTing to file tmp/f09_e2_t2.nc
+ LISTing to file tmp/f09_e2_t3.nc
+ LISTing to file tmp/f09_e3_t1.nc
+ LISTing to file tmp/f09_e3_t2.nc
+ LISTing to file tmp/f09_e3_t3.nc
+ LISTing to file tmp/f09_e4_t1.nc
+ LISTing to file tmp/f09_e4_t2.nc
+ LISTing to file tmp/f09_e4_t3.nc
+ LISTing to file tmp/f09_e5_t1.nc
+ LISTing to file tmp/f09_e5_t2.nc
+ LISTing to file tmp/f09_e5_t3.nc
+ LISTing to file tmp/f10_e1_t1.nc
+ LISTing to file tmp/f10_e1_t2.nc
+ LISTing to file tmp/f10_e1_t3.nc
+ LISTing to file tmp/f10_e2_t1.nc
+ LISTing to file tmp/f10_e2_t2.nc
+ LISTing to file tmp/f10_e2_t3.nc
+ LISTing to file tmp/f10_e3_t1.nc
+ LISTing to file tmp/f10_e3_t2.nc
+ LISTing to file tmp/f10_e3_t3.nc
+ LISTing to file tmp/f10_e4_t1.nc
+ LISTing to file tmp/f10_e4_t2.nc
+ LISTing to file tmp/f10_e4_t3.nc
+ LISTing to file tmp/f10_e5_t1.nc
+ LISTing to file tmp/f10_e5_t2.nc
+ LISTing to file tmp/f10_e5_t3.nc
+ LISTing to file tmp/f11_e1_t1.nc
+ LISTing to file tmp/f11_e1_t2.nc
+ LISTing to file tmp/f11_e1_t3.nc
+ LISTing to file tmp/f11_e2_t1.nc
+ LISTing to file tmp/f11_e2_t2.nc
+ LISTing to file tmp/f11_e2_t3.nc
+ LISTing to file tmp/f11_e3_t1.nc
+ LISTing to file tmp/f11_e3_t2.nc
+ LISTing to file tmp/f11_e3_t3.nc
+ LISTing to file tmp/f11_e4_t1.nc
+ LISTing to file tmp/f11_e4_t2.nc
+ LISTing to file tmp/f11_e4_t3.nc
+ LISTing to file tmp/f11_e5_t1.nc
+ LISTing to file tmp/f11_e5_t2.nc
+ LISTing to file tmp/f11_e5_t3.nc
+ LISTing to file tmp/f04_e3_t1_1v.nc
+ LISTing to file tmp/f04_e3_t2_1v.nc
+ LISTing to file tmp/f04_e3_t3_1v.nc
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+ **ERROR: error defining aggregate dataset: grid definition of FCST_2 has changed on axis X of agg member 3
+list/x=150E/y=15n/L=10 fcst_2
+ **ERROR: error defining aggregate dataset: grid definition of FCST_2 has changed on axis T of agg member 3
+list/x=150E/y=15n/L=10 fcst_2
+ **ERROR: error defining aggregate dataset: grid definition of FCST_2 has changed on axis X of agg member 3
+list/x=150E/y=15n/L=10 fcst_2
+           *** NOTE: Variable "FCST" excluded from aggregate: E axis differs among members
+           *** NOTE: Variable "FCST_2" excluded from aggregate: E axis differs among members
+ **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
+DEFINE DATA/AGGREGAT/F tef_short = te_f01, te_f02_short, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+           *** NOTE: Variable "FCST" excluded from aggregate: F axis differs among members
+           *** NOTE: Variable "TF_TIMES" excluded from aggregate: F axis differs among members
+           *** NOTE: Variable "FCST_2" excluded from aggregate: F axis differs among members
+ **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
+DEFINE DATA/AGGREGAT/E tfe_short = tf_e1, tf_e2_short, tf_e3, tf_e4, tf_e5
+           *** NOTE: Variable "FCST" excluded from aggregate: Already has E axis
+           *** NOTE: Variable "FCST_2" excluded from aggregate: Already has E axis
+           *** NOTE: Variable "REALIZATION" excluded from aggregate: Already has E axis
+ **ERROR: error defining aggregate dataset: No valid datasets or datasets share no variables.
+DEFINE DATA/AGGREGAT/E bad_ens = te_f01, te_f03, te_f04
+ **ERROR: error defining aggregate dataset: some files have duplicate forecast start times
+DEFINE DATA/AGGREGAT/F bad_fmrc = tf_e1, tf_e3, tf_e4
+*** Running ferret script: bn_dataset_qualifier.jnl
+ Cached data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+*** Running ferret script: bn_speedtest.jnl
+ Cached data cleared from memory
+*** Running ferret script: bn_show_noupcase.jnl
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+SHO VAR/XML
+SHO VAR/XML
+*** Running ferret script: bn_letd_attributes.jnl
+ Cached data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
+*** Running ferret script: bn_list_clim_axes.jnl
+ Cached data cleared from memory
+*** Running ferret script: bn_climatology_attr.jnl
+ Cached data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
+Replacing definition of axis TAX
+ LISTing to file a.nc
+ LISTing to file a.nc
+Replacing definition of axis TAX
+ LISTing to file a.nc
+*** Running ferret script: bn_plot_along.jnl
+ Cached data cleared from memory
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+*** Running ferret script: bn_show_commands.jnl
+ Cached data cleared from memory
+*** Running ferret script: bn_plot_decimate.jnl
+ Cached data cleared from memory
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+           *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
+           *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
+*** Running ferret script: bn_auto_tprec.jnl
+ Cached data cleared from memory
+Replacing definition of axis TAX
+Replacing definition of axis TAX
+Replacing definition of axis TAX
+*** Running ferret script: bn_coordvars_atts.jnl
+ Cached data cleared from memory
+*** Running ferret script: bn_gif.jnl
+ Cached data cleared from memory
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
+plot/i=1:10/j=1:20/nolabel i+j
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i,i+j"
+plot/i=1:10/j=1:20/nolabel i,i+j
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j,i"
+plot/i=1:10/j=1:20/nolabel i+j,i
+ **ERROR: dimensions improperly specified: differing axes:
+          first line is on Y axis
+          line 2 is on X axis
+plot/i=1:10/j=1:20/nolabel j,i
+ **ERROR: dimensions improperly specified: unequal line lengths:
+          First expression has 20 points.
+          Expression 2 has 10 points:
+          "plot/i=1:10/j=1:20/vs/line/nolabel j,i"
+plot/i=1:10/j=1:20/vs/line/nolabel j,i
+ **ERROR: dimensions improperly specified: must be a 2D region
+          contour/i=1:10/j=1:20/nolabel i
+contour/i=1:10/j=1:20/nolabel i
+ **ERROR: invalid command: can only CONTOUR  single fields
+          Use /OVERLAY for multiple variables
+contour/i=1:10/j=1:20/nolabel i/j,j/i
+ **ERROR: invalid command: VECTOR requires paired components
+vector/i=1:10/j=1:20/nolabel i/j
+ **ERROR: invalid command: VECTOR requires paired components
+vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
+Re-defining viewport LM6
+Re-defining viewport UM6
+ Using every   2th vector in the X direction
+ Using every   2th vector in the Y direction
+Re-defining viewport LM6
+ Using every   2th vector in the X direction
+ Using every   2th vector in the Y direction
+ Using every   2th vector in the X direction
+ Using every   2th vector in the Y direction
+Re-defining viewport UM6
+ Using every   2th vector in the X direction
+ Using every   2th vector in the Y direction
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Re-defining viewport UL6
+Re-defining viewport UM6
+Re-defining viewport UR6
+Re-defining viewport LL6
+Re-defining viewport LR6
+Replacing definition of axis TDAYS
+ Using every   4th vector in the X direction
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+*** Running ferret script: bn_ps.jnl
+ Cached data cleared from memory
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
+plot/i=1:10/j=1:20/nolabel i+j
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i,i+j"
+plot/i=1:10/j=1:20/nolabel i,i+j
+ **ERROR: dimensions improperly specified: specified data is not a line
+           - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j,i"
+plot/i=1:10/j=1:20/nolabel i+j,i
+ **ERROR: dimensions improperly specified: differing axes:
+          first line is on Y axis
+          line 2 is on X axis
+plot/i=1:10/j=1:20/nolabel j,i
+ **ERROR: dimensions improperly specified: unequal line lengths:
+          First expression has 20 points.
+          Expression 2 has 10 points:
+          "plot/i=1:10/j=1:20/vs/line/nolabel j,i"
+plot/i=1:10/j=1:20/vs/line/nolabel j,i
+ **ERROR: dimensions improperly specified: must be a 2D region
+          contour/i=1:10/j=1:20/nolabel i
+contour/i=1:10/j=1:20/nolabel i
+ **ERROR: invalid command: can only CONTOUR  single fields
+          Use /OVERLAY for multiple variables
+contour/i=1:10/j=1:20/nolabel i/j,j/i
+ **ERROR: invalid command: VECTOR requires paired components
+vector/i=1:10/j=1:20/nolabel i/j
+ **ERROR: invalid command: VECTOR requires paired components
+vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
+Re-defining viewport LM6
+Re-defining viewport UM6
+*** Running ferret script: bn_all_ef.jnl
  Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -3971,10 +4671,49 @@ LOAD/TEMPORARY vflag
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-*** Running test: bn_startupfile.jnl
+*** Running ferret script: bn_startupfile.jnl
  Cached data cleared from memory
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
-*** Running test: bn_outline_poly.jnl
+*** Running ferret script: bn_outline_poly.jnl
+ Cached data cleared from memory
+*** Running ferret script: bn_contourcolor.jnl
+ Cached data cleared from memory
+*** Running python script: testgetstrdata.py
+ Cached data cleared from memory
+>>> ... ... >>> 
+*** Running python script: testferregion.py
+ Cached data cleared from memory
+>>> ... ... >>> >>> 
+*** Running python script: testferdset.py
+ Cached data cleared from memory
+>>> ... ... >>> 
+*** Running python script: testfervar.py
+ Cached data cleared from memory
+>>> ... ... >>> Traceback (most recent call last):
+  File "<stdin>", line 1, in <module>
+  File "/home/flat/ksmith/PyFerret/lib/python2.6/site-packages/pyferret/ferdset.py", line 240, in __delattr__
+    self.__delitem__(name)
+  File "/home/flat/ksmith/PyFerret/lib/python2.6/site-packages/pyferret/ferdset.py", line 175, in __delitem__
+    value._removefromferret()
+  File "/home/flat/ksmith/PyFerret/lib/python2.6/site-packages/pyferret/fervar.py", line 882, in _removefromferret
+    raise NotImplementedError('%s is a file variable; close the dataset to remove' % fername)
+NotImplementedError: SST[d=coads_climatology.cdf] is a file variable; close the dataset to remove
+
+*** Running python script: testferaggdset.py
+ Cached data cleared from memory
+>>> ... ... >>>            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+
+*** Running python script: testferaxis.py
+ Cached data cleared from memory
+>>> ... ... >>> >>> 
+*** Running python script: testfergrid.py
+ Cached data cleared from memory
+>>> ... ... >>> >>> 
+*** Running python script: testferpyvar.py
+ Cached data cleared from memory
+>>> ... ... >>> 
+*** Running python script: testfermethods.py
  Cached data cleared from memory
-Ended at Thu Nov 19 12:07:03 PST 2015
+>>> ... ... >>> 
+Ended at Fri Jun 17 15:19:14 PDT 2016
diff --git a/bench/test_results/pyferret_run_tests_log b/bench/test_results/pyferret_run_tests_log
index 612e4ca..a879531 100644
--- a/bench/test_results/pyferret_run_tests_log
+++ b/bench/test_results/pyferret_run_tests_log
@@ -1,8 +1,23 @@
-Using FERRET /home/users/ksmith/PyFerret/bin/pyferret
--rwxr-xr-x. 1 ksmith tmap 1188 Nov 19 12:01 /home/users/ksmith/PyFerret/bin/pyferret
-Using external functions from /home/users/ksmith/PyFerret/ext_func/pylibs
+Using FERRET /home/flat/ksmith/PyFerret/bin/pyferret
+-rwxr-xr-x. 1 ksmith oerdnewp 1387 Jun 17 15:17 /home/flat/ksmith/PyFerret/bin/pyferret
+Using external functions from /home/flat/ksmith/PyFerret/ext_func/pylibs
 Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for debug PyFerret on RHEL6-64
+Note: RUN_TESTS.sh test results for PyFerret
+****** Restricting Ferret paths to bench directory ******
+FER_DAT=.
+FER_DATA=.
+FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/flat/ksmith/Datasets
+FER_DESCR=.
+FER_DIR=.
+FER_DSETS=.
+FER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/PyFerret/ext_func/libs
+FER_FONTS=/home/flat/ksmith/PyFerret/ppl/fonts
+FER_GO=. /home/flat/ksmith/PyFerret/go /home/flat/ksmith/PyFerret/examples /home/flat/ksmith/PyFerret/contrib
+FER_GRIDS=.
+FER_LIBS=/home/flat/ksmith/PyFerret/lib
+FER_PALETTE=. /home/flat/ksmith/PyFerret/ppl
+FER_WEB_BROWSER=firefox
+PYFER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/PyFerret/ext_func/pylibs
 Benchmark scripts that will be run:
    bn_syntax.jnl
    bn_dollar.jnl
@@ -216,6 +231,7 @@ Benchmark scripts that will be run:
    bn_enter_exit_GO.jnl
    bn_stddev.jnl
    bn_set_axis_name.jnl
+   bn_let_remote.jnl
    bn691_bug_fixes.jnl
    bn_append_dsg.jnl
    bn_global_atts.jnl
@@ -243,28 +259,43 @@ Benchmark scripts that will be run:
    bn_plot_ribbon_gaploc.jnl
    bn_time_short_axes.jnl
    bn_floatstr_extended.jnl
-   bn696_bug_fixes
-   bn_bin_regrid
+   bn696_bug_fixes.jnl
+   bn_bin_regrid.jnl
+   bn697_bug_fixes.jnl
+   bn_aggregate_t.jnl
+   bn_unquoted_args.jnl
+   bn_long_lists.jnl
+   bn_show_uvar_grid.jnl
+   bn_aggregate_f.jnl
+   bn_aggregate_tef.jnl
+   bn_dataset_qualifier.jnl
+   bn_speedtest.jnl
+   bn_show_noupcase.jnl
+   bn_letd_attributes.jnl
+   bn_list_clim_axes.jnl
+   bn_climatology_attr.jnl
+   bn_plot_along.jnl
+   bn_show_commands.jnl
+   bn_plot_decimate.jnl
+   bn_auto_tprec.jnl
+   bn_coordvars_atts.jnl
+   bn_gif.jnl
+   bn_ps.jnl
    bn_all_ef.jnl
    bn_startupfile.jnl
    bn_outline_poly.jnl
-****** Restricting Ferret paths to bench directory ******
-FER_DAT=.
-FER_DATA=.
-FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/ksmith/Datasets
-FER_DESCR=.
-FER_DIR=.
-FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ksmith/PyFerret/ext_func/libs
-FER_FONTS=/home/users/ksmith/PyFerret/ppl/fonts
-FER_GO=. /home/users/ksmith/PyFerret/go /home/users/ksmith/PyFerret/examples /home/users/ksmith/PyFerret/contrib
-FER_GRIDS=.
-FER_LIBS=/home/users/ksmith/PyFerret/lib
-FER_PALETTE=. /home/users/ksmith/PyFerret/ppl
-FER_WEB_BROWSER=firefox
-PYFER_EXTERNAL_FUNCTIONS=/home/users/ksmith/PyFerret/ext_func/pylibs
-Beginning at Thu Nov 19 12:03:16 PST 2015
-*** Running test: bn_syntax.jnl
+   bn_contourcolor.jnl
+   testgetstrdata.py
+   testferregion.py
+   testferdset.py
+   testfervar.py
+   testferaggdset.py
+   testferaxis.py
+   testfergrid.py
+   testferpyvar.py
+   testfermethods.py
+Beginning at Fri Jun 17 15:17:18 PDT 2016
+*** Running ferret script: bn_syntax.jnl
 [?1034h! bn401_syntax.JNL
 ! - test syntax interpretation of Program FERRET
 ! - major changes for FERRET ver 2.00 5/90
@@ -276,6 +307,9 @@ Beginning at Thu Nov 19 12:03:16 PST 2015
 ! for V4.20 added blanks surrounding colons
 !	and tests of "escapes" using back slashes
 ! for V531 test continuation lines and long input lines
+! for v698 interpretation of unknown qualifiers changed -- e.g. say /notaqual
+! V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables,
+! pre-defined axes and grids.
  
 ! SET - SHOW - CANCEL DATA
 USE gtbc011
@@ -569,7 +603,7 @@ SHOW MODES
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -604,7 +638,7 @@ SHOW MODES
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -639,7 +673,7 @@ SHOW MODES
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -783,8 +817,8 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid XABSTRACT
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -808,11 +842,11 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid PS3DT2
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
 SET GRID/SAVE
@@ -821,20 +855,20 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid PS3DT2
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
 SHOW GRID/X=180:165W SALT
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
  
@@ -861,83 +895,6 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  
 ! SHOW VARIABLES
-SHOW VARIABLES/DIAGNOSTIC	! alphabetical list
-Diagnostic variables:
-name         title
-AIR       AIR TEMPERATURE
-CAIR      CLIMATOLOGICAL AIR TEMPERATURE
-CMSK      CONVECTIVE ADJUSTMENT MASK
-DENS      (DENSITY-1)*1000
-DPDX      d/dX( BAROCLINIC PRESSURE )
-DPDY      d/dY( BAROCLINIC PRESSURE )
-DTDT      d/dt(TEMPERATURE)
-DUDT      d/dt(U)
-DVDT      d/dt(V)
-DWDT      d/dt(W)
-FUW       ZONAL ADVECTIVE COEFFICIENT, FUW
-FVN       MERIDIONAL ADVECTIVE COEFFICIENT, FVN
-PCDZ      VERTICAL MOMENTUM DIFFUSION COEFFICIENT
-QAD       TOTAL HEAT ADVECTION
-QADX      ZONAL HEAT ADVECTION
-QADY      MERIDIONAL HEAT ADVECTION
-QADZ      VERTICAL HEAT ADVECTION
-QCDZ      VERTICAL HEAT DIFFUSION COEFFICIENT
-QDF       TOTAL HEAT DIFFUSION
-QDFH      HORIZONTAL HEAT DIFFUSION
-QDFZ      VERTICAL HEAT DIFFUSION
-QEVA      EVAPORATIVE HEAT
-QFLX      SURFACE HEAT FLUX
-QRAD      RADIATIVE HEAT
-QSEN      SENSIBLE HEAT
-RHO       NORMALIZED DENSITY
-RHO0      DENSITY REFERENCED TO SURFACE
-SALI      SALINITY
-TAU       MAGNITUDE OF WIND STRESS
-UAD       TOTAL ADVECTION OF U
-UADX      ZONAL ADVECTION OF U
-UADY      MERIDIONAL ADVECTION OF U
-UADZ      VERTICAL ADVECTION OF U
-UAVZ      VERTICALLY AVERAGED ZONAL VELOCITY
-UBP       U DUE TO TOTAL PRESSURE
-UBPI      U DUE TO BAROCLINIC PRESSURE EFFECTS
-UBPS      U DUE TO SURFACE PRESSURE EFFECTS
-UBWI      U DUE TO WIND STRESS EFFECTS
-UCOE      U DUE TO EXPLICIT CORIOLIS CALCULATION
-UCOI      U DUE TO IMPLICIT CORIOLIS CORRECTION
-UDF       TOTAL DIFFUSION OF U
-UDFH      HORIZONTAL DIFFUSION OF U
-UDFZ      VERTICAL DIFFUSION OF U
-VAD       TOTAL ADVECTION OF V
-VADX      ZONAL ADVECTION OF V
-VADY      MERIDIONAL ADVECTION OF V
-VADZ      VERTICAL ADVECTION OF V
-VAVZ      VERTICALLY AVERAGED MERIDIONAL VELOCITY
-VBP       V DUE TO TOTAL PRESSURE
-VBPI      V DUE TO BAROCLINIC PRESSURE EFFECTS
-VBPS      V DUE TO SURFACE PRESSURE EFFECTS
-VBWI      V DUE TO WIND STRESS EFFECTS
-VCOE      V DUE TO EXPLICIT CORIOLIS CALCULATION
-VCOI      V DUE TO IMPLICIT CORIOLIS CORRECTION
-VDF       TOTAL DIFFUSION OF V
-VDFH      HORIZONTAL DIFFUSION OF V
-VDFZ      VERTICAL DIFFUSION OF V
-W_T       VERTICAL VELOCITY COMPUTED ON TS GRID
-W_U       VERTICAL VELOCITY COMPUTED ON UV GRID
-SHOW VARIABLES/DIAGNOSTIC  Q
-Diagnostic variables:
-name         title
-QAD       TOTAL HEAT ADVECTION
-QADX      ZONAL HEAT ADVECTION
-QADY      MERIDIONAL HEAT ADVECTION
-QADZ      VERTICAL HEAT ADVECTION
-QCDZ      VERTICAL HEAT DIFFUSION COEFFICIENT
-QDF       TOTAL HEAT DIFFUSION
-QDFH      HORIZONTAL HEAT DIFFUSION
-QDFZ      VERTICAL HEAT DIFFUSION
-QEVA      EVAPORATIVE HEAT
-QFLX      SURFACE HEAT FLUX
-QRAD      RADIATIVE HEAT
-QSEN      SENSIBLE HEAT
 LET A=i
 SHOW VARIABLES
  Created by DEFINE VARIABLE:
@@ -1187,10 +1144,14 @@ list/nohead/i=1 : 3 i
 ! test escapes using back slashes (bn420 - 11/95)
 ! (moved to bn420_grave)
  
-say \/help	! "/" should pass through
-/help
+say \/notaqualifier	! "/" should pass through
+/notaqualifier
+! starting 12/2015 a space preceding a unrecognized qualifier turns that
+! qualifier into an argument
+say /notaqualifier
+/notaqualifier
 set mode ignore
-say /help
+say/notaqualifier
 canc mode ignore
  
 say this\;that	! ";" should pass through
@@ -1276,7 +1237,7 @@ F1111111112222222222333333333344444444445555555555666666666677777777778888888888
 J111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000
 *** A111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000B111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000C111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000D111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000E111111111222222222233333333334444444444555555555566666666667777777777888888888899999999 [...]
  
-*** Running test: bn_dollar.jnl
+*** Running ferret script: bn_dollar.jnl
 [?1034h! test this with GO journal hello
  
 ! V510: 3/00 *sh* added tests of backslash escapes and surrounding quotations
@@ -1445,7 +1406,7 @@ set mode ignore
   say ($100)        ! argument number too large
   say ($10)0      ! argument 10 not defined
 set mode/last ignore
-*** Running test: bn_grave.jnl
+*** Running ferret script: bn_grave.jnl
 [?1034h! bn420_grave
 ! benchmark to test evaluation of grave accent-enclosed expressions
 ! requires FERRET version 4.00 or later
@@ -1768,7 +1729,7 @@ say `sst,return=Xsize`
 say `sst,return=trash`
 set mode/last ignore_errors
  
-*** Running test: bn_letd.jnl
+*** Running ferret script: bn_letd.jnl
 [?1034h! bn420_letd.jnl
 ! 9/1/95
  
@@ -2042,7 +2003,7 @@ list q[d=v12file]
  2   / 2:   3.00   4.00   5.00   6.00   7.00   8.00   9.00  10.00
  3   / 3:   4.00   5.00   6.00   7.00   8.00   9.00  10.00  11.00
  
-*** Running test: bn_if.jnl
+*** Running ferret script: bn_if.jnl
 [?1034h! bn430_if
 ! 5/6/96
 ! 5/22/96 - added nested multi-line IF with nesting in REJECTED clause
@@ -2134,7 +2095,7 @@ SAY ">>> --> DELIBERATE WARNING: UNCLOSED IF <<<"
 IF yes THEN
   say ---->... now inside of IF clause
 ---->... now inside of IF clause
-*** Running test: bn_expressions.jnl
+*** Running ferret script: bn_expressions.jnl
 [?1034h! bn450_expressions.JNL
 ! test all manner of expressions
 ! V450 - commented out MODE POLISH test -- mode was eliminated
@@ -2662,7 +2623,7 @@ LIST/L=5:7 TBOXLO, TBOXHI
 5   / 5:  4.500  5.500
 6   / 6:  5.500  6.500
 7   / 7:  6.500  7.500
-*** Running test: bn_geometry.jnl
+*** Running ferret script: bn_geometry.jnl
 [?1034h! bn200_geometry.JNL
 ! benchmark various geometries for accessing FERRET data
 ! similar tests are performed on:
@@ -3955,7 +3916,7 @@ LIST X[I=1:5] - X[I=6:9]
 SET MODE/LAST IGNORE_ERRORS
  
  
-*** Running test: bn_output.jnl
+*** Running ferret script: bn_output.jnl
 [?1034h! bn200_output.JNL
 ! - test various output methods in FERRET
 ! rev 0.0  4/27/90 *sh*
@@ -6940,7 +6901,7 @@ SET MODE IGNORE
 LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
 SET MODE/LAST IGNORE
 CANCEL LIST
-*** Running test: bn_in_plane.jnl
+*** Running ferret script: bn_in_plane.jnl
 [?1034h! bn200_in_plane.JNL
 ! benchmark various geometries with in-plane transformation applied (@SBX)
 ! this benchmark is layered on the compress benchmark to obtain the geometries
@@ -7454,7 +7415,7 @@ LIST/ORDER=T v[t=@sbx,i=@ave,j=@ave,k=@ave]
            1982   1982   1982  
             2      3      4
          -2.855 -1.567 -0.836
-*** Running test: bn_compress.jnl
+*** Running ferret script: bn_compress.jnl
 [?1034h! bn200_compress.JNL
 ! benchmark various geometries obtained by compressing FERRET data with @AVE
 ! similar tests are performed on:
@@ -7960,7 +7921,7 @@ LIST/ORDER=X v[i=@ave,j=@ave,k=@ave,l=@ave]
 ! ****
 ! remove call to bn200_compress.sub_qady for portable benchmarks *kob* 5/99
 ! ****
-*** Running test: bn_interpolate.jnl
+*** Running ferret script: bn_interpolate.jnl
 [?1034h! bn200_interpolate.JNL
 ! benchmark interpolation along various axes
  
@@ -8355,7 +8316,7 @@ LIST v[@xpt, at ypt, at zpt, at tpt]
              Z        : 1.005 (interpolated)
              T        : 1.0005 (interpolated)
           1113.00
-*** Running test: bn_regrid.jnl
+*** Running ferret script: bn_regrid.jnl
 [?1034h! bn200_regrid.JNL
 ! test regridding
 ! first test consists of regridding and re-regridding back and comparing
@@ -9736,7 +9697,7 @@ list a24[g=g48]-a48
  03-JAN-1980 00 / 2: -438312.
  05-JAN-1980 00 / 3: -438312.
  07-JAN-1980 00 / 4: -438312.
-*** Running test: bn_ez.jnl
+*** Running ferret script: bn_ez.jnl
 [?1034h! bn401_ez.JNL
 ! test all manner of accessing non-TMAP data files
 ! V401 modified from bn200_ez.jnl by the addition of a test of UNF reading
@@ -10145,7 +10106,7 @@ list my_var
  8    /  8:   8.00
  9    /  9:   9.00
  10   / 10:  10.00
-*** Running test: bn_plot.jnl
+*** Running ferret script: bn_plot.jnl
 [?1034h! bn450_plot.JNL - updated 9/97 from bn320_plot.jnl
 ! upgraded from bn320 to provide method for testing batch mode.  Also remove
 ! all labels to create "master" gif and ps files to compare against
@@ -10343,7 +10304,7 @@ set view lr
 polygon/thick/color=red/palette=blue {1,2,1}, {2,1,0.5}
  
 set mode/last logo
-*** Running test: bn_curv.jnl
+*** Running ferret script: bn_curv.jnl
 [?1034hcancel mode ignore
 !
 ! Your basic map projection
@@ -10520,7 +10481,7 @@ shade/nolabel sst, x_page[j=1:12], y_page ! DELIBERATE ERROR
 can mode ignore
  
 set mode meta bnplot.plt
-*** Running test: bn_symbols.jnl
+*** Running ferret script: bn_symbols.jnl
 [?1034h! bn420_symbols
 ! benchmark to test machinery of symbol definition and use
 ! requires FERRET version 4.00 or later
@@ -10542,18 +10503,18 @@ show symbols/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.96"
-FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64"
+FERRET_VERSION = "7"
+FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3.1 of Nov 17 2015 15:01:40 $"
+NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "19-Nov-15"
-SESSION_TIME = "12:03"
-SESSION_PID = "14039"
-DELTA_CPU = "0.432934"
-CLOCK_SECS = "0.314"
-CURRENT_DATE = "19-Nov-15"
-CURRENT_TIME = "12:03:34"
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:17"
+SESSION_PID = "2564"
+DELTA_CPU = "0.199969"
+CLOCK_SECS = "0.097"
+CURRENT_DATE = "17-Jun-16"
+CURRENT_TIME = "15:17:26"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
  
@@ -10571,18 +10532,18 @@ show symbol/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.96"
-FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64"
+FERRET_VERSION = "7"
+FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3.1 of Nov 17 2015 15:01:40 $"
+NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "19-Nov-15"
-SESSION_TIME = "12:03"
-SESSION_PID = "14039"
-DELTA_CPU = "0.001999"
-CLOCK_SECS = "0.316"
-CURRENT_DATE = "19-Nov-15"
-CURRENT_TIME = "12:03:34"
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:17"
+SESSION_PID = "2564"
+DELTA_CPU = "9.99E-04"
+CLOCK_SECS = "0.098"
+CURRENT_DATE = "17-Jun-16"
+CURRENT_TIME = "15:17:26"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
 S1 = "hello"
@@ -10592,9 +10553,9 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = "19-Nov-15"
-SESSION_TIME = "12:03"
-SESSION_PID = "14039"
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:17"
+SESSION_PID = "2564"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10604,15 +10565,15 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = "19-Nov-15"
-SESSION_TIME = "12:03"
-SESSION_PID = "14039"
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:17"
+SESSION_PID = "2564"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = "19-Nov-15"
-SESSION_TIME = "12:03"
-SESSION_PID = "14039"
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:17"
+SESSION_PID = "2564"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10740,22 +10701,22 @@ show symbols/all
 PPL$XPIXEL = "979"
 PPL$YPIXEL = "844"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.96"
-FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64"
+FERRET_VERSION = "7"
+FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3.1 of Nov 17 2015 15:01:40 $"
+NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "19-Nov-15"
-SESSION_TIME = "12:03"
-SESSION_PID = "14039"
-DELTA_CPU = "0.031995"
-CLOCK_SECS = "0.348"
-CURRENT_DATE = "19-Nov-15"
-CURRENT_TIME = "12:03:35"
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:17"
+SESSION_PID = "2564"
+DELTA_CPU = "0.013999"
+CLOCK_SECS = "0.111"
+CURRENT_DATE = "17-Jun-16"
+CURRENT_TIME = "15:17:26"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
  
-*** Running test: bn_comma_delimited.jnl
+*** Running ferret script: bn_comma_delimited.jnl
 [?1034h! bn420_comma_delimited
  
 ! 10/2/95 - test comma and tab-delimited outputs
@@ -12413,7 +12374,7 @@ LIST/FORMAT=comma/precision=5 10*j+i
 1,11,12,13,14,15
 2,21,22,23,24,25
 3,31,32,33,34,35
-*** Running test: bn_dynamic_grids.jnl
+*** Running ferret script: bn_dynamic_grids.jnl
 [?1034h! bn420_dynamic_grids
 ! 9/95-9/11/95 - test the creation, destruction, and use of dynamic grids
 ! 2/96 - added GX=lo:hi:delta notation
@@ -12427,6 +12388,8 @@ LIST/FORMAT=comma/precision=5 10*j+i
 !			      numericals results found here are verified to be correct
 ! V550 11/02 *sh* - documentation change only reflecting new modulo behavior
 ! V603  5/07 *acm*  documentation changew - some of the context errors have gone away.
+! V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables,
+! pre-defined axes and grids.
  
 ! deliberate dynamic grid errors
  
@@ -12809,11 +12772,11 @@ Dynamic axes:
     no implicit axes
 show grid tu
     GRID (G005)
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
+ name       axis              # pts   start                end                 subset
+ PSXU      LONGITUDE          160mr   131E                 70W                 full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00   full
  normal    E
  normal    F
  
@@ -12925,8 +12888,10 @@ Dynamic axes:
  
 ! regridding between grids with mutually exclusive axes
 cancel region
-define grid/y=ps3dt gy
-define grid/x=ps3dt gx
+define grid/y=`temp,return=grid` gy
+ !-> define grid/y=PS3DT2 gy
+define grid/x=`temp,return=grid` gx
+ !-> define grid/x=PS3DT2 gx
 LET/QUIET a = x[g=gx]
 list/i=1:4 a,a[g=gy]   ! nothing to regrid - both are same
              LONGITUDE: 130E to 134E
@@ -13023,7 +12988,7 @@ Dynamic axes:
 ! * * * dynamic generation of pseudo-variables * * *
 list x[x=.1:1:.1]			! dynamic abstract
              VARIABLE : X
-                        axis (AX002)
+                        axis (AX010)
              SUBSET   : 10 points (X)
  0.1  /  1:  0.100
  0.2  /  2:  0.200
@@ -13037,7 +13002,7 @@ list x[x=.1:1:.1]			! dynamic abstract
  1    / 10:  1.000
 list x[gx=psxu,x=130:150:2.5]		! dynamic based on named axis
              VARIABLE : X
-                        axis (AX001)
+                        axis (AX009)
              SUBSET   : 9 points (LONGITUDE)
  130E   / 1:  130.0
  132.5E / 2:  132.5
@@ -13124,24 +13089,24 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    7 r   0.1                  9.1
- (AX001)   Y                    3 r   95                   109
+ (AX011)   X                    7 r   0.1                  9.1
+ (AX009)   Y                    3 r   95                   109
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    7 r   0.1                  9.1
- (AX002)   Y                   10 r   101                  110
+ (AX011)   X                    7 r   0.1                  9.1
+ (AX010)   Y                   10 r   101                  110
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
-    AXIS (AX003)                         use count:   2
-    AXIS (AX002)                         use count:   1
+    AXIS (AX009)                         use count:   1
+    AXIS (AX011)                         use count:   2
+    AXIS (AX010)                         use count:   1
  
 ! ambiguous coordinate tests
 list/order=x  x[x=0.1:10:1.5] +  x[x=1.1:11:1.5]
@@ -13161,14 +13126,14 @@ show grid/dyn
 Dynamic grids:
     GRID (G005)                          use count:   2
  name       axis              # pts   start                end
- (AX001)   X                    7 r   0.1                  9.1
+ (AX009)   X                    7 r   0.1                  9.1
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
+    AXIS (AX009)                         use count:   1
  
 ! box size on dynamic axes
 cancel region
@@ -13194,8 +13159,8 @@ show grid/x
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G005)
     GRID (G005)
- name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ name       axis              # pts   start                end                 subset
+ (AX011)   X                    5 i   1                    6561                4 pts
  normal    Y
  normal    Z
  normal    T
@@ -13227,7 +13192,7 @@ list/i=1:10 x[gx=temp]			! from named variable
  139.5E / 10:  139.5
 list x[g=temp,x=150w:130w:2.5]		! dynamic based on named variable
              VARIABLE : X
-                        axis (AX005)
+                        axis (AX012)
              FILENAME : gtsa056_1.cdf
              SUBSET   : 9 points (LONGITUDE)
  150W   / 1:  210.0
@@ -13241,7 +13206,7 @@ list x[g=temp,x=150w:130w:2.5]		! dynamic based on named variable
  130W   / 9:  230.0
 list x[gx=temp,x=150w:130w:2.5]		! dynamic based on named variable
              VARIABLE : X
-                        axis (AX002)
+                        axis (AX010)
              FILENAME : gtsa056_1.cdf
              SUBSET   : 9 points (LONGITUDE)
  150W   / 1:  210.0
@@ -13271,14 +13236,14 @@ show grid/dyn
 Dynamic grids:
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX011)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX003)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! this expression does NOT inherit the X axis -- the result is
 !	i) ambiguous X axis coordinates
@@ -13300,7 +13265,7 @@ show grid/dynamic
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX001)   LONGITUDE            5 r   129.5W               113.5W
+ (AX009)   LONGITUDE            5 r   129.5W               113.5W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13308,15 +13273,15 @@ Dynamic grids:
  normal    F
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX011)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX009)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[g=temp,i=101:120:4]
              VARIABLE : TEMP[I=101:120:4]+X[G=TEMP,I=101:120:4]
@@ -13339,7 +13304,7 @@ SET REGION/I=101:105/J=46:50/l=1/k=1
 ! deliberate errors:  ****
 list x[i=5:1:1]		! not an error: inverted order
              VARIABLE : X
-                        axis (AX001)
+                        axis (AX009)
              SUBSET   : 5 points (X)
  1   / 1:  1.000
  2   / 2:  2.000
@@ -13384,7 +13349,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX001)   LONGITUDE            6 i   108.5W(-468.5)       98.5W(-458.5)
+ (AX009)   LONGITUDE            6 i   108.5W(-468.5)       98.5W(-458.5)
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13392,15 +13357,15 @@ Dynamic grids:
  normal    F
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX011)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX009)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! regular dynamic axis
 ! ... by subscript
@@ -13468,22 +13433,22 @@ Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
  PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX001)   LATITUDE             4 r   0.5S                 4N
+ (AX009)   LATITUDE             4 r   0.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX011)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX009)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! ========
 ! 2/96: repeat the very same commands using GX=lo:hi:delta notation
@@ -13645,24 +13610,24 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX005)   LONGITUDE            4 r   130W                 121W
- (AX002)   LATITUDE             4 r   0.5S                 4N
+ (AX012)   LONGITUDE            4 r   130W                 121W
+ (AX010)   LATITUDE             4 r   0.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   X                    5 i   1                    6561
+ (AX011)   X                    5 i   1                    6561
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX002)                         use count:   1
-    AXIS (AX005)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX010)                         use count:   1
+    AXIS (AX012)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! the same tests but now on a nested definition
 ! regular dynamic axis
@@ -13830,7 +13795,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX002)   LONGITUDE            6 r   138W                 113W
+ (AX010)   LONGITUDE            6 r   138W                 113W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13838,15 +13803,15 @@ Dynamic grids:
  normal    F
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX005)   LONGITUDE            4 r   130W                 121W
+ (AX012)   LONGITUDE            4 r   130W                 121W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX002)                         use count:   1
-    AXIS (AX005)                         use count:   1
+    AXIS (AX010)                         use count:   1
+    AXIS (AX012)                         use count:   1
  
 ! irregular dynamic axis
 ! ... by subscript
@@ -13984,7 +13949,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX005)   LONGITUDE            8 r   90W                  62W
+ (AX012)   LONGITUDE            8 r   90W                  62W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -13993,14 +13958,14 @@ Dynamic grids:
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
  PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX003)   LATITUDE             6 r   3.5S                 4N
+ (AX011)   LATITUDE             6 r   3.5S                 4N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX005)                         use count:   1
-    AXIS (AX003)                         use count:   1
+    AXIS (AX012)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! nested modulo (the dynamic axis is **NOT** modulo)
 ! ... by subscript
@@ -14182,7 +14147,7 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX003)   LONGITUDE            9 r   101W                 53W
+ (AX011)   LONGITUDE            9 r   101W                 53W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
@@ -14190,15 +14155,15 @@ Dynamic grids:
  normal    F
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
- (AX002)   LONGITUDE            8 r   90W                  62W
+ (AX010)   LONGITUDE            8 r   90W                  62W
  PSYT      LATITUDE           100 i   28.836S              48.568N
  PSZT      DEPTH (m)           27 i-  5                    3824
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX003)                         use count:   1
-    AXIS (AX002)                         use count:   1
+    AXIS (AX011)                         use count:   1
+    AXIS (AX010)                         use count:   1
  
 ! calendar axes
 list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]   ! 6-day ave
@@ -14232,7 +14197,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
 list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`]			! pseudo-var
  !-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48]
              VARIABLE : T
-                        axis (AX001)
+                        axis (AX009)
              SUBSET   : 3 points (TIME)
  15-JAN-1982 00 / 1:  723925.
  17-JAN-1982 00 / 2:  723927.
@@ -14247,7 +14212,7 @@ Dynamic axes:
 set axis/modulo psxt
  
 set mode/last diag
-*** Running test: bn_cdf.jnl
+*** Running ferret script: bn_cdf.jnl
 [?1034h! bn320_cdf
 ! benchmark to test netCDF input and output
 ! requires version 3.20 or later
@@ -14527,11 +14492,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX1_10   X                   10 r   1                    10
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1_10   X                   10 r   1                    10                  full
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -14623,11 +14588,11 @@ show data/full
  
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX1_10   X                   10 r   1                    10
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1_10   X                   10 r   1                    10                  full
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
  
@@ -14658,43 +14623,43 @@ cancel variables/all
 set data/format=cdf test_abs
 show grid j1 jkl jkl2 iavejkl ijkl
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
+ YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
+ YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU14
- name       axis              # pts   start                end
- XAX1_10   X                   10 r   1                    10
- YAX1_20   Y                   20 r   1                    20
- ZAX1_100  Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX1_10   X                   10 r   1                    10                  full
+ YAX1_20   Y                   20 r   1                    20                  full
+ ZAX1_100  Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -14880,11 +14845,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID PS3DU1
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYU      LATITUDE           100 i   27.672S              50N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXU      LONGITUDE          160mr   131E                 70W                 full
+ PSYU      LATITUDE           100 i   27.672S              50N                 full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
  normal    E
  normal    F
 cancel data test_fil0
@@ -15070,11 +15035,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID GLZ14
- name       axis              # pts   start                end
- PSXU69_72 LONGITUDE            4mr   161W                 158W
- PSYU      LATITUDE           100 i   27.672S              50N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXU69_72 LONGITUDE            4mr   161W                 158W                full
+ PSYU      LATITUDE           100 i   27.672S              50N                 full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
  normal    E
  normal    F
 cancel data test_fil
@@ -15151,7 +15116,7 @@ list/x=180 fcn_rev_sub
  1N   / 12: -0.3166
  0    / 11:  0.0000
  1S   / 10:  0.3166
-*** Running test: bn_regrid_transforms.jnl
+*** Running ferret script: bn_regrid_transforms.jnl
 [?1034h! bn500_regrid_transforms
 ! benchmark to test regridding transformations and syntax
 ! requires version 2.30 or later
@@ -18130,11 +18095,11 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G010)
     GRID (G010)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
  normal    E
  normal    F
 list atime[gt=thour at max]
@@ -18162,11 +18127,11 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G011)
     GRID (G011)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- THOUR     TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ THOUR     TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
  normal    E
  normal    F
  
@@ -18176,7 +18141,7 @@ set mode/last diag
  
  
  
-*** Running test: bn_axis_limits.jnl
+*** Running ferret script: bn_axis_limits.jnl
 [?1034h!bn301_axis_limits.jnl
 ! exercise the new-V301 /XLIMITS and /YLIMITS qualifiers
  
@@ -18328,7 +18293,7 @@ contour/x=160E:160W/t=28000:29000/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=1-
 set view v44
 contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=28000:29000:-400/trans sin(x/3)*sin(t/100)
  
-*** Running test: bn_movie.jnl
+*** Running ferret script: bn_movie.jnl
 [?1034h! bn301_movie.JNL
 ! - test on-HDF movie creation by Program FERRET
 ! - FERRET ver 3.10 10/93
@@ -18337,7 +18302,7 @@ contour/x=160E:160W/t=1-jan-1980:1-jan-1982/lev=(-1,1,.25)/xlimits=140e:110w:-9/
  
 ! Dont run this script - fails with hdf5 libraries
 exit/script
-*** Running test: bn_ez_order.jnl
+*** Running ferret script: bn_ez_order.jnl
 [?1034h! bn420_ez_order
 ! updated from bn311_ez_order 9/95 - improved testing of /FORMAT=STREAM
  
@@ -19370,7 +19335,7 @@ sp rm -f test_perm24.dat
 sp rm -f test_perm48.dat
 sp rm -f test_perm48_10.dat
  
-*** Running test: bn_user.jnl
+*** Running ferret script: bn_user.jnl
 [?1034h! bn312_user.jnl
  
 ! test the USER command options
@@ -19384,7 +19349,7 @@ set window/size=.5/aspect=.75:ax 1
 set window/size=.5/aspect=.75 2
  
 exit/script
-*** Running test: bn_stream.jnl
+*** Running ferret script: bn_stream.jnl
 [?1034h! bn420_stream.jnl
  
 ! jan 96
@@ -19445,7 +19410,7 @@ list myv1,myv2
 10   / 10:  30.00  50.00
 cancel data stream_data_link.unf
  
-*** Running test: bn_mc.jnl
+*** Running ferret script: bn_mc.jnl
 [?1034h!bn430_mc.jnl
 ! kob - 9/5/96
 !     - simple test of mc data access for both irregular and regular time
@@ -19465,11 +19430,11 @@ CAN MODE VERIFY
   time range: 16-JAN-1900 06:00 to 17-JUN-1900 10:25
  
     GRID GHB1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME1     TIME                 6 r   16-JAN-1900 06:00    17-JUN-1900 10:25
+ TIME1     TIME                 6 r   16-JAN-1900 06:00    17-JUN-1900 10:25   full
  normal    E
  normal    F
  
@@ -19543,11 +19508,11 @@ CAN MODE VERIFY
   time range: 16-JAN-1900 06:00 to 17-MAY-1900 23:56
  
     GRID GJR1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME2     TIME                 3 i   16-JAN-1900 06:00    17-MAY-1900 23:56
+ TIME2     TIME                 3 i   16-JAN-1900 06:00    17-MAY-1900 23:56   full
  normal    E
  normal    F
  
@@ -19894,7 +19859,7 @@ CAN MODE VERIFY
  89S   /  1:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
  
  
-*** Running test: bn_negative_t.jnl
+*** Running ferret script: bn_negative_t.jnl
 [?1034h! bn450_negative_t - 10/97
  
 ! test behavior of negative time step values (unsupported except as absolute
@@ -20883,7 +20848,7 @@ SET MODE ignore_error
 LIST a[gt=tcal]		! deliberate error
 CANCEL MODE ignore_error
  
-*** Running test: bn_xact_regrid.jnl
+*** Running ferret script: bn_xact_regrid.jnl
 [?1034h! BN450_xact_regrid.jnl
  
 ! 10/97 - test "exact match" regridding
@@ -22279,7 +22244,7 @@ LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
  5   / 5:....
  
  
-*** Running test: bn_gc_functions.jnl
+*** Running ferret script: bn_gc_functions.jnl
 [?1034h! bn500_gc_functions.jnl
  
 ! 10/97 - first version - test GC functions released in V4.9
@@ -22865,7 +22830,7 @@ LIST/x=0/l=1 Z10_flow - bottom_flow
 ! dynamic axis passes to GC function -- 1 meter resolution (3/98)
 set view lr
 shade/x=0/l=1/ylim=0:200:-20/lev ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[z=0:200:.5])
-*** Running test: bn491_bug_fixes.jnl
+*** Running ferret script: bn491_bug_fixes.jnl
 [?1034h! bn491_bug_fixes.jnl
 ! test various fixes that went into version 4.91
 ! 2/98 *kob*
@@ -23166,11 +23131,11 @@ GO err490_neg_time_show_grid.jnl
 set data gtsa056_2
 show grid/t=15-JAN-1982:15-JAN-1983 temp
     GRID PS3DT1
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME               168mr   15-JAN-1982 14:00    07-JUN-1983 13:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      TIME               168mr   15-JAN-1982 14:00    07-JUN-1983 13:00   full
  normal    E
  normal    F
  
@@ -23583,7 +23548,7 @@ list elev
  58.6017N /   2:   ....   ....   ....   ....  2.940  2.940  2.940  2.940  2.940   ....   ....   ....
  58.5947N /   1:   ....   ....   ....   ....  2.940  2.940  2.940  2.940  2.940   ....   ....   ....
  
-*** Running test: bn_odd_variable_name.jnl
+*** Running ferret script: bn_odd_variable_name.jnl
 [?1034h! make sure memory is limited; otherwise the abstract axis will list
 let save_mem = ($ferret_memory)
  !-> DEFINE VARIABLE save_mem = 25.6
@@ -23873,7 +23838,7 @@ list 'v2-and-minus'[i=5:15 at ddc] ! Now the proper syntax
 ! restore orginal memory size
 set mem /size=`save_mem`
  !-> set mem /size=25.6
-*** Running test: bn_test_stream.jnl
+*** Running ferret script: bn_test_stream.jnl
 [?1034h 
 canc data/all
  
@@ -24534,7 +24499,7 @@ list num1
  1   / 1:  18.00  19.00
  2   / 2:  20.00  21.00
  3   / 3:  22.00  23.00
-*** Running test: bn_define_axes.jnl
+*** Running ferret script: bn_define_axes.jnl
 [?1034h! bn_define_axes.jnl
 ! *sh* 5/99
 ! *sh* 12/99 - with streamlined syntax
@@ -25001,7 +24966,7 @@ show axis xax2
  
 ! cleanup
 set mode/last ignore
-*** Running test: bn_polygon.jnl
+*** Running ferret script: bn_polygon.jnl
 [?1034h! Demo of new POLYGON command
 ! *jd * 3.99
  
@@ -25023,7 +24988,7 @@ polygon/trans/line=6/fill/over/lev/i=1:100/opac=25/nolabel xpts+xsqr, ypts+ysqr+
 polygon/trans/line=4/over/i=1:100/nolabel xpts+xsqr-.25, ypts+ysqr, x*x/10
  
 can mode meta
-*** Running test: bn500_bug_fixes.jnl
+*** Running ferret script: bn500_bug_fixes.jnl
 [?1034h! bn500_bug_fixes.jnl
 ! test various fixes that went into version 5.00
 ! 5/99 *kob*
@@ -25235,10 +25200,10 @@ show grid
  Default grid for DEFINE VARIABLE is (G001)
  Last successful data access was on grid (G001)
     GRID (G001)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
- Z10       Z                   10 r   1                    10
+ Z10       Z                   10 r   1                    10                  full
  normal    T
  normal    E
  normal    F
@@ -25315,7 +25280,7 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Thu Nov 19 12:03:53 PST 2015
+Fri Jun 17 15:17:33 PDT 2016
  
 GO bn_reset
 cancel mode verify
@@ -25381,7 +25346,7 @@ GO err500_IF_THEN_ELSE_quote.jnl
  
 IF 1 THEN SAY "I is too big" ENDIF
 I is too big
-*** Running test: bn_sample.jnl
+*** Running ferret script: bn_sample.jnl
 [?1034h! bn_sample.jnl
 ! 10/99 *sh*
 ! V550 *sh* 11/02 - documentation change only, reflecting subspan modulo
@@ -26454,7 +26419,7 @@ list SAMPLEL(X[x=110:200:10],{3,4,7})	! normal axis
  2   / 2:........................................
  3   / 3:........................................
  
-*** Running test: bn_strides_revs_perms.jnl
+*** Running ferret script: bn_strides_revs_perms.jnl
 [?1034h! bn_strides_revs_perms.jnl
 ! *sh* 6/99
  
@@ -26554,11 +26519,11 @@ set region/i=1:4/j=1:3/l=1:2
 use bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- XLON      LONGITUDE           40mr   141E                 180E
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ XLON      LONGITUDE           40mr   141E                 180E                full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar
@@ -26580,11 +26545,11 @@ canc data/all
 use/order=yx bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- YLAT      X (degrees_north)   30 r   1                    30
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ YLAT      X (degrees_north)   30 r   1                    30                  full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar
@@ -26606,11 +26571,11 @@ canc data/all
 use/order=tyx bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- XLON      T (degrees_east)    40mr   141                  180
+ XLON      T (degrees_east)    40mr   141                  180                 full
  normal    E
  normal    F
 list xytvar
@@ -26632,11 +26597,11 @@ canc data/all
 use/order=txy bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 list xytvar
@@ -26659,10 +26624,10 @@ canc data/all
 use/order=zxy bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
- YLAT      Z (degrees_north)   30 r   1                    30
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
+ YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
  normal    E
  normal    F
@@ -26686,11 +26651,11 @@ canc data/all
 use/order=tx bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 list xytvar
@@ -26713,20 +26678,20 @@ canc data/all
 use/order=txyz bn_strides
 show grid xytvar
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 show grid var
     GRID GPC1
- name       axis              # pts   start                end
- TAX1_1    X                    1 r   1                    1
- XAX1_4    Y                    4 r   1                    4
- YAX1_3    Z                    3 r   1                    3
- ZAX1_2    T                    2 r   1                    2
+ name       axis              # pts   start                end                 subset
+ TAX1_1    X                    1 r   1                    1                   full
+ XAX1_4    Y                    4 r   1                    4                   full
+ YAX1_3    Z                    3 r   1                    3                   full
+ ZAX1_2    T                    2 r   1                    2                   full
  normal    E
  normal    F
 canc data/all
@@ -27556,11 +27521,12 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1345.  1347.  1349.
  6   / 3:  1363.  1365.  1367.  1369.
 canc data/all
- -DELETE UNE-NVAR M:  3 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
+ -DELETE UNE-NVAR M:  3 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:  6 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  
 use/order=zyx bn_strides
 list bigvar[i=3:9:2]
@@ -27572,7 +27538,7 @@ list bigvar[i=3:9:2]
  allocate dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  5 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  BIGVAR   M:  3 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE BIGVAR   M:  6 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
@@ -27592,7 +27558,7 @@ list bigvar[i=3:9:2]
  4   / 4:  1342.  1542.  1742.  1942.
 list bigvar[j=2:6:2]
  dealloc  dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M:  5 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:  3 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
  dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
@@ -27602,7 +27568,7 @@ list bigvar[j=2:6:2]
  strip regrid on Y: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  BIGVAR   M:  6 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  5 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:  3 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on Y
@@ -27630,7 +27596,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  BIGVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE BIGVAR   M:  6 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
@@ -27649,8 +27615,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1543.  1743.  1943.
  6   / 3:  1363.  1563.  1763.  1963.
 canc data/all
- -DELETE BIGVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=zxy bn_strides
 list bigvar[i=3:9:2]
@@ -27663,7 +27630,7 @@ list bigvar[i=3:9:2]
  strip regrid on X: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  BIGVAR   M:  6 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  5 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:  3 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X
@@ -27691,7 +27658,7 @@ list bigvar[j=2:6:2]
  allocate dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  5 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  BIGVAR   M:  3 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE BIGVAR   M:  6 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
@@ -27711,7 +27678,7 @@ list bigvar[j=2:6:2]
  6   / 3:  1326.  1426.  1526.  1626.
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M:  5 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:  3 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
@@ -27721,7 +27688,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  strip regrid on X: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  BIGVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  5 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:  3 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
@@ -27739,8 +27706,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1334.  1534.  1734.  1934.
  6   / 3:  1336.  1536.  1736.  1936.
 canc data/all
- -DELETE BIGVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! now with xytvar
 cancel region
@@ -27750,11 +27718,11 @@ show grid xytvar
  getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- XLON      LONGITUDE           40mr   141E                 180E
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ XLON      LONGITUDE           40mr   141E                 180E                full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
@@ -27767,7 +27735,7 @@ list xytvar[i=1:7:2]
  allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -27786,7 +27754,7 @@ list xytvar[i=1:7:2]
  1N   / 1:  2011.  2013.  2015.  2017.
 list xytvar[j=2:6:2]
  dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
  dealloc  dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
@@ -27796,7 +27764,7 @@ list xytvar[j=2:6:2]
  strip regrid on Y: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
@@ -27823,7 +27791,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -27841,19 +27809,20 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.  5043.  5045.  5047.
  2N   / 1:  5021.  5023.  5025.  5027.
 canc data/all
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=yx bn_strides
 show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME     NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- YLAT      X (degrees_north)   30 r   1                    30
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ YLAT      X (degrees_north)   30 r   1                    30                  full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
@@ -27867,7 +27836,7 @@ list xytvar[i=1:7:2]
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
@@ -27894,7 +27863,7 @@ list xytvar[j=2:6:2]
  allocate dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -27913,7 +27882,7 @@ list xytvar[j=2:6:2]
  146   / 3:  2016.  2026.  2036.  2046.
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  dealloc  dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
@@ -27923,7 +27892,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
@@ -27940,19 +27909,20 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  5014.  5034.  5054.  5074.
  146   / 3:  5016.  5036.  5056.  5076.
 canc data/all
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=tyx bn_strides
 show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON      NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- XLON      T (degrees_east)    40mr   141                  180
+ XLON      T (degrees_east)    40mr   141                  180                 full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
@@ -27965,7 +27935,7 @@ list xytvar[i=1:7:2]
  allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -27984,7 +27954,7 @@ list xytvar[i=1:7:2]
  1N   / 1:  1012.  3012.  5012.  7012.
 list xytvar[j=2:6:2]
  dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
  dealloc  dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
@@ -27994,7 +27964,7 @@ list xytvar[j=2:6:2]
  strip regrid on Y: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
@@ -28021,7 +27991,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -28039,19 +28009,20 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  1045.  3045.  5045.  7045.
  2N   / 1:  1025.  3025.  5025.  7025.
 canc data/all
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=txy bn_strides
 show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT      NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
- YLAT      T (degrees_north)   30 r   1                    30
+ YLAT      T (degrees_north)   30 r   1                    30                  full
  normal    E
  normal    F
 list xytvar[i=1:7:2]
@@ -28065,7 +28036,7 @@ list xytvar[i=1:7:2]
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
@@ -28092,7 +28063,7 @@ list xytvar[j=2:6:2]
  allocate dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
  strip regrid on Y: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -28111,7 +28082,7 @@ list xytvar[j=2:6:2]
  146   / 3:  1026.  2026.  3026.  4026.
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  dealloc  dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
@@ -28121,7 +28092,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
@@ -28138,8 +28109,9 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  144   / 2:  1054.  3054.  5054.  7054.
  146   / 3:  1056.  3056.  5056.  7056.
 canc data/all
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -28147,10 +28119,10 @@ show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
- YLAT      Z (degrees_north)   30 r   1                    30
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
+ YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
  normal    E
  normal    F
@@ -28165,7 +28137,7 @@ list/k=1:2 xytvar[i=1:7:2]
  allocate dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -28184,7 +28156,7 @@ list/k=1:2 xytvar[i=1:7:2]
  143   / 3:  1023.  3023.  5023.  7023.
 list/k=1:2 xytvar[j=2:6:2]
  dealloc  dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
  dealloc  dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
@@ -28195,7 +28167,7 @@ list/k=1:2 xytvar[j=2:6:2]
  strip regrid on Y: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  8 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
@@ -28222,7 +28194,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
@@ -28240,8 +28212,9 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.  3054.  5054.  7054.
  146   / 3:  1056.  3056.  5056.  7056.
 canc data/all
- -DELETE XYTVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
  
 ! * * * * * MIXED STRIDES, PERMUTATIONS and REVERSALS * * * * *
@@ -28272,7 +28245,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  strip regrid on X: MIDVAR --> (G006)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28288,8 +28261,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.  1552.
  5   / 2:  1515.  1555.
 canc data/all
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28305,7 +28279,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
  -DELETE MIDVAR   M:  6 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28321,8 +28295,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.  1558.
  5   / 2:  1515.  1555.
 canc data/all
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28338,7 +28313,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  doing reversing MIDVAR on X axis:     1     5 dset:   1
  -DELETE MIDVAR   M:  6 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28354,8 +28329,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1582.  1542.
  5   / 2:  1585.  1545.
 canc data/all
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=tyx bn_strides
@@ -28368,7 +28344,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G006)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  5 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE MIDVAR   M:  6 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
@@ -28385,8 +28361,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.  5125.
  5   / 2:  1155.  5155.
 canc data/all
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 use/order=-t-y-x bn_strides
@@ -28401,8 +28378,8 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  strip reversing MIDVAR on X axis:     1     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    4    7  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  5 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE MIDVAR   M:  6 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
@@ -28419,8 +28396,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.  2775.
  5   / 2:  6745.  2745.
 canc data/all
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=txy bn_strides
@@ -28434,7 +28412,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  strip regrid on X: MIDVAR --> (G006)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28450,8 +28428,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.  5152.
  5   / 2:  1155.  5155.
 canc data/all
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28467,7 +28446,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
  -DELETE MIDVAR   M:  6 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  5 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
@@ -28483,9 +28462,10 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.  2758.
  5   / 2:  6755.  2755.
 canc data/all
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
-*** Running test: bn_non_COARDS_netCDF.jnl
+ -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
+*** Running ferret script: bn_non_COARDS_netCDF.jnl
 [?1034h! bn_non_COARDS_netCDF.jnl
 ! *sh* 3/99
 ! *sh* 6/00 -- added true scalar variable, TRUE_SCALAR
@@ -28525,8 +28505,8 @@ show data
  
 show grid/x HAS_NO_AXIS
     GRID GAB7
- name       axis              # pts   start                end
- NO_AXIS   X                    5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ NO_AXIS   X                    5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -28541,8 +28521,8 @@ show grid/x HAS_NO_AXIS
        5>  5                     1          4.5
 show grid/x HAS_UNORDERED_AXIS
     GRID GAB1
- name       axis              # pts   start                end
- UNORDERED_AXIS X               5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ UNORDERED_AXIS X               5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -28557,8 +28537,8 @@ show grid/x HAS_UNORDERED_AXIS
        5>  5                     1          4.5
 show grid/x HAS_GAPPY_AXIS
     GRID GAB2
- name       axis              # pts   start                end
- GAPPY_AXIS X                   5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ GAPPY_AXIS X                   5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -28573,8 +28553,8 @@ show grid/x HAS_GAPPY_AXIS
        5>  5                     1          4.5
 show grid/x HAS_BACKWARDS_AXIS
     GRID GAB8
- name       axis              # pts   start                end
- BACKWARDS_AXIS X               5 r   1                    5
+ name       axis              # pts   start                end                 subset
+ BACKWARDS_AXIS X               5 r   1                    5                   full
  normal    Y
  normal    Z
  normal    T
@@ -28589,8 +28569,8 @@ show grid/x HAS_BACKWARDS_AXIS
        5>  5                     1          4.5
 show grid/x SCALAR_VAR
     GRID GAB3
- name       axis              # pts   start                end
- SCALAR    X                    1 r   1                    1
+ name       axis              # pts   start                end                 subset
+ SCALAR    X                    1 r   1                    1                   full
  normal    Y
  normal    Z
  normal    T
@@ -28602,37 +28582,37 @@ show grid/x SCALAR_VAR
  
 show grid/i=1:5 USES_BIG_IRREG
     GRID GAB9
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- BIG_IRREG T (hours)       200000 i   1                    200000
+ BIG_IRREG T (hours)       200000 i   1                    200000              full
  normal    E
  normal    F
  
 show grid MASKED_SST
     GRID GAB5
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180 r   1E                   180E
- COADSY    LATITUDE            90 r   1N                   90N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180 r   1E                   180E                full
+ COADSY    LATITUDE            90 r   1N                   90N                 full
  normal    Z
- TIME      TIME                 1mr   16-JAN 06:00         16-JAN 06:00
+ TIME      TIME                 1mr   16-JAN 06:00         16-JAN 06:00        full
  normal    E
  normal    F
 show grid COADSX
     GRID GAB6
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180 r   1E                   180E
- COADSY    LATITUDE            90 r   1N                   90N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180 r   1E                   180E                full
+ COADSY    LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
  normal    E
  normal    F
 show grid COADSY
     GRID GAB6
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180 r   1E                   180E
- COADSY    LATITUDE            90 r   1N                   90N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180 r   1E                   180E                full
+ COADSY    LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
  normal    E
@@ -28711,7 +28691,7 @@ list HAS_BACKWARDS_AXIS
 ! is generated with its values.
  
 ! list/i=1:5 BIG_IRREG
-*** Running test: bn_cache_hits.jnl
+*** Running ferret script: bn_cache_hits.jnl
 [?1034h! bn_cache_hits.jnl
  
 ! 3/99 *sh*
@@ -30512,7 +30492,7 @@ set mode/last diag
  
 ! v5.4 *kob* 10/01 - need to add exit/script - new exit command qualifiers
 EXIT/SCRIPT
-*** Running test: bn_regrid_to_user.jnl
+*** Running ferret script: bn_regrid_to_user.jnl
 [?1034h! bn_regrid_to_user
 ! 8/99 *sh*
 ! 5/01 *sh* - changes to accomodate truncated levitus_climatology.cdf
@@ -30554,10 +30534,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G003)
     GRID (G003)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -30585,10 +30565,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G003)
     GRID (G003)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -30614,10 +30594,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G003)
     GRID (G003)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -30710,11 +30690,11 @@ show grid
  Default grid for DEFINE VARIABLE is (G003)
  Last successful data access was on grid (G003)
     GRID (G003)
- name       axis              # pts   start                end
- (AX009)   LONGITUDE          301 r   0E                   30E
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ (AX009)   LONGITUDE          301 r   0E                   30E                 full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  normal    E
  normal    F
  
@@ -30724,11 +30704,11 @@ show grid
  Default grid for DEFINE VARIABLE is (G003)
  Last successful data access was on grid (G004)
     GRID (G004)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX010)   LATITUDE           201 r   10S                  10N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX010)   LATITUDE           201 r   10S                  10N                 200 pts
  normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  normal    E
  normal    F
 show grid/dynamic
@@ -30868,62 +30848,62 @@ list a1[gxz=a2]
 ! test use of expressions in dynamic grid commands
 SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2]             ! implicit Y axis
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX007)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX010)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX010)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
 SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
     GRID (G007)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX007)   LATITUDE            41 r   10S                  2S
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
+ (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
  normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
+ (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
  normal    E
  normal    F
 SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])      ! abstract X axis
     GRID (G006)
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
- (AX007)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]),SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX011)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX011)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
     GRID (G007)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX007)   LATITUDE            41 r   10S                  2S
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
+ (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
  normal    Z
- (AX010)   T (CYC/hour)         2 r   0.00034224           0.00068448
+ (AX010)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
  normal    E
  normal    F
     GRID (G006)
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
- (AX007)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
@@ -30933,10 +30913,10 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is (G003)
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX010)   LATITUDE            41 r   10S                  2S
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ (AX010)   LATITUDE            41 r   10S                  2S                  40 pts
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
  normal    E
  normal    F
@@ -30945,11 +30925,11 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is (G007)
  Last successful data access was on grid (G007)
     GRID (G007)
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX007)   LATITUDE            41 r   10S                  2S
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
+ (AX007)   LATITUDE            41 r   10S                  2S                  full
  normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
+ (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448          full
  normal    E
  normal    F
 list/j=1:5 j
@@ -30994,7 +30974,7 @@ Dynamic axes:
     AXIS (AX007)                         use count:   3
     AXIS (AX008)                         use count:   1
  
-*** Running test: bn_calendar.jnl
+*** Running ferret script: bn_calendar.jnl
 [?1034h! bn_calendar.jnl
 ! Version 5.3
 ! Add definitions of calendar axes as a NetCDF attribute of the time axis
@@ -31140,11 +31120,11 @@ sh data
  
 sh grid ndata
     GRID GSH1
- name       axis              # pts   start                end
- PSXT91_100 LONGITUDE          10mr   139.5W               130.5W
- PSYT39_51 LATITUDE            13 i   2.167S               1.833N
- PSZT1_1   DEPTH (m)            1 r-  5                    5
- TWEEKS1   TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00
+ name       axis              # pts   start                end                 subset
+ PSXT91_100 LONGITUDE          10mr   139.5W               130.5W              full
+ PSYT39_51 LATITUDE            13 i   2.167S               1.833N              full
+ PSZT1_1   DEPTH (m)            1 r-  5                    5                   full
+ TWEEKS1   TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00   full
  normal    E
  normal    F
 sh axis tweeks
@@ -31277,7 +31257,7 @@ T0 = 1-JAN-1980
  
 ! also see bn_all_leap.jnl, 6/2004
 ! Added ALL_LEAP, or 366_DAY calendar (which is in the CF conventions).
-*** Running test: bn_dash_dot.jnl
+*** Running ferret script: bn_dash_dot.jnl
 [?1034h! new PLOT/DASH and PLOT/SYMBOL=DOT  qualifiers
 ! *acm* 5/01
 ! *acm* 8/02 Remove calls to SYMBOL=DOT until postscript issues are resolved.
@@ -31297,7 +31277,7 @@ plot/over/dash=(0.1,0.1,0.04,0.05)/color=blue/thick=1/i=1:1000 sin(62.8*(i+20) )
 set mode ignore
 plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
 plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
-*** Running test: bn_flowlines.jnl
+*** Running ferret script: bn_flowlines.jnl
 [?1034h! bn_flowlines.jnl
 ! VECTOR/FLOW
 ! 6/2001
@@ -31341,7 +31321,7 @@ let yy =  if abs(y[gt=sst]) le 20 then 10 else  (100-abs(y[gt=sst]+1))/ 10.
 set reg/l=1
 vec/noax/xskip=16/yskip=8/len=15/title="Sinusoidal Projection" fsst*0,fsst*0+yy*mp_mask, x_page,y_page
 vec/over/flow/noax/xskip=16/yskip=8/len=5/title="Sinusoidal Projection" fsst*0,fsst*0+yy*mp_mask, x_page,y_page
-*** Running test: bn_logaxes.jnl
+*** Running ferret script: bn_logaxes.jnl
 [?1034h!  Test the qualifiers /HLOG and /VLOG for setting
 !  log axes.  On a depth axis, inverse log plot.
  
@@ -31383,7 +31363,7 @@ set mode ignore
 def axis/x dlog = -1*(10-i[i=1:10])
 let fcn = (i[gx=dlog])^2
 plot/hlog fcn
-*** Running test: bn_internal_external_functions.jnl
+*** Running ferret script: bn_internal_external_functions.jnl
 [?1034h! test internal external functions.  These moved from bn_external_functions
 !  6/01 because on systems w/out external functions support, the internal
 !  functions were not being tested - most notably win32   *kob*
@@ -31801,9 +31781,9 @@ can mem/all
 let xy_laplace_gridded = scat2gridlaplace_xy(xax,yax,O2_umol_kg,x[gx=x_20],y[gy=y_20],2,2)
 show grid xy_laplace_gridded
     GRID (G005)
- name       axis              # pts   start                end
- X_20      LONGITUDE           20mr   50E                  70E
- Y_20      LATITUDE            20 r   10N                  20N
+ name       axis              # pts   start                end                 subset
+ X_20      LONGITUDE           20mr   50E                  70E                 full
+ Y_20      LATITUDE            20 r   10N                  20N                 full
  normal    Z
  normal    T
  normal    E
@@ -32432,9 +32412,9 @@ let wgtl = scat2gridlaplace_xy(xln,ylt, wgt, x[gx=xlonef], y[gy=ylatef], 2., 1)
  
 show grid wgtl
     GRID (G009)
- name       axis              # pts   start                end
- XLONEF    LONGITUDE          133mr   12.5W                119.5E(479.5)
- YLATEF    LATITUDE            73 r   47.25N               83.25N
+ name       axis              # pts   start                end                 subset
+ XLONEF    LONGITUDE          133mr   12.5W                119.5E(479.5)       full
+ YLATEF    LATITUDE            73 r   47.25N               83.25N              full
  normal    Z
  normal    T
  normal    E
@@ -33417,10 +33397,10 @@ SAMPLEN(TO_BE_SAMPLED,F_INDICES)
     TO_BE_SAMPLED: data to sample at list of F indices supplied
     F_INDICES: list of F indices at which to sample
 SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
-    Returns data sampled at a subset of its grid points, defined by (XPTS, YPTS)
+    Returns data sampled by matching coordinates at a subset of grid points, defined by (XPTS, YPTS)
     DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
-    XPTS: X indices of grid points
-    YPTS: Y indices of grid points
+    XPTS: X coordinates of grid points
+    YPTS: Y coordinates of grid points
 SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
     Returns data sampled according to I indices which may vary in JKL
     I_INDICES: indices upon which to sample
@@ -34639,24 +34619,6 @@ CURV_TO_RECT_FSU(V,mapping)
     Alt func to Apply mapping to regrid from curvilinear to rectangular grid
     V: Variable to regrid, on curvilinear grid V(x,y,z,t)
     mapping: mapping computed by curv_to_rect_MAP
-CURV2RECT(CurvData,CurvCenterLons,CurvCenterLats,CurvCornerLons,CurvCornerLats,TemplateRectVar,Method)
-    Regrids data from curvilinear lon,lat center and/or corner grid to rectilinear using ESMP/ESMF
-    CurvData: Curvilinear X,Y data positioned at centers
-    CurvCenterLons: Curvilinear center longitudes on an X,Y grid
-    CurvCenterLats: Curvilinear center latitudes on an X,Y grid
-    CurvCornerLons: Curvilinear corner longitudes on an X,Y (maybe Z) grid
-    CurvCornerLats: Curvilinear corner latitudes on an X,Y (maybe Z) grid
-    TemplateRectVar: Template variable on the desired rectilinear grid
-    Method: Regrid method: BILINEAR, PATCH, CONSERVE (STRING)
-CURV3SRECT(CurvData,CurvLons,CurvLats,CurvBaths,CurvZetas,TemplateRectVar,Method)
-    Regrids data from curvilinear lon, lat, sigma, bathymetry, zeta (centers) grid to rectilinear lon, lat, depth using ESMP/ESMF
-    CurvData: Curvilinear X,Y,Z,[T,E,F] data where Z is sigma values
-    CurvLons: Longitudes of curvilinear data on an X,Y grid
-    CurvLats: Latitudes of curvilinear data on an X,Y grid
-    CurvBaths: Bathymetry (as depths) of curvilinear data on an X,Y grid
-    CurvZetas: Water surface elevations of curvilinear data on an X,Y,[T] grid (optional)
-    TemplateRectVar: Template variable on the desired rectilinear X,Y,Z,[T,E,F] grid where Z is depths
-    Method: Regrid method: BILINEAR, PATCH (STRING)
  
 use tripolar_subset.nc
 shade ht, geolon_vert_t, geolat_vert_t
@@ -34773,7 +34735,45 @@ let mask = 0*x[gx=sst] + y[gy=sst]  + 1
 shade fill_xy(sst[l=1], mask[l=1], 1)
 shade fill_xy(sst[l=1], mask[l=1], 4)
  
-*** Running test: bn_modulo_strides.jnl
+! Compare SAMPLEXY and SAMPLEIJ
+GO bn_reset
+cancel mode verify
+GO bn_samplexy_sampleij
+! bn_samplexy_sampleij
+ 
+! Simple tests of SAMPLEXY and SAMPLEIJ
+ 
+sh func samplexy, sampleij
+SAMPLEXY(DAT_TO_SAMPLE,XPTS,YPTS)
+    Returns data sampled at a set of (X,Y) points, using linear interpolation
+    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
+    XPTS: X values of sample points
+    YPTS: Y values of sample points
+SAMPLEIJ(DAT_TO_SAMPLE,XPTS,YPTS)
+    Returns data sampled by matching coordinates at a subset of grid points, defined by (XPTS, YPTS)
+    DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
+    XPTS: X coordinates of grid points
+    YPTS: Y coordinates of grid points
+use coads_climatology
+ 
+! Both functions take world coordinate values
+! as arguements for the points at which to sample.
+!
+! 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
+             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})
+ Column  2: EX#2 is SAMPLEIJ(SST,{321,323,324.5}, {1,1,1})
+          EX#1   EX#2
+1   / 1:  27.48  27.48
+2   / 2:  27.40  27.47
+3   / 3:  27.22   ....
+ 
+ 
+*** Running ferret script: bn_modulo_strides.jnl
 [?1034h! bn_modulo_strides.jnl
 ! 6/01 *sh*
 ! exercise the combination of modulo and netCDF strides IO
@@ -35152,7 +35152,7 @@ list/nohead str[i=105:145:5]
  135   / 7:"o"
  140   / 8:"t"
  145   / 9:"e"
-*** Running test: bn_axis_viewports.jnl
+*** Running ferret script: bn_axis_viewports.jnl
 [?1034h! bn_axis_viewports
 ! *sh* 9/01
  
@@ -35495,7 +35495,7 @@ ppl list yaxis
           LEFT AXIS= ON  RIGHT AXIS= ON 
          AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          YORG= 1.40E+00  AUTO LABELLING
-*** Running test: bn_strings.jnl
+*** Running ferret script: bn_strings.jnl
 [?1034h! bn_strings.jnl
  
 ! 7/01 - test string syntax and behaviors
@@ -35787,8 +35787,8 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid XABSTRACT
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -35804,9 +35804,9 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid YABSTRACT
     GRID YABSTRACT
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- ABSTRACT  Y             99999999 r   1                    1.E+08
+ ABSTRACT  Y             99999999 r   1                    1.E+08              full
  normal    Z
  normal    T
  normal    E
@@ -35821,10 +35821,10 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid ZABSTRACT
     GRID ZABSTRACT
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
- ABSTRACT  Z             99999999 r   1                    1.E+08
+ ABSTRACT  Z             99999999 r   1                    1.E+08              full
  normal    T
  normal    E
  normal    F
@@ -35838,11 +35838,11 @@ sh grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid TABSTRACT
     GRID TABSTRACT
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- ABSTRACT  T             99999999 r   1                    1.E+08
+ ABSTRACT  T             99999999 r   1                    1.E+08              full
  normal    E
  normal    F
 let a = TSEQUENCE({"a","b","c","d","e"})
@@ -36063,7 +36063,7 @@ list a[i=@rsum]
  4   / 4:""
  
 set mode/last stupid
-*** Running test: bn_axcontrol.jnl
+*** Running ferret script: bn_axcontrol.jnl
 [?1034h ! NOAA/PMEL TMAP
  ! Program FERRET (alpha)
  ! Version 5.33 - 07/12/01
@@ -36102,7 +36102,7 @@ fill/l=1/axes sst
  
 can view
 polygon/thick/color=red/palette=blue/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
-*** Running test: bn_vec_curv.jnl
+*** Running ferret script: bn_vec_curv.jnl
 [?1034h! bn_vec_curv.jnl
 !
 ! vector plots with curvilinear coordinates
@@ -36173,7 +36173,7 @@ vec/title="Stretched grid" a,b,mxpage,mypage
  
 can mode meta
  
-*** Running test: bn_delimited_read.jnl
+*** Running ferret script: bn_delimited_read.jnl
 [?1034h! bn_delimited_read.jnl
 ! 10/01 *sh*
  
@@ -37233,7 +37233,7 @@ columns/var="aa.b"  bn_delimited_read_date_time.dat
 file/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
 cancel mode ignore
  
-*** Running test: bn541_bug_fixes.jnl
+*** Running ferret script: bn541_bug_fixes.jnl
 [?1034h! bn541_bug_fixes.jnl
 ! test various fixes that went into version 5.41
 ! 3/02 *acm*
@@ -37806,9 +37806,9 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G003)
     GRID (G003)
- name       axis              # pts   start                end
- (AX003)   X                   10 r   1                    91
- YAX1_100  Y                  100 r   1                    100
+ name       axis              # pts   start                end                 subset
+ (AX003)   X                   10 r   1                    91                  9 pts
+ YAX1_100  Y                  100 r   1                    100                 full
  normal    Z
  normal    T
  normal    E
@@ -38205,7 +38205,7 @@ list b[d=1]
           2.000
  
  
-*** Running test: bn_cancel_axes.jnl
+*** Running ferret script: bn_cancel_axes.jnl
 [?1034h! bn_cancel_axes.jnl
  
 let ind1 = 1*i
@@ -38452,7 +38452,7 @@ T0 = 01-JAN-0000 00:00:00
        3>  16-AUG 06:38:15       2191.455   01-JUL 14:54:36        5478.637
        4>  15-NOV 14:05:33       2191.455   30-SEP 22:21:54        7670.092
  
-*** Running test: bn542_bug_fixes.jnl
+*** Running ferret script: bn542_bug_fixes.jnl
 [?1034h! bn542_bug_fixes.jnl
 ! test various fixes that went into version 5.42
 ! 10/02 *acm*
@@ -38660,7 +38660,7 @@ GO bn_reset
 cancel mode verify
 ! GO err541_date_delim
  
-*** Running test: bn_subspan_modulo.jnl
+*** Running ferret script: bn_subspan_modulo.jnl
 [?1034h! bn_subspan_modulo.jnl
 ! *sh* 11/02
  
@@ -38969,8 +38969,8 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    7    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VREG on X axis:     7     7 dset:   1
+ strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  reading VREG     M:  1 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VREG on X axis:     6     6 dset:   1
         ....
@@ -38985,18 +38985,20 @@ lsxn/x=0 $1 ! void point below, alone (via modulo)
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    5    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VREG on X axis:     5     7 dset:   1
+ strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  reading VREG     M:  3 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VREG on X axis:     5     6 dset:   1
           15.00  16.00   ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VREG on X axis:     0     7 dset:   1
+ strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip moduloing VREG on X axis:     0     6 dset:   1
  reading VREG     M:  8 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing VREG on X axis:     1     6 dset:   1
+ doing modulo-void-filling VREG on X axis:     0     6 dset:   1
            ....  11.00  12.00  13.00  14.00  15.00  16.00   ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -39232,16 +39234,16 @@ l200n/l=12:21/i=-19:-9 $2_void[x=@fnr,t=@fnr]
 ! test shift
 l200n/l=12:21/i=-19:-9 $2[x=@shf:2,t=@shf:-2]
  !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_reg[x=@shf:2,t=@shf:-2]
- 14-SEP      / 12:  104.0  105.0  106.0   ....  101.0  102.0  103.0  104.0  105.0  106.0   ....
- 15-JAN-0002 / 13:  134.0  135.0  136.0   ....  131.0  132.0  133.0  134.0  135.0  136.0   ....
+ 14-SEP      / 12:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 15-JAN-0002 / 13:  134.0  135.0  136.0   ....  131.0   ....  133.0  134.0  135.0  136.0   ....
  14-FEB-0002 / 14:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
- 16-MAR-0002 / 15:   14.0   15.0   16.0   ....   11.0   12.0   13.0   14.0   15.0   16.0   ....
- 15-APR-0002 / 16:   44.0   45.0   46.0   ....   41.0   42.0   43.0   44.0   45.0   46.0   ....
- 15-MAY-0002 / 17:   74.0   75.0   76.0   ....   71.0   72.0   73.0   74.0   75.0   76.0   ....
- 15-SEP-0002 / 18:  104.0  105.0  106.0   ....  101.0  102.0  103.0  104.0  105.0  106.0   ....
- 15-JAN-0003 / 19:  134.0  135.0  136.0   ....  131.0  132.0  133.0  134.0  135.0  136.0   ....
+ 16-MAR-0002 / 15:   14.0   15.0   16.0   ....   11.0   ....   13.0   14.0   15.0   16.0   ....
+ 15-APR-0002 / 16:   44.0   45.0   46.0   ....   41.0   ....   43.0   44.0   45.0   46.0   ....
+ 15-MAY-0002 / 17:   74.0   75.0   76.0   ....   71.0   ....   73.0   74.0   75.0   76.0   ....
+ 15-SEP-0002 / 18:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 15-JAN-0003 / 19:  134.0  135.0  136.0   ....  131.0   ....  133.0  134.0  135.0  136.0   ....
  14-FEB-0003 / 20:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
- 16-MAR-0003 / 21:   14.0   15.0   16.0   ....   11.0   12.0   13.0   14.0   15.0   16.0   ....
+ 16-MAR-0003 / 21:   14.0   15.0   16.0   ....   11.0   ....   13.0   14.0   15.0   16.0   ....
  
 ! test strides
 l200n/order=x $2[l=1,i=0:14]
@@ -39257,8 +39259,8 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
  eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  allocate dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
  strip regrid on X: V2D_REG --> (G004)           @XACT
- found   V2D_REG  M: 69 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_REG  M: 70 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   V2D_REG  M: 71 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  V2D_REG  M: 72 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
            ....  12.00  14.00  16.00  11.00  13.00  15.00   ....
 l200n/order=x $2[l=1,i=0:14:7]
@@ -39267,7 +39269,7 @@ l200n/order=x $2[l=1,i=0:14:7]
 set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  !-> list/width=200/nohead v2d_reg[i=1,l=1:15:2]
  dealloc  dynamic grid (G004)          (AX001)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- -DELETE V2D_REG  M: 71 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE V2D_REG  M: 73 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
  dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
@@ -39278,9 +39280,9 @@ set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  strip moduloing V2D_REG on T axis:     1    15 dset:   1
  rdstride V2D_REG  C:  9 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
  doing moduloing V2D_REG on T axis:     1     5 dset:   1
- -DELETE V2D_REG  M: 71 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- nulrgd  V2D_REG  M: 71 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_REG  M: 72 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
+ -DELETE V2D_REG  M: 73 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
+ nulrgd  V2D_REG  M: 73 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ -DELETE V2D_REG  M: 74 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
  16-JAN-0000 / 1:   11.0
  16-MAR-0000 / 2:   71.0
@@ -39488,7 +39490,7 @@ lsx $1  ! default avoids void points
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GFJ2            XIRREG_SUBNORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 78 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 80 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
              VARIABLE : X[GX=XIRREG_SUBSPAN] -40 + 10
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 6 points (X)
@@ -39498,9 +39500,9 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    7    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VIRR on X axis:     7     7 dset:   1
- reading VIRR     M: 79 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 81 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VIRR on X axis:     6     6 dset:   1
         ....
 lsxn/x=0 $1 ! void point below, alone (via modulo)
@@ -39508,24 +39510,26 @@ lsxn/x=0 $1 ! void point below, alone (via modulo)
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  strip moduloing VIRR on X axis:     0     0 dset:   1
- reading VIRR     M: 81 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 83 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing VIRR on X axis:     6     6 dset:   1
         ....
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    5    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip modulo-void-filling VIRR on X axis:     5     7 dset:   1
- reading VIRR     M: 83 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ reading VIRR     M: 85 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing modulo-void-filling VIRR on X axis:     5     6 dset:   1
           15.00  16.00   ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VIRR on X axis:     0     7 dset:   1
- reading VIRR     M: 85 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip moduloing VIRR on X axis:     0     6 dset:   1
+ reading VIRR     M: 87 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing VIRR on X axis:     1     6 dset:   1
+ doing modulo-void-filling VIRR on X axis:     0     6 dset:   1
            ....  11.00  12.00  12.10  14.00  15.00  16.00   ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -39761,16 +39765,16 @@ l200n/l=12:21/i=-19:-9 $2_void[x=@fnr,t=@fnr]
 ! test shift
 l200n/l=12:21/i=-19:-9 $2[x=@shf:2,t=@shf:-2]
  !-> list/width=200/nohead/l=12:21/i=-19:-9 v2d_irr[x=@shf:2,t=@shf:-2]
- 14-SEP 23      / 12:  104.2  105.2  106.2   ....  101.2  102.2  102.3  104.2  105.2  106.2   ....
- 15-JAN-0002 23 / 13:  134.2  135.2  136.2   ....  131.2  132.2  132.3  134.2  135.2  136.2   ....
+ 14-SEP 23      / 12:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 15-JAN-0002 23 / 13:  134.2  135.2  136.2   ....  131.2   ....  132.3  134.2  135.2  136.2   ....
  14-FEB-0002 14 / 14:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
- 16-MAR-0002 05 / 15:   14.0   15.0   16.0   ....   11.0   12.0   12.1   14.0   15.0   16.0   ....
- 15-APR-0002 17 / 16:   45.0   46.0   47.0   ....   42.0   43.0   43.1   45.0   46.0   47.0   ....
- 15-MAY-0002 17 / 17:   73.2   74.2   75.2   ....   70.2   71.2   71.3   73.2   74.2   75.2   ....
- 15-SEP-0002 05 / 18:  104.2  105.2  106.2   ....  101.2  102.2  102.3  104.2  105.2  106.2   ....
- 16-JAN-0003 05 / 19:  134.2  135.2  136.2   ....  131.2  132.2  132.3  134.2  135.2  136.2   ....
+ 16-MAR-0002 05 / 15:   14.0   15.0   16.0   ....   11.0   ....   12.1   14.0   15.0   16.0   ....
+ 15-APR-0002 17 / 16:   45.0   46.0   47.0   ....   42.0   ....   43.1   45.0   46.0   47.0   ....
+ 15-MAY-0002 17 / 17:   73.2   74.2   75.2   ....   70.2   ....   71.3   73.2   74.2   75.2   ....
+ 15-SEP-0002 05 / 18:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 16-JAN-0003 05 / 19:  134.2  135.2  136.2   ....  131.2   ....  132.3  134.2  135.2  136.2   ....
  14-FEB-0003 20 / 20:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
- 16-MAR-0003 11 / 21:   14.0   15.0   16.0   ....   11.0   12.0   12.1   14.0   15.0   16.0   ....
+ 16-MAR-0003 11 / 21:   14.0   15.0   16.0   ....   11.0   ....   12.1   14.0   15.0   16.0   ....
  
 ! test strides
 l200n/order=x $2[l=1,i=0:14]
@@ -39786,8 +39790,8 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
  eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  allocate dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
  strip regrid on X: V2D_IRR --> (G006)           @XACT
- found   V2D_IRR  M:146 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_IRR  M:147 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   V2D_IRR  M:150 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  V2D_IRR  M:151 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
            ....  12.00  14.00  16.00  11.00  12.10  15.00   ....
 l200n/order=x $2[l=1,i=0:14:7]
@@ -39796,7 +39800,7 @@ l200n/order=x $2[l=1,i=0:14:7]
 set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  !-> list/width=200/nohead v2d_irr[i=1,l=1:15:2]
  dealloc  dynamic grid (G006)          (AX005)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- -DELETE V2D_IRR  M:148 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE V2D_IRR  M:152 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
  dealloc  dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
@@ -39807,9 +39811,9 @@ set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
  strip moduloing V2D_IRR on T axis:     1    15 dset:   1
  rdstride V2D_IRR  C:  9 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
  doing moduloing V2D_IRR on T axis:     1     5 dset:   1
- -DELETE V2D_IRR  M:148 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- nulrgd  V2D_IRR  M:148 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_IRR  M:149 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
+ -DELETE V2D_IRR  M:152 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
+ nulrgd  V2D_IRR  M:152 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ -DELETE V2D_IRR  M:153 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
  dealloc  dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
  16-JAN-0000 / 1:   11.0
  15-MAR-0000 / 2:   70.2
@@ -39903,7 +39907,7 @@ list $1_strings[i=1013:1024] 	! via IS_MODULO
  14642    / 1024:"a2"
  
  
-*** Running test: bn_dots.jnl
+*** Running ferret script: bn_dots.jnl
 [?1034h! PLOT/SYMBOL=DOT  qualifiers
 ! *acm* 12/02
 ! ACM 4/2005 set mode meta to save this plot for the metafile checks.
@@ -39922,7 +39926,7 @@ plot/symbol=dot/size=0.5/over/i=1:1000 -0.5*sin(62.8*(i+10) )
 ! Vector plots with null-size vectors
  
 vector/i=1:5/j=1:5 0.*(i+j),0*(i+j)
-*** Running test: bn_lev_symbols.jnl
+*** Running ferret script: bn_lev_symbols.jnl
 [?1034h! Test symbols which capture the latest LEVELS settings
 ! LEV_TEXT  The argument, if any, to the LEV qualifier
 ! LEV_MIN  Minimum level
@@ -39971,7 +39975,7 @@ LEV_TEXT = "(0,80,3),(56),DARK(56)"
 LEV_MIN = "0"
 LEV_MAX = "81"
 LEV_NUM = "28"
-LEV_DEL = "3"
+LEV_DEL = "irregular"
  
 contour/over/i=1:15/j=1:5/lev=50 i*j
 sho sym lev*
@@ -39997,7 +40001,7 @@ LEV_MIN = "33"
 LEV_MAX = "33"
 LEV_NUM = "1"
 LEV_DEL = "none"
-*** Running test: bn_mode_logo_lab.jnl
+*** Running ferret script: bn_mode_logo_lab.jnl
 [?1034h 
 ! bn_mode_logo_lab.jnl
 ! cancel both logo and labels
@@ -40030,7 +40034,7 @@ show modes
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -40093,7 +40097,7 @@ polygon/axes=1,0,1,0 {1,2,1}, {2,1,0.5}
 cancel view
 cancel mode logo
 set mode labels
-*** Running test: bn_modulo_attribute.jnl
+*** Running ferret script: bn_modulo_attribute.jnl
 [?1034h! Ferret V5.50 m
  
 ! Modulo attribute can take numerical values to indicate
@@ -40132,7 +40136,7 @@ T0 = %%
 T0 = %%
    Axis span (to cell edges) = 40 (modulo length = axis span)
  
-*** Running test: bn550_bug_fixes.jnl
+*** Running ferret script: bn550_bug_fixes.jnl
 [?1034h! bn550_bug_fixes.jnl
 ! test various fixes that went into version 5.5
 ! 10/02 *acm*
@@ -40149,7 +40153,7 @@ use err542_poly_over_calendar.nc
 shade pc
 poly/over/color=red/line=2/title="polygon" {220,240,280,250},{-20,70,40,-30}
  
-*** Running test: bn551_bug_fixes.jnl
+*** Running ferret script: bn551_bug_fixes.jnl
 [?1034h! bn551_bug_fixes.jnl
 ! test various fixes that went into version 5.51
 ! 2/03 *acm*
@@ -40379,7 +40383,7 @@ GO err550_dots_thickpens.jnl
 ! also for vector plots having short vectors that are plotted with dots.
  
 plot/sym=dot/color=8/i=1:10 i
-*** Running test: bn_multi_line_labels.jnl
+*** Running ferret script: bn_multi_line_labels.jnl
 [?1034h     ! bn_multi_line_labels.jnl
 ! March 31, 2003
 !
@@ -40507,7 +40511,7 @@ the at sign in front of P2 not recognized"
 ppl plot
  
 ppl rlabs,4,0
-*** Running test: bn552_bug_fixes.jnl
+*** Running ferret script: bn552_bug_fixes.jnl
 [?1034h! bn552_bug_fixes.jnl
 ! test various fixes that went into version 5.52
 ! 3/03 *acm*
@@ -40773,10 +40777,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G003)
     GRID (G003)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -40991,7 +40995,7 @@ use bad_taxis.nc
 list/t=1-jan-1990 dummy
  
 SET MODE/LAST IGNORE_ERROR
-*** Running test: bn_set_var_scale_off.jnl
+*** Running ferret script: bn_set_var_scale_off.jnl
 [?1034h! Qualifiers /SCALEFACTOR=  and /OFFSET  for SET VARIABLE.
 ! Only for NetCDF datasets
 ! Applied after NetCDF Scale_factor and add_offset attributes
@@ -41013,8 +41017,8 @@ LIST/NOHEAD/PREC=6 elev[x=@ave,y=@ave]
 ! Output the values of the scales and offsets
  
 SAY `elev,RETURN=nc_scale`
- !-> MESSAGE/CONTINUE 0.0002746749679546
-0.0002746749679546
+ !-> MESSAGE/CONTINUE 0.000274675
+0.000274675
 SAY `elev,RETURN=nc_off`
  !-> MESSAGE/CONTINUE 0
 0
@@ -41036,7 +41040,7 @@ SET VAR/OFFSET=1 x1
 SET VAR/SCALE=10 x2
  
 SET MODE/LAST IGNORE_ERROR
-*** Running test: bn_longvarnames.jnl
+*** Running ferret script: bn_longvarnames.jnl
 [?1034h! variable names up to 128 characters long
 ! 3/2006 make them 127 to be able to add the null terminator for C strings
 !        else not used correctly in linked-list attribute structure.
@@ -41073,8 +41077,8 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is XABSTRACT
  Last successful data access was on grid XABSTRACT
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -41137,7 +41141,7 @@ LIST/K=2/L=3 a234567890b234567890c234567890d234567890e234567890f234567890g234567
  2   / 2:   7.00  11.00  15.00  19.00  23.00
  3   / 3:   9.00  15.00  21.00  27.00  33.00
  4   / 4:  11.00  19.00  27.00  35.00  43.00
-*** Running test: bn_shakey.jnl
+*** Running ferret script: bn_shakey.jnl
 [?1034h! Changes to shade key:
 ! - Default size is a little bigger
 ! - To put key labels on the left or bottom of the key, multiply the size by -1
@@ -41262,7 +41266,7 @@ ppl list shakey
 
          X LO     X HI     Y LO     Y HI
          1.20     9.20    -1.40    -1.31
-*** Running test: bn_eof_4d.jnl
+*** Running ferret script: bn_eof_4d.jnl
 [?1034h! bn_eof_4d.jnl
 ! test EOFs on XYZT grids
  
@@ -41360,7 +41364,6 @@ set view ul
 plot eofti[i=1,k=1], eofti[i=2,k=1], eofti[i=3,k=1]
 list eofti[l=1:5,i=1,k=1]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=14-AUG-1982 11:00:13-JAN-1983 13:00
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -41376,7 +41379,6 @@ set view ur
 plot eofti[i=1,k=5], eofti[i=2,k=5], eofti[i=3,k=5]
 list eofti[l=1:5,i=1,k=5]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=14-AUG-1982 11:00:13-JAN-1983 13:00
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -41393,7 +41395,6 @@ set view ll
 plot eofti[i=1,k=8], eofti[i=2,k=8], eofti[i=3,k=8]
 list eofti[l=1:5,i=1,k=8]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=14-AUG-1982 11:00:13-JAN-1983 13:00
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -41409,7 +41410,6 @@ set view lr
 plot eofti[i=1,k=4], eofti[i=2,k=10], eofti[i=3,k=10]
 list eofti[l=1:5,i=1,k=10]
              VARIABLE : EOFSVD_TFUNC (TEMP[I=91:95,J=36:40,K=1:10])
-                        T=14-AUG-1982 11:00:13-JAN-1983 13:00
              FILENAME : eofti.cdf
              SUBSET   : 5 points (TIME)
              X        : 1
@@ -41473,7 +41473,7 @@ list/nohead/i=1:5/j=3/k=9 eofst
  
  
 exit/script
-*** Running test: bn_abstract_axis_names.jnl
+*** Running ferret script: bn_abstract_axis_names.jnl
 [?1034h! bn_abstract_axis_names.jnl
 ! acm 6/12/03
 !
@@ -41532,10 +41532,10 @@ cancel axis long
 use confuse_xz.nc
 sh grid r
     GRID GAP1
- name       axis              # pts   start                end
- HORIZ     X                   10 r   1                    10
+ name       axis              # pts   start                end                 subset
+ HORIZ     X                   10 r   1                    10                  full
  normal    Y
- XXX       Z                    6 r   -4                   1
+ XXX       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -41544,10 +41544,10 @@ can data 1
 use confuse_yz.nc
 sh grid s
     GRID GBA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- THE       Y                    8 r   10                   80
- XXX       Z                    6 r   -4                   1
+ THE       Y                    8 r   10                   80                  full
+ XXX       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -41556,11 +41556,11 @@ can data 1
 use confuse_yt.nc
 sh grid u
     GRID GGY1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- THE       Y                    8 r   10                   80
+ THE       Y                    8 r   10                   80                  full
  normal    Z
- LONG      T                    7 r   1                    13
+ LONG      T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
@@ -41568,11 +41568,11 @@ can data 1
 use confuse_yzt.nc
 sh grid v
     GRID GFA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- THE       Y                    8 r   10                   80
- XXX       Z                    6 r   -4                   1
- LONG      T                    7 r   1                    13
+ THE       Y                    8 r   10                   80                  full
+ XXX       Z                    6 r   -4                   1                   full
+ LONG      T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
@@ -41628,10 +41628,10 @@ cancel axis ddd
 use confuse_xz.nc
 sh grid r
     GRID GAP1
- name       axis              # pts   start                end
- AAA       X                   10 r   1                    10
+ name       axis              # pts   start                end                 subset
+ AAA       X                   10 r   1                    10                  full
  normal    Y
- CCC       Z                    6 r   -4                   1
+ CCC       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -41640,10 +41640,10 @@ can data 1
 use confuse_yz.nc
 sh grid s
     GRID GBA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- BBB       Y                    8 r   10                   80
- CCC       Z                    6 r   -4                   1
+ BBB       Y                    8 r   10                   80                  full
+ CCC       Z                    6 r   -4                   1                   full
  normal    T
  normal    E
  normal    F
@@ -41652,11 +41652,11 @@ can data 1
 use confuse_yt.nc
 sh grid u
     GRID GGY1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- BBB       Y                    8 r   10                   80
+ BBB       Y                    8 r   10                   80                  full
  normal    Z
- DDD       T                    7 r   1                    13
+ DDD       T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
@@ -41664,15 +41664,15 @@ can data 1
 use confuse_yzt.nc
 sh grid v
     GRID GFA1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- BBB       Y                    8 r   10                   80
- CCC       Z                    6 r   -4                   1
- DDD       T                    7 r   1                    13
+ BBB       Y                    8 r   10                   80                  full
+ CCC       Z                    6 r   -4                   1                   full
+ DDD       T                    7 r   1                    13                  full
  normal    E
  normal    F
 can data 1
-*** Running test: bn_many_polygons.jnl
+*** Running ferret script: bn_many_polygons.jnl
 [?1034h! testing large number of polygons in a plot.  Map plot has
 ! 130501 polygons; previously we had an upper limit of 100K polygons
  
@@ -41700,7 +41700,7 @@ let ytriangle = ysequence({-1,1,-1})
 let xpts = 180 + 30*randu(i[i=1:10])
 let ypts = 30*randu(1+i[i=1:10])
 polygon xtriangle+xpts, ytriangle+ypts, i[i=1:10]
-*** Running test: bn_fill_irregular.jnl
+*** Running ferret script: bn_fill_irregular.jnl
 [?1034h! FILL on vars with irregular axes
  
 use gtbc011
@@ -41721,95 +41721,116 @@ fill v2d_irr[t=1-jan-1990:1-jan-1995]
  
 use coads_clim_irreg.des
 fill/x=180 sst
-*** Running test: bn_xml_output.jnl
+*** Running ferret script: bn_xml_output.jnl
 [?1034h!bn_xml_output.jnl
 ! new-V553 output in XML-style format
 ! Illustrate the SHOW commands with /XML xml-style output
 ! V5.80 11/04 new tests for SHOW VAR/XML; global variables.
  
-! 22-Feb-2005 use SHO AXIS/XML `temp,return=taxis` instead
+! 22-Feb-2005 USE SHO AXIS/XML `temp,return=taxis` instead
 ! of naming the axes; other axes of the same name (e.g. TIME)
 ! may have been defined in other benchmark scrips.
  
-USE gtsa056_2.cdf
+USE levitus_climatology.cdf
  
 SHO DATA/XML
 <datasets>
-<dataset name="./gtsa056_2.cdf" default="true">
+<dataset name="./levitus_climatology.cdf" default="true">
 <title> </title>
 <var name="TEMP" />
-<var name="U" />
-<var name="W" />
-<var name="TAUX" />
 </dataset>
 </datasets>
  
-SHO DATA/VAR/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="true">
-<title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
-   <value><![CDATA[deg. C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DT1">
+SHO GRID/XML `temp,return=grid`
+ !-> SHO GRID/XML GMS1
+<grid name="GMS1">
 <axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME</taxis>
+<xaxis>XAXLEVITR1_160</xaxis>
+<yaxis>YAXLEVITR1_90</yaxis>
+<zaxis>ZAXLEVITR1_1</zaxis>
 </axes>
 </grid>
-</var>
-<var name="U">
+ 
+SHO AXIS/XML `temp,return=zaxis`
+ !-> SHO AXIS/XML ZAXLEVITR1_1
+<axes>
+<axis name="ZAXLEVITR1_1">
+<attribute name="direction" type="char">
+   <value><![CDATA[K]]></value>
+</attribute>
 <attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
+   <value><![CDATA[METERS]]></value>
 </attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL VELOCITY]]></value>
+<attribute name="length" type="short">
+   <value>1</value>
 </attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
+<attribute name="start" type="double">
+   <value>0</value>
 </attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
+<attribute name="end" type="double">
+   <value>0</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+<attribute name="positive" type="char">
+   <value><![CDATA[down]]></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>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="PS3DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME</taxis>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[ZAXLEVITR1_1]]></value>
+</attribute>
+</axis>
 </axes>
-</grid>
-</var>
-<var name="W">
+SHO AXIS/XML `temp,return=taxis`
+ !-> SHO AXIS/XML NORMAL
+ 
+can dat/all
+ 
+! make some short files
+let/units="meters" myvar = 7
+save/clobber/file=a.nc myvar
+ 
+LET ddat = ZSEQUENCE({1126,1136,1146,1156,1166})
+save/clobber/file=b.nc ddat
+can var/all
+go bn_reset
+cancel mode verify
+ 
+USE a.nc
+USE b.nc
+ 
+! Define a dataset variable
+! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
+LET/D=a temp_av = ddat[d=2,X=@AVE]
+ 
+SHOW DATA/XML
+<datasets>
+<dataset name="./a.nc" default="false">
+<title> </title>
+<var name="MYVAR" />
+<var name="temp_av" />
+</dataset>
+<dataset name="./b.nc" default="true">
+<title> </title>
+<var name="DDAT" />
+</dataset>
+</datasets>
+SHO DATA/VAR/XML 1
+<datasets>
+<dataset name="./a.nc" default="false">
+<title> </title>
+<var name="MYVAR">
 <attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
+   <value><![CDATA[meters]]></value>
 </attribute>
 <attribute name="long_name" type="char">
-   <value><![CDATA[VERTICAL VELOCITY]]></value>
+   <value><![CDATA[7]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
    <value>-1.E+34</value>
@@ -41821,23 +41842,16 @@ SHO DATA/VAR/XML
    <value><![CDATA[FLOAT]]></value>
 </attribute>
 <attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="PS3DW1">
+<grid name="GSI1">
 <axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZW</zaxis>
-<taxis>TIME</taxis>
 </axes>
 </grid>
 </var>
-<var name="TAUX">
-<attribute name="units" type="char">
-   <value><![CDATA[dynes/cm**2]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL WIND STRESS]]></value>
+<var name="temp_av">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[D=2,X=@AVE]]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
    <value>-1.E+34</value>
@@ -41848,1132 +41862,217 @@ SHO DATA/VAR/XML
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
 </attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+<attribute name="long_name" type="char">
+   <value><![CDATA[DDAT[D=2,X=@AVE]]]></value>
 </attribute>
-<grid name="PS2DU1">
+<grid name="GRR1">
 <axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<taxis>TIME</taxis>
+<zaxis>ZAX1_5</zaxis>
 </axes>
 </grid>
 </var>
 </dataset>
 </datasets>
 <axes>
-<axis name="PSXT">
+<axis name="ZAX1_5">
 <attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LONGITUDE]]></value>
+   <value><![CDATA[K]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>160</value>
+   <value>5</value>
 </attribute>
 <attribute name="start" type="double">
-   <value>130.5</value>
+   <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>289.5</value>
+   <value>5</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="modulo_length" type="short">
-   <value>360</value>
+   <value>no</value>
 </attribute>
 <attribute name="infile_datatype" type="char">
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSXT]]></value>
-</attribute>
-</axis>
-<axis name="PSXU">
-<attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LONGITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>131</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>290</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
+<attribute name="axis" type="char">
+   <value><![CDATA[Z]]></value>
 </attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSXU]]></value>
+   <value><![CDATA[ZAX1_5]]></value>
 </attribute>
 </axis>
-<axis name="PSYT">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
+</axes>
+ 
+CAN DAT/ALL
+ 
+! tests of SHOW VAR/XML for global variables.
+CAN DATA/ALL
+CAN VAR/ALL
+ 
+USE a
+USE b
+ 
+! Define a dataset variable
+LET/D=b temp_20 ddat[x=1:2 at SUM]
+ 
+! Define a global variable
+LET t30 = ddat[x=1:3 at SUM]
+ 
+! Another variable, setting title, units, bad flag.
+LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral" salty = temp[x=@iin]
+ 
+! Define a constant
+LET pi = 3.14
+ 
+! Another variable, irrelevant in the current context
+LET my_a = a*12
+ 
+! This lists all the variables except my_a
+ 
+SHO VAR/XML
+<global>
+<var name="TEMP_20[D=./b.nc]">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[X=1:2 at SUM]]]></value>
 </attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="length" type="short">
-   <value>100</value>
+<grid name="GRR1">
+<axes>
+<zaxis>ZAX1_5</zaxis>
+</axes>
+</grid>
+</var>
+<var name="PI">
+<attribute name="definition" type="char">
+   <value><![CDATA[3.14]]></value>
 </attribute>
-<attribute name="start" type="double">
-   <value>-28.83607</value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="end" type="double">
-   <value>48.56797</value>
+<grid name="ABSTRACT">
+<axes>
+</axes>
+</grid>
+</var>
+<var name="T30">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[X=1:3 at SUM]]]></value>
 </attribute>
-<attribute name="point_spacing" type="char">
-   <value>uneven</value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="modulo" type="char">
-   <value>no</value>
+<grid name="GRR1">
+<axes>
+<zaxis>ZAX1_5</zaxis>
+</axes>
+</grid>
+</var>
+</global>
+ 
+! Now change datasets, so my_a has a context, but t30
+! does not. temp_20 is listed becaUSE it is defined on a dataset
+ 
+SET DATA a
+SHO VAR/XML
+<global>
+<var name="TEMP_20[D=./b.nc]">
+<attribute name="definition" type="char">
+   <value><![CDATA[DDAT[X=1:2 at SUM]]]></value>
 </attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYT_bnds]]></value>
+<grid name="GRR1">
+<axes>
+<zaxis>ZAX1_5</zaxis>
+</axes>
+</grid>
+</var>
+<var name="PI">
+<attribute name="definition" type="char">
+   <value><![CDATA[3.14]]></value>
 </attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYT]]></value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-</axis>
-<axis name="PSYU">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
+<grid name="ABSTRACT">
+<axes>
+</axes>
+</grid>
+</var>
+</global>
+ 
+! Change default dataset. Now we should just see pi and my_a
+ 
+CAN DATA b
+SHOW VAR/XML
+<global>
+<var name="PI">
+<attribute name="definition" type="char">
+   <value><![CDATA[3.14]]></value>
 </attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="length" type="short">
-   <value>100</value>
+<grid name="ABSTRACT">
+<axes>
+</axes>
+</grid>
+</var>
+</global>
+ 
+! 8/7/2007
+! new form for output of a var whose definition contains quotes
+CANCEL DATA/ALL
+CANCEL VAR/ALL
+ 
+let tvar = t[gt=month_reg]
+save/clobber/file=a.nc tvar
+ 
+USE a
+LET t3 = tvar[t="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]
+SHOW VAR/XML
+<global>
+<var name="T3">
+<attribute name="definition" type="char">
+   <value><![CDATA[TVAR[T="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]]]></value>
 </attribute>
-<attribute name="start" type="double">
-   <value>-27.67214</value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="end" type="double">
-   <value>50.00005</value>
+<grid name="GSI1">
+<axes>
+</axes>
+</grid>
+</var>
+<var name="TVAR">
+<attribute name="definition" type="char">
+   <value><![CDATA[T[GT=MONTH_REG]]]></value>
 </attribute>
-<attribute name="point_spacing" type="char">
-   <value>uneven</value>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
 </attribute>
-<attribute name="modulo" type="char">
-   <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYU_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYU]]></value>
-</attribute>
-</axis>
-<axis name="PSZT">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>3824</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-<axis name="PSZW">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>10</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>4149</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZW_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZW]]></value>
-</attribute>
-</axis>
-<axis name="TIME">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>168</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>1983-06-07 13: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[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[TIME]]></value>
-</attribute>
-</axis>
-</axes>
- 
-SHO GRID/XML ps3du1
-<grid name="PS3DU1">
+<grid name="GSI1">
 <axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME</taxis>
+<taxis>MONTH_REG</taxis>
 </axes>
 </grid>
+</var>
+</global>
  
-SHO AXIS/XML `temp,return=xaxis`
- !-> SHO AXIS/XML PSXT
-<axes>
-<axis name="PSXT">
-<attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LONGITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>130.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>289.5</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSXT]]></value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=yaxis`
- !-> SHO AXIS/XML PSYT
-<axes>
-<axis name="PSYT">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-28.83607</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>48.56797</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYT]]></value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=zaxis`
- !-> SHO AXIS/XML PSZT
-<axes>
-<axis name="PSZT">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>3824</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=taxis`
- !-> SHO AXIS/XML TIME
-<axes>
-<axis name="TIME">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>168</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>1983-06-07 13: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[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[TIME]]></value>
-</attribute>
-</axis>
-</axes>
- 
-! Define a dataset variable
-! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
-LET/D=gtsa056_2 temp_180 = temp[X=160E:160W at AVE]
- 
-USE coads_climatology
- 
-SHOW DATA/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="false">
-<title> </title>
-<var name="TEMP" />
-<var name="U" />
-<var name="W" />
-<var name="TAUX" />
-<var name="TEMP_180" />
-</dataset>
-<dataset name="./coads_climatology.cdf" default="true">
-<title> </title>
-<var name="SST" />
-</dataset>
-</datasets>
-SHO DATA/VAR/XML
-<datasets>
-<dataset name="./gtsa056_2.cdf" default="false">
-<title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
-   <value><![CDATA[deg. C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME</taxis>
-</axes>
-</grid>
-</var>
-<var name="U">
-<attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL VELOCITY]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME</taxis>
-</axes>
-</grid>
-</var>
-<var name="W">
-<attribute name="units" type="char">
-   <value><![CDATA[cm/sec]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[VERTICAL VELOCITY]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS3DW1">
-<axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZW</zaxis>
-<taxis>TIME</taxis>
-</axes>
-</grid>
-</var>
-<var name="TAUX">
-<attribute name="units" type="char">
-   <value><![CDATA[dynes/cm**2]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[ZONAL WIND STRESS]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="PS2DU1">
-<axes>
-<xaxis>PSXU</xaxis>
-<yaxis>PSYU</yaxis>
-<taxis>TIME</taxis>
-</axes>
-</grid>
-</var>
-<var name="temp_180">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[X=160E:160W at AVE]]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[TEMP[X=160E:160W at AVE]]]></value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<yaxis>PSYT</yaxis>
-<zaxis>PSZT</zaxis>
-<taxis>TIME</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="PSXT">
-<attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LONGITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>130.5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>289.5</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSXT]]></value>
-</attribute>
-</axis>
-<axis name="PSXU">
-<attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LONGITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>160</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>131</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>290</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="modulo_length" type="short">
-   <value>360</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSXU]]></value>
-</attribute>
-</axis>
-<axis name="PSYT">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-28.83607</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>48.56797</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYT]]></value>
-</attribute>
-</axis>
-<axis name="PSYU">
-<attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[LATITUDE]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>100</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-27.67214</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>50.00005</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSYU_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSYU]]></value>
-</attribute>
-</axis>
-<axis name="PSZT">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>5</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>3824</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZT_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZT]]></value>
-</attribute>
-</axis>
-<axis name="PSZW">
-<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>27</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>10</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>4149</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[DOUBLE]]></value>
-</attribute>
-<attribute name="bounds" type="char">
-   <value><![CDATA[PSZW_bnds]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[PSZW]]></value>
-</attribute>
-</axis>
-<axis name="TIME">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>168</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>1982-01-15 14:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>1983-06-07 13: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[1976-01-14 14:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[TIME]]></value>
-</attribute>
-</axis>
-</axes>
-<dataset name="./coads_climatology.cdf" default="true">
-<title> </title>
-<var name="SST">
-<attribute name="units" type="char">
-   <value><![CDATA[Deg C]]></value>
-</attribute>
-<attribute name="long_name" type="char">
-   <value><![CDATA[SEA SURFACE TEMPERATURE]]></value>
-</attribute>
-<attribute name="_FillValue" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME1</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="COADSX">
-<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>180</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>21</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>379</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="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSX]]></value>
-</attribute>
-</axis>
-<axis name="COADSY">
-<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>90</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-89</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>89</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[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSY]]></value>
-</attribute>
-</axis>
-<axis name="TIME1">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>3</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>0000-01-16 06:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>0000-03-17 02:58:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
-   <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
-   <value><![CDATA[0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
-   <value>8765.82</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[TIME]]></value>
-</attribute>
-</axis>
-</axes>
- 
- 
-! tests of SHOW VAR/XML for global variables.
-CAN DATA/ALL
-CAN VAR/ALL
- 
-USE coads_climatology
-USE gtsa056_2
- 
-! Define a dataset variable
-LET/D=gtsa056_2 temp_20 temp[Z=0:20 at SUM]
- 
-! Define a global variable
-LET t30 = temp[Z=0:30 at SUM]
- 
-! Another variable, setting title, units, bad flag.
-LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral of SALT" salty = salt[Z=@IIN]
- 
-! Define a constant
-LET pi = 3.14
- 
-! Another variable, irrelevant in the current context
-LET my_sst = sst*12
- 
-! This lists all the variables except my_sst
- 
-SHO VAR/XML
-<global>
-<var name="TEMP_20[D=./gtsa056_2.cdf]">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=0:20 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME1</taxis>
-</axes>
-</grid>
-</var>
-<var name="PI">
-<attribute name="definition" type="char">
-   <value><![CDATA[3.14]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="ABSTRACT">
-<axes>
-</axes>
-</grid>
-</var>
-<var name="T30">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=0:30 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME1</taxis>
-</axes>
-</grid>
-</var>
-</global>
- 
-! Now change datasets, so my_sst has a context, but t30
-! does not temp_20 is listed because it is defined on a dataset
- 
-SET DATA coads_climatology
-SHO VAR/XML
-<global>
-<var name="TEMP_20[D=./gtsa056_2.cdf]">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=0:20 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="PS3DT1">
-<axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME1</taxis>
-</axes>
-</grid>
-</var>
-<var name="MY_SST">
-<attribute name="definition" type="char">
-   <value><![CDATA[SST*12]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME</taxis>
-</axes>
-</grid>
-</var>
-<var name="PI">
-<attribute name="definition" type="char">
-   <value><![CDATA[3.14]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="ABSTRACT">
-<axes>
-</axes>
-</grid>
-</var>
-</global>
- 
-! Change default dataset. Now we should just see pi and my_sst
- 
-CAN DATA gtsa056_2
-SHOW VAR/XML
-<global>
-<var name="MY_SST">
-<attribute name="definition" type="char">
-   <value><![CDATA[SST*12]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME</taxis>
-</axes>
-</grid>
-</var>
-<var name="PI">
-<attribute name="definition" type="char">
-   <value><![CDATA[3.14]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="ABSTRACT">
-<axes>
-</axes>
-</grid>
-</var>
-</global>
- 
-! 8/7/2007
-! new form for output of a var whose definition contains quotes
-CANCEL DATA/ALL
-CANCEL VAR/ALL
- 
-USE coads_climatology
-LET t3 = sst[x=180,y=1,t="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]
-SHOW VAR/XML
-<global>
-<var name="T3">
-<attribute name="definition" type="char">
-   <value><![CDATA[SST[X=180,Y=1,T="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
-<grid name="GSQ1">
-<axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-</axes>
-</grid>
-</var>
-</global>
- 
-*** Running test: bn_test_nan.jnl
-[?1034h!bn_test_nan.jnl
-! test to make sure that NaN is able to be set by user
-!  as bad value.  If this fails, Ferret will crash
-!  Test on a file which is nothing but NaN's, and use
-!  various spellings of NaN
-!
-! 9/03 *kob*
-!
+*** Running ferret script: bn_test_nan.jnl
+[?1034h!bn_test_nan.jnl
+! test to make sure that NaN is able to be set by user
+!  as bad value.  If this fails, Ferret will crash
+!  Test on a file which is nothing but NaN's, and use
+!  various spellings of NaN
+!
+! 9/03 *kob*
+!
  
  
  
@@ -43041,7 +42140,7 @@ can var/all
  
  
  
-*** Running test: bn553_bug_fixes.jnl
+*** Running ferret script: bn553_bug_fixes.jnl
 [?1034h! bn553_bug_fixes.jnl
 ! test various fixes that went into version 5.52
 ! 9/03 *kob*
@@ -43126,7 +42225,7 @@ ppl axlen 6
 ppl shakey 1,1,.12
 ppl shade
  
-*** Running test: bn_graticules.jnl
+*** Running ferret script: bn_graticules.jnl
 [?1034h! /GRAT, /HGRAT and /VGRAT to set graticule lines
 ! ACM March 12, 2004
 ! ACM 4/2005 set mode meta to save one of the plots for the metafile checks.
@@ -43234,7 +42333,7 @@ can mode graticule
  
 pplus/reset   ! restore tics etc
  
-*** Running test: bn_repeat_range.jnl
+*** Running ferret script: bn_repeat_range.jnl
 [?1034h! REPEAT/RANGE=[/NAME=]  for looping without depending
 ! on the grid\
 ! ACM March 12, 2004
@@ -43591,16 +42690,16 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
 !-> REPEAT: M:300
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:300 at ave,y=@ave]
- -DELETE cnst     M:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:  7 dset:   1 I:  131  140  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 11 dset:   1 I:  131  140  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -43612,16 +42711,16 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:  5 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  4 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:330 at ave,y=@ave]
- -DELETE cnst     M:  5 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:  5 dset:   1 I:  131  155  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:  9 dset:   1 I:  131  155  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -43633,16 +42732,16 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 13 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  2 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:360 at ave,y=@ave]
- -DELETE cnst     M: 13 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M: 13 dset:   1 I:  131  170  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:  3 dset:   1 I:  131  170  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  doing --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -43731,7 +42830,7 @@ repeat/range=1:4/name=a (repeat/range=3:1:-1/name=a list a)
 !-> REPEAT: A:3
 !-> REPEAT: A:4
 cancel mode ignore
-*** Running test: bn554_bug_fixes.jnl
+*** Running ferret script: bn554_bug_fixes.jnl
 [?1034h! bn554_bug_fixes.jnl
 ! test various fixes that went into version 5.54
 ! 11/03 *acm*
@@ -44090,52 +43189,53 @@ let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
 load a
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
  strip regrid on X: TAUX --> (G005)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:  8 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M: 11 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
+ nulrgd  TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M: 24 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
 can mem/all
- -DELETE TAUX     M:  8 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE A        M: 11 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE A        M: 24 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  
 def grid/like=taux agrid
- dealloc  dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
  getgrid EX#1     C:  6 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME      NORMAL    NORMAL
 set mode diag
 let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
  dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME      NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX004)   (AX002)   NORMAL    (AX005)   NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
 load a
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
+ allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
  strip regrid on X: TAUX --> (G005)           @XACT
  rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:  8 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M: 11 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
+ nulrgd  TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M: 24 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
  
 can mem/all
- -DELETE TAUX     M:  8 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE A        M: 11 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -DELETE A        M: 24 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
 can data/all
- dealloc  dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX002)   (AX004)   NORMAL    (AX001)   NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
+ canceling dset ./gtsa056_2.cdf
  
 ! Some tests taken from  bn_strides_revs_perms.jnl but with
 ! DEFINE GRID/LIKE= testing permuting and reversing axes
@@ -44164,6 +43264,7 @@ define grid/like=xytvar egrid
  allocate dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
 canc data/all
  dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
  
 ! cache hit from full region cache -- bypass use of strides
@@ -44172,20 +43273,20 @@ use bn_strides
 load var
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  eval    EX#1     C:  4 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M: 11 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ reading VAR      M: 24 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 LIST VAR[i=2:4:2]
  dealloc  dynamic grid AGRID           XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G006)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  7 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  8 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 22 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 23 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -44200,19 +43301,19 @@ LIST VAR[i=2:4:2]
  2   / 2:  1222.  1224.
  3   / 3:  1232.  1234.
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:  7 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M: 22 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX003)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX003)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX003)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX003)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G006)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  8 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX003)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 22 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44227,25 +43328,25 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.  1214.
  3   / 2:  1232.  1234.
 CANC MEM/ALL
- -DELETE VAR      M:  8 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 11 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 24 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  
 ! modulo requests cannot use strides (as this example shows)
 set axis/modulo XAX1_4
 LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
- dealloc  dynamic grid (G006)          (AX003)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX003)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX003)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX003)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX003)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G006)           @XACT
  strip moduloing VAR on X axis:     1    10 dset:   1
- reading VAR      M: 11 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ reading VAR      M: 24 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  doing moduloing VAR on X axis:     1     4 dset:   1
- regrid  VAR      M:  7 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX003)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ regrid  VAR      M: 22 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -44260,24 +43361,24 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
  7    / 3:  1113.
  10   / 4:  1112.
 cancel axis/modulo XAX1_4
- -DELETE VAR      M:  7 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  8 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 11 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 22 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 23 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 24 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  
 ! strides applied to more than one axis need special attention in IS_REGRID
 LIST VAR[i=2:4:2,j=1:3:2]
- dealloc  dynamic grid (G006)          (AX003)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G006)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  8 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 11 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 24 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44292,19 +43393,19 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.  1214.
  3   / 2:  1232.  1234.
 LIST VAR[i=2:6:2,j=1:5:2]
- dealloc  dynamic grid (G006)          (AX022)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:  8 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   (AX003)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX003)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX003)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX003)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
  strip regrid on X: VAR --> (G006)           @XACT
  rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  8 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX003)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ nulrgd  VAR      M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 23 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44321,24 +43422,24 @@ LIST VAR[i=2:6:2,j=1:5:2]
  
 ! test sub-region selection on strides axis
 let a = bigvar[i=1:40:5]
- dealloc  dynamic grid (G006)          (AX022)   (AX003)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ -DELETE VAR      M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 list/j=1/k=1/l=1 a[i=3:5]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  getgrid A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  8 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 11 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 23 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 24 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -44350,26 +43451,26 @@ list/j=1/k=1/l=1 a[i=3:5]
  11   / 3:  1121.
  16   / 4:  1126.
  21   / 5:  1131.
- -DELETE A        M:  7 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 22 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
 list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX022)   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX022)   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX022)   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    2    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX022)   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on Y: A --> (G007)           @XACT
  eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  3 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  7 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M: 14 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX022)   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 20 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 22 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ regrid  A        M:  8 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44386,27 +43487,27 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
 ! ****** unequally spaced points on parent axis
  
 cancel mem/all
- -DELETE BIGVAR   M:  3 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:  7 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  8 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 11 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 14 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:  8 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 20 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 22 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 23 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M: 24 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G007)          (AX022)   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX003)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX003)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX003)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX003)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
  strip regrid on X: UNEVENVAR --> (G007)           @XACT
  rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 11 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 14 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX003)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ nulrgd  UNE-NVAR M: 23 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M: 24 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -44424,19 +43525,19 @@ set region/i=3:6/j=2:4/k=1:2/l=1
  
 use/order=yx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc  dynamic grid (G007)          (AX003)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 11 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ -DELETE UNE-NVAR M: 23 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G007)          (AX021)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX021)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX021)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G007)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 14 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 11 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 23 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44453,23 +43554,24 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1345.  1347.  1349.
  6   / 3:  1363.  1365.  1367.  1369.
 canc data/all
- -DELETE BIGVAR   M: 14 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ canceling dset ./bn_strides.cdf
  
 use/order=zyx bn_strides
 list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_10   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
  strip regrid on X: BIGVAR --> (G006)           @XACT
  rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 11 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 14 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_10   NORMAL    NORMAL
+ nulrgd  BIGVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M: 24 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44486,8 +43588,9 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
  4   / 2:  1343.  1543.  1743.  1943.
  6   / 3:  1363.  1563.  1763.  1963.
 canc data/all
- -DELETE BIGVAR   M: 11 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! now with xytvar
 cancel region
@@ -44496,16 +43599,16 @@ use bn_strides
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 14 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 11 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 23 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -44523,31 +43626,31 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  
 use/order=tyx bn_strides
 show grid xytvar
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 14 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
+ -DELETE XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
     GRID EGRID
- name       axis              # pts   start                end
- XLON      LONGITUDE           40mr   141E                 180E
- YLAT      LATITUDE            30 r   1N                   30N
+ name       axis              # pts   start                end                 subset
+ XLON      LONGITUDE           40mr   141E                 180E                full
+ YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
- TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00
+ TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
  normal    E
  normal    F
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  dealloc  dynamic grid EGRID           XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX021)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX021)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX021)   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX021)   NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 11 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 14 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX021)   NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 24 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -44563,8 +43666,9 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
  4N   / 2:  5041.  5043.  5045.  5047.
  2N   / 1:  5021.  5023.  5025.  5027.
 canc data/all
- -DELETE XYTVAR   M: 11 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX021)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
+ -DELETE XYTVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -44572,10 +43676,10 @@ show grid xytvar
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
     GRID GPC5
- name       axis              # pts   start                end
- TTIME     X (DAYS)            20 r   34319                34338
- XLON      Y (degrees_east)    40mr   141                  180
- YLAT      Z (degrees_north)   30 r   1                    30
+ name       axis              # pts   start                end                 subset
+ TTIME     X (DAYS)            20 r   34319                34338               full
+ XLON      Y (degrees_east)    40mr   141                  180                 full
+ YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
  normal    E
  normal    F
@@ -44583,16 +43687,16 @@ show grid xytvar
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    NORMAL
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
  strip regrid on X: XYTVAR --> (G006)           @XACT
  rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 14 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 11 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   NORMAL    NORMAL    NORMAL
+ nulrgd  XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE XYTVAR   M: 23 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -44608,8 +43712,9 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
  144   / 2:  1054.  3054.  5054.  7054.
  146   / 3:  1056.  3056.  5056.  7056.
 canc data/all
- -DELETE XYTVAR   M: 14 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
  
 cancel region; set region/l=1
@@ -44618,16 +43723,16 @@ cancel region; set region/l=1
 use/order=yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G006)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 14 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_6    NORMAL    NORMAL
+ nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44642,25 +43747,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1512.  1552.
  5   / 2:  1515.  1555.
 canc data/all
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=-yx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   TAX1_6    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G006)           @XACT
  strip reversing MIDVAR on Y axis:     2     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    1    5  J:    5    8  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 14 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44675,23 +43781,24 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1518.  1558.
  5   / 2:  1515.  1555.
 canc data/all
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   TAX1_6    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=tyx bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G006)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 14 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ nulrgd  MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44706,26 +43813,27 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1125.  5125.
  5   / 2:  1155.  5155.
 canc data/all
- -DELETE MIDVAR   M: 14 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 use/order=-t-y-x bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G006)           @XACT
  strip reversing MIDVAR on X axis:     1     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    4    7  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M: 14 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 14 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44740,23 +43848,24 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6775.  2775.
  5   / 2:  6745.  2745.
 canc data/all
- -DELETE MIDVAR   M: 14 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! reference output
 use/order=txy bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G006)           @XACT
  rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 14 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44771,25 +43880,26 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  1152.  5152.
  5   / 2:  1155.  5155.
 canc data/all
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX021)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 use/order=-t-x-y bn_strides
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
  strip regrid on X: MIDVAR --> (G006)           @XACT
  strip reversing MIDVAR on Y axis:     2     5 dset:   1
  rdstride MIDVAR   C:  8 dset:   1 I:    2    6  J:    5    8  K:    3    5  L:    7    7  M: -999 -999  N: -999 -999
  doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 14 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44804,8 +43914,9 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
  2   / 1:  6758.  2758.
  5   / 2:  6755.  2755.
 canc data/all
- -DELETE MIDVAR   M: 11 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX022)   ZAX1_7    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ canceling dset ./bn_strides.cdf
  
 ! DEFINE AXIS can get the axis too long (bug 673)
 GO bn_reset
@@ -45016,7 +44127,7 @@ LEV_TEXT = "C"
 LEV_MIN = "1"
 LEV_MAX = "10.2"
 LEV_NUM = "46"
-LEV_DEL = "0.2"
+LEV_DEL = "irregular"
  
 can sym lev*
 ! Now with /LEV=(min,max,del)
@@ -45180,7 +44291,7 @@ list/wid=1024/y=1:2 sin(x[gx=xax]) + y[gy=yax]
  2   / 2:  2.841  1.008  2.951  1.273  2.363  2.071  1.509  2.817  1.015  2.964  1.243  2.404  2.027  1.548  2.790  1.023  2.975  1.215  2.444  1.982  1.588  2.763  1.034  2.984  1.188  2.483  1.938  1.629  2.733  1.046  2.991  1.163  2.521  1.894  1.670  2.702  1.060  2.996  1.140  2.559  1.850  1.712  2.670  1.076  2.999  1.118  2.595  1.807  1.755  2.637  1.094  3.000  1.098  2.630  1.763  1.798  2.602  1.114  2.999  1.080  2.663  1.721  1.841  2.566  1.135  2.996  1.064  2.696  1.679 [...]
  
 can mode ignore
-*** Running test: bn_bounds.jnl
+*** Running ferret script: bn_bounds.jnl
 [?1034h 
 ! bn_bounds.jnl
 ! testing CDF read and write of file with irregular axes and bounds
@@ -45542,7 +44653,7 @@ sh axis/t tax
        3>  9                     4          5.5
        4>  10                    1          9.5
        5>  11                    1          10.5
-*** Running test: bn_all_leap.jnl
+*** Running ferret script: bn_all_leap.jnl
 [?1034h! bn_all_leap.jnl
 ! ACM 6/2004
 ! Added ALL_LEAP, or 366_DAY calendar (which is in the CF conventions).
@@ -45592,7 +44703,7 @@ set mode ignore_error
 def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
  
 can mode ignore
-*** Running test: bn570_bug_fixes.jnl
+*** Running ferret script: bn570_bug_fixes.jnl
 [?1034h! bn554_bug_fixes.jnl
 ! test various fixes that went into version 5.70
 ! 11/03 *acm*
@@ -45829,7 +44940,7 @@ plot v[gt=tax at asn]
  
 def axis/t=07-feb-0599:07-feb-0600:1/units=years tt
 plot t[gt=tt]
-*** Running test: bn_modstats.jnl
+*** Running ferret script: bn_modstats.jnl
 [?1034h! bn_modstats.jnl
 ! acm 8/25/04
 ! There was never a benchmark test of modulo statistics.
@@ -45976,7 +45087,7 @@ list var[gt=month_reg at modngd]
  16-OCT      / 10:  10.00
  15-NOV      / 11:  10.00
  16-DEC      / 12:  10.00
-*** Running test: bn_mc_vary_scale.jnl
+*** Running ferret script: bn_mc_vary_scale.jnl
 [?1034h! bn_mc_vary_scale.jnl
 !   Allow stepfiles to have different internal scale and offset.
 !   read and apply when opening each stepfile. Previously, the
@@ -46054,7 +45165,7 @@ list/quiet/nohead `tt,return=nc_scale`, `tt,return=nc_offset`
  !-> list/quiet/nohead 2, -0.02
 I / *:     2.000 -0.02000
  
-*** Running test: bn_plot_nokey.jnl
+*** Running ferret script: bn_plot_nokey.jnl
 [?1034h! bn_plot_nokey.jnl (bug 1089)
 ! 22-nov-2004
  
@@ -46073,7 +45184,7 @@ USE gtsa056_2
 PLOT/X=180/Y=0/K=1 temp
 PLOT/OVER/NOKEY/X=180/Y=-1/K=1 temp
 PLOT/OVER/NOKEY/X=180/Y=1/K=1 temp
-*** Running test: bn580_bug_fixes.jnl
+*** Running ferret script: bn580_bug_fixes.jnl
 [?1034h! bn580_bug_fixes.jnl
 ! test various fixes that went into version 5.80
 ! 7/04 *acm*
@@ -46141,7 +45252,7 @@ use coads_climatology
 ppl dfltfnt cr
  
 define viewport/axes/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
- !-> define viewport/axes/xlim=0.1:0.85/ylim=0.3333333333333333:0.6666666666666666 vp_1
+ !-> define viewport/axes/xlim=0.1:0.85/ylim=0.3333333:0.6666667 vp_1
 set viewport vp_1
  
 fill/set/L=2 sst
@@ -46162,7 +45273,7 @@ ppl fill
 !
  
 define viewport/axes/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
- !-> define viewport/axes/xlim=0.1:0.85/ylim=0.3333333333333333:0.6666666666666666 vp_1
+ !-> define viewport/axes/xlim=0.1:0.85/ylim=0.3333333:0.6666667 vp_1
 set viewport vp_1
  
 shade/set/L=2 sst
@@ -47186,7 +46297,7 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  LAB 3  8.000E+00  6.550E+00 0.090    0  SYSTEM  @ASDATA SET: coads_climatology
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
- LAB 4  8.000E+00  6.750E+00 0.073    0  SYSTEM  @ASOPeNDAP URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+ LAB 4  8.000E+00  6.790E+00 0.064    0  SYSTEM  @ASOPeNDAP <NL>URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  
  
@@ -47230,7 +46341,7 @@ POLYGON XT, YT, I[I=1:10]
 ! Add the same fix to plot_set_up.F for PLOT/VS commands
  
 PLOT/VS XT, YT
-*** Running test: bn_inf_levels.jnl
+*** Running ferret script: bn_inf_levels.jnl
 [?1034h! Run FERRET/fer/ferretdods_gui
 ! test open upper and lower levels (-INF) (INF)
  
@@ -47257,7 +46368,7 @@ LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
 LEV_MIN = "-2.8"
 LEV_MAX = "32"
 LEV_NUM = "50"
-LEV_DEL = "6.8"
+LEV_DEL = "irregular"
  
 set view right
 shade/lev=(-inf),(4,28,0.5)(inf)/key=cont sst[l=1]
@@ -47266,7 +46377,7 @@ LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
 LEV_MIN = "-2.8"
 LEV_MAX = "32"
 LEV_NUM = "50"
-LEV_DEL = "6.8"
+LEV_DEL = "irregular"
  
  
 can view
@@ -47321,7 +46432,7 @@ shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst  ! set up
 go polymark poly/key/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequence(fsst), square, 0.4
  
  
-*** Running test: bn_regulart.jnl
+*** Running ferret script: bn_regulart.jnl
 [?1034h! bn_regulart.jnl
 ! 5/12/2005 ACM
  
@@ -47365,7 +46476,7 @@ list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
 18-MAY-1946 / 5:  89986.  30.44
 17-JUN-1946 / 6:  90017.  30.44
  
-*** Running test: bn_labwid.jnl
+*** Running ferret script: bn_labwid.jnl
 [?1034h! LABWID returns the length in Denbo inches of the
 ! string.  For multi-line strings, returns length of
 ! the longest line.
@@ -47390,7 +46501,7 @@ PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
 label/nouser 0,3,-1,0,.15,"@P2 at IILine1<NL>@IIA LONGER LINE"
 let wid = labwid("@P2 at IILine1<NL>@IIA LONGER LINE",.15)
 label/nouser `wid`, 3, -1, 0, .15,  "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
- !-> PPL %LABEL/nouser 2.019230842590332, 3, -1, 0, .15,  "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
+ !-> PPL %LABEL/nouser 2.019231, 3, -1, 0, .15,  "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
  
 LIST LABWID("aaaaabbbbb", .10)
              VARIABLE : LABWID("aaaaabbbbb", .10)
@@ -47422,7 +46533,7 @@ LIST LABWID("@IISTRING<NL>@SSSTRING", .15)
              VARIABLE : LABWID("@IISTRING<NL>@SSSTRING", .15)
              X        : 1
           0.9808
-*** Running test: bn_redefine_taxis_mc.jnl
+*** Running ferret script: bn_redefine_taxis_mc.jnl
 [?1034h! bn_redefine_taxis_mc.jnl
 ! ACM 15-Apr-2005
  
@@ -47485,7 +46596,7 @@ list/x=180/y=0 sst
  4   / 4:  28.22
  5   / 5:  28.49
  6   / 6:  28.32
-*** Running test: bn_illegal_axisname.jnl
+*** Running ferret script: bn_illegal_axisname.jnl
 [?1034h! Some OPenDAP HDF files have illegal axis names, e.g. with a dot in the name.
 ! This is a test of using such names, in a redefinition of the axes of the data.
 ! The file has a variable with axis names COADSX.ILLEGAL, COADSY.ILLEGAL. The axes contain
@@ -47531,14 +46642,14 @@ list/i=1:5 x[gx=sst]
 set view lower; shade sst
 sh grid sst
     GRID GEX1
- name       axis              # pts   start                end
- 'COADSX.ILLEGAL' LONGITUDE    21mr   21E                  61E
- 'COADSY.ILLEGAL' LATITUDE     16 r   35N                  65N
+ name       axis              # pts   start                end                 subset
+ 'COADSX.ILLEGAL' LONGITUDE    21mr   21E                  61E                 full
+ 'COADSY.ILLEGAL' LATITUDE     16 r   35N                  65N                 full
  normal    Z
  normal    T
  normal    E
  normal    F
-*** Running test: bn_exit_script.jnl
+*** Running ferret script: bn_exit_script.jnl
 [?1034h! bn_exit_script.jnl
 ! 5/2005 ACM
 ! tests of EXIT/SCRIPT command, in combination with IF and REPEAT
@@ -47624,7 +46735,7 @@ loop
 loop
 3
 loop
-*** Running test: bn_exit_cycle.jnl
+*** Running ferret script: bn_exit_cycle.jnl
 [?1034h! bn_exit_cycle.jnl
 ! 5/2005 ACM
 ! EXIT/CYCLE skips remaining commands in this repetition of a loop
@@ -47652,7 +46763,7 @@ say 8192 if bigger than 500
 say 16384 if bigger than 500
  
 loop finished 16384 gt 10000
-*** Running test: bn_curv_mod.jnl
+*** Running ferret script: bn_curv_mod.jnl
 [?1034h! bn_curv_mod
 ! Test of fill/mod and contour/mod
 ! 5/24/2005 Ferret v5.81
@@ -47670,7 +46781,7 @@ use tripolar_subset.nc     ! Longitude range is -280 to 80
 fill/mod/hlim=-180:180 ht, geolon_vert_t[i=1:180,j=1:24], geolat_vert_t[i=1:180,j=1:24]
 contour/over/mod/hlim=-180:180 ht, geolon_vert_t[i=1:180,j=1:24], geolat_vert_t[i=1:180,j=1:24]
  
-*** Running test: bn_shade_keycont.jnl
+*** Running ferret script: bn_shade_keycont.jnl
 [?1034h! Continuous shade key
 ! test setting it and whether default is restored on next command.
 ! also whether behavior consistent when we call shakey
@@ -47763,7 +46874,7 @@ fill/title="with shakey, restore default key style"/set temp[l=1]
 ppl shakey ,0,-.12,3,,,`x1`,`x2`,`y1`
  !-> ppl shakey ,0,-.12,3,,,2.2,5.212,1.4
 ppl fill
-*** Running test: bn581_bug_fixes.jnl
+*** Running ferret script: bn581_bug_fixes.jnl
 [?1034h! bn581_bug_fixes.jnl
 ! test various fixes that went into version 5.81
 ! 2/05 *acm*
@@ -47783,11 +46894,11 @@ def ax/t/edge time = {0,1,3}
 let a = t[gt=time]
 show grid/t a
     GRID (G001)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TIME      T                    2 i   0.5                  2
+ TIME      T                    2 i   0.5                  2                   full
  normal    E
  normal    F
  
@@ -47807,11 +46918,11 @@ can mem
 use a.nc
 show grid/t a
     GRID GSI1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TIME1     T                    2 i   0.5                  2
+ TIME1     T                    2 i   0.5                  2                   full
  normal    E
  normal    F
  
@@ -47832,11 +46943,11 @@ GO err580_cartesian_depth.jnl
 use a_cartesian_bug1179.nc
 sh grid temp
     GRID GHU1
- name       axis              # pts   start                end
- GRID_X_T  LONGITUDE            1 r   79E                  79E
- GRID_Y_T  LATITUDE             1 r   0.25S                0.25S
- ZT        DEPTH (m)           10 i-  22.5                 158
- TIME1     TIME                 1mr   15-FEB-1900 03:00    15-FEB-1900 03:00
+ name       axis              # pts   start                end                 subset
+ 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
+ TIME1     TIME                 1mr   15-FEB-1900 03:00    15-FEB-1900 03:00   full
  normal    E
  normal    F
  
@@ -48243,7 +47354,7 @@ POLYGON/LINE/fill xp, yp, ypts
 ! GO bn_reset
 ! GO err580_regrid_prec.jnl
  
-*** Running test: bn_tab_comma_multivar.jnl
+*** Running ferret script: bn_tab_comma_multivar.jnl
 [?1034h! bn_tab_comma_multivar.jnl
 !
 ! Fixes for bug 1273
@@ -48285,7 +47396,7 @@ COUNTRY	ID	AA	BB	NEWCOUNTRY	THE_DATA_VAR
 "JP"	1	4000	1000500	"w"	4  
 "JP"	2	8000	2000500	"c"	5  
 "US"	3	12000	3000500	"e"	4  
-*** Running test: bn_element_functions.jnl
+*** Running ferret script: bn_element_functions.jnl
 [?1034h ! NOAA/PMEL TMAP
  ! FERRET v5.81
  ! Solaris 5.6 - 08/08/05
@@ -48409,7 +47520,7 @@ list element_index_str_n (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
  1   / 1:   ....   ....
  2   / 2:   ....  3.000
  
-*** Running test: bn_long_revision_num.jnl
+*** Running ferret script: bn_long_revision_num.jnl
 [?1034h! bn_long_revision_num.jnl
 ! ACM 8/30/05
 ! revision numbers were previously limited to 2 decimal places: v5.81
@@ -48417,7 +47528,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 = "6.96"
+FERRET_VERSION = "7"
  
 ! history attribute
 let a = 12
@@ -48435,7 +47546,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 (PyFerret 1.2) version6.96:
+ Commands in Program PyFERRET (beta/dbg) version7:
  SET
  SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE/QUALITY/ANTIALIA/NOANTIAL
       /ENGINE/COLOR/OPACITY/THICKEN/XPIXELS/YPIXELS/XINCHES/YINCHES/TEXTPROM
@@ -48469,9 +47580,8 @@ sho command
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
-       /CURVILIN
- SHOW COMMANDS/ALL
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+ SHOW COMMANDS/ALL/BRIEF
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
@@ -48483,7 +47593,8 @@ sho command
  SHOW GIFFILE
  SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
  SHOW TEXT
- CANCEL QUERIES
+ SHOW QUERIES/ALL
+ CANCEL
  CANCEL WIND/ALL
  CANCEL REGION/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F
  CANCEL MEMORY/ALL/TEMPORY/PERMANT
@@ -48496,74 +47607,76 @@ sho command
  CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
  CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
  CANCEL GRID
- CANCEL ATTRIBUT/OUTPUT/DATA
+ CANCEL ATTRIBUT/OUTPUT/DATASET
  CANCEL REDIRECT
  CANCEL ALIAS/ALL
  CANCEL SYMBOL/ALL
  CANCEL NCCACHE
  CANCEL PYVAR/ALL/DATASET
  CANCEL TEXT/FONT/COLOR/ITALIC/BOLD/ISIZ/ALL
- CONTOUR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/FILL/LINE
-          /NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/COLOR
+ CONTOUR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/FILL
+          /LINE/NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/COLOR
           /NOAXES/PATTERN/SIZE/SPACING/SIGDIG/PEN/HLIMITS/VLIMITS/AXES/HGRATICU
-          /VGRATICU/GRATICUL/MODULO/THICKNES/OPACITY
- LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/D/HEADING/NOHEAD/SINGLE/FILE/APPEND/ORDER
-       /FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS/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
- PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/VS/SYMBOL
-       /NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE/NOAXES/STEP
-       /DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG/GRATICUL/NOKEY
-       /NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC/OPACITY
+          /VGRATICU/GRATICUL/MODULO/THICKNES/OPACITY/DEGMINSE/HALFSPAC
+ LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/HEADING/NOHEAD/SINGLY/FILE/APPEND
+       /ORDER/FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS
+       /MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
+       /CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
+       /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
+       /OUTTYPE/CURVILIN/LAYERZ
+ 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
+       /GRATICUL/NOKEY/NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/OPACITY
+       /GAPLOC/SKIPSYM/DEGMINSE/HALFSPAC
  GO/HELP
  HELP
- LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/NAME
+ LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/NAME
  DEFINE
  DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
          /DL/DM/DN
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
- DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
  EXIT/COMMAND/LOOP/SCRIPT/PROMPT/PROGRAM/CYCLE/TOPYTHON
  MESSAGE/CONTINUE/QUIET/JOURNAL/ERROR/OUTFILE/APPEND/CLOBBER
- VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/ASPECT/NOLABEL
-         /LENGTH/XSKIP/YSKIP/THICK/XLIMITS/YLIMITS/TITLE/COLOR/NOAXES/NOKEY
-         /FLOWLINE/DENSITY/AXES/PEN/HLIMITS/VLIMITS/HGRATICU/VGRATICU/GRATICUL
-         /KEY/MODULO/OPACITY
+ VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/ASPECT
+         /NOLABEL/LENGTH/XSKIP/YSKIP/THICK/XLIMITS/YLIMITS/TITLE/COLOR/NOAXES
+         /NOKEY/FLOWLINE/DENSITY/AXES/PEN/HLIMITS/VLIMITS/HGRATICU/VGRATICU
+         /GRATICUL/KEY/MODULO/OPACITY
  PPLUS/RESET
  FRAME/FORMAT/FILE/TRANSPAR/XINCHES/YINCHES/XPIXELS/YPIXELS/ANNOTATE
  REPEAT/I/J/K/L/M/N/X/Y/Z/T/E/F/ANIMATE/LOOP/RANGE/NAME
- STAT/BRIEF/I/J/K/L/M/N/X/Y/Z/T/E/F/D
- SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/TRIM/LINE
-        /NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/AXES/NOAXES
-        /PATTERN/HGRATICU/VGRATICU/GRATICUL/MODULO/HLIMITS/VLIMITS/OPACITY
+ STAT/BRIEF/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET
+ SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/TRIM
+        /LINE/NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/AXES
+        /NOAXES/PATTERN/HGRATICU/VGRATICU/GRATICUL/MODULO/HLIMITS/VLIMITS
+        /OPACITY/DEGMINSE/HALFSPAC
  SPAWN
- USER/OPT1/OPT2/COMMAND/I/J/K/L/X/Y/Z/T/D/FILE/FORMAT
- WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/VIEWPOIN/ZLIMITS/TRANPOSE
-       /NOLABEL/ZSCALE/TITLE
+ USER/OPT1/OPT2/COMMAND/I/J/K/L/X/Y/Z/T/DATASET/FILE/FORMAT
+ WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/VIEWPOIN/ZLIMITS
+       /TRANPOSE/NOLABEL/ZSCALE/TITLE
  QUERY/ALL/FILE/IGNORE
  IF
  ELSE
  ELIF
  ENDIF
- POLYGON/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/D/TRANPOSE/COORD_AX
+ POLYGON/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/COORD_AX
           /NOLABEL/LEVELS/LINE/COLOR/PALETTE/XLIMITS/YLIMITS/TITLE/THICKNES
           /NOAXES/PATTERN/FILL/KEY/NOKEY/AXES/HLIMITS/VLIMITS/HLOG/VLOG
           /HGRATICU/VGRATICU/GRATICUL/MODULO/OPACITY
  ANNOTATE/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
  
  Use SHOW ALIAS to see alternative command names
-*** Running test: bn_window_title.jnl
+*** Running ferret script: bn_window_title.jnl
 [?1034h! bn_window_title.jnl
 ! Define a title for windows rather than just FERRET_1, FERRET_2, ...
 ! If no title is set, use SESSION_DATE:SESSION_TIME
@@ -48575,7 +47688,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "19-Nov-15_12:05"
+WIN_TITLE = "17-Jun-16_15:17"
  
 set win/title="set the title"
 sho sym win_title
@@ -48593,7 +47706,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title="19-Nov-15:12:05"
+ !-> set win/title="17-Jun-16:15:17"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -48602,17 +47715,17 @@ set win/title="($session_date):($session_time)"
 ! If so substitute another string.
  
 DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 19-Nov-15
+ !-> DEFINE SYMBOL the_date = 17-Jun-16
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 12:05
+ !-> DEFINE SYMBOL the_time = 15:17
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="19-Nov-15:12:05"
+ !-> SET WIN/TITLE="17-Jun-16:15:17"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "19-Nov-15:12:05"
-*** Running test: bn_last_error.jnl
+WIN_TITLE = "17-Jun-16:15:17"
+*** Running ferret script: bn_last_error.jnl
 [?1034h! bn_last_error.jnl
 ! acm Nov 2005
 !
@@ -48665,11 +47778,13 @@ FER_LAST_ERROR = "**ERROR: error in external function. Bailing out of external f
  
  
 SET MODE/LAST IGNORE_ERROR
-*** Running test: bn_deg_min.jnl
+*** Running ferret script: bn_deg_min.jnl
 [?1034h! bn_deg_min.jnl
 ! label axes with degrees and minutes rather than degrees and decimal degrees.
 ! 19-May-06 add seconds as well...
  
+ 
+ 
 use ss_small.nc
  
 shade/set/x=222.9:223.1/y=58.22:59.1 rose
@@ -48699,7 +47814,21 @@ ppl plot
  
 ! Restore the default settings
 ppl axlint,2,2
-*** Running test: bn_dp_readscale.jnl
+ 
+! Now do the same using command qualifiers /DEGMINSEC= /HALFSPAC  (ticket 2434)
+!  /DEGMINSEC=1 for Deg-Min, =2 for Deg-Min-Sec. Default = 1
+!  /HALFSPAC adds a half space between the degree sign and E/W or N/S
+ 
+use ss_small
+shade/x=222.9:223.1/y=58.22:59.1/DEGMIN rose
+fill/x=222.9:223.1/y=58.22:59.1/DEGMIN=2 rose
+plot/vs/DEGMIN=2 xpts, ypts
+ 
+fill/x=222.9:223.1/y=58.22:59.1/HALFSP rose
+plot/x=223./DEGMIN/HALFSP rose
+plot/y=58.52/DEGMIN=2/HALFSP rose
+plot/vs/HALFSP  xpts, ypts
+*** Running ferret script: bn_dp_readscale.jnl
 [?1034h! bn_dp_readscale.jnl
 ! 9-Feb-2006 ACM
  
@@ -48775,7 +47904,7 @@ list xax
  2   / 2:  0.000010000  0.000100000  0.001000000  0.010000000  0.100000000
  
 cancel list/precision
-*** Running test: bn_bounds_defineax.jnl
+*** Running ferret script: bn_bounds_defineax.jnl
 [?1034h! bn_bounds_defineax.jnl
 ! 3/22/2006
 ! Previously only allowed 2*N definition of bounds in DEFINE AXIS/BOUNDS
@@ -48977,7 +48106,7 @@ list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
 858.5  / 11:   559.   859.  1158.
 1678.5 / 12:  1158.  1679.  2199.
 2849   / 13:  2199.  2849.  3499.
-*** Running test: bn_attributes.jnl
+*** Running ferret script: bn_attributes.jnl
 [?1034h! bn_attributes
 ! test attribute handling on netcdf intput/output and
 ! programatic access to attribute information
@@ -49089,20 +48218,24 @@ sho data/att
 (XAX_LEV9421_380)      DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        15   F       XAX_LEV9421_380
+                                 orig_file_axname
+                                                 CHAR        15   F       XAX_LEV9421_380
   
 (YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
+                                 orig_file_axname
+                                                 CHAR        9    F       YAX_LEV94
   
 (ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        13   F       ZAXLEVIT191_1
+                                 orig_file_axname
+                                                 CHAR        13   F       ZAXLEVIT191_1
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -49126,42 +48259,51 @@ sh data/att gt4d011
   
 (PSXT)                 DOUBLE    units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        4    F       PSXT
+                                 orig_file_axname
+                                                 CHAR        4    F       PSXT
   
 (PSYT)                 DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSYTedges
-                                 orig_file_axnameCHAR        4    F       PSYT
+                                 orig_file_axname
+                                                 CHAR        4    F       PSYT
   
 (PSYTedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSYTedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYTedges
   
 (PSZT)                 DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSZTedges
-                                 orig_file_axnameCHAR        4    F       PSZT
+                                 orig_file_axname
+                                                 CHAR        4    F       PSZT
   
 (PSZTedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSZTedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSZTedges
   
 (TIME1)                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_axnameCHAR        5    F       TIME1
+                                 orig_file_axname
+                                                 CHAR        5    F       TIME1
   
 (PSXT91_108)           DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        10   F       PSXT91_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXT91_108
   
 (PSYT35_56)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYT35_56
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT35_56
   
 (PSZT1_10)             DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        8    F       PSZT1_10
+                                 orig_file_axname
+                                                 CHAR        8    F       PSZT1_10
   
  TEMP                  FLOAT     parent_grid     CHAR        6    F       PS3DT2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -49174,7 +48316,8 @@ sh data/att gt4d011
   
 (PSYT35_55)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYT35_55
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT35_55
   
  SALT                  FLOAT     parent_grid     CHAR        6    F       PS3DT2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -49189,24 +48332,29 @@ sh data/att gt4d011
   
 (PSXU)                 DOUBLE    units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        4    F       PSXU
+                                 orig_file_axname
+                                                 CHAR        4    F       PSXU
   
 (PSYU)                 DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSYUedges
-                                 orig_file_axnameCHAR        4    F       PSYU
+                                 orig_file_axname
+                                                 CHAR        4    F       PSYU
   
 (PSYUedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSYUedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYUedges
   
 (PSXU91_108)           DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        10   F       PSXU91_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXU91_108
   
 (PSYU35_55)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYU35_55
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYU35_55
   
  U                     FLOAT     parent_grid     CHAR        6    F       PS3DU2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -49232,19 +48380,23 @@ sh data/att gt4d011
                                  positive        CHAR        4    T       down
                                  point_spacing   CHAR        6    T       uneven
                                  edges           CHAR        9    F       PSZWedges
-                                 orig_file_axnameCHAR        4    F       PSZW
+                                 orig_file_axname
+                                                 CHAR        4    F       PSZW
   
 (PSZWedges)            DOUBLE    edges           CHAR        1    F
-                                 orig_file_axnameCHAR        9    F       PSZWedges
+                                 orig_file_axname
+                                                 CHAR        9    F       PSZWedges
   
 (PSYT36_55)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYT36_55
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT36_55
   
 (PSZW1_10)             DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        8    F       PSZW1_10
+                                 orig_file_axname
+                                                 CHAR        8    F       PSZW1_10
   
  W                     FLOAT     parent_grid     CHAR        6    F       PS3DW2
                                  slab_min_index  INT         4    F       91 36 1 0
@@ -49277,7 +48429,8 @@ sh data/att gt4d011
   
 (PSYU35_56)            DOUBLE    child_axis      CHAR        1    F
                                  units           CHAR        13   T       degrees_north
-                                 orig_file_axnameCHAR        9    F       PSYU35_56
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYU35_56
   
  PSI                   FLOAT     parent_grid     CHAR        6    F       PS2DU2
                                  slab_min_index  INT         4    F       91 35 1 0
@@ -49732,11 +48885,14 @@ sh data/att
   
  dnodata               DOUBLE
   
-(i)                    INT       orig_file_axnameCHAR        1    F       i
+(i)                    INT       orig_file_axname
+                                                 CHAR        1    F       i
   
-(j)                    FLOAT     orig_file_axnameCHAR        1    F       j
+(j)                    FLOAT     orig_file_axname
+                                                 CHAR        1    F       j
   
-(l)                    BYTE      orig_file_axnameCHAR        1    F       l
+(l)                    BYTE      orig_file_axname
+                                                 CHAR        1    F       l
   
  
 let a= broiled.acl
@@ -50220,7 +49376,7 @@ sh att/all temp3
  
 can var temp2
 let/units="degrees C"/title="my new TEMP"/bad=`temp,return=bad` temp2 = temp*2
- !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad= -9.999999790214768E+33 temp2 = temp*2
+ !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad=-1.E+34 temp2 = temp*2
 sh att/all temp2
      attributes for user-defined variables
  temp2.long_name = my new TEMP 
@@ -50830,24 +49986,24 @@ cancel mode verify
 def axis/x=1:200:1  x2ax
 sh att/all (x2ax)
      attributes for coordinate axis
- (X2AX).point_spacing = even 
- (X2AX).axis = X 
+ (x2ax).point_spacing = even 
+ (x2ax).axis = X 
 ! SET AXIS command changes attributes
 set axis/modulo x2ax
 sh att/all (x2ax)
      attributes for coordinate axis
- (X2AX).point_spacing = even 
- (X2AX).axis = X 
- (X2AX).modulo =   
+ (x2ax).point_spacing = even 
+ (x2ax).axis = X 
+ (x2ax).modulo =   
  
 ! DEFINE ATTRIBUTE command changes attributes
 define attribute (x2ax).units = "degrees_east"
 sh att/all (x2ax)
      attributes for coordinate axis
- (X2AX).point_spacing = even 
- (X2AX).axis = X 
- (X2AX).modulo =   
- (X2AX).units = degrees_east 
+ (x2ax).point_spacing = even 
+ (x2ax).axis = X 
+ (x2ax).modulo =   
+ (x2ax).units = degrees_east 
  
 ! Define new attribute on an axis.
 ! Save file var, and a user var defined from the file var
@@ -50869,16 +50025,19 @@ sh dat/att
 (XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        14   F       XAXLEVITR1_160
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
                                  new_att         CHAR        9    T       something
   
 (YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        13   F       YAXLEVITR1_90
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
   
 (ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        12   F       ZAXLEVITR1_1
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
                                  _FillValue      FLOAT       1    T       -1.E+10
@@ -50916,9 +50075,9 @@ let axy = reshape (a,rvar)
  
 show att/all (z4ax)
      attributes for coordinate axis
- (Z4AX).point_spacing = even 
- (Z4AX).axis = Z 
- (Z4AX).positive = down 
+ (z4ax).point_spacing = even 
+ (z4ax).axis = Z 
+ (z4ax).positive = down 
 set att (z4ax).positive = "up"
  
 sp echo "bn_attributes.jnl --- 27 attributes of  user-defined axes" >> all_ncdump.out
@@ -51090,20 +50249,24 @@ sho att ocean_atlas_temp
 (XAX_LEV9421_380)      DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        15   F       XAX_LEV9421_380
+                                 orig_file_axname
+                                                 CHAR        15   F       XAX_LEV9421_380
   
 (YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
+                                 orig_file_axname
+                                                 CHAR        9    F       YAX_LEV94
   
 (ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        13   F       ZAXLEVIT191_1
+                                 orig_file_axname
+                                                 CHAR        13   F       ZAXLEVIT191_1
   
 (TIME1)                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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -51131,20 +50294,24 @@ sho att 1
 (XAX_LEV9421_380)      DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        15   F       XAX_LEV9421_380
+                                 orig_file_axname
+                                                 CHAR        15   F       XAX_LEV9421_380
   
 (YAX_LEV94)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        9    F       YAX_LEV94
+                                 orig_file_axname
+                                                 CHAR        9    F       YAX_LEV94
   
 (ZAXLEVIT191_1)        DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        13   F       ZAXLEVIT191_1
+                                 orig_file_axname
+                                                 CHAR        13   F       ZAXLEVIT191_1
   
 (TIME1)                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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -51163,15 +50330,18 @@ sho att 2
 (XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        14   F       XAXLEVITR1_160
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
   
 (YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        13   F       YAXLEVITR1_90
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
   
 (ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
                                  positive        CHAR        4    T       down
-                                 orig_file_axnameCHAR        12   F       ZAXLEVITR1_1
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
                                  _FillValue      FLOAT       1    T       -1.E+10
@@ -51206,7 +50376,7 @@ sho att (`temp[d=1],return=taxis`[d=1])
 sho att .
      attributes for dataset: ./levitus_climatology.cdf
  ..history = FERRET V5.22    5-Apr-01 
-*** Running test: bn_transforms.jnl
+*** Running ferret script: bn_transforms.jnl
 [?1034h! Test the transforms
  
 use coads_climatology
@@ -51225,7 +50395,7 @@ list/L=1/prec=7 sst[x=100:120 at din,y=10:30 at din]
              LONGITUDE: 100E to 120E (XY integ.)
              LATITUDE : 10N to 30N (XY integ.)
              TIME     : 16-JAN 06:00
-          6.008341E+13
+          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
@@ -51410,7 +50580,7 @@ list/L=1/y=11:23/x=93w sst, sst[y=@shn] , sst[y=@spz], sst[y=@sum], sst[y=@swl],
 19N   / 55:  24.50  25.10  25.10  181.6  25.23  0.4944
 21N   / 56:  23.95  24.06  24.06  181.6  24.08    ....
 23N   / 57:  23.84  23.69  23.69  181.6  23.66    ....
-*** Running test: bn_variance.jnl
+*** Running ferret script: bn_variance.jnl
 [?1034h ! bn_variance.jnl
  ! the @VAR transform is not tested in bn_transforms.jnl script.
  
@@ -51446,7 +50616,7 @@ list/y=3/l=1/x=233 u[z=@var]
              DEPTH (m): 0 to 100 (variance)
              TIME     : 17-AUG-1982 12:00
           11.33
-*** Running test: bn_linecolors.jnl
+*** Running ferret script: bn_linecolors.jnl
 [?1034h! bn_linecolors.jnl
 ! 5/2006 ACM
 ! test setting more line colors
@@ -51511,7 +50681,7 @@ plot/line/i=1:100\
 can win/all
 set win/new
  
-*** Running test: bn_cdf_errmsg.jnl
+*** Running ferret script: bn_cdf_errmsg.jnl
 [?1034h! bn_cdf_errmsg.jnl
 ! ACM 7/13/2006
 ! test reporting of cdf error messages from OPeNDAP library v3.6.2
@@ -51553,7 +50723,7 @@ use asc.nc
  
 set mode/last ignore
  
-*** Running test: bn600_bug_fixes.jnl
+*** Running ferret script: bn600_bug_fixes.jnl
 [?1034h! bn600_bug_fixes.jnl
 ! test various fixes that went into version 6.00
 ! 8/05 *acm*
@@ -51680,6 +50850,9 @@ cancel mode verify
 GO err581_subspanx_fill_bug.jnl
 ! err581_subspanx_fill_bug.jnl
 ! bug 900: subspan longitude axis and hlimits gets wrong data
+!
+! Further fixes 5/2016, with other subspan modulo work.
+! Don't list ppl$xlow, ppl$xhigh.
  
 use coads_climatology
 save/clobber/y=0/x=130e:80w/file=err581_subspanx_fill_bug.nc sst
@@ -51689,12 +50862,10 @@ set view left; shade/x=120e:80w sst  ! works correctly
  
 set view right; fill/x=120e:80w sst
  
+! look at axis coord. range 5/9/2016
 sh sym ppl$xmin, ppl$xmax    ! should be 131, 279
-PPL$XMIN = "131.0000"
-PPL$XMAX = "281.0000"
-sh sym ppl$xlow, ppl$xhigh   ! should be 165, 259
-PPL$XHIGH = "165.0000"
-PPL$XLOW = "259.0000"
+PPL$XMIN = "25.00000"
+PPL$XMAX = "279.0000"
  
 sp rm -f err581_subspanx_fill_bug.nc
  
@@ -52040,11 +51211,11 @@ can axis t360
 set data t3file
 sho grid t3
     GRID GCG1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- T360      TIME                61 r   01-JAN-2000 00:00    01-JAN-2005 00:00
+ T360      TIME                61 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
  normal    E
  normal    F
  
@@ -52352,7 +51523,7 @@ ppl cross 0
 set mem /size=25.6
  
  
-*** Running test: bn601_bug_fixes.jnl
+*** Running ferret script: bn601_bug_fixes.jnl
 [?1034h! bn601_bug_fixes.jnl
 ! test various fixes that went into version 6.01
 ! 20-Sep-2006 ACM
@@ -52668,8 +51839,9 @@ list ..dimnames
 list ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : levitus_climatology.cdf
-             X        : 1
-        "TEMP"
+             SUBSET   : 2 points (X)
+ 1   / 1:"TEMP"   
+ 2   / 2:"temp_20"
  
 ! err600_nc_des_order.jnl
 ! Bug 1459 order of multiple descriptor file opening causes netCDF error
@@ -52890,16 +52062,19 @@ sh dat/att
 (COADSX)               DOUBLE    units           CHAR        12   T       degrees_east
                                  modulo          CHAR        1    T
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        6    F       COADSX
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSX
   
 (COADSY)               DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
-                                 orig_file_axnameCHAR        6    F       COADSY
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSY
   
 (TIME5)                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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -52923,7 +52098,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -52931,32 +52106,36 @@ sho dat/att
                                  modulo          DOUBLE      1    T       360
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        10   F       PSXT91_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXT91_108
   
 (PSYT35_56)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
                                  bounds          CHAR        14   T       PSYT35_56_bnds
-                                 orig_file_axnameCHAR        9    F       PSYT35_56
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT35_56
   
  PSYT35_56_bnds        DOUBLE
   
-(PSZT11_10)            DOUBLE    units           CHAR        6    T       meters
+(PSZT1_10)             DOUBLE    units           CHAR        6    T       meters
                                  positive        CHAR        4    T       down
                                  point_spacing   CHAR        6    T       uneven
                                  axis            CHAR        1    T       Z
                                  standard_name   CHAR        5    F       depth
-                                 bounds          CHAR        14   T       PSZT11_10_bnds
-                                 orig_file_axnameCHAR        9    F       PSZT11_10
+                                 bounds          CHAR        13   T       PSZT1_10_bnds
+                                 orig_file_axname
+                                                 CHAR        8    F       PSZT1_10
   
- PSZT11_10_bnds        DOUBLE
+ PSZT1_10_bnds         DOUBLE
   
 (TIME11)               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_axnameCHAR        6    F       TIME11
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME11
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -52968,7 +52147,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -52976,32 +52155,36 @@ sho dat/att
                                  modulo          DOUBLE      1    T       360
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        10   F       PSXT91_108
+                                 orig_file_axname
+                                                 CHAR        10   F       PSXT91_108
   
 (PSYT35_56)            DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        6    T       uneven
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
                                  bounds          CHAR        14   T       PSYT35_56_bnds
-                                 orig_file_axnameCHAR        9    F       PSYT35_56
+                                 orig_file_axname
+                                                 CHAR        9    F       PSYT35_56
   
  PSYT35_56_bnds        DOUBLE
   
-(PSZT11_10)            DOUBLE    units           CHAR        6    T       meters
+(PSZT1_10)             DOUBLE    units           CHAR        6    T       meters
                                  positive        CHAR        4    T       down
                                  point_spacing   CHAR        6    T       uneven
                                  axis            CHAR        1    T       Z
                                  standard_name   CHAR        5    F       depth
-                                 bounds          CHAR        14   T       PSZT11_10_bnds
-                                 orig_file_axnameCHAR        9    F       PSZT11_10
+                                 bounds          CHAR        13   T       PSZT1_10_bnds
+                                 orig_file_axname
+                                                 CHAR        8    F       PSZT1_10
   
- PSZT11_10_bnds        DOUBLE
+ PSZT1_10_bnds         DOUBLE
   
 (TIME111)              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_axnameCHAR        6    F       TIME11
+                                 orig_file_axname
+                                                 CHAR        6    F       TIME11
   
  TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -53182,7 +52365,7 @@ stat rose[j=12,d=1]
  Maximum value: 509
  Mean    value: 62.717 (unweighted average)
  Standard deviation: 156.25
-*** Running test: bn_set_strides.jnl
+*** Running ferret script: bn_set_strides.jnl
 [?1034h! bn_set_strides.jnl
 ! Jing Li, 11/2006
 ! tests for SET AXIS/STRIDES
@@ -53619,7 +52802,7 @@ show axis `sst,return=taxis`
  TIME      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)
-*** Running test: bn_lsl_lowpass.jnl
+*** Running ferret script: bn_lsl_lowpass.jnl
 [?1034h! bn_lsl_lowpass.jnl
 ! Test lsl_lowpass, now included as a statically-linked external function
  
@@ -53652,18 +52835,18 @@ LIST/L=10:20 MY_TEMP[L=1:110], F_FILTERED[L=1:110]
 11-MAR-1982 08 / 19:   27.41   27.42
 14-MAR-1982 09 / 20:   27.42   27.43
  
-*** Running test: bn_return_xmod_tmod.jnl
+*** Running ferret script: bn_return_xmod_tmod.jnl
 [?1034h! New `var,return=xmod` `var,return=tmod`
 ! Return modulo lengths, or blank if not modulo
  
 use ocean_atlas_temp
 sh grid temp
     GRID GBS1
- name       axis              # pts   start                end
- XAX_LEV9421_380 LONGITUDE    360mr   20.5E                19.5E(379.5)
- YAX_LEV94 LATITUDE           180 r   89.5S                89.5N
- ZAXLEVIT191_1 DEPTH (m)        1 r-  0                    0
- TIME      TIME                 2mr   16-JAN 06:00         15-FEB 16:29
+ name       axis              # pts   start                end                 subset
+ 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
+ TIME      TIME                 2mr   16-JAN 06:00         15-FEB 16:29        full
  normal    E
  normal    F
 sh axis XAX_LEV9421_380
@@ -53679,8 +52862,8 @@ say `temp,return=xmod`
  !-> MESSAGE/CONTINUE 360
 360
 say `temp,return=tmod`
- !-> MESSAGE/CONTINUE 8765.81982421875
-8765.81982421875
+ !-> MESSAGE/CONTINUE 8765.82
+8765.82
  
 ! X is modulo but not T
 use levitus_climatology.cdf
@@ -53696,8 +52879,8 @@ say `temp,return=tmod`
 def ax/t=1-aug-0000:1-aug-0001/np=3/edge/units=days tsub
 let a = t[gt=tsub]
 say `a,return=tmod`
- !-> MESSAGE/CONTINUE 365.2424926757813
-365.2424926757813
+ !-> MESSAGE/CONTINUE 365.2425
+365.2425
  
 ! Modulo because defined on longitude coordinates
 define axis/x=130e:80w:10 xsub
@@ -53711,11 +52894,11 @@ say `a,return=xmod`
 use string4d
 sh grid axy
     GRID GMS2
- name       axis              # pts   start                end
- X2AX      X                    2mr   1                    2
- Y3AX      Y                    3 r   1                    3
- Z4AX      Z                    4 r   1                    4
- T2AX      T                    2 r   1                    2
+ name       axis              # pts   start                end                 subset
+ X2AX      X                    2mr   1                    2                   full
+ Y3AX      Y                    3 r   1                    3                   full
+ Z4AX      Z                    4 r   1                    4                   full
+ T2AX      T                    2 r   1                    2                   full
  normal    E
  normal    F
 show axis x2ax
@@ -53725,7 +52908,7 @@ show axis x2ax
 say `axy,return=xmod`
  !-> MESSAGE/CONTINUE 2
 2
-*** Running test: bn602_bug_fixes.jnl
+*** Running ferret script: bn602_bug_fixes.jnl
 [?1034h! bn602_bug_fixes.jnl
 ! test various fixes that went into version 6.02
 ! 09-Nov-2006 ACM
@@ -53823,11 +53006,11 @@ GO err601_irregular_axis.jnl
 USE z_wide_variation.nc
 SHOW GRID/Z atmos
     GRID GOR1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
- ALTITUDE  Z (Pa)              50 i   6.791595619E-10      1400
- TIME      TIME                 1mr   01-JAN 04:00         01-JAN 04:00
+ ALTITUDE  Z (Pa)              50 i   6.791595619E-10      1400                full
+ TIME      TIME                 1mr   01-JAN 04:00         01-JAN 04:00        full
  normal    E
  normal    F
  
@@ -53984,7 +53167,7 @@ list a
  2   / 2:"b"
  3   / 3:"" 
  
-*** Running test: bn_modnbd.jnl
+*** Running ferret script: bn_modnbd.jnl
 [?1034h! Test MODNBD regridding statistic.
  
 use gtsa056_2.cdf
@@ -54046,7 +53229,7 @@ list var[gt=month_reg at MODNGD], var[gt=month_reg at MODNBD], var[gt=month_reg at MODNGD
 16-OCT      / 10:  10.00   0.00  10.00  10.00
 15-NOV      / 11:  10.00   0.00  10.00  10.00
 16-DEC      / 12:  10.00   0.00  10.00  10.00
-*** Running test: bn_fifty_files.jnl
+*** Running ferret script: bn_fifty_files.jnl
 [?1034h! bn_fifty_files.jnl
 ! We build OPeNDAP so that 100 files can be opened at a time.
 ! Test with fifty.
@@ -54106,7 +53289,7 @@ use weird_name1.cdf
  
 cancel mode ignore_error
  
-*** Running test: bn603_bug_fixes.jnl
+*** Running ferret script: bn603_bug_fixes.jnl
 [?1034h! bn603_bug_fixes.jnl
 ! test various fixes that went into version 6.03
 ! 11-May-2006 ACM
@@ -54219,7 +53402,7 @@ LIST/NOHEAD/I=91:94/J=37/K=1/L=1 TEMP,SALT
 137.5W / 93:  27.23906  2.382890E-04
 136.5W / 94:  27.17807  2.380348E-04
  
-*** Running test: bn_set_var_name.jnl
+*** Running ferret script: bn_set_var_name.jnl
 [?1034h! bn_set_var_name.jnl
 ! This has been in Ferret since v5.3 but never a benchmark test of it!
 ! ACM 8/2007
@@ -54264,10 +53447,8 @@ LIST/X=179:183/Y=40/L=3 sst
  179W   / 81:  36.36
  177W   / 82:  36.24
  
-*** Running test: bn_memory_symbol.jnl
-[?1034hUnable to resize Ferret's memory cache to 500000.000000 Mdoubles
-Ferret's memory cache remains at 0.200000 Mdoubles
-! bn_memory_symbol.jnl
+*** Running ferret script: bn_memory_symbol.jnl
+[?1034h! bn_memory_symbol.jnl
 ! Ferret v6.06 15-Aug-07
 ! Symbol FERRET_MEMORY shows current size of Ferret memory in MWords
  
@@ -54285,13 +53466,15 @@ sh sym ferret_memory
 FERRET_MEMORY = "0.2"
  
 set mem/siz=500000  ! too large to allow
+Unable to resize Ferret's memory cache to 500000.000000 Mdoubles
+Ferret's memory cache remains at 0.200000 Mdoubles
 sho sym ferret_memory
 FERRET_MEMORY = "0.2"
  
 set mem/siz=25.6  ! return to the default setting
 show memory
  Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-*** Running test: bn605_bug_fixes.jnl
+*** Running ferret script: bn605_bug_fixes.jnl
 [?1034h! bn604_bug_fixes.jnl
 ! test various fixes that went into version 6.05
 ! 27-July-2007 ACM
@@ -54470,6 +53653,7 @@ SAMPLEYZ(DAT_TO_SAMPLE,YPTS,ZPTS)
 SCAT2DDUPS(coord 1,coord 2,epsilon 1,epsilon 2)
 SCAT2GRID_BIN_XY(XPTS,YPTS,F,XAXPTS,YAXPTS)
 SCAT2GRID_BIN_XYT(XPTS,YPTS,TPTS,F,XAXPTS,YAXPTS,TAXPTS)
+SCAT2GRID_BIN_XYZ(XPTS,YPTS,ZPTS,F,XAXPTS,YAXPTS,ZAXPTS)
 SCAT2GRIDGAUSS_XT(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
 SCAT2GRIDGAUSS_XT_V0(XPTS,TPTS,F,XAXPTS,TAXPTS,XSCALE,TSCALE,CUTOFF,0)
 SCAT2GRIDGAUSS_XY(XPTS,YPTS,F,XAXPTS,YAXPTS,XSCALE,YSCALE,CUTOFF,0)
@@ -54563,6 +53747,11 @@ SAMPLE_FAST_I(V,Indices)
 SAMPLE_FAST_I_STR(S,Indices)
 SEPARATE_STR(A,Rowsize,FixLongitudes)
 WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
+BXCAT(A,B)
+BXSEQUENCE(A)
+BXSEQUENCE_STR(A)
+BCOMPRESSI(DAT)
+SCAT2GRID_BIN_XYZT(XPTS,YPTS,ZPTS,TPTS,F,XAXPTS,YAXPTS,ZAXPTS,TAXPTS)
 ADD_9(A,B,C,D,E,F,G,H,I)
 APPENDE(ENS,VAR)
 AVET(A)
@@ -54573,7 +53762,6 @@ FFT_AMP(A)
 FFTA_SAMPLE(A)
 FFT_PHAS(A)
 LENGTH_OF_STRINGS(--)
-LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
 MAXSTRLEN(A)
 PASS_THRU(A)
 PASS_THRU_STRING(A)
@@ -54591,7 +53779,6 @@ STRINGS_AS_ARGS(S1,S2,NCHAR)
 STR_MISSING(MASK,STR,REPL)
 STUDENT_T_CUTOFF(P,nf)
 SUBTRACT(A,B)
-WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
 STATS_HISTOGRAM(VALS,BINS_TEMPLATE)
 STATS_BETA_CDF(PTS,ALPHA,BETA)
 STATS_BETA_ISF(PTS,ALPHA,BETA)
@@ -54755,10 +53942,8 @@ SHAPEFILE_READXYZVAL(SHAPEFILE,VALNAME,MAXPTS)
 SHAPEFILE_WRITEVAL(SHAPEFILE,VALUE,VALNAME,MAPPRJ)
 SHAPEFILE_WRITEXYVAL(SHAPEFILE,GRIDX,GRIDY,VALUE,VALNAME,MAPPRJ)
 SHAPEFILE_WRITEXYZVAL(SHAPEFILE,GRIDX,GRIDY,GRIDZ,VALUE,VALNAME,MAPPRJ)
-CURV2RECT(CurvData,CurvCenterLons,CurvCenterLats,CurvCornerLons,CurvCornerLats,TemplateRectVar,Method)
-CURV3SRECT(CurvData,CurvLons,CurvLats,CurvBaths,CurvZetas,TemplateRectVar,Method)
  
-*** Running test: bn608_bug_fixes.jnl
+*** Running ferret script: bn608_bug_fixes.jnl
 [?1034h! bn608_bug_fixes
 ! test various fixes that went into version 6.08
 ! 24-Sep ACM
@@ -54770,8 +53955,17 @@ GO err607_show_var_xml
 ! Bug 1539 SHOW VAR/XML didnt show all vars.
  
  
-use gt4d011.cdf
-use coads_climatology
+ 
+! make some short files
+let/units="meters" temp = z[z=1:100:5]
+save/clobber/file=a.nc temp
+ 
+LET sst = x[x=1:15] + y[y=1:5] + t[gt=month_irreg]
+save/clobber/file=b.nc sst
+can var/all
+ 
+use a
+use b
  
 let temp_1_regrid=temp[d=1,z=5.00:75.00 at ave]
 let sst_2_regrid=sst[d=2,t="15-Feb":"15-Mar"@ave]
@@ -54795,10 +53989,10 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="(G006)">
+<grid name="GRR1">
 <axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
+<xaxis>XAX1_15</xaxis>
+<yaxis>YAX1_5</yaxis>
 </axes>
 </grid>
 </var>
@@ -54809,10 +54003,10 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="GSQ1">
+<grid name="GRR1">
 <axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
+<xaxis>XAX1_15</xaxis>
+<yaxis>YAX1_5</yaxis>
 </axes>
 </grid>
 </var>
@@ -54823,11 +54017,8 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<grid name="PS3DT2">
+<grid name="GSI1">
 <axes>
-<xaxis>PSXT</xaxis>
-<yaxis>PSYT</yaxis>
-<taxis>TIME1</taxis>
 </axes>
 </grid>
 </var>
@@ -54906,7 +54097,7 @@ SET MODE ignore
 SHADE/LEV=300/I=1:100/J=1:100 i+j
  
 SET MODE/LAST ignore
-*** Running test: bn_shade_trim.jnl
+*** Running ferret script: bn_shade_trim.jnl
 [?1034h! bn_shade_trim.jnl
 ! Test new qualifier SHADE/TRIM which trims the region of
 ! shade plot as is done by FILL. For LAS scripts which do
@@ -54940,7 +54131,7 @@ XAXIS_MAX = "199.500000"
 YAXIS_MIN = "30.5000000"
 YAXIS_MAX = "43.5000000"
  
-*** Running test: bn_mode_nlevels.jnl
+*** Running ferret script: bn_mode_nlevels.jnl
 [?1034h! bn_mode_nlevels.jnl
 ! 3-mar-2008
 ! v6.1 MODE NLEVELS (default is 40)
@@ -54978,7 +54169,7 @@ LEV_DEL = "0.5"
 ! restore (new) default
 set mode nlevels 40
  
-*** Running test: bn61_bug_fixes.jnl
+*** Running ferret script: bn61_bug_fixes.jnl
 [?1034h! bn608_bug_fixes
 ! test various fixes that went into version 6.1
 ! 2-Jan-2008 ACM
@@ -55030,9 +54221,9 @@ SAY `1.23456789e-15`
  !-> MESSAGE/CONTINUE 1.23456789E-15
 1.23456789E-15
 SAY `1.23456789e-15,prec=10`
- !-> MESSAGE/CONTINUE 1.23456789E-15
+ !-> MESSAGE/CONTINUE   1.23456789E-15
 1.23456789E-15
-*** Running test: bn_test_opendap.jnl
+*** Running ferret script: bn_test_opendap.jnl
 [?1034h! Test the test_opendap function: returns 0 if successful, or error code if not.
 SET MODE IGNORE
  
@@ -55052,7 +54243,7 @@ list test_opendap ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA0
  
  
 CANCEL MODE IGNORE
-*** Running test: bn611_bug_fixes.jnl
+*** Running ferret script: bn611_bug_fixes.jnl
 [?1034h! bn611_bug_fixes.jnl
 ! Fixes that go into v6.11 release
  
@@ -55772,7 +54963,7 @@ list b
  3   / 3:  3.000
 save/clob/file=b.nc b
  
-*** Running test: bn_no_valid_on_plot.jnl
+*** Running ferret script: bn_no_valid_on_plot.jnl
 [?1034h! bn_no_valid_on_plot.jnl
 ! Bug 1038 points out that the No Valid Data label that is
 ! put onto 2D plot if there is no good data, is not put onto
@@ -55804,7 +54995,7 @@ ppl list labels
  @ASDeg C                                                                       
 
           XPOS       YPOS     HGT   ROT   UNITS
- LAB 1 -3.100E-01 -5.500E-01 0.080    0  SYSTEM  @ASSST[Y=39N] No Valid Data
+ LAB 1 -4.200E-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
@@ -55819,11 +55010,11 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  LAB 2  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 3  2.530E+00 -8.000E-01 0.120    0  SYSTEM  @ASSST[Y=9N]
+ LAB 3  1.750E+00 -8.100E-01 0.120    0  SYSTEM  @ASSST[Y=9N]
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 4  5.780E+00 -7.900E-01 0.119    0  SYSTEM  @ASSST[Y=49N] No Valid Data
+ LAB 4  5.370E+00 -8.100E-01 0.120    0  SYSTEM  @ASSST[Y=49N] No Valid Data
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
- LAB 5  2.530E+00 -1.050E+00 0.120    0  SYSTEM  @ASSST[Y=19N]
+ LAB 5  1.750E+00 -1.060E+00 0.120    0  SYSTEM  @ASSST[Y=19N]
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  
 ! For 2D plots create a new MODE NODATA_LAB which if on, puts
@@ -55838,7 +55029,7 @@ CONTOUR/Y=80:90 sst[L=1]
 VECTOR/Y=80:90 sst[L=1], sst[L=1]
  
 SET MODE/last nodata_lab
-*** Running test: bn_median.jnl
+*** Running ferret script: bn_median.jnl
 [?1034h! Test median smoothing tranform
 ! Default length is 3
  
@@ -55943,7 +55134,7 @@ plot/trans var, var[z=@med:4]
  
 set mode/last ignore
  
-*** Running test: bn614_bug_fixes.jnl
+*** Running ferret script: bn614_bug_fixes.jnl
 [?1034h! bn614_bug_fixes.jnl
 ! Fixes that go into v6.14 release
  
@@ -56054,11 +55245,11 @@ GO err611_wrong_fineaxis_range
 use fine_x_axis
 sh grid sst
     GRID GPY1
- name       axis              # pts   start                end
- LON       LONGITUDE         7200mr   179.97W(-179.97)     179.97E
- LAT1800_1800 LATITUDE          1 r   0.025S               0.025S
- ENS       Z (count)            1 r   1                    1
- TIME1     TIME                 1 r   01-APR-2006 00:00    01-APR-2006 00:00
+ name       axis              # pts   start                end                 subset
+ 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
+ TIME1     TIME                 1 r   01-APR-2006 00:00    01-APR-2006 00:00   full
  normal    E
  normal    F
  
@@ -56378,22 +55569,23 @@ GO err611_return_precision
  
 ! See bug 1611, where say "a`95,p=1`" yielded "a 95" but
 ! "a`94,p=1`" yielded "a94"
+! Note with ticket 2389 (5/2016), p=1 returns 1 digit, p=2 returns 2, etc.
  
 say "a`95,p=1`"
  !-> MESSAGE/CONTINUE "a95"
 a95
 say "a`94,p=1`"
- !-> MESSAGE/CONTINUE "a94"
-a94
+ !-> MESSAGE/CONTINUE "a90"
+a90
 say "a`95,p=1`"
  !-> MESSAGE/CONTINUE "a95"
 a95
 say "a`949,p=1`"
- !-> MESSAGE/CONTINUE "a949"
-a949
+ !-> MESSAGE/CONTINUE "a900"
+a900
 say "a`950,p=1`"
- !-> MESSAGE/CONTINUE "a950"
-a950
+ !-> MESSAGE/CONTINUE "a1.E+03"
+a1.E+03
  
 ! Note that an immediate expr with prec=0 returns an integer.
 say "a`95,p=0`"
@@ -56419,54 +55611,54 @@ say "a`0.1,p=0`"
 a0.1
  
 say "a`-95,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.99,p=1`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.001,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
  
 say "a`-94,p=1`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
+ !-> MESSAGE/CONTINUE "a-90"
+a-90
 say "a`-94.99,p=1`"
  !-> MESSAGE/CONTINUE "a-95"
 a-95
 say "a`-94.001,p=1`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
+ !-> MESSAGE/CONTINUE "a-90"
+a-90
  
 say "a`-95,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.99,p=1`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.001,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
  
 say "a`-949,p=1`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
+ !-> MESSAGE/CONTINUE "a-9.E+02"
+a-9.E+02
 say "a`-949.99,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
+ !-> MESSAGE/CONTINUE "a-9.E+02"
+a-9.E+02
 say "a`-949.001,p=1`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
+ !-> MESSAGE/CONTINUE "a-9.E+02"
+a-9.E+02
  
 say "a`-950,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
+ !-> MESSAGE/CONTINUE "a-1.E+03"
+a-1.E+03
 say "a`-950.99,p=1`"
- !-> MESSAGE/CONTINUE "a-951"
-a-951
+ !-> MESSAGE/CONTINUE "a-1.E+03"
+a-1.E+03
 say "a`-950.001,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
+ !-> MESSAGE/CONTINUE "a-1.E+03"
+a-1.E+03
  
  
 say "a`-95,p=0`"
@@ -56664,11 +55856,11 @@ GO err611_irregular_axis
 use cc_irreg.nc
 sh grid cc
     GRID GCZ1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TAX       TIME               142 i   30-DEC-2007 00:00    30-DEC-2007 00:02
+ TAX       TIME               142 i   30-DEC-2007 00:00    30-DEC-2007 00:02   full
  normal    E
  normal    F
  
@@ -56795,7 +55987,7 @@ shade/x=-360:360 b
 fill/ov/pal=greyscale/x=-360:360 b
 cont/ov/x=-360:360 b
  
-*** Running test: bn_mode_nodata_lab.jnl
+*** Running ferret script: bn_mode_nodata_lab.jnl
 [?1034h! bn_mode_nodata_lab
 ! turns off the No Valid Data label on plots
 ! (for line plots this is added to the plot label,
@@ -56824,7 +56016,7 @@ contour/fill/y=40:50/x=70e:110e/L=1 vwnd
  
 set mode/last nodata_lab
  
-*** Running test: bn_proleptic_gregorian_calendar.jnl
+*** Running ferret script: bn_proleptic_gregorian_calendar.jnl
 [?1034h! proleptic_gregorian_calendar.jnl
 ! Allow PROLEPTIC_GREGORIAN as a calendar attribute
 ! for the default Ferret calendar.
@@ -56841,7 +56033,7 @@ show axis tdays
  TDAYS     TIME                32 r   01-JAN-1988 00:00    01-FEB-1988 00:00
 T0 = 15-JAN-1901 00:00:00
    Axis span (to cell edges) = 32
-*** Running test: bn_string_ngd_nbd.jnl
+*** Running ferret script: bn_string_ngd_nbd.jnl
 [?1034h! @NGD and @NBD for strings
 ! Bad data is taken to be the null string
 ! Compare with results for numeric data
@@ -57157,7 +56349,7 @@ list av[i=@ngd,j=@ngd,k=@ngd,L=@ngd]
              Z        : 0.5 to 3.5 (XYZT # valid)
              T        : 0.5 to 2.5 (XYZT # valid)
           16.00
-*** Running test: bn_cat_string.jnl
+*** Running ferret script: bn_cat_string.jnl
 [?1034h! bn_cat_string.jnl
 ! Test concatenation functions for string variables
 ! ACM nov 08  See bug 1577
@@ -57223,7 +56415,7 @@ list tcat(a,b)
  4   / 4:"U"
  5   / 5:"V"
  6   / 6:"W"
-*** Running test: bn_sort_strings.jnl
+*** Running ferret script: bn_sort_strings.jnl
 [?1034h! bn_sort_strings.jnl
 ! 11/08 acm
  
@@ -57399,7 +56591,7 @@ list indx_bl, samplel(bl,indx_bl)
 6   / 6:    .... ""   
 7   / 7:    .... ""   
  
-*** Running test: bn_samplexyt.jnl
+*** Running ferret script: bn_samplexyt.jnl
 [?1034h! bn_samplexyt.jnl
 ! 1/2009
  
@@ -57469,14 +56661,14 @@ plot/vs/color=red/over tpts, sampl_pts
  
  
 set mode calendar
-*** Running test: bn_last_go_file.jnl
+*** Running ferret script: bn_last_go_file.jnl
 [?1034h! bn_last_go_file.jnl
 ! test the automatically-defined symbol LAST_GO_FILE
  
 show sym last_go_file
 LAST_GO_FILE = "./bn_last_go_file.jnl"
  
-*** Running test: bn_cancel_upcase_uservar.jnl
+*** Running ferret script: bn_cancel_upcase_uservar.jnl
 [?1034h! bn_cancel_upcase_uservar.jnl
 !
 ! Ferret v6.2
@@ -57508,7 +56700,7 @@ SAVE/APPEND/FILE=a.nc newvar
 SP ncdump -h a.nc >> all_ncdump.out
  
 SET MODE/LAST upcase_output
-*** Running test: bn_cdf_keepax.jnl
+*** Running ferret script: bn_cdf_keepax.jnl
 [?1034h! bn320_cdf
 ! benchmark to test netCDF input and output
 ! This is the same as bn_cdf with /KEEP_AXNAMES added to SAVE commands.
@@ -57785,11 +56977,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX       X                   10 r   1                    10
- YAX       Y                   20 r   1                    20
- ZAX       Z                  100 r   1                    100
- TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX       X                   10 r   1                    10                  full
+ YAX       Y                   20 r   1                    20                  full
+ ZAX       Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -57881,11 +57073,11 @@ show data/full
  
 show grid ijkl
     GRID GEU14
- name       axis              # pts   start                end
- XAX       X                   10 r   1                    10
- YAX       Y                   20 r   1                    20
- ZAX       Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX       X                   10 r   1                    10                  full
+ YAX       Y                   20 r   1                    20                  full
+ ZAX       Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
  
@@ -57915,43 +57107,43 @@ cancel variables/all
 set data/format=cdf test_abs
 show grid j1 jkl jkl2 iavejkl ijkl
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX       Y                   20 r   1                    20
+ YAX       Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX       Y                   20 r   1                    20
- ZAX       Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX       Y                   20 r   1                    20                  full
+ ZAX       Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX       Y                   20 r   1                    20
+ YAX       Y                   20 r   1                    20                  full
  normal    Z
  normal    T
  normal    E
  normal    F
     GRID GEU13
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
- YAX       Y                   20 r   1                    20
- ZAX       Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ YAX       Y                   20 r   1                    20                  full
+ ZAX       Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
     GRID GEU14
- name       axis              # pts   start                end
- XAX       X                   10 r   1                    10
- YAX       Y                   20 r   1                    20
- ZAX       Z                  100 r   1                    100
- TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00
+ name       axis              # pts   start                end                 subset
+ XAX       X                   10 r   1                    10                  full
+ YAX       Y                   20 r   1                    20                  full
+ ZAX       Z                  100 r   1                    100                 full
+ TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
  normal    E
  normal    F
 cancel data test_abs
@@ -58137,11 +57329,11 @@ show data/full
 cancel variable ijkl
 show grid ijkl
     GRID PS3DU1
- name       axis              # pts   start                end
- PSXU      LONGITUDE          160mr   131E                 70W
- PSYU      LATITUDE           100 i   27.672S              50N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXU      LONGITUDE          160mr   131E                 70W                 full
+ PSYU      LATITUDE           100 i   27.672S              50N                 full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
  normal    E
  normal    F
 cancel data test_fil0
@@ -58372,7 +57564,7 @@ list/x=180 fcn_rev_sub
  1N   / 12: -0.3166
  0    / 11:  0.0000
  1S   / 10:  0.3166
-*** Running test: bn_keep_axisnames.jnl
+*** Running ferret script: bn_keep_axisnames.jnl
 [?1034h! bn_keep_axisnames.jnl
 ! 2/2009 ACM
  
@@ -58380,12 +57572,12 @@ list/x=180 fcn_rev_sub
 ! axis name when a subset is written.
  
 sh command list
- LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/D/HEADING/NOHEAD/SINGLE/FILE/APPEND/ORDER
-       /FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS/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
+ LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/HEADING/NOHEAD/SINGLY/FILE/APPEND
+       /ORDER/FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS
+       /MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
+       /CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
+       /XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
+       /OUTTYPE/CURVILIN/LAYERZ
 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]
@@ -58399,7 +57591,7 @@ save/file=a.nc/clobber/i=30:40/L=15:28 a
 sp echo "bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES" >> all_ncdump.out
 sp ncdump -h a.nc >> all_ncdump.out
  
-*** Running test: bn_key_label_minmax.jnl
+*** Running ferret script: bn_key_label_minmax.jnl
 [?1034h! bn_key_label_minmax.jnl
  
 ! Label data min and max on vertical and horizontal keys
@@ -58479,7 +57671,7 @@ KEYMARK 0
 set mode/last logo
 shade/lev=35 sst[L=1]
  
-*** Running test: bn62_bug_fixes.jnl
+*** Running ferret script: bn62_bug_fixes.jnl
 [?1034h! bn62_bug_fixes.jnl
 ! Fixes that go into v6.2 release
  
@@ -58550,7 +57742,7 @@ plot/title="vertical profile" yp4
  
 GO error_bars polygon/color=red/thickness=2/title="variability" yp4 errors
  
-*** Running test: bn_convolve.jnl
+*** Running ferret script: bn_convolve.jnl
 [?1034h! bn_convolve.jnl
 ! test convolutions, including with missing-data.
 ! compare behavior with smoothing transform spz.
@@ -58678,7 +57870,7 @@ list a, a[i=@spz], convolvei(a,{.25,.5,.25})
 12   / 12:  2.000   ....   ....
  
  
-*** Running test: bn_tax_tstep.jnl
+*** Running ferret script: bn_tax_tstep.jnl
 [?1034h! bn_tax_tstep.jnl
 !
 ! Working with the coordinates of this axis loses accuracy because its
@@ -58790,7 +57982,7 @@ LIST/L=1:15 TAX_TSTEP(tt, "`reset_date`")
  01-JAN-1902 00:01:00 / 13:  60.00000
  01-JAN-1902 00:01:05 / 14:  65.00000
  01-JAN-1902 00:01:10 / 15:  70.00000
-*** Running test: bn_grads_z.jnl
+*** Running ferret script: bn_grads_z.jnl
 [?1034h! bn_grads_z.jnl
 ! acm 3/31/09
 ! Fixing bug 1651.
@@ -58824,10 +58016,10 @@ SHOW DATA
 ! Ferret uses it as Z only because of the order in which it comes in
 SH GRID am
     GRID GMY1
- name       axis              # pts   start                end
- AAXIS     X (METERS)          10 r   1                    10
- BAXIS     Y (METERS)           5 r   1                    9
- CAXIS     Z (METERS)           5 r   2                    10
+ name       axis              # pts   start                end                 subset
+ AAXIS     X (METERS)          10 r   1                    10                  full
+ BAXIS     Y (METERS)           5 r   1                    9                   full
+ CAXIS     Z (METERS)           5 r   2                    10                  full
  normal    T
  normal    E
  normal    F
@@ -58836,10 +58028,10 @@ SH GRID am
 ! Previously it was not.
 SH GRID ar
     GRID GMY2
- name       axis              # pts   start                end
- AAXIS     X (METERS)          10 r   1                    10
- BAXIS     Y (METERS)           5 r   1                    9
- DAXIS     DEPTH (m)            6 i-  0                    8
+ name       axis              # pts   start                end                 subset
+ AAXIS     X (METERS)          10 r   1                    10                  full
+ BAXIS     Y (METERS)           5 r   1                    9                   full
+ DAXIS     DEPTH (m)            6 i-  0                    8                   full
  normal    T
  normal    E
  normal    F
@@ -58852,19 +58044,19 @@ DEFINE AXIS/Z/UNITS="`am,RETURN=zunits`"/DEPTH ($zname) = Z[GZ=am]
  !-> DEFINE AXIS/Z/UNITS="METERS"/DEPTH CAXIS = Z[GZ=am]
 SH GRID am
     GRID GMY1
- name       axis              # pts   start                end
- AAXIS     X (METERS)          10 r   1                    10
- BAXIS     Y (METERS)           5 r   1                    9
- CAXIS     DEPTH (m)            5 r-  2                    10
+ name       axis              # pts   start                end                 subset
+ AAXIS     X (METERS)          10 r   1                    10                  full
+ BAXIS     Y (METERS)           5 r   1                    9                   full
+ CAXIS     DEPTH (m)            5 r-  2                    10                  full
  normal    T
  normal    E
  normal    F
-*** Running test: bn_clock_syms.jnl
+*** Running ferret script: bn_clock_syms.jnl
 [?1034hSH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "0.684895"
-CLOCK_SECS = "0.324"
-CURRENT_DATE = "19-Nov-15"
-CURRENT_TIME = "12:05:50"
+DELTA_CPU = "0.208967"
+CLOCK_SECS = "0.102"
+CURRENT_DATE = "17-Jun-16"
+CURRENT_TIME = "15:18:13"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -58873,8 +58065,8 @@ CURRENT_TIME = "12:05:50"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.051992"
-CLOCK_SECS = "0.376"
+DELTA_CPU = "0.021997"
+CLOCK_SECS = "0.123"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -58888,61 +58080,61 @@ repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=9
 !-> REPEAT: K=10
 let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.176973
+ !-> DEFINE VARIABLE ten_plots = 0.05999
 sh sym DELTA_CPU, CLOCK_SECS
 DELTA_CPU = "0"
-CLOCK_SECS = "0.553"
+CLOCK_SECS = "0.183"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "0.555"
+CLOCK_SECS = "0.184"
 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.019997
- !-> DEFINE VARIABLE sumcpu =0.019997
+ !-> DEFINE VARIABLE dt = 0.006999
+ !-> DEFINE VARIABLE sumcpu =0.006999
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.021997
- !-> DEFINE VARIABLE sumcpu =0.041994
+ !-> DEFINE VARIABLE dt = 0.006999
+ !-> DEFINE VARIABLE sumcpu =0.013998
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.021997
- !-> DEFINE VARIABLE sumcpu =0.063991
+ !-> DEFINE VARIABLE dt = 0.007999
+ !-> DEFINE VARIABLE sumcpu =0.021997
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.021996
- !-> DEFINE VARIABLE sumcpu =0.085987
+ !-> DEFINE VARIABLE dt = 0.007999
+ !-> DEFINE VARIABLE sumcpu =0.029996
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.021997
- !-> DEFINE VARIABLE sumcpu =0.107984
+ !-> DEFINE VARIABLE dt = 0.006999
+ !-> DEFINE VARIABLE sumcpu =0.036995
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.021997
- !-> DEFINE VARIABLE sumcpu =0.129981
+ !-> DEFINE VARIABLE dt = 0.007999
+ !-> DEFINE VARIABLE sumcpu =0.044994
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.020996
- !-> DEFINE VARIABLE sumcpu =0.150977
+ !-> DEFINE VARIABLE dt = 0.006998
+ !-> DEFINE VARIABLE sumcpu =0.051992
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.022997
- !-> DEFINE VARIABLE sumcpu =0.173974
+ !-> DEFINE VARIABLE dt = 0.007999
+ !-> DEFINE VARIABLE sumcpu =0.059991
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.020997
- !-> DEFINE VARIABLE sumcpu =0.194971
+ !-> DEFINE VARIABLE dt = 0.006999
+ !-> DEFINE VARIABLE sumcpu =0.06699
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.020997
- !-> DEFINE VARIABLE sumcpu =0.215968
+ !-> DEFINE VARIABLE dt = 0.007999
+ !-> DEFINE VARIABLE sumcpu =0.074989
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.215968
-0.215968
+ !-> MESSAGE/CONTINUE 0.074989
+0.074989
 sh sym CLOCK_SECS
-CLOCK_SECS = "0.774"
+CLOCK_SECS = "0.26"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "19-Nov-15"
-SESSION_TIME = "12:05"
-CURRENT_DATE = "19-Nov-15"
-CURRENT_TIME = "12:05:50"
-*** Running test: bn63_bug_fixes.jnl
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:18"
+CURRENT_DATE = "17-Jun-16"
+CURRENT_TIME = "15:18:13"
+*** Running ferret script: bn63_bug_fixes.jnl
 [?1034h! bn63_bug_fixes.jnl
 ! Fixes that go into v6.3 release
  
@@ -59046,6 +58238,8 @@ GO err62_thick_tic_time_axis
 ! disappeared due to pixel aliasing. Fixed by setting
 ! the thick-line for these tics.
  
+! restore default setting
+ppl axlabp,-1,-1
  
 define axis/t=1-jan-1990:1-jan-2010:1/units=months tax
  
@@ -59645,7 +58839,7 @@ LIST 1 EQ 2 OR "A" EQ "B"    ! should be 0
              VARIABLE : 1 EQ 2 OR "A" EQ "B"
           0.0000
  
-*** Running test: bn_axis_reversed_syms.jnl
+*** Running ferret script: bn_axis_reversed_syms.jnl
 [?1034h! bn_axis_reversed_syms.jnl
 ! XAXIS_REVERSED and YAXIS_REVERSED are
 ! set to 0 or if the reversed-axis is
@@ -59729,7 +58923,7 @@ sh sym *axis_reversed
 XAXIS_REVERSED = "0"
 YAXIS_REVERSED = "1"
  
-*** Running test: bn_isdepth.jnl
+*** Running ferret script: bn_isdepth.jnl
 [?1034h! Tests of `var,RETURN=ISDEPTH`
  
 define axis/units=meters/z=0:100:2 zup
@@ -59762,7 +58956,7 @@ say `temp,return=isdepth`
  !-> MESSAGE/CONTINUE 0
 0
  
-*** Running test: bn_var_hist_levels.jnl
+*** Running ferret script: bn_var_hist_levels.jnl
 [?1034h! bn_var_hist_levels.jnl
 ! Syntax for variance-based or histogram-based levels
 !
@@ -59778,7 +58972,7 @@ LEV_TEXT = "50V"
 LEV_MIN = "-2"
 LEV_MAX = "30.74"
 LEV_NUM = "56"
-LEV_DEL = "0.5"
+LEV_DEL = "irregular"
 LEV_OPNLEVS = "(-2,3.05,0.505)(3.5,25.5,0.5)(25.5,25.5,0.505)(inf)"
  
 shade/line/lev=50v,5min/title="/LEV=50v,5min" temp[K=1]
@@ -59819,7 +59013,7 @@ shade/line/key/lev=20c,1d/title="/LEV=20c,1d" cvar[K=1]
 ! Histogram-based
 shade/line/key/lev=50h/title="/LEV=50h" cvar[K=1]
  
-*** Running test: bn64_bug_fixes.jnl
+*** Running ferret script: bn64_bug_fixes.jnl
 [?1034h! bn64_bug_fixes.jnl
 ! Fixes that go into v6.4 release
  
@@ -59906,7 +59100,7 @@ list v1
              FILENAME : names
              X        : 1
         "ZAIRA"
-*** Running test: bn_long_grid_names.jnl
+*** Running ferret script: bn_long_grid_names.jnl
 [?1034h! bn_long_grid_names.jnl
 ! test longer grid names (16 --> 64 chars)
 ! tests taken from other bn scripts but with longer grid names
@@ -60466,10 +59660,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -60497,10 +59691,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -60526,10 +59720,10 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- YAX       LATITUDE            81 r   20S                  20N
- ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ YAX       LATITUDE            81 r   20S                  20N                 full
+ ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
  normal    E
  normal    F
@@ -60581,7 +59775,7 @@ show grid gg123456789012345678902
     GRID GG123456789012345678902
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX007)   LATITUDE           401 r   20S                  20N
+ (AX011)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
@@ -60590,7 +59784,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX007)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! demonstrate proper management of dynamic axes
 DEFINE GRID/LIKE=gg123456789012345678902 gg123456789012345678903
@@ -60598,7 +59792,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX007)                         use count:   2
+    AXIS (AX011)                         use count:   2
 DEFINE GRID/like=temp[d=levitus_climatology] gg123456789012345678902
 show grid gg123456789012345678902
     GRID GG123456789012345678902
@@ -60613,7 +59807,7 @@ show grid/dynamic
 Dynamic grids:
     no implicit grids
 Dynamic axes:
-    AXIS (AX007)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! SET GRID using a user-defined variable
 let g = sst[x=0:30:.1,d=coads_climatology]
@@ -60622,11 +59816,11 @@ show grid
  Default grid for DEFINE VARIABLE is (G006)
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
- (AX009)   LONGITUDE          301 r   0E                   30E
- COADSY    LATITUDE            90 r   89S                  89N
+ name       axis              # pts   start                end                 subset
+ (AX013)   LONGITUDE          301 r   0E                   30E                 full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  normal    E
  normal    F
  
@@ -60636,11 +59830,11 @@ show grid
  Default grid for DEFINE VARIABLE is (G006)
  Last successful data access was on grid (G005)
     GRID (G005)
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX010)   LATITUDE           201 r   10S                  10N
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX014)   LATITUDE           201 r   10S                  10N                 200 pts
  normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
  normal    E
  normal    F
 show grid/dynamic
@@ -60648,23 +59842,23 @@ Dynamic grids:
     GRID (G005)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX010)   LATITUDE           201 r   10S                  10N
+ (AX014)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- (AX009)   LONGITUDE          301 r   0E                   30E
+ (AX013)   LONGITUDE          301 r   0E                   30E
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX010)                         use count:   1
-    AXIS (AX009)                         use count:   1
-    AXIS (AX007)                         use count:   1
+    AXIS (AX014)                         use count:   1
+    AXIS (AX013)                         use count:   1
+    AXIS (AX011)                         use count:   1
  
 ! deliberate errors
 set mode ignore
@@ -60685,24 +59879,29 @@ SHOW GRID mygrid_123456789012345678901234567890
     GRID MYGRID_123456789012345678901234567890
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX010)   LATITUDE            41 r   10S                  2S
+ (AX014)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
  normal    F
-*** Running test: bn_xml_repl.jnl
+*** Running ferret script: bn_xml_repl.jnl
 [?1034h! bn_xml_repl.jnl
 ! replace > and < and & with their html equivalents.
  
-use coads_climatology
-set var/title="a title with & and > and < characters" sst
-set var/units="<<" sst
-set att sst.history = "Adding some ampersands.& & to the history"
+! make a short file
+let/units="meters" myvar = 7
+save/clobber/file=a.nc myvar
+can var/all
+use a.nc
+ 
+set var/title="a title with & and > and < characters" myvar
+set var/units="<<" myvar
+define att myvar.history = "Adding some ampersands.& & to the history"
 sh dat/xml/var
 <datasets>
-<dataset name="./coads_climatology.cdf" default="true">
+<dataset name="./a.nc" default="true">
 <title> </title>
-<var name="SST">
+<var name="MYVAR">
 <attribute name="units" type="char">
    <value><![CDATA[<<]]></value>
 </attribute>
@@ -60719,118 +59918,18 @@ sh dat/xml/var
    <value><![CDATA[FLOAT]]></value>
 </attribute>
 <attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="GSQ1">
+<grid name="GSI1">
 <axes>
-<xaxis>COADSX</xaxis>
-<yaxis>COADSY</yaxis>
-<taxis>TIME</taxis>
 </axes>
 </grid>
 </var>
 </dataset>
 </datasets>
 <axes>
-<axis name="COADSX">
-<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>180</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>21</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>379</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="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSX]]></value>
-</attribute>
-</axis>
-<axis name="COADSY">
-<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>90</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>-89</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>89</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[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[COADSY]]></value>
-</attribute>
-</axis>
-<axis name="TIME">
-<attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
-   <value>3</value>
-</attribute>
-<attribute name="start" type="double">
-   <value>0000-01-16 06:00:00</value>
-</attribute>
-<attribute name="end" type="double">
-   <value>0000-03-17 02:58:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
-   <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
-   <value><![CDATA[0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
-   <value>8765.82</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[TIME]]></value>
-</attribute>
-</axis>
 </axes>
-shade/l=1 sst
-*** Running test: bn65_bug_fixes.jnl
+*** Running ferret script: bn65_bug_fixes.jnl
 [?1034h! bn65_bug_fixes.jnl
 ! Fixes that go into v6.5 release
  
@@ -61091,7 +60190,7 @@ poly/ov/nolab/line=15 pos,pos      ! this works
 go polymark "poly/ov/nolab/pal=red/line=1" pos pos " " circle .5
  
  
-*** Running test: bn_txtype_dmy.jnl
+*** Running ferret script: bn_txtype_dmy.jnl
 [?1034h! bn_txtype_dmy.jnl
 ! 2/2010 ACM
 !
@@ -61214,7 +60313,7 @@ ppl plot
 ! make sure this setting doesnt persist
 plot/y=-1/k=1/t=5-mar-1982:28-mar-1982/x=144w temp
 plot/y=-1/k=1/t=5-mar-1982:28-apr-1982/x=144w temp
-*** Running test: bn_n_open_dsets_sym.jnl
+*** Running ferret script: bn_n_open_dsets_sym.jnl
 [?1034h !  bn_n_open_dsets_sym.jnl
 ! Ferret v6.5
 ! New special symbol N_OPEN_DSETS, evaulated when requested.
@@ -61255,7 +60354,7 @@ can dat/all
 sh sym N_OPEN_DSETS
 N_OPEN_DSETS = "0"
  
-*** Running test: bn_multi_decade.jnl
+*** Running ferret script: bn_multi_decade.jnl
 [?1034h! bn_multi_decade.jnl
 ! New default no-small tics for multi-decade plots
 ! See bug 670
@@ -61316,7 +60415,7 @@ set view v7; plot/trans/nolab/ax=0,0,1,0/hlim=0:1 tvar
 set view v8; plot/trans/nolab/ax=0,0,1,0/hlim=0:1/set tvar
   ppl tics,0.1,0.25
   ppl plot
-*** Running test: bn_show_xml_file.jnl
+*** Running ferret script: bn_show_xml_file.jnl
 [?1034h! bn_show_xml_file.jnl
 ! Testing SHOW DATA/OUTFILE
 !         SHOW AXIS/OUTFILE
@@ -61330,7 +60429,12 @@ set view v8; plot/trans/nolab/ax=0,0,1,0/hlim=0:1/set tvar
 ! Dont do show axis/all. Just the axes for one variable is a lot of output.
 ! Ferret v685, show/data/var/xml includes the output of show axis, so remove that.
  
-USE ocean_atlas_temp.cdf
+! create a short file
+LET sst = x[x=1:15] + y[y=1:5] + t[gt=month_irreg]
+save/clobber/file=b.nc sst
+can var/all
+ 
+use b
  
 DEFINE SYMBOL output_xml_file = the_xml_file.xml
  
@@ -61357,14 +60461,11 @@ sp cat the_xml_file.xml
 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
 <data>
 <datasets>
-<dataset name="./ocean_atlas_temp.cdf" default="true">
+<dataset name="./b.nc" default="true">
 <title> </title>
-<var name="TEMP">
-<attribute name="units" type="char">
-   <value><![CDATA[Deg C]]></value>
-</attribute>
+<var name="SST">
 <attribute name="long_name" type="char">
-   <value><![CDATA[Temperature]]></value>
+   <value><![CDATA[X[X=1:15] + Y[Y=1:5] + T[GT=MONTH_IRREG]]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
    <value>-1.E+34</value>
@@ -61376,96 +60477,75 @@ sp cat the_xml_file.xml
    <value><![CDATA[FLOAT]]></value>
 </attribute>
 <attribute name="infile_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<grid name="GBS1">
+<grid name="GRR1">
 <axes>
-<xaxis>XAX_LEV9421_380</xaxis>
-<yaxis>YAX_LEV94</yaxis>
-<zaxis>ZAXLEVIT191_1</zaxis>
-<taxis>TIME</taxis>
+<xaxis>XAX1_15</xaxis>
+<yaxis>YAX1_5</yaxis>
+<taxis>MONTH_IRREG</taxis>
 </axes>
 </grid>
 </var>
 </dataset>
 </datasets>
 <axes>
-<axis name="XAX_LEV9421_380">
+<axis name="MONTH_IRREG">
 <attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
+   <value><![CDATA[L]]></value>
 </attribute>
 <attribute name="units" type="char">
-   <value><![CDATA[degrees_east]]></value>
+   <value><![CDATA[DAYS since 0000-01-01 00:00:00]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>360</value>
+   <value>12</value>
 </attribute>
 <attribute name="start" type="double">
-   <value>20.5</value>
+   <value>0000-01-16 12:00:00</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>379.5</value>
+   <value>0000-12-15 17:49:00</value>
 </attribute>
 <attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
+   <value>uneven</value>
 </attribute>
 <attribute name="modulo" type="char">
    <value><![CDATA[yes]]></value>
 </attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
-   <value><![CDATA[XAX_LEV9421_380]]></value>
-</attribute>
-</axis>
-<axis name="YAX_LEV94">
-<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>180</value>
+<attribute name="time_origin" type="char">
+   <value><![CDATA[0000-01-01 00:00:00]]></value>
 </attribute>
-<attribute name="start" type="double">
-   <value>-89.5</value>
+<attribute name="calendar" type="char">
+   <value><![CDATA[GREGORIAN]]></value>
 </attribute>
-<attribute name="end" type="double">
-   <value>89.5</value>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
 </attribute>
-<attribute name="point_spacing" type="char">
-   <value><![CDATA[even]]></value>
+<attribute name="axis" type="char">
+   <value><![CDATA[T]]></value>
 </attribute>
-<attribute name="modulo" type="char">
-   <value>no</value>
+<attribute name="standard_name" type="char">
+   <value><![CDATA[time]]></value>
 </attribute>
-<attribute name="infile_datatype" type="char">
-   <value><![CDATA[DOUBLE]]></value>
+<attribute name="bounds" type="char">
+   <value><![CDATA[MONTH_IRREG_bnds]]></value>
 </attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[YAX_LEV94]]></value>
+   <value><![CDATA[MONTH_IRREG]]></value>
 </attribute>
 </axis>
-<axis name="ZAXLEVIT191_1">
+<axis name="XAX1_15">
 <attribute name="direction" type="char">
-   <value><![CDATA[K]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[METERS]]></value>
+   <value><![CDATA[I]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>1</value>
+   <value>15</value>
 </attribute>
 <attribute name="start" type="double">
-   <value>0</value>
+   <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>0</value>
-</attribute>
-<attribute name="positive" type="char">
-   <value><![CDATA[down]]></value>
+   <value>15</value>
 </attribute>
 <attribute name="point_spacing" type="char">
    <value><![CDATA[even]]></value>
@@ -61476,52 +60556,46 @@ sp cat the_xml_file.xml
 <attribute name="infile_datatype" type="char">
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[X]]></value>
+</attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[ZAXLEVIT191_1]]></value>
+   <value><![CDATA[XAX1_15]]></value>
 </attribute>
 </axis>
-<axis name="TIME">
+<axis name="YAX1_5">
 <attribute name="direction" type="char">
-   <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
-   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
+   <value><![CDATA[J]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>2</value>
+   <value>5</value>
 </attribute>
 <attribute name="start" type="double">
-   <value>0000-01-16 06:00:00</value>
+   <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>0000-02-15 16:29:00</value>
+   <value>5</value>
 </attribute>
 <attribute name="point_spacing" type="char">
    <value><![CDATA[even]]></value>
 </attribute>
 <attribute name="modulo" type="char">
-   <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
-   <value><![CDATA[0000-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
-   <value><![CDATA[GREGORIAN]]></value>
-</attribute>
-<attribute name="modulo_length" type="short">
-   <value>8765.82</value>
+   <value>no</value>
 </attribute>
 <attribute name="infile_datatype" type="char">
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[Y]]></value>
+</attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[TIME]]></value>
+   <value><![CDATA[YAX1_5]]></value>
 </attribute>
 </axis>
 </axes>
 </data>
  
-*** Running test: bn66_bug_fixes.jnl
+*** Running ferret script: bn66_bug_fixes.jnl
 [?1034h! bn66_bug_fixes.jnl
 ! Fixes that go into v6.6 release
  
@@ -61617,11 +60691,11 @@ stat temp[z=@ave,t=@ave,y=-2:2]
  Standard deviation: 0.40997
  
 cancel region
-*** Running test: bn_netcdf4.jnl
+*** Running ferret script: bn_netcdf4.jnl
 [?1034h! bn_netcdf4.jnl
 ! test syntax for controling NetCDF-4 intput and output.
- 
- 
+! 2/2016 change file name in second intentinal-error case
+!        Also list the file sizes for compressed data
  
 show nccache
 Current NCDF Chunk Cache size 4.1943 MB, n_elems = 1009, preemption = 75
@@ -61667,6 +60741,18 @@ save/file=nc4_nodeflate3.nc/clobber/ncformat=3 sst
 save/file=nc4_deflate4_xyt.nc/clobber/ncformat=4/deflate/shuffle/tchunk=2/xchunk=30/ychunk=20  sst
 save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
  
+! get the file sizes
+! Note that small changes in file size may be caused by differences in the global
+! history attribute; e.g. changing the Ferret version name from v6.97 to v7
+ 
+sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
+Bytes: 197516
+sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
+Bytes: 125222
+sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
+Bytes: 124810
+sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
+Bytes: 118875
  
 ! Write variable as INT
 CAN DAT/all; can var/all; can mem/all
@@ -61679,6 +60765,14 @@ save/clobber/file=nc4_inttemp_set_list_deflate_chunk.nc temp
  
 save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
  
+! get the file sizes
+sp stat nc4_inttemp_classic.nc --printf="Bytes: %s\n"
+Bytes: 60556
+sp stat nc4_inttemp_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
+Bytes: 32402
+sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
+Bytes: 32579
+ 
 cancel list/all
 set list/ncformat=classic
 save/clobber/file=nc4_inttemp_set_classic.nc temp
@@ -61729,10 +60823,10 @@ set mode ignore
 save/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchunk=1  sst
  
 ! Chunk sizes bigger than dim sizes
-save/file=nc4_deflate4bigchunk.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
+save/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
 can mode ignore
  
-*** Running test: bn_scat2grid_bin.jnl
+*** Running ferret script: bn_scat2grid_bin.jnl
 [?1034h! bn_scat2grid_bin.jnl
 ! Tests of scat2grid_bin and scat2grid_nbin functions.
  
@@ -61743,11 +60837,11 @@ define axis/t=1-jan-2010:30-mar-2010:10/units=days tout
 let tt = t[gt=tout,L=1:10]
 sh grid tt
     GRID (G001)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   9 pts
  normal    E
  normal    F
  
@@ -61950,11 +61044,11 @@ list/x=2:3 sgrid
 let tpts = 39798 + 87*RANDU(I)
 show grid tt
     GRID (G004)
- name       axis              # pts   start                end
- X10       X                  201 r   0                    10
- Y10       Y                  201 r   0                    10
+ name       axis              # pts   start                end                 subset
+ X10       X                  201 r   0                    10                  full
+ Y10       Y                  201 r   0                    10                  full
  normal    Z
- TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   9 pts
  normal    E
  normal    F
  
@@ -62069,7 +61163,7 @@ can axis x10
 can axis tout
 can axis tin
  
-*** Running test: bn_axis_dir_symbols.jnl
+*** Running ferret script: bn_axis_dir_symbols.jnl
 [?1034h! bn_axis_dir_symbols.jnl
 ! 5/2010
 !
@@ -62095,7 +61189,7 @@ AX_VERT = "T"
 shade/x=180 sst; show sym ax*; can sym ax*
 AX_HORIZ = "T"
 AX_VERT = "Y"
-*** Running test: bn663_bug_fixes.jnl
+*** Running ferret script: bn663_bug_fixes.jnl
 [?1034h! bn663_bug_fixes.jnl
 ! Fixes that go into v6.63 release
  
@@ -62130,7 +61224,7 @@ USE coads_climatology
 SHADE/L=1/X=60:70/Y=40:50/LEV=v sst
  
 FILL/L=2/X=60:70/Y=40:50/LEV=v sst
-*** Running test: bn_set_axis_regular.jnl
+*** Running ferret script: bn_set_axis_regular.jnl
 [?1034h! bn_set_axis_regular.jnl
 ! Karl Smith, 5/2010
 ! tests for SET AXIS /REGULAR
@@ -62201,9 +61295,9 @@ show grid
  Default grid for DEFINE VARIABLE is MYGRID
  Last successful data access was on grid MYGRID
     GRID MYGRID
- name       axis              # pts   start                end
- MYX       X                   10 i   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX       X                   10 i   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -62262,9 +61356,9 @@ show grid
  Default grid for DEFINE VARIABLE is MYGRID
  Last successful data access was on grid MYGRID
     GRID MYGRID
- name       axis              # pts   start                end
- MYX       X                   10 r   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX       X                   10 r   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -62323,9 +61417,9 @@ show grid
  Default grid for DEFINE VARIABLE is MYGRID
  Last successful data access was on grid MYGRID
     GRID MYGRID
- name       axis              # pts   start                end
- MYX       X                   10 r   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX       X                   10 r   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -62364,9 +61458,9 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GOZ1
     GRID GOZ1
- name       axis              # pts   start                end
- MYX1      X                   10 i   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX1      X                   10 i   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
@@ -62395,15 +61489,15 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GOZ1
     GRID GOZ1
- name       axis              # pts   start                end
- MYX1      X                   10 r   1                    10
- MYY       Y                   10 i   1                    10
+ name       axis              # pts   start                end                 subset
+ MYX1      X                   10 r   1                    10                  full
+ MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
  normal    E
  normal    F
  
-*** Running test: bn_set_cancel_redirect.jnl
+*** Running ferret script: bn_set_cancel_redirect.jnl
 [?1034h! bn_set_cancel_redirect.jnl
 ! Karl Smith, 5/2010
 ! test for SET REDIRECT and CANCEL REDIRECT
@@ -62852,9 +61946,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 47 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v6.96 (PyFerret 1.2)"                                             
- 3    /  3:" ! Linux 2.6.32-573.7.1.el6.x86_64 - 11/19/15"                              
- 4    /  4:" ! 19-Nov-15 12:06     "                                                    
+ 2    /  2:" ! PyFERRET v7 (beta/dbg)"                                                  
+ 3    /  3:" ! Linux 2.6.32-642.1.1.el6.x86_64 - 06/17/16"                              
+ 4    /  4:" ! 17-Jun-16 15:18     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -62905,7 +61999,7 @@ set grid abstract
 cancel grid mygrid
  
 !!! NOTE: journal mode is now turned off !!!
-*** Running test: bn_min_max_smoothers.jnl
+*** Running ferret script: bn_min_max_smoothers.jnl
 [?1034h! bn_min_max_smoothers.jnl
 ! New transforms @SMN and @SMX, smoothers based on the
 ! min and max of the data in the window.
@@ -63193,7 +62287,7 @@ list/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
 85    /  9:  24.51  24.51  25.40  23.54
 95    / 10:  23.54  24.51  24.51  23.54
  
-*** Running test: bn_vector_symbols.jnl
+*** Running ferret script: bn_vector_symbols.jnl
 [?1034h! bn_vector_symbols.jnl
 ! ACM 7/16/21010 Ferret V6.6.3
 !
@@ -63238,7 +62332,7 @@ PPL_VEC_YSKIP = "8"
 VECTOR/NOLAB/KEY/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=6 i/j,j/i
  
 VECTOR/OVER/KEY/NOLAB/I=1:300/J=1:200/LEN=12.2/XSKIP=10/YSKIP=4 i/j,j/i
-*** Running test: bn_variance_large.jnl
+*** Running ferret script: bn_variance_large.jnl
 [?1034h! bn_variance_large.jnl
 ! Previous to v6.6.4, these returned messages **too big**
  
@@ -63284,7 +62378,7 @@ STAT/L=1 huge
 SHADE/L=1/LEV=v huge
  
 CANCEL SYMBOL lev*
-*** Running test: bn_labnum_calendar.jnl
+*** Running ferret script: bn_labnum_calendar.jnl
 [?1034h! bn_labnum_calendar.jn.
 ! Define new symbol, when a Calendar label is on
 ! the plot, pointing to its ppl label number.
@@ -63302,7 +62396,7 @@ sh sym lab($labnum_calend)
  !-> sh sym lab4
 LAB4 = "CALENDAR: NOLEAP"
  
-*** Running test: bn665_bug_fixes.jnl
+*** Running ferret script: bn665_bug_fixes.jnl
 [?1034h! bn65_bug_fixes.jnl
 ! test various fixes that went into version 6.6.5
 ! 11/2010 ACM
@@ -63584,6 +62678,27 @@ list/prec=7 t[gt=t_28]
              TIME     : 04-MAY-2007 05:02
           38825.21
  
+! 1/2016 additional tests, reading and saving data,
+! getting attribute information.
+ 
+set att/output=all .
+save/file=a.nc/clobber/k=1:5 t_28
+sp ncdump -h a.nc | grep INST_TYPE
+		:INST_TYPE = "Sea-Bird CTD SBE 9" ;
+ 
+let evar = T_28.generic_name
+save/append/file=a.nc evar
+ 
+list ..dimnames
+             VARIABLE : ..DIMNAMES
+             FILENAME : epic_formatted_file.nc
+             SUBSET   : 4 points (X)
+ 1   / 1:"time"
+ 2   / 2:"dep" 
+ 3   / 3:"lat" 
+ 4   / 4:"lon" 
+ 
+ 
  
 GO bn_reset
 cancel mode verify
@@ -63656,7 +62771,7 @@ list tax_year(a,a)
  JUL-0004 / 5:"01-JUL-0004"
  JUL-0005 / 6:"01-JUL-0005"
  
-*** Running test: bn_floatstr.jnl
+*** Running ferret script: bn_floatstr.jnl
 [?1034h! bn_floatstr.jnl
 ! testing new function to convert floating-point
 ! variables to strings.
@@ -63777,7 +62892,7 @@ LIST/X=165W:135W/Y=-50/L=1 STRLEN(var)
  139W   / 101:  0.000
  137W   / 102:  0.000
  135W   / 103:  0.000
-*** Running test: bn67_bug_fixes.jnl
+*** Running ferret script: bn67_bug_fixes.jnl
 [?1034h! bn67_bug_fixes.jnl
 ! test various fixes that went into version 6.7
 ! 2/2011 ACM
@@ -63941,27 +63056,32 @@ sh dat/att
   
  .                               history         CHAR        28   T       FERRET V6.7 (beta) 25-Mar-11
                                  Conventions     CHAR        6    F       CF-1.0
-                                 nco_input_file_nINT         1    F       1000
-                                 nco_input_file_lCHAR        2760 F       b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.00 [...]
+                                 nco_input_file_number
+                                                 INT         1    F       1000
+                                 nco_input_file_list
+                                                 CHAR        2760 F       b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.0001.SURF.nc b40.coup_carb.004.cam2.h0.00 [...]
   
 (LON273_289)           DOUBLE    long_name       CHAR        9    T       longitude
                                  units           CHAR        12   T       degrees_east
                                  modulo          DOUBLE      1    T       360
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        10   F       LON273_289
+                                 orig_file_axname
+                                                 CHAR        10   F       LON273_289
   
 (LAT54_54)             DOUBLE    long_name       CHAR        8    T       latitude
                                  units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
-                                 orig_file_axnameCHAR        8    F       LAT54_54
+                                 orig_file_axname
+                                                 CHAR        8    F       LAT54_54
   
 (TIME)                 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
-                                 orig_file_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SFCO2                 FLOAT     units           CHAR        7    T       kg/m2/s
                                  long_name       CHAR        16   T       CO2 surface flux
@@ -63983,7 +63103,7 @@ set mode ignore
  
 ! setting too large
 set mode desperate `9999999999`
- !-> set mode desperate   9999999999.000000
+ !-> set mode desperate 1.E+10
 show mode desperate
       MODE            STATE        ARGUMENT
       DESPERATE     CANCELLED      2560000
@@ -63998,12 +63118,14 @@ show mode desperate
 ! Previously couldnt handle a floating point
 ! input. Now we can.
 set mode desperate `96 * 1024 * 1024`
- !-> set mode desperate   100663296.0000000
+ !-> set mode desperate 1.006633E+08
 show mode desperate
       MODE            STATE        ARGUMENT
-      DESPERATE        SET           100663296
+      DESPERATE        SET           100663300
 can mode ignore
  
+cancel mode desperate
+ 
 GO bn_reset
 cancel mode verify
 GO err667_dup_axnames
@@ -64125,7 +63247,7 @@ sh dat
  TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
  
  
-*** Running test: bn_NaN_note.jnl
+*** Running ferret script: bn_NaN_note.jnl
 [?1034h! bn_NaN_note.jnl
 ! Ferret v6.7  2/2011
 ! The message about no missing flags, and assuming NaN,
@@ -64142,7 +63264,7 @@ cancel mode verify
 SET MODE diag
 USE test0
 CANCEL MODE diag
-*** Running test: bn671_bug_fixes.jnl
+*** Running ferret script: bn671_bug_fixes.jnl
 [?1034h! bn671_bug_fixes.jnl
 ! test various fixes that went into version 6.71
 ! 4/2011 ACM
@@ -64432,7 +63554,7 @@ list var
  380   /  9:   ....
  390   / 10:   ....
  400   / 11:   ....
-*** Running test: bn68_bug_fixes.jnl
+*** Running ferret script: bn68_bug_fixes.jnl
 [?1034h! bn68_bug_fixes.jnl
 ! test various fixes that went into version 6.8
 !
@@ -65044,8 +64166,8 @@ GO err672_dset_cx
 let a = x[gx=0:2:1]; save/clob/file=a1.nc a
 sho grid/x a
     GRID (G008)
- name       axis              # pts   start                end
- (AX001)   X                    3 r   0                    2
+ name       axis              # pts   start                end                 subset
+ (AX007)   X                    3 r   0                    2                   2 pts
  normal    Y
  normal    Z
  normal    T
@@ -65060,8 +64182,8 @@ sho grid/x a
 let a = x[gx=1:3:1]; save/clob/file=a2.nc a
 sho grid/x a
     GRID (G008)
- name       axis              # pts   start                end
- (AX005)   X                    3 r   1                    3
+ name       axis              # pts   start                end                 subset
+ (AX002)   X                    3 r   1                    3                   2 pts
  normal    Y
  normal    Z
  normal    T
@@ -65082,14 +64204,14 @@ can var/all; can dat/all
 use a1
 list x[gx=a[d=1]]
              VARIABLE : X
-                        axis AX001
+                        axis AX007
              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 AX001
+                        axis AX007
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -65104,7 +64226,7 @@ use a2
  
 list x[gx=a[d=1]]
              VARIABLE : X
-                        axis AX001
+                        axis AX007
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -65113,7 +64235,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 AX001
+                        axis AX007
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -65129,12 +64251,12 @@ 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 AX001
+                        axis AX007
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
  2   / 3:  2.000
-*** Running test: bn_ifv.jnl
+*** Running ferret script: bn_ifv.jnl
 [?1034h! bn_ifv.jnl
 ! test IFV IfValid masking for a variety of combos
  
@@ -65269,7 +64391,7 @@ list IFV strings EQ "a" THEN "" ELSE strings
  1   / 1:"" 
  2   / 2:"b"
  3   / 3:"" 
-*** Running test: bn_randu2_randn2.jnl
+*** Running ferret script: bn_randu2_randn2.jnl
 [?1034h! Test randu2 and randn2 with newer random-number algorithm.
 ! 9/2011 acm
 ! Note that most of these results will differe from one
@@ -65286,40 +64408,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.086
-randu2_randn2       0.198
-randu2_randn2       0.798
-randu2_randn2       0.030
-randu2_randn2       0.779
+randu2_randn2       0.273
+randu2_randn2       0.660
+randu2_randn2       0.581
+randu2_randn2       0.130
+randu2_randn2       0.046
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.914
-randu2_randn2       0.232
-randu2_randn2       0.331
-randu2_randn2       0.297
-randu2_randn2       0.096
+randu2_randn2       0.181
+randu2_randn2       0.479
+randu2_randn2       0.130
+randu2_randn2       0.017
+randu2_randn2       0.334
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.342
-randu2_randn2       0.952
-randu2_randn2       0.373
-randu2_randn2       0.186
-randu2_randn2       0.390
-randu2_randn2       0.001
+randu2_randn2       0.706
+randu2_randn2       0.598
+randu2_randn2       0.639
+randu2_randn2       0.550
+randu2_randn2       0.041
+randu2_randn2       0.719
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.376
-randu2_randn2       0.988
-randu2_randn2       0.561
-randu2_randn2       0.203
-randu2_randn2       0.715
-randu2_randn2       0.317
+randu2_randn2       0.649
+randu2_randn2       0.659
+randu2_randn2       0.217
+randu2_randn2       0.927
+randu2_randn2       0.323
+randu2_randn2       0.872
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -65344,40 +64466,40 @@ randu2_randn2       0.638
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.119
-randu2_randn2       0.011
-randu2_randn2      -0.739
-randu2_randn2       1.723
-randu2_randn2       0.479
+randu2_randn2       0.148
+randu2_randn2       0.808
+randu2_randn2       0.482
+randu2_randn2      -0.358
+randu2_randn2      -0.610
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -0.902
-randu2_randn2       0.150
-randu2_randn2       0.389
-randu2_randn2       0.418
-randu2_randn2      -2.675
+randu2_randn2      -0.845
+randu2_randn2      -0.648
+randu2_randn2       0.768
+randu2_randn2      -0.029
+randu2_randn2      -0.903
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.072
-randu2_randn2       0.581
-randu2_randn2       0.008
-randu2_randn2       1.515
-randu2_randn2      -0.506
-randu2_randn2       1.005
+randu2_randn2      -1.326
+randu2_randn2       0.193
+randu2_randn2      -0.162
+randu2_randn2      -0.674
+randu2_randn2      -0.518
+randu2_randn2       0.558
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.130
-randu2_randn2      -1.730
-randu2_randn2      -0.080
-randu2_randn2       0.196
-randu2_randn2      -0.846
-randu2_randn2       0.180
+randu2_randn2      -0.471
+randu2_randn2      -0.503
+randu2_randn2      -0.154
+randu2_randn2      -3.331
+randu2_randn2      -0.816
+randu2_randn2      -1.594
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -65402,15 +64524,15 @@ 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.654       1.756       0.694
-randu2_randn2       1.756       1.654       0.694
-randu2_randn2       0.694       0.694       0.211
-randu2_randn2       0.211       0.211       0.286
-randu2_randn2      -0.771      -0.536       0.286
-randu2_randn2      -0.536      -0.550       0.286
-randu2_randn2      -0.550      -0.536       0.286
-randu2_randn2       0.286       0.286       0.286
-*** Running test: bn_axis_cf.jnl
+randu2_randn2       1.902       1.902       1.067
+randu2_randn2       1.658       1.658       1.067
+randu2_randn2       1.067       1.067       0.422
+randu2_randn2       0.422       0.422       0.875
+randu2_randn2       0.013       0.013       0.875
+randu2_randn2      -0.212      -0.095       0.875
+randu2_randn2      -0.095      -0.095       0.875
+randu2_randn2       0.875       0.875       0.875
+*** Running ferret script: bn_axis_cf.jnl
 [?1034h! Ticket 1792: Write axes with CF-compliant units
 ! and with standard name attributes for geophysical attrs.
  
@@ -65476,7 +64598,7 @@ sp echo "bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since" >> all_nc
 sp ncdump -h a.nc >> all_ncdump.out
  
  
-*** Running test: bn_repeated_coords.jnl
+*** Running ferret script: bn_repeated_coords.jnl
 [?1034h! Test the use of micro-adjusting on NetCDF read
 ! when coordinates are repeated.
 ! See ticket 1910
@@ -65486,11 +64608,11 @@ sp ncdump -h a.nc >> all_ncdump.out
 use repeat_t_coord.nc
 show grid a
     GRID GKT1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10
+ TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10   full
  normal    E
  normal    F
 show axis tmin
@@ -65519,11 +64641,11 @@ can dat/all
 use/strict repeat_t_coord.nc
 show grid a
     GRID GKT1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TMIN      T                   71 r   1                    71
+ TMIN      T                   71 r   1                    71                  full
  normal    E
  normal    F
 show axis tmin
@@ -65548,7 +64670,7 @@ list aa[L=1:71:10]
  01-JAN-2001 01:00:00 / 7:  0.8949
  01-JAN-2001 01:10:00 / 8:  0.6997
  
-*** Running test: bn_xml_header.jnl
+*** Running ferret script: bn_xml_header.jnl
 [?1034h! bn_xml_header.jnl
 ! run the exact script that LAS uses to make XML header files
  
@@ -65769,7 +64891,7 @@ sp grep -A5 dimension xml_out_string.xml
 </dimension>
 </dimensions>
 </data>
-*** Running test: bn_eof_simple.jnl
+*** Running ferret script: bn_eof_simple.jnl
 [?1034h! bn_eof_simple
 ! Define a simple function with two known functions.
 ! decompose with EOFs.
@@ -65796,11 +64918,11 @@ let sinT = sin(T * 3.141592653589793 / 6.0)
 let spacetime = if (i eq 1) then cosT else sinT + 1
 show grid spacetime
     GRID XYTGRID
- name       axis              # pts   start                end
- XAXIS     X                    2 r   1                    2
- YAXIS     Y                    1 r   1                    1
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   full
+ YAXIS     Y                    1 r   1                    1                   full
  normal    Z
- TAXIS     T                  240 r   0                    59.75
+ TAXIS     T                  240 r   0                    59.75               full
  normal    E
  normal    F
  
@@ -66391,7 +65513,7 @@ can axis xaxis
  
  
 exit/script
-*** Running test: bn_eof_simple2.jnl
+*** Running ferret script: bn_eof_simple2.jnl
 [?1034h! bn_eof_simple2
 ! Define a simple function with four known functions, two of which are degenerate.
 ! decompose with EOFs.
@@ -66418,11 +65540,11 @@ let spacetime123 = if (i eq 2) and (j eq 1) then cost * sint + 2 else spacetime1
 let spacetime = if (i eq 2) and (j eq 2) then sint * sint + 3 else spacetime123
 show grid spacetime
     GRID XYTGRID
- name       axis              # pts   start                end
- XAXIS     X                    2 r   1                    2
- YAXIS     Y                    2 r   1                    2
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                    2 r   1                    2                   full
+ YAXIS     Y                    2 r   1                    2                   full
  normal    Z
- TAXIS     T                  240 r   0                    23.9
+ TAXIS     T                  240 r   0                    23.9                full
  normal    E
  normal    F
  
@@ -66751,13 +65873,15 @@ can axis yaxis
 can axis xaxis
  
 exit/script
-*** Running test: bn_interpolate_6d.jnl
+*** Running ferret script: bn_interpolate_6d.jnl
 [?1034h! bn_interpolate_6d.JNL
 ! benchmark interpolation along various axes
 ! including the E and F axis
+! note with fix to ticket 2399 mode calendar applies to F axis
  
 SET LIST/PRECISION=6
 SET MODE LATITUDE:4
+set mode calendar:years
  
 LET v = x + 10*y + 100*_e + 1000*_f
 SET REGION/X=1:3/Y=1:3/E=1:3/F=1:3
@@ -67147,12 +66271,16 @@ LIST v[@xpt, at ypt, at ept, at fpt]
              E        : 1 (interpolated)
              F        : 1 (interpolated)
           1113.00
-*** Running test: bn_regrid_6d.jnl
+ 
+set mode/last calendar
+*** Running ferret script: bn_regrid_6d.jnl
 [?1034h! bn_regrid_6d.jnl
 ! version of bn_regrid, using E and F directions.
+! note with fix to ticket 2399 mode calendar applies to F axis
  
 set mode latit_label -4
 set mode long_label -4
+set mode calendar:years
  
 define axis/x=2:20:2 xeven
 define axis/x=1:19:2 xodd
@@ -68522,7 +67650,13 @@ list a24[g=g48]-a48
  05-JAN-1980 00 / 3: -438312.
  07-JAN-1980 00 / 4: -438312.
  
-*** Running test: bn_syntax_6d.jnl
+ 
+ 
+set mode/last latit_label
+set mode/last long_label
+set mode/last calendar
+ 
+*** Running ferret script: bn_syntax_6d.jnl
 [?1034h! bn_syntax_6d.JNL
 ! - test syntax interpretation of Program FERRET 6D
  
@@ -68550,35 +67684,35 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GNJ2
     GRID GNJ2
- name       axis              # pts   start                end
- PSXT70_71 LONGITUDE            2mr   160.5W               159.5W
- PSYT15_75 LATITUDE            61 i   10.169S              9.833N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
- EAXIS     E                    5 r   1                    5
- FAXIS     F                    4 r   1                    7
+ name       axis              # pts   start                end                 subset
+ PSXT70_71 LONGITUDE            2mr   160.5W               159.5W              full
+ PSYT15_75 LATITUDE            61 i   10.169S              9.833N              full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      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
 SET GRID ABSTRACT
 SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GNJ2
     GRID GNJ2
- name       axis              # pts   start                end
- PSXT70_71 LONGITUDE            2mr   160.5W               159.5W
- PSYT15_75 LATITUDE            61 i   10.169S              9.833N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
- EAXIS     E                    5 r   1                    5
- FAXIS     F                    4 r   1                    7
+ name       axis              # pts   start                end                 subset
+ PSXT70_71 LONGITUDE            2mr   160.5W               159.5W              full
+ PSYT15_75 LATITUDE            61 i   10.169S              9.833N              full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      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
     GRID GNJ2
- name       axis              # pts   start                end
- PSXT70_71 LONGITUDE            2mr   160.5W               159.5W
- PSYT15_75 LATITUDE            61 i   10.169S              9.833N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00
- EAXIS     E                    5 r   1                    5
- FAXIS     F                    4 r   1                    7
+ name       axis              # pts   start                end                 subset
+ PSXT70_71 LONGITUDE            2mr   160.5W               159.5W              full
+ PSYT15_75 LATITUDE            61 i   10.169S              9.833N              full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME      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
  
        I     X                   XBOX      XBOXLO
        0>  20E                   358        159W(-159)
@@ -68640,7 +67774,7 @@ cancel variables/all;\
 !-> REPEAT: M=3
      currently SET data sets:
           3.000
-*** Running test: bn_expressions_6d.jnl
+*** Running ferret script: bn_expressions_6d.jnl
 [?1034h! bn_expressions_6d.jnl
 ! testing expressions syntax in E and F directions.
 ! Note pseudo-variables are _E,
@@ -69120,7 +68254,7 @@ LIST/n=5:7 FBOXLO, FBOXHI
 5   / 5:  4.500  5.500
 6   / 6:  5.500  6.500
 7   / 7:  6.500  7.500
-*** Running test: bn_direction_fcns_6d.jnl
+*** Running ferret script: bn_direction_fcns_6d.jnl
 [?1034h! bn_direction_functions_6d
 ! Tests of sort, sample, reverse, convolve, compress, and compess_by
 ! functions in the E and F directions.
@@ -69337,13 +68471,15 @@ list compressn_by(fsequence({10,20,30,40,50}),mask)
  3   / 3:  50.00  50.00
  4   / 4:   ....   ....
  5   / 5:   ....   ....
-*** Running test: bn_regrid_transforms_6d.jnl
+*** Running ferret script: bn_regrid_transforms_6d.jnl
 [?1034h! bn_regrid_transforms_6d.jnl
 ! benchmark to test regridding transformations and syntax
 ! version of bn_regrid_transforms, using E and F directions.
+! note with fix to ticket 2399 mode calendar applies to F axis
  
 use gtsa056_1_ef
 set mode diag
+set mode calendar:years
  
 define axis/f=23-jan-1982:30-jan-1982:20/unit=hour fax20
 define axis/x=120e:60w:10/unit=degrees xax10
@@ -69370,7 +68506,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
              LONGITUDE: 130W to 125W
              LATITUDE: 0 to 1.5N
              DEPTH (m): 5
-             TIME: 21-JAN-1982 16:00
+             TIME: 1982
              E: 1 to 2
              FORECAST: 1982 to 1982
              DATA SET: ./gtsa056_1_ef.nc
@@ -69398,7 +68534,7 @@ LIST temp[g=g5day at ave]
              FILENAME : gtsa056_1_ef.nc
              SUBSET   : 5 by 6 by 2 by 2 points (LONGITUDE-LATITUDE-E-FORECAST)
              DEPTH (m): 5
-             TIME     : 21-JAN-1982 16:00
+             TIME     : 1982
               129.5W 128.5W 127.5W 126.5W 125.5W 
               101    102    103    104    105
  ---- N:1 F:   1982
@@ -69444,7 +68580,7 @@ LIST temp[g=g5day]
              FILENAME : gtsa056_1_ef.nc
              SUBSET   : 5 by 6 by 2 by 2 points (LONGITUDE-LATITUDE-E-FORECAST)
              DEPTH (m): 5
-             TIME     : 21-JAN-1982 16:00
+             TIME     : 1982
               129.5W 128.5W 127.5W 126.5W 125.5W 
               101    102    103    104    105
  ---- N:1 F:   1982
@@ -69502,21 +68638,21 @@ plot temp
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
+ strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
  eval    EX#1     C:  8 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  reading TEMP     M:  3 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 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 1    complete
 plot/over temp[g=g5day]
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
@@ -69525,7 +68661,7 @@ plot/over temp[g=g5day]
  regrid  TEMP     M:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 2    complete
 plot/over temp[g=g5day at ave]
@@ -69535,7 +68671,7 @@ plot/over temp[g=g5day at ave]
  -DELETE TEMP     M:  9 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  -DELETE TEMP     M: 10 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
@@ -69544,7 +68680,7 @@ plot/over temp[g=g5day at ave]
  regrid  TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 3    complete
 plot/over temp[g=g5day at asn]
@@ -69554,7 +68690,7 @@ plot/over temp[g=g5day at asn]
  -DELETE TEMP     M:  9 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  -DELETE TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
@@ -69563,7 +68699,7 @@ plot/over temp[g=g5day at asn]
  regrid  TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 4    complete
  
@@ -69578,26 +68714,26 @@ plot temp
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
- strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
+ strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
  eval    EX#1     C:  7 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  reading TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 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 5    complete
 plot/over temp[g=g5day]
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @LIN
  found   TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  regrid  TEMP     M: 11 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 6    complete
 plot/over temp[g=g5day at ave]
@@ -69606,14 +68742,14 @@ plot/over temp[g=g5day at ave]
  -DELETE TEMP     M: 12 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  -DELETE TEMP     M: 13 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @AVE
  found   TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  regrid  TEMP     M: 13 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 7    complete
 plot/over temp[g=g5day at asn]
@@ -69622,14 +68758,14 @@ plot/over temp[g=g5day at asn]
  -DELETE TEMP     M: 12 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  -DELETE TEMP     M: 13 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- strip --> EX#1[T=21-JAN-198200:00 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:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @ASN
  found   TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
  regrid  TEMP     M: 13 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
- doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
+ doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 8    complete
  
@@ -70059,13 +69195,13 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G005)
     GRID (G005)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
  normal    E
- EDAY      FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ EDAY      FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
 list afcst[gf=ehour at max]
  -DELETE _F       M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
  dealloc  dynamic grid (G005)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
@@ -70091,29 +69227,35 @@ show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid (G006)
     GRID (G006)
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
  normal    E
- EHOUR     FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00
+ EHOUR     FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
  
 set mode/last diag
-*** Running test: bn_aggregate_e.jnl
+set mode/last calendar
+*** Running ferret script: bn_aggregate_e.jnl
 [?1034h! bn_aggregate_e.jnl
 ! using the DEFINE DATA/AGGREGATE/E command
 ! Datasets share sst, but only ens1 has airt.
  
+! v6.95+ 11/15 *sh* -- /T is now the default orientation
+! v6.98 12/15 *sh -- modified so that the sequence number of each
+!   dataset in the aggregation is not also its Ferret dataset number
+!   Allowing them to be the same was hiding bugs
+ 
 set mode diag
  
 use ens1, ens2, ens3, ens4
-define data/agg/title fourfiles = ens1, ens3, ens2, ens4
+define data/agg/E fourfiles = ens1, ens3, ens2, ens4
  
 ! The grid of SST is known.
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
+    5> fourfiles  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  
@@ -70127,16 +69269,21 @@ list/i=3 sst[T=@ave]
  strip aggregate gathering SST on E axis:     1     4 dset:   5
  reading SST      M:  1 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     1     1 dset:   1
- reading SST      M:  3 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  1 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:  1 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     2     2 dset:   3
- reading SST      M:  4 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  1 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:  1 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     3     3 dset:   2
- reading SST      M:  5 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  1 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:  1 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing aggregate gathering SST on E axis:     4     4 dset:   4
+ -DELETE SST      M:  1 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  doing --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
              VARIABLE : SST_IN (Deg C)
-             FILENAME : FOURFILES
-             SUBSET   : 9 by 4 points (LATITUDE-E)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
              LONGITUDE: 105W
              TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
             13N    15N    17N    19N    21N    23N    25N    27N    29N   
@@ -70145,60 +69292,111 @@ list/i=3 sst[T=@ave]
  2   / 2:   85.5   85.3   83.7   82.4   80.2   76.7   ....   ....   ....
  3   / 3:   57.0   56.9   55.8   54.9   53.5   51.1   ....   ....   ....
  4   / 4:  114.1  113.8  111.6  109.8  106.9  102.2   ....   ....   ....
+ 
+show memory/all  ! show memory-resident variables before canceling dataset
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+all data in memory:
+ SST[D=fourfiles]                  YE    mr:1  blk1:1  nblk:1
+    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+                                                              AVE
+ SST[D=fourfiles]                  YTE   mr:2  blk1:2  nblk:1
+    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ 
 cancel data fourfiles
- -DELETE SST      M:  2 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
- -DELETE SST      M:  6 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L: -999 -999  M:    1    4  N: -999 -999
  dealloc  dynamic grid (G006)          COADSX116_COADSY52_6NORMAL    TIME      ENSEMBLE  NORMAL
+ canceling dset fourfiles
+ -DELETE SST      M:  1 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L: -999 -999  M:    1    4  N: -999 -999
+ -DELETE SST      M:  2 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
+show memory/all  ! show memory-resident variables after  canceling dataset
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+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
+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
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+    6> fourfiles  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ 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 fourfiles
+show data/brief/all/hidden
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
  
 ! Create airt in the other datasets by LET/D definitions.
+use ens1, ens2, ens3, ens4
 let/d=ens2 airt = sst + 1
 let/d=ens3 airt = sst + 1
 let/d=ens4 airt = sst + 1
  
-define data/agg fourfiles = ens1, ens3, ens2, ens4
- 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    TIME      NORMAL    NORMAL
- getgrid AIRT     C:  5 dset:   2 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    TIME      NORMAL    NORMAL
+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    TIME      NORMAL    NORMAL
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   3 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   5 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
 show data fourfiles
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
+    6> fourfiles  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
  
  
 list/i=3 airt[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 (G007)          COADSX116_COADSY52_6NORMAL    TIME      ENSEMBLE  NORMAL
+ getgrid EX#1     C:  5 dset:   6 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (G003)          COADSX116_COADSY52_6NORMAL    TIME1     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 --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
- strip aggregate gathering AIRT on E axis:     1     4 dset:   5
- reading AIRT     M:  6 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     1     1 dset:   1
- eval    AIRT     C:  9 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  7 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     2     2 dset:   3
- eval    AIRT     C:  9 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  8 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     3     3 dset:   2
+ eval    EX#1     C:  5 dset:   6 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
+ strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
+ strip aggregate gathering AIRT on E axis:     1     4 dset:   6
+ reading AIRT     M:  2 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     1     1 dset:   2
+ -DELETE AIRT     M:  2 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
  eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M: 10 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     4     4 dset:   4
- doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
+ reading SST      M:  2 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     2     2 dset:   4
+ -DELETE AIRT     M:  4 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:  4 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     3     3 dset:   3
+ -DELETE AIRT     M:  5 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ reading SST      M:  5 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     4     4 dset:   5
+ -DELETE AIRT     M:  6 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
              VARIABLE : AIR TEMPERATURE (DEG C)
-             DATA SET : Ensemble
-             FILENAME : FOURFILES
-             SUBSET   : 9 by 4 points (LATITUDE-E)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
              LONGITUDE: 105W
              TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
             13N    15N    17N    19N    21N    23N    25N    27N    29N   
@@ -70208,6 +69406,63 @@ list/i=3 airt[T=@ave]
  3   / 3:   58.0   57.9   56.8   55.9   54.5   52.1   ....   ....   ....
  4   / 4:  115.1  114.8  112.6  110.8  107.9  103.2   ....   ....   ....
  
+! create an ensemble where one member is missing
+ENSEMBLE fourfiles_gap = ens1, -, ens3, ens4
+ getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   5 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
+show data/files fourfiles_gap
+     currently SET data sets:
+    7> fourfiles_gap  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
+ AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
+ 
+          Aggregated datasets:
+      1: ./ens1.nc
+      2: (dummy)
+      3: ./ens3.nc
+      4: ./ens4.nc
+list/i=3 airt[T=@ave]
+ getgrid EX#1     C:  5 dset:   7 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ allocate dynamic grid (G003)          COADSX116_COADSY52_6NORMAL    TIME1     ENSEMBLE  NORMAL
+ 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:  3 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     1     1 dset:   2
+ -DELETE AIRT     M:  3 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ dummy AIRT     M:  3 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     2     2 dset: 401
+ -DELETE AIRT     M:  3 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ found   SST      M:  2 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     3     3 dset:   4
+ -DELETE AIRT     M:  8 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ found   SST      M:  5 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ constan cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ doing aggregate gathering AIRT on E axis:     4     4 dset:   5
+ -DELETE AIRT     M:  3 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
+             VARIABLE : AIR TEMPERATURE (DEG C)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles_gap
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
+             LONGITUDE: 105W
+             TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
+            13N    15N    17N    19N    21N    23N    25N    27N    29N   
+             1      2      3      4      5      6      7      8      9
+ 1   / 1:   27.7   27.6   27.1   26.7   25.8   25.2   ....   ....   ....
+ 2   / 2:   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 3   / 3:   86.5   86.3   84.7   83.4   81.2   77.7   ....   ....   ....
+ 4   / 4:  115.1  114.8  112.6  110.8  107.9  103.2   ....   ....   ....
+ 
 cancel mode diag
 cancel data/all
 cancel var/all
@@ -70224,10 +69479,10 @@ use navy_uw
 set mode ignore
  
 ! Use dataset thats not open.
-define data/agg windy = 1,2,3
+ensemble windy = 1,2,3
  
 ! No variables on comparable grids.
-define data/agg windy = 1,2
+ensemble windy = 1,2
  
 set mode/last ignore
  
@@ -70265,12 +69520,12 @@ show data
  
  
 ! Define the ensemble dataset
-define data/agg windy = 1,2
+ensemble windy = 1,2
  
 ! The grid of the aggregate variables with LET/D is known.
 show data windy
      currently SET data sets:
-    3> WINDY  (default)  Ferret-defined Ensemble aggregation
+    3> windy  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
  UWND     ZONAL WIND                       1:30      1:30      ...       1:12      1:2       ...
  VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      1:2       ...
@@ -70283,10 +69538,10 @@ 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
              TIME: 17-MAR 02:58
  Column  1: UWND[D=coads_uw] is ZONAL WIND (M/S)
  Column  2: UWND[D=navy_uw] is ZONAL WIND (M/S)
- Column  3: UWND[D=WINDY,E=1] is ZONAL WIND (M/S)
- Column  4: VWND[D=WINDY,E=2] is MERIDIONAL WIND (M/S)
- Column  5: UWND[D=WINDY,E=0.5:2.5 at AVE] is ZONAL WIND (M/S)
-               UWND    UWND   UWND    VWND    UWND
+ Column  3: UWND[D=windy,E=1 (coads_uw)] is ZONAL WIND (M/S)
+ Column  4: UWND[D=windy,E=2 (navy_uw)] is ZONAL WIND (M/S)
+ Column  5: UWND[D=windy,E=1:2 at AVE] is ZONAL WIND (M/S)
+               UWND    UWND   UWND    UWND    UWND
 59W    / -30:  1.643  0.2317  1.643  0.2317  0.9371
 57W    / -29:  1.404  0.1102  1.404  0.1102  0.7573
 55W    / -28:  1.353 -0.0184  1.353 -0.0184  0.6674
@@ -70294,19 +69549,27 @@ 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
 51W    / -26:  1.086 -0.3088  1.086 -0.3088  0.3887
  
 ! 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
+    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
  
 ! Define the ensemble dataset
-define data/agg windy = 2,1
+ensemble windy = 2,1
  
 ! The grid of the aggregate variables with LET/D is known.
 show data windy
      currently SET data sets:
-    3> WINDY  (default)  Ferret-defined Ensemble aggregation
+    3> windy  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      1:2       ...
  VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      1:2       ...
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12      1:2       ...
  
  
 ! Use variable from the new dataset
@@ -70316,18 +69579,18 @@ 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
              TIME: 17-MAR 02:58
  Column  1: UWND[D=coads_uw] is ZONAL WIND (M/S)
  Column  2: UWND[D=navy_uw] is ZONAL WIND (M/S)
- Column  3: VWND[D=WINDY,E=1] is MERIDIONAL WIND (M/S)
- Column  4: UWND[D=WINDY,E=2] is ZONAL WIND (M/S)
- Column  5: VWND[D=WINDY,E=0.5:2.5 at AVE] is MERIDIONAL WIND (M/S)
-               UWND    UWND    VWND   UWND    VWND
+ Column  3: UWND[D=windy,E=1 (navy_uw)] is ZONAL WIND (M/S)
+ Column  4: UWND[D=windy,E=2 (coads_uw)] is ZONAL WIND (M/S)
+ Column  5: UWND[D=windy,E=1:2 at AVE] is ZONAL WIND (M/S)
+               UWND    UWND    UWND   UWND    UWND
 59W    / -30:  1.643  0.2317  0.2317  1.643  0.9371
 57W    / -29:  1.404  0.1102  0.1102  1.404  0.7573
 55W    / -28:  1.353 -0.0184 -0.0184  1.353  0.6674
 53W    / -27:  1.210 -0.1624 -0.1624  1.210  0.5237
 51W    / -26:  1.086 -0.3088 -0.3088  1.086  0.3887
  
-can data/all
-can var/all
+cancel data/all
+cancel variable/all
  
 ! DEFINE DATA/HIDE
 ! SHOW DATA/HIDDEN
@@ -70337,22 +69600,22 @@ can var/all
 ! member datasets and show only the ensemble.
 ! show dat/hidden forces showing all
  
-sh command define
+show command define
  DEFINE
  DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
          /DL/DM/DN
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
- DEFINE ATTRIBUT/D/TYPE/OUTPUT/QUIET
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
-sh command show
+show command show
  SHOW/ALL
  SHOW WINDOW/ALL
  SHOW REGION/ALL
@@ -70363,9 +69626,8 @@ sh command show
        /HIDDEN
  SHOW MODE/ALL
  SHOW MOVIE/ALL
- SHOW VARIABLE/ALL/DATASET/DIAG/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ
-       /CURVILIN
- SHOW COMMANDS/ALL
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+ SHOW COMMANDS/ALL/BRIEF
  SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
@@ -70377,150 +69639,78 @@ sh command show
  SHOW GIFFILE
  SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
  SHOW TEXT
+ SHOW QUERIES/ALL
+ 
+use coads_climatology ! to offset indices so they arent equal to Ferret dset #s
  
 use ens1, ens2, ens3, ens4
 ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
  
-! should just show the ensemble set
-sh dat
+! should just show the ensemble set.  Members are hidden.
+show data/brief
      currently SET data sets:
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
+    1> ./coads_climatology.cdf
+    6> fourfiles  (default)  Ensemble aggregation
  
 ! If ask for a member set by name or number, do show it
-sh dat 2
+show data/brief 2
      currently SET data sets:
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-sh dat ens3
+    2> ./ens1.nc
+show data/brief ens3
      currently SET data sets:
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    4> ./ens3.nc
  
 ! should show all members plus ensemble
-sh dat/hidden
+show data/brief/hidden
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    5> FOURFILES  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
+    1> ./coads_climatology.cdf
+    2> ./ens1.nc
+    3> ./ens2.nc
+    4> ./ens3.nc
+    5> ./ens4.nc
+    6> fourfiles  (default)  Ensemble aggregation
  
-! Should show original member datasets
-can dat fourfiles
-sh dat
+! Since the members were hidden, they get deleted with the aggregation
+cancel data fourfiles
+show data/brief
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-can dat/all
+    1> ./coads_climatology.cdf  (default)
+cancel data/all
  
 ! Cancel a member, then the ensemble gets canceled.
-! The hidden members should show up.
- 
+! The hidden members get canceled along with the parent (1/16)
+use coads_climatology ! to offset indices so they arent equal to Ferret dset #s
 use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2
-sh dat
+ensemble/HIDE/title="uvars in dset 2"  my_ens = 2,3
+show data/brief
      currently SET data sets:
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    5> MY_ENS  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:2       ...
- 
-can dat  2
-sh dat
+    1> ./coads_climatology.cdf
+    4> ./ens3.nc
+    5> ./ens4.nc
+    6> my_ens  (default)  Ensemble aggregation
+cancel data  ens2
+show data/brief
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    1> ./coads_climatology.cdf
+    4> ./ens3.nc
+    5> ./ens4.nc
  
-! Cancel the ensemble, then hidden members get un-hidden.
+! Cancel the ensemble, then hidden members get canceled too
  
 use ens1, ens2, ens3, ens4
-ensemble/HIDE/title="uvars in dset 2"  my_ens = 1,2,3,4
+ensemble/HIDE/title="uvars in dset 2"  my_ens = 2,3,4,5
  
 ! members hidden, showing only ensemble.
-sh dat
+show data/brief
      currently SET data sets:
-    5> MY_ENS  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
-can dat my_ens
+    1> ./coads_climatology.cdf
+    6> my_ens  (default)  Ensemble aggregation
+cancel data my_ens
  
-! Cancel ensemble dataset: members un-hidden
-sh dat
+! Cancel ensemble dataset: hidden members deleted
+show data/brief
      currently SET data sets:
-    1> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    2> ./ens2.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    1> ./coads_climatology.cdf  (default)
  
 ! Define several ensembles with /HIDE
 ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
@@ -70528,41 +69718,32 @@ ensemble/HIDE/title="ensemble with hidden members" some = ens1, ens2
 ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
  
 ! Shows all the ensembles
-sh dat
+show data/brief/files
      currently SET data sets:
-    5> FOURFILES     Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
- 
-    6> SOME     Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:2       ...
- 
-    7> MORE  (default)  Ferret-defined Ensemble aggregation
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      1:3       ...
- 
- 
-! Cancel a member of all the ensembles.
-! Cancels dataset 2 and also the ensemble sets.
-can dat 2
-sh dat
+    1> ./coads_climatology.cdf
+    6> fourfiles     Ensemble aggregation
+          Aggregated datasets:
+      1: ./ens1.nc
+      2: ./ens2.nc
+      3: ./ens3.nc
+      4: ./ens4.nc
+    7> some     Ensemble aggregation
+          Aggregated datasets:
+      1: ./ens1.nc
+      2: ./ens2.nc
+    8> more  (default)  Ensemble aggregation
+          Aggregated datasets:
+      1: ./ens2.nc
+      2: ./ens3.nc
+      3: ./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> ./ens1.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      ...       ...
- 
-    3> ./ens3.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
-    4> ./ens4.nc
- name     title                             I         J         K         L         M         N
- SST      SST_IN                           1:10      1:9       ...       1:12      ...       ...
- 
+    1> ./coads_climatology.cdf  (default)
  
-*** Running test: bn_6d_lab_mode.jnl
+*** Running ferret script: bn_6d_lab_mode.jnl
 [?1034h! bn_6d_lab_mode.jnl
 !
 ! Tests of CANCEL MODE 6d_lab, writes SHOW and STAT output in classic 4D form.
@@ -70605,21 +69786,21 @@ show data
 set mode 6d_lab
 show grid temp
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
 cancel mode 6d_lab
 show grid temp
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  
 ! Mode affects output of STAT
  
@@ -70711,7 +69892,7 @@ can mode diag
  
 ! restore default setting
 set mode 6d_lab
-*** Running test: bn682_bug_fixes.jnl
+*** Running ferret script: bn682_bug_fixes.jnl
 [?1034h! bn682_bug_fixes.jnl
 ! test various fixes that went into version 6.82
 ! 8/2012 ACM
@@ -70752,15 +69933,15 @@ sh dat
  
 sho grid lon_c
     GRID GOS2
- name       axis              # pts   start                end
- ETA       X                    4 r   1                    4
- TAU1      Y                    7 r   1                    7
+ name       axis              # pts   start                end                 subset
+ ETA       X                    4 r   1                    4                   full
+ TAU1      Y                    7 r   1                    7                   full
  normal    Z
  normal    T
  normal    E
  normal    F
  
-*** Running test: bn683_bug_fixes.jnl
+*** Running ferret script: bn683_bug_fixes.jnl
 [?1034h! bn683_bug_fixes.jnl
 ! test various fixes that went into version 6.83
 ! 8/2012 ACM
@@ -71045,7 +70226,7 @@ list temp  ! values should match those above.
  02-JAN-1994 12 / 2:  28.63
  
 set mode/last upcase_output
-*** Running test: bn_outtype.jnl
+*** Running ferret script: bn_outtype.jnl
 [?1034h! bn_outtype
 ! Tests of output-type control:
 !  SET VAR/OUTTYPE
@@ -71078,7 +70259,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71086,20 +70267,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -71133,7 +70317,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71141,27 +70325,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
   
  SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -71177,7 +70365,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71185,27 +70373,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
   
  SST2                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -71221,7 +70413,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71229,20 +70421,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST3                  INT       missing_value   INT         1    T       -999
                                  _FillValue      INT         1    T       -999
@@ -71258,7 +70453,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71266,20 +70461,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST3                  SHORT     missing_value   SHORT       1    T       -999
                                  _FillValue      SHORT       1    T       -999
@@ -71296,7 +70494,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71304,20 +70502,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST4                  BYTE      missing_value   BYTE        1    T       -99
                                  _FillValue      BYTE        1    T       -99
@@ -71363,7 +70564,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71371,27 +70572,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
   
  SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -71412,7 +70617,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71420,20 +70625,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST3                  INT       missing_value   INT         1    T       -999
                                  _FillValue      INT         1    T       -999
@@ -71473,7 +70681,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71481,20 +70689,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST2                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -71514,7 +70725,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71522,20 +70733,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST2                  FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -71555,7 +70769,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71563,20 +70777,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST4                  INT       missing_value   INT         1    T       -99
                                  _FillValue      INT         1    T       -99
@@ -71596,7 +70813,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71604,20 +70821,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST4                  BYTE      missing_value   BYTE        1    T       -99
                                  _FillValue      BYTE        1    T       -99
@@ -71634,7 +70854,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71642,20 +70862,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 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_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST4                  INT       missing_value   INT         1    T       -99
                                  _FillValue      INT         1    T       -99
@@ -71670,7 +70893,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  
 ! Go back to default setting.
 can list/outtype
-*** Running test: bn_ribbon_plot.jnl
+*** Running ferret script: bn_ribbon_plot.jnl
 [?1034h! bn_ribbon_plot.jnl
 ! Test color-line-by variable style of plots
  
@@ -71813,7 +71036,7 @@ shade/NOLAB/L=1/x=-50:100/y=-60:50/pal=grayscale mask
 RIBBON/vs/over/nolab/thick=3/sym=20/key/set xpts, ypts, var
 ppl shakey,1,0
 ppl ribbon/over
-*** Running test: bn_descr_4digit.jnl
+*** Running ferret script: bn_descr_4digit.jnl
 [?1034h ! bn_descr_4digit.jnl
  ! See ticket 1969: step files have 3- or 4-digit extensions
  ! coads_clim.999, coads_clim.1000, coads_clim.1001
@@ -71840,7 +71063,7 @@ list/x=180/y=0 sst
  17-APR-1900 / 4:  28.22
  17-MAY-1900 / 5:  28.49
  17-JUN-1900 / 6:  28.32
-*** Running test: bn_axis_outtype.jnl
+*** Running ferret script: bn_axis_outtype.jnl
 [?1034h! bn_axis_outtype.jnl
 !  SET AXIS/OUTTYPE
 ! 23-Oct-2012
@@ -71862,7 +71085,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -71870,20 +71093,23 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  modulo          FLOAT       1    T       360
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME1)                FLOAT     units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          FLOAT       1    T       8765.82
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
@@ -71900,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        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -71908,27 +71134,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  modulo          FLOAT       1    T       360
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME1)                FLOAT     units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          FLOAT       1    T       8765.82
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
   
  
 ! Restore the axis type from the file
@@ -71947,7 +71177,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71955,27 +71185,31 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  modulo          DOUBLE      1    T       360
                                  axis            CHAR        1    T       X
                                  standard_name   CHAR        9    F       longitude
-                                 orig_file_axnameCHAR        13   F       COADSX140_140
+                                 orig_file_axname
+                                                 CHAR        13   F       COADSX140_140
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
+                                 orig_file_axname
+                                                 CHAR        11   F       COADSY46_48
   
 (TIME)                 DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
                                  time_origin     CHAR        20   T       01-JAN-0000 00:00:00
                                  modulo          DOUBLE      1    T       8765.82
                                  axis            CHAR        1    T       T
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        4    F       TIME
+                                 orig_file_axname
+                                                 CHAR        4    F       TIME
   
  SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
                                  _FillValue      FLOAT       1    T       -1.E+34
                                  long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
                                  history         CHAR        22   T       From coads_climatology
                                  units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
+                                 Ferret_Precision_Note
+                                                 CHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
   
  
 ! User-defined axes are output as double by default.
@@ -71991,7 +71225,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71999,7 +71233,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  calendar        CHAR        9    T       GREGORIAN
                                  time_origin     CHAR        11   T       15-JAN-1901
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
+                                 orig_file_axname
+                                                 CHAR        7    F       MYHOURS
   
  TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -72016,7 +71251,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72024,7 +71259,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  calendar        CHAR        9    T       GREGORIAN
                                  time_origin     CHAR        11   T       15-JAN-1901
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
+                                 orig_file_axname
+                                                 CHAR        7    F       MYHOURS
   
  TT                    INT       missing_value   INT         1    T       -9999
                                  _FillValue      INT         1    T       -9999
@@ -72041,7 +71277,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72049,7 +71285,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  calendar        CHAR        9    T       GREGORIAN
                                  time_origin     CHAR        11   T       15-JAN-1901
                                  standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
+                                 orig_file_axname
+                                                 CHAR        7    F       MYHOURS
   
  TT                    DOUBLE    missing_value   DOUBLE      1    T       -9999
                                  _FillValue      DOUBLE      1    T       -9999
@@ -72063,7 +71300,7 @@ set mode ignore
  
 define axis/t=1-jan-1990:1-feb-1992:2/units=seconds myseconds
 let tt = t[gt=myseconds] - `t[gt=myseconds,L=1]`
- !-> DEFINE VARIABLE tt = t[gt=myseconds] - 2.8073952E+09
+ !-> DEFINE VARIABLE tt = t[gt=myseconds] - 2.807395E+09
  
 set axis/outtype=int myseconds
 save/L=32875000:32875201/clobber/file=mytype.nc tt
@@ -72080,7 +71317,7 @@ save/clobber/file=mytype.nc my_data
  
 cancel mode ignore
  
-*** Running test: bn_axis_nonmonotonic.jnl
+*** Running ferret script: bn_axis_nonmonotonic.jnl
 [?1034h! bn_axis_nonmonotonic.jnl
 ! bn_define_axis doesnt test the case where the varible is not monotonic
 ! ACM 11/2012  With Ferret v6.83+ the message tells us the index value
@@ -72092,7 +71329,7 @@ let tvar = {85, 86, 86, 87, 88, 89, 90, 91, 92, 92, 92, 91, 92, 94, 95, 98}
 define axis/t/units=days tax = tvar
  
 cancel mode ignore
-*** Running test: bn_vec_mod.jnl
+*** Running ferret script: bn_vec_mod.jnl
 [?1034h! bn_vec_mod.jnl
 ! /MODULO qualifier for the vector command.
 ! 12/12/2012 ACM
@@ -72113,7 +71350,7 @@ set view lr
 vec/MOD/HLIM=-180:180 u,fakev,geolon_c,geolat_c
  
 can view
-*** Running test: bn685_bug_fixes.jnl
+*** Running ferret script: bn685_bug_fixes.jnl
 [?1034h! bn685_bug_fixes.jnl
 ! test various fixes that went into version 6.85
 ! 1/2013 ACM
@@ -72470,7 +71707,7 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72499,7 +71736,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72550,7 +71787,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72976,7 +72213,7 @@ define axis/y=54:66:0.5/units=degrees_north lat_ax
  
 define grid/x=lon_ax/y=lat_ax/z=zax three_d_grd
  
-*** Running test: bn_dsg_e_x.jnl
+*** Running ferret script: bn_dsg_e_x.jnl
 [?1034h! bn_dsg_e.jnl
 !
 !  Discrete Sampling Geometries files
@@ -73009,17 +72246,17 @@ sh att profile
  profile.history = From FINAL_verification_data_all_PacOOS_NHL_OCNMS_CCCC_03072013.txt 
 sh grid rowsize
     GRID GEN1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
- PROF      E                    3 r   1                    3
+ PROF      E                    3 r   1                    3                   full
  normal    F
 sh grid sal
     GRID GEN2
- name       axis              # pts   start                end
- OBS       X                   34 r   1                    34
+ name       axis              # pts   start                end                 subset
+ OBS       X                   34 r   1                    34                  full
  normal    Y
  normal    Z
  normal    T
@@ -73057,23 +72294,23 @@ sh att (profile)
  (profile).orig_file_axname = profile 
 sh grid rowsize
     GRID GSS1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  normal    T
- PROFILE   E                   21 r   70                   90
+ PROFILE   E                   21 r   70                   90                  full
  normal    F
 sh grid pco2
     GRID GSS2
- name       axis              # pts   start                end
- OBS1      X                  373 r   1                    373
+ name       axis              # pts   start                end                 subset
+ OBS1      X                  373 r   1                    373                 full
  normal    Y
  normal    Z
  normal    T
  normal    E
  normal    F
-*** Running test: bn_nco_append.jnl
+*** Running ferret script: bn_nco_append.jnl
 [?1034h! bn_nco_append.jnl
 ! 5/2013 add a test appending files with ncks
  
@@ -73122,12 +72359,12 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Thu Nov 19 12:06:36 2015: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "Fri Jun 17 15:18:32 2016: ncks -h -A -h z1.nc append_to_this.nc\n",
+			"PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:NCO = "4.4.6" ;
 }
-*** Running test: bn_nobounds.jnl
+*** Running ferret script: bn_nobounds.jnl
 [?1034h! bn_nobounds.jnl
 ! The SAVE/NOBOUNDS qualifier causes bounds never to be written
 ! even if the data is irregular, and even if the axis came into
@@ -73154,7 +72391,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73185,7 +72422,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73217,7 +72454,8 @@ sh dat/att
                                  time_origin     CHAR        20   T       01-JAN-1990 00:00:00
                                  axis            CHAR        1    T       T
                                  bounds          CHAR        9    T       TGAP_bnds
-                                 orig_file_axnameCHAR        4    F       TGAP
+                                 orig_file_axname
+                                                 CHAR        4    F       TGAP
   
  TGAP_bnds             DOUBLE
   
@@ -73247,7 +72485,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -73275,11 +72513,11 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
-*** Running test: bn_write_integer_att.jnl
+*** Running ferret script: bn_write_integer_att.jnl
 [?1034h! bn_write_integer_att.jnl
 !  ACM 6/2013
 !
@@ -73310,7 +72548,7 @@ sp ncdump a.nc | grep numberOfObservations
 		MHCHLA:numberOfObservations = 15736939 ;
  
  
-*** Running test: bn_descriptor_mc.jnl
+*** Running ferret script: bn_descriptor_mc.jnl
 [?1034h! bn_descriptor_mc.jnl
 ! 7/2013 ACM
 ! See ticket 2087
@@ -73349,7 +72587,7 @@ list /x=300/y=10 sst
  16-APR-0000 / 2:  27.17
  16-MAY-0000 / 3:  27.22
  16-JUN-0000 / 4:  27.66
-*** Running test: bn_plot_color_only.jnl
+*** Running ferret script: bn_plot_color_only.jnl
 [?1034h! bn_plot_color_only.jnl
 ! 9/20/2013 ACM
 ! ticket 2094
@@ -73424,11 +72662,12 @@ plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
 set mode/last ignore
  
  
-*** Running test: bn_vtree.jnl
+*** Running ferret script: bn_vtree.jnl
 [?1034h! bn_tree.jnl
  
 ! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
 ! 12/14 update to test regridding output using bn_vtree_regrid.jnl
+! 11/15 - DEFINE DATA/AGG has become /T instead of /E
  
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -73723,16 +72962,16 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 ************************
  
 ! aggregate (ensemble) dataset of file variables
-define data/agg my_agg = my_file_vars, other_file_vars, another_file_vars
+ENSEMBLE my_agg = my_file_vars, other_file_vars, another_file_vars
 go bn_vtree.sub fv1
 /TREE=ALL
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
      FV1[d=my_file_vars]
      FV1[d=other_file_vars]
      FV1[d=another_file_vars]
 /TREE=USER
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
 /TREE=FILE
  
@@ -73745,10 +72984,10 @@ fv1 is ready and AVAILABLE
 ! aggregation in which some members are uvars
 let/d=other_file_vars   fvx = fv1 + x[gx=fvx[d=1],i=1:3]
 let/d=another_file_vars fvx = 2*fv1 + x[gx=fvx[d=1],i=1:3]
-define data/agg my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
+ENSEMBLE my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
 go bn_vtree.sub fvx
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=my_file_vars]
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
@@ -73756,7 +72995,7 @@ go bn_vtree.sub fvx
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
        FV1[d=another_file_vars]
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
@@ -73776,7 +73015,7 @@ let p2 = s3 + p3
 let p3 = p1 + S3
 go bn_vtree.sub p0    ! recursion
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -73787,7 +73026,7 @@ go bn_vtree.sub p0    ! recursion
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
            S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -73807,7 +73046,7 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
 let p3 = s1 + S3
 go bn_vtree.sub p0    ! ok
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -73818,7 +73057,7 @@ go bn_vtree.sub p0    ! ok
            S1 ??			<== UNKNOWN VARIABLE ******
            S3 ??			<== UNKNOWN VARIABLE ******
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -73844,7 +73083,7 @@ show var/tree/d=my_file_vars    fv
    in default dataset my_file_vars
    FV = FV1 + FV1 + FV1
 show var/tree/d=my_uvar_agg     fv
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FV = FV1 + FV1 + FV1
      FV1   (aggregate variable)
 show var/tree/d=other_file_vars uv
@@ -73852,7 +73091,7 @@ show var/tree/d=other_file_vars uv
    UV = FVX + FVX + FVX
      FVX = FV1 + X[GX=FVX[D=1],I=1:3]
 show var/tree/d=my_uvar_agg     uv
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
        FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
@@ -73867,7 +73106,7 @@ let v2 = v1 + b + a + a        ! a appears after v1
 let v3 = a + v1 + b + a + a    ! a appears before v1
 go bn_vtree.sub v2
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -73878,7 +73117,7 @@ go bn_vtree.sub v2
      B =  (defined above)
      A =  (defined above)
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -73893,7 +73132,7 @@ v2 is ready and AVAILABLE
 ************************
 go bn_vtree.sub v3
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
        FV1[d=my_file_vars]
@@ -73904,7 +73143,7 @@ go bn_vtree.sub v3
          C = 1
      B =  (defined above)
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
      V1 = A  + B + B^2
@@ -73928,7 +73167,7 @@ let d = b + c
 let e = 1
 go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
        FV1[d=my_file_vars]
@@ -73939,7 +73178,7 @@ go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
    E = 1
    FVX[d=my_file_vars]
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
@@ -73963,12 +73202,12 @@ the problem is UNKNOWN VARIABLE: F
   let b = a[g=noexist]
   go bn_vtree.sub b
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
@@ -73982,11 +73221,11 @@ the problem is UNKNOWN GRID: NOEXIST
   let c = a[x=45s]
   go bn_vtree.sub c
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
@@ -73999,11 +73238,11 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
   let d = a[i=1,,j=2]
   go bn_vtree.sub d
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
@@ -74016,11 +73255,11 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
   let e = a[p=1]
   go bn_vtree.sub e
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
 /TREE=FILE
@@ -74033,11 +73272,11 @@ the problem is ERROR IN EXPRESSION: A[P=1]
   let f = a[i=10]
   go bn_vtree.sub f
 /TREE=ALL
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
 /TREE=USER
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
 /TREE=FILE
@@ -74050,11 +73289,11 @@ f is ready and AVAILABLE
 ! dependency through attribute sharing (not yet implemented)
 let a = fvz.long_name[d=1]
 show var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = FVZ.LONG_NAME[D=1]
 let a = ..history[d=1]
 show var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = ..HISTORY[D=1]
  
 ! *****
@@ -74072,7 +73311,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR = 1
        regrid to GVAR = X[X=1:5]
@@ -74087,7 +73326,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
        regrid to GVAR = X[X=1:5]
@@ -74102,7 +73341,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR = 1
        regrid to GVAR ??		<== UNKNOWN GRID ******
@@ -74117,7 +73356,7 @@ let a = myvar[g=gvar] + unvar + kvar
 let kvar = 1  ! known var
 ! unvar is always unknown
 sho var/tree a
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = MYVAR[G=GVAR] + UNVAR + KVAR
      MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
        regrid to GVAR ??		<== UNKNOWN GRID ******
@@ -74578,7 +73817,7 @@ vtree=all tempz4
        UNKNOWN_AUX   (unknown auxiliary variable)
  
  
-*** Running test: bn686_bug_fixes.jnl
+*** Running ferret script: bn686_bug_fixes.jnl
 [?1034h! bn686_bug_fixes
 ! test various fixes that went into version 6.86
 ! 11/2013 ACM
@@ -74724,22 +73963,22 @@ T0 = 1-JAN-2001
    Axis span (to cell edges) = 8
 show grid bb
     GRID GHC2
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- UPPERCASETIME TIME             8 r   02-JAN-2001 00:00    09-JAN-2001 00:00
+ UPPERCASETIME TIME             8 r   02-JAN-2001 00:00    09-JAN-2001 00:00   full
  normal    E
  normal    F
  
 ! This variable has axis time, lowercase in the file
 sh grid aa
     GRID GHC1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TIME      T                   15 r   1                    15
+ TIME      T                   15 r   1                    15                  full
  normal    E
  normal    F
 set axis/t0=1-jan-2001/units=days time
@@ -74912,7 +74151,7 @@ LEV_MAX = "30"
 LEV_NUM = "4"
 LEV_DEL = "5"
  
-*** Running test: bn_long_symnames.jnl
+*** Running ferret script: bn_long_symnames.jnl
 [?1034h! bn_long_symnames.jnl
 ! *ACM* 11/22/2013
 ! Allow longer names for Ferret symbols
@@ -74949,7 +74188,7 @@ define symbol q23456789012345678901234567890q23456789012345678901234567890q23456
 show symbol q*
 Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890 = "5"
 Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567XXX = "6"
-*** Running test: bn_strdim.jnl
+*** Running ferret script: bn_strdim.jnl
 [?1034h! bn_strdim.jnl
 ! Keep the string dimension name and size from the intput file
 ! on writing the string variable.
@@ -74975,7 +74214,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74998,11 +74237,11 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
-*** Running test: bn_single_colorlev.jnl
+*** Running ferret script: bn_single_colorlev.jnl
 [?1034h! bn_single_colorlev.jnl
 ! Ticket 2123, mis-labeled color bars when
 ! single level is specified with a range of values
@@ -75019,7 +74258,7 @@ shade/lev=(25)/L=1 INT(sst)
 ! Label upper and lower end of the color bar with the range
 fill/lev=(20,30,10)/L=1 sst
  
-*** Running test: bn69_bug_fixes.jnl
+*** Running ferret script: bn69_bug_fixes.jnl
 [?1034h! bn69_bug_fixes
 ! test various fixes that went into version 6.9
 ! 02/2014 ACM
@@ -75142,7 +74381,7 @@ shade/n=3/L=6 bath_tf
 ! If so its label will show Julian too.
 sh sym lab($labnum_f)
  !-> sh sym lab2
-LAB2 = "FORECAST : 2000 JULIAN"
+LAB2 = "FORECAST : 03-JAN-2000 00:00 JULIAN"
  
 GO bn_reset
 cancel mode verify
@@ -75175,8 +74414,8 @@ sh dat
  
 sh grid a[d=1]
     GRID GSI1
- name       axis              # pts   start                end
- XAXIS_TEST1 X                  4 r   1                    4
+ name       axis              # pts   start                end                 subset
+ XAXIS_TEST1 X                  4 r   1                    4                   full
  normal    Y
  normal    Z
  normal    T
@@ -75184,8 +74423,8 @@ sh grid a[d=1]
  normal    F
 sh grid b[d=2]
     GRID GRR1
- name       axis              # pts   start                end
- XAXIS_TEST X                   4 r   11                   14
+ name       axis              # pts   start                end                 subset
+ XAXIS_TEST X                   4 r   11                   14                  full
  normal    Y
  normal    Z
  normal    T
@@ -75218,7 +74457,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75248,7 +74487,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75269,7 +74508,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75290,7 +74529,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75312,7 +74551,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75486,7 +74725,7 @@ show dat
 set var/name=diff w
  
 SET MODE/LAST ignore
-*** Running test: bn_bad_axis_bounds.jnl
+*** Running ferret script: bn_bad_axis_bounds.jnl
 [?1034h! bn_bad_axis_bounds
 ! Ticket 2146 If there are invalid axis bounds
 ! make them into a dependent variable.
@@ -75501,7 +74740,7 @@ show data
        (invalid axis bounds)
  TEMP2    TEMP[GT=MONTH_IRREG at ASN]         1:1       1:1       1:1       1:12      ...       ...
  
-*** Running test: bn_enter_exit_GO.jnl
+*** Running ferret script: bn_enter_exit_GO.jnl
 [?1034h! GO bn_enter_exit_GO
 ! Lines to allow trace of GO scripts:
 !
@@ -75538,8 +74777,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
@@ -75555,7 +74794,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
@@ -75564,11 +74803,11 @@ 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
-*** Running test: bn_stddev.jnl
+*** Running ferret script: bn_stddev.jnl
 [?1034h! bn_std.jnl
 ! New StdDev transform
  
@@ -75629,7 +74868,7 @@ list/y=3/l=1 temp[z=@std,x=@std]
              DEPTH (m): 0 to 100 (XZ stddev)
              TIME     : 17-AUG-1982 12:00
           0.9487
-*** Running test: bn_set_axis_name.jnl
+*** Running ferret script: bn_set_axis_name.jnl
 [?1034h! bn_set_axis_name.jnl
 ! ticket 2160 Implementing new qualifier SET AXIS/NAME
 ! 3/2014
@@ -75663,11 +74902,11 @@ set axis/name=daysaxis `a,return=taxis`
  !-> set axis/name=daysaxis DAYSAXIS1
 sh grid a
     GRID GSI1
- name       axis              # pts   start                end
+ name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- daysaxis  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00
+ daysaxis  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00   full
  normal    E
  normal    F
  
@@ -75721,13 +74960,14 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        7    F       X13AXIS
+                                 orig_file_axname
+                                                 CHAR        7    F       X13AXIS
   
  A                     DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -75737,13 +74977,14 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        7    F       X13AXIS
+                                 orig_file_axname
+                                                 CHAR        7    F       X13AXIS
   
  B                     DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -75753,13 +74994,14 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        37   T       FERRET V6.96 (PyFerret 1.2) 19-Nov-15
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
                                  point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       X
-                                 orig_file_axnameCHAR        7    F       X13AXIS
+                                 orig_file_axname
+                                                 CHAR        7    F       X13AXIS
   
  C                     DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
                                  _FillValue      DOUBLE      1    T       -1.E+34
@@ -75778,7 +75020,205 @@ set axis/name=45 x_in_meters
 set axis/name=.fr x_in_meters
  
 set mode/last ignore
-*** Running test: bn691_bug_fixes.jnl
+*** Running ferret script: bn_let_remote.jnl
+[?1034h! bn_let_remote.jnl
+! Tests of the F-TDS LET/REMOTE
+! 6/2016 installed NVODS on new-bock server
+ 
+! See if the F-TDS is working and bail if not.
+ 
+let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+load status
+if `status NE 0` then EXIT/SCRIPT
+ !-> if 0 then EXIT/SCRIPT
+ 
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
+let/D=1/remote myvar = t0112mn1[k=1:5 at sum]
+let/D=1/remote ave_z = t0112mn1[z=0:1000 at ave]
+sh var
+ Created by DEFINE VARIABLE:
+     AVE_Z[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = T0112MN1[Z=0:1000 at AVE]
+     MYVAR[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = T0112MN1[K=1:5 at SUM]
+ >>> Definitions that replace any file variable of same name:
+     STATUS = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+set view ul; shade/l=7 myvar
+set view ur; shade/l=3 ave_z
+ 
+list/l=7/x=300:310/y=15 myvar, ave_z
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+             LONGITUDE: 60W to 50W
+             LATITUDE: 14.5N
+             TIME: 14-JUL 12:00
+ Column  1: MYVAR is T0112MN1[K=1:5 at SUM]
+ Column  2: AVE_Z is T0112MN1[Z=0:1000 at AVE]
+             MYVAR   AVE_Z
+59.5W / 301:  139.9  12.94
+58.5W / 302:  139.5  12.91
+57.5W / 303:  140.5  13.68
+56.5W / 304:  140.0  12.37
+55.5W / 305:  137.6  13.60
+54.5W / 306:  136.1  12.27
+53.5W / 307:  134.2  12.13
+52.5W / 308:  137.2  12.35
+51.5W / 309:   27.3  27.30
+50.5W / 310:  135.4  12.16
+ 
+let/D=1/remote ave_t = t0112mn1[L=1:12 at ave]
+set view ll; shade/z=0 ave_t
+ 
+let/D=1/remote/units="`t0112mn1,ret=units`"/title="Summer average Temperature" ave_summer = t0112mn1[t=15-jun:15-sep at ave]
+ !-> DEFINE VARIABLE/D=1/remote/units="deg C"/title="Summer average Temperature" ave_summer = t0112mn1[t=15-jun:15-sep at ave]
+set view lr; shade/z=0 ave_summer
+ 
+can view
+can data/all; can var/all
+ 
+! open another dataset, define more remote variables
+ 
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+let/D=2/remote sstsum = sst[L=1:5 at sum]
+let/D=2/remote airtsum = airt[L=1:5 at sum]
+sh dat
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+ name     title                             I         J         K         L         M         N
+ T0112MN1 Temperature                      1:360     1:180     1:24      1:12      ...       ...
+ 
+    2> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:12      ...       ...
+ AIRT     AIR TEMPERATURE                  1:180     1:90      ...       1:12      ...       ...
+ SPEH     SPECIFIC HUMIDITY                1:180     1:90      ...       1:12      ...       ...
+ WSPD     WIND SPEED                       1:180     1:90      ...       1:12      ...       ...
+ UWND     ZONAL WIND                       1:180     1:90      ...       1:12      ...       ...
+ VWND     MERIDIONAL WIND                  1:180     1:90      ...       1:12      ...       ...
+ SLP      SEA LEVEL PRESSURE               1:180     1:90      ...       1:12      ...       ...
+ ------------------------------
+ AIRTSUM[D=data_coads_climatology.jnl] (/REMOTE) = AIRT[L=1:5 at SUM]
+ SSTSUM[D=data_coads_climatology.jnl] (/REMOTE) = SST[L=1:5 at SUM]
+ 
+ 
+set view ul; plot/y=-10/x=50:150 sstsum
+set view ur; plot/y=-10/x=50:150 airtsum
+list/y=-10/x=50:59 sstsum,airtsum
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
+             LONGITUDE: 50E to 59E
+             LATITUDE: 11S
+ Column  1: SSTSUM is SST[L=1:5 at SUM]
+ Column  2: AIRTSUM is AIRT[L=1:5 at SUM]
+           SSTSUM  AIRTSUM
+51E   / 16:  140.5   138.3
+53E   / 17:  140.6   138.4
+55E   / 18:  141.3   139.5
+57E   / 19:  141.4   138.5
+59E   / 20:  141.5   139.1
+ 
+let both = sstsum + airtsum
+set view lower; plot/y=-10/x=50:150 both
+list/y=-10/x=50:59 sstsum, airtsum, both
+             DATA SET: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl
+             LONGITUDE: 50E to 59E
+             LATITUDE: 11S
+ Column  1: SSTSUM is SST[L=1:5 at SUM]
+ Column  2: AIRTSUM is AIRT[L=1:5 at SUM]
+ Column  3: BOTH is SSTSUM + AIRTSUM
+           SSTSUM  AIRTSUM  BOTH
+51E   / 16:  140.5   138.3  278.7
+53E   / 17:  140.6   138.4  279.0
+55E   / 18:  141.3   139.5  280.9
+57E   / 19:  141.4   138.5  279.9
+59E   / 20:  141.5   139.1  280.6
+ 
+can dat/all; can var/all
+ 
+! make several remote definitions. They can be used together in an expression.
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+let/D=1/remote sstsum = sst[L=1:5 at sum]
+let/D=1/remote airtsum = airt[L=1:5 at sum]
+let/D=1/remote factor = 12
+let/D=1/remote combo = factor*(airtsum - sstsum)
+list/y=-5/x=130w:110w combo
+             VARIABLE : FACTOR*(AIRTSUM - SSTSUM)
+             FILENAME : data_coads_climatology.jnl
+             FILEPATH : http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/
+             SUBSET   : 10 points (LONGITUDE)
+             LATITUDE : 5S
+                 5S    
+                 43
+ 129W   / 106:  -7.04
+ 127W   / 107:  -7.88
+ 125W   / 108:  -0.59
+ 123W   / 109: -10.31
+ 121W   / 110:  -1.90
+ 119W   / 111:  -4.39
+ 117W   / 112:  -6.35
+ 115W   / 113:  -9.40
+ 113W   / 114:  -9.81
+ 111W   / 115: -11.41
+ 
+ 
+can dat/all; can var/all
+ 
+use "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
+ 
+! This is ok let/remote/D=
+let/D=1/remote myvar = t0112mn1[z=1:100 at ave]
+ 
+! Intentional errors:
+ 
+! But cannot put d= within the expression: the expr is evaluated on
+! the remote server so the same datsets are not open there.
+ 
+set mode ignore
+let/D=1/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+ 
+ 
+! But, require LET/D= with /REMOTE
+let/remote rvar = t0112mn1[d=1,z=1:100 at ave]
+ 
+! If expressions involve local variables not defined in the remote dset,
+! then the variable can be computed but not as a remote-var.
+ 
+let a = 12
+let/D=1/remote avar = a*t0112mn1[L=@ave]
+list/x=300/y=15 avar
+ 
+SET MODE/LAST ignore
+ 
+! The dataset remains open, we can fix the definition.
+let/D=1/remote a = 12
+sho dat
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl  (default)
+ name     title                             I         J         K         L         M         N
+ T0112MN1 Temperature                      1:360     1:180     1:24      1:12      ...       ...
+ ------------------------------
+ A[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = 12
+ AVAR[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = A*T0112MN1[L=@AVE]
+ MYVAR[D=data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl] (/REMOTE) = T0112MN1[Z=1:100 at AVE]
+ 
+list/x=300/y=15/z=0:100 avar
+             VARIABLE : A*T0112MN1[L=@AVE]
+             FILENAME : data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
+             FILEPATH : http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/
+             SUBSET   : 7 points (DEPTH (m))
+             LONGITUDE: 60.5W
+             LATITUDE : 14.5N
+             TIME     : 01-JAN 12:00 to 30-DEC 06:00
+               60.5W 
+              300
+ 0      / 1:  331.0
+ 10     / 2:  330.6
+ 20     / 3:  330.4
+ 30     / 4:  329.6
+ 50     / 5:  324.5
+ 75     / 6:  313.6
+ 100    / 7:  299.4
+ 
+can dat/all; can var/all
+ 
+*** Running ferret script: bn691_bug_fixes.jnl
 [?1034h! bn691_bug_fixes
 ! test various fixes that went into version 6.91
 ! 04/2014 ACM
@@ -76009,11 +75449,11 @@ ensemble ens = 1,2,3
 list/y=29.25  MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3],  MAIZE_YIELD[m=@ngd]
              LONGITUDE: 8W(-8) to 6W(-6)
              LATITUDE: 29.3N
-             E: 0.5 to 3.5 (number of valid)
+             E (realization): 0.5 to 3.5 (number of valid)
  Column  1: MAIZE_YIELD[D=maize_1] is  Maize harvest (kgC.m-2.yr-1)
  Column  2: MAIZE_YIELD[D=maize_2] is  Maize harvest (kgC.m-2.yr-1)
  Column  3: MAIZE_YIELD[D=maize_3] is  Maize harvest (kgC.m-2.yr-1)
- Column  4: MAIZE_YIELD[D=ENS] is  Maize harvest (# of points)
+ Column  4: MAIZE_YIELD[D=ens] is  Maize harvest (# of points)
         MAIZE_YIELD  MAIZE_YI MAIZE_Y MAIZE_YIELD
 7.75W  / 1:     ....  0.05247  0.1022   2.000
 7.25W  / 2:  0.01818  0.03588  0.0049   3.000
@@ -76160,6 +75600,7 @@ GO err69_levels_v
 ! based levels returned useless levels. Changes
 ! made to throw out data outside 3 std when
 ! computing the mean and std dev for color levels.
+! Note: fixes to LEV=V 2/2016
  
 use "lev_v_bug.nc"
 shade/lev=v var2d
@@ -76167,11 +75608,11 @@ shade/lev=v var2d
 ! previously the computed levels spanned -8000 to 16000.
 sh sym *lev*
 LEV_TEXT = "V"
-LEV_HISTO_LEVELS = "1.1,1.2,1.6,1.9,2.4,2.5,3.8,5.4,10.2,13.6,14.9"
-LEV_MIN = "-1.E+34"
-LEV_MAX = "5.0000E+32"
-LEV_NUM = "21"
-LEV_DEL = "5.0000E+32"
+LEV_OPNLEVS = "(290,330,10)(332,402,2)(400,450,10)(inf)"
+LEV_MIN = "290"
+LEV_MAX = "114930.72"
+LEV_NUM = "45"
+LEV_DEL = "irregular"
  
  
 GO bn_reset
@@ -76278,12 +75719,12 @@ def axis/z=1:20:1 zaxis
 define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
 let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
 sh grid bigvar
-    GRID (G004)
- name       axis              # pts   start                end
- XAXIS     X                  360 r   1                    360
- YAXIS     Y                  180 r   1                    180
- ZAXIS     Z                   20 r   1                    20
- LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00
+    GRID (G003)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                  360 r   1                    360                 full
+ YAXIS     Y                  180 r   1                    180                 full
+ ZAXIS     Z                   20 r   1                    20                  full
+ LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
  normal    E
  normal    F
 load bigvar
@@ -76291,12 +75732,12 @@ load bigvar
 ! also was an incorrect size.
 define axis/t=1-jan-2000:1-jan-2010:1/units=days  longtime
 sh grid bigvar
-    GRID (G004)
- name       axis              # pts   start                end
- XAXIS     X                  360 r   1                    360
- YAXIS     Y                  180 r   1                    180
- ZAXIS     Z                   20 r   1                    20
- LONGTIME  TIME              3654 r   01-JAN-2000 00:00    01-JAN-2010 00:00
+    GRID (G003)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                  360 r   1                    360                 full
+ YAXIS     Y                  180 r   1                    180                 full
+ ZAXIS     Z                   20 r   1                    20                  full
+ LONGTIME  TIME              3654 r   01-JAN-2000 00:00    01-JAN-2010 00:00   full
  normal    E
  normal    F
 load bigvar
@@ -76312,11 +75753,11 @@ GO err69_write_attribute
 use gt4d011.cdf
 sh grid temp
     GRID PS3DT2
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- PSYT      LATITUDE           100 i   28.836S              48.568N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00
+ name       axis              # pts   start                end                 subset
+ PSXT      LONGITUDE          160mr   130.5E               70.5W               full
+ PSYT      LATITUDE           100 i   28.836S              48.568N             full
+ PSZT      DEPTH (m)           27 i-  5                    3824                full
+ TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
  normal    E
  normal    F
 let a = temp[x=@ave,y=@ave,L=1]
@@ -76684,7 +76125,7 @@ list substring("hello",1,-2)
 list substring("hello",1,-3)
  
 set mode/last ignore
-*** Running test: bn_append_dsg.jnl
+*** Running ferret script: bn_append_dsg.jnl
 [?1034h! bn_append_dsg.jnl
 !From SOCAT 3: appending to a dsg file where the new variable is on the obs
 ! dimension. THe file has no coordinate variable, and we want to keep it that way.
@@ -76698,12 +76139,15 @@ set mode/last ignore
 !  Argument is a file name; the single-cruise dsg file from the data entry
 !
 ! We append more variables to the file, using the same obs dimension.
+! 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
  
 use test_save_dsg.nc
  
+cancel mode upcase
+ 
 ! Lon in 0-360
 let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
 define attribute/output lon360.ioos_category = "Location"
@@ -76740,14 +76184,14 @@ variables:
 		longitude:long_name = "longitude" ;
 		longitude:standard_name = "longitude" ;
 		longitude:ioos_category = "Location" ;
-	double LON360(obs) ;
-		LON360:missing_value = -1.e+34 ;
-		LON360:_FillValue = -1.e+34 ;
-		LON360:long_name = "longitude" ;
-		LON360:units = "degrees_east" ;
-		LON360:ioos_category = "Location" ;
-		LON360:standard_name = "Longitude" ;
-		LON360:history = "added to test_save_dsg.nc" ;
+	double lon360(obs) ;
+		lon360:missing_value = -1.e+34 ;
+		lon360:_FillValue = -1.e+34 ;
+		lon360:long_name = "longitude" ;
+		lon360:units = "degrees_east" ;
+		lon360:ioos_category = "Location" ;
+		lon360:standard_name = "Longitude" ;
+		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
 		:History = "CruiseDsgNcFile 1.0" ;
@@ -76759,13 +76203,16 @@ variables:
 		:geospatial_lat_max = 29.07 ;
 		:time_coverage_start = "2006-06-10T23:48:00Z" ;
 		:time_converage_end = "2006-06-11T00:12:00Z" ;
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 }
-*** Running test: bn_global_atts.jnl
-[?1034h ! NOAA/PMEL TMAP
- ! FERRET v6.91 (beta)
- ! Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 04/07/14
- !  7-Apr-14 16:41
+ 
+set mode/last upcase
+ 
+*** Running ferret script: bn_global_atts.jnl
+[?1034h! bn_global_atts
+! NOTE With the fix for ticket 2241, we need to add CANCEL MODE UPCASE.
+ 
+cancel mode upcase
  
 sp cp global.nc  global_copy.nc
 use global_copy.nc
@@ -76839,17 +76286,17 @@ variables:
 		longitude:long_name = "longitude" ;
 		longitude:standard_name = "longitude" ;
 		longitude:ioos_category = "Location" ;
-	double LON360(obs) ;
-		LON360:missing_value = -1.e+34 ;
-		LON360:_FillValue = -1.e+34 ;
-		LON360:long_name = "longitude" ;
-		LON360:units = "degrees_east" ;
-		LON360:ioos_category = "Location" ;
-		LON360:standard_name = "Longitude" ;
-		LON360:history = "added to test_save_dsg.nc" ;
+	double lon360(obs) ;
+		lon360:missing_value = -1.e+34 ;
+		lon360:_FillValue = -1.e+34 ;
+		lon360:long_name = "longitude" ;
+		lon360:units = "degrees_east" ;
+		lon360:ioos_category = "Location" ;
+		lon360:standard_name = "Longitude" ;
+		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "CruiseDsgNcFile 1.0PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -76876,12 +76323,13 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V6.96 (PyFerret 1.2) 19-Nov-15 
+ PyFERRET V7 (beta/dbg) 17-Jun-16 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
+set mode/last upcase
  
-*** Running test: bn_conventions_history.jnl
+*** Running ferret script: bn_conventions_history.jnl
 [?1034h! bn_conventions_history.jnl
 ! ticket 2169:
 ! Write conventions CF-1.6
@@ -76905,9 +76353,9 @@ can dat/all; use conventions_history
 ! The new attibutes
 sh att .
      attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V6.96 (PyFerret 1.2) 19-Nov-15 
+ ..history = The history of the filePyFERRET V7 (beta/dbg) 17-Jun-16 
  ..Conventions = Conventions for variables named V2CF-1.6 
-*** Running test: bn_center_key_labels.jnl
+*** Running ferret script: bn_center_key_labels.jnl
 [?1034h! bn_center_key_labels
 !  6/2014
 !
@@ -76952,7 +76400,7 @@ can data coads_climatology
 ! Automatically restore regular handling of levels
 shade temp
  
-*** Running test: bn_wgt_transform.jnl
+*** Running ferret script: bn_wgt_transform.jnl
 [?1034h! bn_wgt_transform.jnl  test new @WGT transform,
 ! returns weights used in the equiv. average or integral transform
 ! ACM 7/2014
@@ -77062,7 +76510,7 @@ list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
  25    / 3:  10.00
  35    / 4:  10.00
  45    / 5:   3.50
-*** Running test: bn_show_outfile.jnl
+*** Running ferret script: bn_show_outfile.jnl
 [?1034h! bn_show_outfile
 ! Adding tests for SHOW/OUTFILE=
 ! Previously only tests when SHOW/XML/OUTFILE=
@@ -77097,18 +76545,6 @@ sp cat a.txt
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 365.2425 (modulo length = axis span)
  name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
-   Axis span (to cell edges) = 160 (modulo length = 360)
- PSXU      LONGITUDE          160mr   131E                 70W
-   Axis span (to cell edges) = 160 (modulo length = 360)
- PSYT      LATITUDE           100 i   28.836S              48.568N
-   Axis span (to cell edges) = 80.00004
- PSYU      LATITUDE           100 i   27.672S              50N
-   Axis span (to cell edges) = 80.2682
- PSZT      DEPTH (m)           27 i-  5                    3824
-   Axis span (to cell edges) = 4149
- PSZW      DEPTH (m)           27 i-  10                   4149
-   Axis span (to cell edges) = 4144
  
 ! show grid/outfile
  
@@ -77119,11 +76555,11 @@ SAY ---------------- Just the grid of sst
 ---------------- Just the grid of sst
 sp cat a.txt
     GRID GSQ1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ 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
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  normal    E
  normal    F
  
@@ -77176,11 +76612,11 @@ SAY ---------------- Just grid of sst
 ---------------- Just grid of sst
 sp cat a.txt
     GRID GSQ1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
+ 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
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
  normal    E
  normal    F
  
@@ -77218,9 +76654,6 @@ show grid/clobber/outfile=a.txt PS3*
 SAY ---------------- only showing all grids starting with PS3
 ---------------- only showing all grids starting with PS3
 sp cat a.txt
-      PS3DT
-      PS3DU
-      PS3DW
  
 SAY ---------------- tests sending output of vtree to a file
 ---------------- tests sending output of vtree to a file
@@ -77228,6 +76661,7 @@ GO bn_vtree_outfile
 ! bn_tree_outfile.jnl
  
 ! 8/2014 -- demonstrate SHOW VARIABLE/TREE/OUTFILE
+! 11/15 -- default for DEFINE DATA/AGG has become /T instead of /E
  
 CANCEL DATA/ALL
 ! pure abstract variable -- no dataset
@@ -77474,12 +76908,12 @@ the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
 /TREE=FILE
 fv1 is ready and AVAILABLE
 ************************
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
      FV1[d=my_file_vars]
      FV1[d=other_file_vars]
      FV1[d=another_file_vars]
-   in default dataset MY_AGG
+   in default dataset my_agg
    FV1   (aggregate variable)
  
    FV1[d=my_file_vars]
@@ -77490,14 +76924,14 @@ fv1 is ready and AVAILABLE
 /TREE=FILE
 fvx is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=my_file_vars]
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
        FV1[d=other_file_vars]
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
        FV1[d=another_file_vars]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FVX   (aggregate variable)
      FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
      FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
@@ -77510,7 +76944,7 @@ fvx is ready and AVAILABLE
 /TREE=FILE
 the problem is ILLEGAL RECURSIVE VARIABLES: P1
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -77520,7 +76954,7 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
          P3 = P1 + S3
            P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
            S3 ??			<== UNKNOWN VARIABLE ******
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -77539,7 +76973,7 @@ the problem is ILLEGAL RECURSIVE VARIABLES: P1
 /TREE=FILE
 the problem is UNKNOWN VARIABLE: S1
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -77549,7 +76983,7 @@ the problem is UNKNOWN VARIABLE: S1
          P3 = S1 + S3
            S1 ??			<== UNKNOWN VARIABLE ******
            S3 ??			<== UNKNOWN VARIABLE ******
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    P0 = S1 + P1
      S1 ??			<== UNKNOWN VARIABLE ******
      P1 = S2 + P2
@@ -77566,13 +77000,13 @@ the problem is UNKNOWN VARIABLE: S1
    *unknown variable: S3
    in default dataset my_file_vars
    FV = FV1 + FV1 + FV1
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    FV = FV1 + FV1 + FV1
      FV1   (aggregate variable)
    in default dataset other_file_vars
    UV = FVX + FVX + FVX
      FVX = FV1 + X[GX=FVX[D=1],I=1:3]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    UV = FVX + FVX + FVX
      FVX   (aggregate variable)
        FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
@@ -77583,7 +77017,7 @@ the problem is UNKNOWN VARIABLE: S1
 /TREE=FILE
 v2 is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -77593,7 +77027,7 @@ v2 is ready and AVAILABLE
          C = 1
      B =  (defined above)
      A =  (defined above)
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V2 = V1 + B + A + A
      V1 = A  + B + B^2
        A = FV1[D=1] - FV1[D=2]
@@ -77608,7 +77042,7 @@ v2 is ready and AVAILABLE
 /TREE=FILE
 v3 is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
        FV1[d=my_file_vars]
@@ -77618,7 +77052,7 @@ v3 is ready and AVAILABLE
        B = C
          C = 1
      B =  (defined above)
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    V3 = A + V1 + B + A + A
      A = FV1[D=1] - FV1[D=2]
      V1 = A  + B + B^2
@@ -77633,7 +77067,7 @@ v3 is ready and AVAILABLE
 /TREE=FILE
 the problem is UNKNOWN VARIABLE: F
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
        FV1[d=my_file_vars]
@@ -77643,7 +77077,7 @@ the problem is UNKNOWN VARIABLE: F
    NOEXIST ??			<== UNKNOWN VARIABLE ******
    E = 1
    FVX[d=my_file_vars]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = B + C
      B = FV1[D=MY_FILE_VARS]
      C = 1
@@ -77660,11 +77094,11 @@ the problem is UNKNOWN VARIABLE: F
 /TREE=FILE
 the problem is UNKNOWN GRID: NOEXIST
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    B = A[G=NOEXIST]
      A = I[I=1:5]
        regrid to NOEXIST ??		<== UNKNOWN GRID ******
@@ -77674,10 +77108,10 @@ the problem is UNKNOWN GRID: NOEXIST
 /TREE=FILE
 the problem is ERROR IN EXPRESSION: A[X=45S]
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    C = A[X=45S]
      A[X=45S]   *** WARNING: ERROR IN DEFINITION
       *WARNING: syntax error: A[X=45S]
@@ -77686,10 +77120,10 @@ the problem is ERROR IN EXPRESSION: A[X=45S]
 /TREE=FILE
 the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    D = A[I=1,,J=2]
      A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
       *WARNING: syntax error: A[I=1,,J=2]
@@ -77698,10 +77132,10 @@ the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
 /TREE=FILE
 the problem is ERROR IN EXPRESSION: A[P=1]
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    E = A[P=1]
      A[P=1]   *** WARNING: ERROR IN DEFINITION
       *WARNING: syntax error: A[P=1]
@@ -77710,19 +77144,19 @@ the problem is ERROR IN EXPRESSION: A[P=1]
 /TREE=FILE
 f is ready and AVAILABLE
 ************************
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    F = A[I=10]
      A = I[I=1:5]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = FVZ.LONG_NAME[D=1]
-   in default dataset MY_UVAR_AGG
+   in default dataset my_uvar_agg
    A = ..HISTORY[D=1]
  
  
-*** Running test: bn_date1900_array.jnl
+*** Running ferret script: bn_date1900_array.jnl
 [?1034h! bn_date1900_array.jnl
 ! Let date1900 accept an array of date strings, returning a list
 ! of coordinate values, days since 1-jan-1900.
@@ -77771,7 +77205,7 @@ list t[gt=taxis]
  02-JAN-2001 00 / 2:  36891.
  30-JUL-2002 00 / 3:  37465.
  
-*** Running test: bn_spawn_size.jnl
+*** Running ferret script: bn_spawn_size.jnl
 [?1034h! bn_spawn_size.jnl
 ! Return the size of the result of a spawn, not
 ! the nominalabstract axis length.
@@ -77816,15 +77250,15 @@ list {spawn:"ls xml*.jnl"}
  
 LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
 say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 900
-900
+ !-> MESSAGE/CONTINUE 964
+964
  
 let files = {spawn:"ls *cdf*.jnl"}
 let name_len = strindex(files, ".sub")
 say `name_len, return=isize`
  !-> MESSAGE/CONTINUE 8
 8
-*** Running test: bn_polygon_log.jnl
+*** Running ferret script: bn_polygon_log.jnl
 [?1034h! bn_polygon_log.jnl
 ! polygon plots on a log axis need tests
  
@@ -77858,7 +77292,7 @@ poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
 poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
  
 set mode/last ignore
-*** Running test: bn694_bug_fixes.jnl
+*** Running ferret script: bn694_bug_fixes.jnl
 [?1034h! bn694_bug_fixes
 ! test various fixes that went into version 6.94
 ! 11/2014 ACM
@@ -77887,6 +77321,7 @@ list 'abc'
              FILENAME : aa.nc
           12.00
  
+set mode/last upcase
  
 GO bn_reset
 cancel mode verify
@@ -78302,13 +77737,15 @@ say `a[x=@min]`
  allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  strip --> A[X=25E:25E(385)@MIN,D=2]
- strip moduloing A on X axis:     0    83 dset:   2
- reading A        M:  1 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ strip modulo-void-filling A on X axis:     0    83 dset:   2
+ strip moduloing A on X axis:     0    82 dset:   2
+ reading A        M:  5 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  doing moduloing A on X axis:     1    82 dset:   2
+ doing modulo-void-filling A on X axis:     0    82 dset:   2
  doing --> A[X=25E:25E(385)@MIN,D=2]
- -DELETE A        M:  7 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- !-> MESSAGE/CONTINUE 25.27740573883057
-25.27740573883057
+ -DELETE A        M:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ !-> MESSAGE/CONTINUE 25.27741
+25.27741
  
 ! This previously resulted in an error.
 say `b`
@@ -78319,30 +77756,30 @@ say `b`
  allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  eval    B        C:  6 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   A        M:  8 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE B        M:  6 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- !-> MESSAGE/CONTINUE 25.27740573883057
-25.27740573883057
+ found   A        M:  7 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE B        M: 11 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ !-> MESSAGE/CONTINUE 25.27741
+25.27741
  
 can mode diag
  
 ! What if the region for @MIN is in the saved portion?
 say `a[x=150:200 at min]`
- !-> MESSAGE/CONTINUE 26.96305592854818
-26.96305592854818
+ !-> MESSAGE/CONTINUE 26.96306
+26.96306
 let b = a[x=150:200 at min]
 say `b`
- !-> MESSAGE/CONTINUE 26.96305592854818
-26.96305592854818
+ !-> MESSAGE/CONTINUE 26.96306
+26.96306
  
 ! What if the region for @MIN extends beyond the saved portion?
 say `a[x=200:300 at min]`
- !-> MESSAGE/CONTINUE 25.27740573883057
-25.27740573883057
+ !-> MESSAGE/CONTINUE 25.27741
+25.27741
 let b = a[x=200:300 at min]
 say `b`
- !-> MESSAGE/CONTINUE 25.27740573883057
-25.27740573883057
+ !-> MESSAGE/CONTINUE 25.27741
+25.27741
  
 ! What if the region for @MIN is outside the saved portion?
 say `a[x=300:385 at min]`
@@ -78542,7 +77979,7 @@ set view lower; plot/m=2 efvar
 list/n=3 efvar
              VARIABLE : _M[GE=EAXIS] + _N[GF=FAXIS]
              SUBSET   : 4 points (E)
-             F        : 0.2
+             F        : 0.234
  1001.1 / 1:  4.000
  1234   / 2:  5.000
  2112.3 / 3:  6.000
@@ -78661,8 +78098,8 @@ GO err693_isize_and_gcfcn
 can mode verify
 8
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              7 pts
  normal    Y
  normal    Z
  normal    T
@@ -78686,8 +78123,8 @@ can mode verify
 8 h
 8
     GRID XABSTRACT
- name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
  normal    Y
  normal    Z
  normal    T
@@ -79008,7 +78445,7 @@ list b[x=@ave,k=@ave]
           2.765
  
  
-*** Running test: bn_permute_ascii.jnl
+*** Running ferret script: bn_permute_ascii.jnl
 [?1034h! bn_permute_ascii.jnl
 ! test permutations when reading ascii data, in E and F directions
 ! 11/18/2014
@@ -79314,7 +78751,7 @@ list tm
  3   / 3: -28.53  -8.29
  4   / 4: -28.54  -8.39
  
-*** Running test: bn_lon_lat_time_string.jnl
+*** Running ferret script: bn_lon_lat_time_string.jnl
 [?1034h! bn_lon_lat_time_string.jnl
 ! Test function written for LAS, to create profile labels from
 ! a list of lnogitudes, latitudes, times, and a prefix string.
@@ -79327,13 +78764,6 @@ LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
     time: numeric times
     time_axis: Varible with a time axis to use to convert time to time strings
     string to prepend: A label to start the strings (STRING)
-LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
-    Generate names based on longitude,latitude,time,and a string
-    longitude: Station longitude
-    latitude: Station latitude
-    time: numeric times
-    time_axis: Varible with a time axis to use to convert time to time strings
-    string to prepend: A label to start the names with (STRING)
  
 ! Longitudes are translated to 0:360 range
 let lon = {-172.44, 210.01, -19.5}
@@ -79353,7 +78783,7 @@ list lon_lat_time_string(lon, lat, time, tt, "my_string")
  2   / 2:"my_string_210E_4.9N_03-JAN-2001"    
  3   / 3:"my_string_340.5E_15.03S_04-JAN-2001"
  
-*** Running test: bn_save_justdim.jnl
+*** Running ferret script: bn_save_justdim.jnl
 [?1034h! bn_save_justdim.jnl
 ! When a dataset has axes that are dimensions but not 1-D coordinate variables,
 ! no longer save the coordinate axis that Ferret creates from the dimension.
@@ -79383,7 +78813,7 @@ save/clobber/keep/file=a.nc time
 sp ncdump a.nc >> all_ncdump.out
  
 SET MODE/LAST upcase_output
-*** Running test: bn_time2d.jnl
+*** Running ferret script: bn_time2d.jnl
 [?1034h! bn_time2d.jnl
 ! 1/30/2015 ACM
  
@@ -79414,7 +78844,7 @@ set att/like=time time2d
  
 shade time2d
 shade/trans time2d
-*** Running test: bn_legend_labels.jnl
+*** Running ferret script: bn_legend_labels.jnl
 [?1034h! bn_legend_labels.jnl
 ! The legend labels on a multi-line plot describe the
 !  variable and context but are not controlable by the user.
@@ -79435,7 +78865,7 @@ sh sym lab7,lab8,lab9
 ! 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
-*** Running test: bn_DQ.jnl
+*** Running ferret script: bn_DQ.jnl
 [?1034h! bn_DQ.jnl  *sh* 2/2015
 ! test the use of _DQ_ and _SQ_ in lieu of " and '
  
@@ -79933,7 +79363,7 @@ plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
 !   - inherit_attrs
  
 ! in xeq_define.F:  DEFINE AXIS/NAME='my-name' is of unclear purpose
-*** Running test: bn695_bug_fixes.jnl
+*** Running ferret script: bn695_bug_fixes.jnl
 [?1034h! bn695_bug_fixes
 ! test various fixes that went into version 6.95
  
@@ -80089,7 +79519,7 @@ list astd^2, avar, avar_calc, astd_e_f^2
            EX#1   AVAR  AVAR_CA   EX#4
 I / *:     5.778  5.778   5.778  0.4444
  
-*** Running test: bn_f_tax_fcns.jnl
+*** Running ferret script: bn_f_tax_fcns.jnl
 [?1034h! bn_f_from_tax_fcns.jnl
 ! test tax_* functions returning results from a
 ! time-formatted axis in the F direction
@@ -80355,63 +79785,69 @@ LIST/N=1:15 TAX_TSTEP(ff, "`reset_date`")
  01-JAN-1902 00:01:00 / 13:  60.00000
  01-JAN-1902 00:01:05 / 14:  65.00000
  01-JAN-1902 00:01:10 / 15:  70.00000
-*** Running test: bn_fmrc.jnl
+*** Running ferret script: bn_fmrc.jnl
 [?1034h! bn_fmrc.jnl
 ! initial test of DEFINE DATA/F
  
+! *sh* 11/15 MUCH MORE DETAILED BENCHMARK NEEDED!
+ 
 use "run1.nc"
 use "run2.nc"
 use "run3.nc"
 use "run4.nc"
  
-define data/hide/F/agg/title fourfiles = 1,2,3,4
+define data/hide/F/agg fourfiles = 1,2,3,4
  
 sh grid sst
     GRID (G007)
- name       axis              # pts   start                end
- LON       LONGITUDE           10mr   109W                 91W
- LAT       LATITUDE             9 r   13N                  29N
+ name       axis              # pts   start                end                 subset
+ LON       LONGITUDE           10mr   109W                 91W                 full
+ LAT       LATITUDE             9 r   13N                  29N                 full
  normal    Z
- TF_LAG_T  MODEL ELAPSED TIME (12 r   0                    11
+ TF_LAG_T  MODEL ELAPSED TIME (12 r   0.5                  11.5                full
  normal    E
- TF_CAL_F  FORECAST             4 r   02-JAN-2010 00:00    08-JAN-2010 00:00
+ TF_CAL_F  FORECAST             4 r   01-JAN-2010 12:00    07-JAN-2010 12:00   full
 list/i=1/j=1/L=1:6/n=1:4 sst
              VARIABLE : SST_IN (Deg C)
-             FILENAME : FOURFILES
+             DATA SET : Forecast series of 4 datasets patterned on run1
+             FILENAME : fourfiles
              SUBSET   : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
              LONGITUDE: 109W
              LATITUDE : 13N
              Verification time increases across row.  Initialization time increases down page. 
-                        0      1      2      3      4      5    
+                        0.5    1.5    2.5    3.5    4.5    5.5  
                         1      2      3      4      5      6
- 02-JAN-2010 00 / 1:   27.4   27.4   27.6   28.1   28.9   28.8
- 04-JAN-2010 00 / 2:   54.8   54.9   55.2   56.3   57.7   57.6
- 06-JAN-2010 00 / 3:   82.1   82.3   82.7   84.4   86.6   86.3
- 08-JAN-2010 00 / 4:  109.5  109.8  110.3  112.5  115.5  115.1
+ 01-JAN-2010 12 / 1:   27.4   27.4   27.6   28.1   28.9   28.8
+ 03-JAN-2010 12 / 2:   54.8   54.9   55.2   56.3   57.7   57.6
+ 05-JAN-2010 12 / 3:   82.1   82.3   82.7   84.4   86.6   86.3
+ 07-JAN-2010 12 / 4:  109.5  109.8  110.3  112.5  115.5  115.1
  
 show att sst
-     attributes for dataset: FOURFILES
+     attributes for dataset: fourfiles
  SST.long_name = SST_IN 
  SST.units = Deg C 
  SST.missing_value = -1.E+34
- SST.coordinates = FORECAST TF_TIMES LAT LON 
- SST._ftime2dRef = TF_TIMES 
+ SST.coordinates = RUN TF_TIMES LAT LON 
+ SST._ftime2d = TF_TIMES 
+ SST._cal_t_ax = TF_CAL_T 
+ SST._lag_f_ax = TF_LAG_F 
  
 ! Attribute _ftime2dRef pointe to the 2D time variable
-list/L=1:6/n=1:4 `sst._ftime2dRef`
+list/L=1:6/n=1:4 `sst._ftime2d`
  !-> list/L=1:6/n=1:4 TF_TIMES
              VARIABLE : Forecast time step matrix (day since 01-JAN-2010 00:00:00)
-             FILENAME : FOURFILES
+             DATA SET : Forecast series of 4 datasets patterned on run1
+             FILENAME : fourfiles
              SUBSET   : 6 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
              Verification time increases across row.  Initialization time increases down page. 
-                        0      1      2      3      4      5    
+                        0.5    1.5    2.5    3.5    4.5    5.5  
                         1      2      3      4      5      6
- 02-JAN-2010 00 / 1:   1.00   2.00   3.00   4.00   5.00   6.00
- 04-JAN-2010 00 / 2:   7.00   8.00   9.00  10.00  11.00  12.00
- 06-JAN-2010 00 / 3:   3.00   4.00   5.00   6.00   7.00   8.00
- 08-JAN-2010 00 / 4:   9.00  10.00  11.00  12.00  13.00  14.00
+ 01-JAN-2010 12 / 1:   1.00   2.00   3.00   4.00   5.00   6.00
+ 03-JAN-2010 12 / 2:   3.00   4.00   5.00   6.00   7.00   8.00
+ 05-JAN-2010 12 / 3:   5.00   6.00   7.00   8.00   9.00  10.00
+ 07-JAN-2010 12 / 4:   7.00   8.00   9.00  10.00  11.00  12.00
  
-*** Running test: bn_return_defined.jnl
+*** Running ferret script: bn_return_defined.jnl
 [?1034h! bn_return_defined.jnl
 ! 5/3/2015 *acm*
 ! `return=defined` returns 1 if the user variable is defined
@@ -80433,7 +79869,7 @@ say `temp2,return=def`
 say `temp,return=defined`
  !-> MESSAGE/CONTINUE 0
 0
-*** Running test: bn_can_var_noerr.jnl
+*** Running ferret script: bn_can_var_noerr.jnl
 [?1034h! bn_can_var_noerr.jnl
 ! CANCEL VARIABLE/NOERROR
  
@@ -80479,7 +79915,7 @@ show var
 cancel var/noerror/all
 show var
  Created by DEFINE VARIABLE:
-*** Running test: bn_annotate.jnl
+*** Running ferret script: bn_annotate.jnl
 [?1034h! bn_annotate.jnl
 ! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
 ! locates user-defined labels on a plot.
@@ -80755,7 +80191,7 @@ shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/ypos=0/hal=1/val=0/ang=-45/siz=0.1
 shad/set/i=1:2/j=1:2 i+j; def anno/nou/ypos=0 "My Lab"; ppl plot
 shad/set/i=1:2/j=1:2 i+j; def anno/nou/xpos=0/hal=1/val=0 "My Lab"; ppl plot
 shad/set/i=1:2/j=1:2 i+j; def anno/nou/user/xpos=0/ypos=0 "My Lab"; ppl plot
-*** Running test: bn_auxiliary.jnl
+*** Running ferret script: bn_auxiliary.jnl
 [?1034h! bn_auxiliary.jnl:  exercise auxiliary coordinate regridding
  
 ! notes about the 6/2015 version:
@@ -80915,10 +80351,10 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GAO1
     GRID GAO1
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAXLEVITR DEPTH (m)           20 i-  0                    5000
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                10 pts
  normal    T
  normal    E
  normal    F
@@ -80983,10 +80419,10 @@ SHOW GRID tempz
  getgrid EX#1     C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
  allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
     GRID (G002)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- (AX005)   Z                    5 r   100                  500
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX005)   Z                    5 r   100                  500                 full
  normal    T
  normal    E
  normal    F
@@ -81033,10 +80469,10 @@ LIST tempzax
  49.5S / 1:  4.879  5.102
 SHOW GRID tempzax
     GRID (G004)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAX       Z (METERS)           5 r   100                  500
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 full
  normal    T
  normal    E
  normal    F
@@ -81069,10 +80505,10 @@ LIST/PREC=7 tempz_alt
  49.5S / 1:  6.843000  7.021999
 SHOW GRID tempz_alt
     GRID (G005)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- (AX007)   Z                    5 r   2                    10
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX007)   Z                    5 r   2                    10                  4 pts
  normal    T
  normal    E
  normal    F
@@ -81096,10 +80532,10 @@ LIST/PREC=7 tempz_1pt
  49.5S / 1:  6.836600  7.016000
 SHOW GRID/z tempz_1pt
     GRID (G006)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- (AX008)   Z                    1 r   6                    6
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX008)   Z                    1 r   6                    6                   1 pt
  normal    T
  normal    E
  normal    F
@@ -81121,10 +80557,10 @@ SHOW GRID
  Default grid for DEFINE VARIABLE is ABSTRACT
  Last successful data access was on grid GAO1
     GRID GAO1
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAXLEVITR DEPTH (m)           20 i-  0                    5000
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                1 pt
  normal    T
  normal    E
  normal    F
@@ -81163,10 +80599,10 @@ LIST/PREC=7 rvtempzax - tempz
  49.5S / 1:  0.0000000  0.0000000
 SHOW GRID rvtempzax
     GRID (G004)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAX       Z (METERS)           5 r   100                  500
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
  normal    E
  normal    F
@@ -82358,10 +81794,10 @@ LIST/PREC=7 rvtempzaxave - tempz
  49.5S / 1:  0.00000000  0.00000000
 SHOW GRID/z rvtempzaxave
     GRID (G004)
- name       axis              # pts   start                end
- XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E
- YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S
- ZAX       Z (METERS)           5 r   100                  500
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
  normal    E
  normal    F
@@ -84539,7 +83975,7 @@ CANC MODE VERIFY
            161    162    163    164    165   
             1      2      3      4      5
           20.75  24.00  20.75   ....  20.75
-*** Running test: bn_plot_ribbon_gaploc.jnl
+*** Running ferret script: bn_plot_ribbon_gaploc.jnl
 [?1034h! bn_plot_ribbon_gaploc.jnl
 ! 7/20/2015 *acm*  new PLOT/VS/RIBBON/GAPLOC
 !
@@ -84547,711 +83983,10453 @@ CANC MODE VERIFY
 ! back into the region we want to pick up the pen along that
 ! edge, not connect the points.
  
-! Note Ribbon plots define a lot of color/line combos, so
-! lots of ribbon overlays on a page need either SHASET RESET or
-! use of fewer than the default number of levels.
+! Note Ribbon plots define a lot of color/line combos, so
+! lots of ribbon overlays on a page need either SHASET RESET or
+! use of fewer than the default number of levels.
+ 
+let xpts = {1,2,3,4,5}
+let ypts = {1,1,1,1,1}
+let color = {1,2,3,4,5}
+let gvar = {0,0,1,0,0}
+plot/vs/ribbon/thick/line/lev=10/sym=21/siz=.3 xpts, 10*ypts, color
+plot/ov/ribbon/nolab/vs/thick/line/lev=10/sym=21/siz=.3/gapl xpts, 10.2*ypts, color, gvar
+plot/ov/ribbon/nolab/fast/vs/thick/line/lev=10/sym=21/siz=.3 xpts, 9.9*ypts, color
+plot/ov/ribbon/nolab/fast/vs/thick/line/lev=10/sym=21/siz=.3/gap xpts, 9.7*ypts, color, gvar
+ 
+use 39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
+ 
+! The line is connected across what should be a gap
+set view left
+plot/vs/hlim=63.5:68/ribbon/line/thick=3/key longitude, latitude, fco2_recommended
+ 
+! The gaploc variable is 1 at the location marking the start of gaps.
+let gaploc = if sample_number[I=@DDF] NE 1 THEN 1 ELSE 0
+set view right
+plot/vs/hlim=63.5:68/ribbon/line/thick=3/key/gap longitude, latitude, fco2_recommended, gaploc
+ 
+! Intentional errors. Qualifier needs 4 arguments. It does not (currently) apply to
+! other styles of line plots.
+set mode ignore
+plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
+plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
+plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
+set mode/last ignore
+*** Running ferret script: bn_time_short_axes.jnl
+[?1034h! bn_time_short_axes.jnl
+! testing time axis style with HH:MM on the time axis labels.
+ 
+use timesec
+ 
+plot/t="21-aug-2015:00:00":"21-aug-2015:04:30" airt
+plot/axes=0,1,1,0/t="21-aug-2015:01:15":"21-aug-2015:03:30" airt
+plot/t="21-aug-2015:01:15":"21-aug-2015:12:00" airt
+ 
+ 
+plot/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" airt
+plot/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" airt
+plot/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" airt
+ 
+! 2D plots
+ 
+define axis/x=0:360:1/units=degrees_east lonax
+let var2d = airt + 0.1*x[gx=lonax]
+ 
+shade/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
+fill/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
+shade/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
+ 
+ 
+shade/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
+fill/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
+shade/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
+*** Running ferret script: bn_floatstr_extended.jnl
+[?1034h! bn_floatstr_extended.jnl
+! test use of Integer and zero-filled formats in FLOATSTR function (Ferret v6.95)
+! 9/28/2015
+ 
+ 
+LET string = FLOATSTR({3.14159,2.71828},"(i3)")
+LIST string
+             VARIABLE : FLOATSTR({3.14159,2.71828},"(i3)")
+             SUBSET   : 2 points (X)
+ 1   / 1:"  3"
+ 2   / 2:"  2"
+ 
+LET string = FLOATSTR({3.14159,2.71828},"(i3.3)")
+LIST string
+             VARIABLE : FLOATSTR({3.14159,2.71828},"(i3.3)")
+             SUBSET   : 2 points (X)
+ 1   / 1:"003"
+ 2   / 2:"002"
+ 
+LET string = FLOATSTR({3.14159,2.71828},"(i03)")
+LIST string
+             VARIABLE : FLOATSTR({3.14159,2.71828},"(i03)")
+             SUBSET   : 2 points (X)
+ 1   / 1:"003"
+ 2   / 2:"002"
+ 
+! Missing data returned as the null string
+LET string = FLOATSTR({3.14159,2.71828,},"(i3)")
+LIST string
+             VARIABLE : FLOATSTR({3.14159,2.71828,},"(i3)")
+             SUBSET   : 3 points (X)
+ 1   / 1:"  3"
+ 2   / 2:"  2"
+ 3   / 3:""   
+ 
+! Test some large and small values
+LET var = {3.14159,2.71828,}
+LIST FLOATSTR(36*var,"(i5)")
+             VARIABLE : FLOATSTR(36*VAR,"(i5)")
+             SUBSET   : 3 points (X)
+ 1   / 1:"  113"
+ 2   / 2:"   97"
+ 3   / 3:""     
+LIST FLOATSTR(36*var,"(i4.3)")
+             VARIABLE : FLOATSTR(36*VAR,"(i4.3)")
+             SUBSET   : 3 points (X)
+ 1   / 1:" 113"
+ 2   / 2:" 097"
+ 3   / 3:""    
+LIST FLOATSTR(1.e14*var,"(i12)")
+             VARIABLE : FLOATSTR(1.E14*VAR,"(i12)")
+             SUBSET   : 3 points (X)
+ 1   / 1:" -2147483648"
+ 2   / 2:" -2147483648"
+ 3   / 3:""            
+LIST FLOATSTR(1.e-14*var,"(i5)")
+             VARIABLE : FLOATSTR(1.E-14*VAR,"(i5)")
+             SUBSET   : 3 points (X)
+ 1   / 1:"    0"
+ 2   / 2:"    0"
+ 3   / 3:""     
+ 
+! Result shape is inherited from the input variable
+USE gt4d011.cdf
+LIST/I=100/J=36:38/T=1-dec-1982:1-jan-1983 FLOATSTR(10000*tauy, "(i4)")
+             VARIABLE : FLOATSTR(10000*TAUY, "(i4)")
+             FILENAME : gt4d011.cdf
+             SUBSET   : 3 by 6 points (LATITUDE-TIME)
+             LONGITUDE: 130W
+                       3S    2.67S 2.33S 
+                        36    37    38
+ 28-NOV-1982 22 / 18:"-271""-240""-208"
+ 05-DEC-1982 00 / 19:"-283""-251""-220"
+ 11-DEC-1982 02 / 20:"-294""-263""-231"
+ 17-DEC-1982 04 / 21:"-356""-323""-290"
+ 23-DEC-1982 06 / 22:"-469""-433""-397"
+ 29-DEC-1982 08 / 23:"-583""-543""-503"
+ 
+USE coads_climatology
+ 
+! i4.4 is the same as i04
+ 
+LET var =  FLOATSTR(sst,"(i4.4)")
+LET var =  FLOATSTR(sst,"(i04)")
+ 
+LIST/X=165W:135W/Y=-50/L=1 var
+             VARIABLE : FLOATSTR(SST,"(i04)")
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 16 points (LONGITUDE)
+             LATITUDE : 51S
+             TIME     : 16-JAN 06:00
+                51S   
+                 20
+ 165W   /  88:"0010"
+ 163W   /  89:"0011"
+ 161W   /  90:"0011"
+ 159W   /  91:"0011"
+ 157W   /  92:"0010"
+ 155W   /  93:"0010"
+ 153W   /  94:"0010"
+ 151W   /  95:"0010"
+ 149W   /  96:"0010"
+ 147W   /  97:"0011"
+ 145W   /  98:"0010"
+ 143W   /  99:"0010"
+ 141W   / 100:""    
+ 139W   / 101:""    
+ 137W   / 102:""    
+ 135W   / 103:""    
+ 
+! Negative numbers cannot be listed with (i5.5) but can with (I05)
+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
+             LATITUDE: 91S to 11S
+             LONGITUDE: 165W
+             TIME: 16-JAN 06:00
+ Column  1: VAR1[G=4 deg on Y] is FLOATSTR(SST-10,"(i5.5)") (regrid: 4 deg on Y)
+ Column  2: VAR2[G=4 deg on Y] is FLOATSTR(SST-10,"(i05)") (regrid: 4 deg on Y)
+              VAR1    VAR2
+89S   /  1: ""      ""     
+85S   /  2: ""      ""     
+81S   /  3: ""      ""     
+77S   /  4: "*****" "00-10"
+73S   /  5: "*****" "00-11"
+69S   /  6: "*****" "000-9"
+65S   /  7: "*****" "00-10"
+61S   /  8: "*****" "000-7"
+57S   /  9: "*****" "000-3"
+53S   / 10: "*****" "000-1"
+49S   / 11: "00002" "00002"
+45S   / 12: "00004" "00004"
+41S   / 13: "00006" "00006"
+37S   / 14: "00008" "00008"
+33S   / 15: "00010" "00010"
+29S   / 16: "00012" "00012"
+25S   / 17: "00015" "00015"
+21S   / 18: "00017" "00017"
+17S   / 19: "00018" "00018"
+13S   / 20: "00019" "00019"
+ 
+ 
+! F0 format for zero-filled F format
+ 
+let a = {1.1, 3.7}
+list  floatstr(a, "(f04.1)")
+             VARIABLE : FLOATSTR(A, "(f04.1)")
+             SUBSET   : 2 points (X)
+ 1   / 1:"01.1"
+ 2   / 2:"03.7"
+ 
+let a = {1.1, 13.7}
+list floatstr(a, "(f06.1)")
+             VARIABLE : FLOATSTR(A, "(f06.1)")
+             SUBSET   : 2 points (X)
+ 1   / 1:"0001.1"
+ 2   / 2:"0013.7"
+ 
+let a = {-1.1, 13.7}
+list  floatstr(a, "(f04.1)")
+             VARIABLE : FLOATSTR(A, "(f04.1)")
+             SUBSET   : 2 points (X)
+ 1   / 1:"-1.1"
+ 2   / 2:"13.7"
+ 
+! testing negative numbers and null/missing results
+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
+             LATITUDE: 91S to 11S
+             LONGITUDE: 165W
+             TIME: 16-JAN 06:00
+ Column  1: VAR1[G=4 deg on Y] is FLOATSTR(SST-20,"(f5.1)") (regrid: 4 deg on Y)
+ Column  2: VAR2[G=4 deg on Y] is FLOATSTR(SST-20,"(f05.1)") (regrid: 4 deg on Y)
+              VAR1    VAR2
+89S   /  1: ""      ""     
+85S   /  2: ""      ""     
+81S   /  3: ""      ""     
+77S   /  4: "-20.4" "-20.4"
+73S   /  5: "-21.0" "-21.0"
+69S   /  6: "-19.8" "-19.8"
+65S   /  7: "-20.0" "-20.0"
+61S   /  8: "-17.3" "-17.3"
+57S   /  9: "-13.9" "-13.9"
+53S   / 10: "-11.2" "-11.2"
+49S   / 11: " -7.5" "0-7.5"
+45S   / 12: " -5.7" "0-5.7"
+41S   / 13: " -3.5" "0-3.5"
+37S   / 14: " -1.3" "0-1.3"
+33S   / 15: "  0.9" "000.9"
+29S   / 16: "  3.0" "003.0"
+25S   / 17: "  5.1" "005.1"
+21S   / 18: "  7.5" "007.5"
+17S   / 19: "  8.1" "008.1"
+13S   / 20: "  9.7" "009.7"
+ 
+! Now test (F0.0) and (I0) formats which return the
+! shortest possible value without the fractional part.
+! Per marco.van-hulten at lsce.ipsl.fr - this is legal in
+! gfortran, so allow it.
+ 
+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
+             LATITUDE: 91S to 11S
+             LONGITUDE: 165W
+             TIME: 16-JAN 06:00
+ Column  1: VAR1[G=4 deg on Y] is FLOATSTR(SST-20,"(f0.0)") (regrid: 4 deg on Y)
+ Column  2: VAR2[G=4 deg on Y] is FLOATSTR(SST-20,"(I0)") (regrid: 4 deg on Y)
+             VAR1   VAR2
+89S   /  1: ""     ""   
+85S   /  2: ""     ""   
+81S   /  3: ""     ""   
+77S   /  4: "-20." "-20"
+73S   /  5: "-21." "-21"
+69S   /  6: "-20." "-19"
+65S   /  7: "-20." "-20"
+61S   /  8: "-17." "-17"
+57S   /  9: "-14." "-13"
+53S   / 10: "-11." "-11"
+49S   / 11: "-7."  "-7" 
+45S   / 12: "-6."  "-5" 
+41S   / 13: "-4."  "-3" 
+37S   / 14: "-1."  "-1" 
+33S   / 15: "1."   "0"  
+29S   / 16: "3."   "2"  
+25S   / 17: "5."   "5"  
+21S   / 18: "8."   "7"  
+17S   / 19: "8."   "8"  
+13S   / 20: "10."  "9"  
+*** Running ferret script: bn696_bug_fixes.jnl
+[?1034h! bn696_bug_fixes
+! test various fixes that went into version 6.96
+ 
+GO bn_reset
+cancel mode verify
+GO err695_bounds_match_axis
+! err695_bounds_match_axis.jnl
+! ticket 2321.
+!
+! The coordinates match the upper bound of each cell
+! to machine accuracy. The internal rep of the value
+! has pt > bound_hi however.  The logic in tm_check_bnds
+! handes this.
+ 
+use shorttemp.nc
+ 
+! Previously showed tbox=0 for every second pt.
+sh grid/l=1:4444 temp
+    GRID GSL1
+ name       axis              # pts   start                end                 subset
+ LON       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
+ TIME      TIME                 4 i   19-JUN-1997 00:00    19-JUN-1997 01:30   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  19-JUN-1997 00:00:00  0.0208333  18-JUN-1997 23:30:00    0.02083333
+       2>  19-JUN-1997 00:30:00  0.0208333  19-JUN-1997 00:00:00    0.04166667
+       3>  19-JUN-1997 01:00:00  0.0208333  19-JUN-1997 00:30:00    0.0625
+       4>  19-JUN-1997 01:30:00  0.0208333  19-JUN-1997 01:00:00    0.08333333
+ 
+GO bn_reset
+cancel mode verify
+GO err695_show_dat_nodata
+! err695_show_dat_nodata.jnl
+! ticket 2322
+!
+! SHOW DATA noexist should include the dataset name or number
+! in the error message.
+ 
+USE coads_climatology
+ 
+SHOW DATA 1
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+SHOW DATA coads_climatology
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+ 
+! intentional errors
+SET MODE ignore
+SHOW DATA noexist
+SHOW DATA 2
+SHOW DATA/ATT noexist
+ 
+SET MODE/LAST ignore
+ 
+GO bn_reset
+cancel mode verify
+GO err695_grave_prec
+! err695_grave_prec
+! Bug 2323. Large numbers had incorrect results on grave-accent
+! evaluations, returning only 8 digits of precision
+ 
+list/nohead/p=16 1234567890123456, `1234567890123456`
+ !-> list/nohead/p=16 1234567890123456, 1.234568E+15
+I / *:     1234567890123456.  1234568000000000.
+list/nohead/p=16 -1234567890123.456, `-1234567890123.456`
+ !-> list/nohead/p=16 -1234567890123.456, -1.234568E+12
+I / *:    -1234567890123.456 -1234568000000.000
+ 
+! this was ok
+list/nohead/p=16 1.234567890123456, `1.1234567890123456`
+ !-> list/nohead/p=16 1.234567890123456, 1.123457
+I / *:     1.234567890123456  1.123457000000000
+ 
+! check output when asking for lower precision
+list/nohead/p=9 1234567890123456, `1234567890123456`
+ !-> list/nohead/p=9 1234567890123456, 1.234568E+15
+I / *:     1.23456789E+15  1.23456800E+15
+list/nohead/p=6 1234567890123456, `1234567890123456`
+ !-> list/nohead/p=6 1234567890123456, 1.234568E+15
+I / *:     1.23457E+15  1.23457E+15
+ 
+let var = 1.23456e+34
+say `var`
+ !-> MESSAGE/CONTINUE 1.23456E+34
+1.23456E+34
+ 
+say `var,prec=4`
+ !-> MESSAGE/CONTINUE 1.235E+34
+1.235E+34
+*** Running ferret script: bn_bin_regrid.jnl
+[?1034h! bin regridding tests
+ 
+go bn_bin_regrid.sub X
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/X=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/X irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _X[GX=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _X[GX=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
+             X: 0.5 to 5.5
+ Column  1: DEST is _X[GX=DCOARSE]
+ Column  2: VAR[G=1 delta on X at AVE] is _X[GX=IRR] (regrid: 1 delta on X at AVE)
+ Column  3: VAR[G=1 delta on X at BIN] is _X[GX=IRR] (regrid: 1 delta on X at BIN)
+ Column  4: VAR[G=1 delta on X at NBIN] is _X[GX=IRR] (regrid: 1 delta on X at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.178  1.150  2.000
+2   / 2:  2.000  1.545   ....  0.000
+3   / 3:  3.000  3.500   ....  0.000
+4   / 4:  4.000  3.980  3.500  1.000
+5   / 5:  5.000  4.838  4.850  2.000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _X[gX=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _X[GX=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
+             X: 0.5 to 5.5
+ Column  1: DEST is _X[GX=DCOARSE]
+ Column  2: VAR[G=1 delta on X at AVE] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at AVE)
+ Column  3: VAR[G=1 delta on X at BIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at BIN)
+ Column  4: VAR[G=1 delta on X at NBIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.956  1.650  2.000
+2   / 2:  2.000  2.200   ....  0.000
+3   / 3:  3.000   ....   ....  0.000
+4   / 4:  4.000   ....   ....  0.000
+5   / 5:  5.000  5.000  5.000  1.000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GX=dcoarse]
+             X: 0.5 to 5.5
+ Column  1: DEST is _X[GX=DCOARSE]
+ Column  2: VAR[G=1 delta on X] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
+          DEST    VAR
+1   / 1:  1.000   ....
+2   / 2:  2.000   ....
+3   / 3:  3.000   ....
+4   / 4:  4.000   ....
+5   / 5:  5.000  5.000
+ 
+go bn_bin_regrid.sub Y
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/Y=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/Y irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _Y[GY=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _Y[GY=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
+             Y: 0.5 to 5.5
+ Column  1: DEST is _Y[GY=DCOARSE]
+ Column  2: VAR[G=1 delta on Y at AVE] is _Y[GY=IRR] (regrid: 1 delta on Y at AVE)
+ Column  3: VAR[G=1 delta on Y at BIN] is _Y[GY=IRR] (regrid: 1 delta on Y at BIN)
+ Column  4: VAR[G=1 delta on Y at NBIN] is _Y[GY=IRR] (regrid: 1 delta on Y at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.178  1.150  2.000
+2   / 2:  2.000  1.545   ....  0.000
+3   / 3:  3.000  3.500   ....  0.000
+4   / 4:  4.000  3.980  3.500  1.000
+5   / 5:  5.000  4.838  4.850  2.000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _Y[gY=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _Y[GY=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
+             Y: 0.5 to 5.5
+ Column  1: DEST is _Y[GY=DCOARSE]
+ Column  2: VAR[G=1 delta on Y at AVE] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at AVE)
+ Column  3: VAR[G=1 delta on Y at BIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at BIN)
+ Column  4: VAR[G=1 delta on Y at NBIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.956  1.650  2.000
+2   / 2:  2.000  2.200   ....  0.000
+3   / 3:  3.000   ....   ....  0.000
+4   / 4:  4.000   ....   ....  0.000
+5   / 5:  5.000  5.000  5.000  1.000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GY=dcoarse]
+             Y: 0.5 to 5.5
+ Column  1: DEST is _Y[GY=DCOARSE]
+ Column  2: VAR[G=1 delta on Y] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
+          DEST    VAR
+1   / 1:  1.000   ....
+2   / 2:  2.000   ....
+3   / 3:  3.000   ....
+4   / 4:  4.000   ....
+5   / 5:  5.000  5.000
+ 
+go bn_bin_regrid.sub Z
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/Z=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/Z irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _Z[GZ=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _Z[GZ=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
+             Z: 0.5 to 5.5
+ Column  1: DEST is _Z[GZ=DCOARSE]
+ Column  2: VAR[G=1 delta on Z at AVE] is _Z[GZ=IRR] (regrid: 1 delta on Z at AVE)
+ Column  3: VAR[G=1 delta on Z at BIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at BIN)
+ Column  4: VAR[G=1 delta on Z at NBIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.178  1.150  2.000
+2   / 2:  2.000  1.545   ....  0.000
+3   / 3:  3.000  3.500   ....  0.000
+4   / 4:  4.000  3.980  3.500  1.000
+5   / 5:  5.000  4.838  4.850  2.000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _Z[gZ=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _Z[GZ=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
+             Z: 0.5 to 5.5
+ Column  1: DEST is _Z[GZ=DCOARSE]
+ Column  2: VAR[G=1 delta on Z at AVE] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at AVE)
+ Column  3: VAR[G=1 delta on Z at BIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at BIN)
+ Column  4: VAR[G=1 delta on Z at NBIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.956  1.650  2.000
+2   / 2:  2.000  2.200   ....  0.000
+3   / 3:  3.000   ....   ....  0.000
+4   / 4:  4.000   ....   ....  0.000
+5   / 5:  5.000  5.000  5.000  1.000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GZ=dcoarse]
+             Z: 0.5 to 5.5
+ Column  1: DEST is _Z[GZ=DCOARSE]
+ Column  2: VAR[G=1 delta on Z] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
+          DEST    VAR
+1   / 1:  1.000   ....
+2   / 2:  2.000   ....
+3   / 3:  3.000   ....
+4   / 4:  4.000   ....
+5   / 5:  5.000  5.000
+ 
+go bn_bin_regrid.sub T
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/T=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/T irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _T[GT=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+             T: 0.5 to 5.5
+ Column  1: DEST is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T at AVE] is _T[GT=IRR] (regrid: 1 delta on T at AVE)
+ Column  3: VAR[G=1 delta on T at BIN] is _T[GT=IRR] (regrid: 1 delta on T at BIN)
+ Column  4: VAR[G=1 delta on T at NBIN] is _T[GT=IRR] (regrid: 1 delta on T at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.178  1.150  2.000
+2   / 2:  2.000  1.545   ....  0.000
+3   / 3:  3.000  3.500   ....  0.000
+4   / 4:  4.000  3.980  3.500  1.000
+5   / 5:  5.000  4.838  4.850  2.000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _T[gT=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
+             T: 0.5 to 5.5
+ Column  1: DEST is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T at AVE] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at AVE)
+ Column  3: VAR[G=1 delta on T at BIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at BIN)
+ Column  4: VAR[G=1 delta on T at NBIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.956  1.650  2.000
+2   / 2:  2.000  2.200   ....  0.000
+3   / 3:  3.000   ....   ....  0.000
+4   / 4:  4.000   ....   ....  0.000
+5   / 5:  5.000  5.000  5.000  1.000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GT=dcoarse]
+             T: 0.5 to 5.5
+ Column  1: DEST is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
+          DEST    VAR
+1   / 1:  1.000   ....
+2   / 2:  2.000   ....
+3   / 3:  3.000   ....
+4   / 4:  4.000   ....
+5   / 5:  5.000  5.000
+ 
+go bn_bin_regrid.sub E
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/E=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/E irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _E[GE=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+             E: 0.5 to 5.5
+ Column  1: DEST is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E at AVE] is _E[GE=IRR] (regrid: 1 delta on E at AVE)
+ Column  3: VAR[G=1 delta on E at BIN] is _E[GE=IRR] (regrid: 1 delta on E at BIN)
+ Column  4: VAR[G=1 delta on E at NBIN] is _E[GE=IRR] (regrid: 1 delta on E at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.178  1.150  2.000
+2   / 2:  2.000  1.545   ....  0.000
+3   / 3:  3.000  3.500   ....  0.000
+4   / 4:  4.000  3.980  3.500  1.000
+5   / 5:  5.000  4.838  4.850  2.000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _E[gE=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
+             E: 0.5 to 5.5
+ Column  1: DEST is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E at AVE] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at AVE)
+ Column  3: VAR[G=1 delta on E at BIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at BIN)
+ Column  4: VAR[G=1 delta on E at NBIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.956  1.650  2.000
+2   / 2:  2.000  2.200   ....  0.000
+3   / 3:  3.000   ....   ....  0.000
+4   / 4:  4.000   ....   ....  0.000
+5   / 5:  5.000  5.000  5.000  1.000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GE=dcoarse]
+             E: 0.5 to 5.5
+ Column  1: DEST is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
+          DEST    VAR
+1   / 1:  1.000   ....
+2   / 2:  2.000   ....
+3   / 3:  3.000   ....
+4   / 4:  4.000   ....
+5   / 5:  5.000  5.000
+ 
+go bn_bin_regrid.sub F
+! Tests of @BIN and @NBIN regridding transforms
+ 
+DEFINE AXIS/$1=1:5:1 dcoarse
+ !-> DEFINE AXIS/F=1:5:1 dcoarse
+ 
+! Data on an irregular grid
+LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
+DEFINE AXIS/$1 irr = sbin
+ !-> DEFINE AXIS/F irr = sbin
+LET var = _$1[G$1=irr]
+ !-> DEFINE VARIABLE var = _F[GF=irr]
+ 
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
+! Compare @AVE and @BIN regridding
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+             F: 0.5 to 5.5
+ Column  1: DEST is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F at AVE] is _F[GF=IRR] (regrid: 1 delta on F at AVE)
+ Column  3: VAR[G=1 delta on F at BIN] is _F[GF=IRR] (regrid: 1 delta on F at BIN)
+ Column  4: VAR[G=1 delta on F at NBIN] is _F[GF=IRR] (regrid: 1 delta on F at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.178  1.150  2.000
+2   / 2:  2.000  1.545   ....  0.000
+3   / 3:  3.000  3.500   ....  0.000
+4   / 4:  4.000  3.980  3.500  1.000
+5   / 5:  5.000  4.838  4.850  2.000
+ 
+ 
+! Data on an irregular grid with missing values
+LET sbin = {1.1, 2.2, , , 5}
+LET var = RESHAPE(sbin, _$1[g$1=irr])
+ !-> DEFINE VARIABLE var = RESHAPE(sbin, _F[gF=irr])
+LET dest =  _$1[G$1=dcoarse]
+ !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
+LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
+ !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
+             F: 0.5 to 5.5
+ Column  1: DEST is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F at AVE] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at AVE)
+ Column  3: VAR[G=1 delta on F at BIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at BIN)
+ Column  4: VAR[G=1 delta on F at NBIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at NBIN)
+          DEST    VAR    VAR    VAR
+1   / 1:  1.000  1.956  1.650  2.000
+2   / 2:  2.000  2.200   ....  0.000
+3   / 3:  3.000   ....   ....  0.000
+4   / 4:  4.000   ....   ....  0.000
+5   / 5:  5.000  5.000  5.000  1.000
+ 
+LIST dest, var[G$1=dcoarse]
+ !-> LIST dest, var[GF=dcoarse]
+             F: 0.5 to 5.5
+ Column  1: DEST is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
+          DEST    VAR
+1   / 1:  1.000   ....
+2   / 2:  2.000   ....
+3   / 3:  3.000   ....
+4   / 4:  4.000   ....
+5   / 5:  5.000  5.000
+ 
+*** Running ferret script: bn697_bug_fixes.jnl
+[?1034h! bn697_bug_fixes
+! test various fixes that went into version 6.97
+ 
+GO bn_reset
+cancel mode verify
+GO err696_only_inf_lev
+! Bug 2326: levels with only a value and (inf) or (-inf)
+! should show values less-equal or greater-equal to that level.
+ 
+use coads_climatology; set reg/l=1
+ 
+! The plots should be the same left to right; just a triangle key
+! on the right
+set view ul; shade/lev=(20)(50) sst
+set view ur; shade/lev=(20)(inf) sst
+set view ll; shade/lev=(-50)(20) sst
+set view lr; shade/lev=(-inf)(20) sst
+ 
+! Horizontal keys
+can view
+set view ul; fill/lev=(20)(50) sst
+set view ur; fill/lev=(20)(inf) sst
+set view ll; fill/lev=(-50)(20) sst
+set view lr; fill/lev=(-inf)(20) sst
+ 
+! silly degenerate case, two-sided inf's
+can view
+set view ul; shade/lev=(-inf)(22)(inf) sst
+set view ur; shade/key=horiz/lev=(-inf)(22)(inf) sst
+ 
+GO bn_reset
+cancel mode verify
+GO err696_plot_ax_ppl
+! err696_plot_ax_ppl.jnl
+! ticket 2327
+!
+! restore settings properly after a PLOT/axes=
+! if there is a ppl axis-setting command before next plot
+ 
+plot/vs/noax 0,0
+ set view upper
+ppl axlabp 0 -1
+plot/nolab/vs 0,0
+ 
+ set view lower
+ppl axlabp 0 -1
+plot/nolab/vs 0,0
+ 
+can view
+vector/i=1:40/j=1:30/nolab/noax  j-20+(i-i),i-20+(j-j)
+ 
+set view upper
+ppl axlabp 0 -1
+vector/i=1:40/j=1:30/nolab j-20+(i-i),i-20+(j-j)
+ 
+ set view lower
+ppl axlabp 0 -1
+vector/i=1:40/j=1:30/nolab j-20+(i-i),i-20+(j-j)
+ 
+can view
+let var2d = i+j
+ 
+shade/i=1:40/j=1:30/nolab/noax var2d
+ set view upper
+ppl axlabp 0 -1
+shade/i=1:40/j=1:30/nolab var2d
+ 
+ set view lower
+ppl axlabp 0 -1
+shade/i=1:40/j=1:30/nolab var2d
+ 
+can view
+ 
+contour/i=1:40/j=1:30/nolab/noax var2d
+ set view upper
+ppl axlabp 0 -1
+contour/i=1:40/j=1:30/nolab var2d
+ 
+ set view lower
+ppl axlabp 0 -1
+contour/i=1:40/j=1:30/nolab var2d
+ 
+can view
+ 
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+let ypts = x/10
+let xpts = cos(x/10)
+ 
+polygon/trans/i=1:100/nolab/noax xpts+xsqr, ypts+ysqr, x*x/10
+ 
+ set view upper
+ppl axlabp 0 -1
+polygon/trans/i=1:100/nolab  xpts+xsqr, ypts+ysqr, x*x/10
+ 
+ set view lower
+ppl axlabp 0 -1
+polygon/trans/i=1:100/nolab  xpts+xsqr, ypts+ysqr, x*x/10
+can view
+ 
+! restore axis settings after a plot/set with/axes=
+ 
+set view upper
+plot/i=1:100/axes=1,0,0,1/set/title="labels" i*cos(i/8)
+ppl xlab "a label"
+ppl labset, , , 0.08
+ppl ylab "a multi line y label<NL>here"
+ppl plot
+ 
+set view lower
+plot/i=1:199 i*cos(i/10)
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_ft_calendars
+! err696_ft_calendars.jnl
+! see ticket 2332: check for matching calendars when
+! there are T and F axes in a file.
+ 
+! If the T or F calnedar is specified, use it for both axes
+! e.g. reference time has a calendar, forecast time does not list a calendar.
+ 
+use ft_cal_one.nc
+sh dat
+     currently SET data sets:
+    1> ./ft_cal_one.nc  (default)
+ name     title                             I         J         K         L         M         N
+ TIMEVAR  GRIB forecast or observation ti  ...       ...       ...       1:2       ...       1:3
+ 
+ 
+! Intentional error: two time axes with different calendars
+set mode ignore
+use ft_cal_mixed.nc
+ 
+can mode ignore
+ 
+can data/all
+ 
+GO bn_reset
+cancel mode verify
+GO err696_centerlab_restore
+! err696_centerlab_restore
+! Ticket 2331.
+! When a plot is made with
+!   shade/SET/key=centerlab; ppl shade
+! Then the nextsubsequent plot still had the centered key labeling.
+ 
+ 
+use coads_climatology
+set view left
+shade/SET/l=1/key=centerlab sst
+ppl shade
+ 
+set view right
+shade/l=1 sst
+ 
+! ...although the next one does restore the default.
+shade/l=1 sst
+ 
+! Horizontal plots with the same behavior.
+cancel view
+set view upper
+shade/SET/l=1/key=centerlab,horiz sst
+ppl shade
+ 
+set view lower
+shade/l=1/key=horiz sst
+ 
+! FILL plots
+cancel view
+set view left
+fill/SET/l=1/key=centerlab sst
+ppl shade
+ 
+! This plot still had the labels centered
+set view right
+fill/l=1 sst
+ 
+! Ribbon plots
+cancel view
+set view left; plot/ribbon/vs/line/thick/key=cent/SET {1,2,3,4}, {1,2,3,4}, {1,2,3,4}
+ppl ribbon
+set view right; plot/ribbon/vs/line/thick  {1,2,3,4}, {1,2,3,4}, {1,2,3,4}
+ 
+! Polygon plots
+cancel view
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+ 
+let ypts = x/10
+let xpts = cos(x/10)
+ 
+set view upper
+polygon/trans/i=1:20/nolab/key=horiz,center/SET xpts+xsqr, ypts+ysqr, x*x/10
+ppl polygon
+set view lower
+polygon/trans/i=1:20/nolab/key=horiz  xpts+xsqr, ypts+ysqr, x*x/10
+ 
+GO bn_reset
+cancel mode verify
+GO err696_time_overlay
+! err696_time_overlay
+! bug 2334, first plot/over takes too long and the line is incorrect.
+ 
+def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=noleap tax_nlp
+def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=julian tax_jul
+sp date
+Fri Jun 17 15:18:49 PDT 2016
+set view upper
+plot t[gt=tax_nlp]
+plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
+sp date
+Fri Jun 17 15:18:49 PDT 2016
+ 
+sp date
+Fri Jun 17 15:18:49 PDT 2016
+set view lower
+plot t[gt=tax_jul]
+plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
+sp date
+Fri Jun 17 15:18:49 PDT 2016
+ 
+GO bn_reset
+cancel mode verify
+GO err696_save_noupcase
+! err696_save_noupcase
+! Ticket 2336: When UPCASE canceled an extra upcase axis
+!  was written to a file - only when user-defined axis.
+!
+! Note as part of this fix, if MODE UPCASE is canceled,
+! then it also works as if SAVE/KEEP_AXISNAMES was given.
+! If keeping the original names then also don't write the
+! Ferret-added additions, e.g. TIME1 if there was already
+! a time axis; or a subset addition.
+ 
+ 
+! Tell Ferret to write everything in the original case
+cancel mode upcase
+ 
+! Define some axes and variables
+define axis/t=1-jan-2001:31-dec-2001:1/unit=days tday
+define axis/x=10:150:10/units=degrees_east xax
+ 
+let tt = t[gt=tday]
+let var  = 0*tt + x[gx=xax]
+ 
+save/clobber/file=myfile.nc tt, var
+ 
+! An extra TDAY axis was written out
+sp ncdump -h myfile.nc
+netcdf myfile {
+dimensions:
+	tday = UNLIMITED ; // (365 currently)
+	xax = 15 ;
+variables:
+	double tday(tday) ;
+		tday:units = "days since 1901-01-15 00:00:00" ;
+		tday:axis = "T" ;
+		tday:calendar = "GREGORIAN" ;
+		tday:time_origin = "15-JAN-1901" ;
+		tday:standard_name = "time" ;
+	double tt(tday) ;
+		tt:missing_value = -1.e+34 ;
+		tt:_FillValue = -1.e+34 ;
+		tt:long_name = "T[GT=TDAY]" ;
+	double xax(xax) ;
+		xax:units = "degrees_east" ;
+		xax:point_spacing = "even" ;
+		xax:axis = "X" ;
+		xax:modulo = 360. ;
+		xax:standard_name = "longitude" ;
+	double var(tday, xax) ;
+		var:missing_value = -1.e+34 ;
+		var:_FillValue = -1.e+34 ;
+		var:long_name = "0*TT + X[GX=XAX]" ;
+
+// global attributes:
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+set mode/last upcase
+ 
+GO bn_reset
+cancel mode verify
+GO err696_argument_blanks
+! err696_argument_blanks.jnl
+! Ticket 2343: quoted argument with a blank at the end.
+ 
+ 
+! argument with a blank at the end
+go err696_argument_blanks_sub "hello "
+! for bug2343
+ 
+say ($1)there($2%.%)
+ !-> MESSAGE/CONTINUE hello there.
+hello there.
+ 
+! Preserve multiple blanks at the end
+go err696_argument_blanks_sub "hello     "
+! for bug2343
+ 
+say ($1)there($2%.%)
+ !-> MESSAGE/CONTINUE hello     there.
+hello     there.
+ 
+! 2 arguments; one with a blank at the end, next with a blank at the start.
+! Note the blanks at the start of Arg 1 are not preserved.  The command is
+! translated to  MESSAGE/CONTINUE   Hi Hi there my friend
+! and the blanks after MESSAGE/CONTINUE are just treated as a delimiter.
+ 
+go err696_argument_blanks_sub "  Hi Hi "  " my friend"
+! for bug2343
+ 
+say ($1)there($2%.%)
+ !-> MESSAGE/CONTINUE   Hi Hi there my friend
+Hi Hi there my friend
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_annotate_numeric
+! err696_annotate_numeric
+! 1/7/2016
+! ticket 2350: a purely numeric string
+! didn't appear on the plot.
+ 
+use coads_climatology
+shade/l=1/nokey/pal=white sst
+ 
+! text including non-numeric has worked fine
+annotate/user/xpos=180/ypos=30 "30 with text"
+ 
+! numeric only, with and witbhout quotes
+ 
+annotate/user/xpos=180/ypos=20/halign=-1 "20"
+annotate/user/xpos=180/ypos=10/halign=-1 10
+ 
+! tests with /NOUSER
+annotate/nouser/xpos=1/ypos=2.5 40
+ 
+! strings or purely numeric, without quotes works ok
+annotate/nouser/xpos=1/ypos=2.0 1.3+7.89
+annotate/nouser/xpos=1/ypos=1.5 `1.3+7.89-154,prec=6`
+ !-> annotate/nouser/xpos=1/ypos=1.5 -144.81
+ 
+! commas, just write the whole thing
+annotate/nouser/xpos=1/ypos=1.0 "40,30,20"
+ 
+annotate/nouser/xpos=1/ypos=0.5 1,2,3,4,5
+ 
+GO bn_reset
+cancel mode verify
+GO err696_e_component_mem_crptn
+! canceling of an E aggregation dataset is leaving
+! corrupted variables in memory as seen by the variable names "%%"
+ 
+use ens1, ens2, ens3, ens4
+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
+    5> fourfiles  (default)  Ensemble aggregation
+ 
+list/i=3 sst[T=@ave]
+             VARIABLE : SST_IN (Deg C)
+             DATA SET : Ensemble series of 4 datasets patterned on ens1
+             FILENAME : fourfiles
+             SUBSET   : 9 by 4 points (LATITUDE-E (realization))
+             LONGITUDE: 105W
+             TIME     : 01-JAN 00:45 to 31-DEC 06:34 (averaged)
+            13N    15N    17N    19N    21N    23N    25N    27N    29N   
+             1      2      3      4      5      6      7      8      9
+ 1   / 1:   28.5   28.4   27.9   27.5   26.7   25.6   ....   ....   ....
+ 2   / 2:   85.5   85.3   83.7   82.4   80.2   76.7   ....   ....   ....
+ 3   / 3:   57.0   56.9   55.8   54.9   53.5   51.1   ....   ....   ....
+ 4   / 4:  114.1  113.8  111.6  109.8  106.9  102.2   ....   ....   ....
+ 
+show mem/all
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+all data in memory:
+ SST[D=fourfiles]                  YE    mr:15  blk1:1  nblk:1
+    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+                                                              AVE
+ SST[D=fourfiles]                  YTE   mr:12  blk1:2  nblk:1
+    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
+    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ 
+cancel data fourfiles
+show mem/all
+ Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+all data in memory:
+ 
+exit
+ 
+GO bn_reset
+cancel mode verify
+GO err696_mem_err_report
+! err696_mem_err_report.jnl
+! 1/21/2016 *acm*
+! Ticket 2354: The error message shows the wrong number for memory needed.
+!
+! Try to load some data larger than the default amount of memory
+ 
+let memsize = ($ferret_memory)
+ !-> DEFINE VARIABLE memsize = 25.6
+set mem/siz=2
+ 
+ 
+def axis/x=1:360:1 xaxis
+def axis/y=1:180:1 yaxis
+def axis/z=1:20:1 zaxis
+define axis/t=1-jan-2000:1-jan-2005:1/units=days  longtime
+ 
+let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
+sh grid bigvar
+    GRID (G004)
+ name       axis              # pts   start                end                 subset
+ XAXIS     X                  360 r   1                    360                 full
+ YAXIS     Y                  180 r   1                    180                 full
+ ZAXIS     Z                   20 r   1                    20                  full
+ LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
+ normal    E
+ normal    F
+ 
+ 
+set mode ignore
+load/l=1:5 bigvar
+ 
+! Previously the number Mwords shown was too low
+show sym fer_last_error
+FER_LAST_ERROR = "**ERROR: request exceeds memory setting: 13 Mwords were requested. "
+cancel mode ignore
+ 
+! Get the number Ferret says it needs
+let ms1 = `strrindex("($fer_last_error)", ":")`
+ !-> DEFINE VARIABLE ms1 = 40
+let ms2 = `strindex("($fer_last_error)", "Mword")`
+ !-> DEFINE VARIABLE ms2 = 45
+let siz = substring("($fer_last_error)", `ms1+1`, `ms2-ms1-1`)
+ !-> DEFINE VARIABLE siz = substring("**ERROR: request exceeds memory setting: 13 Mwords were requested. ", 41, 4)
+ 
+! Increase memory accordingly
+ 
+set mem/siz=`siz`
+ !-> set mem/siz= 13
+load/l=1:5 bigvar
+ 
+! restore default
+set mem/siz=`memsize`
+ !-> set mem/siz=25.6
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_multiple_slashes
+! err696_multiple_slashes.jnl
+! 1/25/2016 *acm*
+!
+! For ticket 2356
+! Change parsing to allow multiple slashes in a row.
+! simplifies DEFINE SYMBOL QUALIFIERS= kinds of definitions
+ 
+def sym qual /x=1:2
+ 
+set reg/($qual)
+ !-> set reg//x=1:2
+show region
+default region:
+        X=1:2
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+cancel region
+ 
+ 
+! Several qualifiers on a command
+set reg//x=1:2///y=4:7
+show region
+default region:
+        X=1:2
+        Y=4:7
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+cancel region
+ 
+! Qualifiers with a command argument
+use coads_climatology
+def sym plotqual = /pal=grayscale/line//key=cont
+def sym regqual = /x=300:360///y=-20:20/L=3
+ 
+fill/($regqual)($plotqual) sst
+ !-> CONTOUR/FILL//x=300:360///y=-20:20/L=3/pal=grayscale/line//key=cont sst
+ 
+! command lines with urls unchanged
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+   set data///format=cdf http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+   let//d=coads_sst myvar = 1
+   sh dat
+     currently SET data sets:
+    1> ./coads_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+    2> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      Sea Surface Temperature          1:180     1:90      ...       1:1680    ...       ...
+ ------------------------------
+ MYVAR[D=coads_sst] = 1
+ 
+   cancel data/all
+ENDIF
+ 
+! Other syntax examples taken from bn_syntax but with extra slashes
+ 
+! Repeat loop
+cancel region
+cancel data/all
+show region;repeat//l=1:2 (show data;sh reg);can reg;show reg
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+!-> REPEAT: L=1
+     currently SET data sets:
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        L=1
+        E/M is unspecified
+        F/N is unspecified
+!-> REPEAT: L=2
+     currently SET data sets:
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        L=2
+        E/M is unspecified
+        F/N is unspecified
+default region:
+        X/I is unspecified
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+ 
+! continuation lines
+define axis \ ! comment on the command
+//x=1:10:1 \  ! comment on the qualifier
+xax\          ! comment on the argument
+              ! this line is significant -- completes the command
+show axis xax; cancel axis xax  ! clean up
+ name       axis              # pts   start                end
+ XAX       X                   10 r   1                    10
+   Axis span (to cell edges) = 10
+ 
+! Allow extra slashes at the end of the command line
+set reg/x=1:2/; sho reg
+default region:
+        X=1:2
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+set reg/x=1:4//; sho reg
+default region:
+        X=1:4
+        Y/J is unspecified
+        Z/K is unspecified
+        T/L is unspecified
+        E/M is unspecified
+        F/N is unspecified
+ 
+can reg
+repeat/l=1:2 (set reg/x=1:4//)
+!-> REPEAT: L=1
+!-> REPEAT: L=2
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_2d_time_overlay
+! err696_2d_time_overlay.jnl
+! ticket 2360: 2-D time overlay plots have never worked.
+ 
+! two different time axes
+ 
+def ax/edge/t=1-jan-1979:1-jan-2016:1/unit=year/t0=1-jan-1979 tax1
+def ax/edge/t=1-jan-1988:1-jan-2010:1/unit=year/t0=1-jan-1988 tax2
+let t1 = t[gt=tax1]
+let t2 = t[gt=tax2]
+let yr1 = tax_year(t1,t1)
+let yr2 = tax_year(t2,t2)
+let f1 = yr1 + 0*z[gz=1:5:1]
+let f2 = yr2 + 0*z[gz=2:3:1]
+ 
+can view
+ 
+! a 1-D overlay works correctly
+set view ul
+plot/step=con yr1
+plot/step=con/ov yr2
+ 
+set view ll
+ 
+! 2-D overlay was mis-located
+shade/lev=12 f1
+shade/ov/pal=grayscale/lev f2
+ 
+ppl shaset reset
+set view ur
+ 
+! Check a vertical time axis
+let fx1 = yr1 + 0*x[gx=1:5:1]
+let fx2 = yr2 + 0*x[gx=2:3:1]
+shade/lev=12/title="X-T plot, vertical time axis" fx1
+shade/ov/pal=grayscale/lev fx2
+ 
+ 
+! Different time units
+set view lr
+def ax/edge/t=1-jan-1988:04-feb-2010:60/unit=day/t0=1-jan-1988 tax2
+ 
+shade/lev=12/title="Underlay units year, Overlay units days" f1
+shade/ov/pal=grayscale/lev f2
+ 
+ 
+ 
+GO bn_reset
+cancel mode verify
+GO err696_singlevec_over
+! err696_singlevec_over.jnl
+! Ticket 2365: overlay a single vector. If
+! /nolab is added it disappears.
+ 
+use gtbc011
+vector/k=1/l=1   u,v
+let xa = 200
+let ya = 10
+let ya=10
+define axis/unit=degrees_east/x/from_data xax=xa
+define axis/unit=degrees_north/y/from_data yax=ya
+define grid/x=xax/y=yax xyg
+let u1 = 10 + 0*(x[gx=xyg]+y[gy=xyg] )
+let v1 = 10 + 0*(x[gx=xyg]+y[gy=xyg] )
+! Now I can plot the vector
+vec/over/len=10 u1,v1
+ 
+! PPL_XSKIP is 1, the single vector
+show sym ppl_vec*skip
+PPL_VEC_XSKIP = "1"
+PPL_VEC_YSKIP = "1"
+ 
+! Try it with /nolab added
+vector/k=1/l=1   u,v
+ vec/over/len=10/nolab u1,v1
+ 
+! PPL_XSKIP should still be 1
+! (with the bug, it was 4 from the vector underlay plot)
+show sym ppl_vec*skip
+PPL_VEC_XSKIP = "1"
+PPL_VEC_YSKIP = "1"
+ 
+! As an aside, now return PPL_VECLEN for VECTOR/NOLABEL plots.
+! previously this wasnt done.
+ 
+use gtbc011
+vector/k=3/l=1/nolab  u,v
+show symbol ppl_veclen
+PPL_VECLEN = "  27.2"
+ 
+GO bn_reset
+cancel mode verify
+GO err696_return_type
+! err696_return_type
+! See ticket #2367
+! incorrect return type when a user var
+! uses an expression involving alternative string versions of
+! a numeric exernal function
+ 
+! this works, explicitly calling xcat_str
+let c = xcat_str({"e","f"},{"g","h"})
+let d = c
+list d
+             VARIABLE : C
+             SUBSET   : 4 points (X)
+ 1   / 1:"e"
+ 2   / 2:"f"
+ 3   / 3:"g"
+ 4   / 4:"h"
+ 
+! returned pointers not strings
+let a = xcat({"a","b"},{"c","d"})
+let b = a
+list b
+             VARIABLE : A
+             SUBSET   : 4 points (X)
+ 1   / 1:"a"
+ 2   / 2:"b"
+ 3   / 3:"c"
+ 4   / 4:"d"
+ 
+! Make more levels of variables, mixing xcat_str and xcat.
+ 
+let p = xcat_str({"1","2"},{"3","4"})
+let q = p
+ 
+let r = xcat({"5","6"},{"7","8"})
+let s = r
+ 
+! previously returned a string/numeric data type mix-up err.
+let allcat = xcat(q,s)
+list allcat
+             VARIABLE : XCAT(Q,S)
+             SUBSET   : 8 points (X)
+ 1   / 1:"1"
+ 2   / 2:"2"
+ 3   / 3:"3"
+ 4   / 4:"4"
+ 5   / 5:"5"
+ 6   / 6:"6"
+ 7   / 7:"7"
+ 8   / 8:"8"
+ 
+GO bn_reset
+cancel mode verify
+GO err696_hovmuller_mod_fill
+! err696_hovmuller_mod_fill.jnl
+! 3/7/2016 ACM
+! Ticket 2374
+! A single color extending across the plot was missing
+ 
+use coads_slice.nc
+fill/lin/t=1-jan-0000:31-dec-0001/hlim=1-jan-0000:1-jan-0001/x=180/lev=8 sst
+ 
+ 
+!GO bn_reset!
+!GO err696_axname_noupcase
+ 
+go bn_reset
+cancel mode verify
+go err696_repeat_escapes.jnl
+! err696_repeat_escapes.jnl
+! Ticket 2376 - parsing error with escaped grave-accent syntax
+ 
+let a = "seq 1 3"
+sp echo \``a`\`
+ !-> sp echo `seq 1 3`
+1 2 3
+ 
+! the escapes were removed on parsing the initial
+! command rather than keeping them until individual
+! commands parsed within the loop
+repeat/i=1:2 (sp echo \``a`\`)
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+ 
+! nested repeats
+repeat/k=1:3 (rep/i=1:2 (sp echo \``a`\`))
+!-> REPEAT: K=1
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: K=2
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: K=3
+!-> REPEAT: I=1
+ !-> sp echo `seq 1 3`
+1 2 3
+!-> REPEAT: I=2
+ !-> sp echo `seq 1 3`
+1 2 3
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_red_keylab.jnl
+! err696_red_keylab.jnl
+! Ticket 2375: outline and labels of color key were
+! drawn in red on an overlay.
+ 
+use levitus_climatology
+contour/lev=(0) temp
+ 
+! Always label the color key in pen0
+fill/over/nolab/key/lev=v,2min temp
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_poly_over_label
+! err696_poly_over_label
+! Tiket 2396: incorrect label in the lower
+! left on a POLY/OVER with just 2 arguments.
+ 
+use levitus_3d_subset.nc
+let allmissing = 0/0 + temp
+shade/nolabel/j=1 allmissing
+ 
+! Previously this plot had an incorrect label of ALLMISSING
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}
+ppl list labels  ! showed allmissing for lab2 now says cnst
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1 -4.200E-01 -5.500E-01 0.080    0  SYSTEM  @AScnst
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+shade/nolabel/j=1 allmissing
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}, 2
+ 
+ppl list labels  ! shows cnst for lab2
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1 -4.200E-01 -5.500E-01 0.080    0  SYSTEM  @AScnst
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+shade/nolabel/j=1 allmissing
+let cvar = 2
+polygon/palette=gray/ov {120.2,121,121,120.2},{4000,4000,1000,1000}, cvar
+ppl list labels  ! shows cvar for lab2
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1 -4.200E-01 -5.500E-01 0.080    0  SYSTEM  @ASCVAR
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+! color var for 2 rectangles with multiple values
+shade/nolabel/j=1 allmissing
+let cvar = {2,3}
+polygon/ov {120.2,121,121,120.2,,120.2,121,121,120.2},{4000,4000,1000,1000,,800,800,200,200}, cvar
+ppl list labels  ! shows cvar for lab2
+                                                                                
+                                                                                
+                                                                                
+
+          XPOS       YPOS     HGT   ROT   UNITS
+ LAB 1 -4.200E-01 -5.500E-01 0.080    0  SYSTEM  @ASCVAR
+ LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
+ 
+go bn_reset
+cancel mode verify
+go err696_def_ax_f
+! err696_def_ax_f.jnl
+! See ticket 2380
+! *acm* 4/2016
+ 
+! Defining F axis using /F=LO:HI are ok
+define axis/f=1-jan-1980:3-jan-1980:1/t0=1-jan-1980/unit=days f_ax
+list _f[gf=f_ax]
+             VARIABLE : _F
+                        axis F_AX
+             SUBSET   : 3 points (FORECAST)
+ 01-JAN-1980 00 / 1:  0.000
+ 02-JAN-1980 00 / 2:  1.000
+ 03-JAN-1980 00 / 3:  2.000
+define axis/f=1-jan-1980:3-jan-1980/np=3/t0=1-jan-1980/unit=days f_ax
+list _f[gf=f_ax]
+             VARIABLE : _F
+                        axis F_AX
+             SUBSET   : 3 points (FORECAST)
+ 01-JAN-1980 00 / 1:  0.000
+ 02-JAN-1980 00 / 2:  1.000
+ 03-JAN-1980 00 / 3:  2.000
+ 
+! But just /F  with a /T0 was putting the axis in the T direction
+! Previously listing _F resulted in an error
+define axis/f/t0=1-jan-1980/unit=days f_ax = {1,2,3}
+list _f[gf=f_ax]
+             VARIABLE : _F
+                        axis F_AX
+             SUBSET   : 3 points (FORECAST)
+ 02-JAN-1980 00 / 1:  1.000
+ 03-JAN-1980 00 / 2:  2.000
+ 04-JAN-1980 00 / 3:  3.000
+ 
+! This came from code allowing the DEFINE to leave off the /F or /T
+! If there's a T0, its an F axis. Still allow this; it becomes a T axis.
+define axis/t0=1-jan-1980/unit=days aax = {1,2,3}
+list _t[gt=aax]
+             VARIABLE : T
+                        axis AAX
+             SUBSET   : 3 points (TIME)
+ 02-JAN-1980 00 / 1:  1.000
+ 03-JAN-1980 00 / 2:  2.000
+ 04-JAN-1980 00 / 3:  3.000
+ 
+go bn_reset
+cancel mode verify
+go err696_mode_cal_f
+! err696_mode_cal_f.jnl
+! ticket 2399 MODE CALENDAR and F calendar axes
+! The calendar setting should apply to T and F axes
+ 
+show mode calendar
+      MODE            STATE        ARGUMENT
+      CALENDAR         SET         minutes
+ 
+def ax/edges/t=1-jan-2016:1-mar-2016:1/unit=day/t0=1-jan-2016 t_axis
+def ax/edges/f=1-jan-2016:1-mar-2016:1/unit=day/t0=1-jan-2016 f_axis
+let a = _t[gt=t_axis] * {1,2,3}
+let b = _f[gf=f_axis] * {1,2,3}
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "TIME : 01-JAN-2016 12:00"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "FORECAST : 01-JAN-2016 12:00"
+ 
+set mode calendar:days
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "TIME : 01-JAN-2016"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "FORECAST : 01-JAN-2016"
+ 
+set mode/last calendar
+cancel mode calendar
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "T (DAY) : 0.5"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "F (DAY) : 0.5"
+ 
+set mode/last calendar
+show mode calendar
+      MODE            STATE        ARGUMENT
+      CALENDAR         SET         minutes
+ 
+! If they are not calendar axes, it's all fine, just not
+! labeled with dates
+ 
+def ax/edges/t=1:40:1/unit=day t_axis
+def ax/edges/f=1:40:1/unit=day f_axis
+ 
+let a = _t[gt=t_axis] * {1,2,3}
+let b = _f[gf=f_axis] * {1,2,3}
+can view
+set view upper; plot/l=1 a; sh sym lab($labnum_t)
+ !-> sh sym lab1
+LAB1 = "T (DAY) : 1.5"
+set view lower; plot/n=1 b; sh sym lab($labnum_f)
+ !-> sh sym lab1
+LAB1 = "F (DAY) : 1.5"
+ 
+go bn_reset
+cancel mode verify
+go err696_def_ax_edges
+! err696_def_ax_edges
+! See ticket 2400
+! Incorrect coordinates when using /EDGES
+! Also incorrectly marked axes as irregular
+ 
+let edges = x[gx=0:360:20]
+ 
+! Previuosly these axes were marked as irregular, but with correct coordinates
+def ax/edge/x xax = edges[i=1:17]; sh axis xax
+ name       axis              # pts   start                end
+ XAX       X                   16 r   10                   310
+   Axis span (to cell edges) = 320
+def ax/edge/x xax = x[gx=0:360:20]; sh axis xax
+ name       axis              # pts   start                end
+ XAX       X                   18 r   10                   350
+   Axis span (to cell edges) = 360
+ 
+! This axis incorrectly showed coordinates starting at x=20.
+! It was found to be regular but start pt incorrect
+def ax/edge/x xax = x[gx=20:320:20]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                   15 r   30                   310
+   Axis span (to cell edges) = 300
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 15 points (X)
+ 30    /  1:   30.0
+ 50    /  2:   50.0
+ 70    /  3:   70.0
+ 90    /  4:   90.0
+ 110   /  5:  110.0
+ 130   /  6:  130.0
+ 150   /  7:  150.0
+ 170   /  8:  170.0
+ 190   /  9:  190.0
+ 210   / 10:  210.0
+ 230   / 11:  230.0
+ 250   / 12:  250.0
+ 270   / 13:  270.0
+ 290   / 14:  290.0
+ 310   / 15:  310.0
+ 
+! This was previously irregular, with correct coordinates
+def ax/edge/x xax = x[gx=20:320:20]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                   15 r   30                   310
+   Axis span (to cell edges) = 300
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 15 points (X)
+ 30    /  1:   30.0
+ 50    /  2:   50.0
+ 70    /  3:   70.0
+ 90    /  4:   90.0
+ 110   /  5:  110.0
+ 130   /  6:  130.0
+ 150   /  7:  150.0
+ 170   /  8:  170.0
+ 190   /  9:  190.0
+ 210   / 10:  210.0
+ 230   / 11:  230.0
+ 250   / 12:  250.0
+ 270   / 13:  270.0
+ 290   / 14:  290.0
+ 310   / 15:  310.0
+ 
+! Actually irregular edge locations
+let edges = {0,10,20,30,60,90,150,200,280,360}
+def ax/edge/x xax = edges; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                    9 i   5                    320
+   Axis span (to cell edges) = 360
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 9 points (X)
+ 5     / 1:    5.0
+ 15    / 2:   15.0
+ 25    / 3:   25.0
+ 45    / 4:   45.0
+ 75    / 5:   75.0
+ 120   / 6:  120.0
+ 175   / 7:  175.0
+ 240   / 8:  240.0
+ 320   / 9:  320.0
+ 
+def ax/edge/x xax = edges[i=1:8]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                    7 i   5                    175
+   Axis span (to cell edges) = 200
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 7 points (X)
+ 5     / 1:    5.0
+ 15    / 2:   15.0
+ 25    / 3:   25.0
+ 45    / 4:   45.0
+ 75    / 5:   75.0
+ 120   / 6:  120.0
+ 175   / 7:  175.0
+ 
+! This one is regular
+def ax/edge/x xax = edges[i=1:4]; sh axis xax; list x[gx=xax]
+ name       axis              # pts   start                end
+ XAX       X                    3 r   5                    25
+   Axis span (to cell edges) = 30
+             VARIABLE : X
+                        axis XAX
+             SUBSET   : 3 points (X)
+ 5    / 1:   5.00
+ 15   / 2:  15.00
+ 25   / 3:  25.00
+ 
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_write_no_dim
+! err696_write_no_dim.jnl
+! ticket 2241: save a subset of a variable whose grid
+! contains dimensions that are not coordinate variables
+ 
+use nodim
+sh dat
+     currently SET data sets:
+    1> ./nodim.nc  (default)
+ name     title                             I         J         K         L         M         N
+ EXPOCODE expocode                         ...       ...       ...       ...       1:1       ...
+ NUM_OBS  Number of observations           ...       ...       ...       ...       1:1       ...
+ TEMP     sea surface temperature          1:51      ...       ...       ...       ...       ...
+ 
+ 
+! previously this gave an error
+save/clobber/file=a.nc/i=30:35  expocode, num_obs, temp
+ 
+! file has a coordinate variable with the subset in the OBS dimension
+sp ncdump -c a.nc
+netcdf a {
+dimensions:
+	TRAJECTORY = 1 ;
+	string_length = 64 ;
+	OBS30_35 = 6 ;
+variables:
+	char EXPOCODE(TRAJECTORY, string_length) ;
+		EXPOCODE:long_name = "expocode" ;
+		EXPOCODE:history = "From nodim" ;
+	int NUM_OBS(TRAJECTORY) ;
+		NUM_OBS:missing_value = -99 ;
+		NUM_OBS:_FillValue = -99 ;
+		NUM_OBS:long_name = "Number of observations" ;
+		NUM_OBS:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
+	double OBS30_35(OBS30_35) ;
+		OBS30_35:point_spacing = "even" ;
+		OBS30_35:axis = "X" ;
+	double TEMP(OBS30_35) ;
+		TEMP:missing_value = -1.e+34 ;
+		TEMP:_FillValue = -1.e+34 ;
+		TEMP:units = "degrees C" ;
+		TEMP:long_name = "sea surface temperature" ;
+		TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
+
+// global attributes:
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+data:
+
+ OBS30_35 = 30, 31, 32, 33, 34, 35 ;
+}
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_mod_sub_fln
+! err696_mod_sub_fln.jnl
+! Ticket 2366, @FLN on a modulo subspan axis
+! smears results across what should not be filled in.
+ 
+def ax/x=0:180:10/unit=degree_e xax
+let xx = x[gx=xax]
+ 
+let b = IF xx GE 50 OR xx EQ 20 THEN xx
+save/clob/file=a.nc b
+can var/all
+ 
+use a
+ 
+! Do not get data from across the modulo void point at 90W
+list/x=-180:720 b, b[x=@fln]
+             DATA SET: ./a.nc
+             LONGITUDE: 180E(-180) to 0E(720)
+ Column  1: B is IF XX GE 50 OR XX EQ 20 THEN XX
+ Column  2: B[X=@FLN:1] is IF XX GE 50 OR XX EQ 20 THEN XX (linear-filled by 1 pts on X)
+                  B     B
+180E    / -1:  180.0  180.0
+90W     /  0:   ....   ....
+0E      /  1:   ....   ....
+10E     /  2:   ....   ....
+20E     /  3:   20.0   20.0
+30E     /  4:   ....   30.0
+40E     /  5:   ....   40.0
+50E     /  6:   50.0   50.0
+60E     /  7:   60.0   60.0
+70E     /  8:   70.0   70.0
+80E     /  9:   80.0   80.0
+90E     / 10:   90.0   90.0
+100E    / 11:  100.0  100.0
+110E    / 12:  110.0  110.0
+120E    / 13:  120.0  120.0
+130E    / 14:  130.0  130.0
+140E    / 15:  140.0  140.0
+150E    / 16:  150.0  150.0
+160E    / 17:  160.0  160.0
+170E    / 18:  170.0  170.0
+180E    / 19:  180.0  180.0
+90W     / 20:   ....   ....
+0E(360) / 21:   ....   ....
+10E     / 22:   ....   ....
+20E     / 23:   20.0   20.0
+30E     / 24:   ....   30.0
+40E     / 25:   ....   40.0
+50E     / 26:   50.0   50.0
+60E     / 27:   60.0   60.0
+70E     / 28:   70.0   70.0
+80E     / 29:   80.0   80.0
+90E     / 30:   90.0   90.0
+100E    / 31:  100.0  100.0
+110E    / 32:  110.0  110.0
+120E    / 33:  120.0  120.0
+130E    / 34:  130.0  130.0
+140E    / 35:  140.0  140.0
+150E    / 36:  150.0  150.0
+160E    / 37:  160.0  160.0
+170E    / 38:  170.0  170.0
+180E    / 39:  180.0  180.0
+90W     / 40:   ....   ....
+0E(720) / 41:   ....   ....
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_subspan_transforms
+! err696_subspan_transforms.jnl
+! See ticket 2364.  Results previously
+! put results at the modulo void point.
+ 
+def ax/x=0:180:20/unit=degrees_e xaxis
+let a = x[gx=xaxis]
+save/clob/file=a.nc a
+can var a; can ax xaxis; use a.nc
+ list/x=0:720 a, a[x=@ddc]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@DDC] is X[GX=XAXIS] (centered derivative on X)
+                  A       A
+0E      /  1:    0.0       ....
+20E     /  2:   20.0  8.993E-06
+40E     /  3:   40.0  8.993E-06
+60E     /  4:   60.0  8.993E-06
+80E     /  5:   80.0  8.993E-06
+100E    /  6:  100.0  8.993E-06
+120E    /  7:  120.0  8.993E-06
+140E    /  8:  140.0  8.993E-06
+160E    /  9:  160.0  8.993E-06
+180E    / 10:  180.0       ....
+90W     / 11:   ....       ....
+0E(360) / 12:    0.0       ....
+20E     / 13:   20.0  8.993E-06
+40E     / 14:   40.0  8.993E-06
+60E     / 15:   60.0  8.993E-06
+80E     / 16:   80.0  8.993E-06
+100E    / 17:  100.0  8.993E-06
+120E    / 18:  120.0  8.993E-06
+140E    / 19:  140.0  8.993E-06
+160E    / 20:  160.0  8.993E-06
+180E    / 21:  180.0       ....
+90W     / 22:   ....       ....
+0E(720) / 23:    0.0       ....
+ list/x=0:720 a, a[x=@ddf]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@DDF] is X[GX=XAXIS] (forward derivative on X)
+                  A       A
+0E      /  1:    0.0  8.993E-06
+20E     /  2:   20.0  8.993E-06
+40E     /  3:   40.0  8.993E-06
+60E     /  4:   60.0  8.993E-06
+80E     /  5:   80.0  8.993E-06
+100E    /  6:  100.0  8.993E-06
+120E    /  7:  120.0  8.993E-06
+140E    /  8:  140.0  8.993E-06
+160E    /  9:  160.0  8.993E-06
+180E    / 10:  180.0       ....
+90W     / 11:   ....       ....
+0E(360) / 12:    0.0  8.993E-06
+20E     / 13:   20.0  8.993E-06
+40E     / 14:   40.0  8.993E-06
+60E     / 15:   60.0  8.993E-06
+80E     / 16:   80.0  8.993E-06
+100E    / 17:  100.0  8.993E-06
+120E    / 18:  120.0  8.993E-06
+140E    / 19:  140.0  8.993E-06
+160E    / 20:  160.0  8.993E-06
+180E    / 21:  180.0       ....
+90W     / 22:   ....       ....
+0E(720) / 23:    0.0  8.993E-06
+ list/x=0:720 a, a[x=@ddb]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@DDB] is X[GX=XAXIS] (backwards derivative on X)
+                  A       A
+0E      /  1:    0.0       ....
+20E     /  2:   20.0  8.993E-06
+40E     /  3:   40.0  8.993E-06
+60E     /  4:   60.0  8.993E-06
+80E     /  5:   80.0  8.993E-06
+100E    /  6:  100.0  8.993E-06
+120E    /  7:  120.0  8.993E-06
+140E    /  8:  140.0  8.993E-06
+160E    /  9:  160.0  8.993E-06
+180E    / 10:  180.0  8.993E-06
+90W     / 11:   ....       ....
+0E(360) / 12:    0.0       ....
+20E     / 13:   20.0  8.993E-06
+40E     / 14:   40.0  8.993E-06
+60E     / 15:   60.0  8.993E-06
+80E     / 16:   80.0  8.993E-06
+100E    / 17:  100.0  8.993E-06
+120E    / 18:  120.0  8.993E-06
+140E    / 19:  140.0  8.993E-06
+160E    / 20:  160.0  8.993E-06
+180E    / 21:  180.0  8.993E-06
+90W     / 22:   ....       ....
+0E(720) / 23:    0.0       ....
+ list/x=0:720 a, a[x=@shf]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SHF:1] is X[GX=XAXIS] (shifted by 1 pts on X)
+                  A     A
+0E      /  1:    0.0   20.0
+20E     /  2:   20.0   40.0
+40E     /  3:   40.0   60.0
+60E     /  4:   60.0   80.0
+80E     /  5:   80.0  100.0
+100E    /  6:  100.0  120.0
+120E    /  7:  120.0  140.0
+140E    /  8:  140.0  160.0
+160E    /  9:  160.0  180.0
+180E    / 10:  180.0   ....
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   20.0
+20E     / 13:   20.0   40.0
+40E     / 14:   40.0   60.0
+60E     / 15:   60.0   80.0
+80E     / 16:   80.0  100.0
+100E    / 17:  100.0  120.0
+120E    / 18:  120.0  140.0
+140E    / 19:  140.0  160.0
+160E    / 20:  160.0  180.0
+180E    / 21:  180.0   ....
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   20.0
+ list/x=0:720 a, a[x=@sbx]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SBX:3] is X[GX=XAXIS] (box smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   ....
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   40.0
+60E     /  4:   60.0   60.0
+80E     /  5:   80.0   80.0
+100E    /  6:  100.0  100.0
+120E    /  7:  120.0  120.0
+140E    /  8:  140.0  140.0
+160E    /  9:  160.0  160.0
+180E    / 10:  180.0   ....
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   ....
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   40.0
+60E     / 15:   60.0   60.0
+80E     / 16:   80.0   80.0
+100E    / 17:  100.0  100.0
+120E    / 18:  120.0  120.0
+140E    / 19:  140.0  140.0
+160E    / 20:  160.0  160.0
+180E    / 21:  180.0   ....
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   ....
+ list/x=0:720 a, a[x=@sbn]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SBN:3] is X[GX=XAXIS] (binomial smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   ....
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   40.0
+60E     /  4:   60.0   60.0
+80E     /  5:   80.0   80.0
+100E    /  6:  100.0  100.0
+120E    /  7:  120.0  120.0
+140E    /  8:  140.0  140.0
+160E    /  9:  160.0  160.0
+180E    / 10:  180.0   ....
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   ....
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   40.0
+60E     / 15:   60.0   60.0
+80E     / 16:   80.0   80.0
+100E    / 17:  100.0  100.0
+120E    / 18:  120.0  120.0
+140E    / 19:  140.0  140.0
+160E    / 20:  160.0  160.0
+180E    / 21:  180.0   ....
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   ....
+ list/x=0:720 a, a[x=@swl]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SWL:3] is X[GX=XAXIS] (Welch smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   ....
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   40.0
+60E     /  4:   60.0   60.0
+80E     /  5:   80.0   80.0
+100E    /  6:  100.0  100.0
+120E    /  7:  120.0  120.0
+140E    /  8:  140.0  140.0
+160E    /  9:  160.0  160.0
+180E    / 10:  180.0   ....
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   ....
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   40.0
+60E     / 15:   60.0   60.0
+80E     / 16:   80.0   80.0
+100E    / 17:  100.0  100.0
+120E    / 18:  120.0  120.0
+140E    / 19:  140.0  140.0
+160E    / 20:  160.0  160.0
+180E    / 21:  180.0   ....
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   ....
+ list/x=0:720 a, a[x=@shn]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SHN:3] is X[GX=XAXIS] (Hanning smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   ....
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   40.0
+60E     /  4:   60.0   60.0
+80E     /  5:   80.0   80.0
+100E    /  6:  100.0  100.0
+120E    /  7:  120.0  120.0
+140E    /  8:  140.0  140.0
+160E    /  9:  160.0  160.0
+180E    / 10:  180.0   ....
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   ....
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   40.0
+60E     / 15:   60.0   60.0
+80E     / 16:   80.0   80.0
+100E    / 17:  100.0  100.0
+120E    / 18:  120.0  120.0
+140E    / 19:  140.0  140.0
+160E    / 20:  160.0  160.0
+180E    / 21:  180.0   ....
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   ....
+ list/x=0:720 a, a[x=@spz]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SPZ:3] is X[GX=XAXIS] (Parzen smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   ....
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   40.0
+60E     /  4:   60.0   60.0
+80E     /  5:   80.0   80.0
+100E    /  6:  100.0  100.0
+120E    /  7:  120.0  120.0
+140E    /  8:  140.0  140.0
+160E    /  9:  160.0  160.0
+180E    / 10:  180.0   ....
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   ....
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   40.0
+60E     / 15:   60.0   60.0
+80E     / 16:   80.0   80.0
+100E    / 17:  100.0  100.0
+120E    / 18:  120.0  120.0
+140E    / 19:  140.0  140.0
+160E    / 20:  160.0  160.0
+180E    / 21:  180.0   ....
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   ....
+ list/x=0:720 a, a[x=@med]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@MED:3] is X[GX=XAXIS] (median smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   20.0
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   40.0
+60E     /  4:   60.0   60.0
+80E     /  5:   80.0   80.0
+100E    /  6:  100.0  100.0
+120E    /  7:  120.0  120.0
+140E    /  8:  140.0  140.0
+160E    /  9:  160.0  160.0
+180E    / 10:  180.0  180.0
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   20.0
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   40.0
+60E     / 15:   60.0   60.0
+80E     / 16:   80.0   80.0
+100E    / 17:  100.0  100.0
+120E    / 18:  120.0  120.0
+140E    / 19:  140.0  140.0
+160E    / 20:  160.0  160.0
+180E    / 21:  180.0  180.0
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   20.0
+ list/x=0:720 a, a[x=@smx]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SMX:3] is X[GX=XAXIS] (maximum smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   20.0
+20E     /  2:   20.0   40.0
+40E     /  3:   40.0   60.0
+60E     /  4:   60.0   80.0
+80E     /  5:   80.0  100.0
+100E    /  6:  100.0  120.0
+120E    /  7:  120.0  140.0
+140E    /  8:  140.0  160.0
+160E    /  9:  160.0  180.0
+180E    / 10:  180.0  180.0
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   20.0
+20E     / 13:   20.0   40.0
+40E     / 14:   40.0   60.0
+60E     / 15:   60.0   80.0
+80E     / 16:   80.0  100.0
+100E    / 17:  100.0  120.0
+120E    / 18:  120.0  140.0
+140E    / 19:  140.0  160.0
+160E    / 20:  160.0  180.0
+180E    / 21:  180.0  180.0
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   20.0
+ list/x=0:720 a, a[x=@smn]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SMN:3] is X[GX=XAXIS] (minimum smoothed by 3 pts on X)
+                  A     A
+0E      /  1:    0.0    0.0
+20E     /  2:   20.0    0.0
+40E     /  3:   40.0   20.0
+60E     /  4:   60.0   40.0
+80E     /  5:   80.0   60.0
+100E    /  6:  100.0   80.0
+120E    /  7:  120.0  100.0
+140E    /  8:  140.0  120.0
+160E    /  9:  160.0  140.0
+180E    / 10:  180.0  160.0
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0    0.0
+20E     / 13:   20.0    0.0
+40E     / 14:   40.0   20.0
+60E     / 15:   60.0   40.0
+80E     / 16:   80.0   60.0
+100E    / 17:  100.0   80.0
+120E    / 18:  120.0  100.0
+140E    / 19:  140.0  120.0
+160E    / 20:  160.0  140.0
+180E    / 21:  180.0  160.0
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0    0.0
+ list/x=0:720 a, a[x=@wgt]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@WGT] is X[GX=XAXIS] (weights for avg,int on X)
+                  A      A
+0E      /  1:    0.0  2223898.
+20E     /  2:   20.0  2223898.
+40E     /  3:   40.0  2223898.
+60E     /  4:   60.0  2223898.
+80E     /  5:   80.0  2223898.
+100E    /  6:  100.0  2223898.
+120E    /  7:  120.0  2223898.
+140E    /  8:  140.0  2223898.
+160E    /  9:  160.0  2223898.
+180E    / 10:  180.0  2223898.
+90W     / 11:   ....      ....
+0E(360) / 12:    0.0  2223898.
+20E     / 13:   20.0  2223898.
+40E     / 14:   40.0  2223898.
+60E     / 15:   60.0  2223898.
+80E     / 16:   80.0  2223898.
+100E    / 17:  100.0  2223898.
+120E    / 18:  120.0  2223898.
+140E    / 19:  140.0  2223898.
+160E    / 20:  160.0  2223898.
+180E    / 21:  180.0  2223898.
+90W     / 22:   ....      ....
+0E(720) / 23:    0.0  2223898.
+ list/x=0:720 a, a[x=@spx]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@SPX:3] is X[GX=XAXIS] (box smooth w/missing by 3 pts on X)
+                  A     A
+0E      /  1:    0.0   ....
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   40.0
+60E     /  4:   60.0   60.0
+80E     /  5:   80.0   80.0
+100E    /  6:  100.0  100.0
+120E    /  7:  120.0  120.0
+140E    /  8:  140.0  140.0
+160E    /  9:  160.0  160.0
+180E    / 10:  180.0  170.0
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0   ....
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   40.0
+60E     / 15:   60.0   60.0
+80E     / 16:   80.0   80.0
+100E    / 17:  100.0  100.0
+120E    / 18:  120.0  120.0
+140E    / 19:  140.0  140.0
+160E    / 20:  160.0  160.0
+180E    / 21:  180.0  170.0
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0   ....
+ 
+! Note that Running Sum and Indefinite Integral, Event mask
+! now restart in each branch.
+ list/x=0:720 a, a[x=@rsu]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@RSU] is X[GX=XAXIS] (running sum on X)
+                  A     A
+0E      /  1:    0.0    0.0
+20E     /  2:   20.0   20.0
+40E     /  3:   40.0   60.0
+60E     /  4:   60.0  120.0
+80E     /  5:   80.0  200.0
+100E    /  6:  100.0  300.0
+120E    /  7:  120.0  420.0
+140E    /  8:  140.0  560.0
+160E    /  9:  160.0  720.0
+180E    / 10:  180.0  900.0
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0    0.0
+20E     / 13:   20.0   20.0
+40E     / 14:   40.0   60.0
+60E     / 15:   60.0  120.0
+80E     / 16:   80.0  200.0
+100E    / 17:  100.0  300.0
+120E    / 18:  120.0  420.0
+140E    / 19:  140.0  560.0
+160E    / 20:  160.0  720.0
+180E    / 21:  180.0  900.0
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0    0.0
+ list/x=0:720 a, a[x=@iin]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@IIN] is X[GX=XAXIS] (indef. integ. on X)
+                  A       A
+0E      /  1:    0.0  0.000E+00
+20E     /  2:   20.0  4.448E+07
+40E     /  3:   40.0  1.334E+08
+60E     /  4:   60.0  2.669E+08
+80E     /  5:   80.0  4.448E+08
+100E    /  6:  100.0  6.672E+08
+120E    /  7:  120.0  9.340E+08
+140E    /  8:  140.0  1.245E+09
+160E    /  9:  160.0  1.601E+09
+180E    / 10:  180.0  2.002E+09
+90W     / 11:   ....       ....
+0E(360) / 12:    0.0  0.000E+00
+20E     / 13:   20.0  4.448E+07
+40E     / 14:   40.0  1.334E+08
+60E     / 15:   60.0  2.669E+08
+80E     / 16:   80.0  4.448E+08
+100E    / 17:  100.0  6.672E+08
+120E    / 18:  120.0  9.340E+08
+140E    / 19:  140.0  1.245E+09
+160E    / 20:  160.0  1.601E+09
+180E    / 21:  180.0  2.002E+09
+90W     / 22:   ....       ....
+0E(720) / 23:    0.0  0.000E+00
+ list/x=0:720 a, a[x=@evnt:80]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is X[GX=XAXIS]
+ Column  2: A[X=@EVN:80] is X[GX=XAXIS] (event mask at 80 on X)
+                  A     A
+0E      /  1:    0.0  0.000
+20E     /  2:   20.0  0.000
+40E     /  3:   40.0  0.000
+60E     /  4:   60.0  0.000
+80E     /  5:   80.0  1.000
+100E    /  6:  100.0  1.000
+120E    /  7:  120.0  1.000
+140E    /  8:  140.0  1.000
+160E    /  9:  160.0  1.000
+180E    / 10:  180.0  1.000
+90W     / 11:   ....   ....
+0E(360) / 12:    0.0  0.000
+20E     / 13:   20.0  0.000
+40E     / 14:   40.0  0.000
+60E     / 15:   60.0  0.000
+80E     / 16:   80.0  1.000
+100E    / 17:  100.0  1.000
+120E    / 18:  120.0  1.000
+140E    / 19:  140.0  1.000
+160E    / 20:  160.0  1.000
+180E    / 21:  180.0  1.000
+90W     / 22:   ....   ....
+0E(720) / 23:    0.0  0.000
+ 
+ 
+! Transforms that deal with gaps
+can dat/all
+def ax/x=0:180:10/unit=degrees_e xaxis
+let a = if x[gx=xaxis] gt 40 and x[gx=xaxis] le 150 then x[gx=xaxis]
+save/clob/file=a.nc a
+can var a; can ax xaxis; use a.nc
+ list/x=0:720 a, a[x=@fav]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@FAV:3] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (ave-filled by 3 pts on X)
+                  A     A
+0E      /  1:   ....   ....
+10E     /  2:   ....   ....
+20E     /  3:   ....   ....
+30E     /  4:   ....   ....
+40E     /  5:   ....   50.0
+50E     /  6:   50.0   50.0
+60E     /  7:   60.0   60.0
+70E     /  8:   70.0   70.0
+80E     /  9:   80.0   80.0
+90E     / 10:   90.0   90.0
+100E    / 11:  100.0  100.0
+110E    / 12:  110.0  110.0
+120E    / 13:  120.0  120.0
+130E    / 14:  130.0  130.0
+140E    / 15:  140.0  140.0
+150E    / 16:  150.0  150.0
+160E    / 17:   ....  150.0
+170E    / 18:   ....   ....
+180E    / 19:   ....   ....
+90W     / 20:   ....   ....
+0E(360) / 21:   ....   ....
+10E     / 22:   ....   ....
+20E     / 23:   ....   ....
+30E     / 24:   ....   ....
+40E     / 25:   ....   50.0
+50E     / 26:   50.0   50.0
+60E     / 27:   60.0   60.0
+70E     / 28:   70.0   70.0
+80E     / 29:   80.0   80.0
+90E     / 30:   90.0   90.0
+100E    / 31:  100.0  100.0
+110E    / 32:  110.0  110.0
+120E    / 33:  120.0  120.0
+130E    / 34:  130.0  130.0
+140E    / 35:  140.0  140.0
+150E    / 36:  150.0  150.0
+160E    / 37:   ....  150.0
+170E    / 38:   ....   ....
+180E    / 39:   ....   ....
+90W     / 40:   ....   ....
+0E(720) / 41:   ....   ....
+ list/x=0:720 a, a[x=@fnr]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@FNR:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (nearest-filled by 1 pts on X)
+                  A     A
+0E      /  1:   ....   50.0
+10E     /  2:   ....   50.0
+20E     /  3:   ....   50.0
+30E     /  4:   ....   50.0
+40E     /  5:   ....   50.0
+50E     /  6:   50.0   50.0
+60E     /  7:   60.0   60.0
+70E     /  8:   70.0   70.0
+80E     /  9:   80.0   80.0
+90E     / 10:   90.0   90.0
+100E    / 11:  100.0  100.0
+110E    / 12:  110.0  110.0
+120E    / 13:  120.0  120.0
+130E    / 14:  130.0  130.0
+140E    / 15:  140.0  140.0
+150E    / 16:  150.0  150.0
+160E    / 17:   ....  150.0
+170E    / 18:   ....  150.0
+180E    / 19:   ....  150.0
+90W     / 20:   ....   ....
+0E(360) / 21:   ....   50.0
+10E     / 22:   ....   50.0
+20E     / 23:   ....   50.0
+30E     / 24:   ....   50.0
+40E     / 25:   ....   50.0
+50E     / 26:   50.0   50.0
+60E     / 27:   60.0   60.0
+70E     / 28:   70.0   70.0
+80E     / 29:   80.0   80.0
+90E     / 30:   90.0   90.0
+100E    / 31:  100.0  100.0
+110E    / 32:  110.0  110.0
+120E    / 33:  120.0  120.0
+130E    / 34:  130.0  130.0
+140E    / 35:  140.0  140.0
+150E    / 36:  150.0  150.0
+160E    / 37:   ....  150.0
+170E    / 38:   ....  150.0
+180E    / 39:   ....  150.0
+90W     / 40:   ....   ....
+0E(720) / 41:   ....   50.0
+ list/x=0:720 a, a[x=@cia]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CIA:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest index above on X)
+                  A     A
+0E      /  1:   ....  5.000
+10E     /  2:   ....  4.000
+20E     /  3:   ....  3.000
+30E     /  4:   ....  2.000
+40E     /  5:   ....  1.000
+50E     /  6:   50.0  0.000
+60E     /  7:   60.0  0.000
+70E     /  8:   70.0  0.000
+80E     /  9:   80.0  0.000
+90E     / 10:   90.0  0.000
+100E    / 11:  100.0  0.000
+110E    / 12:  110.0  0.000
+120E    / 13:  120.0  0.000
+130E    / 14:  130.0  0.000
+140E    / 15:  140.0  0.000
+150E    / 16:  150.0  0.000
+160E    / 17:   ....   ....
+170E    / 18:   ....   ....
+180E    / 19:   ....   ....
+90W     / 20:   ....   ....
+0E(360) / 21:   ....  5.000
+10E     / 22:   ....  4.000
+20E     / 23:   ....  3.000
+30E     / 24:   ....  2.000
+40E     / 25:   ....  1.000
+50E     / 26:   50.0  0.000
+60E     / 27:   60.0  0.000
+70E     / 28:   70.0  0.000
+80E     / 29:   80.0  0.000
+90E     / 30:   90.0  0.000
+100E    / 31:  100.0  0.000
+110E    / 32:  110.0  0.000
+120E    / 33:  120.0  0.000
+130E    / 34:  130.0  0.000
+140E    / 35:  140.0  0.000
+150E    / 36:  150.0  0.000
+160E    / 37:   ....   ....
+170E    / 38:   ....   ....
+180E    / 39:   ....   ....
+90W     / 40:   ....   ....
+0E(720) / 41:   ....  5.000
+ list/x=0:720 a, a[x=@cib]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CIB:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest index below on X)
+                  A     A
+0E      /  1:   ....   ....
+10E     /  2:   ....   ....
+20E     /  3:   ....   ....
+30E     /  4:   ....   ....
+40E     /  5:   ....   ....
+50E     /  6:   50.0  0.000
+60E     /  7:   60.0  0.000
+70E     /  8:   70.0  0.000
+80E     /  9:   80.0  0.000
+90E     / 10:   90.0  0.000
+100E    / 11:  100.0  0.000
+110E    / 12:  110.0  0.000
+120E    / 13:  120.0  0.000
+130E    / 14:  130.0  0.000
+140E    / 15:  140.0  0.000
+150E    / 16:  150.0  0.000
+160E    / 17:   ....  1.000
+170E    / 18:   ....  2.000
+180E    / 19:   ....  3.000
+90W     / 20:   ....   ....
+0E(360) / 21:   ....   ....
+10E     / 22:   ....   ....
+20E     / 23:   ....   ....
+30E     / 24:   ....   ....
+40E     / 25:   ....   ....
+50E     / 26:   50.0  0.000
+60E     / 27:   60.0  0.000
+70E     / 28:   70.0  0.000
+80E     / 29:   80.0  0.000
+90E     / 30:   90.0  0.000
+100E    / 31:  100.0  0.000
+110E    / 32:  110.0  0.000
+120E    / 33:  120.0  0.000
+130E    / 34:  130.0  0.000
+140E    / 35:  140.0  0.000
+150E    / 36:  150.0  0.000
+160E    / 37:   ....  1.000
+170E    / 38:   ....  2.000
+180E    / 39:   ....  3.000
+90W     / 40:   ....   ....
+0E(720) / 41:   ....   ....
+ list/x=0:720 a, a[x=@cda]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CDA:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest dist above on X)
+                  A     A
+0E      /  1:   ....  50.00
+10E     /  2:   ....  40.00
+20E     /  3:   ....  30.00
+30E     /  4:   ....  20.00
+40E     /  5:   ....  10.00
+50E     /  6:   50.0   0.00
+60E     /  7:   60.0   0.00
+70E     /  8:   70.0   0.00
+80E     /  9:   80.0   0.00
+90E     / 10:   90.0   0.00
+100E    / 11:  100.0   0.00
+110E    / 12:  110.0   0.00
+120E    / 13:  120.0   0.00
+130E    / 14:  130.0   0.00
+140E    / 15:  140.0   0.00
+150E    / 16:  150.0   0.00
+160E    / 17:   ....   ....
+170E    / 18:   ....   ....
+180E    / 19:   ....   ....
+90W     / 20:   ....   ....
+0E(360) / 21:   ....  50.00
+10E     / 22:   ....  40.00
+20E     / 23:   ....  30.00
+30E     / 24:   ....  20.00
+40E     / 25:   ....  10.00
+50E     / 26:   50.0   0.00
+60E     / 27:   60.0   0.00
+70E     / 28:   70.0   0.00
+80E     / 29:   80.0   0.00
+90E     / 30:   90.0   0.00
+100E    / 31:  100.0   0.00
+110E    / 32:  110.0   0.00
+120E    / 33:  120.0   0.00
+130E    / 34:  130.0   0.00
+140E    / 35:  140.0   0.00
+150E    / 36:  150.0   0.00
+160E    / 37:   ....   ....
+170E    / 38:   ....   ....
+180E    / 39:   ....   ....
+90W     / 40:   ....   ....
+0E(720) / 41:   ....  50.00
+ list/x=0:720 a, a[x=@cdb]
+             DATA SET: ./a.nc
+             LONGITUDE: 0E to 0E(720)
+ Column  1: A is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS]
+ Column  2: A[X=@CDB:1] is IF X[GX=XAXIS] GT 40 AND X[GX=XAXIS] LE 150 THEN X[GX=XAXIS] (closest dist below on X)
+                  A     A
+0E      /  1:   ....   ....
+10E     /  2:   ....   ....
+20E     /  3:   ....   ....
+30E     /  4:   ....   ....
+40E     /  5:   ....   ....
+50E     /  6:   50.0   0.00
+60E     /  7:   60.0   0.00
+70E     /  8:   70.0   0.00
+80E     /  9:   80.0   0.00
+90E     / 10:   90.0   0.00
+100E    / 11:  100.0   0.00
+110E    / 12:  110.0   0.00
+120E    / 13:  120.0   0.00
+130E    / 14:  130.0   0.00
+140E    / 15:  140.0   0.00
+150E    / 16:  150.0   0.00
+160E    / 17:   ....  10.00
+170E    / 18:   ....  20.00
+180E    / 19:   ....  30.00
+90W     / 20:   ....   ....
+0E(360) / 21:   ....   ....
+10E     / 22:   ....   ....
+20E     / 23:   ....   ....
+30E     / 24:   ....   ....
+40E     / 25:   ....   ....
+50E     / 26:   50.0   0.00
+60E     / 27:   60.0   0.00
+70E     / 28:   70.0   0.00
+80E     / 29:   80.0   0.00
+90E     / 30:   90.0   0.00
+100E    / 31:  100.0   0.00
+110E    / 32:  110.0   0.00
+120E    / 33:  120.0   0.00
+130E    / 34:  130.0   0.00
+140E    / 35:  140.0   0.00
+150E    / 36:  150.0   0.00
+160E    / 37:   ....  10.00
+170E    / 38:   ....  20.00
+180E    / 39:   ....  30.00
+90W     / 40:   ....   ....
+0E(720) / 41:   ....   ....
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_subspan_mod_in_expr
+! err696_subspan_mod_in_expr.jnl
+! ticket 1845: a subspan modulo due to context info buried
+! in a multi-layer expression isn't applied when setting
+! the time axis limits for the plot.
+! *acm* 5/2016
+ 
+use bug1845.nc
+set v upper
+shade/x=137:146 salinity[l=1] -  salinity[l=2]
+sh sym xaxis_m*
+XAXIS_MIN = "137.000000"
+XAXIS_MAX = "145.345261"
+ 
+ 
+! When the region information is embedded a couple levels down inside
+! the expressions - in the square brackets, and then an expression involving
+! subtraction - the region isn't treated correctly, and the upper limit is
+! the modulo void point.
+ 
+! Previously XAXIS_MAX was 496.4, the x axis too long, and most of the plot was blank
+ 
+set v lower
+shade salinity[x=137:146,T="28-Mar-2011 00:00"] - salinity[x=137:146,T="28-Mar-2011 03:00"]
+sh sym xaxis_m*
+XAXIS_MIN = "136.443619"
+XAXIS_MAX = "145.345261"
+ 
+ 
+go bn_reset
+cancel mode verify
+go err696_shade_subspan_clim
+! err696_shade_subspan_clim
+! See ticket 2404
+ 
+def ax/edges/t/unit="day"/t0=1-jan-0001/cal=gregorian/modulo=365.25 \
+tax = {31, 59.2425, 90.2425, 120.2425, 151.2425, 181.2425, 212.2425}
+let a = t[gt=tax]
+save/clob/file=a.nc a
+can var a
+can axis tax
+use a.nc
+can view
+ 
+! The top-left SHADE plot looks fine.
+set view ul; shade a*x[gx=0:10:1]
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "31.0000000"
+YAXIS_MAX = "212.242500"
+ 
+! But the top-right SHADE plot was all messed up; it shifts the data
+! later by a full month, and stretches the last (shifted) cell all
+! the way to the upper limit of the plot domain
+ 
+set view ur; shade/t=1-jan-0001:1-jan-0002 a*x[gx=0:10:1]
+sh sym yaxis*
+YAXIS_REVERSED = "0"
+YAXIS_MIN = "31.0000000"
+YAXIS_MAX = "212.242500"
+ 
+! In the bottom-right line plot, the actual plotted data look ok.
+! But the plot limits extend all the way from 1-JUL-0000 to 1-MAR-0002,
+! rather than being shrink-wrapped around the data.
+ 
+set view lr; plot/step=con/t=1-jan-0001:1-jan-0002 a
+ 
+sh sym xaxis*
+XAXIS_REVERSED = "0"
+XAXIS_MIN = "31.0000000"
+XAXIS_MAX = "212.242500"
+ 
+go bn_reset
+cancel mode verify
+! go err696_subspan_mod_strides  ! do this test in bn_gif
+ 
+go bn_reset
+cancel mode verify
+go err696_def_att
+! err696_def_att.jnl
+! tickets 2415, 2416
+! data type for defined axes
+ 
+use coads_climatology
+ 
+! previously the values were corrupted when defining numeric
+! attributes on a coordinate variable
+define att/output (`sst,return=xaxis`).new2 = {1,3,6}
+ !-> define att/output (COADSX).new2 = {1,3,6}
+save/clobber/file=a.nc sst
+sp ncdump a.nc | grep -i coadsx
+	COADSX = 180 ;
+	double COADSX(COADSX) ;
+		COADSX:units = "degrees_east" ;
+		COADSX:modulo = " " ;
+		COADSX:point_spacing = "even" ;
+		COADSX:new2 = 1.f, 3.f, 6.f ;
+		COADSX:axis = "X" ;
+		COADSX:standard_name = "longitude" ;
+	float SST(TIME, COADSY, COADSX) ;
+ COADSX = 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 
+ 
+can dat/all
+use coads_climatology
+ 
+! previously could only specify /TYPE=float or /TYPE=string
+ 
+! default types from the expression
+define att/output sst.newch = "A string"
+define att/output sst.newch = 158.12
+ 
+define att/output/type=byt sst.abyte = 5
+define att/output/type=int sst.aint = {-5,-12,-1556,0,1}
+define att/output/type=string sst.str_from_num = 978.43
+define att/output/type=double sst.dbint = 123.45678901
+ 
+save/clobber/file=a.nc sst
+sp ncdump a.nc | grep -i sst
+	float SST(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" ;
+		SST:newch = 158.12f ;
+		SST:abyte = 5b ;
+		SST:aint = -5, -12, -1556, 0, 1 ;
+		SST:str_from_num = "978.43" ;
+		SST:dbint = 123.45678901 ;
+ SST =
+ 
+go bn_reset
+cancel mode verify
+go err696_return_prec
+! err696_return_prec.jnl
+! ACM 5/16 See ticket 2389.
+! For grave-accent returns, adjust the formatting so that `var,p=2` really
+! means 2 digits, and returning an exponential rather than a long integer
+! with lots of zero's.
+ 
+! Both of these as exponentials. Prev. the second switched to an integer.
+say `1.55551e8,p=2`
+ !-> MESSAGE/CONTINUE 1.6E+08
+1.6E+08
+say `1.55551e7,p=2`
+ !-> MESSAGE/CONTINUE 1.6E+07
+1.6E+07
+ 
+! Return only as many digits as requested
+ 
+say `1.555555551e-9,p=1`
+ !-> MESSAGE/CONTINUE  2.E-09
+2.E-09
+say `1.555555551e-9,p=2`
+ !-> MESSAGE/CONTINUE   1.6E-09
+1.6E-09
+say `1.555555551e-9,p=3`
+ !-> MESSAGE/CONTINUE    1.56E-09
+1.56E-09
+ 
+say `1.555555551e-9,p=5`
+ !-> MESSAGE/CONTINUE      1.5556E-09
+1.5556E-09
+say `1.555555551e-9,p=7`
+ !-> MESSAGE/CONTINUE       1.555556E-09
+1.555556E-09
+say `1.555555551e-9,p=10`
+ !-> MESSAGE/CONTINUE    1.555555551E-09
+1.555555551E-09
+ 
+! For large numbers, return an fixed-point value only when the number
+! of digits is at least the magnitude of the value
+ 
+say `1.55551e8,p=2`
+ !-> MESSAGE/CONTINUE 1.6E+08
+1.6E+08
+say `1.55551e8,p=3`
+ !-> MESSAGE/CONTINUE 1.56E+08
+1.56E+08
+say `1.55551e8,p=5`
+ !-> MESSAGE/CONTINUE 1.5555E+08
+1.5555E+08
+say `1.55551e8,p=9`
+ !-> MESSAGE/CONTINUE 155551000
+155551000
+say `1.55551e8,p=10`
+ !-> MESSAGE/CONTINUE 155551000
+155551000
+ 
+! Previously these returned fixed-point numbers with trailing zero's
+! after the decimal point. These are removed.
+say `1.55555551e8,p=14`
+ !-> MESSAGE/CONTINUE 155555551
+155555551
+say `1.555555001e8,p=14`
+ !-> MESSAGE/CONTINUE   155555500.1
+155555500.1
+ 
+ 
+ 
+ 
+go bn_reset
+cancel mode verify
+go err686_show_xml_letd
+! ! bn_show_xml_letd
+! Testing SHOW DATA/VAR/XML with a let/D variable
+! Ticket 2441
+ 
+use coads_climatology.cdf
+use gtbc011.cdf
+let/d=1 u2 = u[d=2]
+let/d=1 v2 = v[d=2]
+let/d=1 w2 = w[d=2]
+let/d=1 salt2 = salt[d=2]
+sh dat 1
+     currently SET data sets:
+    1> ./coads_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ ------------------------------
+ SALT2[D=coads_climatology] = SALT[D=2]
+ W2[D=coads_climatology] = W[D=2]
+ V2[D=coads_climatology] = V[D=2]
+ U2[D=coads_climatology] = U[D=2]
+ 
+ 
+sh dat/var/xml/outfile=out.xml/clobber 1
+ 
+! Showed w2 twice but missed u2.
+sp grep "var name" out.xml
+<var name="SST">
+<var name="salt2">
+<var name="w2">
+<var name="v2">
+<var name="u2">
+*** Running ferret script: bn_aggregate_t.jnl
+[?1034h! bn_aggregate_t.jnl
+! 9/12/2015 *sh* tweak to put all test files into "tmp" subdirectory
+! 1/2016 *sh* added implicit naming of aggregation from script filename
+! 2/2016      and auto-sorting of member files
+ 
+spawn "mkdir -p tmp"     ! tmp directory t store files
+ 
+! *** create test files for T aggregation ***
+ 
+! --- files with regularly-spaced time points ---
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+ 
+! also define a time intependent field to be saved as the second variable
+! but only in the first data set
+let mymap = I[x=0E:0E:5]+ 10*J[Y=80s:80n:5]
+ 
+save/clobber/file="tmp/tagg_reg_1.nc" myvar[l=1:10], mymap
+save/clobber/file="tmp/tagg_reg_2.nc" myvar[l=11:20]
+save/clobber/file="tmp/tagg_reg_3.nc" myvar[l=21:30]
+save/clobber/file="tmp/tagg_reg_4.nc" myvar[l=31:40]
+save/clobber/file="tmp/tagg_reg_5.nc" myvar[l=41:50]
+save/clobber/file="tmp/tagg_reg_6.nc" myvar[l=51:60]
+save/clobber/file="tmp/tagg_reg_7.nc" myvar[l=61:70]
+save/clobber/file="tmp/tagg_reg_8.nc" myvar[l=71:80]
+save/clobber/file="tmp/tagg_reg_9.nc" myvar[l=81:90]
+save/clobber/file="tmp/tagg_reg_10.nc" myvar[l=91:100]
+ 
+! save a duplicate of the first file
+save/clobber/file="tmp/tagg_reg_1_duplicate.nc" myvar[l=1:10], mymap
+ 
+! save a file with no time-dependent variables
+save/clobber/file="tmp/tagg_reg_no_T.nc"  mymap
+ 
+! make a single file that is "too long": 15 time steps instead of 10
+! so that when used in a time series it creates reverse-ordered points
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+save/clobber/file="tmp/tagg_reg_2_overlarge.nc" myvar[l=11:25]
+cancel axis tday
+ 
+! --- files with irregularly-spaced time points ---
+define axis/T0=1-jan-1980/unit=days tday_ir = L[l=1:200]^1.01
+ 
+let myvar = SIN(T[gt=tday_ir]/10) + L[gt=tday_ir]/10
+!plot myvar[l=1:100]
+ 
+save/clobber/file="tmp/tagg_irreg_1.nc" myvar[l=1:10]
+save/clobber/file="tmp/tagg_irreg_2.nc" myvar[l=11:20]
+save/clobber/file="tmp/tagg_irreg_3.nc" myvar[l=21:30]
+save/clobber/file="tmp/tagg_irreg_4.nc" myvar[l=31:40]
+save/clobber/file="tmp/tagg_irreg_5.nc" myvar[l=41:50]
+save/clobber/file="tmp/tagg_irreg_6.nc" myvar[l=51:60]
+save/clobber/file="tmp/tagg_irreg_7.nc" myvar[l=61:70]
+save/clobber/file="tmp/tagg_irreg_8.nc" myvar[l=71:80]
+save/clobber/file="tmp/tagg_irreg_9.nc" myvar[l=81:90]
+save/clobber/file="tmp/tagg_irreg_10.nc" myvar[l=91:100]
+ 
+! create a regular time axis (lacking cell bounds) in the midst of the sequence
+define axis/T0=1-jan-1980/unit=days tday_ir = L[l=11:20]
+save/clobber/file="tmp/tagg_irreg_2_reg.nc" myvar
+cancel axis tday_ir
+ 
+ 
+! --- files in which the T0 origin varies ---
+! create a sequence of files with differing T0 dates, but the very same
+! timestep values (1, 2, 3, 4)
+ 
+let tt = t[gt=tday_tvar]
+ 
+repeat/i=1:5 (\
+define symbol file `i`;\
+define symbol start_day `(i-1)*4+1`;\
+define axis/T0=($start_day)-jan-1980/unit=days tday_Tvar = L[l=1:4];\
+let myvar0 = TAX_JDAY(L[l=1:4], tt);\
+let myvar = myvar0[gt=tday_Tvar at asn];\
+save/clobber/file="tmp/tagg_T0varying_($file).nc" myvar[l=1:4])
+ !-> repeat/i=1:5 (define symbol file `i`;define symbol start_day `(i-1)*4+1`;define axis/T0=($start_day)-jan-1980/unit=days tday_Tvar = L[l=1:4];let myvar0 = TAX_JDAY(L[l=1:4], tt);let myvar = myvar0[gt=tday_Tvar at asn];save/clobber/file="tmp/tagg_T0varying_($file).nc" myvar[l=1:4])
+!-> REPEAT: I=1
+ !-> define symbol file 1
+ !-> define symbol start_day 1
+ !-> define axis/T0=1-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_1.nc" myvar[l=1:4]
+!-> REPEAT: I=2
+ !-> define symbol file 2
+ !-> define symbol start_day 5
+ !-> define axis/T0=5-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_2.nc" myvar[l=1:4]
+!-> REPEAT: I=3
+ !-> define symbol file 3
+ !-> define symbol start_day 9
+ !-> define axis/T0=9-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_3.nc" myvar[l=1:4]
+!-> REPEAT: I=4
+ !-> define symbol file 4
+ !-> define symbol start_day 13
+ !-> define axis/T0=13-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_4.nc" myvar[l=1:4]
+!-> REPEAT: I=5
+ !-> define symbol file 5
+ !-> define symbol start_day 17
+ !-> define axis/T0=17-jan-1980/unit=days tday_Tvar = L[l=1:4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_T0varying_5.nc" myvar[l=1:4]
+ 
+! --- files with T0 varying and date gaps between files ---
+let myvar = L[gt=tday_Tvar]
+ 
+repeat/i=1:10 (\
+define symbol file `i`;\
+define symbol year `i+1980`;\
+define axis/T0=1-jan-($year)/unit=days tday_Tvar = L[l=1:10];\
+save/clobber/file="tmp/tagg_disjoint_T0varying_($file).nc" myvar[l=1:10])
+ !-> repeat/i=1:10 (define symbol file `i`;define symbol year `i+1980`;define axis/T0=1-jan-($year)/unit=days tday_Tvar = L[l=1:10];save/clobber/file="tmp/tagg_disjoint_T0varying_($file).nc" myvar[l=1:10])
+!-> REPEAT: I=1
+ !-> define symbol file 1
+ !-> define symbol year 1981
+ !-> define axis/T0=1-jan-1981/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_1.nc" myvar[l=1:10]
+!-> REPEAT: I=2
+ !-> define symbol file 2
+ !-> define symbol year 1982
+ !-> define axis/T0=1-jan-1982/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_2.nc" myvar[l=1:10]
+!-> REPEAT: I=3
+ !-> define symbol file 3
+ !-> define symbol year 1983
+ !-> define axis/T0=1-jan-1983/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_3.nc" myvar[l=1:10]
+!-> REPEAT: I=4
+ !-> define symbol file 4
+ !-> define symbol year 1984
+ !-> define axis/T0=1-jan-1984/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_4.nc" myvar[l=1:10]
+!-> REPEAT: I=5
+ !-> define symbol file 5
+ !-> define symbol year 1985
+ !-> define axis/T0=1-jan-1985/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_5.nc" myvar[l=1:10]
+!-> REPEAT: I=6
+ !-> define symbol file 6
+ !-> define symbol year 1986
+ !-> define axis/T0=1-jan-1986/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_6.nc" myvar[l=1:10]
+!-> REPEAT: I=7
+ !-> define symbol file 7
+ !-> define symbol year 1987
+ !-> define axis/T0=1-jan-1987/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_7.nc" myvar[l=1:10]
+!-> REPEAT: I=8
+ !-> define symbol file 8
+ !-> define symbol year 1988
+ !-> define axis/T0=1-jan-1988/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_8.nc" myvar[l=1:10]
+!-> REPEAT: I=9
+ !-> define symbol file 9
+ !-> define symbol year 1989
+ !-> define axis/T0=1-jan-1989/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_9.nc" myvar[l=1:10]
+!-> REPEAT: I=10
+ !-> define symbol file 10
+ !-> define symbol year 1990
+ !-> define axis/T0=1-jan-1990/unit=days tday_Tvar = L[l=1:10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/tagg_disjoint_T0varying_10.nc" myvar[l=1:10]
+ 
+! alter first and third files to have only single time step
+define axis/T0=1-jan-1981/unit=days tday_Tvar = L[l=1:10]
+save/clobber/file="tmp/tagg_disjoint_T0varying_1.nc" myvar[l=1:1]
+define axis/T0=1-jan-1983/unit=days tday_Tvar = L[l=1:10]
+save/clobber/file="tmp/tagg_disjoint_T0varying_3.nc" myvar[l=1:1]
+ 
+! make an alternative file 4 that has a different name for the time axis
+define axis/T0=1-jan-1984/unit=days tday_WRONG = L[l=1:10]
+let myvar = L[gt=tday_WRONG]
+save/clobber/file="tmp/tagg_disjoint_T0varying_4_wrong.nc" myvar[l=1:1]
+cancel axis tday_Tvar
+cancel axis tday_WRONG
+ 
+! --- files each containing only a single time step ---
+define axis/t=1-jan-1980:1-jan-1990:1/unit=days tday
+ 
+let myvar = SIN(T[gt=tday]/10) + L[gt=tday]/10
+ 
+! also define a time intependent field to be saved as the second variable
+! but only in the first data set
+let mymap = I[x=0E:0E:5]+ 10*J[Y=80s:80n:5]
+ 
+!save/rigid/keep_axisname/file=...
+ 
+save/clobber/file="tmp/tagg_single_1.nc" myvar[l=1], mymap
+save/clobber/file="tmp/tagg_single_2.nc" myvar[l=2]
+save/clobber/file="tmp/tagg_single_3.nc" myvar[l=3]
+save/clobber/file="tmp/tagg_single_4.nc" myvar[l=4]
+save/clobber/file="tmp/tagg_single_5.nc" myvar[l=5]
+save/clobber/file="tmp/tagg_single_6.nc" myvar[l=6]
+ 
+cancel axis tday
+ 
+cancel var/all
+ 
+ 
+! *****************************************
+! *** test the aggregation capabilities ***
+! --- regularly-spaced axes ---
+! if the first file of the aggregation is already open
+! it must not get disturbed by setting up the aggregation
+use tmp/tagg_reg_1.nc
+ 
+! single dataset aggregation
+tseries myagg1 =  tmp/tagg_reg_1.nc
+show data myagg1
+     currently SET data sets:
+    2> myagg1  (default)
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+show grid myvar
+    GRID GQC1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY1     TIME                10 r   01-JAN-1980 00:00    10-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+! double file aggregation
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show grid myvar
+    GRID GQC3
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY2     TIME                20 r   01-JAN-1980 00:00    20-JAN-1980 00:00   full
+ normal    E
+ normal    F
+stat myvar
+ 
+             SIN(T[GT=TDAY]/10) + L[GT=TDAY]/10
+             X:  N/A
+             Y:  N/A
+             Z:  N/A
+             TIME: 31-DEC-1979 12:00 to 20-JAN-1980 12:00
+             E:  N/A
+             F:  N/A
+             DATA SET: myagg2
+ 
+ Total # of data points: 20 (1*1*1*20*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.11794
+ Maximum value: 2.9403
+ Mean    value: 1.7434 (unweighted average)
+ Standard deviation: 0.90253
+ 
+! show that aggregate name is case-sensitive
+define data/agg/t myAgg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show data myAgg2
+     currently SET data sets:
+    3> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+ 
+! *sh* 1/28/2016 addition
+! same aggregation inheriting its name from the parent script
+define data/agg/t tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/tagg_reg_1.nc
+    2> myagg1
+    3> myagg2
+    4> myAgg2
+    5> ./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
+show data/full  ! all 4 datasets
+     currently SET data sets:
+    1> tmp/tagg_reg_1.nc
+ 
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+               on grid GTR1 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GTR2 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 10-JAN-1980 00:00
+ 
+    2> myagg1
+ 
+     T-aggregation of 1 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+               on grid GQC1 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC2 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 10-JAN-1980 00:00
+ 
+          time-dependent data files:
+01-JAN-1980 00:00 -> 10-JAN-1980 00:00    tmp/tagg_reg_1.nc
+ 
+    3> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+               on grid GQC3 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC4 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-JAN-1980 00:00
+ 
+          time-dependent data files:
+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
+ 
+    4> myAgg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+               on grid GQC5 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC6 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-JAN-1980 00:00
+ 
+          time-dependent data files:
+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
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+               on grid GQC7 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC8 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-JAN-1980 00:00
+ 
+          time-dependent data files:
+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
+ 
+    6> myagg8  (default)
+ 
+     T-aggregation of 8 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:80      ...       ...
+               on grid GQC9 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GQC10 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 20-MAR-1980 00:00
+ 
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+ 
+show grid myvar
+    GRID GQC9
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY3     TIME                80 r   01-JAN-1980 00:00    20-MAR-1980 00:00   full
+ normal    E
+ normal    F
+plot/line/sym myvar
+ 
+! read a time-independent field from the first file of the aggregation
+stat mymap
+ 
+             I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]
+             LONGITUDE: 2.5W(-2.5) to 2.5E(362.5)
+             LATITUDE: 82.5S to 82.5N
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: myagg8
+ 
+ Total # of data points: 2409 (73*33*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 11
+ Maximum value: 403
+ Mean    value: 207 (unweighted average)
+ Standard deviation: 97.543
+ 
+! 2/2016 -- reorder deliberately out of order regular files
+define data/agg/t myagg8_disordered1 = tmp/tagg_reg_2.nc, tmp/tagg_reg_1.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
+define data/agg/t myagg8_disordered2 = 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_8.nc, tmp/tagg_reg_7.nc
+show data/files/brief myagg8_disordered1
+     currently SET data sets:
+    7> myagg8_disordered1
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+ 
+show data/files/brief myagg8_disordered2
+     currently SET data sets:
+    8> myagg8_disordered2  (default)
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+ 
+stat/brief T[g=myvar[d=myagg8]] - T[g=myvar[d=myagg8_disordered1]]
+ 
+ Total # of data points: 80 (1*1*1*80*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXLO[g=myvar[d=myagg8]] - TBOXLO[g=myvar[d=myagg8_disordered1]]
+ 
+ Total # of data points: 80 (1*1*1*80*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXHI[g=myvar[d=myagg8]] - TBOXHI[g=myvar[d=myagg8_disordered1]]
+ 
+ Total # of data points: 80 (1*1*1*80*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+cancel data/all
+ 
+! deliberate errors
+set mode ignore
+! try to define the same aggregation again
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+ 
+! try to aggregate with the same file duplicated
+define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc, tmp/tagg_reg_2.nc
+ 
+! try to aggregate a missing file as first file
+define data/agg/t myaggbad = tmp/tagg_no_exist.nc, tmp/tagg_reg_2.nc
+ 
+! try to aggregate a missing file as subsequent file
+define data/agg/t myaggbad = tmp/tagg_reg_1.nc, tmp/tagg_no_exist.nc
+ 
+! try to define an aggregation where there is no time axis in the first file
+tseries myTindepagg = tmp/tagg_reg_no_T.nc
+ 
+! erroneous file 2 with 15 time steps, goes beyond start of file 3
+define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
+ 
+set mode/last ignore
+canc data/all
+ 
+ 
+! --- irregularly-spaced axes ---
+! aggregation of 2 irregular datasets
+ define data/agg/t myagg2 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc
+ 
+! aggregate a longer collection where all are irregular
+define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irreg_3.nc, tmp/tagg_irreg_4.nc,tmp/tagg_irreg_5.nc, tmp/tagg_irreg_6.nc,tmp/tagg_irreg_7.nc, tmp/tagg_irreg_8.nc
+  show data/full
+     currently SET data sets:
+    1> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+               on grid GCV1 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 21-JAN-1980 14:35
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 11-JAN-1980 05:35    tmp/tagg_irreg_1.nc
+12-JAN-1980 06:24 -> 21-JAN-1980 14:35    tmp/tagg_irreg_2.nc
+ 
+    2> myagg8  (default)
+ 
+     T-aggregation of 8 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:80      ...       ...
+               on grid GCV2 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 24-MAR-1980 14:00
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 11-JAN-1980 05:35    tmp/tagg_irreg_1.nc
+12-JAN-1980 06:24 -> 21-JAN-1980 14:35    tmp/tagg_irreg_2.nc
+22-JAN-1980 15:34 -> 01-FEB-1980 00:54    tmp/tagg_irreg_3.nc
+02-FEB-1980 01:59 -> 11-FEB-1980 12:04    tmp/tagg_irreg_4.nc
+12-FEB-1980 13:13 -> 21-FEB-1980 23:52    tmp/tagg_irreg_5.nc
+23-FEB-1980 01:05 -> 03-MAR-1980 12:10    tmp/tagg_irreg_6.nc
+04-MAR-1980 13:26 -> 14-MAR-1980 00:54    tmp/tagg_irreg_7.nc
+15-MAR-1980 02:12 -> 24-MAR-1980 14:00    tmp/tagg_irreg_8.nc
+ 
+  show data myagg2
+     currently SET data sets:
+    1> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+ 
+  show grid/t myvar[d=1]
+    GRID GCV1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_IR1  TIME                20 i   02-JAN-1980 00:00    21-JAN-1980 14:35   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
+       2>  03-JAN-1980 00:20:01  1.01657    02-JAN-1980 12:10:00    2.013911
+       3>  04-JAN-1980 00:47:43  1.020963   03-JAN-1980 12:33:52    3.03314
+       4>  05-JAN-1980 01:20:24  1.023991   04-JAN-1980 13:04:03    4.055838
+       5>  06-JAN-1980 01:56:49  1.026318   05-JAN-1980 13:38:36    5.081123
+       6>  07-JAN-1980 02:36:12  1.028212   06-JAN-1980 14:16:30    6.108474
+       7>  08-JAN-1980 03:18:04  1.029811   07-JAN-1980 14:57:08    7.137548
+       8>  09-JAN-1980 04:02:03  1.031196   08-JAN-1980 15:40:03    8.168097
+       9>  10-JAN-1980 04:47:54  1.032416   09-JAN-1980 16:24:59    9.199939
+      10>  11-JAN-1980 05:35:25  1.033509   10-JAN-1980 17:11:39    10.23293
+      11>  12-JAN-1980 06:24:25  1.034497   11-JAN-1980 17:59:55    11.26696
+      12>  13-JAN-1980 07:14:46  1.0354     12-JAN-1980 18:49:35    12.30192
+      13>  14-JAN-1980 08:06:22  1.036231   13-JAN-1980 19:40:34    13.33776
+      14>  15-JAN-1980 08:59:06  1.037001   14-JAN-1980 20:32:44    14.37439
+      15>  16-JAN-1980 09:52:55  1.037717   15-JAN-1980 21:26:01    15.41176
+      16>  17-JAN-1980 10:47:44  1.038388   16-JAN-1980 22:20:20    16.44982
+      17>  18-JAN-1980 11:43:29  1.039019   17-JAN-1980 23:15:36    17.48853
+      18>  19-JAN-1980 12:40:06  1.039613   19-JAN-1980 00:11:48    18.52786
+      19>  20-JAN-1980 13:37:34  1.040176   20-JAN-1980 01:08:50    19.56776
+      20>  21-JAN-1980 14:35:49  1.04071    21-JAN-1980 02:06:42    20.60821
+  show grid myvar[d=2]
+    GRID GCV2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_IR2  TIME                80 i   02-JAN-1980 00:00    24-MAR-1980 14:00   full
+ normal    E
+ normal    F
+  plot/line/sym myvar[d=2],myvar[d=1]
+ 
+! aggregate collection that mixes regular (file 2) with irregular
+define data/agg/t myagg4 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2_reg.nc,tmp/tagg_irreg_3.nc, tmp/tagg_irreg_4.nc
+  show grid/t myvar[d=myagg4]
+    GRID GCV3
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_IR3  TIME                40 i   02-JAN-1980 00:00    11-FEB-1980 12:04   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
+       2>  03-JAN-1980 00:20:01  1.01657    02-JAN-1980 12:10:00    2.013911
+       3>  04-JAN-1980 00:47:43  1.020963   03-JAN-1980 12:33:52    3.03314
+       4>  05-JAN-1980 01:20:24  1.023991   04-JAN-1980 13:04:03    4.055838
+       5>  06-JAN-1980 01:56:49  1.026318   05-JAN-1980 13:38:36    5.081123
+       6>  07-JAN-1980 02:36:12  1.028212   06-JAN-1980 14:16:30    6.108474
+       7>  08-JAN-1980 03:18:04  1.029811   07-JAN-1980 14:57:08    7.137548
+       8>  09-JAN-1980 04:02:03  1.031196   08-JAN-1980 15:40:03    8.168097
+       9>  10-JAN-1980 04:47:54  1.032416   09-JAN-1980 16:24:59    9.199939
+      10>  11-JAN-1980 05:35:25  0.9000306  10-JAN-1980 17:11:39    10.23293
+      11>  12-JAN-1980 00:00:00  0.883535   11-JAN-1980 14:47:42    11
+      12>  13-JAN-1980 00:00:00  1          12-JAN-1980 12:00:00    12
+      13>  14-JAN-1980 00:00:00  1          13-JAN-1980 12:00:00    13
+      14>  15-JAN-1980 00:00:00  1          14-JAN-1980 12:00:00    14
+      15>  16-JAN-1980 00:00:00  1          15-JAN-1980 12:00:00    15
+      16>  17-JAN-1980 00:00:00  1          16-JAN-1980 12:00:00    16
+      17>  18-JAN-1980 00:00:00  1          17-JAN-1980 12:00:00    17
+      18>  19-JAN-1980 00:00:00  1          18-JAN-1980 12:00:00    18
+      19>  20-JAN-1980 00:00:00  1          19-JAN-1980 12:00:00    19
+      20>  21-JAN-1980 00:00:00  1.324591   20-JAN-1980 12:00:00    20
+      21>  22-JAN-1980 15:34:49  1.345324   21-JAN-1980 19:47:24    21.64918
+      22>  23-JAN-1980 16:34:32  1.041703   23-JAN-1980 04:04:40    22.69065
+      23>  24-JAN-1980 17:34:55  1.042167   24-JAN-1980 05:04:43    23.73259
+      24>  25-JAN-1980 18:35:58  1.042611   25-JAN-1980 06:05:27    24.77498
+      25>  26-JAN-1980 19:37:38  1.043037   26-JAN-1980 07:06:48    25.81781
+      26>  27-JAN-1980 20:39:55  1.043446   27-JAN-1980 08:08:47    26.86106
+      27>  28-JAN-1980 21:42:46  1.04384    28-JAN-1980 09:11:20    27.9047
+      28>  29-JAN-1980 22:46:10  1.04422    29-JAN-1980 10:14:28    28.94874
+      29>  30-JAN-1980 23:50:07  1.044587   30-JAN-1980 11:18:09    29.99314
+      30>  01-FEB-1980 00:54:35  1.044941   31-JAN-1980 12:22:21    31.03791
+      31>  02-FEB-1980 01:59:33  1.045284   01-FEB-1980 13:27:04    32.08303
+      32>  03-FEB-1980 03:05:00  1.045616   02-FEB-1980 14:32:16    33.12848
+      33>  04-FEB-1980 04:10:55  1.045938   03-FEB-1980 15:37:58    34.17426
+      34>  05-FEB-1980 05:17:18  1.04625    04-FEB-1980 16:44:07    35.22035
+      35>  06-FEB-1980 06:24:07  1.046554   05-FEB-1980 17:50:43    36.26676
+      36>  07-FEB-1980 07:31:22  1.046849   06-FEB-1980 18:57:45    37.31346
+      37>  08-FEB-1980 08:39:03  1.047135   07-FEB-1980 20:05:13    38.36045
+      38>  09-FEB-1980 09:47:07  1.047415   08-FEB-1980 21:13:05    39.40773
+      39>  10-FEB-1980 10:55:36  1.047687   09-FEB-1980 22:21:22    40.45528
+      40>  11-FEB-1980 12:04:28  1.047821   10-FEB-1980 23:30:02    41.50311
+ 
+! deliberate error -- aggregated file out of order
+set mode ignore
+define data/agg/t myagg3 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_3.nc,tmp/tagg_irreg_2.nc
+set mode/last ignore
+canc data/all
+ 
+! --- aggregation from T0-varying files ---
+! aggregate two
+  define data/agg/t myagg2 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc
+ 
+! aggregate several
+define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/tagg_T0varying_3.nc, tmp/tagg_T0varying_4.nc,tmp/tagg_T0varying_5.nc
+  show data/full
+     currently SET data sets:
+    1> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+               on grid GBN1 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 09-JAN-1980 00:00
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_T0varying_1.nc
+06-JAN-1980 00:00 -> 09-JAN-1980 00:00    tmp/tagg_T0varying_2.nc
+ 
+    2> myagg8  (default)
+ 
+     T-aggregation of 5 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:20      ...       ...
+               on grid GBN2 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1980 00:00 to 21-JAN-1980 00:00
+ 
+          time-dependent data files:
+02-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_T0varying_1.nc
+06-JAN-1980 00:00 -> 09-JAN-1980 00:00    tmp/tagg_T0varying_2.nc
+10-JAN-1980 00:00 -> 13-JAN-1980 00:00    tmp/tagg_T0varying_3.nc
+14-JAN-1980 00:00 -> 17-JAN-1980 00:00    tmp/tagg_T0varying_4.nc
+18-JAN-1980 00:00 -> 21-JAN-1980 00:00    tmp/tagg_T0varying_5.nc
+ 
+  show data myagg2
+     currently SET data sets:
+    1> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+ 
+  show grid/t myvar[d=1]
+    GRID GBN1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR TIME                 8 r   02-JAN-1980 00:00    09-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1980 00:00:00  1          01-JAN-1980 12:00:00    1
+       2>  03-JAN-1980 00:00:00  1          02-JAN-1980 12:00:00    2
+       3>  04-JAN-1980 00:00:00  1          03-JAN-1980 12:00:00    3
+       4>  05-JAN-1980 00:00:00  1          04-JAN-1980 12:00:00    4
+       5>  06-JAN-1980 00:00:00  1          05-JAN-1980 12:00:00    5
+       6>  07-JAN-1980 00:00:00  1          06-JAN-1980 12:00:00    6
+       7>  08-JAN-1980 00:00:00  1          07-JAN-1980 12:00:00    7
+       8>  09-JAN-1980 00:00:00  1          08-JAN-1980 12:00:00    8
+  show grid myvar[d=2]
+    GRID GBN2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR1 TIME               20 r   02-JAN-1980 00:00    21-JAN-1980 00:00   full
+ normal    E
+ normal    F
+  plot/line/sym myvar[d=2],myvar[d=1]
+ 
+canc data/all
+ 
+! --- aggregations of disjoint, irregularly-sized, T0-varying files ---
+! aggregate two
+  define data/agg/t myagg2 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc
+ 
+ 
+! aggregate several
+define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4.nc,tmp/tagg_disjoint_T0varying_5.nc, tmp/tagg_disjoint_T0varying_6.nc,tmp/tagg_disjoint_T0varying_7.nc, tmp/tagg_disjoint_T0varying_8.nc
+  show data/full
+     currently SET data sets:
+    1> myagg2
+ 
+     T-aggregation of 2 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+               on grid GKQ1 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1981 00:00 to 11-JAN-1982 00:00
+ 
+          time-dependent data files:
+02-JAN-1981 00:00 -> 02-JAN-1981 00:00    tmp/tagg_disjoint_T0varying_1.nc
+02-JAN-1982 00:00 -> 11-JAN-1982 00:00    tmp/tagg_disjoint_T0varying_2.nc
+ 
+    2> myagg8  (default)
+ 
+     T-aggregation of 8 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:62      ...       ...
+               on grid GKQ2 with -1.E+34 for missing data
+             
+ 
+  time range: 02-JAN-1981 00:00 to 11-JAN-1988 00:00
+ 
+          time-dependent data files:
+02-JAN-1981 00:00 -> 02-JAN-1981 00:00    tmp/tagg_disjoint_T0varying_1.nc
+02-JAN-1982 00:00 -> 11-JAN-1982 00:00    tmp/tagg_disjoint_T0varying_2.nc
+02-JAN-1983 00:00 -> 02-JAN-1983 00:00    tmp/tagg_disjoint_T0varying_3.nc
+02-JAN-1984 00:00 -> 11-JAN-1984 00:00    tmp/tagg_disjoint_T0varying_4.nc
+02-JAN-1985 00:00 -> 11-JAN-1985 00:00    tmp/tagg_disjoint_T0varying_5.nc
+02-JAN-1986 00:00 -> 11-JAN-1986 00:00    tmp/tagg_disjoint_T0varying_6.nc
+02-JAN-1987 00:00 -> 11-JAN-1987 00:00    tmp/tagg_disjoint_T0varying_7.nc
+02-JAN-1988 00:00 -> 11-JAN-1988 00:00    tmp/tagg_disjoint_T0varying_8.nc
+ 
+  show data myagg2
+     currently SET data sets:
+    1> myagg2
+ name     title                             I         J         K         L         M         N
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+ 
+  show grid/t myvar[d=1]
+    GRID GKQ1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR TIME                11 i   02-JAN-1981 00:00    11-JAN-1982 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
+       2>  02-JAN-1982 00:00:00  183        03-JUL-1981 12:00:00    366
+       3>  03-JAN-1982 00:00:00  1          02-JAN-1982 12:00:00    367
+       4>  04-JAN-1982 00:00:00  1          03-JAN-1982 12:00:00    368
+       5>  05-JAN-1982 00:00:00  1          04-JAN-1982 12:00:00    369
+       6>  06-JAN-1982 00:00:00  1          05-JAN-1982 12:00:00    370
+       7>  07-JAN-1982 00:00:00  1          06-JAN-1982 12:00:00    371
+       8>  08-JAN-1982 00:00:00  1          07-JAN-1982 12:00:00    372
+       9>  09-JAN-1982 00:00:00  1          08-JAN-1982 12:00:00    373
+      10>  10-JAN-1982 00:00:00  1          09-JAN-1982 12:00:00    374
+      11>  11-JAN-1982 00:00:00  1          10-JAN-1982 12:00:00    375
+  show grid myvar[d=2]
+    GRID GKQ2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
+ normal    E
+ normal    F
+  plot/line/sym/vlim=0:11 myvar[d=2],myvar[d=1]
+ 
+! a few tests of using Ferret string variables to get the names of files
+define data/agg/t listAgg1 = {"tmp/tagg_reg_1.nc", "tmp/tagg_reg_2.nc"}
+show data/files listAgg1
+     currently SET data sets:
+    3> listAgg1  (default)
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+          time-dependent data files:
+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
+ 
+ 
+! define a long aggregation
+let file_list = SPAWN("ls -1 tmp/tagg_reg_?.nc")
+define data/agg/t listAgg2 = file_list
+show data/files listAgg2
+     currently SET data sets:
+    4> listAgg2  (default)
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:90      ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ 
+          time-dependent data files:
+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
+21-JAN-1980 00:00 -> 30-JAN-1980 00:00    tmp/tagg_reg_3.nc
+31-JAN-1980 00:00 -> 09-FEB-1980 00:00    tmp/tagg_reg_4.nc
+10-FEB-1980 00:00 -> 19-FEB-1980 00:00    tmp/tagg_reg_5.nc
+20-FEB-1980 00:00 -> 29-FEB-1980 00:00    tmp/tagg_reg_6.nc
+01-MAR-1980 00:00 -> 10-MAR-1980 00:00    tmp/tagg_reg_7.nc
+11-MAR-1980 00:00 -> 20-MAR-1980 00:00    tmp/tagg_reg_8.nc
+21-MAR-1980 00:00 -> 30-MAR-1980 00:00    tmp/tagg_reg_9.nc
+ 
+ 
+! reorder deliberately out of order file of differing lengths
+define data/agg/t myagg8_disordered3 = tmp/tagg_disjoint_T0varying_2.nc, tmp/tagg_disjoint_T0varying_1.nc,tmp/tagg_disjoint_T0varying_5.nc, tmp/tagg_disjoint_T0varying_4.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_8.nc,tmp/tagg_disjoint_T0varying_7.nc, tmp/tagg_disjoint_T0varying_6.nc
+show data/files/brief myagg8_disordered3
+     currently SET data sets:
+    5> myagg8_disordered3  (default)
+          time-dependent data files:
+02-JAN-1981 00:00 -> 02-JAN-1981 00:00    tmp/tagg_disjoint_T0varying_1.nc
+02-JAN-1982 00:00 -> 11-JAN-1982 00:00    tmp/tagg_disjoint_T0varying_2.nc
+02-JAN-1983 00:00 -> 02-JAN-1983 00:00    tmp/tagg_disjoint_T0varying_3.nc
+02-JAN-1984 00:00 -> 11-JAN-1984 00:00    tmp/tagg_disjoint_T0varying_4.nc
+02-JAN-1985 00:00 -> 11-JAN-1985 00:00    tmp/tagg_disjoint_T0varying_5.nc
+02-JAN-1986 00:00 -> 11-JAN-1986 00:00    tmp/tagg_disjoint_T0varying_6.nc
+02-JAN-1987 00:00 -> 11-JAN-1987 00:00    tmp/tagg_disjoint_T0varying_7.nc
+02-JAN-1988 00:00 -> 11-JAN-1988 00:00    tmp/tagg_disjoint_T0varying_8.nc
+ 
+! ... the same calendar axis, but encoded with the T0 of the first file
+show grid/l=1:8 myvar[d=myagg8]
+    GRID GKQ2
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
+       2>  02-JAN-1982 00:00:00  183        03-JUL-1981 12:00:00    366
+       3>  03-JAN-1982 00:00:00  1          02-JAN-1982 12:00:00    367
+       4>  04-JAN-1982 00:00:00  1          03-JAN-1982 12:00:00    368
+       5>  05-JAN-1982 00:00:00  1          04-JAN-1982 12:00:00    369
+       6>  06-JAN-1982 00:00:00  1          05-JAN-1982 12:00:00    370
+       7>  07-JAN-1982 00:00:00  1          06-JAN-1982 12:00:00    371
+       8>  08-JAN-1982 00:00:00  1          07-JAN-1982 12:00:00    372
+show grid/l=1:8 myvar[d=myagg8_disordered3]
+    GRID GLF1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY_TVAR2 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    -364
+       2>  02-JAN-1982 00:00:00  183        03-JUL-1981 12:00:00    1
+       3>  03-JAN-1982 00:00:00  1          02-JAN-1982 12:00:00    2
+       4>  04-JAN-1982 00:00:00  1          03-JAN-1982 12:00:00    3
+       5>  05-JAN-1982 00:00:00  1          04-JAN-1982 12:00:00    4
+       6>  06-JAN-1982 00:00:00  1          05-JAN-1982 12:00:00    5
+       7>  07-JAN-1982 00:00:00  1          06-JAN-1982 12:00:00    6
+       8>  08-JAN-1982 00:00:00  1          07-JAN-1982 12:00:00    7
+ 
+cancel data/all
+ 
+! deliberate errors
+set mode ignore
+! deliberate error - try to re-use a name already in use
+  define data/agg/t myagg2 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc
+ 
+! deliberate error - the fourth file (*_4_wrong.nc) changes time axis name
+define data/agg/t myagg5_bad = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4_wrong.nc,tmp/tagg_disjoint_T0varying_5.nc
+set mode/last ignore
+ 
+canc data/all
+ 
+! --- aggregations of single timestep files ---
+! define a regular aggregation
+define data/agg/t MYsing_reg_agg6 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_3.nc, tmp/tagg_single_4.nc,tmp/tagg_single_5.nc, tmp/tagg_single_6.nc
+show data/full  MYsing_reg_agg6
+     currently SET data sets:
+    1> MYsing_reg_agg6  (default)
+ 
+     T-aggregation of 6 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:6       ...       ...
+               on grid GMI1 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GMI2 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 06-JAN-1980 00:00
+ 
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+03-JAN-1980 00:00 -> 03-JAN-1980 00:00    tmp/tagg_single_3.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+06-JAN-1980 00:00 -> 06-JAN-1980 00:00    tmp/tagg_single_6.nc
+ 
+show grid/t myvar
+    GRID GMI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY1     TIME                 6 r   01-JAN-1980 00:00    06-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
+       2>  02-JAN-1980 00:00:00  1          01-JAN-1980 12:00:00    28841
+       3>  03-JAN-1980 00:00:00  1          02-JAN-1980 12:00:00    28842
+       4>  04-JAN-1980 00:00:00  1          03-JAN-1980 12:00:00    28843
+       5>  05-JAN-1980 00:00:00  1          04-JAN-1980 12:00:00    28844
+       6>  06-JAN-1980 00:00:00  1          05-JAN-1980 12:00:00    28845
+ 
+! read a time-independent field from the first file of the aggregation
+stat mymap
+ 
+             I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]
+             LONGITUDE: 2.5W(-2.5) to 2.5E(362.5)
+             LATITUDE: 82.5S to 82.5N
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: MYsing_reg_agg6
+ 
+ Total # of data points: 2409 (73*33*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 11
+ Maximum value: 403
+ Mean    value: 207 (unweighted average)
+ Standard deviation: 97.543
+ 
+! define an irregular aggregation
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+show data/full MYsing_irreg_agg4
+     currently SET data sets:
+    2> MYsing_irreg_agg4  (default)
+ 
+     T-aggregation of 4 netCDF files
+ name     title                             I         J         K         L         M         N
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:4       ...       ...
+               on grid GMI3 with -1.E+34 for missing data
+             
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+               on grid GMI4 with -1.E+34 for missing data
+             X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
+ 
+  time range: 01-JAN-1980 00:00 to 05-JAN-1980 00:00
+ 
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+show grid/t myvar
+    GRID GMI3
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TDAY2     TIME                 4 i   01-JAN-1980 00:00    05-JAN-1980 00:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
+       2>  02-JAN-1980 00:00:00  1.5        01-JAN-1980 12:00:00    28841
+       3>  04-JAN-1980 00:00:00  1.5        03-JAN-1980 00:00:00    28843
+       4>  05-JAN-1980 00:00:00  1          04-JAN-1980 12:00:00    28844
+ 
+! 2/2016 - reorder deliberately out of order aggregation of irregular times
+define data/agg/t MYsing_irreg_agg4_disordered1 = tmp/tagg_single_2.nc, tmp/tagg_single_1.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+define data/agg/t MYsing_irreg_agg4_disordered2 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_5.nc, tmp/tagg_single_4.nc
+show data/files/brief
+     currently SET data sets:
+    1> MYsing_reg_agg6
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+03-JAN-1980 00:00 -> 03-JAN-1980 00:00    tmp/tagg_single_3.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+06-JAN-1980 00:00 -> 06-JAN-1980 00:00    tmp/tagg_single_6.nc
+ 
+    2> MYsing_irreg_agg4
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+    3> MYsing_irreg_agg4_disordered1
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+    4> MYsing_irreg_agg4_disordered2  (default)
+          time-dependent data files:
+01-JAN-1980 00:00 -> 01-JAN-1980 00:00    tmp/tagg_single_1.nc
+02-JAN-1980 00:00 -> 02-JAN-1980 00:00    tmp/tagg_single_2.nc
+04-JAN-1980 00:00 -> 04-JAN-1980 00:00    tmp/tagg_single_4.nc
+05-JAN-1980 00:00 -> 05-JAN-1980 00:00    tmp/tagg_single_5.nc
+ 
+stat/brief T[g=myvar[d=MYsing_irreg_agg4]] - T[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+ 
+ Total # of data points: 4 (1*1*1*4*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXLO[g=myvar[d=MYsing_irreg_agg4]] - TBOXLO[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+ 
+ Total # of data points: 4 (1*1*1*4*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+stat/brief TBOXHI[g=myvar[d=MYsing_irreg_agg4]] - TBOXHI[g=myvar[d=MYsing_irreg_agg4_disordered1]]
+ 
+ Total # of data points: 4 (1*1*1*4*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+canc data/all
+ 
+! OPeNDAP test
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
+ !-> IF 1 THEN
+   tseries COADS = http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
+show data COADS
+     currently SET data sets:
+    1> COADS  (default)
+ name     title                             I         J         K         L         M         N
+ AIR      Air Temperature Monthly Mean_da  1:180     1:90      ...       1:36      ...       ...
+ 
+show grid/T air
+    GRID GMW1
+ name       axis              # pts   start                end                 subset
+ LON       LONGITUDE          180mr   1E                   1W                  full
+ LAT       LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME      TIME                36 i   16-JAN-2012 12:00    16-DEC-2014 12:00   full
+ normal    E
+ normal    F
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN-2012 12:00:00  31         01-JAN-2012 00:00:00    77446.5
+       2>  15-FEB-2012 12:00:00  29         01-FEB-2012 00:00:00    77476.5
+       3>  16-MAR-2012 12:00:00  31         01-MAR-2012 00:00:00    77506.5
+       4>  16-APR-2012 00:00:00  30         01-APR-2012 00:00:00    77537
+       5>  16-MAY-2012 12:00:00  31         01-MAY-2012 00:00:00    77567.5
+       6>  16-JUN-2012 00:00:00  30         01-JUN-2012 00:00:00    77598
+       7>  16-JUL-2012 12:00:00  31         01-JUL-2012 00:00:00    77628.5
+       8>  16-AUG-2012 12:00:00  31         01-AUG-2012 00:00:00    77659.5
+       9>  16-SEP-2012 00:00:00  30         01-SEP-2012 00:00:00    77690
+      10>  16-OCT-2012 12:00:00  31         01-OCT-2012 00:00:00    77720.5
+      11>  16-NOV-2012 00:00:00  30         01-NOV-2012 00:00:00    77751
+      12>  16-DEC-2012 12:00:00  31         01-DEC-2012 00:00:00    77781.5
+      13>  16-JAN-2013 12:00:00  31         01-JAN-2013 00:00:00    77812.5
+      14>  15-FEB-2013 00:00:00  28         01-FEB-2013 00:00:00    77842
+      15>  16-MAR-2013 12:00:00  31         01-MAR-2013 00:00:00    77871.5
+      16>  16-APR-2013 00:00:00  30         01-APR-2013 00:00:00    77902
+      17>  16-MAY-2013 12:00:00  31         01-MAY-2013 00:00:00    77932.5
+      18>  16-JUN-2013 00:00:00  30         01-JUN-2013 00:00:00    77963
+      19>  16-JUL-2013 12:00:00  31         01-JUL-2013 00:00:00    77993.5
+      20>  16-AUG-2013 12:00:00  31         01-AUG-2013 00:00:00    78024.5
+      21>  16-SEP-2013 00:00:00  30         01-SEP-2013 00:00:00    78055
+      22>  16-OCT-2013 12:00:00  31         01-OCT-2013 00:00:00    78085.5
+      23>  16-NOV-2013 00:00:00  30         01-NOV-2013 00:00:00    78116
+      24>  16-DEC-2013 12:00:00  31         01-DEC-2013 00:00:00    78146.5
+      25>  16-JAN-2014 12:00:00  31         01-JAN-2014 00:00:00    78177.5
+      26>  15-FEB-2014 00:00:00  28         01-FEB-2014 00:00:00    78207
+      27>  16-MAR-2014 12:00:00  31         01-MAR-2014 00:00:00    78236.5
+      28>  16-APR-2014 00:00:00  30         01-APR-2014 00:00:00    78267
+      29>  16-MAY-2014 12:00:00  31         01-MAY-2014 00:00:00    78297.5
+      30>  16-JUN-2014 00:00:00  30         01-JUN-2014 00:00:00    78328
+      31>  16-JUL-2014 12:00:00  31         01-JUL-2014 00:00:00    78358.5
+      32>  16-AUG-2014 12:00:00  31         01-AUG-2014 00:00:00    78389.5
+      33>  16-SEP-2014 00:00:00  30         01-SEP-2014 00:00:00    78420
+      34>  16-OCT-2014 12:00:00  31         01-OCT-2014 00:00:00    78450.5
+      35>  16-NOV-2014 00:00:00  30         01-NOV-2014 00:00:00    78481
+      36>  16-DEC-2014 12:00:00  31         01-DEC-2014 00:00:00    78511.5
+canc data/all
+ELSE
+ENDIF
+ 
+! "USE file.agg" test
+! test the hack to XEQ_SET which permits "SET DATA file.agg" to metamorphose
+! into "GO file.agg"
+spawn echo "define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc,tmp/tagg_reg_3.nc" > tmp/good_agg.agg
+spawn echo "garbage command syntax" > tmp/bad_agg.agg
+ 
+! deliberate errorrs
+! bad .agg aggregation file
+set mode ignore
+USE "tmp/bad_agg.agg"
+garbage command syntax
+ 
+! irregular aggregation with first file duplicated
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc
+ 
+! irregular aggregation with last file duplicated
+define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc, tmp/tagg_single_5.nc
+ 
+set/last mode ignore
+ 
+! valid syntax to initialize an aggregation
+USE "tmp/good_agg.agg"
+define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc,tmp/tagg_reg_3.nc
+show data/br
+     currently SET data sets:
+    1> myagg3  (default)
+cancel data/all
+*** Running ferret script: bn_unquoted_args.jnl
+[?1034h! bn_unquoted_args.jnl
+! 12/2015 -- a hack change to PPARSE_COMMAND to allow users to omit
+! the quotation marks in the argument(s) of SET DATA, GO and DEFINE SYMBOL
+ 
+! 2/2016 *sh* removed the GO/HELP tests
+ 
+spawn "mkdir -p tmp"
+ 
+! ****** SET DATA TESTS *****
+! make test files
+save/clobber/file="tmp/test1.nc" i[i=1:3] + 1
+save/clobber/file="tmp/test2.nc" i[i=1:3] + 2
+save/clobber/file="tmp/test3.nc" i[i=1:3] + 3
+! generate absolute path
+let dir = SPAWN("pwd")
+define sym use_abs_path = `DIR+"/tmp/test1.nc"`
+ !-> define sym use_abs_path = /home/flat/ksmith/pyferret_dev/bench/tmp/test1.nc
+say ($use_abs_path)
+ !-> MESSAGE/CONTINUE /home/flat/ksmith/pyferret_dev/bench/tmp/test1.nc
+/home/flat/ksmith/pyferret_dev/bench/tmp/test1.nc
+ 
+use tmp/test1.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use "tmp/test1.nc"
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use "tmp/test1.nc"
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use tmp/test1.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc  (default)
+canc data/all
+ 
+use "($use_abs_path)"
+ !-> SET DAT/FORM=CDF "/home/flat/ksmith/pyferret_dev/bench/tmp/test1.nc"
+show data/brief
+     currently SET data sets:
+    1> /home/flat/ksmith/pyferret_dev/bench/tmp/test1.nc  (default)
+canc data/all
+ 
+use ($use_abs_path)
+ !-> SET DAT/FORM=CDF /home/flat/ksmith/pyferret_dev/bench/tmp/test1.nc
+show data/brief
+     currently SET data sets:
+    1> /home/flat/ksmith/pyferret_dev/bench/tmp/test1.nc  (default)
+canc data/all
+ 
+use tmp/test1.nc,tmp/test2.nc,tmp/test3.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc
+    2> tmp/test2.nc
+    3> tmp/test3.nc  (default)
+canc data/all
+ 
+use tmp/test1.nc,"tmp/test2.nc", tmp/test3.nc
+show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc
+    2> tmp/test2.nc
+    3> tmp/test3.nc  (default)
+canc data/all
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+  use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+  show data/brief
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+  canc data/all
+  use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  show data/brief
+     currently SET data sets:
+    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+  canc data/all
+  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  show data/brief
+     currently SET data sets:
+    1> tmp/test1.nc
+    2> tmp/test2.nc
+    3> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+  canc data/all
+ELSE
+ENDIF
+ 
+! deliberate errors
+! erroneous qualifier with no white space detected
+set mode ignore
+set data/erroneous tmp/test1.nc
+ 
+! erroneous qualifier with white space detected
+set data /erroneous tmp/test1.nc
+ 
+! erroneous qualifier with comma treated as an invalid filename
+set data /erroneous, tmp/test1.nc
+ 
+can mode ignore
+ 
+canc data/all
+ 
+ 
+! ****** GO script tests *****
+! make a dummy GO file for testing
+spawn rm -f tmp/dummy.jnl
+spawn echo "say hello" >tmp/dummy.jnl
+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" $7"7-n/a" $8"8-n/a"' > tmp/testMe.jnl
+ 
+! generate absolute path
+let dir = SPAWN("pwd")
+define sym abs_path = `DIR+"/tmp/testMe.jnl"`
+ !-> define sym abs_path = /home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl
+say ($abs_path)
+ !-> MESSAGE/CONTINUE /home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl
+/home/flat/ksmith/pyferret_dev/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"
+ !-> 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 "tmp/testMe.jnl"
+say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
+ !-> MESSAGE/CONTINUE 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+ 
+go ($abs_path)
+ !-> go /home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl
+say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
+ !-> MESSAGE/CONTINUE 1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+1-n/a  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+ 
+go "($abs_path)"
+ !-> go "/home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl"
+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 tmp/testMe 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 "tmp/testMe" 5 hello "bye" "/quoted_path" /unquoted_path
+say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
+ !-> MESSAGE/CONTINUE 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
+5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
+ 
+go ($abs_path) 5 hello "bye" "/quoted_path" /unquoted_path
+ !-> go /home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl 5 hello "bye" "/quoted_path" /unquoted_path
+say $1"1-n/a"  $2"2-n/a"  $3"3-n/a"  $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
+ !-> MESSAGE/CONTINUE 5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
+5  hello  bye  /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
+ 
+go "($abs_path)" 5 hello "bye" "/quoted_path" /unquoted_path
+ !-> go "/home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl" 5 hello "bye" "/quoted_path" /unquoted_path
+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
+ 
+! test GO/HELP
+! 2/2016 - commented these tests out, tho they work fine.   GO/HELP
+!          apparently runs asynchronously with the bench logging (why?)
+!          This results in the placement of the GO/HELP output shifting in
+!          the benchmark output log -- a hassle when comparing benchmarks
+!go/help tmp/testMe
+!go /help tmp/testMe
+!go/help "tmp/testMe"
+!go/help ($abs_path)
+!go/help "($abs_path)"
+ 
+! a few tests the slipped through the first time
+GO tmp/testMe POLYGON/KEY/lev=20 xpts,ypts,sst,star
+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 POLYGON/KEY/lev=20  xpts  ypts  sst star 6-n/a 7-n/a 8-n/a
+POLYGON/KEY/lev=20  xpts  ypts  sst star 6-n/a 7-n/a 8-n/a
+go "tmp/testMe.jnl" /home/users/tmap/ferret/linux/fer_dsets/data/coads_climatology.cdf
+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 /home/users/tmap/ferret/linux/fer_dsets/data/coads_climatology.cdf  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+/home/users/tmap/ferret/linux/fer_dsets/data/coads_climatology.cdf  2-n/a  3-n/a  4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
+if 1 then let/quiet mytestvar = whatever
+sh var mytestvar
+ MYTESTVAR = WHATEVER
+ 
+ 
+set mode ignore
+go/garbage tmp/testMe
+go/garbage "tmp/testMe"
+go/garbage ($abs_path)
+go/garbage "($abs_path)"
+set mode/last ignore
+ 
+ 
+*** Running ferret script: bn_long_lists.jnl
+[?1034h! bn_long_lists.jnl
+! See ticket 2337
+!
+! Increase command-line buffer by a factor of 10, to accomodate long lists
+! defined in the variable definition.
+! Also allow for more items in the list.
+ 
+! 2/2016, backed off the extra-long buffer, but keep these tests, on shortened variables.
+ 
+! This one gets its Title truncated
+ 
+let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc"}
+ 
+let longlist = {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0}
+ 
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     LONGLIST = {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8 [...]
+     FILE_LIST = {"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmo [...]
+ 
+! do them in repeat loop
+ 
+repeat/range=1:4:1/name=q (let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0012.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0013.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0014.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0015.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0016.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0017.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0018.t_surf.nc",\
+} )
+!-> REPEAT: Q:1
+!-> REPEAT: Q:2
+!-> REPEAT: Q:3
+!-> REPEAT: Q:4
+ 
+! Intentional errors:
+! Make them longer
+ 
+set mode ignore
+ 
+! Line length still under 2048, but more items than 1000,
+! issues a NOTE that they're not all parsed.
+ 
+let a={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,\
+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0}
+load a
+ 
+! command line too long
+ 
+let file_list = {\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0001.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0002.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0003.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0004.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0005.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0006.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0007.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0008.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0009.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0010.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0011.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0012.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0013.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0014.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0015.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0016.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0017.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0018.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0019.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0022.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0023.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0024.t_surf.nc",\
+"/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0025.t_surf.nc",\}
+ 
+set mode/last ignore
+*** Running ferret script: bn_show_uvar_grid.jnl
+[?1034h! bn_show_uvar_grid.jnl
+! Add notes to the output of SHOW GRID for variables and expressions
+! indicate compressed axes, point subsets and subset ranges.
+! For grid changing functions just mark axis as such
+!
+! 12/17/2015 *acm*
+! 12/18 2015 *acm* Add constant and constant-array variables,
+!                  and modulo axis request on more than full range
+ 
+use coads_climatology
+show grid sst[x=240:320,y=0,t=@ave]
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            39 pts
+ COADSY    LATITUDE            90 r   89S                  89N                 1 pt
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
+ normal    E
+ normal    F
+ 
+! Modulo axes ask for superset
+show grid sst[x=0:540,L=1:15]
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            269 pts
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        14 pts
+ normal    E
+ normal    F
+ 
+! Constant: full abstract grid
+show grid 1
+    GRID ABSTRACT
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              full
+ ABSTRACT  Y             99999999 r   1                    1.E+08              full
+ ABSTRACT  Z             99999999 r   1                    1.E+08              full
+ ABSTRACT  T             99999999 r   1                    1.E+08              full
+ ABSTRACT  E             99999999 r   1                    1.E+08              full
+ ABSTRACT  F             99999999 r   1                    1.E+08              full
+ 
+! Constant-array
+show grid {1}
+    GRID XABSTRACT
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              1 pt
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+let var = {1,2,4,8}  ! Note that show grid {1,2,4,8} fails: bug
+show grid var
+    GRID XABSTRACT
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              3 pts
+ normal    Y
+ normal    Z
+ normal    T
+ normal    E
+ normal    F
+ 
+! but don't show any user-var grid info if they just ask for the grid by name
+show grid `sst,return=grid`
+ !-> show grid GSQ1
+    GRID GSQ1
+ name       axis              # pts   start                end
+ COADSX    LONGITUDE          180mr   21E                  19E(379)
+ COADSY    LATITUDE            90 r   89S                  89N
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
+ normal    E
+ normal    F
+ 
+! grid of last variable loaded
+load sst[x=240,y=@iin,t=@ave]
+show grid
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid GSQ1
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
+ normal    E
+ normal    F
+ 
+! Result grid is full grid
+let var = sst[L=@ave] - sst[x=@max] - sst[y=0]
+show grid var
+    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
+ normal    E
+ normal    F
+ 
+! transform on single-point range is equiv. to single-point subset
+ 
+cancel mode interpolate  ! otherwise single-pt range fails
+let var = sst[X=30 at max]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+set mode/last interpolate
+let var = sst[X=30:30.1 at max]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+ 
+! dynamic grid
+let var = sst[y=-10:10:.1,l=1,x=160e]
+show grid var
+    GRID (G002)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX005)   LATITUDE           201 r   10S                  10N                 200 pts
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
+ normal    E
+ normal    F
+ 
+! striding
+show grid sst[i=1:180:3,j=1:90:2]
+    GRID (G003)
+ name       axis              # pts   start                end                 subset
+ (AX006)   LONGITUDE           60 r   21E                  15E(375)            59 pts
+ (AX007)   LATITUDE            45 r   89S                  87N                 44 pts
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+ 
+! regridding
+ 
+use coads_vwnd
+define axis/t=1-jan-1980:31-dec-1982:1/units=days dax
+let vwnd_days = vwnd[gt=dax,t=1-jun-1982:15-jul-1982]
+sh grid vwnd_days
+    GRID (G003)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ DAX       TIME              1096 r   01-JAN-1980 00:00    31-DEC-1982 00:00   44 pts
+ normal    E
+ normal    F
+ 
+let vwnd_clim = vwnd[gt=month_irreg at mod]
+sh grid vwnd_clim[L=4:9]
+    GRID (G005)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49        5 pts
+ normal    E
+ normal    F
+ 
+can dat/all
+use coads_climatology
+ 
+! non-compressing transforms
+ 
+let var = sst[y=@iin]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 full
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+ 
+let var = sst[y=-30:30 at iin]
+show grid var
+    GRID GSQ1
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            full
+ COADSY    LATITUDE            90 r   89S                  89N                 29 pts
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
+ normal    E
+ normal    F
+ 
+use levitus_3d_subset
+let var = temp[z=@weq:20]
+show grid var
+    GRID GAO1
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                full
+ normal    T
+ normal    E
+ normal    F
+ 
+let var = temp[z=1:120 at weq:20]
+show grid var
+    GRID GAO1
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                6 pts
+ normal    T
+ normal    E
+ normal    F
+ 
+ 
+! grid-changing functions
+can dat/all
+use levitus_3d_subset
+let depth =  Z[G=TEMP]+ 0*TEMP[K=1]
+let depth_rev = zreverse(depth)
+show grid depth_rev
+    GRID (G004)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ABSTRACT  Z             99999999 r   1                    1.E+08              (axis from grid-changing func)
+ normal    T
+ normal    E
+ normal    F
+ 
+DEFINE AXIS/t=1-Jan-1990:31-Dec-1990:24/t0=1-jan-1980 dayt
+let tpts = t[gt=dayt]
+LET sample_function = sin(0.5*tpts - 6.)/2. - cos(0.3*tpts)
+ 
+show grid ffta(sample_function)
+    GRID (G003)
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ (AX002)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
+ normal    E
+ normal    F
+ 
+show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
+    GRID (G003)
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ (AX001)   T (CYC/HOURS)       76 r   0.00027412           0.020833            (axis from grid-changing func)
+ normal    E
+ normal    F
+ 
+show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
+    GRID (G005)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                3 pts
+ (AX002)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
+ normal    E
+ normal    F
+ 
+can dat/all
+ 
+! auxiliary regridding
+ 
+use levitus_3d_subset.nc
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+let  TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
+ 
+sh grid tempz
+    GRID (G002)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX002)   Z                    5 r   100                  500                 full
+ normal    T
+ normal    E
+ normal    F
+sh grid tempz[z=100:400]
+    GRID (G002)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ (AX002)   Z                    5 r   100                  500                 3 pts
+ normal    T
+ normal    E
+ normal    F
+ 
+! and with a grid-changing function thrown in
+ 
+use levitus_3d_subset.nc
+LET Zpts = Z[Z=100:500:100]
+DEFINE AXIS/z/units=meters zax = zpts
+LET/D=levitus_3d_subset rvdepth  = rvdepth0[gz=temp at asn]
+LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
+LET rvtemp0 = ZREVERSE(temp)
+LET rvtemp  = rvtemp0[gz=temp at asn]
+LET rvdepth0 = ZREVERSE(depth)
+LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
+show grid rvtempzax
+    GRID (G002)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
+ normal    T
+ normal    E
+ normal    F
+ 
+! gc func: limits are hidden so a subset not seen
+ 
+LET rvtempzax = rvtemp[gz(rvdepth)=zax]
+show grid rvtempzax[z=100:300]
+    GRID (G002)
+ name       axis              # pts   start                end                 subset
+ XAXLEVITR101_102 LONGITUDE     2mr   120.5E               121.5E              full
+ YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
+ ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
+ normal    T
+ normal    E
+ normal    F
+*** Running ferret script: bn_aggregate_f.jnl
+[?1034h! bn_aggregate_f.F
+! 12/2015 *sh*
+! 1/2016 *sh* added implicit naming of aggregation from script filename
+ 
+! exercise FMRC aggregations
+ 
+spawn "mkdir -p tmp"     ! tmp directory t store files
+ 
+! *** create an artificial forecast model run collection ***
+ 
+! a 20x20 lat-long region
+define axis/x=140e:160e:1 xax
+define axis/y=20n:40n:1 yax
+ 
+! a 20 year monthly axis starting in Jan 1950
+LET start_year = 1950
+LET nyears = 20
+LET indices = L[L=1:`nyears*12`]
+ !-> DEFINE VARIABLE indices = L[L=1:240]
+LET month = MOD(indices-1,12)+1
+LET year = start_year + INT((indices-1)/12)
+DEFINE AXIS/UNITS=days/T0=1-jan-1900/EDGES truemonth = DAYS1900(year,month,1)
+ 
+! define a moving field with errors increasing from a given forecast date
+let vy = 1/500      ! speed that forecast structure deviates from truth
+!let vx = 1/300
+let vx = (1+(T[gt=truemonth]-tstart)/2000)* 1/300
+let xt = x[gx=xax]-vx*T[gt=truemonth]
+let yt = y[gy=yax]-vy*T[gt=truemonth]
+let field = COS((xt-150)/5)*COS((yt-30)/5)
+let fcst = field + fcst_error
+let static_error = SIN((x[gx=xax]-140)/5)*SIN((y[gy=yax]-20)/5) + RANDU(x[gx=xax]+y[gy=yax])
+let structure_drift = (t[gt=truemonth]-tstart)/5000 * static_error
+let random_error = (t[gt=truemonth]-tstart)/2000 * RANDU(t[gt=truemonth]+x[gx=xax]+y[gy=yax])
+let fcst_error = structure_drift + random_error
+let/title="another variable" fcst_2 = fcst + 2
+ 
+! every 3 months another 2-year forecast
+repeat/name=fdate/range=1:31:3 (let tstart = t[gt=truemonth,l=`fdate`];save/clobber/file="tmp/fcst_`(fdate-1)/3+1`.nc"/l=`fdate`:`fdate+23` fcst,  fcst_2)
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_1.nc"/l=1:24 fcst,  fcst_2
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_2.nc"/l=4:27 fcst,  fcst_2
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_3.nc"/l=7:30 fcst,  fcst_2
+!-> REPEAT: FDATE:10
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=10]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_4.nc"/l=10:33 fcst,  fcst_2
+!-> REPEAT: FDATE:13
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=13]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_5.nc"/l=13:36 fcst,  fcst_2
+!-> REPEAT: FDATE:16
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=16]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_6.nc"/l=16:39 fcst,  fcst_2
+!-> REPEAT: FDATE:19
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=19]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_7.nc"/l=19:42 fcst,  fcst_2
+!-> REPEAT: FDATE:22
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=22]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_8.nc"/l=22:45 fcst,  fcst_2
+!-> REPEAT: FDATE:25
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=25]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_9.nc"/l=25:48 fcst,  fcst_2
+!-> REPEAT: FDATE:28
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=28]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_10.nc"/l=28:51 fcst,  fcst_2
+!-> REPEAT: FDATE:31
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=31]
+ !-> LIST/FORMAT=CDF/clobber/file="tmp/fcst_11.nc"/l=31:54 fcst,  fcst_2
+ 
+! a couple of long (3-year) forecasts
+let tstart = t[gt=truemonth,l=1]
+save/clobber/file="tmp/long_fcst_1.nc"/l=1:36 fcst,fcst_2   ! replaces file 1
+let tstart = t[gt=truemonth,l=16]
+save/clobber/file="tmp/long_fcst_6.nc"/l=16:52 fcst,fcst_2  ! replaces file 6
+ 
+! files lacking the second variable
+let tstart = t[gt=truemonth,l=1]
+save/clobber/file="tmp/one_var_fcst_1.nc"/l=1:24 fcst   ! alternative of file 1
+let tstart = t[gt=truemonth,l=16]
+save/clobber/file="tmp/one_var_fcst_6.nc"/l=16:39 fcst  ! alternative of file 6
+ 
+! files that violate the sequence
+save/clobber/file="tmp/consecutive_month_fcst.nc"/l=5:28 fcst, fcst_2
+! shift the time interpretation by 3 days through altered T0
+DEFINE AXIS/UNITS=days/T0=4-jan-1900/EDGES truemonth = DAYS1900(year,month,1)
+save/clobber/file="tmp/irregular_start_time_fcst.nc"/l=6:29 fcst, fcst_2
+ 
+cancel variables/all
+ 
+! ***** end of FMRC file creation ****************
+ 
+! define a complete FMRC aggregation
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+list files  ! notice that they are not properly ordered
+             VARIABLE : SPAWN("ls -1 tmp/fcst_*.nc")
+             SUBSET   : 11 points (X)
+ 1    /  1:"tmp/fcst_10.nc"
+ 2    /  2:"tmp/fcst_11.nc"
+ 3    /  3:"tmp/fcst_1.nc" 
+ 4    /  4:"tmp/fcst_2.nc" 
+ 5    /  5:"tmp/fcst_3.nc" 
+ 6    /  6:"tmp/fcst_4.nc" 
+ 7    /  7:"tmp/fcst_5.nc" 
+ 8    /  8:"tmp/fcst_6.nc" 
+ 9    /  9:"tmp/fcst_7.nc" 
+ 10   / 10:"tmp/fcst_8.nc" 
+ 11   / 11:"tmp/fcst_9.nc" 
+fmrc my_fmrc = files
+show data/brief    ! note that member files are hidden
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+show data/files my_fmrc
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:11
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1 : tmp/fcst_1.nc
+      2 : tmp/fcst_2.nc
+      3 : tmp/fcst_3.nc
+      4 : tmp/fcst_4.nc
+      5 : tmp/fcst_5.nc
+      6 : tmp/fcst_6.nc
+      7 : tmp/fcst_7.nc
+      8 : tmp/fcst_8.nc
+      9 : tmp/fcst_9.nc
+      10: tmp/fcst_10.nc
+      11: tmp/fcst_11.nc
+show data/attr my_fmrc
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        7    F       my_fmrc
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ FCST                  FLOAT     long_name       CHAR        18   T       FIELD + FCST_ERROR
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        20   T       RUN TF_TIMES YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ TF_TIMES              FLOAT     long_name       CHAR        25   T       Forecast time step matrix
+                                 units           CHAR        31   T       days since 01-JAN-1900 00:00:00
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 _CoordinateAxisType
+                                                 CHAR        4    T       Time
+                                 calendar        CHAR        9    T       GREGORIAN
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        25   T       TF_CAL_F TF_TIMES YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ 
+! plot and list the aggregation
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                1950    1950    1950    1950    1951    1951    1951    1951    1952    1952    1952  
+                 1       2       3       4       5       6       7       8       9      10      11
+ 15.2  /  1:  0.3308  0.3001  0.2668  0.2317  0.1953  0.1593  0.1222  0.0851  0.0486  0.0138 -0.0199
+ 45.6  /  2:  0.3453  0.2965  0.2624  0.2240  0.1894  0.1504  0.1121  0.0863  0.0525  0.0196 -0.0167
+ 76    /  3:  0.3319  0.3091  0.2654  0.2324  0.1761  0.1559  0.1246  0.0670  0.0344  0.0205 -0.0157
+ 106.4 /  4:  0.3184  0.2979  0.2596  0.2171  0.1555  0.1280  0.1215  0.0854  0.0421  0.0447  0.0361
+ 136.8 /  5:  0.3160  0.2501  0.2424  0.1723  0.1347  0.1038  0.0878  0.0543  0.0703  0.0260  0.0392
+ 167.2 /  6:  0.2888  0.1865  0.1544  0.1889  0.1184  0.0888  0.0830  0.0453  0.0910  0.0881  0.0345
+ 197.5 /  7:  0.1718  0.1641  0.1848  0.1604  0.1176  0.1330  0.0444  0.0940  0.0787  0.0613  0.1458
+ 227.9 /  8:  0.1266  0.1875  0.0983  0.0971  0.0576  0.0528  0.1196  0.0732  0.1283  0.1029  0.1147
+ 258.3 /  9:  0.1416  0.1048  0.0792  0.1302  0.1278  0.0588  0.1380  0.1241  0.1065  0.1050  0.2176
+ 288.7 / 10:  0.1275  0.1034  0.0772  0.1416  0.0450  0.1201  0.1679  0.2024  0.1395  0.2275  0.1590
+ 319.1 / 11:  0.0385  0.0194  0.0739  0.1482  0.1247  0.1833  0.1287  0.1830  0.1406  0.2100  0.2537
+ 349.5 / 12: -0.0359  0.0085  0.0426  0.0578  0.0799  0.1691  0.1258  0.2193  0.2261  0.2005  0.2238
+ 379.9 / 13: -0.0170  0.0135  0.0329  0.0698  0.1096  0.0967  0.2150  0.3087  0.2492  0.3527  0.3197
+ 410.3 / 14:  0.0479  0.1403 -0.0088  0.0596  0.1560  0.1085  0.2104  0.1930  0.2231  0.4187  0.3650
+ 440.7 / 15:  0.1228  0.0949  0.1626  0.1480  0.1623  0.2006  0.1533  0.2938  0.3674  0.2957  0.4216
+ 471.1 / 16: -0.0072  0.1918  0.0258  0.1213  0.2667  0.1604  0.2374  0.3573  0.4414  0.3070  0.3765
+ 501.5 / 17:  0.0518  0.0510  0.0654  0.1734  0.2131  0.1814  0.2729  0.3551  0.4522  0.3879  0.4448
+ 531.8 / 18:  0.0007  0.1034  0.0886  0.2906  0.2992  0.1942  0.3882  0.3758  0.2891  0.2431  0.2604
+ 562.2 / 19:  0.1838  0.1825  0.3120  0.2456  0.2396  0.2520  0.4347  0.2802  0.3323  0.1989  0.2438
+ 592.6 / 20:  0.1726  0.2160  0.3391  0.3763  0.1957  0.1832  0.2019  0.1743  0.4185  0.4028  0.4223
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 54 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         1950    1950    1950    1950    1951    1951    1951    1951    1952    1952    1952  
+                          1       2       3       4       5       6       7       8       9      10      11
+ 16-JAN-1950 12 /  1:  0.3308    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.3453    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.3319    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.3184  0.3001    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.3160  0.2965    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.2888  0.3091    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.1718  0.2979  0.2668    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.1266  0.2501  0.2624    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.1416  0.1865  0.2654    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.1275  0.1641  0.2596  0.2317    ....    ....    ....    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0385  0.1875  0.2424  0.2240    ....    ....    ....    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12: -0.0359  0.1048  0.1544  0.2324    ....    ....    ....    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13: -0.0170  0.1034  0.1848  0.2171  0.1953    ....    ....    ....    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0479  0.0194  0.0983  0.1723  0.1894    ....    ....    ....    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.1228  0.0085  0.0792  0.1889  0.1761    ....    ....    ....    ....    ....    ....
+ 16-APR-1951 00 / 16: -0.0072  0.0135  0.0772  0.1604  0.1555  0.1593    ....    ....    ....    ....    ....
+ 16-MAY-1951 12 / 17:  0.0518  0.1403  0.0739  0.0971  0.1347  0.1504    ....    ....    ....    ....    ....
+ 16-JUN-1951 00 / 18:  0.0007  0.0949  0.0426  0.1302  0.1184  0.1559    ....    ....    ....    ....    ....
+ 16-JUL-1951 12 / 19:  0.1838  0.1918  0.0329  0.1416  0.1176  0.1280  0.1222    ....    ....    ....    ....
+ 16-AUG-1951 12 / 20:  0.1726  0.0510 -0.0088  0.1482  0.0576  0.1038  0.1121    ....    ....    ....    ....
+ 16-SEP-1951 00 / 21:  0.3655  0.1034  0.1626  0.0578  0.1278  0.0888  0.1246    ....    ....    ....    ....
+ 16-OCT-1951 12 / 22:  0.3193  0.1825  0.0258  0.0698  0.0450  0.1330  0.1215  0.0851    ....    ....    ....
+ 16-NOV-1951 00 / 23:  0.1829  0.2160  0.0654  0.0596  0.1247  0.0528  0.0878  0.0863    ....    ....    ....
+ 16-DEC-1951 12 / 24:  0.4273  0.3928  0.0886  0.1480  0.0799  0.0588  0.0830  0.0670    ....    ....    ....
+ 16-JAN-1952 12 / 25:    ....  0.2804  0.3120  0.1213  0.1096  0.1201  0.0444  0.0854  0.0486    ....    ....
+ 15-FEB-1952 12 / 26:    ....  0.2155  0.3391  0.1734  0.1560  0.1833  0.1196  0.0543  0.0525    ....    ....
+ 16-MAR-1952 12 / 27:    ....  0.2246  0.2519  0.2906  0.1623  0.1691  0.1380  0.0453  0.0344    ....    ....
+ 16-APR-1952 00 / 28:    ....    ....  0.2021  0.2456  0.2667  0.0967  0.1679  0.0940  0.0421  0.0138    ....
+ 16-MAY-1952 12 / 29:    ....    ....  0.3907  0.3763  0.2131  0.1085  0.1287  0.0732  0.0703  0.0196    ....
+ 16-JUN-1952 00 / 30:    ....    ....  0.1899  0.4073  0.2992  0.2006  0.1258  0.1241  0.0910  0.0205    ....
+ 16-JUL-1952 12 / 31:    ....    ....    ....  0.3234  0.2396  0.1604  0.2150  0.2024  0.0787  0.0447 -0.0199
+ 16-AUG-1952 12 / 32:    ....    ....    ....  0.3334  0.1957  0.1814  0.2104  0.1830  0.1283  0.0260 -0.0167
+ 16-SEP-1952 00 / 33:    ....    ....    ....  0.2259  0.2331  0.1942  0.1533  0.2193  0.1065  0.0881 -0.0157
+ 16-OCT-1952 12 / 34:    ....    ....    ....    ....  0.4350  0.2520  0.2374  0.3087  0.1395  0.0613  0.0361
+ 16-NOV-1952 00 / 35:    ....    ....    ....    ....  0.4583  0.1832  0.2729  0.1930  0.1406  0.1029  0.0392
+ 16-DEC-1952 12 / 36:    ....    ....    ....    ....  0.4633  0.3565  0.3882  0.2938  0.2261  0.1050  0.0345
+ 16-JAN-1953 12 / 37:    ....    ....    ....    ....    ....  0.2654  0.4347  0.3573  0.2492  0.2275  0.1458
+ 15-FEB-1953 00 / 38:    ....    ....    ....    ....    ....  0.3712  0.2019  0.3551  0.2231  0.2100  0.1147
+ 16-MAR-1953 12 / 39:    ....    ....    ....    ....    ....  0.3677  0.2477  0.3758  0.3674  0.2005  0.2176
+ 16-APR-1953 00 / 40:    ....    ....    ....    ....    ....    ....  0.3270  0.2802  0.4414  0.3527  0.1590
+ 16-MAY-1953 12 / 41:    ....    ....    ....    ....    ....    ....  0.1943  0.1743  0.4522  0.4187  0.2537
+ 16-JUN-1953 00 / 42:    ....    ....    ....    ....    ....    ....  0.3242  0.1867  0.2891  0.2957  0.2238
+ 16-JUL-1953 12 / 43:    ....    ....    ....    ....    ....    ....    ....  0.3779  0.3323  0.3070  0.3197
+ 16-AUG-1953 12 / 44:    ....    ....    ....    ....    ....    ....    ....  0.2493  0.4185  0.3879  0.3650
+ 16-SEP-1953 00 / 45:    ....    ....    ....    ....    ....    ....    ....  0.0767  0.1507  0.2431  0.4216
+ 16-OCT-1953 12 / 46:    ....    ....    ....    ....    ....    ....    ....    ....  0.3272  0.1989  0.3765
+ 16-NOV-1953 00 / 47:    ....    ....    ....    ....    ....    ....    ....    ....  0.3700  0.4028  0.4448
+ 16-DEC-1953 12 / 48:    ....    ....    ....    ....    ....    ....    ....    ....  0.1684  0.3239  0.2604
+ 16-JAN-1954 12 / 49:    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.1105  0.2438
+ 15-FEB-1954 00 / 50:    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.3000  0.4223
+ 16-MAR-1954 12 / 51:    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.1442  0.3856
+ 16-APR-1954 00 / 52:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.1980
+ 16-MAY-1954 12 / 53:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.2112
+ 16-JUN-1954 00 / 54:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.2043
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.8   228     319.2   410.4   501.6   592.8   684    
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.0000  0.0182    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.0000  0.0195    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.0000 -0.0203    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.0000  0.0311 -0.0950    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.0000 -0.0124 -0.1358    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.0000 -0.0790 -0.1238    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000  0.0280 -0.0676 -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000  0.0184 -0.0365 -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000 -0.0780 -0.1276 -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218 -0.0105 -0.0920 -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171 -0.0911 -0.1699 -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127 -0.0969 -0.1677 -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011 -0.0821 -0.1458 -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533 -0.0765 -0.0101 -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258 -0.1133 -0.0610 -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194 -0.0893  0.0696  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361 -0.1209 -0.0611  0.0605    ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.8   228     319.2   410.4   501.6   592.8   684    
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.0000  0.0182    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.0000  0.0195    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.0000 -0.0203    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.0000  0.0311 -0.0950    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.0000 -0.0124 -0.1358    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.0000 -0.0790 -0.1238    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000  0.0280 -0.0676 -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000  0.0184 -0.0365 -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000 -0.0780 -0.1276 -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218 -0.0105 -0.0920 -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171 -0.0911 -0.1699 -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127 -0.0969 -0.1677 -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011 -0.0821 -0.1458 -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533 -0.0765 -0.0101 -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258 -0.1133 -0.0610 -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194 -0.0893  0.0696  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361 -0.1209 -0.0611  0.0605    ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+ 
+cancel data my_fmrc
+show data/hidden   ! note that all member files were canceled, too
+     currently SET data sets:
+ 
+! agg with 2nd, 3rd, 9th and 10th forecasts missing
+use tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_9.nc, tmp/fcst_10.nc, tmp/fcst_11.nc
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc/hide my_fmrc = XCAT(files[I=6:10],{"6","1"})           ! double-wide gaps
+!fmrc my_fmrc = XCAT(files[I=6:10],{"6","1","2","5"})  ! single-wide gaps
+show data/files my_fmrc
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:11
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1 : tmp/fcst_1.nc
+      2 : (dummy)
+      3 : (dummy)
+      4 : tmp/fcst_4.nc
+      5 : tmp/fcst_5.nc
+      6 : tmp/fcst_6.nc
+      7 : tmp/fcst_7.nc
+      8 : tmp/fcst_8.nc
+      9 : (dummy)
+      10: (dummy)
+      11: tmp/fcst_11.nc
+show data/brief
+     currently SET data sets:
+    2> tmp/fcst_2.nc
+    3> tmp/fcst_3.nc
+    4> tmp/fcst_9.nc
+    5> tmp/fcst_10.nc
+   12> my_fmrc  (default)  Forecast aggregation
+LIST tf_times
+             VARIABLE : Forecast time step matrix (days since 01-JAN-1900 00:00:00)
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 24 by 11 points (MODEL ELAPSED TIME (day)-FORECAST)
+             Verification time increases across row.  Initialization time increases down page. 
+      ... listing every   2th point
+                      15.2    76     136.8   197.5   258.3   319.1   379.9   440.7   501.5   562.2   623     683.8  
+                       1       3       5       7       9      11      13      15      17      19      21      23
+ 01-JAN-1950 /  1:  18278.  18337.  18398.  18459.  18520.  18581.  18643.  18702.  18763.  18824.  18885.  18946.
+ 01-APR-1950 /  2:  18367.  18428.  18490.  18551.  18612.  18672.  18732.  18793.  18855.  18916.  18977.  19038.
+ 01-JUL-1950 /  3:  18459.  18520.  18581.  18643.  18702.  18763.  18824.  18885.  18946.  19008.  19068.  19129.
+ 01-OCT-1950 /  4:  18551.  18612.  18672.  18732.  18793.  18855.  18916.  18977.  19038.  19098.  19159.  19221.
+ 01-JAN-1951 /  5:  18643.  18702.  18763.  18824.  18885.  18946.  19008.  19068.  19129.  19190.  19251.  19312.
+ 01-APR-1951 /  6:  18732.  18793.  18855.  18916.  18977.  19038.  19098.  19159.  19221.  19282.  19343.  19403.
+ 01-JUL-1951 /  7:  18824.  18885.  18946.  19008.  19068.  19129.  19190.  19251.  19312.  19374.  19433.  19494.
+ 01-OCT-1951 /  8:  18916.  18977.  19038.  19098.  19159.  19221.  19282.  19343.  19403.  19463.  19524.  19586.
+ 01-JAN-1952 /  9:  19008.  19068.  19129.  19190.  19251.  19312.  19374.  19433.  19494.  19555.  19616.  19677.
+ 01-APR-1952 / 10:  19098.  19159.  19221.  19282.  19343.  19403.  19463.  19524.  19586.  19647.  19708.  19768.
+ 01-JUL-1952 / 11:  19190.  19251.  19312.  19374.  19433.  19494.  19555.  19616.  19677.  19739.  19798.  19859.
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                1950    1950    1950    1950    1951    1951    1951    1951    1952    1952    1952  
+                 1       2       3       4       5       6       7       8       9      10      11
+ 15.2  /  1:  0.3308    ....    ....  0.2317  0.1953  0.1593  0.1222  0.0851    ....    .... -0.0199
+ 45.6  /  2:  0.3453    ....    ....  0.2240  0.1894  0.1504  0.1121  0.0863    ....    .... -0.0167
+ 76    /  3:  0.3319    ....    ....  0.2324  0.1761  0.1559  0.1246  0.0670    ....    .... -0.0157
+ 106.4 /  4:  0.3184    ....    ....  0.2171  0.1555  0.1280  0.1215  0.0854    ....    ....  0.0361
+ 136.8 /  5:  0.3160    ....    ....  0.1723  0.1347  0.1038  0.0878  0.0543    ....    ....  0.0392
+ 167.2 /  6:  0.2888    ....    ....  0.1889  0.1184  0.0888  0.0830  0.0453    ....    ....  0.0345
+ 197.5 /  7:  0.1718    ....    ....  0.1604  0.1176  0.1330  0.0444  0.0940    ....    ....  0.1458
+ 227.9 /  8:  0.1266    ....    ....  0.0971  0.0576  0.0528  0.1196  0.0732    ....    ....  0.1147
+ 258.3 /  9:  0.1416    ....    ....  0.1302  0.1278  0.0588  0.1380  0.1241    ....    ....  0.2176
+ 288.7 / 10:  0.1275    ....    ....  0.1416  0.0450  0.1201  0.1679  0.2024    ....    ....  0.1590
+ 319.1 / 11:  0.0385    ....    ....  0.1482  0.1247  0.1833  0.1287  0.1830    ....    ....  0.2537
+ 349.5 / 12: -0.0359    ....    ....  0.0578  0.0799  0.1691  0.1258  0.2193    ....    ....  0.2238
+ 379.9 / 13: -0.0170    ....    ....  0.0698  0.1096  0.0967  0.2150  0.3087    ....    ....  0.3197
+ 410.3 / 14:  0.0479    ....    ....  0.0596  0.1560  0.1085  0.2104  0.1930    ....    ....  0.3650
+ 440.7 / 15:  0.1228    ....    ....  0.1480  0.1623  0.2006  0.1533  0.2938    ....    ....  0.4216
+ 471.1 / 16: -0.0072    ....    ....  0.1213  0.2667  0.1604  0.2374  0.3573    ....    ....  0.3765
+ 501.5 / 17:  0.0518    ....    ....  0.1734  0.2131  0.1814  0.2729  0.3551    ....    ....  0.4448
+ 531.8 / 18:  0.0007    ....    ....  0.2906  0.2992  0.1942  0.3882  0.3758    ....    ....  0.2604
+ 562.2 / 19:  0.1838    ....    ....  0.2456  0.2396  0.2520  0.4347  0.2802    ....    ....  0.2438
+ 592.6 / 20:  0.1726    ....    ....  0.3763  0.1957  0.1832  0.2019  0.1743    ....    ....  0.4223
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 11 by 54 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         1950    1950    1950    1950    1951    1951    1951    1951    1952    1952    1952  
+                          1       2       3       4       5       6       7       8       9      10      11
+ 16-JAN-1950 12 /  1:  0.3308    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.3453    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.3319    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.3184    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.3160    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.2888    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.1718    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.1266    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.1416    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.1275    ....    ....  0.2317    ....    ....    ....    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0385    ....    ....  0.2240    ....    ....    ....    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12: -0.0359    ....    ....  0.2324    ....    ....    ....    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13: -0.0170    ....    ....  0.2171  0.1953    ....    ....    ....    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0479    ....    ....  0.1723  0.1894    ....    ....    ....    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.1228    ....    ....  0.1889  0.1761    ....    ....    ....    ....    ....    ....
+ 16-APR-1951 00 / 16: -0.0072    ....    ....  0.1604  0.1555  0.1593    ....    ....    ....    ....    ....
+ 16-MAY-1951 12 / 17:  0.0518    ....    ....  0.0971  0.1347  0.1504    ....    ....    ....    ....    ....
+ 16-JUN-1951 00 / 18:  0.0007    ....    ....  0.1302  0.1184  0.1559    ....    ....    ....    ....    ....
+ 16-JUL-1951 12 / 19:  0.1838    ....    ....  0.1416  0.1176  0.1280  0.1222    ....    ....    ....    ....
+ 16-AUG-1951 12 / 20:  0.1726    ....    ....  0.1482  0.0576  0.1038  0.1121    ....    ....    ....    ....
+ 16-SEP-1951 00 / 21:  0.3655    ....    ....  0.0578  0.1278  0.0888  0.1246    ....    ....    ....    ....
+ 16-OCT-1951 12 / 22:  0.3193    ....    ....  0.0698  0.0450  0.1330  0.1215  0.0851    ....    ....    ....
+ 16-NOV-1951 00 / 23:  0.1829    ....    ....  0.0596  0.1247  0.0528  0.0878  0.0863    ....    ....    ....
+ 16-DEC-1951 12 / 24:  0.4273    ....    ....  0.1480  0.0799  0.0588  0.0830  0.0670    ....    ....    ....
+ 16-JAN-1952 12 / 25:    ....    ....    ....  0.1213  0.1096  0.1201  0.0444  0.0854    ....    ....    ....
+ 15-FEB-1952 12 / 26:    ....    ....    ....  0.1734  0.1560  0.1833  0.1196  0.0543    ....    ....    ....
+ 16-MAR-1952 12 / 27:    ....    ....    ....  0.2906  0.1623  0.1691  0.1380  0.0453    ....    ....    ....
+ 16-APR-1952 00 / 28:    ....    ....    ....  0.2456  0.2667  0.0967  0.1679  0.0940    ....    ....    ....
+ 16-MAY-1952 12 / 29:    ....    ....    ....  0.3763  0.2131  0.1085  0.1287  0.0732    ....    ....    ....
+ 16-JUN-1952 00 / 30:    ....    ....    ....  0.4073  0.2992  0.2006  0.1258  0.1241    ....    ....    ....
+ 16-JUL-1952 12 / 31:    ....    ....    ....  0.3234  0.2396  0.1604  0.2150  0.2024    ....    .... -0.0199
+ 16-AUG-1952 12 / 32:    ....    ....    ....  0.3334  0.1957  0.1814  0.2104  0.1830    ....    .... -0.0167
+ 16-SEP-1952 00 / 33:    ....    ....    ....  0.2259  0.2331  0.1942  0.1533  0.2193    ....    .... -0.0157
+ 16-OCT-1952 12 / 34:    ....    ....    ....    ....  0.4350  0.2520  0.2374  0.3087    ....    ....  0.0361
+ 16-NOV-1952 00 / 35:    ....    ....    ....    ....  0.4583  0.1832  0.2729  0.1930    ....    ....  0.0392
+ 16-DEC-1952 12 / 36:    ....    ....    ....    ....  0.4633  0.3565  0.3882  0.2938    ....    ....  0.0345
+ 16-JAN-1953 12 / 37:    ....    ....    ....    ....    ....  0.2654  0.4347  0.3573    ....    ....  0.1458
+ 15-FEB-1953 00 / 38:    ....    ....    ....    ....    ....  0.3712  0.2019  0.3551    ....    ....  0.1147
+ 16-MAR-1953 12 / 39:    ....    ....    ....    ....    ....  0.3677  0.2477  0.3758    ....    ....  0.2176
+ 16-APR-1953 00 / 40:    ....    ....    ....    ....    ....    ....  0.3270  0.2802    ....    ....  0.1590
+ 16-MAY-1953 12 / 41:    ....    ....    ....    ....    ....    ....  0.1943  0.1743    ....    ....  0.2537
+ 16-JUN-1953 00 / 42:    ....    ....    ....    ....    ....    ....  0.3242  0.1867    ....    ....  0.2238
+ 16-JUL-1953 12 / 43:    ....    ....    ....    ....    ....    ....    ....  0.3779    ....    ....  0.3197
+ 16-AUG-1953 12 / 44:    ....    ....    ....    ....    ....    ....    ....  0.2493    ....    ....  0.3650
+ 16-SEP-1953 00 / 45:    ....    ....    ....    ....    ....    ....    ....  0.0767    ....    ....  0.4216
+ 16-OCT-1953 12 / 46:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.3765
+ 16-NOV-1953 00 / 47:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.4448
+ 16-DEC-1953 12 / 48:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.2604
+ 16-JAN-1954 12 / 49:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.2438
+ 15-FEB-1954 00 / 50:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.4223
+ 16-MAR-1954 12 / 51:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.3856
+ 16-APR-1954 00 / 52:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.1980
+ 16-MAY-1954 12 / 53:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.2112
+ 16-JUN-1954 00 / 54:    ....    ....    ....    ....    ....    ....    ....    ....    ....    ....  0.2043
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.8   228     319.2   410.4   501.6   592.8   684    
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000    ....    .... -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000    ....    .... -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000    ....    .... -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218    ....    .... -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171    ....    .... -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127    ....    .... -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011    ....    .... -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533    ....    .... -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258    ....    .... -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194    ....    ....  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361    ....    ....  0.0605    ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 11 datasets patterned on fcst_1
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.8   228     319.2   410.4   501.6   592.8   684    
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000    ....    .... -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000    ....    .... -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000    ....    .... -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218    ....    .... -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171    ....    .... -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127    ....    .... -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011    ....    .... -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533    ....    .... -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258    ....    .... -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194    ....    ....  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361    ....    ....  0.0605    ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+ 
+cancel data my_fmrc
+show data/brief/hidden
+     currently SET data sets:
+    2> tmp/fcst_2.nc
+    3> tmp/fcst_3.nc
+    4> tmp/fcst_9.nc
+    5> tmp/fcst_10.nc
+    6> tmp/fcst_11.nc
+    7> tmp/fcst_4.nc
+    8> tmp/fcst_5.nc
+    9> tmp/fcst_6.nc
+   10> tmp/fcst_7.nc
+   11> tmp/fcst_8.nc
+   12> my_fmrc  (default)  Forecast aggregation
+cancel data/all
+ 
+! agg with the first forecast of longer time range than the others
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc/hide my_fmrc = XCAT(files[I=4:11],{"tmp/long_fcst_1.nc"}) ! first member is long
+show data/files my_fmrc
+     currently SET data sets:
+   10> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:9
+       (L=1:36)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:9
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:9
+       (L=1:36)
+ 
+          Aggregated datasets:
+      1: tmp/long_fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/fcst_6.nc
+      7: tmp/fcst_7.nc
+      8: tmp/fcst_8.nc
+      9: tmp/fcst_9.nc
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 9 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                1950    1950    1950    1950    1951    1951    1951    1951    1952  
+                 1       2       3       4       5       6       7       8       9
+ 15.2  /  1:  0.3308  0.3001  0.2668  0.2317  0.1953  0.1593  0.1222  0.0851  0.0486
+ 45.6  /  2:  0.3453  0.2965  0.2624  0.2240  0.1894  0.1504  0.1121  0.0863  0.0525
+ 76    /  3:  0.3319  0.3091  0.2654  0.2324  0.1761  0.1559  0.1246  0.0670  0.0344
+ 106.4 /  4:  0.3184  0.2979  0.2596  0.2171  0.1555  0.1280  0.1215  0.0854  0.0421
+ 136.8 /  5:  0.3160  0.2501  0.2424  0.1723  0.1347  0.1038  0.0878  0.0543  0.0703
+ 167.2 /  6:  0.2888  0.1865  0.1544  0.1889  0.1184  0.0888  0.0830  0.0453  0.0910
+ 197.5 /  7:  0.1718  0.1641  0.1848  0.1604  0.1176  0.1330  0.0444  0.0940  0.0787
+ 227.9 /  8:  0.1266  0.1875  0.0983  0.0971  0.0576  0.0528  0.1196  0.0732  0.1283
+ 258.3 /  9:  0.1416  0.1048  0.0792  0.1302  0.1278  0.0588  0.1380  0.1241  0.1065
+ 288.7 / 10:  0.1275  0.1034  0.0772  0.1416  0.0450  0.1201  0.1679  0.2024  0.1395
+ 319.1 / 11:  0.0385  0.0194  0.0739  0.1482  0.1247  0.1833  0.1287  0.1830  0.1406
+ 349.5 / 12: -0.0359  0.0085  0.0426  0.0578  0.0799  0.1691  0.1258  0.2193  0.2261
+ 379.9 / 13: -0.0170  0.0135  0.0329  0.0698  0.1096  0.0967  0.2150  0.3087  0.2492
+ 410.3 / 14:  0.0479  0.1403 -0.0088  0.0596  0.1560  0.1085  0.2104  0.1930  0.2231
+ 440.7 / 15:  0.1228  0.0949  0.1626  0.1480  0.1623  0.2006  0.1533  0.2938  0.3674
+ 471.1 / 16: -0.0072  0.1918  0.0258  0.1213  0.2667  0.1604  0.2374  0.3573  0.4414
+ 501.5 / 17:  0.0518  0.0510  0.0654  0.1734  0.2131  0.1814  0.2729  0.3551  0.4522
+ 531.8 / 18:  0.0007  0.1034  0.0886  0.2906  0.2992  0.1942  0.3882  0.3758  0.2891
+ 562.2 / 19:  0.1838  0.1825  0.3120  0.2456  0.2396  0.2520  0.4347  0.2802  0.3323
+ 592.6 / 20:  0.1726  0.2160  0.3391  0.3763  0.1957  0.1832  0.2019  0.1743  0.4185
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 9 by 48 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         1950    1950    1950    1950    1951    1951    1951    1951    1952  
+                          1       2       3       4       5       6       7       8       9
+ 16-JAN-1950 12 /  1:  0.3308    ....    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.3453    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.3319    ....    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.3184  0.3001    ....    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.3160  0.2965    ....    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.2888  0.3091    ....    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.1718  0.2979  0.2668    ....    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.1266  0.2501  0.2624    ....    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.1416  0.1865  0.2654    ....    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.1275  0.1641  0.2596  0.2317    ....    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0385  0.1875  0.2424  0.2240    ....    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12: -0.0359  0.1048  0.1544  0.2324    ....    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13: -0.0170  0.1034  0.1848  0.2171  0.1953    ....    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0479  0.0194  0.0983  0.1723  0.1894    ....    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.1228  0.0085  0.0792  0.1889  0.1761    ....    ....    ....    ....
+ 16-APR-1951 00 / 16: -0.0072  0.0135  0.0772  0.1604  0.1555  0.1593    ....    ....    ....
+ 16-MAY-1951 12 / 17:  0.0518  0.1403  0.0739  0.0971  0.1347  0.1504    ....    ....    ....
+ 16-JUN-1951 00 / 18:  0.0007  0.0949  0.0426  0.1302  0.1184  0.1559    ....    ....    ....
+ 16-JUL-1951 12 / 19:  0.1838  0.1918  0.0329  0.1416  0.1176  0.1280  0.1222    ....    ....
+ 16-AUG-1951 12 / 20:  0.1726  0.0510 -0.0088  0.1482  0.0576  0.1038  0.1121    ....    ....
+ 16-SEP-1951 00 / 21:  0.3655  0.1034  0.1626  0.0578  0.1278  0.0888  0.1246    ....    ....
+ 16-OCT-1951 12 / 22:  0.3193  0.1825  0.0258  0.0698  0.0450  0.1330  0.1215  0.0851    ....
+ 16-NOV-1951 00 / 23:  0.1829  0.2160  0.0654  0.0596  0.1247  0.0528  0.0878  0.0863    ....
+ 16-DEC-1951 12 / 24:  0.4273  0.3928  0.0886  0.1480  0.0799  0.0588  0.0830  0.0670    ....
+ 16-JAN-1952 12 / 25:    ....  0.2804  0.3120  0.1213  0.1096  0.1201  0.0444  0.0854  0.0486
+ 15-FEB-1952 12 / 26:    ....  0.2155  0.3391  0.1734  0.1560  0.1833  0.1196  0.0543  0.0525
+ 16-MAR-1952 12 / 27:    ....  0.2246  0.2519  0.2906  0.1623  0.1691  0.1380  0.0453  0.0344
+ 16-APR-1952 00 / 28:    ....    ....  0.2021  0.2456  0.2667  0.0967  0.1679  0.0940  0.0421
+ 16-MAY-1952 12 / 29:    ....    ....  0.3907  0.3763  0.2131  0.1085  0.1287  0.0732  0.0703
+ 16-JUN-1952 00 / 30:    ....    ....  0.1899  0.4073  0.2992  0.2006  0.1258  0.1241  0.0910
+ 16-JUL-1952 12 / 31:    ....    ....    ....  0.3234  0.2396  0.1604  0.2150  0.2024  0.0787
+ 16-AUG-1952 12 / 32:    ....    ....    ....  0.3334  0.1957  0.1814  0.2104  0.1830  0.1283
+ 16-SEP-1952 00 / 33:    ....    ....    ....  0.2259  0.2331  0.1942  0.1533  0.2193  0.1065
+ 16-OCT-1952 12 / 34:    ....    ....    ....    ....  0.4350  0.2520  0.2374  0.3087  0.1395
+ 16-NOV-1952 00 / 35:    ....    ....    ....    ....  0.4583  0.1832  0.2729  0.1930  0.1406
+ 16-DEC-1952 12 / 36:    ....    ....    ....    ....  0.4633  0.3565  0.3882  0.2938  0.2261
+ 16-JAN-1953 12 / 37:    ....    ....    ....    ....    ....  0.2654  0.4347  0.3573  0.2492
+ 15-FEB-1953 00 / 38:    ....    ....    ....    ....    ....  0.3712  0.2019  0.3551  0.2231
+ 16-MAR-1953 12 / 39:    ....    ....    ....    ....    ....  0.3677  0.2477  0.3758  0.3674
+ 16-APR-1953 00 / 40:    ....    ....    ....    ....    ....    ....  0.3270  0.2802  0.4414
+ 16-MAY-1953 12 / 41:    ....    ....    ....    ....    ....    ....  0.1943  0.1743  0.4522
+ 16-JUN-1953 00 / 42:    ....    ....    ....    ....    ....    ....  0.3242  0.1867  0.2891
+ 16-JUL-1953 12 / 43:    ....    ....    ....    ....    ....    ....    ....  0.3779  0.3323
+ 16-AUG-1953 12 / 44:    ....    ....    ....    ....    ....    ....    ....  0.2493  0.4185
+ 16-SEP-1953 00 / 45:    ....    ....    ....    ....    ....    ....    ....  0.0767  0.1507
+ 16-OCT-1953 12 / 46:    ....    ....    ....    ....    ....    ....    ....    ....  0.3272
+ 16-NOV-1953 00 / 47:    ....    ....    ....    ....    ....    ....    ....    ....  0.3700
+ 16-DEC-1953 12 / 48:    ....    ....    ....    ....    ....    ....    ....    ....  0.1684
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.9   228.1   319.4   410.6   501.9   593.1   684.4  
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.0000  0.0182    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.0000  0.0195    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.0000 -0.0203    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.0000  0.0311 -0.0950    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.0000 -0.0124 -0.1358    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.0000 -0.0790 -0.1238    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000  0.0280 -0.0676 -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000  0.0184 -0.0365 -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000 -0.0780 -0.1276 -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218 -0.0105 -0.0920 -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171 -0.0911 -0.1699 -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127 -0.0969 -0.1677 -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011 -0.0821 -0.1458 -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533 -0.0765 -0.0101 -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258 -0.1133 -0.0610 -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194 -0.0893  0.0696  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361 -0.1209 -0.0611  0.0605    ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 9 datasets patterned on long_fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.9   228.1   319.4   410.6   501.9   593.1   684.4  
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.0000  0.0182    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.0000  0.0195    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.0000 -0.0203    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.0000  0.0311 -0.0950    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.0000 -0.0124 -0.1358    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.0000 -0.0790 -0.1238    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000  0.0280 -0.0676 -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000  0.0184 -0.0365 -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000 -0.0780 -0.1276 -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218 -0.0105 -0.0920 -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171 -0.0911 -0.1699 -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127 -0.0969 -0.1677 -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011 -0.0821 -0.1458 -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533 -0.0765 -0.0101 -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258 -0.1133 -0.0610 -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194 -0.0893  0.0696  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361 -0.1209 -0.0611  0.0605    ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+cancel data my_fmrc
+ 
+! agg with the sixth forecast of longer time range than the others
+fmrc/hide my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/long_fcst_6.nc, tmp/fcst_7.nc, tmp/fcst_8.nc
+show data/files my_fmrc
+     currently SET data sets:
+    9> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:8
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:8
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:8
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/long_fcst_6.nc
+      7: tmp/fcst_7.nc
+      8: tmp/fcst_8.nc
+GO bn_aggregate_f.sub
+! bn_aggregate_f.sub
+ 
+! get names of regridding axes
+DEFINE SYMBOL tf_cal_t = `fcst._cal_t_ax`
+ !-> DEFINE SYMBOL tf_cal_t = TF_CAL_T
+DEFINE SYMBOL tf_lag_f = `fcst._lag_f_ax`
+ !-> DEFINE SYMBOL tf_lag_f = TF_LAG_F
+ 
+! native compact form
+shade/i=10/j=10 fcst
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst
+             VARIABLE : FIELD + FCST_ERROR
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                1950    1950    1950    1950    1951    1951    1951    1951  
+                 1       2       3       4       5       6       7       8
+ 15.2  /  1:  0.3308  0.3001  0.2668  0.2317  0.1953  0.1593  0.1222  0.0851
+ 45.6  /  2:  0.3453  0.2965  0.2624  0.2240  0.1894  0.1504  0.1121  0.0863
+ 76    /  3:  0.3319  0.3091  0.2654  0.2324  0.1761  0.1559  0.1246  0.0670
+ 106.4 /  4:  0.3184  0.2979  0.2596  0.2171  0.1555  0.1280  0.1215  0.0854
+ 136.8 /  5:  0.3160  0.2501  0.2424  0.1723  0.1347  0.1038  0.0878  0.0543
+ 167.2 /  6:  0.2888  0.1865  0.1544  0.1889  0.1184  0.0888  0.0830  0.0453
+ 197.5 /  7:  0.1718  0.1641  0.1848  0.1604  0.1176  0.1330  0.0444  0.0940
+ 227.9 /  8:  0.1266  0.1875  0.0983  0.0971  0.0576  0.0528  0.1196  0.0732
+ 258.3 /  9:  0.1416  0.1048  0.0792  0.1302  0.1278  0.0588  0.1380  0.1241
+ 288.7 / 10:  0.1275  0.1034  0.0772  0.1416  0.0450  0.1201  0.1679  0.2024
+ 319.1 / 11:  0.0385  0.0194  0.0739  0.1482  0.1247  0.1833  0.1287  0.1830
+ 349.5 / 12: -0.0359  0.0085  0.0426  0.0578  0.0799  0.1691  0.1258  0.2193
+ 379.9 / 13: -0.0170  0.0135  0.0329  0.0698  0.1096  0.0967  0.2150  0.3087
+ 410.3 / 14:  0.0479  0.1403 -0.0088  0.0596  0.1560  0.1085  0.2104  0.1930
+ 440.7 / 15:  0.1228  0.0949  0.1626  0.1480  0.1623  0.2006  0.1533  0.2938
+ 471.1 / 16: -0.0072  0.1918  0.0258  0.1213  0.2667  0.1604  0.2374  0.3573
+ 501.5 / 17:  0.0518  0.0510  0.0654  0.1734  0.2131  0.1814  0.2729  0.3551
+ 531.8 / 18:  0.0007  0.1034  0.0886  0.2906  0.2992  0.1942  0.3882  0.3758
+ 562.2 / 19:  0.1838  0.1825  0.3120  0.2456  0.2396  0.2520  0.4347  0.2802
+ 592.6 / 20:  0.1726  0.2160  0.3391  0.3763  0.1957  0.1832  0.2019  0.1743
+ 
+! diagonal form
+shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> shade/i=10/j=10 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=($TF_CAL_T)@FMRC]
+ !-> list/i=10/j=10/order=ft/width=200 fcst[gt(tf_times)=TF_CAL_T at FMRC]
+             VARIABLE : FIELD + FCST_ERROR
+                        regrid: time series view using 2d TF_TIMES field
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 45 points (FORECAST-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         1950    1950    1950    1950    1951    1951    1951    1951  
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.3308    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.3453    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.3319    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.3184  0.3001    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.3160  0.2965    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.2888  0.3091    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.1718  0.2979  0.2668    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.1266  0.2501  0.2624    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.1416  0.1865  0.2654    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.1275  0.1641  0.2596  0.2317    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0385  0.1875  0.2424  0.2240    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12: -0.0359  0.1048  0.1544  0.2324    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13: -0.0170  0.1034  0.1848  0.2171  0.1953    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0479  0.0194  0.0983  0.1723  0.1894    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.1228  0.0085  0.0792  0.1889  0.1761    ....    ....    ....
+ 16-APR-1951 00 / 16: -0.0072  0.0135  0.0772  0.1604  0.1555  0.1593    ....    ....
+ 16-MAY-1951 12 / 17:  0.0518  0.1403  0.0739  0.0971  0.1347  0.1504    ....    ....
+ 16-JUN-1951 00 / 18:  0.0007  0.0949  0.0426  0.1302  0.1184  0.1559    ....    ....
+ 16-JUL-1951 12 / 19:  0.1838  0.1918  0.0329  0.1416  0.1176  0.1280  0.1222    ....
+ 16-AUG-1951 12 / 20:  0.1726  0.0510 -0.0088  0.1482  0.0576  0.1038  0.1121    ....
+ 16-SEP-1951 00 / 21:  0.3655  0.1034  0.1626  0.0578  0.1278  0.0888  0.1246    ....
+ 16-OCT-1951 12 / 22:  0.3193  0.1825  0.0258  0.0698  0.0450  0.1330  0.1215  0.0851
+ 16-NOV-1951 00 / 23:  0.1829  0.2160  0.0654  0.0596  0.1247  0.0528  0.0878  0.0863
+ 16-DEC-1951 12 / 24:  0.4273  0.3928  0.0886  0.1480  0.0799  0.0588  0.0830  0.0670
+ 16-JAN-1952 12 / 25:    ....  0.2804  0.3120  0.1213  0.1096  0.1201  0.0444  0.0854
+ 15-FEB-1952 12 / 26:    ....  0.2155  0.3391  0.1734  0.1560  0.1833  0.1196  0.0543
+ 16-MAR-1952 12 / 27:    ....  0.2246  0.2519  0.2906  0.1623  0.1691  0.1380  0.0453
+ 16-APR-1952 00 / 28:    ....    ....  0.2021  0.2456  0.2667  0.0967  0.1679  0.0940
+ 16-MAY-1952 12 / 29:    ....    ....  0.3907  0.3763  0.2131  0.1085  0.1287  0.0732
+ 16-JUN-1952 00 / 30:    ....    ....  0.1899  0.4073  0.2992  0.2006  0.1258  0.1241
+ 16-JUL-1952 12 / 31:    ....    ....    ....  0.3234  0.2396  0.1604  0.2150  0.2024
+ 16-AUG-1952 12 / 32:    ....    ....    ....  0.3334  0.1957  0.1814  0.2104  0.1830
+ 16-SEP-1952 00 / 33:    ....    ....    ....  0.2259  0.2331  0.1942  0.1533  0.2193
+ 16-OCT-1952 12 / 34:    ....    ....    ....    ....  0.4350  0.2520  0.2374  0.3087
+ 16-NOV-1952 00 / 35:    ....    ....    ....    ....  0.4583  0.1832  0.2729  0.1930
+ 16-DEC-1952 12 / 36:    ....    ....    ....    ....  0.4633  0.3565  0.3882  0.2938
+ 16-JAN-1953 12 / 37:    ....    ....    ....    ....    ....  0.2654  0.4347  0.3573
+ 15-FEB-1953 00 / 38:    ....    ....    ....    ....    ....  0.3712  0.2019  0.3551
+ 16-MAR-1953 12 / 39:    ....    ....    ....    ....    ....  0.3677  0.2477  0.3758
+ 16-APR-1953 00 / 40:    ....    ....    ....    ....    ....    ....  0.3270  0.2802
+ 16-MAY-1953 12 / 41:    ....    ....    ....    ....    ....    ....  0.1943  0.1743
+ 16-JUN-1953 00 / 42:    ....    ....    ....    ....    ....    ....  0.3242  0.1867
+ 16-JUL-1953 12 / 43:    ....    ....    ....    ....    ....    ....    ....  0.3779
+ 16-AUG-1953 12 / 44:    ....    ....    ....    ....    ....    ....    ....  0.2493
+ 16-SEP-1953 00 / 45:    ....    ....    ....    ....    ....    ....    ....  0.0767
+ 
+! forecast evaluation form
+!shade/i=10/j=10 fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ 
+ 
+! forecast error visualizatio
+let eval_form = fcst[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form = fcst[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form = eval_form - eval_form[n=1]
+shade/i=10/j=10 err_viz_form
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form
+             VARIABLE : EVAL_FORM - EVAL_FORM[N=1]
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.7   227.9   319     410.1   501.3   592.4   683.6  
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.0000  0.0182    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.0000  0.0195    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.0000 -0.0203    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.0000  0.0311 -0.0950    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.0000 -0.0124 -0.1358    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.0000 -0.0790 -0.1238    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000  0.0280 -0.0676 -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000  0.0184 -0.0365 -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000 -0.0780 -0.1276 -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218 -0.0105 -0.0920 -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171 -0.0911 -0.1699 -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127 -0.0969 -0.1677 -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011 -0.0821 -0.1458 -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533 -0.0765 -0.0101 -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258 -0.1133 -0.0610 -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194 -0.0893  0.0696  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361 -0.1209 -0.0611  0.0605    ....
+ 
+! confirm the second variable works, too
+let eval_form_2 = fcst_2[gt(tf_times)=($TF_CAL_T)@FMRC,gf(tf_times)=($TF_LAG_F)]
+ !-> DEFINE VARIABLE eval_form_2 = fcst_2[gt(tf_times)=TF_CAL_T at FMRC,gf(tf_times)=TF_LAG_F]
+let err_viz_form_2 = eval_form_2 - eval_form_2[n=1]
+list/i=10/j=10/order=ft/l=1:20/width=200 err_viz_form_2
+             VARIABLE : EVAL_FORM_2 - EVAL_FORM_2[N=1]
+             DATA SET : Forecast series of 8 datasets patterned on fcst_1.nc
+             FILENAME : my_fmrc
+             SUBSET   : 8 by 20 points (FORECAST LEAD TIME (day)-TIME)
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                         45.6   136.7   227.9   319     410.1   501.3   592.4   683.6  
+                          1       2       3       4       5       6       7       8
+ 16-JAN-1950 12 /  1:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 15-FEB-1950 00 /  2:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-MAR-1950 12 /  3:  0.0000    ....    ....    ....    ....    ....    ....    ....
+ 16-APR-1950 00 /  4:  0.0000  0.0182    ....    ....    ....    ....    ....    ....
+ 16-MAY-1950 12 /  5:  0.0000  0.0195    ....    ....    ....    ....    ....    ....
+ 16-JUN-1950 00 /  6:  0.0000 -0.0203    ....    ....    ....    ....    ....    ....
+ 16-JUL-1950 12 /  7:  0.0000  0.0311 -0.0950    ....    ....    ....    ....    ....
+ 16-AUG-1950 12 /  8:  0.0000 -0.0124 -0.1358    ....    ....    ....    ....    ....
+ 16-SEP-1950 00 /  9:  0.0000 -0.0790 -0.1238    ....    ....    ....    ....    ....
+ 16-OCT-1950 12 / 10:  0.0000  0.0280 -0.0676 -0.1042    ....    ....    ....    ....
+ 16-NOV-1950 00 / 11:  0.0000  0.0184 -0.0365 -0.1855    ....    ....    ....    ....
+ 16-DEC-1950 12 / 12:  0.0000 -0.0780 -0.1276 -0.2683    ....    ....    ....    ....
+ 16-JAN-1951 12 / 13:  0.0000  0.0218 -0.0105 -0.0920 -0.2123    ....    ....    ....
+ 15-FEB-1951 00 / 14:  0.0000 -0.0171 -0.0911 -0.1699 -0.1415    ....    ....    ....
+ 16-MAR-1951 12 / 15:  0.0000  0.0127 -0.0969 -0.1677 -0.0533    ....    ....    ....
+ 16-APR-1951 00 / 16:  0.0000 -0.0038  0.0011 -0.0821 -0.1458 -0.1665    ....    ....
+ 16-MAY-1951 12 / 17:  0.0000 -0.0157 -0.0533 -0.0765 -0.0101 -0.0986    ....    ....
+ 16-JUN-1951 00 / 18:  0.0000 -0.0375 -0.0258 -0.1133 -0.0610 -0.1552    ....    ....
+ 16-JUL-1951 12 / 19:  0.0000  0.0058 -0.0046  0.0194 -0.0893  0.0696  0.0616    ....
+ 16-AUG-1951 12 / 20:  0.0000 -0.0083 -0.0546  0.0361 -0.1209 -0.0611  0.0605    ....
+ 
+! since the N=1 values are subtracted off, the +2 offset is removed from fcst_2
+! so this should give identically zero ... except that all of the subtractions
+! lead to errors Order(e-16).  To avoid benchmark results that differ from
+! one machine to another, this is commented out
+!stat/i=10/j=10/l=1:20/brief err_viz_form_2 - err_viz_form
+cancel data my_fmrc
+ 
+! agg where one dataset lacks one of the variables
+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/files
+     currently SET data sets:
+    6> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:5
+       (L=7:30)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
+ 
+          Aggregated datasets:
+      1: tmp/fcst_3.nc
+      2: tmp/fcst_4.nc
+      3: tmp/fcst_5.nc
+      4: tmp/one_var_fcst_6.nc
+      5: tmp/fcst_7.nc
+stat/l=1:20 fcst
+ 
+             FIELD + FCST_ERROR
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             MODEL ELAPSED TIME (day): 0 to 609.13
+             E:  N/A
+             FORECAST: 16-MAY-1950 09:00 to 15-AUG-1951 15:00
+             DATA SET: my_fmrc
+ 
+ Total # of data points: 44100 (21*21*1*20*1*5)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.3839
+ Mean    value: 0.11163 (unweighted average)
+ Standard deviation: 0.54048
+cancel data my_fmrc
+ 
+! ... added 1/28/2016
+! the same agg, but the dataset name pulled implicitly from the script name
+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
+ 
+! 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
+     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
+       (L=7:30)
+               on grid GFN1 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=19.5N:40.5N  F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
+             days since 01-JAN-1900 00:00:00 on grid FTI with -1.E+34 for missing data
+             F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ 
+  time range: 15.228 to 715.73
+ 
+          Aggregated datasets:
+      1: tmp/fcst_3.nc
+      2: tmp/fcst_4.nc
+      3: tmp/fcst_5.nc
+      4: tmp/one_var_fcst_6.nc
+      5: tmp/fcst_7.nc
+    7> my_fmrc  (default)  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
+       (L=7:30)
+               on grid GFN2 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=19.5N:40.5N  F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
+             days since 01-JAN-1900 00:00:00 on grid FTI1 with -1.E+34 for missing data
+             F=16-MAY-1950 09:00:15-AUG-1951 15:00  
+ 
+  time range: 15.228 to 715.73
+ 
+          Aggregated datasets:
+      1: tmp/fcst_3.nc
+      2: tmp/fcst_4.nc
+      3: tmp/fcst_5.nc
+      4: tmp/one_var_fcst_6.nc
+      5: tmp/fcst_7.nc
+ 
+! cancel a component dataset -- used in two aggregations
+cancel data tmp/fcst_4.nc
+show data
+     currently SET data sets:
+ 
+! re-define the same aggs again.
+! then cancel one of them only and note that the hidden files remain
+fmrc/hide tmp/fcst_7.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_3.nc
+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
+cancel data my_fmrc
+show data/br/hidden
+     currently SET data sets:
+    1> tmp/fcst_7.nc
+    2> tmp/fcst_4.nc
+    3> tmp/fcst_5.nc
+    4> tmp/one_var_fcst_6.nc
+    5> tmp/fcst_3.nc
+    6> ./bn_aggregate_f.jnl     Forecast aggregation
+cancel data bn_aggregate_f.jnl   ! 3/16 bug fix (was "...sub")
+show data
+     currently SET data sets:
+ 
+! agg where a LET/D variable is used to fill in a missing variable
+use tmp/one_var_fcst_1.nc, tmp/one_var_fcst_6.nc
+let/d=one_var_fcst_1.nc fcst_2 = fcst + 2  ! compute same value as file vars
+let/d=one_var_fcst_6.nc fcst_2 = fcst + 2  ! compute same value as file vars
+FMRC/hide my_fmrc_letd_6 = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_7.nc
+FMRC/hide my_fmrc_letd_1 = tmp/one_var_fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/fcst_6.nc, tmp/fcst_7.nc
+FMRC/hide my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/fcst_6.nc, tmp/fcst_7.nc
+show data/files
+     currently SET data sets:
+    9> my_fmrc_letd_6     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/one_var_fcst_6.nc
+      7: tmp/fcst_7.nc
+   11> my_fmrc_letd_1     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=4:27)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/one_var_fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/fcst_6.nc
+      7: tmp/fcst_7.nc
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+          Aggregated datasets:
+      1: tmp/fcst_1.nc
+      2: tmp/fcst_2.nc
+      3: tmp/fcst_3.nc
+      4: tmp/fcst_4.nc
+      5: tmp/fcst_5.nc
+      6: tmp/fcst_6.nc
+      7: tmp/fcst_7.nc
+show data
+     currently SET data sets:
+    9> my_fmrc_letd_6     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+   11> my_fmrc_letd_1     Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=4:27)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:7
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
+       (L=1:24)
+ 
+! should be all 0's:
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst_2[d=my_fmrc_letd_6] - fcst_2[d=my_fmrc]
+             VARIABLE : FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC]
+             SUBSET   : 7 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                1950    1950    1950    1950    1951    1951    1951  
+                 1       2       3       4       5       6       7
+ 15.2  /  1:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 45.6  /  2:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 76    /  3:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 106.4 /  4:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 136.8 /  5:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 167.2 /  6:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 197.5 /  7:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 227.9 /  8:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 258.3 /  9:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 288.7 / 10:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 319.1 / 11:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 349.5 / 12:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 379.9 / 13:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 410.3 / 14:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 440.7 / 15:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 471.1 / 16:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 501.5 / 17:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 531.8 / 18:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 562.2 / 19:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 592.6 / 20:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+! should be all 0's:
+list/i=10/j=10/order=ft/l=1:20/width=200 fcst_2[d=my_fmrc_letd_6] - fcst_2[d=my_fmrc_letd_1]
+             VARIABLE : FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC_LETD_1]
+             SUBSET   : 7 by 20 points (FORECAST-MODEL ELAPSED TIME (day))
+             LONGITUDE: 149E
+             LATITUDE : 29N
+             Initialization time increases across row.  Verification time increases down page. 
+                1950    1950    1950    1950    1951    1951    1951  
+                 1       2       3       4       5       6       7
+ 15.2  /  1:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 45.6  /  2:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 76    /  3:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 106.4 /  4:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 136.8 /  5:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 167.2 /  6:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 197.5 /  7:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 227.9 /  8:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 258.3 /  9:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 288.7 / 10:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 319.1 / 11:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 349.5 / 12:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 379.9 / 13:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 410.3 / 14:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 440.7 / 15:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 471.1 / 16:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 501.5 / 17:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 531.8 / 18:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 562.2 / 19:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+ 592.6 / 20:  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000  0.0000
+cancel data my_fmrc
+cancel data my_fmrc_letd_1, my_fmrc_letd_6
+ 
+! files already opened and not hidden remain open after aggregation
+use tmp/fcst_1.nc, tmp/fcst_2.nc, tmp/fcst_3.nc, tmp/fcst_9.nc, tmp/fcst_10.nc, tmp/fcst_11.nc
+fmrc my_fmrc = XCAT(files[I=6:10],{"6","1"})           ! without /HIDE
+cancel data my_fmrc
+show data/brief
+     currently SET data sets:
+    1> tmp/fcst_1.nc
+    2> tmp/fcst_2.nc
+    3> tmp/fcst_3.nc
+    4> tmp/fcst_9.nc
+    5> tmp/fcst_10.nc
+    6> tmp/fcst_11.nc
+cancel data/all
+ 
+! *************************************
+! deliberate errors
+set mode ignore
+ 
+! error - duplicate file
+fmrc my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc,tmp/fcst_2.nc,tmp/fcst_3.nc
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+! error - unknown dataset
+fmrc my_fmrc = XCAT(files,"tmp/no_exist.nc")
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+! error - inserting forecasts at two consecutive steps implies too many gaps
+fmrc my_fmrc = XCAT(files,"tmp/consecutive_month_fcst.nc")
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+! error - inserting out of sequence forecast
+fmrc my_fmrc = XCAT(files,"tmp/irregular_start_time_fcst.nc")
+SH DATA/BR/HIDDEN
+     currently SET data sets:
+ 
+set mode/last ignore
+*** Running ferret script: bn_aggregate_tef.jnl
+[?1034h! bn_aggregate_tef.F
+! 2/2016 *sh*
+! 3/2016 - modified to test single point axis aggregations on Z axis
+ 
+! to avoid re-creating the test files include argument "0" as in
+!  yes?  GO bn_aggregate_tef 0
+ 
+ 
+! exercise 6D aggregations: T, E, and F simultaneously
+ 
+! do not bother to echo the creation of files and the definitions of the
+! many time aggregations
+CANCEL MODE VERIFY
+ 
+show data/files/br
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f01_e3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e3_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e3_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e3_t3.nc
+ 
+    4> t_f01_e4
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e4_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e4_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e4_t3.nc
+ 
+    5> t_f01_e5
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e5_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e5_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e5_t3.nc
+ 
+    6> t_f02_e1
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_t3.nc
+ 
+    7> t_f02_e2
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_t3.nc
+ 
+    8> t_f02_e3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e3_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e3_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e3_t3.nc
+ 
+    9> t_f02_e4
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e4_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e4_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e4_t3.nc
+ 
+   10> t_f02_e5
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e5_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e5_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e5_t3.nc
+ 
+   11> t_f03_e1
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_t3.nc
+ 
+   12> t_f03_e2
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_t3.nc
+ 
+   13> t_f03_e3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e3_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e3_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e3_t3.nc
+ 
+   14> t_f03_e4
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e4_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e4_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e4_t3.nc
+ 
+   15> t_f03_e5
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e5_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e5_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e5_t3.nc
+ 
+   16> t_f04_e1
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e1_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e1_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e1_t3.nc
+ 
+   17> t_f04_e2
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e2_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e2_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e2_t3.nc
+ 
+   18> t_f04_e3
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e3_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e3_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3.nc
+ 
+   19> t_f04_e4
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e4_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e4_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e4_t3.nc
+ 
+   20> t_f04_e5
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e5_t1.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e5_t2.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e5_t3.nc
+ 
+   21> t_f05_e1
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e1_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e1_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e1_t3.nc
+ 
+   22> t_f05_e2
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e2_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e2_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e2_t3.nc
+ 
+   23> t_f05_e3
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e3_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e3_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e3_t3.nc
+ 
+   24> t_f05_e4
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e4_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e4_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e4_t3.nc
+ 
+   25> t_f05_e5
+          time-dependent data files:
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f05_e5_t1.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f05_e5_t2.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f05_e5_t3.nc
+ 
+   26> t_f06_e1
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e1_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e1_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e1_t3.nc
+ 
+   27> t_f06_e2
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e2_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e2_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e2_t3.nc
+ 
+   28> t_f06_e3
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e3_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e3_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e3_t3.nc
+ 
+   29> t_f06_e4
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e4_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e4_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e4_t3.nc
+ 
+   30> t_f06_e5
+          time-dependent data files:
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f06_e5_t1.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f06_e5_t2.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f06_e5_t3.nc
+ 
+   31> t_f07_e1
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e1_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e1_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e1_t3.nc
+ 
+   32> t_f07_e2
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e2_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e2_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e2_t3.nc
+ 
+   33> t_f07_e3
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e3_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e3_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e3_t3.nc
+ 
+   34> t_f07_e4
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e4_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e4_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e4_t3.nc
+ 
+   35> t_f07_e5
+          time-dependent data files:
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f07_e5_t1.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f07_e5_t2.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f07_e5_t3.nc
+ 
+   36> t_f08_e1
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e1_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e1_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e1_t3.nc
+ 
+   37> t_f08_e2
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e2_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e2_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e2_t3.nc
+ 
+   38> t_f08_e3
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e3_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e3_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e3_t3.nc
+ 
+   39> t_f08_e4
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e4_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e4_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e4_t3.nc
+ 
+   40> t_f08_e5
+          time-dependent data files:
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f08_e5_t1.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f08_e5_t2.nc
+16-OCT-1953 12:00 -> 16-SEP-1954 00:00    tmp/f08_e5_t3.nc
+ 
+   41> t_f09_e1
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e1_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e1_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e1_t3.nc
+ 
+   42> t_f09_e2
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e2_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e2_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e2_t3.nc
+ 
+   43> t_f09_e3
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e3_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e3_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e3_t3.nc
+ 
+   44> t_f09_e4
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e4_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e4_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e4_t3.nc
+ 
+   45> t_f09_e5
+          time-dependent data files:
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f09_e5_t1.nc
+16-JAN-1953 12:00 -> 16-DEC-1953 12:00    tmp/f09_e5_t2.nc
+16-JAN-1954 12:00 -> 16-DEC-1954 12:00    tmp/f09_e5_t3.nc
+ 
+   46> t_f10_e1
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e1_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e1_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e1_t3.nc
+ 
+   47> t_f10_e2
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e2_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e2_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e2_t3.nc
+ 
+   48> t_f10_e3
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e3_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e3_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e3_t3.nc
+ 
+   49> t_f10_e4
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e4_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e4_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e4_t3.nc
+ 
+   50> t_f10_e5
+          time-dependent data files:
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f10_e5_t1.nc
+16-APR-1953 00:00 -> 16-MAR-1954 12:00    tmp/f10_e5_t2.nc
+16-APR-1954 00:00 -> 16-MAR-1955 12:00    tmp/f10_e5_t3.nc
+ 
+   51> t_f11_e1
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e1_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e1_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e1_t3.nc
+ 
+   52> t_f11_e2
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e2_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e2_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e2_t3.nc
+ 
+   53> t_f11_e3
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e3_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e3_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e3_t3.nc
+ 
+   54> t_f11_e4
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e4_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e4_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e4_t3.nc
+ 
+   55> t_f11_e5
+          time-dependent data files:
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f11_e5_t1.nc
+16-JUL-1953 12:00 -> 16-JUN-1954 00:00    tmp/f11_e5_t2.nc
+16-JUL-1954 12:00 -> 16-JUN-1955 00:00    tmp/f11_e5_t3.nc
+ 
+   56> t_f04_e3_1v  (default)
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e3_t1_1v.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e3_t2_1v.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3_1v.nc
+ 
+ 
+! should share the same time axis
+show grid fcst[d=t_f01_e1]
+    GRID GFA1
+ name       axis              # pts   start                end                 subset
+ XAX       LONGITUDE           21mr   140E                 160E                full
+ YAX       LATITUDE            11 r   10N                  20N                 full
+ ZAX1      Z (m)                1 r   250                  250                 full
+ TRUEMONTH1 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
+ normal    E
+ normal    F
+show grid fcst[d=t_f01_e2]
+    GRID GFA1
+ name       axis              # pts   start                end                 subset
+ XAX       LONGITUDE           21mr   140E                 160E                full
+ YAX       LATITUDE            11 r   10N                  20N                 full
+ ZAX1      Z (m)                1 r   250                  250                 full
+ TRUEMONTH1 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
+ normal    E
+ normal    F
+ 
+! ======== TEST SET 1:  aggregate E first, then F
+ 
+! define te aggregations -- only the first 5 remain unhidden
+ENSEMBLE      te_f01 = t_f01_e1, t_f01_e2, t_f01_e3, t_f01_e4, t_f01_e5
+ENSEMBLE/hide te_f02 = t_f02_e1, t_f02_e2, t_f02_e3, t_f02_e4, t_f02_e5
+ENSEMBLE/hide te_f03 = t_f03_e1, t_f03_e2, t_f03_e3, t_f03_e4, t_f03_e5
+ENSEMBLE/hide te_f04 = t_f04_e1, t_f04_e2, t_f04_e3, t_f04_e4, t_f04_e5
+ENSEMBLE/hide te_f05 = t_f05_e1, t_f05_e2, t_f05_e3, t_f05_e4, t_f05_e5
+ENSEMBLE/hide te_f06 = t_f06_e1, t_f06_e2, t_f06_e3, t_f06_e4, t_f06_e5
+ENSEMBLE/hide te_f07 = t_f07_e1, t_f07_e2, t_f07_e3, t_f07_e4, t_f07_e5
+ENSEMBLE/hide te_f08 = t_f08_e1, t_f08_e2, t_f08_e3, t_f08_e4, t_f08_e5
+ENSEMBLE/hide te_f09 = t_f09_e1, t_f09_e2, t_f09_e3, t_f09_e4, t_f09_e5
+ENSEMBLE/hide te_f10 = t_f10_e1, t_f10_e2, t_f10_e3, t_f10_e4, t_f10_e5
+ENSEMBLE/hide te_f11 = t_f11_e1, t_f11_e2, t_f11_e3, t_f11_e4, t_f11_e5
+SHOW DATA/brief
+     currently SET data sets:
+    1> t_f01_e1
+    2> t_f01_e2
+    3> t_f01_e3
+    4> t_f01_e4
+    5> t_f01_e5
+   56> t_f04_e3_1v
+   57> te_f01     Ensemble aggregation
+   58> te_f02     Ensemble aggregation
+   59> te_f03     Ensemble aggregation
+   60> te_f04     Ensemble aggregation
+   61> te_f05     Ensemble aggregation
+   62> te_f06     Ensemble aggregation
+   63> te_f07     Ensemble aggregation
+   64> te_f08     Ensemble aggregation
+   65> te_f09     Ensemble aggregation
+   66> te_f10     Ensemble aggregation
+   67> te_f11  (default)  Ensemble aggregation
+SHOW DATA/FULL te_f11
+     currently SET data sets:
+   67> te_f11  (default)  Ensemble aggregation
+     Ensemble series of 5 datasets patterned on t_f11_e1
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:5       ...
+       (L=31:42)
+               on grid GEN11 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:5       ...
+       (L=31:42)
+               on grid GEN11 with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  
+ REALIZATION
+          1                                ...       ...       ...       ...       1:5       ...
+               on grid GEN with -1.E+34 for missing data
+             E=0.5:5.5  
+ 
+  time range: 16-JUL-1952 12:00 to 16-JUN-1955 00:00
+ 
+          Aggregated datasets:
+      1: t_f11_e1
+      2: t_f11_e2
+      3: t_f11_e3
+      4: t_f11_e4
+      5: t_f11_e5
+SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
+     currently SET data sets:
+   67> te_f11  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        6    F       te_f11
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 im_everywhere   CHAR        13   F       so promote me
+                                 long_name_mod   CHAR        7    F       L=31:42
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 long_name_mod   CHAR        7    F       L=31:42
+  
+ REALIZATION           FLOAT     long_name       CHAR        1    T       1
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+! define tef aggregation
+FMRC/HIDE tef = te_f01, te_f02, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+SHOW DATA/brief/files
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f01_e3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e3_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e3_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e3_t3.nc
+ 
+    4> t_f01_e4
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e4_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e4_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e4_t3.nc
+ 
+    5> t_f01_e5
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e5_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e5_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e5_t3.nc
+ 
+   56> t_f04_e3_1v
+          time-dependent data files:
+16-OCT-1950 12:00 -> 16-SEP-1951 00:00    tmp/f04_e3_t1_1v.nc
+16-OCT-1951 12:00 -> 16-SEP-1952 00:00    tmp/f04_e3_t2_1v.nc
+16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3_1v.nc
+ 
+   68> tef  (default)  Forecast aggregation
+          Aggregated datasets:
+      1 : te_f01
+      2 : te_f02
+      3 : te_f03
+      4 : te_f04
+      5 : te_f05
+      6 : te_f06
+      7 : te_f07
+      8 : te_f08
+      9 : te_f09
+      10: te_f10
+      11: te_f11
+show data/full tef
+     currently SET data sets:
+   68> tef  (default)  Forecast aggregation
+     Forecast series of 11 datasets patterned on te_f01
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  F=16-NOV-1949 09:36:15-AUG-1952 14:24  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:11
+             days since 01-JAN-1900 00:00:00 on grid FTI1 with -1.E+34 for missing data
+             F=16-NOV-1949 09:36:15-AUG-1952 14:24  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:5.5  F=16-NOV-1949 09:36:15-AUG-1952 14:24  
+ 
+  time range: 15.214 to 1080.2
+ 
+          Aggregated datasets:
+      1 : te_f01
+      2 : te_f02
+      3 : te_f03
+      4 : te_f04
+      5 : te_f05
+      6 : te_f06
+      7 : te_f07
+      8 : te_f08
+      9 : te_f09
+      10: te_f10
+      11: te_f11
+ 
+! simplest acess -- compact form -- just demonstrate it doesn't fail
+stat/brief fcst[i=11:12, j=5:6, l=31:32, m=1:2, n=5:6]
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 224.92
+ Maximum value: 237.87
+ Mean    value: 231.43 (unweighted average)
+ 
+! diagonal forecast view of ensemble mean
+let diag_fcst = fcst[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:5 at ave]
+ 
+! difference between the mean and the middle is zero within computational error
+let epsilon = 1 / 2^50   ! 52 mantissa bits in a double
+say using epsilon = `epsilon`
+ !-> MESSAGE/CONTINUE using epsilon = 8.8817842E-16
+using epsilon = 8.8817842E-16
+let rel_err = (diag_fcst[m=1:5 at ave]-diag_fcst[m=3])/diag_fcst[m=3]
+stat/brief/x=150E/y=15n IF ABS(rel_err) LT epsilon THEN 0.0 ELSE rel_err
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ 
+! warning message indicates fcst_2 is missing from a file
+ENSEMBLE te_f04_1v = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+SHOW DATA/ATT t_f04_e3_1v ! note atts im_everwhere vs im_not_everwhere
+     currently SET data sets:
+   56> t_f04_e3_1v
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(XAX)                  DOUBLE    units           CHAR        12   T       degrees_east
+                                 point_spacing   CHAR        4    T       even
+                                 axis            CHAR        1    T       X
+                                 modulo          DOUBLE      1    T       360
+                                 standard_name   CHAR        9    F       longitude
+                                 orig_file_axname
+                                                 CHAR        3    F       XAX
+  
+(YAX)                  DOUBLE    units           CHAR        13   T       degrees_north
+                                 point_spacing   CHAR        4    T       even
+                                 axis            CHAR        1    T       Y
+                                 standard_name   CHAR        8    F       latitude
+                                 orig_file_axname
+                                                 CHAR        3    F       YAX
+  
+(ZAX1)                 DOUBLE    units           CHAR        1    T       m
+                                 point_spacing   CHAR        4    T       even
+                                 axis            CHAR        1    T       Z
+                                 standard_name   CHAR        8    F       altitude
+                                 orig_file_axname
+                                                 CHAR        3    F       ZAX
+  
+(TRUEMONTH12)          DOUBLE    units           CHAR        30   T       days since 1900-01-01 00:00:00
+                                 axis            CHAR        1    T       T
+                                 bounds          CHAR        14   T       TRUEMONTH_bnds
+                                 time_origin     CHAR        10   T       1-JAN-1900
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        9    F       TRUEMONTH
+  
+ TRUEMONTH_bnds        DOUBLE
+  
+ FCST                  DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        13   T       some variable
+                                 im_everywhere   CHAR        13   F       so promote me
+                                 im_not_everywhere
+                                                 CHAR        19   F       so don't promote me
+                                 long_name_mod   CHAR        7    F       L=10:21
+  
+ REALIZATION           DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        1    T       3
+  
+SHOW DATA/ATT te_f04_1v  ! note atts im_everwhere vs im_not_everwhere
+     currently SET data sets:
+   69> te_f04_1v  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        9    F       te_f04_1v
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 im_everywhere   CHAR        13   F       so promote me
+                                 long_name_mod   CHAR        7    F       L=10:21
+  
+ REALIZATION           FLOAT     long_name       CHAR        1    T       1
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+! define fcst_2 as a LET/D variable and then do same calc
+let/d=t_f04_e3_1v fcst_2 = fcst + 2
+show data/br t_f04_e3_1v
+     currently SET data sets:
+   56> t_f04_e3_1v
+ENSEMBLE te_f04_letd = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+FMRC/hide tef_letd = te_f01, te_f02, te_f03, te_f04_letd, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+let diag_fcst_2 = fcst_2[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+let rel_err_2 = (diag_fcst_2[m=1:5 at ave]-diag_fcst_2[m=3])/diag_fcst_2[m=3]
+ 
+! can run in diagnostic mode and look for "eval FCST_2" to confirm LET/D eval
+set data tef_letd
+stat/brief/x=150E/y=15n diag_fcst_2
+ 
+ Total # of data points: 3960 (1*1*1*66*5*12)
+ # flagged as bad  data: 1980
+ Minimum value: 226.45
+ Maximum value: 277.75
+ Mean    value: 252.12 (unweighted average)
+stat/brief/x=150E/y=15n IF ABS(rel_err_2) LT epsilon THEN 0.0 ELSE rel_err_2
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ 
+! demonstrate redefining the LET/D variable without re-defining the agg
+! Look at the column 3 ("e3"), row 4 ("f04") to see  2.110 => 4.110
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1      2      3      4      5    
+                      1      2      3      4      5
+ 01-JAN-1950 /  1:  227.1  239.6  252.1  264.6  277.1
+ 01-APR-1950 /  2:  227.1  239.6  252.1  264.6  277.2
+ 01-JUL-1950 /  3:  227.0  239.5  252.0  264.5  277.0
+ 01-OCT-1950 /  4:  227.1  239.6  252.1  264.6  277.1
+ 01-JAN-1951 /  5:  227.1  239.7  252.2  264.7  277.2
+ 01-APR-1951 /  6:  227.2  239.7  252.2  264.8  277.3
+ 01-JUL-1951 /  7:  227.1  239.6  252.1  264.7  277.2
+ 01-OCT-1951 /  8:  227.2  239.7  252.2  264.7  277.2
+ 01-JAN-1952 /  9:  227.2  239.7  252.2  264.7  277.3
+ 01-APR-1952 / 10:  227.1  239.6  252.2  264.7  277.2
+ 01-JUL-1952 / 11:  227.2  239.7  252.2  264.7  277.2
+let/d=t_f04_e3_1v fcst_2 = fcst + 2 + 2   ! add 2
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1      2      3      4      5    
+                      1      2      3      4      5
+ 01-JAN-1950 /  1:  227.1  239.6  252.1  264.6  277.1
+ 01-APR-1950 /  2:  227.1  239.6  252.1  264.6  277.2
+ 01-JUL-1950 /  3:  227.0  239.5  252.0  264.5  277.0
+ 01-OCT-1950 /  4:  227.1  239.6  254.1  264.6  277.1
+ 01-JAN-1951 /  5:  227.1  239.7  252.2  264.7  277.2
+ 01-APR-1951 /  6:  227.2  239.7  252.2  264.8  277.3
+ 01-JUL-1951 /  7:  227.1  239.6  252.1  264.7  277.2
+ 01-OCT-1951 /  8:  227.2  239.7  252.2  264.7  277.2
+ 01-JAN-1952 /  9:  227.2  239.7  252.2  264.7  277.3
+ 01-APR-1952 / 10:  227.1  239.6  252.2  264.7  277.2
+ 01-JUL-1952 / 11:  227.2  239.7  252.2  264.7  277.2
+ 
+! agg members may have unique contexts on scalar axes of the aggregation
+! ... here the LET/D var is normal to Z
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+T[gt=fcst] + 1000
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1       2       3       4       5     
+                       1       2       3       4       5
+ 01-JAN-1950 /  1:    227.    240.    252.    265.    277.
+ 01-APR-1950 /  2:    227.    240.    252.    265.    277.
+ 01-JUL-1950 /  3:    227.    240.    252.    265.    277.
+ 01-OCT-1950 /  4:    227.    240.  19989.    265.    277.
+ 01-JAN-1951 /  5:    227.    240.    252.    265.    277.
+ 01-APR-1951 /  6:    227.    240.    252.    265.    277.
+ 01-JUL-1951 /  7:    227.    240.    252.    265.    277.
+ 01-OCT-1951 /  8:    227.    240.    252.    265.    277.
+ 01-JAN-1952 /  9:    227.    240.    252.    265.    277.
+ 01-APR-1952 / 10:    227.    240.    252.    265.    277.
+ 01-JUL-1952 / 11:    227.    240.    252.    265.    277.
+ 
+! ... here the LET/D var is averaged to a point in a pre-existing agg
+LET some_Z_function = Z[Z=0:100:10] + 1000
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+T[gt=fcst]+some_Z_function[Z=10:60 at ave]
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1       2       3       4       5     
+                       1       2       3       4       5
+ 01-JAN-1950 /  1:    227.    240.    252.    265.    277.
+ 01-APR-1950 /  2:    227.    240.    252.    265.    277.
+ 01-JUL-1950 /  3:    227.    240.    252.    265.    277.
+ 01-OCT-1950 /  4:    227.    240.  20024.    265.    277.
+ 01-JAN-1951 /  5:    227.    240.    252.    265.    277.
+ 01-APR-1951 /  6:    227.    240.    252.    265.    277.
+ 01-JUL-1951 /  7:    227.    240.    252.    265.    277.
+ 01-OCT-1951 /  8:    227.    240.    252.    265.    277.
+ 01-JAN-1952 /  9:    227.    240.    252.    265.    277.
+ 01-APR-1952 / 10:    227.    240.    252.    265.    277.
+ 01-JUL-1952 / 11:    227.    240.    252.    265.    277.
+ 
+! same as preceding, but the LET/D is included in the agg as defined
+ENSEMBLE te_f04_letd_new = t_f04_e1, t_f04_e2, t_f04_e3_1v, t_f04_e4, t_f04_e5
+FMRC/hide tef_letd_new = te_f01, te_f02, te_f03, te_f04_letd, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd_new
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1       2       3       4       5     
+                       1       2       3       4       5
+ 01-JAN-1950 /  1:    227.    240.    252.    265.    277.
+ 01-APR-1950 /  2:    227.    240.    252.    265.    277.
+ 01-JUL-1950 /  3:    227.    240.    252.    265.    277.
+ 01-OCT-1950 /  4:    227.    240.  20024.    265.    277.
+ 01-JAN-1951 /  5:    227.    240.    252.    265.    277.
+ 01-APR-1951 /  6:    227.    240.    252.    265.    277.
+ 01-JUL-1951 /  7:    227.    240.    252.    265.    277.
+ 01-OCT-1951 /  8:    227.    240.    252.    265.    277.
+ 01-JAN-1952 /  9:    227.    240.    252.    265.    277.
+ 01-APR-1952 / 10:    227.    240.    252.    265.    277.
+ 01-JUL-1952 / 11:    227.    240.    252.    265.    277.
+ 
+! deliberate errors:
+SET MODE IGNORE
+set data tef_letd
+! a new LET/D definition that alters the grid of the result is not acceptable
+let/d=t_f04_e3_1v fcst_2 = X[x=1:5]+Y[gy=fcst]+Z[gz=fcst]+T[gt=fcst] ! X ax chg
+list/x=150E/y=15n/L=10 fcst_2
+ 
+let/d=t_f04_e3_1v fcst_2 = X[gx=fcst]+Y[gy=fcst]+Z[gz=fcst]+T[T=1:36:1] ! T chg
+list/x=150E/y=15n/L=10 fcst_2
+ 
+! LET definition may not compress an axis of N>1
+let/d=t_f04_e3_1v fcst_2 = fcst[i=1:5 at ave]
+list/x=150E/y=15n/L=10 fcst_2
+SET MODE/LAST IGNORE
+ 
+! now restore the original definition and verify it again works
+let/d=t_f04_e3_1v fcst_2 = fcst + 2
+list/x=150E/y=15n/L=10 fcst_2
+             VARIABLE : another variable
+             DATA SET : Forecast series of 11 datasets patterned on te_f01
+             FILENAME : tef_letd
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 150E
+             LATITUDE : 15N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1      2      3      4      5    
+                      1      2      3      4      5
+ 01-JAN-1950 /  1:  227.1  239.6  252.1  264.6  277.1
+ 01-APR-1950 /  2:  227.1  239.6  252.1  264.6  277.2
+ 01-JUL-1950 /  3:  227.0  239.5  252.0  264.5  277.0
+ 01-OCT-1950 /  4:  227.1  239.6  252.1  264.6  277.1
+ 01-JAN-1951 /  5:  227.1  239.7  252.2  264.7  277.2
+ 01-APR-1951 /  6:  227.2  239.7  252.2  264.8  277.3
+ 01-JUL-1951 /  7:  227.1  239.6  252.1  264.7  277.2
+ 01-OCT-1951 /  8:  227.2  239.7  252.2  264.7  277.2
+ 01-JAN-1952 /  9:  227.2  239.7  252.2  264.7  277.3
+ 01-APR-1952 / 10:  227.1  239.6  252.2  264.7  277.2
+ 01-JUL-1952 / 11:  227.2  239.7  252.2  264.7  277.2
+ 
+! ======== TEST SET 2:  aggregate F first, then E
+FMRC      tf_e1 = t_f01_e1, t_f02_e1, t_f03_e1, t_f04_e1, t_f05_e1, t_f06_e1, t_f07_e1, t_f08_e1, t_f09_e1, t_f10_e1, t_f11_e1
+FMRC/hide tf_e2 = t_f01_e2, t_f02_e2, t_f03_e2, t_f04_e2, t_f05_e2, t_f06_e2, t_f07_e2, t_f08_e2, t_f09_e2, t_f10_e2, t_f11_e2
+FMRC/hide tf_e3 = t_f01_e3, t_f02_e3, t_f03_e3, t_f04_e3, t_f05_e3, t_f06_e3, t_f07_e3, t_f08_e3, t_f09_e3, t_f10_e3, t_f11_e3
+FMRC/hide tf_e4 = t_f01_e4, t_f02_e4, t_f03_e4, t_f04_e4, t_f05_e4, t_f06_e4, t_f07_e4, t_f08_e4, t_f09_e4, t_f10_e4, t_f11_e4
+FMRC/hide tf_e5 = t_f01_e5, t_f02_e5, t_f03_e5, t_f04_e5, t_f05_e5, t_f06_e5, t_f07_e5, t_f08_e5, t_f09_e5, t_f10_e5, t_f11_e5
+ 
+! aggregate these F-aggs onto an E axis
+ENSEMBLE/HIDE tfe = tf_e1, tf_e2, tf_e3, tf_e4, tf_e5
+ 
+! F-aggregate inherits the TF-auxiliary variable pointers from the members
+SHOW DATA/ATTRIB tfe   ! also notice the promotion of fcst.im_everywhere
+     currently SET data sets:
+   79> tfe  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        3    F       tfe
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        25   T       RUN TF_TIMES ZAX1 YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+                                 im_everywhere   CHAR        13   F       so promote me
+  
+ TF_TIMES              FLOAT     long_name       CHAR        25   T       Forecast time step matrix
+                                 units           CHAR        31   T       days since 01-JAN-1900 00:00:00
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 _CoordinateAxisType
+                                                 CHAR        4    T       Time
+                                 calendar        CHAR        9    T       GREGORIAN
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+                                 coordinates     CHAR        31   T       TF_CAL_F1 TF_TIMES ZAX1 YAX XAX
+                                 _ftime2d        CHAR        8    T       TF_TIMES
+                                 _cal_t_ax       CHAR        8    T       TF_CAL_T
+                                 _lag_f_ax       CHAR        8    T       TF_LAG_F
+  
+ 
+! the 2-D coordinate variable (TF_TIMES) should be 2D, only, in T and F
+SHOW DATA tfe
+     currently SET data sets:
+   79> tfe  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:11
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:5       1:11
+       (L=1:12)
+ 
+ 
+! confirm that the TF_TIMES variable is accessible in a T-F-E aggregation
+LIST/NOHEAD/L=18:19/N=5:6 tf_times   ! subset access
+ 01-JAN-1951 / 5:  19159.  19190.
+ 01-APR-1951 / 6:  19251.  19282.
+STAT/BRIEF tf_times
+ 
+ Total # of data points: 396 (1*1*1*36*1*11)
+ # flagged as bad  data: 0
+ Minimum value: 18278
+ Maximum value: 20254
+ Mean    value: 19266 (unweighted average)
+ 
+! confirm that the T-F-E agg and the T-E-F agg get the same results
+! exactlyidentically zero STAT output means correct functioning
+let tfe_tef_ave_diff = (diag_fcst[d=tfe,m=1:5 at ave]-diag_fcst[d=tef,m=1:5 at ave])
+stat/brief/x=150E/y=15n tfe_tef_ave_diff
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+let tfe_tef_diff = (diag_fcst[d=tfe]-diag_fcst[d=tef])
+stat/brief/x=150E/y=15n tfe_tef_diff[m=1:5 at ave]
+ 
+ Total # of data points: 792 (1*1*1*66*1*12)
+ # flagged as bad  data: 396
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ 
+! missing forecast (t_f02_e2) in a T-F-E aggregation
+FMRC tf_e2_gap = t_f01_e2, -, t_f03_e2, t_f04_e2, t_f05_e2, t_f06_e2, t_f07_e2, t_f08_e2, t_f09_e2, t_f10_e2, t_f11_e2
+ENSEMBLE tfe_gap = tf_e1, tf_e2_gap, tf_e3, tf_e4, tf_e5
+LIST/l=10/i=10/j=10/k=1 fcst[d=tfe_gap]
+             VARIABLE : some variable
+             DATA SET : Ensemble series of 5 datasets patterned on tf_e1
+             FILENAME : tfe_gap
+             SUBSET   : 5 by 11 points (E (realization)-FORECAST)
+             LONGITUDE: 149E
+             LATITUDE : 19N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                      1      2      3      4      5    
+                      1      2      3      4      5
+ 01-JAN-1950 /  1:  225.2  237.7  250.2  262.8  275.3
+ 01-APR-1950 /  2:  225.3   ....  250.3  262.9  275.4
+ 01-JUL-1950 /  3:  225.3  237.8  250.3  262.8  275.4
+ 01-OCT-1950 /  4:  225.4  237.9  250.5  263.0  275.5
+ 01-JAN-1951 /  5:  225.5  238.0  250.5  263.0  275.6
+ 01-APR-1951 /  6:  225.5  238.0  250.6  263.1  275.6
+ 01-JUL-1951 /  7:  225.5  238.1  250.6  263.1  275.7
+ 01-OCT-1951 /  8:  225.6  238.1  250.6  263.2  275.7
+ 01-JAN-1952 /  9:  225.6  238.1  250.6  263.2  275.7
+ 01-APR-1952 / 10:  225.6  238.1  250.7  263.2  275.7
+ 01-JUL-1952 / 11:  225.6  238.2  250.7  263.3  275.8
+ 
+! missing ensemble member (t_f02_e2)in a T-E-F agregation
+ENSEMBLE te_f02_gap = t_f02_e1, -, t_f02_e3, t_f02_e4, t_f02_e5
+FMRC tef_gap = te_f01, te_f02_gap, te_f03, te_f04
+LIST/l=10/i=10/j=10/k=1 fcst[d=tef_gap]
+             VARIABLE : some variable
+             DATA SET : Forecast series of 4 datasets patterned on te_f01
+             FILENAME : tef_gap
+             SUBSET   : 5 by 4 points (E (realization)-FORECAST)
+             LONGITUDE: 149E
+             LATITUDE : 19N
+             Z (m)    : 250
+             MODEL ELAPSED TIME (day): 289.07
+             Initialization time increases down page. 
+                     1      2      3      4      5    
+                     1      2      3      4      5
+ 01-JAN-1950 / 1:  225.2  237.7  250.2  262.8  275.3
+ 01-APR-1950 / 2:  225.3   ....  250.3  262.9  275.4
+ 01-JUL-1950 / 3:  225.3  237.8  250.3  262.8  275.4
+ 01-OCT-1950 / 4:  225.4  237.9  250.5  263.0  275.5
+ 
+! deliberate errors
+set mode ignore
+! unequal ensemble axis lengths
+ENSEMBLE te_f02_short = t_f02_e1, t_f02_e2, t_f02_e3, t_f02_e4   ! shorter than others
+FMRC tef_short = te_f01, te_f02_short, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
+ 
+! unequal forecast axis lengths
+FMRC tf_e2_short = t_f01_e2, t_f02_e2, t_f03_e2, t_f04_e2  ! shorter than others
+ENSEMBLE tfe_short = tf_e1, tf_e2_short, tf_e3, tf_e4, tf_e5
+ 
+! ensemble created with already-ensemble components
+ENSEMBLE te_f01 = t_f01_e1, t_f01_e2, t_f01_e3, t_f01_e4, t_f01_e5
+ENSEMBLE te_f03 = t_f03_e1, t_f03_e2, t_f03_e3, t_f03_e4, t_f03_e5
+ENSEMBLE te_f04 = t_f04_e1, t_f04_e2, t_f04_e3, t_f04_e4, t_f04_e5
+ENSEMBLE bad_ens = te_f01, te_f03, te_f04
+ 
+! fmrc created with already-fmrc components
+FMRC tf_e1 = t_f01_e1, t_f02_e1, t_f03_e1, t_f04_e1
+FMRC tf_e3 = t_f01_e3, t_f02_e3, t_f03_e3, t_f04_e3
+FMRC tf_e4 = t_f01_e4, t_f02_e4, t_f03_e4, t_f04_e4
+FMRC bad_fmrc = tf_e1, tf_e3, tf_e4
+ 
+set mode/last ignore
+ 
+CANCEL DATA/ALL
+*** Running ferret script: bn_dataset_qualifier.jnl
+[?1034h! bn_dataset_qualifier
+! see ticket 2632
+! Test change from /D= to /DATASET= qualifier for LIST, PLOT, LOAD, etc
+! Various commands taken from other scripts.
+ 
+! LIST/DAT=
+use gt4d011
+use coads_climatology
+ 
+let nv = ..nvars
+let nd = ..ndims
+let vnames = ..varnames
+list/DAT=1 nv, nd
+             DATA SET: ./gt4d011.cdf
+             X: 1
+ Column  1: NV is ..NVARS
+ Column  2: ND is ..NDIMS
+             NV    ND
+I / *:     12.00  21.00
+list/DAT=1 vnames
+             VARIABLE : ..VARNAMES
+             FILENAME : gt4d011.cdf
+             SUBSET   : 12 points (X)
+ 1    /  1:"PS3DT2"
+ 2    /  2:"TEMP"  
+ 3    /  3:"SALT"  
+ 4    /  4:"PS3DU2"
+ 5    /  5:"U"     
+ 6    /  6:"V"     
+ 7    /  7:"PS3DW2"
+ 8    /  8:"W"     
+ 9    /  9:"PS2DU2"
+ 10   / 10:"TAUX"  
+ 11   / 11:"TAUY"  
+ 12   / 12:"PSI"   
+ 
+list/DAT=coads_climatology nv,nd
+             DATA SET: ./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
+             X: 1
+ Column  1: NV is ..NVARS
+ Column  2: ND is ..NDIMS
+             NV    ND
+I / *:     12.00  21.00
+ 
+! SET ATT/OUTPUT/DAT=
+! DEFINE ATT/OUTPUT/DAT=
+! CANCEL ATT/OUTPUT/DAT=
+can data/all
+use err491_attval
+use gt4d011
+set att/output/DATA=1 ..dt_internal
+define attribute/output/DATA=1 elev.newatt = 7
+save/clobber/file=a.nc/outtype=float elev[d=1]
+use a.nc
+sh att .
+     attributes for dataset: ./a.nc
+ ..history = PyFERRET V7 (beta/dbg) 17-Jun-16 
+ ..Conventions = CF-1.6 
+ ..dt_internal = 15
+sh att elev
+     attributes for dataset: ./a.nc
+ ELEV.missing_value = -32767
+ ELEV._FillValue = -32768
+ ELEV.long_name = Surface elevation 
+ ELEV.units = meter 
+ ELEV.scale_factor = 0.000274675
+ ELEV.add_offset = 0
+ ELEV.newatt = 7
+ ELEV.Ferret_Precision_Note = This variable written using Ferret was converted from SHORT to FLOAT 
+ ELEV.history = From err491_attval 
+can data a
+cancel attribute/output/DATASET=1  ..dt_internal
+cancel attribute/output/DATASET=1  elev.newatt
+save/clobber/file=a.nc/outtype=float elev[d=1]
+use a.nc
+sh att .
+     attributes for dataset: ./a.nc
+ ..history = PyFERRET V7 (beta/dbg) 17-Jun-16 
+ ..Conventions = CF-1.6 
+sh att elev
+     attributes for dataset: ./a.nc
+ ELEV.missing_value = -32767
+ ELEV._FillValue = -32768
+ ELEV.long_name = Surface elevation 
+ ELEV.units = meter 
+ ELEV.scale_factor = 0.000274675
+ ELEV.add_offset = 0
+ ELEV.Ferret_Precision_Note = This variable written using Ferret was converted from SHORT to FLOAT 
+ ELEV.history = From err491_attval 
+ 
+! LOAD/DAT=
+use coads_climatology
+use levitus_climatology
+ 
+load/DAT=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
+show grid
+ Default grid for DEFINE VARIABLE is ABSTRACT
+ Last successful data access was on grid (G009)
+    GRID (G009)
+ name       axis              # pts   start                end                 subset
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
+ (AX018)   LATITUDE           201 r   10S                  10N                 200 pts
+ normal    Z
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
+ normal    E
+ normal    F
+ 
+! LIST/DAT=, LET/DAT=,
+can dat/all
+use err491_attval
+use coads_climatology
+use levitus_climatology
+use ocean_atlas_temp
+use gt4d011
+ 
+let a = temp.units
+list/DAT=3 a
+             VARIABLE : TEMP.UNITS
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+        "DEG C"
+list/DAT=3 temp.history
+             VARIABLE : TEMP.HISTORY
+             FILENAME : levitus_climatology.cdf
+             X        : 1
+        "From levitus_climatology"
+ 
+! PLOT, SHADE, FILL, CONTOUR, VECTOR, STAT
+! various plot and other action commands with /DATA
+ 
+let/DAT=2 temp = sst + 0*z[z=1:5:1]
+sh dat 2
+     currently SET data sets:
+    2> ./coads_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ ------------------------------
+ TEMP[D=coads_climatology] = SST + 0*Z[Z=1:5:1]
+ 
+plot/DATASET=2 sst[L=1,y=0,x=300:360]
+fill/DAT=2 sst[L=1,x=30:150,y=-60:0]
+contour/over/DATA=3 temp[Z=0]
+shade/DATA=2 sst[x=180,y=-10:10]
+vec/DAT=gt4d011/l=3 taux,tauy
+ 
+! STAT, LIST
+stat/DATASET=1 elev
+ 
+             Surface elevation
+             LONGITUDE: 135.5W(-135.5) to 135W(-135)
+             LATITUDE: 58.6N to 59.5N
+             Z:  N/A
+             T (day): 1.7837
+             E:  N/A
+             F:  N/A
+             DATA SET: ./err491_attval.cdf
+ 
+ Total # of data points: 4445 (35*127*1*1*1*1)
+ # flagged as bad  data: 3065
+ Minimum value: 2.9225
+ Maximum value: 3.0058
+ Mean    value: 2.9799 (unweighted average)
+ Standard deviation: 0.017437
+shade/DAT=1 elev
+list/DAT=1/x=-135.3/y=58.8 elev
+             VARIABLE : Surface elevation (meter)
+             DATA SET : K-Bay OAR3d model (200m)
+             FILENAME : err491_attval.cdf
+             LONGITUDE: 135.3W(-135.3)
+             LATITUDE : 58.8N
+             T (day)  : 1.7837
+          2.977
+ 
+! POLYGON/DAT
+define axis/x=330:350:1/units=degrees_east xax10
+define axis/y=-10:10:1/units=degrees_north yax10
+ 
+let fsst = sst[l=3,gx=xax10,gy=yax10]
+let lon = xsequence(x[gx=xax10] + 0*y[gy=yax10])
+let lat = xsequence(0*x[gx=xax10] + y[gy=yax10])
+shade/pal=white/nokey/nolab/DATA=2 sst[l=1,x=300:310,y=-10:10]   ! Set up plot params for polymark.jnl
+go polymark poly/DATA=2/key/title="Polygon test", lon, lat, xsequence(fsst), square, 1.2
+ 
+ 
+! Commands that have another qualifier also starting with /D
+! LIST/DATASET= with /DEFLATE
+cancel data/all
+use levitus_climatology
+use gt4d011
+use coads_climatology
+list/form=cdf/ncformat=4/DEFLATE/file=a.nc/clobber/DATA=1 temp
+ 
+! PLOT/DASH with /DATA=
+plot/dash/x=180/z=0/DATASET=1 temp
+ 
+! VECTOR/FLOW/DATA=/DENSITY
+flow/DAT=2/den=3/L=3 taux,tauy
+*** Running ferret script: bn_speedtest.jnl
+[?1034h! bn_speedtest.jnl
+! issue large numbers of commands, timing with clock time
+can mode verify
+10K LET commands LET a = 0 takes  1.241  seconds
+Second 10K LET commands LET a = 0 takes  2.8  seconds
+5K LOAD with transform takes  3.904  seconds
+*** Running ferret script: bn_show_noupcase.jnl
+[?1034h! bn_show_noupcase.jnl
+! 1/2016 ticket 1796
+ 
+cancel mode upcase
+ 
+ 
+! Previously this mode acted only when saving to netCDf.
+! Now applies to SHOW commands of all sorts, as well as `return=*axis`
+ 
+ 
+ 
+! User variable with lowercase letters in the name
+ 
+DEFINE AXIS/t=1-jan-1999:31-jan-1999:1/units=days/t0=31-dec-1998 tday
+LET MyUpperLowerCaseVar = x[x=1:10] + t[gt=tday]
+show var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     MyUpperLowerCaseVar = X[X=1:10] + T[GT=TDAY]
+show grid MyUpperLowerCaseVar
+    GRID (G001)
+ name       axis              # pts   start                end                 subset
+ ABSTRACT  X             99999999 r   1                    1.E+08              9 pts
+ normal    Y
+ normal    Z
+ tday      TIME                31 r   01-JAN-1999 00:00    31-JAN-1999 00:00   full
+ normal    E
+ normal    F
+ 
+ 
+! Files have variable and axis names in mixed case.
+ 
+USE a1478.nc
+USE a_cartesian_bug1179.nc
+show data
+     currently SET data sets:
+    1> ./a1478.nc
+ name     title                             I         J         K         L         M         N
+ lat1_5_bnds
+                                           1:2       1:5       ...       ...       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+ 
+    2> ./a_cartesian_bug1179.nc  (default)
+ name     title                             I         J         K         L         M         N
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ 
+ 
+! Previously the RETURN= gave the capitalized axis names
+say `temp,return=zaxis`
+ !-> MESSAGE/CONTINUE zt
+zt
+say `temp,return=xaxis`
+ !-> MESSAGE/CONTINUE grid_x_T
+grid_x_T
+ 
+sh axis `temp,return=xaxis`
+ !-> sh axis grid_x_T
+ name       axis              # pts   start                end
+ grid_x_T  LONGITUDE            1 r   79E                  79E
+   Axis span (to cell edges) = 1
+sh axis/x `temp,return=xaxis`
+ !-> sh axis/x grid_x_T
+ name       axis              # pts   start                end
+ grid_x_T  LONGITUDE            1 r   79E                  79E
+   Axis span (to cell edges) = 1
+ 
+       I     X                   XBOX      XBOXLO
+       1>  79E                   1          78.5E
+ 
+! Define an output variable with some axes from each dataset.
+! (the variable definitions have been upcased. Beyond the scope of this fix...)
+ 
+LET/D=1 zvar = 2*temp[d=2]
+LET/D=2 newvar =  0*zvar[d=2] + olr[d=1]
+ 
+show data
+     currently SET data sets:
+    1> ./a1478.nc
+ name     title                             I         J         K         L         M         N
+ lat1_5_bnds
+                                           1:2       1:5       ...       ...       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+ ------------------------------
+ zvar[D=a1478] = 2*TEMP[D=2]
+ 
+    2> ./a_cartesian_bug1179.nc  (default)
+ name     title                             I         J         K         L         M         N
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ ------------------------------
+ newvar[D=a_cartesian_bug1179] = 0*ZVAR[D=2] + OLR[D=1]
+ 
+go bn_reset
+cancel mode verify
+ 
+ 
+! xml output
+ 
+USE a_cartesian_bug1179.nc
+ 
+say/quiet <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
+<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
+say/quiet <data>
+<data>
+ 
+show var/xml
+show 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="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>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[TIME]]></value>
+</attribute>
+</axis>
+<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="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>
+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="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>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[TIME]]></value>
+</attribute>
+</axis>
+<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="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 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>
+</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>
+</axes>
+SHO AXIS/XML `temp,return=taxis`
+ !-> SHO AXIS/XML TIME
+<axes>
+<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>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[TIME]]></value>
+</attribute>
+</axis>
+</axes>
+ 
+! Define a dataset variable
+! SHOW/XML commands list it w/ its dataset (even if dataset is not default)
+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">
+<title> </title>
+<var name="temp" />
+<var name="temp_180" />
+</dataset>
+</datasets>
+ 
+USE a1478.nc
+SHOW DATA/XML
+<datasets>
+<dataset name="./a_cartesian_bug1179.nc" default="false">
+<title> </title>
+<var name="temp" />
+<var name="temp_180" />
+</dataset>
+<dataset name="./a1478.nc" default="true">
+<title> </title>
+<var name="lat1_5_bnds" />
+<var name="olr" />
+</dataset>
+</datasets>
+SHO DATA/VAR/XML
+<datasets>
+<dataset name="./a_cartesian_bug1179.nc" default="false">
+<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>
+<var name="temp_180">
+<attribute name="definition" type="char">
+   <value><![CDATA[TEMP[X=79E:79E at AVE]]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[TEMP[X=79E:79E at AVE]]]></value>
+</attribute>
+<grid name="GHU1">
+<axes>
+<yaxis>grid_y_T</yaxis>
+<zaxis>zt</zaxis>
+<taxis>TIME</taxis>
+</axes>
+</grid>
+</var>
+</dataset>
+</datasets>
+<axes>
+<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>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[TIME]]></value>
+</attribute>
+</axis>
+<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="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>
+<dataset name="./a1478.nc" default="true">
+<title> </title>
+<var name="lat1_5_bnds">
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<grid name="GPY1">
+<axes>
+<xaxis>bnds</xaxis>
+<yaxis>lat1_5</yaxis>
+</axes>
+</grid>
+</var>
+<var name="olr">
+<attribute name="units" type="char">
+   <value><![CDATA[watts/m2]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[outgoing longwave radiation]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-999</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-999</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<grid name="GPY2">
+<axes>
+<xaxis>lon1_5</xaxis>
+<yaxis>lat1_5</yaxis>
+<taxis>time1478</taxis>
+</axes>
+</grid>
+</var>
+</dataset>
+</datasets>
+<axes>
+<axis name="time1478">
+<attribute name="direction" type="char">
+   <value><![CDATA[L]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>3</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>14782.5</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>15512.5</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[DOUBLE]]></value>
+</attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[T]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[time1478]]></value>
+</attribute>
+</axis>
+<axis name="lat1_5">
+<attribute name="direction" type="char">
+   <value><![CDATA[J]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>5</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>-89.49438</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>-81.91011</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[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[lat1_5]]></value>
+</attribute>
+<attribute name="bounds" type="char">
+   <value>lat1_5_bnds</value>
+</attribute>
+</axis>
+<axis name="lon1_5">
+<attribute name="direction" type="char">
+   <value><![CDATA[I]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>5</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>1.25</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>11.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[DOUBLE]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[lon1_5]]></value>
+</attribute>
+</axis>
+<axis name="bnds">
+<attribute name="direction" type="char">
+   <value><![CDATA[I]]></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.
+CAN DATA/ALL
+CAN VAR/ALL
+ 
+USE a1478
+USE a_cartesian_bug1179
+ 
+! Define a dataset variable
+LET/D=a1478 temp_20 temp[Z=0:20 at SUM]
+ 
+! Define a global variable
+LET t30 = temp[Z=0:30 at SUM]
+ 
+! Another variable, setting title, units, bad flag.
+LET/UNITS="Deg C"/BAD=100/TITLE="Indefinite integral of SALT" salty = salt[Z=@IIN]
+ 
+ 
+! list tha variables
+SHO VAR/XML
+<global>
+<var name="t30">
+<attribute name="definition" type="char">
+   <value><![CDATA[TEMP[Z=0:30 at SUM]]]></value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<grid name="GHU1">
+<axes>
+<xaxis>grid_x_T</xaxis>
+<yaxis>grid_y_T</yaxis>
+<taxis>TIME</taxis>
+</axes>
+</grid>
+</var>
+</global>
+ 
+set mode/last upcase
+ 
+*** Running ferret script: bn_letd_attributes.jnl
+[?1034h! bn_letd_attributes.jnl
+! Allow for the same variable name defined with LET/D in multiple datasets.
+! See ticket 2352.  Previously for all user variables the
+! attribute information stored was in fake uvar-dataset = -1.
+! Now if the variable is a LET/D variable, it is stored with
+! the attribute information of the dataset.
+ 
+ 
+! See the variable defined with LET/D in SHOW DAT, SHOW DAT/ATT
+! and with SHOW ATT
+ 
+use coads_climatology
+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)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ ------------------------------
+ MYVAR[D=coads_climatology] = 1
+ 
+ 
+show dat/att 1
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        28   T       FERRET V4.91 (GUI)  1-Mar-99
+  
+(COADSX)               DOUBLE    units           CHAR        12   T       degrees_east
+                                 modulo          CHAR        1    T
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSX
+  
+(COADSY)               DOUBLE    units           CHAR        13   T       degrees_north
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        6    F       COADSY
+  
+(TIME)                 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
+                                                 CHAR        4    F       TIME
+  
+ SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
+                                 _FillValue      FLOAT       1    T       -1.E+34
+                                 long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
+                                 history         CHAR        22   T       From coads_climatology
+                                 units           CHAR        5    T       Deg C
+  
+ ------------------------------
+ myvar[D=coads_climatology]      long_name       CHAR        11   T       coads myvar
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+show att myvar
+     attributes for dataset: ./coads_climatology.cdf
+ myvar.long_name = coads myvar 
+ myvar.missing_value = -1.E+34
+ 
+! If there is also a global variable of the same name, SHOW VAR
+! and SHOW ATT list results for both variables
+ 
+let/title="Global myvar" myvar = 0  ! global
+show att myvar
+     attributes for user-defined variables
+ myvar.long_name = Global myvar 
+ myvar.missing_value = -1.E+34
+ 
+! Now a LET/D variable with the same name on a second datset.
+! SHOW ATT lists results for the current datset and any global variables
+ 
+use levitus_climatology
+let/d=2/title="Levitus myvar" myvar = 2
+show dat 2
+     currently SET data sets:
+    2> ./levitus_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ ------------------------------
+ MYVAR[D=levitus_climatology] = 2
+ 
+show dat/att 2
+     currently SET data sets:
+    2> ./levitus_climatology.cdf  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        24   T       FERRET V5.22    5-Apr-01
+  
+(XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
+                                 modulo          CHAR        1    T
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
+  
+(YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
+  
+(ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
+                                 positive        CHAR        4    T       down
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
+  
+ TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
+                                 _FillValue      FLOAT       1    T       -1.E+10
+                                 long_name       CHAR        11   T       TEMPERATURE
+                                 history         CHAR        24   T       From levitus_climatology
+                                 units           CHAR        5    T       DEG C
+  
+ ------------------------------
+ myvar[D=levitus_climatology]    long_name       CHAR        13   T       Levitus myvar
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+show att myvar
+     attributes for user-defined variables
+ myvar.long_name = Global myvar 
+ myvar.missing_value = -1.E+34
+ 
+show att/d=1 myvar
+     attributes for dataset: ./coads_climatology.cdf
+ myvar.long_name = coads myvar 
+ myvar.missing_value = -1.E+34
+ 
+! ..varnames is the list of file variables. Now to include LET/D variables
+ 
+let vnames = ..varnames
+list vnames
+             VARIABLE : ..VARNAMES
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1:"TEMP" 
+ 2   / 2:"myvar"
+ 
+ 
+set data 1
+list vnames
+             VARIABLE : ..VARNAMES
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 2 points (X)
+ 1   / 1:"SST"  
+ 2   / 2:"myvar"
+ 
+ 
+! CANCEL VAR deletes the variables from the linked-list attribute structure.
+cancel var/all
+show dat
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+    2> ./levitus_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ 
+ 
+show dat/att 2
+     currently SET data sets:
+    2> ./levitus_climatology.cdf
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        24   T       FERRET V5.22    5-Apr-01
+  
+(XAXLEVITR1_160)       DOUBLE    units           CHAR        12   T       degrees_east
+                                 modulo          CHAR        1    T
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        14   F       XAXLEVITR1_160
+  
+(YAXLEVITR1_90)        DOUBLE    units           CHAR        13   T       degrees_north
+                                 point_spacing   CHAR        4    T       even
+                                 orig_file_axname
+                                                 CHAR        13   F       YAXLEVITR1_90
+  
+(ZAXLEVITR1_1)         DOUBLE    units           CHAR        6    T       METERS
+                                 positive        CHAR        4    T       down
+                                 orig_file_axname
+                                                 CHAR        12   F       ZAXLEVITR1_1
+  
+ TEMP                  FLOAT     missing_value   FLOAT       1    T       -1.E+10
+                                 _FillValue      FLOAT       1    T       -1.E+10
+                                 long_name       CHAR        11   T       TEMPERATURE
+                                 history         CHAR        24   T       From levitus_climatology
+                                 units           CHAR        5    T       DEG C
+  
+ 
+! Redefine our LET/D variables
+ 
+use coads_climatology
+let/d=1/title="coads myvar" myvar = 1
+ 
+use levitus_climatology
+let/d=2/title="Levitus myvar" myvar = 2
+ 
+! Define new attributes on the file variable and LET/D variable
+! in the default dataset
+ 
+define att/output temp.my_new_att="temperature attrib"
+define att/output myvar.units="meters"
+show att temp
+     attributes for dataset: ./levitus_climatology.cdf
+ TEMP.missing_value = -1.E+10
+ TEMP._FillValue = -1.E+10
+ TEMP.long_name = TEMPERATURE 
+ TEMP.history = From levitus_climatology 
+ TEMP.units = DEG C 
+ TEMP.my_new_att = temperature attrib 
+show att myvar
+     attributes for dataset: ./levitus_climatology.cdf
+ myvar.long_name = Levitus myvar 
+ myvar.missing_value = -1.E+34
+ myvar.units = meters 
+ 
+! use /D= to define an attribute for a file-specific var
+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
+ myvar.long_name = coads myvar 
+ myvar.missing_value = -1.E+34
+ myvar.units = feet 
+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
+ myvar.long_name = Levitus myvar 
+ myvar.missing_value = -1.E+34
+ myvar.units = meters 
+ myvar.standard_name = None 
+save/clobber/file=a.nc myvar[d=2]
+sp ncdump -h a.nc >> all_ncdump.out
+ 
+*** Running ferret script: bn_list_clim_axes.jnl
+[?1034h! bn_list_clim_axes.jnl
+! *acm* 3/16
+! Show and list coordinates for climatological axes
+! that are pre-defined in Ferret
+ 
+show axis seasonal_reg
+ name       axis              # pts   start                end
+ SEASONAL_REG TIME              4mr   15-FEB 15:43         15-NOV 14:05
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 8765.82 (modulo length = axis span)
+show axis month*
+ name       axis              # pts   start                end
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ MONTH_REG TIME                12mr   16-JAN 06:00         16-DEC 01:20
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 8765.82 (modulo length = axis span)
+ MONTH_GREGORIAN TIME          12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ MONTH_NOLEAP TIME             12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = NOLEAP
+   Axis span (to cell edges) = 365 (modulo length = axis span)
+ MONTH_360_DAY TIME            12mr   16-JAN 00:00         16-DEC 00:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ MONTH_ALL_LEAP TIME           12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = ALL_LEAP
+   Axis span (to cell edges) = 366 (modulo length = axis span)
+ MONTH_JULIAN TIME             12mi   16-JAN 12:00         15-DEC 18:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 365.25 (modulo length = axis span)
+show axis/t month_irreg
+ name       axis              # pts   start                end
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 02:54:36       28.2425    01-FEB 00:00:00         45.12125
+       3>  15-MAR 17:49:12       31         29-FEB 05:49:12         74.7425
+       4>  15-APR 05:49:12       30         31-MAR 05:49:12         105.2425
+       5>  15-MAY 17:49:12       31         30-APR 05:49:12         135.7425
+       6>  15-JUN 05:49:12       30         31-MAY 05:49:12         166.2425
+       7>  15-JUL 17:49:12       31         30-JUN 05:49:12         196.7425
+       8>  15-AUG 17:49:12       31         31-JUL 05:49:12         227.7425
+       9>  15-SEP 05:49:12       30         31-AUG 05:49:12         258.2425
+      10>  15-OCT 17:49:12       31         30-SEP 05:49:12         288.7425
+      11>  15-NOV 05:49:12       30         31-OCT 05:49:12         319.2425
+      12>  15-DEC 17:49:12       31         30-NOV 05:49:12         349.7425
+show axis/t month_gregorian
+ name       axis              # pts   start                end
+ MONTH_GREGORIAN TIME          12mi   16-JAN 12:00         15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 02:54:36       28.2425    01-FEB 00:00:00         45.12125
+       3>  15-MAR 17:49:12       31         29-FEB 05:49:12         74.7425
+       4>  15-APR 05:49:12       30         31-MAR 05:49:12         105.2425
+       5>  15-MAY 17:49:12       31         30-APR 05:49:12         135.7425
+       6>  15-JUN 05:49:12       30         31-MAY 05:49:12         166.2425
+       7>  15-JUL 17:49:12       31         30-JUN 05:49:12         196.7425
+       8>  15-AUG 17:49:12       31         31-JUL 05:49:12         227.7425
+       9>  15-SEP 05:49:12       30         31-AUG 05:49:12         258.2425
+      10>  15-OCT 17:49:12       31         30-SEP 05:49:12         288.7425
+      11>  15-NOV 05:49:12       30         31-OCT 05:49:12         319.2425
+      12>  15-DEC 17:49:12       31         30-NOV 05:49:12         349.7425
+show axis/t month_noleap
+ name       axis              # pts   start                end
+ MONTH_NOLEAP TIME             12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = NOLEAP
+   Axis span (to cell edges) = 365 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 00:00:00       28         01-FEB 00:00:00         45
+       3>  16-MAR 12:00:00       31         01-MAR 00:00:00         74.5
+       4>  16-APR 00:00:00       30         01-APR 00:00:00         105
+       5>  16-MAY 12:00:00       31         01-MAY 00:00:00         135.5
+       6>  16-JUN 00:00:00       30         01-JUN 00:00:00         166
+       7>  16-JUL 12:00:00       31         01-JUL 00:00:00         196.5
+       8>  16-AUG 12:00:00       31         01-AUG 00:00:00         227.5
+       9>  16-SEP 00:00:00       30         01-SEP 00:00:00         258
+      10>  16-OCT 12:00:00       31         01-OCT 00:00:00         288.5
+      11>  16-NOV 00:00:00       30         01-NOV 00:00:00         319
+      12>  16-DEC 12:00:00       31         01-DEC 00:00:00         349.5
+show axis/t month_360_day
+ name       axis              # pts   start                end
+ MONTH_360_DAY TIME            12mr   16-JAN 00:00         16-DEC 00:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 00:00:00       30         01-JAN 00:00:00         15
+       2>  16-FEB 00:00:00       30         01-FEB 00:00:00         45
+       3>  16-MAR 00:00:00       30         01-MAR 00:00:00         75
+       4>  16-APR 00:00:00       30         01-APR 00:00:00         105
+       5>  16-MAY 00:00:00       30         01-MAY 00:00:00         135
+       6>  16-JUN 00:00:00       30         01-JUN 00:00:00         165
+       7>  16-JUL 00:00:00       30         01-JUL 00:00:00         195
+       8>  16-AUG 00:00:00       30         01-AUG 00:00:00         225
+       9>  16-SEP 00:00:00       30         01-SEP 00:00:00         255
+      10>  16-OCT 00:00:00       30         01-OCT 00:00:00         285
+      11>  16-NOV 00:00:00       30         01-NOV 00:00:00         315
+      12>  16-DEC 00:00:00       30         01-DEC 00:00:00         345
+show axis/t month_all_leap
+ name       axis              # pts   start                end
+ MONTH_ALL_LEAP TIME           12mi   16-JAN 12:00         16-DEC 12:00
+T0 = 01-JAN-0000 00:00:00
+CALENDAR = ALL_LEAP
+   Axis span (to cell edges) = 366 (modulo length = axis span)
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (days)
+       1>  16-JAN 12:00:00       31         01-JAN 00:00:00         15.5
+       2>  15-FEB 12:00:00       29         01-FEB 00:00:00         45.5
+       3>  16-MAR 12:00:00       31         01-MAR 00:00:00         75.5
+       4>  16-APR 00:00:00       30         01-APR 00:00:00         106
+       5>  16-MAY 12:00:00       31         01-MAY 00:00:00         136.5
+       6>  16-JUN 00:00:00       30         01-JUN 00:00:00         167
+       7>  16-JUL 12:00:00       31         01-JUL 00:00:00         197.5
+       8>  16-AUG 12:00:00       31         01-AUG 00:00:00         228.5
+       9>  16-SEP 00:00:00       30         01-SEP 00:00:00         259
+      10>  16-OCT 12:00:00       31         01-OCT 00:00:00         289.5
+      11>  16-NOV 00:00:00       30         01-NOV 00:00:00         320
+      12>  16-DEC 12:00:00       31         01-DEC 00:00:00         350.5
+*** Running ferret script: bn_climatology_attr.jnl
+[?1034h! bn_climatology_attr.jnl
+! *acm* 3/16  See ticket 2278
+!
+! Add an attribute climatology_time_range when writing a computed
+! climatology, listing the month/year of the start and end of the
+! data used in computing it.
+ 
+! Define a monthly axis
+def ax/t=1-feb-1980:1-feb-2003/np=276/unit="day"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
+ 
+! entire input time range used
+let clim1 = tvar[gt=month_irreg at mod]
+save/file=a.nc/clobber clim1
+ 
+! a subset of the time range used
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let clim2 = t_subset[gt=month_reg at mod]
+save/append/file=a.nc clim2
+ 
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow clim1.climatology_time_range, clim2.climatology_time_range
+ "FEB-1980:FEB-2003" "FEB-1990:DEC-1999"
+ 
+ 
+! noleap axis
+def ax/edge/t=1-feb-1980:1-feb-2003/np=276/cal=noleap/unit="hour"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_noleap at mod]
+save/file=a.nc/clobber clim1
+ 
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let clim2 = t_subset[gt=month_noleap at mod]
+save/append/file=a.nc clim2
+ 
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow clim1.climatology_time_range, clim2.climatology_time_range
+ "FEB-1980:JAN-2003" "FEB-1990:DEC-1999"
+ 
+ 
+ 
+! If the expression compbines data from multiple ranges, indicate that
+ 
+def ax/t=1-feb-1980:1-feb-2003/np=276/unit="day"/t0=1-jan-1900 tax
+let tvar = t[gt=tax]
+let a = tvar[gt=month_reg at mod]
+ 
+let t_subset = tvar[t=1-feb-1990:31-dec-1999]
+let b = t_subset[gt=month_reg at mod]
+let c = a+b
+ 
+save/append/file=a.nc c
+ 
+can dat/all; use a.nc
+! show the attributes
+can dat/all; use a.nc
+list/nohead/norow c.climatology_time_range
+ "Multiple time ranges used"
+ 
+*** Running ferret script: bn_plot_along.jnl
+[?1034h! BN_PLOT_ALONG
+ 
+! *sh* 3/2016
+ 
+!  yes? GO bn_plot_along [debug]
+ 
+! exercise breaking up of plot command argument into lones along the
+! indicated direction
+ 
+DEFINE SYMBOL debugme = ($1"SAY continuing|debug>PAUSE")
+ !-> DEFINE SYMBOL debugme = SAY continuing
+ 
+! basic
+LET blocky10 = x[i=1:10]+y[j=1:10]
+PLOT/ALONG=x blocky10
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! degenerate case -- only a single line
+LET blocky1 = x[i=1:10]+y[j=1:1]
+PLOT/ALONG=x blocky1
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! number of lines exceeds key limit  (40 at time of this writing)
+! automatic decimation to keep within key limit
+LET blocky200 = x[i=1:10]+y[j=1:200]
+PLOT/ALONG=x blocky200
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey  - no longer limited to the number of keys that can be drawn
+LET blocky50 = x[i=1:10]+y[j=1:50]
+PLOT/ALONG=x/nokey blocky50
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey -- number of lines exceeds line limit  (200 at time of this writing)
+! automatic decimation to keep within line limit
+LET blocky201 = x[i=1:10]+y[j=1:201]
+PLOT/ALONG=x/nokey blocky201
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! multi-dimensional
+LET blockxyz        = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:5]+100*z[k=1:30]
+LET blockxyz_little = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:3] +100*z[k=1:4]
+PLOT/ALONG=t blockxyz_little
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+PLOT/ALONG=t blockxyz         ! decimate to key  limit
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+PLOT/ALONG=t/nokey blockxyz   ! decimate to line limit
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+ 
+! ensemble application
+LET block = x[i=1:2]+10*y[j=1:3]+100*z[k=1:4]
+LET sin_block = SIN(T[l=1:100]/10)*block
+LET ens_sin_block = sin_block*( (20+_E[m=1:20])/20 )
+PLOT/ALONG=t ens_sin_block[i=1,j=2,k=3]
+*** Running ferret script: bn_show_commands.jnl
+[?1034h! bn_show_commands.jnl
+! Testing results for ticket 2078: SHOW COMMAND cmnd subcmnd
+! Also new SHOW COMMAND/BRIEF
+! 3/2016 *acm*
+!
+! When commands are highly abbreviated, which command/subcommand is
+! executed depends on the order in which they are listed in Ferret
+! internal data structures. Keep this output consistent if new commands
+! added or command list are reordered.
+ 
+! Commands with subcommands
+ 
+sho command set
+ SET
+ SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE/QUALITY/ANTIALIA/NOANTIAL
+      /ENGINE/COLOR/OPACITY/THICKEN/XPIXELS/YPIXELS/XINCHES/YINCHES/TEXTPROM
+      /OUTLINE
+ SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
+ SET VIEWPORT
+ SET EXPRSION
+ 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
+ SET MODE/LAST
+ SET MOVI/FILE/COMPRESS/LASER/START
+ SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
+      /LAYERZ/CURVILIN
+ SET GRID/SAVE/RESTORE
+ SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
+ SET MEMORY/SIZE
+ SET ATTRIBUT/TYPE/DATASET/OUTPUT/LIKE/QUIET
+ SET NCCACHE/SIZE/NELEMS/PREEMPT
+ SET REDIRECT/TEE/JOURNAL/FILE/APPEND/CLOBBER
+ SET GIFFILE
+ SET TEXT/FONT/COLOR/ITALIC/BOLD/ISIZ
+sho command set w  ! SET WINDOW
+ SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE/QUALITY/ANTIALIA/NOANTIAL
+      /ENGINE/COLOR/OPACITY/THICKEN/XPIXELS/YPIXELS/XINCHES/YINCHES/TEXTPROM
+      /OUTLINE
+sho command set r  ! SET REGION
+ SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
+sho command set v  ! SET VIEWPORT
+ SET VIEWPORT
+sho command set e  ! SET EXPRSION
+ SET EXPRSION
+sho command set l  ! SET LIST
+ SET LIST/PRECISIO/FILE/FORMAT/APPEND/HEADING/NCFORMAT/ENDIAN/DEFLATE/SHUFFLE
+      /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
+sho command set m  ! SET MODE
+ SET MODE/LAST
+sho command set mov! SET MOVIE
+ SET MOVI/FILE/COMPRESS/LASER/START
+sho command set va ! SET VARIABLE
+ SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
+      /LAYERZ/CURVILIN
+sho command set g  ! SET GRID
+ SET GRID/SAVE/RESTORE
+sho command set a  ! SET AXIS
+ SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
+sho command set me ! SET MEMORY
+ SET MEMORY/SIZE
+sho command set at ! SET ATTRIBUTE
+ SET ATTRIBUT/TYPE/DATASET/OUTPUT/LIKE/QUIET
+sho command set n  ! SET NCCACHE
+ SET NCCACHE/SIZE/NELEMS/PREEMPT
+sho command set red! SET REDIRECT
+ SET REDIRECT/TEE/JOURNAL/FILE/APPEND/CLOBBER
+sho command set gi ! SET GIFFILE
+ SET GIFFILE
+ 
+sho command sho
+ SHOW/ALL
+ SHOW WINDOW/ALL
+ SHOW REGION/ALL
+ SHOW AXIS/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/XML/OUTFILE/APPEND/CLOBBER
+ SHOW EXPRSION/ALL
+ SHOW LIST/ALL
+ SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
+       /HIDDEN
+ SHOW MODE/ALL
+ SHOW MOVIE/ALL
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+ SHOW COMMANDS/ALL/BRIEF
+ SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
+ SHOW VIEWPORT/ALL
+ SHOW TRANFORM/ALL
+ SHOW ALIAS/ALL
+ SHOW SYMBOL/ALL
+ SHOW ATTRIBUT/ALL/DATASET/OUTPUT
+ SHOW NCCACHE
+ SHOW GIFFILE
+ SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
+ SHOW TEXT
+ SHOW QUERIES/ALL
+sho command sho w  ! SHOW WINDOW
+ SHOW WINDOW/ALL
+sho command sho r  ! SHOW REGION
+ SHOW REGION/ALL
+sho command sho a  ! SHOW AXIS
+ SHOW AXIS/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/XML/OUTFILE/APPEND/CLOBBER
+sho command sho e  ! SHOW EXPRSTION
+ SHOW EXPRSION/ALL
+sho command sho l  ! SHOW LIST
+ SHOW LIST/ALL
+sho command sho d  ! SHOW DATA
+ SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
+       /HIDDEN
+sho command sho m  ! SHOW MODE
+ SHOW MODE/ALL
+sho command sho mov! SHOW MOVIE
+ SHOW MOVIE/ALL
+sho command sho v  ! SHOW VARIABLE
+ SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
+sho command sho c  ! SHOW COMMANDS
+ SHOW COMMANDS/ALL/BRIEF
+sho command sho me ! SHOW MEMORY
+ SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+sho command sho g  ! SHOW GRID
+ SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
+sho command sho vi ! SHOW VIEWPORT
+ SHOW VIEWPORT/ALL
+sho command sho t  ! SHOW TRANSFORM
+ SHOW TRANFORM/ALL
+sho command sho al ! SHOW ALIAS
+ SHOW ALIAS/ALL
+sho command sho s  ! SHOW SYMBOL
+ SHOW SYMBOL/ALL
+sho command sho at ! SHOW ATTRIBUTE
+ SHOW ATTRIBUT/ALL/DATASET/OUTPUT
+sho command sho n  ! SHOW NCCACHE
+ SHOW NCCACHE
+sho command sho gi ! SHOW GIFFILE
+ SHOW GIFFILE
+sho command sho f  ! SHOW FUNCTION
+ SHOW FUNCTION/ALL/BRIEF/EXTERNAL/INTERNAL/DETAILS
+sho command sho q  ! SHOW QUERIES
+ SHOW QUERIES/ALL
  
-let xpts = {1,2,3,4,5}
-let ypts = {1,1,1,1,1}
-let color = {1,2,3,4,5}
-let gvar = {0,0,1,0,0}
-plot/vs/ribbon/thick/line/lev=10/sym=21/siz=.3 xpts, 10*ypts, color
-plot/ov/ribbon/nolab/vs/thick/line/lev=10/sym=21/siz=.3/gapl xpts, 10.2*ypts, color, gvar
-plot/ov/ribbon/nolab/fast/vs/thick/line/lev=10/sym=21/siz=.3 xpts, 9.9*ypts, color
-plot/ov/ribbon/nolab/fast/vs/thick/line/lev=10/sym=21/siz=.3/gap xpts, 9.7*ypts, color, gvar
+sho command can
+ CANCEL
+ CANCEL WIND/ALL
+ CANCEL REGION/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F
+ CANCEL MEMORY/ALL/TEMPORY/PERMANT
+ CANCEL EXPRSION/ALL
+ CANCEL LIST/ALL/PRECISIO/FILE/FORMAT/HEADING/APPEND/OUTTYPE
+ CANCEL DATA/ALL/NOERROR
+ CANCEL MODE
+ CANCEL MOVIE/ALL
+ CANCEL VIEWPORT
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
+ CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
+ CANCEL GRID
+ CANCEL ATTRIBUT/OUTPUT/DATASET
+ CANCEL REDIRECT
+ CANCEL ALIAS/ALL
+ CANCEL SYMBOL/ALL
+ CANCEL NCCACHE
+ CANCEL PYVAR/ALL/DATASET
+ CANCEL TEXT/FONT/COLOR/ITALIC/BOLD/ISIZ/ALL
+sho command can w  ! CANCEL WINDOW
+ CANCEL WIND/ALL
+sho command can r  ! CANCEL REGION
+ CANCEL REGION/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F
+sho command can m  ! CANCEL MEMORY
+ CANCEL MEMORY/ALL/TEMPORY/PERMANT
+sho command can e  ! CANCEL EXPRSION
+ CANCEL EXPRSION/ALL
+sho command can l  ! CANCEL LIST
+ CANCEL LIST/ALL/PRECISIO/FILE/FORMAT/HEADING/APPEND/OUTTYPE
+sho command can d  ! CANCEL DATA
+ CANCEL DATA/ALL/NOERROR
+sho command can mo ! CANCEL MODE
+ CANCEL MODE
+sho command can mov! CANCEL MOVIE
+ CANCEL MOVIE/ALL
+sho command can v  ! CANCEL VIEWPORT
+ CANCEL VIEWPORT
+sho command can va ! CANCEL VARIABLE
+ CANCEL VARIABLE/ALL/DATASET/LAYERZ/CURVILIN/NOERROR
+sho command can a  ! CANCEL AXIS
+ CANCEL AXIS/MODULO/ALL/DEPTH/STRIDE
+sho command can g  ! CANCEL GRID
+ CANCEL GRID
+sho command can at ! CANCEL ATTRIBUTE
+ CANCEL ATTRIBUT/OUTPUT/DATASET
+sho command can red! CANCEL REDIRECT
+ CANCEL REDIRECT
+sho command can al ! CANCEL ALIAS
+ CANCEL ALIAS/ALL
+sho command can s  ! CANCEL SYMBOL
+ CANCEL SYMBOL/ALL
+sho command can n  ! CANCEL NCCACHE
+ CANCEL NCCACHE
  
-use 39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
+sho command def
+ DEFINE
+ DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
+         /DL/DM/DN
+ DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
+ DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
+ DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+ DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
+ DEFINE ALIAS
+ DEFINE SYMBOL
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
+ DEFINE PYFUNC/NAME
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
+sho command def r  ! DEFINE REGION
+ DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
+         /DL/DM/DN
+sho command def g  ! DEFINE GRID
+ DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
+sho command def v  ! DEFINE VARIABLE
+ DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
+sho command def a  ! DEFINE AXIS
+ DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
+         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+sho command def vi ! DEFINE VIEWPORT
+ DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
+sho command def al ! DEFINE ALIAS
+ DEFINE ALIAS
+sho command def s  ! DEFINE SYMBOL
+ DEFINE SYMBOL
+sho command def at ! DEFINE ATTRIBUTE
+ DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
+sho command def P  ! DEFINE PYFUNC
+ DEFINE PYFUNC/NAME
+sho command def d  ! DEFINE DATA
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+sho command def an ! DEFINE ANNOTATE
+ DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
  
-! The line is connected across what should be a gap
-set view left
-plot/vs/hlim=63.5:68/ribbon/line/thick=3/key longitude, latitude, fco2_recommended
  
-! The gaploc variable is 1 at the location marking the start of gaps.
-let gaploc = if sample_number[I=@DDF] NE 1 THEN 1 ELSE 0
-set view right
-plot/vs/hlim=63.5:68/ribbon/line/thick=3/key/gap longitude, latitude, fco2_recommended, gaploc
+! Also new SHOW COMMAND/BRIEF
+! Single commands, abbreviated.
  
-! Intentional errors. Qualifier needs 4 arguments. It does not (currently) apply to
-! other styles of line plots.
+sho command/brief a
+ ANNOTATE
+sho command/brief c
+ CANCEL
+ CANCEL WIND
+ CANCEL REGION
+ CANCEL MEMORY
+ CANCEL EXPRSION
+ CANCEL LIST
+ CANCEL DATA
+ CANCEL MODE
+ CANCEL MOVIE
+ CANCEL VIEWPORT
+ CANCEL VARIABLE
+ CANCEL AXIS
+ CANCEL GRID
+ CANCEL ATTRIBUT
+ CANCEL REDIRECT
+ CANCEL ALIAS
+ CANCEL SYMBOL
+ CANCEL NCCACHE
+ CANCEL PYVAR
+ CANCEL TEXT
+sho command/brief ca
+ CANCEL
+ CANCEL WIND
+ CANCEL REGION
+ CANCEL MEMORY
+ CANCEL EXPRSION
+ CANCEL LIST
+ CANCEL DATA
+ CANCEL MODE
+ CANCEL MOVIE
+ CANCEL VIEWPORT
+ CANCEL VARIABLE
+ CANCEL AXIS
+ CANCEL GRID
+ CANCEL ATTRIBUT
+ CANCEL REDIRECT
+ CANCEL ALIAS
+ CANCEL SYMBOL
+ CANCEL NCCACHE
+ CANCEL PYVAR
+ CANCEL TEXT
+sho command/brief co
+ CONTOUR
+sho command/brief d
+ DEFINE
+ DEFINE REGION
+ DEFINE GRID
+ DEFINE VARIABLE
+ DEFINE AXIS
+ DEFINE VIEWPORT
+ DEFINE ALIAS
+ DEFINE SYMBOL
+ DEFINE ATTRIBUT
+ DEFINE PYFUNC
+ DEFINE DATA
+ DEFINE ANNOTATI
+sho command/brief e
+ EXIT
+sho command/brief el
+ ELSE
+sho command/brief en
+ ENDIF
+sho command/brief ex
+ EXIT
+sho command/brief f
+ FRAME
+sho command/brief h
+ HELP
+sho command/brief h
+ HELP
+sho command/brief i
+ IF
+sho command/brief l
+ LIST
+sho command/brief li
+ LIST
+sho command/brief lo
+ LOAD
+sho command/brief m
+ MESSAGE
+sho command/brief p
+ PLOT
+sho command/brief pl
+ PLOT
+sho command/brief po
+ POLYGON
+sho command/brief pp
+ PPLUS
+sho command/brief q
+ QUERY
+sho command/brief r
+ REPEAT
+sho command/brief s
+ SET
+ SET WINDOW
+ SET REGION
+ SET VIEWPORT
+ SET EXPRSION
+ SET LIST
+ SET DATA
+ SET MODE
+ SET MOVI
+ SET VARIABLE
+ SET GRID
+ SET AXIS
+ SET MEMORY
+ SET ATTRIBUT
+ SET NCCACHE
+ SET REDIRECT
+ SET GIFFILE
+ SET TEXT
+sho command/brief se
+ SET
+ SET WINDOW
+ SET REGION
+ SET VIEWPORT
+ SET EXPRSION
+ SET LIST
+ SET DATA
+ SET MODE
+ SET MOVI
+ SET VARIABLE
+ SET GRID
+ SET AXIS
+ SET MEMORY
+ SET ATTRIBUT
+ SET NCCACHE
+ SET REDIRECT
+ SET GIFFILE
+ SET TEXT
+sho command/brief sh
+ SHOW
+ SHOW WINDOW
+ SHOW REGION
+ SHOW AXIS
+ SHOW EXPRSION
+ SHOW LIST
+ SHOW DATA
+ SHOW MODE
+ SHOW MOVIE
+ SHOW VARIABLE
+ SHOW COMMANDS
+ SHOW MEMORY
+ SHOW GRID
+ SHOW VIEWPORT
+ SHOW TRANFORM
+ SHOW ALIAS
+ SHOW SYMBOL
+ SHOW ATTRIBUT
+ SHOW NCCACHE
+ SHOW GIFFILE
+ SHOW FUNCTION
+ SHOW TEXT
+ SHOW QUERIES
+sho command/brief sp
+ SPAWN
+sho command/brief st
+ STAT
+sho command/brief u
+ USER
+sho command/brief v
+ VECTOR
+ 
+ 
+! All the commands, no subcommands, no qualifiers
+SHOW COMMAND/BRIEF
+ Commands in Program PyFERRET (beta/dbg) version7:
+ SET
+ SHOW
+ CANCEL
+ CONTOUR
+ LIST
+ PLOT
+ GO
+ HELP
+ LOAD
+ DEFINE
+ EXIT
+ MESSAGE
+ VECTOR
+ PPLUS
+ FRAME
+ REPEAT
+ STAT
+ SHADE
+ SPAWN
+ USER
+ WIRE
+ QUERY
+ IF
+ ELSE
+ ELIF
+ ENDIF
+ POLYGON
+ ANNOTATE
+ 
+ Use SHOW ALIAS to see alternative command names
+ 
+! With a command, just show subcommands, no qualifiers
+SHOW COMMAND/BRIEF sho
+ SHOW
+ SHOW WINDOW
+ SHOW REGION
+ SHOW AXIS
+ SHOW EXPRSION
+ SHOW LIST
+ SHOW DATA
+ SHOW MODE
+ SHOW MOVIE
+ SHOW VARIABLE
+ SHOW COMMANDS
+ SHOW MEMORY
+ SHOW GRID
+ SHOW VIEWPORT
+ SHOW TRANFORM
+ SHOW ALIAS
+ SHOW SYMBOL
+ SHOW ATTRIBUT
+ SHOW NCCACHE
+ SHOW GIFFILE
+ SHOW FUNCTION
+ SHOW TEXT
+ SHOW QUERIES
+ 
+! With a command and subcommand, no qualifiers
+SHOW COMMAND/BRIEF sho da
+ SHOW DATA
+ 
+*** Running ferret script: bn_plot_decimate.jnl
+[?1034h! BN_PLOT_SKIP
+ 
+! *acm* 3/2016
+ 
+!  yes? GO bn_plot_skip [debug]
+ 
+! based on PLOT/ALONG tests.
+! PLOT/SKIP=n for /SYMBOL plots makes only every SKIP symbol.
+ 
+DEFINE SYMBOL debugme = ($1"SAY continuing|debug>PAUSE")
+ !-> DEFINE SYMBOL debugme = SAY continuing
+ 
+DEFINE SYMBOL deci = 2
+ 
+! basic
+LET blocky10 = x[i=1:10]+y[j=1:10]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky10
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x blocky10
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! degenerate case -- only a single line
+LET blocky1 = x[i=1:10]+y[j=1:1]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky1
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x blocky1
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! number of lines exceeds key limit  (40 at time of this writing)
+! automatic decimation to keep within key limit
+LET blocky200 = x[i=1:10]+y[j=1:200]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x blocky200
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x blocky200
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey  - no longer limited to the number of keys that can be drawn
+LET blocky50 = x[i=1:10]+y[j=1:50]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x/nokey blocky50
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x/nokey blocky50
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! /nokey -- number of lines exceeds line limit  (200 at time of this writing)
+! automatic decimation to keep within line limit
+LET blocky201 = x[i=1:10]+y[j=1:201]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=x/nokey blocky201
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=x/nokey blocky201
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+! multi-dimensional
+LET blockxyz        = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:5]+100*z[k=1:30]
+LET blockxyz_little = 0.1*T[l=1:10]+x[i=1:2]+10*y[j=1:3] +100*z[k=1:4]
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t blockxyz_little
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=t blockxyz_little
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t blockxyz         ! decimate to key  limit
+ !-> PLOT/SYM/LINE/SKIP=2/ALONG=t blockxyz
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+define symbol deci = 5
+PLOT/SYM/LINE/SKIP=($deci)/ALONG=t/nokey blockxyz   ! decimate to line limit
+ !-> PLOT/SYM/LINE/SKIP=5/ALONG=t/nokey blockxyz
+($debugme)
+ !-> MESSAGE/CONTINUE continuing
+continuing
+ 
+ 
+! ensemble application
+! Here the symbols appear on lines automatically for distinguishing
+! large number of lines. /SKIP works without explicitly saying /SYM
+LET block = x[i=1:2]+10*y[j=1:3]+100*z[k=1:4]
+LET sin_block = SIN(T[l=1:100]/10)*block
+LET ens_sin_block = sin_block*( (20+_E[m=1:20])/20 )
+PLOT/SKIP=($deci)/ALONG=t ens_sin_block[i=1,j=2,k=3]
+ !-> PLOT/SKIP=5/ALONG=t ens_sin_block[i=1,j=2,k=3]
+*** Running ferret script: bn_auto_tprec.jnl
+[?1034h! bn_auto_tprec.jnl
+! See ticket 2405
+! Time labels on plots always just get the precision from MODE CALENDAR
+! Instead, use the same logic as is used for text labels, automatically adjust.
+! (later make this the default setting??)
+ 
+set mode calendar:auto
+show mode calendar
+      MODE            STATE        ARGUMENT
+      CALENDAR         SET         auto
+ 
+use levitus_climatology
+let ttim = temp + t[gt=tax]
+ 
+!  Varies in seconds
+define axis/t/units="seconds"/t0="1-jan-2001" tax = {1,12,13,14,16,17,18,19,24}
+ 
+list/k=1/x=60/y=-40 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 9 points (TIME)
+             LONGITUDE: 59.5E
+             LATITUDE : 40.5S
+             DEPTH (m): 0
+                             59.5E 
+                             40
+ 01-JAN-2001 00:00:01 / 1:  15.13
+ 01-JAN-2001 00:00:12 / 2:  26.13
+ 01-JAN-2001 00:00:13 / 3:  27.13
+ 01-JAN-2001 00:00:14 / 4:  28.13
+ 01-JAN-2001 00:00:16 / 5:  30.13
+ 01-JAN-2001 00:00:17 / 6:  31.13
+ 01-JAN-2001 00:00:18 / 7:  32.13
+ 01-JAN-2001 00:00:19 / 8:  33.13
+ 01-JAN-2001 00:00:24 / 9:  38.13
+shade/title="seconds"/l=9/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 00:00:24"
+ 
+!  Varies in minutes, fractions of minutes
+define axis/t/units="minutes"/t0="1-jan-2001" tax = {1,1.1,12,13,14,16,17,18.5,19,24}
+list/k=1/x=60/y=-40 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 10 points (TIME)
+             LONGITUDE: 59.5E
+             LATITUDE : 40.5S
+             DEPTH (m): 0
+                              59.5E 
+                              40
+ 01-JAN-2001 00:01:00 /  1:  15.13
+ 01-JAN-2001 00:01:06 /  2:  15.23
+ 01-JAN-2001 00:12:00 /  3:  26.13
+ 01-JAN-2001 00:13:00 /  4:  27.13
+ 01-JAN-2001 00:14:00 /  5:  28.13
+ 01-JAN-2001 00:16:00 /  6:  30.13
+ 01-JAN-2001 00:17:00 /  7:  31.13
+ 01-JAN-2001 00:18:30 /  8:  32.63
+ 01-JAN-2001 00:19:00 /  9:  33.13
+ 01-JAN-2001 00:24:00 / 10:  38.13
+shade/title="minutes/fractions of minutes"/l=9/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 00:19:00"
+ 
+! varies in hours, fractions of hours
+define axis/t/units="hour"/t0="1-jan-2001" tax = {1,1.1,12.1,12.2,14,16,17,18.5,19,24}
+list/k=1/x=60/y=-40 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 10 points (TIME)
+             LONGITUDE: 59.5E
+             LATITUDE : 40.5S
+             DEPTH (m): 0
+                              59.5E 
+                              40
+ 01-JAN-2001 01:00:00 /  1:  15.13
+ 01-JAN-2001 01:06:00 /  2:  15.23
+ 01-JAN-2001 12:06:00 /  3:  26.23
+ 01-JAN-2001 12:12:00 /  4:  26.33
+ 01-JAN-2001 14:00:00 /  5:  28.13
+ 01-JAN-2001 16:00:00 /  6:  30.13
+ 01-JAN-2001 17:00:00 /  7:  31.13
+ 01-JAN-2001 18:30:00 /  8:  32.63
+ 01-JAN-2001 19:00:00 /  9:  33.13
+ 02-JAN-2001 00:00:00 / 10:  38.13
+shade/title="hours/fractions of hours"/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 12:06"
+ 
+! 6-hour even spacing
+define axis/t=1-jan-2001:8-jan-2001:6/units="hour"/t0="1-jan-2001" tax
+list/k=1/x=60/y=-40/L=1:6 ttim
+             VARIABLE : TEMP + T[GT=TAX]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 6 points (TIME)
+             LONGITUDE: 59.5E
+             LATITUDE : 40.5S
+             DEPTH (m): 0
+                          59.5E 
+                          40
+ 01-JAN-2001 00:00 / 1:  14.13
+ 01-JAN-2001 06:00 / 2:  20.13
+ 01-JAN-2001 12:00 / 3:  26.13
+ 01-JAN-2001 18:00 / 4:  32.13
+ 02-JAN-2001 00:00 / 5:  38.13
+ 02-JAN-2001 06:00 / 6:  44.13
+shade/title="hours "/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 01-JAN-2001 12:00"
+ 
+! Reynolds SST weekly, even 7-day spacing
+use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
+list/x=180/y=0/l=20:25 fsst
+             VARIABLE : Filtered Weekly SST Means (deg C)
+             DATA SET : Reynolds Optimum Interpolation Weekly SST Analysis
+             FILENAME : reynolds_sst_wk.nc
+             FILEPATH : http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+             SUBSET   : 6 points (TIME)
+             LONGITUDE: 179.5E
+             LATITUDE : 0.5S
+                       179.5E 
+                       180
+ 18-MAY-1982 00 / 20:  29.84
+ 25-MAY-1982 00 / 21:  29.85
+ 01-JUN-1982 00 / 22:  29.85
+ 08-JUN-1982 00 / 23:  29.97
+ 15-JUN-1982 00 / 24:  30.16
+ 22-JUN-1982 00 / 25:  30.28
+shade/title="7-day axis"/l=30/x=60:70/y=-40:-30 fsst; sh sym  lab($labnum_t)
+ !-> sh sym  lab1
+LAB1 = "TIME : 27-JUL-1982 00"
+ 
+! monthly climatology
+use TAO_SST_clim
+list/x=180/y=0 sst_clim
+             VARIABLE : Climatological TAO SST, 1992-1997 (Degrees C)
+             FILENAME : TAO_SST_clim.cdf
+             SUBSET   : 12 points (TIME)
+             LONGITUDE: 180E
+             LATITUDE : 0
+                     180E  
+                      5
+ 16-JAN      /  1:  28.47
+ 15-FEB      /  2:  28.02
+ 17-MAR      /  3:  28.06
+ 16-APR      /  4:  28.63
+ 16-MAY      /  5:  28.79
+ 16-JUN      /  6:  28.89
+ 16-JUL      /  7:  29.11
+ 16-AUG      /  8:  29.24
+ 15-SEP      /  9:  29.15
+ 16-OCT      / 10:  29.06
+ 15-NOV      / 11:  28.97
+ 16-DEC      / 12:  28.88
+shade/title="monthly climatology"/k=1/l=5 sst_clim; sh sym  lab($labnum_t)
+ !-> sh sym  lab1
+LAB1 = "TIME : 16-MAY"
+ 
+! truemonth
+use truemonth
+list/x=180/y=0/l=20:25 var
+             VARIABLE : COS(T[GT=TRUEMONTH]/100)
+             FILENAME : truemonth.nc
+             SUBSET   : 6 points (TIME)
+ 16-AUG-1951 / 20:  0.9988
+ 16-SEP-1951 / 21:  0.9378
+ 16-OCT-1951 / 22:  0.7903
+ 16-NOV-1951 / 23:  0.5699
+ 16-DEC-1951 / 24:  0.2968
+ 16-JAN-1952 / 25: -0.0086
+ 
+let ttim = temp[d=levitus_climatology] + var
+shade/title="true-month axis"/L=32/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 16-AUG-1952"
+ 
+set mode/last calendar
+ 
+! Is the default precision of minutes restored?
+use truemonth
+let ttim = temp[d=levitus_climatology] + var
+shade/title="true-month axis"/L=32/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
+ !-> sh sym  lab2
+LAB2 = "TIME : 16-AUG-1952 12:00"
+*** Running ferret script: bn_coordvars_atts.jnl
+[?1034h! bn_coordvars_atts.jnl
+! 5/2016 *acm*  see ticket 2413
+! Additional attribute keywords for returning  coordinate variable
+! names and number of coordinate vars, to distinguish coordinate
+! info from dimension info.
+ 
+! File has dimensions which are not coordinate variables, for
+! the dimensions of the 2D coordinate variables.
+use dims_not_coord.nc
+list/nohead ..ndims
+          3.000
+list/nohead ..dimnames
+ 1   / 1:"ETA"     
+ 2   / 2:"TAU1"    
+ 3   / 3:"ZT_OCEAN"
+list/nohead ..ncoordvars
+          1.000
+list/nohead ..coordnames
+        "ZT_OCEAN"
+let cname = ..coordnames
+sh axis `cname[i=1]`
+ !-> sh axis ZT_OCEAN
+ name       axis              # pts   start                end
+ ZT_OCEAN  DEPTH (m)            1 r-  15                   15
+   Axis span (to cell edges) = 1
+ 
+! The depth axis has coordinate bounds; the length-2 bnds
+! dimension is not a coordinate variable
+use levitus_3d_subset.nc
+list/nohead ..ndims
+          4.000
+list/nohead ..dimnames
+ 1   / 1:"XAXLEVITR101_102"
+ 2   / 2:"YAXLEVITR41_42"  
+ 3   / 3:"ZAXLEVITR"       
+ 4   / 4:"bnds"            
+list/nohead ..ncoordvars
+          3.000
+list/nohead ..coordnames
+ 1   / 1:"XAXLEVITR101_102"
+ 2   / 2:"YAXLEVITR41_42"  
+ 3   / 3:"ZAXLEVITR"       
+ 
+! String variables in netcdf files have string-length
+! dimensions which are not coordinate variables.
+use numstring.nc
+list/nohead ..ndims
+          4.000
+list/nohead ..dimnames
+ 1   / 1:"XAX"      
+ 2   / 2:"ZAX"      
+ 3   / 3:"XAX1_10"  
+ 4   / 4:"STRING1_7"
+list/nohead ..ncoordvars
+          3.000
+list/nohead ..coordnames
+ 1   / 1:"XAX"    
+ 2   / 2:"ZAX"    
+ 3   / 3:"XAX1_10"
+*** Running ferret script: bn_gif.jnl
+[?1034h! bn450_gif.JNL - copied from bn450_plot.jnl
+! this journal file only tests the writing of gif file in batch mode using
+! frame/file=bnplot.gif....will create three gif files
+! *kob*
+ 
+ 
+can mode logo
+ 
+! define a 6 viewport window (modified definitions 11/92)
+def view/xlim=0,.333/ylim=0,.5    ll6
+def view/xlim=0,.333/ylim=.5,1    ul6
+def view/xlim=.333,.666/ylim=0,.5 lm6
+def view/xlim=.333,.666/ylim=.5,1 um6
+def view/xlim=.666,1/ylim=0,.5    lr6
+def view/xlim=.666,1/ylim=.5,1    ur6
+show view
+ 
+ name             text    xlimits     ylimits    mode
+ 
+ UPPER            1.00   0.00,1.00   0.50,1.00   edges
+ LOWER            1.00   0.00,1.00   0.00,0.50   edges
+ RIGHT            1.00   0.50,1.00   0.00,1.00   edges
+ LEFT             1.00   0.00,0.50   0.00,1.00   edges
+ LL               0.50   0.00,0.50   0.00,0.50   edges
+ LR               0.50   0.50,1.00   0.00,0.50   edges
+ UL               0.50   0.00,0.50   0.50,1.00   edges
+ UR               0.50   0.50,1.00   0.50,1.00   edges
+ FULL             1.00   0.00,1.00   0.00,1.00   edges
+ LL6              0.41   0.00,0.33   0.00,0.50   edges
+ UL6              0.41   0.00,0.33   0.50,1.00   edges
+ LM6              0.41   0.33,0.67   0.00,0.50   edges
+ UM6              0.41   0.33,0.67   0.50,1.00   edges
+ LR6              0.41   0.67,1.00   0.00,0.50   edges
+ UR6              0.41   0.67,1.00   0.50,1.00   edges
+   current viewport is NONE
+ 
+! some variables for plotting
+let a = 0.8*sin(l/10)
+let b = 0.6*cos(l/10)
+let c = sin(100/(l+k))
+let d = l/50
+let e = k-(l/25)
+let f = -.5+(l/125)
+let g = (l-25)/(k*35)
+let h = 0.1
+let m = 0.2
+ 
+! illegal plot commands
 set mode ignore
-plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
-plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
-plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
+plot/i=1:10/j=1:20/nolabel i+j			! not a line
+plot/i=1:10/j=1:20/nolabel i,i+j		! not a line
+plot/i=1:10/j=1:20/nolabel i+j,i		! not a line
+plot/i=1:10/j=1:20/nolabel j,i			! differing axes
+plot/i=1:10/j=1:20/vs/line/nolabel j,i		! unequal lengths
+contour/i=1:10/j=1:20/nolabel i			! only 1 D
+contour/i=1:10/j=1:20/nolabel i/j,j/i		! multiple fields
+vector/i=1:10/j=1:20/nolabel i/j		! only 1 field
+vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j	! 3 fields
 set mode/last ignore
-*** Running test: bn_time_short_axes.jnl
-[?1034h! bn_time_short_axes.jnl
-! testing time axis style with HH:MM on the time axis labels.
  
-use timesec
+! notice the default window size is 10.2,width x 8.8,height
+ppl list plot
+         WIDTH=   10.20  HEIGHT=    8.80  TKTYPE=    0  BAUD=  110
+         WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
+         PLOT MODE=   A
+         PLOT FILE= ferret.png                                                                                                                                                                                                                                                                                                                                                                                                                                                                               [...]
  
-plot/t="21-aug-2015:00:00":"21-aug-2015:04:30" airt
-plot/axes=0,1,1,0/t="21-aug-2015:01:15":"21-aug-2015:03:30" airt
-plot/t="21-aug-2015:01:15":"21-aug-2015:12:00" airt
+! enlarge it to accomodate an additional 50% width
+! ppl size 15.3,8.8
+! in PyFerret must use SET WINDOW
+set win /xinch=15.3 /yinch=8.8
  
+! turn on metafile (enabled 10/29/91)
+! commented out 9/97 - instead set in bn450_all.jnl
+! set mode metafile
  
-plot/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" airt
-plot/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" airt
-plot/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" airt
+! draw a plot into a viewport - to be deleted (check hard copy)
+set view ll6
+contour/i=1:50/j=1:50/nolabel i/(j+20)
  
-! 2D plots
+! 4 frames testing PLOT output
+set view ul6
+plot/l=1:50/k=1/trans/nolabel a,b,c
+plot/l=1:50/k=1/trans/over/line=6/nolabel d
+plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
+plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
+def view/xlim=.333,1/ylim=0,.5 lm6   ! redefine longer in x (11/92)
+set view lm6
+!ppl axlen 16
+set region/k=1
+plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
+def view/xlim=.333,1/ylim=.5,1 um6    ! redefine it longer in x (11/92)
+set view um6
+!ppl axlen 17,5
+plot/l=1:50/nolabel sin(100/(l+5))
+plot/l=1:50/over/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
+set view ll6
+!ppl axlen 8,6
+plot/l=1:99000/nolabel sin(200000/(l+10000))
  
-define axis/x=0:360:1/units=degrees_east lonax
-let var2d = airt + 0.1*x[gx=lonax]
+! reset to normal axis lengths and prepare for a new piccie
+!ppl axlen 8
+frame/file=bnplot_1.gif
+set wind/clear
  
-shade/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
-fill/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
-shade/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
+! draw six frames
+set view ll6
+contour/i=1:50/j=1:50/levels=(0,2.5,.25)/nolabel i/(j+20)
+plot/over/nolab/vs/line/i=1:50/j=1:50/nolabel 6*i/j,5*j/i
+set view ul6
+vector/i=1:50/j=1:50/length=50/aspect/nolabel sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
+def view/xlim=.333,.666/ylim=0,.5 lm6  ! redefine it (11/92)
+set view lm6
+shade/i=1:50/j=1:50/nolabel i/(j+20)
+set view lr6
+ppl lev () (0,2.5,.1)
+shade/i=1:50/j=1:50/line/level/nolabel i/(j+20)
+set view ur6
+let icomp = (sin(i/20)*10+j-20)
+let jcomp = (-1*cos(j/10)*10+i-20)
+contour/i=1:50/j=1:50/nolabel icomp^2+jcomp^2
+contour/i=1:50/j=1:50/over/level/nolabel icomp^2+(-1*cos(i/10)*80)^2
+! note: "i-i" and "j-j" are needed to create 2D structures
+vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
+vector/i=1:50/j=1:50/overlay/length/nolabel i-20+(j-j),40-j+(i-i)
+def view/xlim=.333,.666/ylim=.5,1 um6    ! redefine it (11/92)
+set view um6
+shade/i=1:50/j=1:50/nolabel i/(j+20)
+contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
+vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
+frame/file=bnplot_2.gif
+! additions for version 3.01 "/TITLE=" controls
+cancel viewports
+set view ul6
+plot/title="My Custom Title"/i=1:100/nolabel sin(i/6)
+plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/5)
+set view um6
+plot/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
+plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+set view ur6
+plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
+plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+set view ll6
+plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
+plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+set view lm6
+contour/i=1:20/j=1:20/title="My Contour Title"/nolabel sin(i/3)*cos(j/4)
+contour/over/i=5:30/j=5:30/title="My Contour Overlay"/nolabel sin(i/2)*cos(j/3)
+set view lr6
+wire/view=0,0,2/i=1:20/j=1:20/title="My Egg Carton"/nolabel sin(i/3)*cos(j/4)
  
+! addition for 3.20 showing changed default behavior of plot/vs
+! return to window and redraw with symbols
+set view ll6
+plot/vs/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
+plot/vs/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+frame/file=bnplot_3.gif
  
-shade/trans/t="21-aug-2015:00:00":"21-aug-2015:04:30" var2d
-fill/trans/t="21-aug-2015:01:15":"21-aug-2015:03:30" var2d
-shade/trans/t="21-aug-2015:01:15":"21-aug-2015:12:00" var2d
-*** Running test: bn_floatstr_extended.jnl
-[?1034h! bn_floatstr_extended.jnl
-! test use of Integer and zero-filled formats in FLOATSTR function (Ferret v6.95)
-! 9/28/2015
+! Prior to v5.8 could not get the window size in pixels when in gif mode
+show symbol ppl$xpixel
+PPL$XPIXEL = "1468"
+show symbol ppl$ypixel
+PPL$YPIXEL = "844"
  
+! V6.13
+! transparency with FRAME/TRANS
+!!
+! These gif images have the background color white or black
+! replaced by transparent color. This can be tested by putting
+! them into an HTML document with a colored background.
+! e.g. a file called test_transparent.html containing only this line:
+! <html> <body bgcolor="orange"> <img src="testfile.gif"/> </body> </html>
  
-LET string = FLOATSTR({3.14159,2.71828},"(i3)")
-LIST string
-             VARIABLE : FLOATSTR({3.14159,2.71828},"(i3)")
-             SUBSET   : 2 points (X)
- 1   / 1:"  3"
- 2   / 2:"  2"
+can view
+use coads_climatology
+shade/nokey/lev=50 sst[L=1]
+frame/trans/file=testbackground.gif
  
-LET string = FLOATSTR({3.14159,2.71828},"(i3.3)")
-LIST string
-             VARIABLE : FLOATSTR({3.14159,2.71828},"(i3.3)")
-             SUBSET   : 2 points (X)
- 1   / 1:"003"
- 2   / 2:"002"
+! moved here from bn500_bug_fixes.jnl. The frame/  command it contains
+! has trouble when running the benchmarks from remote desktop
+go bn_reset
+cancel mode verify
+go err491_long_gif_name
+! err491_long_gif_name.jnl
+! *sh* 4/99 - test 175 character gif name
  
-LET string = FLOATSTR({3.14159,2.71828},"(i03)")
-LIST string
-             VARIABLE : FLOATSTR({3.14159,2.71828},"(i03)")
-             SUBSET   : 2 points (X)
- 1   / 1:"003"
- 2   / 2:"002"
+! name length extended with changes to save_frame.F and xeq_frame.F
  
-! Missing data returned as the null string
-LET string = FLOATSTR({3.14159,2.71828,},"(i3)")
-LIST string
-             VARIABLE : FLOATSTR({3.14159,2.71828,},"(i3)")
-             SUBSET   : 3 points (X)
- 1   / 1:"  3"
- 2   / 2:"  2"
- 3   / 3:""   
+set wind/siz=0.03
+go ptest
+! Description: create a simple test line plot
  
-! Test some large and small values
-LET var = {3.14159,2.71828,}
-LIST FLOATSTR(36*var,"(i5)")
-             VARIABLE : FLOATSTR(36*VAR,"(i5)")
-             SUBSET   : 3 points (X)
- 1   / 1:"  113"
- 2   / 2:"   97"
- 3   / 3:""     
-LIST FLOATSTR(36*var,"(i4.3)")
-             VARIABLE : FLOATSTR(36*VAR,"(i4.3)")
-             SUBSET   : 3 points (X)
- 1   / 1:" 113"
- 2   / 2:" 097"
- 3   / 3:""    
-LIST FLOATSTR(1.e14*var,"(i12)")
-             VARIABLE : FLOATSTR(1.E14*VAR,"(i12)")
-             SUBSET   : 3 points (X)
- 1   / 1:" -2147483648"
- 2   / 2:" -2147483648"
- 3   / 3:""            
-LIST FLOATSTR(1.e-14*var,"(i5)")
-             VARIABLE : FLOATSTR(1.E-14*VAR,"(i5)")
-             SUBSET   : 3 points (X)
- 1   / 1:"    0"
- 2   / 2:"    0"
- 3   / 3:""     
+! spirograph picture ...
+PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
-! Result shape is inherited from the input variable
-USE gt4d011.cdf
-LIST/I=100/J=36:38/T=1-dec-1982:1-jan-1983 FLOATSTR(10000*tauy, "(i4)")
-             VARIABLE : FLOATSTR(10000*TAUY, "(i4)")
-             FILENAME : gt4d011.cdf
-             SUBSET   : 3 by 6 points (LATITUDE-TIME)
-             LONGITUDE: 130W
-                       3S    2.67S 2.33S 
-                        36    37    38
- 28-NOV-1982 22 / 18:"-271""-240""-208"
- 05-DEC-1982 00 / 19:"-283""-251""-220"
- 11-DEC-1982 02 / 20:"-294""-263""-231"
- 17-DEC-1982 04 / 21:"-356""-323""-290"
- 23-DEC-1982 06 / 22:"-469""-433""-397"
- 29-DEC-1982 08 / 23:"-583""-543""-503"
  
-USE coads_climatology
+sp rm -f abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
  
-! i4.4 is the same as i04
+frame/file="abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif"
  
-LET var =  FLOATSTR(sst,"(i4.4)")
-LET var =  FLOATSTR(sst,"(i04)")
+spawn ls abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
+abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.png
  
-LIST/X=165W:135W/Y=-50/L=1 var
-             VARIABLE : FLOATSTR(SST,"(i04)")
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 16 points (LONGITUDE)
-             LATITUDE : 51S
-             TIME     : 16-JAN 06:00
-                51S   
-                 20
- 165W   /  88:"0010"
- 163W   /  89:"0011"
- 161W   /  90:"0011"
- 159W   /  91:"0011"
- 157W   /  92:"0010"
- 155W   /  93:"0010"
- 153W   /  94:"0010"
- 151W   /  95:"0010"
- 149W   /  96:"0010"
- 147W   /  97:"0011"
- 145W   /  98:"0010"
- 143W   /  99:"0010"
- 141W   / 100:""    
- 139W   / 101:""    
- 137W   / 102:""    
- 135W   / 103:""    
  
-! Negative numbers cannot be listed with (i5.5) but can with (I05)
-LET var1 =  FLOATSTR(sst-10,"(i5.5)")
-LET var2 =  FLOATSTR(sst-10,"(i05)")
+! The fix for bug 1396
+set v ul; plot/dash x[gx=0:20:.5]
+set v ur; plot/dash x[gx=0:20:.1]
+set v ll; plot/dash x[gx=0:20:.05]
+set v lr; plot/dash x[gx=0:20:.01]
+frame/file=gif_dashbug.gif
  
-LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
-             DATA SET: ./coads_climatology.cdf
-             LATITUDE: 91S to 11S
-             LONGITUDE: 165W
-             TIME: 16-JAN 06:00
- Column  1: VAR1[G=4 deg on Y] is FLOATSTR(SST-10,"(i5.5)") (regrid: 4 deg on Y)
- Column  2: VAR2[G=4 deg on Y] is FLOATSTR(SST-10,"(i05)") (regrid: 4 deg on Y)
-              VAR1    VAR2
-89S   /  1: ""      ""     
-85S   /  2: ""      ""     
-81S   /  3: ""      ""     
-77S   /  4: "*****" "00-10"
-73S   /  5: "*****" "00-11"
-69S   /  6: "*****" "000-9"
-65S   /  7: "*****" "00-10"
-61S   /  8: "*****" "000-7"
-57S   /  9: "*****" "000-3"
-53S   / 10: "*****" "000-1"
-49S   / 11: "00002" "00002"
-45S   / 12: "00004" "00004"
-41S   / 13: "00006" "00006"
-37S   / 14: "00008" "00008"
-33S   / 15: "00010" "00010"
-29S   / 16: "00012" "00012"
-25S   / 17: "00015" "00015"
-21S   / 18: "00017" "00017"
-17S   / 19: "00018" "00018"
-13S   / 20: "00019" "00019"
+! Restore size
+set win/siz=1/asp=1
+ 
+! New benchmark gif outputs in v6.97
+go bn_reset
+cancel mode verify
+GO bn_hovmuller_overlays
+! bn_hovmuller_overlays.jnl
+! Previously a time series plot overlaid oon a Hovmuller plot did not
+! work unless the time axis of the original data had units of hours.
+! See ticket 2344
+ 
+! 1/6/2016 ACM
+ 
+! run this in the gif benchmarks.
+ 
+ 
+def view/xlim=0,.333/ylim=.5,1    ul6
+def view/xlim=.333,.666/ylim=.5,1 um6
+def view/xlim=.666,1/ylim=.5,1    ur6
+def view/xlim=0,.333/ylim=0,.5    ll6
+def view/xlim=.333,1/ylim=0,.5    lr6
  
+! The example from the FAQ, "Overlaying a time series on a 2D plot"
+set view ul6
  
-! F0 format for zero-filled F format
+! Define a 2D field in YT with a time axis in units of DAYS
+DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":5/UNITS=DAYS tdays
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
  
-let a = {1.1, 3.7}
-list  floatstr(a, "(f04.1)")
-             VARIABLE : FLOATSTR(A, "(f04.1)")
-             SUBSET   : 2 points (X)
- 1   / 1:"01.1"
- 2   / 2:"03.7"
+LET/TITLE=XY my_var = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
  
-let a = {1.1, 13.7}
-list floatstr(a, "(f06.1)")
-             VARIABLE : FLOATSTR(A, "(f06.1)")
-             SUBSET   : 2 points (X)
- 1   / 1:"0001.1"
- 2   / 2:"0013.7"
+! make a Hovmoller plot
  
-let a = {-1.1, 13.7}
-list  floatstr(a, "(f04.1)")
-             VARIABLE : FLOATSTR(A, "(f04.1)")
-             SUBSET   : 2 points (X)
- 1   / 1:"-1.1"
- 2   / 2:"13.7"
+SHADE my_var
  
-! testing negative numbers and null/missing results
-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
-             LATITUDE: 91S to 11S
-             LONGITUDE: 165W
-             TIME: 16-JAN 06:00
- Column  1: VAR1[G=4 deg on Y] is FLOATSTR(SST-20,"(f5.1)") (regrid: 4 deg on Y)
- Column  2: VAR2[G=4 deg on Y] is FLOATSTR(SST-20,"(f05.1)") (regrid: 4 deg on Y)
-              VAR1    VAR2
-89S   /  1: ""      ""     
-85S   /  2: ""      ""     
-81S   /  3: ""      ""     
-77S   /  4: "-20.4" "-20.4"
-73S   /  5: "-21.0" "-21.0"
-69S   /  6: "-19.8" "-19.8"
-65S   /  7: "-20.0" "-20.0"
-61S   /  8: "-17.3" "-17.3"
-57S   /  9: "-13.9" "-13.9"
-53S   / 10: "-11.2" "-11.2"
-49S   / 11: " -7.5" "0-7.5"
-45S   / 12: " -5.7" "0-5.7"
-41S   / 13: " -3.5" "0-3.5"
-37S   / 14: " -1.3" "0-1.3"
-33S   / 15: "  0.9" "000.9"
-29S   / 16: "  3.0" "003.0"
-25S   / 17: "  5.1" "005.1"
-21S   / 18: "  7.5" "007.5"
-17S   / 19: "  8.1" "008.1"
-13S   / 20: "  9.7" "009.7"
-*** Running test: bn696_bug_fixes
-[?1034h! bn696_bug_fixes
-! test various fixes that went into version 6.96
+! This did not work previously.  Needed to re-define the axis in units of hours
+PLOT/OVER my_var[Y=@loc:-4]
  
-GO bn_reset
-cancel mode verify
-GO err695_bounds_match_axis
-! err695_bounds_match_axis.jnl
-! ticket 2321.
-!
-! The coordinates match the upper bound of each cell
-! to machine accuracy. The internal rep of the value
-! has pt > bound_hi however.  The logic in tm_check_bnds
-! handes this.
  
-use shorttemp.nc
+! XT variable
+set view um6
  
-! Previously showed tbox=0 for every second pt.
-sh grid/l=1:4444 temp
-    GRID GSL1
- name       axis              # pts   start                end
- LON       LONGITUDE            1 r   97.45W               97.45W
- LAT       LATITUDE             1 r   36.65N               36.65N
- PFULL1_1  Z (hpa)              1 r-  3.3236               3.3236
- TIME      TIME                 4 i   19-JUN-1997 00:00    19-JUN-1997 01:30
- normal    E
- normal    F
+DEFINE AXIS/X=0:40E:1/UNITS=DEGREES xax
+LET/TITLE="XT" my_var = 10*cos(T[gt=tdays]/20)*EXP((-1)*x[gx=xax]/20)
+SHADE/t=1-jan-1987:1-jan-1989 my_var
+PLOT/OVER/TRANS/THICK my_var[x=@loc:-4]
  
-       L     T                   TBOX      TBOXLO                TSTEP (days)
-       1>  19-JUN-1997 00:00:00  0.0208333  18-JUN-1997 23:30:00    0.02083333
-       2>  19-JUN-1997 00:30:00  0.0208333  19-JUN-1997 00:00:00    0.04166667
-       3>  19-JUN-1997 01:00:00  0.0208333  19-JUN-1997 00:30:00    0.0625
-       4>  19-JUN-1997 01:30:00  0.0208333  19-JUN-1997 01:00:00    0.08333333
  
-GO bn_reset
+! Irregular time axis
+set view ur6
+ 
+DEFINE AXIS/T0=1-jan-2001/UNITS=DAYS tdays = {1,2,4,5,6,8,9,10,12,30,35,41,42,44,45,46,48,49,50,58}
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+LET my_var = 10*cos(T[gt=tdays])*EXP((-1)*y[gy=yax]/8)
+ 
+FILL/title="irregular t" my_var
+PLOT/OVER/thick/y=8 my_var+10
+ 
+ 
+! Like the dataset example from the FAQ
+set view ll6
+ 
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
+shade sst
+plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+ 
+can data/all
+can region
+ 
+! vector plots with a time series
+set view lr6
+ 
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
+ 
+vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
+ 
+let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
+plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
+ 
+FRAME/FILE=bn_hovmuller_overlays.pdf
+ 
+ 
+Go bn_reset
 cancel mode verify
-GO err695_show_dat_nodata
-! err695_show_dat_nodata.jnl
-! ticket 2322
-!
-! SHOW DATA noexist should include the dataset name or number
-! in the error message.
+GO bn_labels_on_taxis
+! bn_labels_on_taxis.jnl
+! tests of labels and overlays on time axes
  
-USE coads_climatology
  
-SHOW DATA 1
-     currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+set v ul
+DEFINE AXIS/T=1-JAN-1980:31-JAN-1985:30/T0=1-jan-1980/UNIT=days tax
+LET tt = t[gt=tax]
+LET tvar = cos(tt/200)
+plot tvar
  
-SHOW DATA coads_climatology
-     currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+LET xsqr = {-1,1,1,-1}                ! coordinates of a unit square
+LET ysqr = {-1,-1,1,1}
+LET xcircle = COS(6.3*i[i=1:42]/40)    ! coordinates of unit circle
+LET ycircle = SIN(6.3*i[i=1:42]/40)
  
+!   place an "X" at the value exactly at 7-aug-1982
+!   "@ITP" causes interpolation to exact location
  
-! intentional errors
-SET MODE ignore
-SHOW DATA noexist
-SHOW DATA 2
-SHOW DATA/ATT noexist
+let t0   = tt[t="7-aug-1982"@itp]
+let val0 = tvar[t="7-aug-1982"@itp]
+plot/vs/over/nolab/sym=2/thick/color=red t0,val0
  
-SET MODE/LAST ignore
-*** Running test: bn_bin_regrid
-[?1034h! bin regridding tests
+!   put a box around the "X"
+polygon/over/thick/color=red/nolab t0+30*xsqr, 0.05*ysqr+val0
  
-go bn_bin_regrid.sub X
-! Tests of @BIN and @NBIN regridding transforms
+!   place an "X" on the data point nearest to 15-may-1984
+!   Note that @ITP is absent, so behavior is set by MODE INTERPOLATE
+let t1   = tt[t="15-may-1984"]
+let val1 = tvar[t="15-may-1984"]
+plot/vs/over/nolab/sym=2/color=blue/thick t1,val1
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/X=1:5:1 dcoarse
+!     put a circle around the "X"
+plot/vs/over/color=blue/thick/nolab t1+30*xcircle,0.05*ycircle+val1
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/X irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _X[GX=irr]
+set v ur
+! Latitude/time plot
+let ytvar = cos(tt/200) + sin(j/3)
+shade/y=1:50/t=1-jan-1982:31-dec-1982 ytvar
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _X[GX=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
-             X: 0.5 to 5.5
- Column  1: DEST is _X[GX=DCOARSE]
- Column  2: VAR[G=1 delta on X at AVE] is _X[GX=IRR] (regrid: 1 delta on X at AVE)
- Column  3: VAR[G=1 delta on X at BIN] is _X[GX=IRR] (regrid: 1 delta on X at BIN)
- Column  4: VAR[G=1 delta on X at NBIN] is _X[GX=IRR] (regrid: 1 delta on X at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.178  1.150  2.000
-2   / 2:  2.000  1.545   ....  0.000
-3   / 3:  3.000  3.500   ....  0.000
-4   / 4:  4.000  3.980  3.500  1.000
-5   / 5:  5.000  4.838  4.850  2.000
+let tlo = tt[t="1-jul-1982"@itp]
+let thi = tt[t="1-aug-1982"@itp]
+polygon/over/nolab/thick/pal=gray {`tlo`, `thi`,` thi`, `tlo`},  {20, 20, 25, 25}
+ !-> polygon/over/nolab/thick/pal=gray {912, 943,943, 912},  {20, 20, 25, 25}
  
+set v ll
+! Plot the time series.
+!----------------------------------
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _X[gX=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _X[GX=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GX=dcoarse at ave], var[GX=dcoarse at BIN], var[GX=dcoarse at NBIN]
-             X: 0.5 to 5.5
- Column  1: DEST is _X[GX=DCOARSE]
- Column  2: VAR[G=1 delta on X at AVE] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at AVE)
- Column  3: VAR[G=1 delta on X at BIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at BIN)
- Column  4: VAR[G=1 delta on X at NBIN] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.956  1.650  2.000
-2   / 2:  2.000  2.200   ....  0.000
-3   / 3:  3.000   ....   ....  0.000
-4   / 4:  4.000   ....   ....  0.000
-5   / 5:  5.000  5.000  5.000  1.000
+LET tvar = cos(tt/200)* tt/100
+PLOT/vlim=-20:20 tvar
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GX=dcoarse]
-             X: 0.5 to 5.5
- Column  1: DEST is _X[GX=DCOARSE]
- Column  2: VAR[G=1 delta on X] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
-          DEST    VAR
-1   / 1:  1.000   ....
-2   / 2:  2.000   ....
-3   / 3:  3.000   ....
-4   / 4:  4.000   ....
-5   / 5:  5.000  5.000
+!----------------------------------
+! Locate label position on time variable axis: the coordinate at the start of 1985.
+LET datelabelpos=TT[T="01-JAN-1981"@ITP]
  
-go bn_bin_regrid.sub Y
-! Tests of @BIN and @NBIN regridding transforms
+! Do nothing but set $PPL$XFIRST1 symbol at the time axis plot units
+PLOT/LINE/VS/OVER/NOLAB datelabelpos,-9
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/Y=1:5:1 dcoarse
+! Make the label; left-justified
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),-8,-1,0,0.12, at AC Year 81 starts
+ !-> PPL %LABEL 17905.00,-8,-1,0,0.12, at AC Year 81 starts
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/Y irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _Y[GY=irr]
+! Draw a vertical red line at the year boundary
+PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {`datelabelpos`,`datelabelpos`},{-20,20}
+ !-> PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {366,366},{-20,20}
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _Y[GY=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
-             Y: 0.5 to 5.5
- Column  1: DEST is _Y[GY=DCOARSE]
- Column  2: VAR[G=1 delta on Y at AVE] is _Y[GY=IRR] (regrid: 1 delta on Y at AVE)
- Column  3: VAR[G=1 delta on Y at BIN] is _Y[GY=IRR] (regrid: 1 delta on Y at BIN)
- Column  4: VAR[G=1 delta on Y at NBIN] is _Y[GY=IRR] (regrid: 1 delta on Y at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.178  1.150  2.000
-2   / 2:  2.000  1.545   ....  0.000
-3   / 3:  3.000  3.500   ....  0.000
-4   / 4:  4.000  3.980  3.500  1.000
-5   / 5:  5.000  4.838  4.850  2.000
+! Do the same for the start of 1984
+!----------------------------------
+! Locate label position on time var axis
+LET datelabelpos=TT[T="01-JAN-1984"@ITP]
  
+! Do nothing but set $PPL$XFIRST1 symbol at the time axis plot units
+plot/line/vs/over/nolab datelabelpos,-9
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _Y[gY=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _Y[GY=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GY=dcoarse at ave], var[GY=dcoarse at BIN], var[GY=dcoarse at NBIN]
-             Y: 0.5 to 5.5
- Column  1: DEST is _Y[GY=DCOARSE]
- Column  2: VAR[G=1 delta on Y at AVE] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at AVE)
- Column  3: VAR[G=1 delta on Y at BIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at BIN)
- Column  4: VAR[G=1 delta on Y at NBIN] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.956  1.650  2.000
-2   / 2:  2.000  2.200   ....  0.000
-3   / 3:  3.000   ....   ....  0.000
-4   / 4:  4.000   ....   ....  0.000
-5   / 5:  5.000  5.000  5.000  1.000
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),-8,-1,0,0.12, at AC Year 84 starts
+ !-> PPL %LABEL 44185.00,-8,-1,0,0.12, at AC Year 84 starts
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GY=dcoarse]
-             Y: 0.5 to 5.5
- Column  1: DEST is _Y[GY=DCOARSE]
- Column  2: VAR[G=1 delta on Y] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
-          DEST    VAR
-1   / 1:  1.000   ....
-2   / 2:  2.000   ....
-3   / 3:  3.000   ....
-4   / 4:  4.000   ....
-5   / 5:  5.000  5.000
+! Draw a vertical red line at the year boundary
+PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {`datelabelpos`,`datelabelpos`},{-20,20}
+ !-> PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {1461,1461},{-20,20}
  
-go bn_bin_regrid.sub Z
-! Tests of @BIN and @NBIN regridding transforms
+!----------------------------------
+! Now lets locate and label the maximum of the variable
+LET vmax = `tvar[T=@MAX]`
+ !-> DEFINE VARIABLE vmax = 12.72093
+LET t_at_max = tvar[T=01-JAN-1980:31-DEC-1985 at LOC:`vmax`]
+ !-> DEFINE VARIABLE t_at_max = tvar[T=01-JAN-1980:31-DEC-1985 at LOC:12.72093]
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/Z=1:5:1 dcoarse
+! This will define $PPL$XFIRST1 and also make a mark at the maximum location
+PLOT/VS/OVER/NOLAB/SYM=17/COLOR=red t_at_max, vmax
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/Z irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _Z[GZ=irr]
+! Use a centered label this time
+! 1.02*vmax moves the label up a bit.
+! LABEL xpos, ypos, justify, rotate, height "text"
+LABEL ($PPL$XFIRST1),`1.02*vmax`,0,0,0.12, at AC MAX = `vmax,prec=3`
+ !-> PPL %LABEL 40081.00,12.97535,0,0,0.12, at AC MAX = 12.7
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _Z[GZ=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
-             Z: 0.5 to 5.5
- Column  1: DEST is _Z[GZ=DCOARSE]
- Column  2: VAR[G=1 delta on Z at AVE] is _Z[GZ=IRR] (regrid: 1 delta on Z at AVE)
- Column  3: VAR[G=1 delta on Z at BIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at BIN)
- Column  4: VAR[G=1 delta on Z at NBIN] is _Z[GZ=IRR] (regrid: 1 delta on Z at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.178  1.150  2.000
-2   / 2:  2.000  1.545   ....  0.000
-3   / 3:  3.000  3.500   ....  0.000
-4   / 4:  4.000  3.980  3.500  1.000
-5   / 5:  5.000  4.838  4.850  2.000
+set v lr
  
+! Define a dummy track line, position as a function of time.
+DEFINE AXIS/T=1-JAN-1980:31-JAN-1985:30/UNIT=days tax
+LET ypos = 40 *COS(L[GT=tax]/32)
+LET xpos = 220 - 50 *SIN(L[GT=tax]/22)
+! Make the basic track plot
+use ocean_atlas_temp
+shade/pal=blue_light/X=110E:40W/Y=20S:50N/L=1 temp
+ 
+PLOT/VS/NOLAB/OVER XPOS,YPOS
+! Label every 5th date. The labels could be positioned differently, using
+! the 3rd argument of the LABEL command to control centering. Or, to put the
+! labels a bit above the corresponding point location, add a small amount to
+! the y positions, for instance `ypos + 0.04` in the second argument to LABEL.
+LET tt = t[gt=tax]
+! Loop over L; at each L we evaluate TAX_DATESTRING for the time step,
+! and compute the location for the label
+REPEAT/L=5:60:10 (DEFINE SYMBOL tlab = "`TAX_DATESTRING(tt,tt,"day")`"; \
+ LABEL `xpos` `ypos` 1 0 0.09 ($tlab) )
+ !-> REPEAT/L=5:60:10 (DEFINE SYMBOL tlab = "`TAX_DATESTRING(tt,tt,"day")`";  LABEL `xpos` `ypos` 1 0 0.09 ($tlab) )
+!-> REPEAT: L=5
+ !-> DEFINE SYMBOL tlab = "30-APR-1980"
+ !-> PPL %LABEL 208.7339 39.51271 1 0 0.09 "30-APR-1980"
+!-> REPEAT: L=15
+ !-> DEFINE SYMBOL tlab = "24-FEB-1981"
+ !-> PPL %LABEL 188.4897 35.68535 1 0 0.09 "24-FEB-1981"
+!-> REPEAT: L=25
+ !-> DEFINE SYMBOL tlab = "21-DEC-1981"
+ !-> PPL %LABEL 174.6446 28.40136 1 0 0.09 "21-DEC-1981"
+!-> REPEAT: L=35
+ !-> DEFINE SYMBOL tlab = "17-OCT-1982"
+ !-> PPL %LABEL 170.0101 18.36629 1 0 0.09 "17-OCT-1982"
+!-> REPEAT: L=45
+ !-> DEFINE SYMBOL tlab = "13-AUG-1983"
+ !-> PPL %LABEL 175.5276 6.552192 1 0 0.09 "13-AUG-1983"
+!-> REPEAT: L=55
+ !-> DEFINE SYMBOL tlab = "08-JUN-1984"
+ !-> PPL %LABEL 190.0764 -5.896579 1 0 0.09 "08-JUN-1984"
+ 
+FRAME/FILE=bn_labels_on_taxis.pdf
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _Z[gZ=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _Z[GZ=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GZ=dcoarse at ave], var[GZ=dcoarse at BIN], var[GZ=dcoarse at NBIN]
-             Z: 0.5 to 5.5
- Column  1: DEST is _Z[GZ=DCOARSE]
- Column  2: VAR[G=1 delta on Z at AVE] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at AVE)
- Column  3: VAR[G=1 delta on Z at BIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at BIN)
- Column  4: VAR[G=1 delta on Z at NBIN] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.956  1.650  2.000
-2   / 2:  2.000  2.200   ....  0.000
-3   / 3:  3.000   ....   ....  0.000
-4   / 4:  4.000   ....   ....  0.000
-5   / 5:  5.000  5.000  5.000  1.000
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GZ=dcoarse]
-             Z: 0.5 to 5.5
- Column  1: DEST is _Z[GZ=DCOARSE]
- Column  2: VAR[G=1 delta on Z] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
-          DEST    VAR
-1   / 1:  1.000   ....
-2   / 2:  2.000   ....
-3   / 3:  3.000   ....
-4   / 4:  4.000   ....
-5   / 5:  5.000  5.000
+GO bn_reset
+cancel mode verify
+GO err696_contour_conset
+! err696_contour_conset.jnl
+! Ticket 2351. The PPL CONSET command had stopped working to set
+! the # of digits in contour labels.  See the setting in PPL LIST LEVELS
  
-go bn_bin_regrid.sub T
-! Tests of @BIN and @NBIN regridding transforms
+contour/i=1:20/j=1:20/lev=(-10,10,2.125)/set/title="CONTOUR/SET with PPL CONSET,,4"  10*sin(i/3)*cos(j/4)
+ppl conset,,4
+ppl contour
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/T=1:5:1 dcoarse
+! This should show NDIG=3
+ppl list levels
+
+
+         LEVEL       TYPE       NDIG       PEN
+         -1.00E+01     DASH        3        0
+         -7.88E+00     DASH        3        0
+         -5.75E+00     DASH        3        0
+         -3.63E+00     DASH        3        0
+         -1.50E+00     DASH        3        0
+          6.25E-01     LINE        3        0
+          2.75E+00     LINE        3        0
+          4.88E+00     LINE        3        0
+          7.00E+00     LINE        3        0
+          9.13E+00     LINE        3        0
+          1.13E+01     LINE        3        0
+ 
+! Now make the same setting with CONTOUR/SIGDIG=
+contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/sigdig=4/title="CONTOUR/SIGDIG=4"  10*sin(i/3)*cos(j/4)
+ 
+! This should show NDIG=3
+ppl list levels
+
+
+         LEVEL       TYPE       NDIG       PEN
+         -1.00E+01     DASH        3        0
+         -7.88E+00     DASH        3        0
+         -5.75E+00     DASH        3        0
+         -3.63E+00     DASH        3        0
+         -1.50E+00     DASH        3        0
+          0.00E+00     DARK       -1        0
+          6.25E-01     LINE        3        0
+          2.75E+00     LINE        3        0
+          4.88E+00     LINE        3        0
+          7.00E+00     LINE        3        0
+          9.13E+00     LINE        3        0
+          1.13E+01     LINE        3        0
+ 
+! test CONTOUR/SET; CONSET; PPL CONTOUR settings
+contour/i=1:20/j=1:20/lev=(-10,10,2.125)/set/title="CONTOUR/SET with PPL CONSET,,4"  10*sin(i/3)*cos(j/4)
+ppl conset,0.07,4,,,,,,1
+ppl contour
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/T irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _T[GT=irr]
+! test CONTOUR qualifiers that make CONSET settings. Should exactly overlay the previous plot.
+contour/over/color=red/i=1:20/j=1:20/lev=(-10,10,2.125)\
+/sigdig=4/siz=0.07/spacing=1  10*sin(i/3)*cos(j/4)
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T at AVE] is _T[GT=IRR] (regrid: 1 delta on T at AVE)
- Column  3: VAR[G=1 delta on T at BIN] is _T[GT=IRR] (regrid: 1 delta on T at BIN)
- Column  4: VAR[G=1 delta on T at NBIN] is _T[GT=IRR] (regrid: 1 delta on T at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.178  1.150  2.000
-2   / 2:  2.000  1.545   ....  0.000
-3   / 3:  3.000  3.500   ....  0.000
-4   / 4:  4.000  3.980  3.500  1.000
-5   / 5:  5.000  4.838  4.850  2.000
+frame/file=bn_contour_conset.gif
  
+GO bn_reset
+cancel mode verify
+GO err696_subspan_mod_strides
+! err696_subspan_mod_strides
+! See ticket 513. Axis is subspan modulo, and strides
+! on a plot with a larger region than the axis span caused the
+! shade plot to smear out beyond the edges.
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _T[gT=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _T[GT=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GT=dcoarse at ave], var[GT=dcoarse at BIN], var[GT=dcoarse at NBIN]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T at AVE] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at AVE)
- Column  3: VAR[G=1 delta on T at BIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at BIN)
- Column  4: VAR[G=1 delta on T at NBIN] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.956  1.650  2.000
-2   / 2:  2.000  2.200   ....  0.000
-3   / 3:  3.000   ....   ....  0.000
-4   / 4:  4.000   ....   ....  0.000
-5   / 5:  5.000  5.000  5.000  1.000
+define axis/x/units=degrees_e xax = {-82.96,-81.46,-79.96,-78.47,-76.97,-75.48,-73.98,-72.48,-70.99,-69.49}
+let xx = x[gx=xax]
+let yy = y[y=4:20:2]
+let d10 = randu(xx) - randu(yy)
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GT=dcoarse]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
-          DEST    VAR
-1   / 1:  1.000   ....
-2   / 2:  2.000   ....
-3   / 3:  3.000   ....
-4   / 4:  4.000   ....
-5   / 5:  5.000  5.000
+! previously smeared out to the plot edges.
+set view upper
+shade/hlim=-95:-60/vlim=0:25 d10[i=1:10:2,j=1:10]
  
-go bn_bin_regrid.sub E
-! Tests of @BIN and @NBIN regridding transforms
+! similar behavior with overlays
+set view lower
+use coads_climatology
+shade/L=3/pal=white/nokey/x=-180:0/y=0:30/title="Overlay Test" sst
+shade/over d10[i=1:10:2,j=1:10]
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/E=1:5:1 dcoarse
+frame/file=bn_subspan_mod_strides.gif
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/E irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _E[GE=irr]
+exit/command
+*** Running ferret script: bn_ps.jnl
+[?1034h! bn450_ps.JNL - copied from bn450_plot.jnl
+! this journal file only tests the writing of ps files in batch mode using
+! "-batch bnplot.ps" command line option...will create on final ps file
+! *kob*
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E at AVE] is _E[GE=IRR] (regrid: 1 delta on E at AVE)
- Column  3: VAR[G=1 delta on E at BIN] is _E[GE=IRR] (regrid: 1 delta on E at BIN)
- Column  4: VAR[G=1 delta on E at NBIN] is _E[GE=IRR] (regrid: 1 delta on E at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.178  1.150  2.000
-2   / 2:  2.000  1.545   ....  0.000
-3   / 3:  3.000  3.500   ....  0.000
-4   / 4:  4.000  3.980  3.500  1.000
-5   / 5:  5.000  4.838  4.850  2.000
+! define a 6 viewport window (modified definitions 11/92)
+def view/xlim=0,.333/ylim=0,.5    ll6
+def view/xlim=0,.333/ylim=.5,1    ul6
+def view/xlim=.333,.666/ylim=0,.5 lm6
+def view/xlim=.333,.666/ylim=.5,1 um6
+def view//xlim=.666,1/ylim=0,.5   lr6
+def view/xlim=.666,1/ylim=.5,1    ur6
+show view
  
+ name             text    xlimits     ylimits    mode
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _E[gE=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _E[GE=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GE=dcoarse at ave], var[GE=dcoarse at BIN], var[GE=dcoarse at NBIN]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E at AVE] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at AVE)
- Column  3: VAR[G=1 delta on E at BIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at BIN)
- Column  4: VAR[G=1 delta on E at NBIN] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.956  1.650  2.000
-2   / 2:  2.000  2.200   ....  0.000
-3   / 3:  3.000   ....   ....  0.000
-4   / 4:  4.000   ....   ....  0.000
-5   / 5:  5.000  5.000  5.000  1.000
+ UPPER            1.00   0.00,1.00   0.50,1.00   edges
+ LOWER            1.00   0.00,1.00   0.00,0.50   edges
+ RIGHT            1.00   0.50,1.00   0.00,1.00   edges
+ LEFT             1.00   0.00,0.50   0.00,1.00   edges
+ LL               0.50   0.00,0.50   0.00,0.50   edges
+ LR               0.50   0.50,1.00   0.00,0.50   edges
+ UL               0.50   0.00,0.50   0.50,1.00   edges
+ UR               0.50   0.50,1.00   0.50,1.00   edges
+ FULL             1.00   0.00,1.00   0.00,1.00   edges
+ LL6              0.41   0.00,0.33   0.00,0.50   edges
+ UL6              0.41   0.00,0.33   0.50,1.00   edges
+ LM6              0.41   0.33,0.67   0.00,0.50   edges
+ UM6              0.41   0.33,0.67   0.50,1.00   edges
+ LR6              0.41   0.67,1.00   0.00,0.50   edges
+ UR6              0.41   0.67,1.00   0.50,1.00   edges
+   current viewport is NONE
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GE=dcoarse]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
-          DEST    VAR
-1   / 1:  1.000   ....
-2   / 2:  2.000   ....
-3   / 3:  3.000   ....
-4   / 4:  4.000   ....
-5   / 5:  5.000  5.000
+! some variables for plotting
+let a = 0.8*sin(l/10)
+let b = 0.6*cos(l/10)
+let c = sin(100/(l+k))
+let d = l/50
+let e = k-(l/25)
+let f = -.5+(l/125)
+let g = (l-25)/(k*35)
+let h = 0.1
+let m = 0.2
  
-go bn_bin_regrid.sub F
-! Tests of @BIN and @NBIN regridding transforms
+! illegal plot commands
+set mode ignore
+plot/i=1:10/j=1:20/nolabel i+j			! not a line
+plot/i=1:10/j=1:20/nolabel i,i+j		! not a line
+plot/i=1:10/j=1:20/nolabel i+j,i		! not a line
+plot/i=1:10/j=1:20/nolabel j,i			! differing axes
+plot/i=1:10/j=1:20/vs/line/nolabel j,i		! unequal lengths
+contour/i=1:10/j=1:20/nolabel i			! only 1 D
+contour/i=1:10/j=1:20/nolabel i/j,j/i		! multiple fields
+vector/i=1:10/j=1:20/nolabel i/j		! only 1 field
+vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j	! 3 fields
+set mode/last ignore
  
-DEFINE AXIS/$1=1:5:1 dcoarse
- !-> DEFINE AXIS/F=1:5:1 dcoarse
+! notice the default window size is 10.2,width x 8.8,height
+ppl list plot
+         WIDTH=   10.20  HEIGHT=    8.80  TKTYPE=    0  BAUD=  110
+         WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
+         PLOT MODE=   A
+         PLOT FILE= ferret.png                                                                                                                                                                                                                                                                                                                                                                                                                                                                               [...]
  
-! Data on an irregular grid
-LET sbin = {1.1, 1.2, 3.5, 4.7, 5}
-DEFINE AXIS/$1 irr = sbin
- !-> DEFINE AXIS/F irr = sbin
-LET var = _$1[G$1=irr]
- !-> DEFINE VARIABLE var = _F[GF=irr]
+! enlarge it to accomodate an additional 50% width
+! ppl size 15.3,8.8
+! in PyFerret must use SET WINDOW
+set win /xinch=15.3 /yinch=8.8
+ 
+! turn on metafile (enabled 10/29/91)
+! commented out 9/97 - instead set in bn450_all.jnl
+! set mode metafile
+ 
+! draw a plot into a viewport - to be deleted (check hard copy)
+set view ll6
+contour/i=1:50/j=1:50/nolabel i/(j+20)
+ 
+! 4 frames testing PLOT output
+set view ul6
+plot/l=1:50/k=1/trans/nolabel a,b,c
+plot/l=1:50/k=1/trans/over/line=6/nolabel d
+plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
+plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
+def view/xlim=.333,1/ylim=0,.5 lm6   ! redefine longer in x (11/92)
+set view lm6
+!ppl axlen 16
+set region/k=1
+plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
+def view/xlim=.333,1/ylim=.5,1 um6    ! redefine it longer in x (11/92)
+set view um6
+!ppl axlen 17,5
+plot/l=1:50/nolabel sin(100/(l+5))
+plot/l=1:50/over/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
+set view ll6
+!ppl axlen 8,6
+plot/l=1:99000/nolabel sin(200000/(l+10000))
  
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
-! Compare @AVE and @BIN regridding
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F at AVE] is _F[GF=IRR] (regrid: 1 delta on F at AVE)
- Column  3: VAR[G=1 delta on F at BIN] is _F[GF=IRR] (regrid: 1 delta on F at BIN)
- Column  4: VAR[G=1 delta on F at NBIN] is _F[GF=IRR] (regrid: 1 delta on F at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.178  1.150  2.000
-2   / 2:  2.000  1.545   ....  0.000
-3   / 3:  3.000  3.500   ....  0.000
-4   / 4:  4.000  3.980  3.500  1.000
-5   / 5:  5.000  4.838  4.850  2.000
+! reset to normal axis lengths and prepare for a new piccie
+!ppl axlen 8
  
+frame/file=bnplot_4.pdf   ! Not an error in PyFerret
+frame/file=bnplot_4.ps    ! Not an error in PyFerret
  
-! Data on an irregular grid with missing values
-LET sbin = {1.1, 2.2, , , 5}
-LET var = RESHAPE(sbin, _$1[g$1=irr])
- !-> DEFINE VARIABLE var = RESHAPE(sbin, _F[gF=irr])
-LET dest =  _$1[G$1=dcoarse]
- !-> DEFINE VARIABLE dest =  _F[GF=dcoarse]
-LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
- !-> LIST dest, var[GF=dcoarse at ave], var[GF=dcoarse at BIN], var[GF=dcoarse at NBIN]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F at AVE] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at AVE)
- Column  3: VAR[G=1 delta on F at BIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at BIN)
- Column  4: VAR[G=1 delta on F at NBIN] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F at NBIN)
-          DEST    VAR    VAR    VAR
-1   / 1:  1.000  1.956  1.650  2.000
-2   / 2:  2.000  2.200   ....  0.000
-3   / 3:  3.000   ....   ....  0.000
-4   / 4:  4.000   ....   ....  0.000
-5   / 5:  5.000  5.000  5.000  1.000
  
-LIST dest, var[G$1=dcoarse]
- !-> LIST dest, var[GF=dcoarse]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
-          DEST    VAR
-1   / 1:  1.000   ....
-2   / 2:  2.000   ....
-3   / 3:  3.000   ....
-4   / 4:  4.000   ....
-5   / 5:  5.000  5.000
  
-*** Running test: bn_all_ef.jnl
+*** Running ferret script: bn_all_ef.jnl
 [?1034hSET MODE VERIFY
 ! bn_all_ef.jnl
 ! - run all the benchmark tests for externally-linked external functions.
@@ -86083,25 +95261,26 @@ go bn_fcn_calls.jnl
 exit
  
 exit/command
-*** Running test: bn_startupfile.jnl
+*** Running ferret script: bn_startupfile.jnl
 [?1034h Current size of FERRET memory cache: 31 MegaWords  (1 word = 8 bytes)
 PPL$XPIXEL = "979"
 PPL$YPIXEL = "844"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.96"
-FERRET_PLATFORM = "Linux 2.6.32-573.7.1.el6.x86_64"
+FERRET_VERSION = "7"
+FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64"
 FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.3.1 of Nov 17 2015 15:01:40 $"
+NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = "19-Nov-15"
-SESSION_TIME = "12:07"
-SESSION_PID = "16296"
-DELTA_CPU = "0.688895"
-CLOCK_SECS = "0.329"
-CURRENT_DATE = "19-Nov-15"
-CURRENT_TIME = "12:07:02"
+SESSION_DATE = "17-Jun-16"
+SESSION_TIME = "15:19"
+SESSION_PID = "5549"
+DELTA_CPU = "0.208968"
+CLOCK_SECS = "0.105"
+CURRENT_DATE = "17-Jun-16"
+CURRENT_TIME = "15:19:11"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
+GO_FILE = "./bn_startupfile.jnl"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
 PPL$PLTNME = "ferret.png"
@@ -86124,7 +95303,7 @@ PPL$COMMAND_FILE = "$$MEMBUF$$"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 PPL$SCALE = "1.0000"
-WIN_TITLE = "19-Nov-15_12:07"
+WIN_TITLE = "17-Jun-16_15:19"
 VP_SCALE = "1"
 VP_RT_MARGIN = "1"
 VP_TOP_MARGIN = "1.4"
@@ -86144,7 +95323,7 @@ VP_YHI = "1"
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
-      F_LABEL          SET               1
+      F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
       WAIT          CANCELLED
@@ -86177,9 +95356,1471 @@ VP_YHI = "1"
  TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
  PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
  
-*** Running test: bn_outline_poly.jnl
+*** Running ferret script: bn_outline_poly.jnl
 [?1034hset win /xinch=8 /thick=1 /asp=1 /outline=5 1
 let v = 2*3.14159*x[gx=0:1:.01]
 poly/hl=-1:1/vl=-1:1/key/pal=red/thick=1/opac=50 sin(v), cos(v)
 frame /file=outline_poly.pdf
-Ended at Thu Nov 19 12:07:03 PST 2015
+*** Running ferret script: bn_contourcolor.jnl
+[?1034hset text /font=hershey
+contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=blue/title="CONTOUR HERSHEY BLUE"  10*sin(i/3)*cos(j/4)
+frame /file=contourcolor_blue.pdf
+set text /font=tahoma
+contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=green/title="CONTOUR TAHOMA GREEN"  10*sin(i/3)*cos(j/4)
+frame /file=contourcolor_green.pdf
+contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=(60,20,30)/title="CONTOUR TAHOMA (60,20,30)"  10*sin(i/3)*cos(j/4)
+frame /file=contourcolor_puce.pdf
+*** Running python script: testgetstrdata.py
+[?1034h
+>>> pyferret.run('let strarr = {"one", "two", "three", "four", "five", "six"}')
+(3, '')
+>>> pyferret.run('list strarr')
+             VARIABLE : {"one", "two", "three", "four", "five", "six"}
+             SUBSET   : 6 points (X)
+ 1   / 1:"one"  
+ 2   / 2:"two"  
+ 3   / 3:"three"
+ 4   / 4:"four" 
+ 5   / 5:"five" 
+ 6   / 6:"six"  
+(3, '')
+>>> strdict = pyferret.getstrdata('strarr')
+>>> print pyferret.metastr(strdict)
+title: strarr
+missing_value: 
+axis_names: ('ABSTRACT', '', '', '', '', '')
+axis_types: (6=abstract, 7=unused, 7=unused, 7=unused, 7=unused, 7=unused)
+axis_units: ('', '', '', '', '', '')
+axis_coords:
+   'ABSTRACT': [ 1.  2.  3.  4.  5.  6.]
+   '': None
+   '': None
+   '': None
+   '': None
+   '': None
+
+>>> strdata = strdict['data']
+>>> repr(strdata.squeeze())
+"array(['one', 'two', 'three', 'four', 'five', 'six'], \n      dtype='|S6')"
+>>> del strdata
+>>> del strdict
+>>> strdict = pyferret.getstrdata('strarr')
+>>> repr(strdict)
+"{'title': 'strarr', 'axis_names': ('ABSTRACT', '', '', '', '', ''), 'axis_types': (6, 7, 7, 7, 7, 7), 'axis_units': ('', '', '', '', '', ''), 'axis_coords': (array([ 1.,  2.,  3.,  4.,  5.,  6.]), None, None, None, None, None), 'missing_value': array(['\\x04'], \n      dtype='|S6'), 'data': array([[[[[['one']]]]],\n\n\n\n\n       [[[[['two']]]]],\n\n\n\n\n       [[[[['three']]]]],\n\n\n\n\n       [[[[['four']]]]],\n\n\n\n\n       [[[[['five']]]]],\n\n\n\n\n       [[[[['six']]]]]], \n    [...]
+>>> del strdict
+*** Running python script: testferregion.py
+[?1034h
+>>> emptyregion = pyferret.FerRegion()
+>>> print repr(emptyregion)
+FerRegion()
+>>> emptyregion._ferretqualifierstr()
+''
+>>> coordregion = pyferret.FerRegion(X=slice(-70,20),Y=slice('20N','60N'),Z=-100,T='15-DEC-2015',E=0,F='1')
+>>> print repr(coordregion)
+FerRegion(X='-70:20',Y='20N:60N',Z='-100',T='15-DEC-2015',E='0',F='1')
+>>> coordregion._ferretqualifierstr()
+'/X=-70:20/Y=20N:60N/Z=-100/T=15-DEC-2015/E=0/F=1'
+>>> indexregion = pyferret.FerRegion(I=slice(0,20),J=slice('1','60'),K=10,L='5',M=0,N='1')
+>>> print repr(indexregion)
+FerRegion(I='1:20',J='1:60',K='11',L='5',M='1',N='1')
+>>> indexregion._ferretqualifierstr()
+'/I=1:20/J=1:60/K=11/L=5/M=1/N=1'
+>>> try:
+...     badregion = pyferret.FerRegion(X='70W:20E',I=slice(0,20))
+...     print 'Error not caught'
+... except ValueError as ex:
+...     print 'Error caught: %s' % str(ex)
+Error caught: X and I cannot both be given
+*** Running python script: testferdset.py
+[?1034h
+>>> coads = pyferret.FerDSet('coads_climatology.cdf')
+>>> str(coads)
+"FerDSet('coads_climatology.cdf') using dataset name 'coads_climatology.cdf' and variables ['SST']"
+>>> dir(coads)
+['SST', '__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'sst']
+>>> coads.show()
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+>>> coads_uw  = pyferret.FerDSet('coads_uw.nc')
+>>> str(coads_uw)
+"FerDSet('coads_uw.nc') using dataset name 'coads_uw.nc' and variables ['SPEH', 'UWND', 'VWND']"
+>>> dir(coads_uw)
+['SPEH', 'UWND', 'VWND', '__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'speh', 'uwnd', 'vwnd']
+>>> coads_uw.show(brief=False)
+     currently SET data sets:
+    2> ./coads_uw.nc  (default)
+ 
+ name     title                             I         J         K         L         M         N
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
+             M/S on grid GFQ1 with -1.E+34 for missing data
+             X=60W:0E(360)  Y=0:60N  
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
+             M/S on grid GFQ1 with -1.E+34 for missing data
+             X=60W:0E(360)  Y=0:60N  
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+             G/KG on grid GFQ1 with -1.E+34 for missing data
+             X=60W:0E(360)  Y=0:60N  
+ 
+  time range: 16-JAN 06:00 to 16-DEC 01:20
+ 
+>>> try:
+...     pyferret.FerDSet(None)
+...     print 'No error found'
+... except ValueError as ex:
+...     print 'ValueError caught with message ' + str(ex)
+ValueError caught with message: pyferret.anondset should be used for the anonymous dataset
+>>> pyferret.anondset.sstcopy = coads.sst
+>>> pyferret.anondset.show()
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     SSTCOPY = SST[D=COADS_CLIMATOLOGY.CDF]
+>>> pyferret.showdata(brief=False)
+     currently SET data sets:
+    1> ./coads_climatology.cdf
+ 
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+             Deg C on grid GSQ1 with -1.E+34 for missing data
+             X=20E:20E(380)  Y=90S:90N  
+ 
+  time range: 16-JAN 06:00 to 17-MAR 02:58
+ 
+    2> ./coads_uw.nc  (default)
+ 
+ name     title                             I         J         K         L         M         N
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
+             M/S on grid GFQ1 with -1.E+34 for missing data
+             X=60W:0E(360)  Y=0:60N  
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
+             M/S on grid GFQ1 with -1.E+34 for missing data
+             X=60W:0E(360)  Y=0:60N  
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+             G/KG on grid GFQ1 with -1.E+34 for missing data
+             X=60W:0E(360)  Y=0:60N  
+ 
+  time range: 16-JAN 06:00 to 16-DEC 01:20
+ 
+>>> coads_uw.close()
+>>> pyferret.showdata()
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+>>> del coads_uw
+>>> pyferret.showdata()
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+>>> coads.close()
+>>> pyferret.showdata()
+     currently SET data sets:
+>>> coads.close()
+>>> pyferret.showdata()
+     currently SET data sets:
+>>> del coads
+>>> pyferret.showdata()
+     currently SET data sets:
+>>> dir(pyferret.anondset)
+['SSTCOPY', '__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'sstcopy']
+>>> pyferret.anondset.show()
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+     SSTCOPY = SST[D=COADS_CLIMATOLOGY.CDF]
+>>> pyferret.anondset.close()
+>>> dir(pyferret.anondset)
+['__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__']
+>>> pyferret.anondset.show()
+ Created by DEFINE VARIABLE:
+*** Running python script: testfervar.py
+[?1034h
+>>> coads = pyferret.FerDSet('coads_climatology.cdf')
+>>> str(coads.sst)
+FerVar(varname='SST', dsetname='coads_climatology.cdf', title = '', defn='SST[d=coads_climatology.cdf]')
+>>> coads.sst.showgrid()
+    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
+ normal    E
+ normal    F
+None
+>>> del coads.sst
+>>> coads_uw  = pyferret.FerDSet('coads_uw.nc')
+>>> coads_uw.uwnd.showgrid()
+    GRID GFQ1
+ name       axis              # pts   start                end                 subset
+ COADSX141_170 LONGITUDE       30mr   59W                  1W                  full
+ COADSY46_75 LATITUDE          30 r   1N                   59N                 full
+ normal    Z
+ TIME1     TIME                12mr   16-JAN 06:00         16-DEC 01:20        full
+ normal    E
+ normal    F
+>>> coads_uw.mywnd = (coads_uw.uwnd**2 + coads_uw.vwnd**2)**0.5
+>>> dir(coads_uw)
+['MYWND', 'SPEH', 'UWND', 'VWND', '__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'mywnd', 'speh', 'uwnd', 'vwnd']
+>>> print repr(coads_uw.mywnd)
+FerVar(varname='mywnd', dsetname='coads_uw.nc', title = '', defn='mywnd[d=coads_uw.nc]')
+>>> coads_uw.mywnd.showgrid()
+    GRID GFQ1
+ name       axis              # pts   start                end                 subset
+ COADSX141_170 LONGITUDE       30mr   59W                  1W                  full
+ COADSY46_75 LATITUDE          30 r   1N                   59N                 full
+ normal    Z
+ TIME1     TIME                12mr   16-JAN 06:00         16-DEC 01:20        full
+ normal    E
+ normal    F
+>>> print repr(coads_uw.mywnd.data)
+array([[[[[[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          ..., 
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]]]],
+
+
+
+        [[[[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          ..., 
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]]]],
+
+
+
+        [[[[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          ..., 
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]]]],
+
+
+
+        ..., 
+        [[[[  4.13026647e+00]],
+
+          [[  4.61800327e+00]],
+
+          [[  2.00531536e+00]],
+
+          ..., 
+          [[  3.28127117e+00]],
+
+          [[  3.54345972e+00]],
+
+          [[  4.85826365e+00]]]],
+
+
+
+        [[[[  5.94489154e+00]],
+
+          [[  6.91998591e+00]],
+
+          [[  1.70717891e+00]],
+
+          ..., 
+          [[  2.90376309e+00]],
+
+          [[  2.59074142e+00]],
+
+          [[  4.54684929e+00]]]],
+
+
+
+        [[[[  3.93235763e+00]],
+
+          [[  8.69959589e+00]],
+
+          [[  2.83880093e+00]],
+
+          ..., 
+          [[  3.49670625e+00]],
+
+          [[  2.41985592e+00]],
+
+          [[  4.63529717e+00]]]]],
+
+
+
+
+       [[[[[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          ..., 
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]]]],
+
+
+
+        [[[[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          ..., 
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]]]],
+
+
+
+        [[[[  4.87043201e+00]],
+
+          [[  4.21788103e+00]],
+
+          [[  6.85873284e+00]],
+
+          ..., 
+          [[  3.55844052e+00]],
+
+          [[  5.52641346e+00]],
+
+          [[  6.47475875e+00]]]],
+
+
+
+        ..., 
+        [[[[  2.54155244e+00]],
+
+          [[  1.70894914e+00]],
+
+          [[  5.18410115e-01]],
+
+          ..., 
+          [[  3.76883589e+00]],
+
+          [[  4.10102042e+00]],
+
+          [[  3.52972679e+00]]]],
+
+
+
+        [[[[  2.74125202e+00]],
+
+          [[  4.56212661e+00]],
+
+          [[  4.69396104e+00]],
+
+          ..., 
+          [[  2.95223556e+00]],
+
+          [[  1.88845314e+00]],
+
+          [[  2.84295116e+00]]]],
+
+
+
+        [[[[  3.96405406e+00]],
+
+          [[  6.32055777e+00]],
+
+          [[  3.04461882e+00]],
+
+          ..., 
+          [[  2.65243499e+00]],
+
+          [[  3.78547047e+00]],
+
+          [[  1.87433646e+00]]]]],
+
+
+
+
+       [[[[[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          ..., 
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]]]],
+
+
+
+        [[[[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          ..., 
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]],
+
+          [[ -1.00000000e+34]]]],
+
+
+
+        [[[[  4.20475898e+00]],
+
+          [[  3.21188590e+00]],
+
+          [[  5.92029119e+00]],
+
+          ..., 
+          [[  2.94170001e+00]],
+
+          [[  1.40319122e+00]],
+
+          [[  5.00759383e+00]]]],
+
+
+
+        ..., 
+        [[[[  3.79712737e+00]],
+
+          [[  2.55904499e+00]],
+
+          [[  2.09570016e+00]],
+
+          ..., 
+          [[  3.25677019e+00]],
+
+          [[  4.27273462e+00]],
+
+          [[  2.77179056e+00]]]],
+
+
+
+        [[[[  1.83517128e+00]],
+
+          [[  1.74350005e+00]],
+
+          [[  2.40281788e+00]],
+
+          ..., 
+          [[  3.67538335e+00]],
+
+          [[  4.44972861e+00]],
+
+          [[  2.92714139e+00]]]],
+
+
+
+        [[[[  3.15153113e+00]],
+
+          [[  9.73379647e-01]],
+
+          [[  1.69545403e+00]],
+
+          ..., 
+          [[  3.45693596e+00]],
+
+          [[  2.47156384e+00]],
+
+          [[  9.26224279e-01]]]]],
+
+
+
+
+       ..., 
+       [[[[[  3.75788823e+00]],
+
+          [[  3.36079903e+00]],
+
+          [[  3.19331459e+00]],
+
+          ..., 
+          [[  5.06446458e+00]],
+
+          [[  4.70920617e+00]],
+
+          [[  4.36559388e+00]]]],
+
+
+
+        [[[[  2.53196827e+00]],
+
+          [[  2.85088753e+00]],
+
+          [[  2.74242205e+00]],
+
+          ..., 
+          [[  4.40776234e+00]],
+
+          [[  3.67403697e+00]],
+
+          [[  2.78947846e+00]]]],
+
+
+
+        [[[[  1.87252534e+00]],
+
+          [[  2.19841757e+00]],
+
+          [[  2.50838808e+00]],
+
+          ..., 
+          [[  3.17518624e+00]],
+
+          [[  3.09071592e+00]],
+
+          [[  2.09130673e+00]]]],
+
+
+
+        ..., 
+        [[[[  2.80339674e+00]],
+
+          [[  2.08965940e+00]],
+
+          [[  1.36597714e+00]],
+
+          ..., 
+          [[  2.85257713e+00]],
+
+          [[  2.87742188e+00]],
+
+          [[  3.11378635e+00]]]],
+
+
+
+        [[[[  2.90532542e+00]],
+
+          [[  2.65742782e+00]],
+
+          [[  1.84599567e+00]],
+
+          ..., 
+          [[  3.13225778e+00]],
+
+          [[  2.35467883e+00]],
+
+          [[  2.52133872e+00]]]],
+
+
+
+        [[[[  3.39856233e+00]],
+
+          [[  2.52378011e+00]],
+
+          [[  2.32848947e+00]],
+
+          ..., 
+          [[  3.31451545e+00]],
+
+          [[  2.54581914e+00]],
+
+          [[  3.48173008e+00]]]]],
+
+
+
+
+       [[[[[  3.45173777e+00]],
+
+          [[  3.37527379e+00]],
+
+          [[  3.16941716e+00]],
+
+          ..., 
+          [[  4.97374429e+00]],
+
+          [[  4.39343034e+00]],
+
+          [[  4.31828042e+00]]]],
+
+
+
+        [[[[  2.42508255e+00]],
+
+          [[  3.04407496e+00]],
+
+          [[  2.80380352e+00]],
+
+          ..., 
+          [[  4.53645835e+00]],
+
+          [[  3.61382650e+00]],
+
+          [[  2.98252047e+00]]]],
+
+
+
+        [[[[  1.89510841e+00]],
+
+          [[  2.45184173e+00]],
+
+          [[  2.67046850e+00]],
+
+          ..., 
+          [[  3.28195671e+00]],
+
+          [[  2.75888881e+00]],
+
+          [[  2.14414391e+00]]]],
+
+
+
+        ..., 
+        [[[[  3.73354644e+00]],
+
+          [[  1.93112315e+00]],
+
+          [[  2.87452077e+00]],
+
+          ..., 
+          [[  2.13792947e+00]],
+
+          [[  1.85691679e+00]],
+
+          [[  2.42684616e+00]]]],
+
+
+
+        [[[[  3.44824073e+00]],
+
+          [[  2.14114462e+00]],
+
+          [[  2.60228166e+00]],
+
+          ..., 
+          [[  3.39527336e+00]],
+
+          [[  3.56939489e+00]],
+
+          [[  4.22187495e+00]]]],
+
+
+
+        [[[[  3.05977172e+00]],
+
+          [[  2.36333729e+00]],
+
+          [[  2.45851741e+00]],
+
+          ..., 
+          [[  3.05152926e+00]],
+
+          [[  2.60776123e+00]],
+
+          [[  3.41733943e+00]]]]],
+
+
+
+
+       [[[[[  3.64383697e+00]],
+
+          [[  3.33868108e+00]],
+
+          [[  3.14039924e+00]],
+
+          ..., 
+          [[  4.34920775e+00]],
+
+          [[  4.14105021e+00]],
+
+          [[  3.87513285e+00]]]],
+
+
+
+        [[[[  2.55849114e+00]],
+
+          [[  3.14467404e+00]],
+
+          [[  2.94028832e+00]],
+
+          ..., 
+          [[  4.08850910e+00]],
+
+          [[  3.28017770e+00]],
+
+          [[  2.73468516e+00]]]],
+
+
+
+        [[[[  1.90434463e+00]],
+
+          [[  2.58477244e+00]],
+
+          [[  2.79715740e+00]],
+
+          ..., 
+          [[  3.35978500e+00]],
+
+          [[  2.69049588e+00]],
+
+          [[  1.90782962e+00]]]],
+
+
+
+        ..., 
+        [[[[  3.15604609e+00]],
+
+          [[  1.29819913e+00]],
+
+          [[  1.71675056e+00]],
+
+          ..., 
+          [[  2.38711427e+00]],
+
+          [[  2.92097842e+00]],
+
+          [[  3.04655510e+00]]]],
+
+
+
+        [[[[  2.81207065e+00]],
+
+          [[  1.91643896e+00]],
+
+          [[  2.04769862e+00]],
+
+          ..., 
+          [[  2.98045587e+00]],
+
+          [[  2.73935389e+00]],
+
+          [[  3.20570629e+00]]]],
+
+
+
+        [[[[  2.80741556e+00]],
+
+          [[  2.30834585e+00]],
+
+          [[  2.53451086e+00]],
+
+          ..., 
+          [[  2.97803332e+00]],
+
+          [[  2.66982456e+00]],
+
+          [[  3.04928904e+00]]]]]])
+>>> print repr(coads_uw.mywnd.grid)
+FerGrid(axes=[
+    FerAxis(coords=array([ 301.,  303.,  305.,  307.,  309.,  311.,  313.,  315.,  317.,
+        319.,  321.,  323.,  325.,  327.,  329.,  331.,  333.,  335.,
+        337.,  339.,  341.,  343.,  345.,  347.,  349.,  351.,  353.,
+        355.,  357.,  359.]), axtype=1, unit='degrees_east', name='COADSX141_170'),
+    FerAxis(coords=array([  1.,   3.,   5.,   7.,   9.,  11.,  13.,  15.,  17.,  19.,  21.,
+        23.,  25.,  27.,  29.,  31.,  33.,  35.,  37.,  39.,  41.,  43.,
+        45.,  47.,  49.,  51.,  53.,  55.,  57.,  59.]), axtype=2, unit='degrees_north', name='COADSY46_75'),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    FerAxis(coords=array([[16,  1,  0,  6,  0,  0],
+       [15,  2,  0, 16, 29,  6],
+       [17,  3,  0,  2, 58, 12],
+       [16,  4,  0, 13, 27, 18],
+       [16,  5,  0, 23, 56, 24],
+       [16,  6,  0, 10, 25, 30],
+       [16,  7,  0, 20, 54, 36],
+       [16,  8,  0,  7, 23, 42],
+       [15,  9,  0, 17, 52, 47],
+       [16, 10,  0,  4, 21, 53],
+       [15, 11,  0, 14, 50, 59],
+       [16, 12,  0,  1, 20,  5]], dtype=int32), axtype=4, unit='CALTYPE_GREGORIAN', name='TIME1'),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    name='mywnd[d=coads_uw.nc]'])
+>>> coads_uw.mywnd.load()
+>>> coads_uw.mywnd.data.shape
+(30, 30, 1, 12, 1, 1)
+>>> print repr(coads_uw.mywnd.data[2:5,2:5,0,0,0,0])
+array([[ 4.20475898,  6.56102578,  7.36204558],
+       [ 6.55742125,  7.24086001,  7.65775136],
+       [ 7.05031865,  7.76138943,  8.33904129]])
+>>> print repr(coads_uw.mywnd.grid)
+FerGrid(axes=[
+    FerAxis(coords=array([ 301.,  303.,  305.,  307.,  309.,  311.,  313.,  315.,  317.,
+        319.,  321.,  323.,  325.,  327.,  329.,  331.,  333.,  335.,
+        337.,  339.,  341.,  343.,  345.,  347.,  349.,  351.,  353.,
+        355.,  357.,  359.]), axtype=1, unit='degrees_east', name='COADSX141_170'),
+    FerAxis(coords=array([  1.,   3.,   5.,   7.,   9.,  11.,  13.,  15.,  17.,  19.,  21.,
+        23.,  25.,  27.,  29.,  31.,  33.,  35.,  37.,  39.,  41.,  43.,
+        45.,  47.,  49.,  51.,  53.,  55.,  57.,  59.]), axtype=2, unit='degrees_north', name='COADSY46_75'),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    FerAxis(coords=array([[16,  1,  0,  6,  0,  0],
+       [15,  2,  0, 16, 29,  6],
+       [17,  3,  0,  2, 58, 12],
+       [16,  4,  0, 13, 27, 18],
+       [16,  5,  0, 23, 56, 24],
+       [16,  6,  0, 10, 25, 30],
+       [16,  7,  0, 20, 54, 36],
+       [16,  8,  0,  7, 23, 42],
+       [15,  9,  0, 17, 52, 47],
+       [16, 10,  0,  4, 21, 53],
+       [15, 11,  0, 14, 50, 59],
+       [16, 12,  0,  1, 20,  5]], dtype=int32), axtype=4, unit='CALTYPE_GREGORIAN', name='TIME1'),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    name='mywnd[d=coads_uw.nc]'])
+>>> coads_uw.mywnd.unload()
+>>> coads.sstregrid = coads.sst.regrid(coads_uw.mywnd, pyferret.REGRID_AVERAGE)
+>>> pyferret.showdata()
+     currently SET data sets:
+    1> ./coads_climatology.cdf
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ ------------------------------
+ SSTREGRID[D=coads_climatology] = SST[D=COADS_CLIMATOLOGY.CDF,G=MYWND[D=COADS_UW.NC]@AVE]
+ 
+    2> ./coads_uw.nc  (default)
+ name     title                             I         J         K         L         M         N
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+ ------------------------------
+ MYWND[D=coads_uw] = (((UWND[D=COADS_UW.NC]) ^ 2) + ((VWND[D=COADS_UW.NC]) ^ 2)) ^ 0.5
+ 
+>>> coads.sstregrid.showgrid()
+    GRID GFQ1
+ name       axis              # pts   start                end                 subset
+ COADSX141_170 LONGITUDE       30mr   59W                  1W                  full
+ COADSY46_75 LATITUDE          30 r   1N                   59N                 full
+ normal    Z
+ TIME1     TIME                12mr   16-JAN 06:00         16-DEC 01:20        full
+ normal    E
+ normal    F
+>>> coads.sstregrid.load()
+>>> coads.sstregrid.data.shape
+(30, 30, 1, 12, 1, 1)
+>>> print repr(coads.sstregrid.data[2:5,2:5,0,0,0,0])
+array([[ 28.        ,  26.83953476,  26.91409111],
+       [ 27.23210526,  26.99204445,  26.88500023],
+       [ 27.20340919,  27.09340858,  26.8843174 ]])
+pyferret.run('LIST /X=55W:51W /Y=5N:9N /L=1 SST[d=coads_climatology]')
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 by 3 points (LONGITUDE-LATITUDE)
+             TIME     : 16-JAN 06:00
+              55W    53W    51W   
+             143    144    145
+ 9N   / 50:  26.91  26.89  26.88
+ 7N   / 49:  26.84  26.99  27.09
+ 5N   / 48:  28.00  27.23  27.20
+(3, '')
+>>> coads_uw.show()
+     currently SET data sets:
+    2> ./coads_uw.nc  (default)
+ name     title                             I         J         K         L         M         N
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+ ------------------------------
+ MYWND[D=coads_uw] = (((UWND[D=COADS_UW.NC]) ^ 2) + ((VWND[D=COADS_UW.NC]) ^ 2)) ^ 0.5
+ 
+>>> del coads_uw.mywnd
+>>> coads_uw.show()
+     currently SET data sets:
+    2> ./coads_uw.nc  (default)
+ name     title                             I         J         K         L         M         N
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+ 
+>>> pyferret.anondset.sstcopy = coads.sst
+>>> pyferret.anondset.show()
+ Created by DEFINE VARIABLE:
+     SSTREGRID[D=coads_climatology] = SST[D=COADS_CLIMATOLOGY.CDF,G=MYWND[D=COADS_UW.NC]@AVE]
+ >>> Definitions that replace any file variable of same name:
+     SSTCOPY = SST[D=COADS_CLIMATOLOGY.CDF]
+>>> print repr(pyferret.anondset.sstcopy)
+FerVar(varname='sstcopy', dsetname='', title = '', defn='sstcopy')
+>>> print repr(pyferret.anondset.sstcopy._isfilevar)
+False
+>>> print repr(pyferret.anondset.sstcopy._requires)
+set(['SST', 'SSTCOPY'])
+>>> print repr(coads.sst)
+FerVar(varname='SST', dsetname='coads_climatology.cdf', title = '', defn='SST[d=coads_climatology.cdf]')
+>>> print repr(coads.sst._isfilevar)
+True
+>>> print repr(coads.sst._requires)
+set(['SST'])
+>>> pyferret.anondset.close()
+>>> pyferret.anondset.show()
+ Created by DEFINE VARIABLE:
+     SSTREGRID[D=coads_climatology] = SST[D=COADS_CLIMATOLOGY.CDF,G=MYWND[D=COADS_UW.NC]@AVE]
+>>> coads.sst2 = coads.sst['15-FEB']
+>>> coads.sst2.showgrid()
+    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        1 pt
+ normal    E
+ normal    F
+>>> coads.sst2.load()
+>>> coads.sst2.data.shape
+(180, 90, 1, 1, 1, 1)
+>>> print repr(coads.sst2.data[2:5,23:26,0,0,0,0])
+array([[ 12.18707085,  18.32330322,  19.59271812],
+       [ 13.91592407,  17.45085526,  20.04241753],
+       [ 13.76200008,  17.38199997,  20.65003967]])
+pyferret.run('LIST /X=25E:29E /Y=43S:39S /L=2 SST[d=coads_climatology]')
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 3 by 3 points (LONGITUDE-LATITUDE)
+             TIME     : 15-FEB 16:29
+               25E    27E    29E   
+                3      4      5
+ 39S   / 26:  19.59  20.04  20.65
+ 41S   / 25:  18.32  17.45  17.38
+ 43S   / 24:  12.19  13.92  13.76
+(3, '')
+>>> coads.sst2 = coads.sst['43S':'39S','25E':'29E',:,1]
+>>> print repr(coads.sst2)
+FerVar(varname='sst2', dsetname='coads_climatology.cdf', title = '', defn='sst2[d=coads_climatology.cdf]')
+>>> coads.show(brief=False)
+     currently SET data sets:
+    1> ./coads_climatology.cdf
+ 
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+             Deg C on grid GSQ1 with -1.E+34 for missing data
+             X=20E:20E(380)  Y=90S:90N  
+ 
+  time range: 16-JAN 06:00 to 17-MAR 02:58
+ ------------------------------
+ SST2[D=coads_climatology] = SST[D=COADS_CLIMATOLOGY.CDF,X=25E:29E,Y=43S:39S,L=2]
+ SSTREGRID[D=coads_climatology] = SST[D=COADS_CLIMATOLOGY.CDF,G=MYWND[D=COADS_UW.NC]@AVE]
+ 
+>>> coads.sst2.load()
+>>> coads.sst2.data.shape
+(3, 3, 1, 1, 1, 1)
+>>> print repr(coads.sst2.data[:,:,0,0,0,0])
+array([[ 12.18707085,  18.32330322,  19.59271812],
+       [ 13.91592407,  17.45085526,  20.04241753],
+       [ 13.76200008,  17.38199997,  20.65003967]])
+>>> pyferret.showdata(brief=False)
+     currently SET data sets:
+    1> ./coads_climatology.cdf
+ 
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+             Deg C on grid GSQ1 with -1.E+34 for missing data
+             X=20E:20E(380)  Y=90S:90N  
+ 
+  time range: 16-JAN 06:00 to 17-MAR 02:58
+ ------------------------------
+ SST2[D=coads_climatology] = SST[D=COADS_CLIMATOLOGY.CDF,X=25E:29E,Y=43S:39S,L=2]
+ SSTREGRID[D=coads_climatology] = SST[D=COADS_CLIMATOLOGY.CDF,G=MYWND[D=COADS_UW.NC]@AVE]
+ 
+    2> ./coads_uw.nc  (default)
+ 
+ name     title                             I         J         K         L         M         N
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
+             M/S on grid GFQ1 with -1.E+34 for missing data
+             X=60W:0E(360)  Y=0:60N  
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
+             M/S on grid GFQ1 with -1.E+34 for missing data
+             X=60W:0E(360)  Y=0:60N  
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+             G/KG on grid GFQ1 with -1.E+34 for missing data
+             X=60W:0E(360)  Y=0:60N  
+ 
+  time range: 16-JAN 06:00 to 16-DEC 01:20
+ 
+>>> coads_uw.close()
+>>> del coads_uw
+>>> pyferret.showdata()
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ ------------------------------
+ SST2[D=coads_climatology] = SST[D=COADS_CLIMATOLOGY.CDF,X=25E:29E,Y=43S:39S,L=2]
+ SSTREGRID[D=coads_climatology] = SST[D=COADS_CLIMATOLOGY.CDF,G=MYWND[D=COADS_UW.NC]@AVE]
+ 
+>>> coads.close()
+>>> del coads
+>>> pyferret.showdata()
+     currently SET data sets:
+*** Running python script: testferaggdset.py
+[?1034h
+>>> dsetnames = ['./ens1.nc', './ens2.nc', './ens3.nc', './ens4.nc']
+>>> fourfiles = pyferret.FerAggDSet(name='fourfiles', dsets=dsetnames, along='E')
+>>> fourfiles.show()
+     currently SET data sets:
+    5> fourfiles  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
+ 
+>>> print str(fourfiles)
+FerAggDSet(name='fourfiles', dsets=['ens1.nc', 'ens2.nc', 'ens3.nc', 'ens4.nc']) with variables ['SST']
+>>> dir(fourfiles)
+['SST', '__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'sst']
+>>> fourfiles.getdsetnames()
+['ens1.nc', 'ens2.nc', 'ens3.nc', 'ens4.nc']
+>>> fourfiles.getdsets()
+[FerDSet('./ens1.nc') using dataset name 'ens1.nc' and variables ['AIRT', 'SST'], FerDSet('./ens2.nc') using dataset name 'ens2.nc' and variables ['SST'], FerDSet('./ens3.nc') using dataset name 'ens3.nc' and variables ['SST'], FerDSet('./ens4.nc') using dataset name 'ens4.nc' and variables ['SST']]
+>>> fourfiles.SST.showgrid()
+    GRID (G006)  Ensemble Aggregetion Grid
+ name       axis              # pts   start                end                 subset
+ COADSX116_125 LONGITUDE       10mr   109W                 91W                 full
+ COADSY52_60 LATITUDE           9 r   13N                  29N                 full
+ normal    Z
+ TIME      TIME                12mr   16-JAN 06:00         16-DEC 01:20        full
+ ENSEMBLE  E (realization)      4 r   1                    4                   full
+ normal    F
+>>> fourfiles.close()
+>>> print str(fourfiles)
+FerAggDSet(name='', dsets=[]) with variables []
+>>> dir(fourfiles)
+['__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__']
+>>> fourfiles.getdsetnames()
+[]
+>>> fourfiles.getdsets()
+[]
+>>> del fourfiles
+*** Running python script: testferaxis.py
+[?1034h
+>>> normax = pyferret.FerAxis()
+>>> print repr(normax)
+FerAxis(coords=None, axtype=7, unit='', name='')
+>>> dir(normax)
+['__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'axtype', 'coords', 'name', 'unit']
+>>> coads = pyferret.FerDSet('coads_climatology')
+>>> coads.sst.load()
+>>> sstaxes = coads.sst.grid.axes
+>>> print repr(sstaxes)
+[FerAxis(coords=array([  21.,   23.,   25.,   27.,   29.,   31.,   33.,   35.,   37.,
+         39.,   41.,   43.,   45.,   47.,   49.,   51.,   53.,   55.,
+         57.,   59.,   61.,   63.,   65.,   67.,   69.,   71.,   73.,
+         75.,   77.,   79.,   81.,   83.,   85.,   87.,   89.,   91.,
+         93.,   95.,   97.,   99.,  101.,  103.,  105.,  107.,  109.,
+        111.,  113.,  115.,  117.,  119.,  121.,  123.,  125.,  127.,
+        129.,  131.,  133.,  135.,  137.,  139.,  141.,  143.,  145.,
+        147.,  149.,  151.,  153.,  155.,  157.,  159.,  161.,  163.,
+        165.,  167.,  169.,  171.,  173.,  175.,  177.,  179.,  181.,
+        183.,  185.,  187.,  189.,  191.,  193.,  195.,  197.,  199.,
+        201.,  203.,  205.,  207.,  209.,  211.,  213.,  215.,  217.,
+        219.,  221.,  223.,  225.,  227.,  229.,  231.,  233.,  235.,
+        237.,  239.,  241.,  243.,  245.,  247.,  249.,  251.,  253.,
+        255.,  257.,  259.,  261.,  263.,  265.,  267.,  269.,  271.,
+        273.,  275.,  277.,  279.,  281.,  283.,  285.,  287.,  289.,
+        291.,  293.,  295.,  297.,  299.,  301.,  303.,  305.,  307.,
+        309.,  311.,  313.,  315.,  317.,  319.,  321.,  323.,  325.,
+        327.,  329.,  331.,  333.,  335.,  337.,  339.,  341.,  343.,
+        345.,  347.,  349.,  351.,  353.,  355.,  357.,  359.,  361.,
+        363.,  365.,  367.,  369.,  371.,  373.,  375.,  377.,  379.]), axtype=1, unit='degrees_east', name='COADSX'), FerAxis(coords=array([-89., -87., -85., -83., -81., -79., -77., -75., -73., -71., -69.,
+       -67., -65., -63., -61., -59., -57., -55., -53., -51., -49., -47.,
+       -45., -43., -41., -39., -37., -35., -33., -31., -29., -27., -25.,
+       -23., -21., -19., -17., -15., -13., -11.,  -9.,  -7.,  -5.,  -3.,
+        -1.,   1.,   3.,   5.,   7.,   9.,  11.,  13.,  15.,  17.,  19.,
+        21.,  23.,  25.,  27.,  29.,  31.,  33.,  35.,  37.,  39.,  41.,
+        43.,  45.,  47.,  49.,  51.,  53.,  55.,  57.,  59.,  61.,  63.,
+        65.,  67.,  69.,  71.,  73.,  75.,  77.,  79.,  81.,  83.,  85.,
+        87.,  89.]), axtype=2, unit='degrees_north', name='COADSY'), FerAxis(coords=None, axtype=7, unit='', name=''), FerAxis(coords=array([[16,  1,  0,  6,  0,  0],
+       [15,  2,  0, 16, 29,  6],
+       [17,  3,  0,  2, 58, 12]], dtype=int32), axtype=4, unit='CALTYPE_GREGORIAN', name='TIME'), FerAxis(coords=None, axtype=7, unit='', name=''), FerAxis(coords=None, axtype=7, unit='', name='')]
+>>> normax == sstaxes[0]
+False
+>>> normax != sstaxes[1]
+True
+>>> normax == sstaxes[2]
+True
+>>> normax != sstaxes[3]
+True
+>>> print repr(sstaxes[0].axtype)
+1
+>>> print repr(sstaxes[0].coords)
+array([  21.,   23.,   25.,   27.,   29.,   31.,   33.,   35.,   37.,
+         39.,   41.,   43.,   45.,   47.,   49.,   51.,   53.,   55.,
+         57.,   59.,   61.,   63.,   65.,   67.,   69.,   71.,   73.,
+         75.,   77.,   79.,   81.,   83.,   85.,   87.,   89.,   91.,
+         93.,   95.,   97.,   99.,  101.,  103.,  105.,  107.,  109.,
+        111.,  113.,  115.,  117.,  119.,  121.,  123.,  125.,  127.,
+        129.,  131.,  133.,  135.,  137.,  139.,  141.,  143.,  145.,
+        147.,  149.,  151.,  153.,  155.,  157.,  159.,  161.,  163.,
+        165.,  167.,  169.,  171.,  173.,  175.,  177.,  179.,  181.,
+        183.,  185.,  187.,  189.,  191.,  193.,  195.,  197.,  199.,
+        201.,  203.,  205.,  207.,  209.,  211.,  213.,  215.,  217.,
+        219.,  221.,  223.,  225.,  227.,  229.,  231.,  233.,  235.,
+        237.,  239.,  241.,  243.,  245.,  247.,  249.,  251.,  253.,
+        255.,  257.,  259.,  261.,  263.,  265.,  267.,  269.,  271.,
+        273.,  275.,  277.,  279.,  281.,  283.,  285.,  287.,  289.,
+        291.,  293.,  295.,  297.,  299.,  301.,  303.,  305.,  307.,
+        309.,  311.,  313.,  315.,  317.,  319.,  321.,  323.,  325.,
+        327.,  329.,  331.,  333.,  335.,  337.,  339.,  341.,  343.,
+        345.,  347.,  349.,  351.,  353.,  355.,  357.,  359.,  361.,
+        363.,  365.,  367.,  369.,  371.,  373.,  375.,  377.,  379.])
+>>> print repr(sstaxes[0].unit)
+'degrees_east'
+>>> print repr(sstaxes[0].name)
+'COADSX'
+>>> print repr(sstaxes[1].axtype)
+2
+>>> print repr(sstaxes[1].coords)
+array([-89., -87., -85., -83., -81., -79., -77., -75., -73., -71., -69.,
+       -67., -65., -63., -61., -59., -57., -55., -53., -51., -49., -47.,
+       -45., -43., -41., -39., -37., -35., -33., -31., -29., -27., -25.,
+       -23., -21., -19., -17., -15., -13., -11.,  -9.,  -7.,  -5.,  -3.,
+        -1.,   1.,   3.,   5.,   7.,   9.,  11.,  13.,  15.,  17.,  19.,
+        21.,  23.,  25.,  27.,  29.,  31.,  33.,  35.,  37.,  39.,  41.,
+        43.,  45.,  47.,  49.,  51.,  53.,  55.,  57.,  59.,  61.,  63.,
+        65.,  67.,  69.,  71.,  73.,  75.,  77.,  79.,  81.,  83.,  85.,
+        87.,  89.])
+>>> print repr(sstaxes[1].unit)
+'degrees_north'
+>>> print repr(sstaxes[1].name)
+'COADSY'
+>>> print repr(sstaxes[2].axtype)
+7
+>>> print repr(sstaxes[2].coords)
+None
+>>> print repr(sstaxes[2].unit)
+''
+>>> print repr(sstaxes[2].name)
+''
+>>> print repr(sstaxes[3].axtype)
+4
+>>> print repr(sstaxes[3].coords)
+array([[16,  1,  0,  6,  0,  0],
+       [15,  2,  0, 16, 29,  6],
+       [17,  3,  0,  2, 58, 12]], dtype=int32)
+>>> print repr(sstaxes[3].unit)
+'CALTYPE_GREGORIAN'
+>>> print repr(sstaxes[3].name)
+'TIME'
+>>> dupaxis = sstaxes[0].copy()
+>>> dupaxis is sstaxes[0]
+False
+>>> dupaxis == sstaxes[0]
+True
+>>> dupaxis.coords is sstaxes[0].coords
+False
+>>> numpy.allclose(dupaxis.coords, sstaxes[0].coords)
+True
+>>> dupaxis = sstaxes[3].copy()
+>>> dupaxis is sstaxes[3]
+False
+>>> dupaxis == sstaxes[3]
+True
+>>> dupaxis.coords is sstaxes[3].coords
+False
+>>> numpy.allclose(dupaxis.coords, sstaxes[3].coords)
+True
+>>> print repr(pyferret.FerAxis._parsegeoval(None))
+(6, None)
+>>> print repr(pyferret.FerAxis._parsegeoval(0))
+(6, 0)
+>>> print repr(pyferret.FerAxis._parsegeoval(0.0))
+(6, 0.0)
+>>> print repr(pyferret.FerAxis._parsegeoval('0'))
+(6, 0.0)
+>>> print repr(pyferret.FerAxis._parsegeoval('5E'))
+(1, '5E')
+>>> print repr(pyferret.FerAxis._parsegeoval('6W'))
+(1, '6W')
+>>> print repr(pyferret.FerAxis._parsegeoval('7N'))
+(2, '7N')
+>>> print repr(pyferret.FerAxis._parsegeoval('8S'))
+(2, '8S')
+>>> print repr(pyferret.FerAxis._parsegeoval('9m'))
+(3, '9M')
+>>> print repr(pyferret.FerAxis._parsegeoval('03-APR-2005 06:07:08'))
+(4, [3, 4, 2005, 6, 7, 8])
+>>> print repr(pyferret.FerAxis._parsegeoval('03-APR-2005 06:07'))
+(4, [3, 4, 2005, 6, 7, 0])
+>>> print repr(pyferret.FerAxis._parsegeoval('03-APR-2005'))
+(4, [3, 4, 2005, 0, 0, 0])
+>>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05T06:07:08'))
+(4, [5, 4, 2003, 6, 7, 8])
+>>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05T06:07'))
+(4, [5, 4, 2003, 6, 7, 0])
+>>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05 06:07:08'))
+(4, [5, 4, 2003, 6, 7, 8])
+>>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05 06:07'))
+(4, [5, 4, 2003, 6, 7, 0])
+>>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05'))
+(4, [5, 4, 2003, 0, 0, 0])
+>>> print repr(pyferret.FerAxis._parsegeoval('4y', istimestep=True))
+(4, [0, 0, 4.0, 0, 0, 0])
+>>> print repr(pyferret.FerAxis._parsegeoval('6d', istimestep=True))
+(4, [6.0, 0, 0, 0, 0, 0])
+>>> print repr(pyferret.FerAxis._parsegeoval('7h', istimestep=True))
+(4, [0, 0, 0, 7.0, 0, 0])
+>>> print repr(pyferret.FerAxis._parsegeoval('8m', istimestep=True))
+(4, [0, 0, 0, 0, 8.0, 0])
+>>> print repr(pyferret.FerAxis._parsegeoval('9s', istimestep=True))
+(4, [0, 0, 0, 0, 0, 9.0])
+>>> print repr(pyferret.FerAxis._parsegeoval('1', istimestep=True))
+(6, 1.0)
+>>> print repr(pyferret.FerAxis._parsegeoslice( slice(5,23,2) ))
+(6, 5, 23, 2)
+>>> print repr(pyferret.FerAxis._parsegeoslice( slice(-5.0,15.0,4.0) ))
+(6, -5.0, 15.0, 4.0)
+>>> print repr(pyferret.FerAxis._parsegeoslice( slice('-6','11','5') ))
+(6, -6.0, 11.0, 5.0)
+>>> print repr(pyferret.FerAxis._parsegeoslice( slice('25W','35E',5) ))
+(1, '25W', '35E', 5)
+>>> print repr(pyferret.FerAxis._parsegeoslice( slice('15S','30N',3) ))
+(2, '15S', '30N', 3)
+>>> print repr(pyferret.FerAxis._parsegeoslice( slice('-900m','-100m','50m') ))
+(3, '-900M', '-100M', '50M')
+>>> print repr(pyferret.FerAxis._parsegeoslice( slice('03-APR-2005 11:30','23-JUL-2006 23:30','12h') ))
+(4, [3, 4, 2005, 11, 30, 0], [23, 7, 2006, 23, 30, 0], [0, 0, 0, 12.0, 0, 0])
+*** Running python script: testfergrid.py
+[?1034h
+>>> nogrid = pyferret.FerGrid()
+>>> print repr(nogrid)
+FerGrid(axes=[
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    name=''])
+>>> dir(nogrid)
+['__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'axes', 'name']
+>>> coads = pyferret.FerDSet('coads_climatology')
+>>> coads.sst.load()
+>>> coadsgrid = coads.sst.grid
+>>> print repr(coadsgrid)
+FerGrid(axes=[
+    FerAxis(coords=array([  21.,   23.,   25.,   27.,   29.,   31.,   33.,   35.,   37.,
+         39.,   41.,   43.,   45.,   47.,   49.,   51.,   53.,   55.,
+         57.,   59.,   61.,   63.,   65.,   67.,   69.,   71.,   73.,
+         75.,   77.,   79.,   81.,   83.,   85.,   87.,   89.,   91.,
+         93.,   95.,   97.,   99.,  101.,  103.,  105.,  107.,  109.,
+        111.,  113.,  115.,  117.,  119.,  121.,  123.,  125.,  127.,
+        129.,  131.,  133.,  135.,  137.,  139.,  141.,  143.,  145.,
+        147.,  149.,  151.,  153.,  155.,  157.,  159.,  161.,  163.,
+        165.,  167.,  169.,  171.,  173.,  175.,  177.,  179.,  181.,
+        183.,  185.,  187.,  189.,  191.,  193.,  195.,  197.,  199.,
+        201.,  203.,  205.,  207.,  209.,  211.,  213.,  215.,  217.,
+        219.,  221.,  223.,  225.,  227.,  229.,  231.,  233.,  235.,
+        237.,  239.,  241.,  243.,  245.,  247.,  249.,  251.,  253.,
+        255.,  257.,  259.,  261.,  263.,  265.,  267.,  269.,  271.,
+        273.,  275.,  277.,  279.,  281.,  283.,  285.,  287.,  289.,
+        291.,  293.,  295.,  297.,  299.,  301.,  303.,  305.,  307.,
+        309.,  311.,  313.,  315.,  317.,  319.,  321.,  323.,  325.,
+        327.,  329.,  331.,  333.,  335.,  337.,  339.,  341.,  343.,
+        345.,  347.,  349.,  351.,  353.,  355.,  357.,  359.,  361.,
+        363.,  365.,  367.,  369.,  371.,  373.,  375.,  377.,  379.]), axtype=1, unit='degrees_east', name='COADSX'),
+    FerAxis(coords=array([-89., -87., -85., -83., -81., -79., -77., -75., -73., -71., -69.,
+       -67., -65., -63., -61., -59., -57., -55., -53., -51., -49., -47.,
+       -45., -43., -41., -39., -37., -35., -33., -31., -29., -27., -25.,
+       -23., -21., -19., -17., -15., -13., -11.,  -9.,  -7.,  -5.,  -3.,
+        -1.,   1.,   3.,   5.,   7.,   9.,  11.,  13.,  15.,  17.,  19.,
+        21.,  23.,  25.,  27.,  29.,  31.,  33.,  35.,  37.,  39.,  41.,
+        43.,  45.,  47.,  49.,  51.,  53.,  55.,  57.,  59.,  61.,  63.,
+        65.,  67.,  69.,  71.,  73.,  75.,  77.,  79.,  81.,  83.,  85.,
+        87.,  89.]), axtype=2, unit='degrees_north', name='COADSY'),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    FerAxis(coords=array([[16,  1,  0,  6,  0,  0],
+       [15,  2,  0, 16, 29,  6],
+       [17,  3,  0,  2, 58, 12]], dtype=int32), axtype=4, unit='CALTYPE_GREGORIAN', name='TIME'),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    name='SST[d=coads_climatology]'])
+>>> nogrid == coadsgrid
+False
+>>> nogrid != coadsgrid
+True
+>>> dupgrid = coadsgrid.copy()
+>>> dupgrid is coadsgrid
+False
+>>> dupgrid == coadsgrid
+True
+>>> dupgrid.axes[0] is coadsgrid.axes[0]
+False
+>>> dupgrid.axes[0] == coadsgrid.axes[0]
+True
+>>> dupgrid.axes[1] is coadsgrid.axes[1]
+False
+>>> dupgrid.axes[1] == coadsgrid.axes[1]
+True
+>>> dupgrid.axes[2] is coadsgrid.axes[2]
+False
+>>> dupgrid.axes[2] == coadsgrid.axes[2]
+True
+>>> dupgrid.axes[3] is coadsgrid.axes[3]
+False
+>>> dupgrid.axes[3] == coadsgrid.axes[3]
+True
+>>> dupgrid.axes[4] is coadsgrid.axes[4]
+False
+>>> dupgrid.axes[4] == coadsgrid.axes[4]
+True
+>>> dupgrid.axes[5] is coadsgrid.axes[5]
+False
+>>> dupgrid.axes[5] == coadsgrid.axes[5]
+True
+>>> freqax = pyferret.FerAxis(axtype=pyferret.AXISTYPE_CUSTOM,coords=numpy.arange(1,13,0.5),unit='freqnum',name='frequencies')
+>>> print repr(freqax)
+FerAxis(coords=array([  1. ,   1.5,   2. ,   2.5,   3. ,   3.5,   4. ,   4.5,   5. ,
+         5.5,   6. ,   6.5,   7. ,   7.5,   8. ,   8.5,   9. ,   9.5,
+        10. ,  10.5,  11. ,  11.5,  12. ,  12.5]), axtype=5, unit='freqnum', name='frequencies')
+>>> freqgrid = coadsgrid.copy(ax=pyferret.T_AXIS,newax=None).copy(name='freqgrid',ax=pyferret.E_AXIS,newax=freqax)
+>>> print repr(freqgrid)
+FerGrid(axes=[
+    FerAxis(coords=array([  21.,   23.,   25.,   27.,   29.,   31.,   33.,   35.,   37.,
+         39.,   41.,   43.,   45.,   47.,   49.,   51.,   53.,   55.,
+         57.,   59.,   61.,   63.,   65.,   67.,   69.,   71.,   73.,
+         75.,   77.,   79.,   81.,   83.,   85.,   87.,   89.,   91.,
+         93.,   95.,   97.,   99.,  101.,  103.,  105.,  107.,  109.,
+        111.,  113.,  115.,  117.,  119.,  121.,  123.,  125.,  127.,
+        129.,  131.,  133.,  135.,  137.,  139.,  141.,  143.,  145.,
+        147.,  149.,  151.,  153.,  155.,  157.,  159.,  161.,  163.,
+        165.,  167.,  169.,  171.,  173.,  175.,  177.,  179.,  181.,
+        183.,  185.,  187.,  189.,  191.,  193.,  195.,  197.,  199.,
+        201.,  203.,  205.,  207.,  209.,  211.,  213.,  215.,  217.,
+        219.,  221.,  223.,  225.,  227.,  229.,  231.,  233.,  235.,
+        237.,  239.,  241.,  243.,  245.,  247.,  249.,  251.,  253.,
+        255.,  257.,  259.,  261.,  263.,  265.,  267.,  269.,  271.,
+        273.,  275.,  277.,  279.,  281.,  283.,  285.,  287.,  289.,
+        291.,  293.,  295.,  297.,  299.,  301.,  303.,  305.,  307.,
+        309.,  311.,  313.,  315.,  317.,  319.,  321.,  323.,  325.,
+        327.,  329.,  331.,  333.,  335.,  337.,  339.,  341.,  343.,
+        345.,  347.,  349.,  351.,  353.,  355.,  357.,  359.,  361.,
+        363.,  365.,  367.,  369.,  371.,  373.,  375.,  377.,  379.]), axtype=1, unit='degrees_east', name='COADSX'),
+    FerAxis(coords=array([-89., -87., -85., -83., -81., -79., -77., -75., -73., -71., -69.,
+       -67., -65., -63., -61., -59., -57., -55., -53., -51., -49., -47.,
+       -45., -43., -41., -39., -37., -35., -33., -31., -29., -27., -25.,
+       -23., -21., -19., -17., -15., -13., -11.,  -9.,  -7.,  -5.,  -3.,
+        -1.,   1.,   3.,   5.,   7.,   9.,  11.,  13.,  15.,  17.,  19.,
+        21.,  23.,  25.,  27.,  29.,  31.,  33.,  35.,  37.,  39.,  41.,
+        43.,  45.,  47.,  49.,  51.,  53.,  55.,  57.,  59.,  61.,  63.,
+        65.,  67.,  69.,  71.,  73.,  75.,  77.,  79.,  81.,  83.,  85.,
+        87.,  89.]), axtype=2, unit='degrees_north', name='COADSY'),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    FerAxis(coords=array([  1. ,   1.5,   2. ,   2.5,   3. ,   3.5,   4. ,   4.5,   5. ,
+         5.5,   6. ,   6.5,   7. ,   7.5,   8. ,   8.5,   9. ,   9.5,
+        10. ,  10.5,  11. ,  11.5,  12. ,  12.5]), axtype=5, unit='freqnum', name='frequencies'),
+    FerAxis(coords=None, axtype=7, unit='', name=''),
+    name='freqgrid'])
+>>> freqgrid.axes[0] == coadsgrid.axes[0]
+True
+>>> freqgrid.axes[1] == coadsgrid.axes[1]
+True
+>>> freqgrid.axes[2] == coadsgrid.axes[2]
+True
+>>> freqgrid.axes[3] == coadsgrid.axes[3]
+False
+>>> freqgrid.axes[4] == coadsgrid.axes[4]
+False
+>>> freqgrid.axes[5] == coadsgrid.axes[5]
+True
+*** Running python script: testferpyvar.py
+[?1034h
+>>> coads = pyferret.FerDSet('coads_climatology.cdf')
+>>> pyferret.showdata(brief=False)
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ 
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+             Deg C on grid GSQ1 with -1.E+34 for missing data
+             X=20E:20E(380)  Y=90S:90N  
+ 
+  time range: 16-JAN 06:00 to 17-MAR 02:58
+ 
+>>> coads.sst.load()
+>>> datacopy = coads.sst.data
+>>> datacopy[87:93,43:47,0,:,0,0] = -5.0
+>>> coads.sstcopy = pyferret.FerPyVar(grid=coads.sst.grid, data=datacopy, missval=coads.sst.missval, unit=coads.sst.unit, title='modified copy of SST')
+>>> pyferret.showdata(brief=False)
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ 
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+             Deg C on grid GSQ1 with -1.E+34 for missing data
+             X=20E:20E(380)  Y=90S:90N  
+ 
+  time range: 16-JAN 06:00 to 17-MAR 02:58
+ ------ Python Variables ------
+ SSTCOPY  modified copy of SST             1:180     1:90      ...       1:3       ...       ...
+             Deg C on grid GSQ1 with -1.E+34 for missing data
+             X=20E:20E(380)  Y=90S:90N  
+ 
+>>> pyferret.setwindow(1, axisasp=0.5, logo=False)
+>>> pyferret.setdefaulttext(font='Arial')
+>>> pyferret.shadeplot(coads.sstcopy['40S':'40N','100E':'100W','16-FEB'])
+>>> pyferret.saveplot('testferpyvar.pdf')
+>>> del coads.sstcopy
+>>> pyferret.showdata()
+     currently SET data sets:
+    1> ./coads_climatology.cdf  (default)
+ name     title                             I         J         K         L         M         N
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ 
+>>> coads.close()
+>>> del coads
+>>> pyferret.showdata()
+     currently SET data sets:
+*** Running python script: testfermethods.py
+[?1034h
+>>> coads_uw  = pyferret.FerDSet('coads_uw.nc')
+>>> coads_uw.mywnd = (coads_uw.uwnd**2 + coads_uw.vwnd**2)**0.5
+>>> pyferret.showdata(brief=False)
+     currently SET data sets:
+    1> ./coads_uw.nc  (default)
+ 
+ name     title                             I         J         K         L         M         N
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
+             M/S on grid GFQ1 with -1.E+34 for missing data
+             X=60W:0E(360)  Y=0:60N  
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
+             M/S on grid GFQ1 with -1.E+34 for missing data
+             X=60W:0E(360)  Y=0:60N  
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+             G/KG on grid GFQ1 with -1.E+34 for missing data
+             X=60W:0E(360)  Y=0:60N  
+ 
+  time range: 16-JAN 06:00 to 16-DEC 01:20
+ ------------------------------
+ MYWND[D=coads_uw] = (((UWND[D=COADS_UW.NC]) ^ 2) + ((VWND[D=COADS_UW.NC]) ^ 2)) ^ 0.5
+ 
+>>> pyferret.setwindow(1, axisasp=0.75, color=(100,90,90), thick=0.75, logo=False)
+>>> pyferret.settextstyle(font='arial', color='blue', bold=True, italic=True)
+>>> febreg = pyferret.FerRegion(T='15-FEB')
+>>> pyferret.contourplot(coads_uw.mywnd, region=febreg)
+>>> pyferret.saveplot('testfermethods_contour.pdf')
+>>> pyferret.fillplot(coads_uw.mywnd, line=True, region=febreg)
+>>> pyferret.saveplot('testfermethods_fill.pdf')
+>>> pyferret.shadeplot(coads_uw.mywnd, region=febreg)
+>>> pyferret.saveplot('testfermethods_shade.pdf')
+>>> febeqreg = pyferret.FerRegion(Y=0,T='15-FEB')
+>>> pyferret.pointplot(coads_uw.uwnd, vs=coads_uw.vwnd, color=coads_uw.mywnd, sym=18, symsize=0.1, line=True, region=febeqreg)
+>>> pyferret.saveplot('testfermethods_pointplot.pdf')
+>>> pyferret.lineplot(coads_uw.uwnd, vs=coads_uw.vwnd, color=coads_uw.mywnd, region=febeqreg)
+>>> pyferret.saveplot('testfermethods_lineplot.pdf')
+>>> del coads_uw
+>>> pyferret.showdata()
+     currently SET data sets:
+Ended at Fri Jun 17 15:19:14 PDT 2016
diff --git a/bench/test_results/pyferret_run_tests_ncdump b/bench/test_results/pyferret_run_tests_ncdump
index 74aa5bf..fa2f9aa 100644
--- a/bench/test_results/pyferret_run_tests_ncdump
+++ b/bench/test_results/pyferret_run_tests_ncdump
@@ -1,38 +1,38 @@
-*** Running test: bn_syntax.jnl
-*** Running test: bn_dollar.jnl
-*** Running test: bn_grave.jnl
-*** Running test: bn_letd.jnl
-*** Running test: bn_if.jnl
-*** Running test: bn_expressions.jnl
-*** Running test: bn_geometry.jnl
-*** Running test: bn_output.jnl
-*** Running test: bn_in_plane.jnl
-*** Running test: bn_compress.jnl
-*** Running test: bn_interpolate.jnl
-*** Running test: bn_regrid.jnl
-*** Running test: bn_ez.jnl
-*** Running test: bn_plot.jnl
-*** Running test: bn_curv.jnl
-*** Running test: bn_symbols.jnl
-*** Running test: bn_comma_delimited.jnl
-*** Running test: bn_dynamic_grids.jnl
-*** Running test: bn_cdf.jnl
-*** Running test: bn_regrid_transforms.jnl
-*** Running test: bn_axis_limits.jnl
-*** Running test: bn_movie.jnl
-*** Running test: bn_ez_order.jnl
-*** Running test: bn_user.jnl
-*** Running test: bn_stream.jnl
-*** Running test: bn_mc.jnl
-*** Running test: bn_negative_t.jnl
-*** Running test: bn_xact_regrid.jnl
-*** Running test: bn_gc_functions.jnl
-*** Running test: bn491_bug_fixes.jnl
-*** Running test: bn_odd_variable_name.jnl
-*** Running test: bn_test_stream.jnl
-*** Running test: bn_define_axes.jnl
-*** Running test: bn_polygon.jnl
-*** Running test: bn500_bug_fixes.jnl
+*** Running ferret script: bn_syntax.jnl
+*** Running ferret script: bn_dollar.jnl
+*** Running ferret script: bn_grave.jnl
+*** Running ferret script: bn_letd.jnl
+*** Running ferret script: bn_if.jnl
+*** Running ferret script: bn_expressions.jnl
+*** Running ferret script: bn_geometry.jnl
+*** Running ferret script: bn_output.jnl
+*** Running ferret script: bn_in_plane.jnl
+*** Running ferret script: bn_compress.jnl
+*** Running ferret script: bn_interpolate.jnl
+*** Running ferret script: bn_regrid.jnl
+*** Running ferret script: bn_ez.jnl
+*** Running ferret script: bn_plot.jnl
+*** Running ferret script: bn_curv.jnl
+*** Running ferret script: bn_symbols.jnl
+*** Running ferret script: bn_comma_delimited.jnl
+*** Running ferret script: bn_dynamic_grids.jnl
+*** Running ferret script: bn_cdf.jnl
+*** Running ferret script: bn_regrid_transforms.jnl
+*** Running ferret script: bn_axis_limits.jnl
+*** Running ferret script: bn_movie.jnl
+*** Running ferret script: bn_ez_order.jnl
+*** Running ferret script: bn_user.jnl
+*** Running ferret script: bn_stream.jnl
+*** Running ferret script: bn_mc.jnl
+*** Running ferret script: bn_negative_t.jnl
+*** Running ferret script: bn_xact_regrid.jnl
+*** Running ferret script: bn_gc_functions.jnl
+*** Running ferret script: bn491_bug_fixes.jnl
+*** Running ferret script: bn_odd_variable_name.jnl
+*** Running ferret script: bn_test_stream.jnl
+*** Running ferret script: bn_define_axes.jnl
+*** Running ferret script: bn_polygon.jnl
+*** Running ferret script: bn500_bug_fixes.jnl
 err491_dp_time_write.jnl --- 1 original file
 netcdf out {
 dimensions:
@@ -50,7 +50,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -75,7 +75,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -83,19 +83,19 @@ data:
 
  MY_VAR = 50757969, 50757974 ;
 }
-*** Running test: bn_sample.jnl
-*** Running test: bn_strides_revs_perms.jnl
-*** Running test: bn_non_COARDS_netCDF.jnl
-*** Running test: bn_cache_hits.jnl
-*** Running test: bn_regrid_to_user.jnl
-*** Running test: bn_calendar.jnl
-*** Running test: bn_dash_dot.jnl
-*** Running test: bn_flowlines.jnl
-*** Running test: bn_logaxes.jnl
-*** Running test: bn_internal_external_functions.jnl
-*** Running test: bn_modulo_strides.jnl
-*** Running test: bn_axis_viewports.jnl
-*** Running test: bn_strings.jnl
+*** Running ferret script: bn_sample.jnl
+*** Running ferret script: bn_strides_revs_perms.jnl
+*** Running ferret script: bn_non_COARDS_netCDF.jnl
+*** Running ferret script: bn_cache_hits.jnl
+*** Running ferret script: bn_regrid_to_user.jnl
+*** Running ferret script: bn_calendar.jnl
+*** Running ferret script: bn_dash_dot.jnl
+*** Running ferret script: bn_flowlines.jnl
+*** Running ferret script: bn_logaxes.jnl
+*** Running ferret script: bn_internal_external_functions.jnl
+*** Running ferret script: bn_modulo_strides.jnl
+*** Running ferret script: bn_axis_viewports.jnl
+*** Running ferret script: bn_strings.jnl
 bn_strings.jnl --- 1 original file
 netcdf test_string {
 dimensions:
@@ -112,7 +112,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -151,7 +151,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -186,7 +186,7 @@ variables:
 		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -205,37 +205,37 @@ data:
   "",
   "a" ;
 }
-*** Running test: bn_axcontrol.jnl
-*** Running test: bn_vec_curv.jnl
-*** Running test: bn_delimited_read.jnl
-*** Running test: bn541_bug_fixes.jnl
-*** Running test: bn_cancel_axes.jnl
-*** Running test: bn542_bug_fixes.jnl
-*** Running test: bn_subspan_modulo.jnl
-*** Running test: bn_dots.jnl
-*** Running test: bn_lev_symbols.jnl
-*** Running test: bn_mode_logo_lab.jnl
-*** Running test: bn_modulo_attribute.jnl
-*** Running test: bn550_bug_fixes.jnl
-*** Running test: bn551_bug_fixes.jnl
+*** Running ferret script: bn_axcontrol.jnl
+*** Running ferret script: bn_vec_curv.jnl
+*** Running ferret script: bn_delimited_read.jnl
+*** Running ferret script: bn541_bug_fixes.jnl
+*** Running ferret script: bn_cancel_axes.jnl
+*** Running ferret script: bn542_bug_fixes.jnl
+*** Running ferret script: bn_subspan_modulo.jnl
+*** Running ferret script: bn_dots.jnl
+*** Running ferret script: bn_lev_symbols.jnl
+*** Running ferret script: bn_mode_logo_lab.jnl
+*** Running ferret script: bn_modulo_attribute.jnl
+*** Running ferret script: bn550_bug_fixes.jnl
+*** Running ferret script: bn551_bug_fixes.jnl
 err550_nc_seconds.jnl --- seconds of time axis
 		TIME:time_origin = "10-JUN-1996 04:03:36" ;
-*** Running test: bn_multi_line_labels.jnl
-*** Running test: bn552_bug_fixes.jnl
-*** Running test: bn_set_var_scale_off.jnl
-*** Running test: bn_longvarnames.jnl
-*** Running test: bn_shakey.jnl
-*** Running test: bn_eof_4d.jnl
-*** Running test: bn_abstract_axis_names.jnl
-*** Running test: bn_many_polygons.jnl
-*** Running test: bn_fill_irregular.jnl
-*** Running test: bn_xml_output.jnl
-*** Running test: bn_test_nan.jnl
-*** Running test: bn553_bug_fixes.jnl
-*** Running test: bn_graticules.jnl
-*** Running test: bn_repeat_range.jnl
-*** Running test: bn554_bug_fixes.jnl
-*** Running test: bn_bounds.jnl
+*** Running ferret script: bn_multi_line_labels.jnl
+*** Running ferret script: bn552_bug_fixes.jnl
+*** Running ferret script: bn_set_var_scale_off.jnl
+*** Running ferret script: bn_longvarnames.jnl
+*** Running ferret script: bn_shakey.jnl
+*** Running ferret script: bn_eof_4d.jnl
+*** Running ferret script: bn_abstract_axis_names.jnl
+*** Running ferret script: bn_many_polygons.jnl
+*** Running ferret script: bn_fill_irregular.jnl
+*** Running ferret script: bn_xml_output.jnl
+*** Running ferret script: bn_test_nan.jnl
+*** Running ferret script: bn553_bug_fixes.jnl
+*** Running ferret script: bn_graticules.jnl
+*** Running ferret script: bn_repeat_range.jnl
+*** Running ferret script: bn554_bug_fixes.jnl
+*** Running ferret script: bn_bounds.jnl
 bn_bounds.jnl --- 1 output of bounds on irreg axes.
 netcdf a {
 dimensions:
@@ -256,7 +256,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -313,7 +313,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -370,7 +370,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -425,7 +425,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -473,7 +473,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -567,7 +567,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -637,7 +637,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -688,7 +688,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -747,22 +747,22 @@ data:
   87, 88, 91, 92, 93, 94,
   132, 133, 136, 137, 138, 139 ;
 }
-*** Running test: bn_all_leap.jnl
-*** Running test: bn570_bug_fixes.jnl
-*** Running test: bn_modstats.jnl
-*** Running test: bn_mc_vary_scale.jnl
-*** Running test: bn_plot_nokey.jnl
-*** Running test: bn580_bug_fixes.jnl
-*** Running test: bn_inf_levels.jnl
-*** Running test: bn_regulart.jnl
-*** Running test: bn_labwid.jnl
-*** Running test: bn_redefine_taxis_mc.jnl
-*** Running test: bn_illegal_axisname.jnl
-*** Running test: bn_exit_script.jnl
-*** Running test: bn_exit_cycle.jnl
-*** Running test: bn_curv_mod.jnl
-*** Running test: bn_shade_keycont.jnl
-*** Running test: bn581_bug_fixes.jnl
+*** Running ferret script: bn_all_leap.jnl
+*** Running ferret script: bn570_bug_fixes.jnl
+*** Running ferret script: bn_modstats.jnl
+*** Running ferret script: bn_mc_vary_scale.jnl
+*** Running ferret script: bn_plot_nokey.jnl
+*** Running ferret script: bn580_bug_fixes.jnl
+*** Running ferret script: bn_inf_levels.jnl
+*** Running ferret script: bn_regulart.jnl
+*** Running ferret script: bn_labwid.jnl
+*** Running ferret script: bn_redefine_taxis_mc.jnl
+*** Running ferret script: bn_illegal_axisname.jnl
+*** Running ferret script: bn_exit_script.jnl
+*** Running ferret script: bn_exit_cycle.jnl
+*** Running ferret script: bn_curv_mod.jnl
+*** Running ferret script: bn_shade_keycont.jnl
+*** Running ferret script: bn581_bug_fixes.jnl
 err580_irreg_bounds.jnl --- 
 netcdf a {
 dimensions:
@@ -779,7 +779,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -806,7 +806,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
 data:
@@ -830,7 +830,7 @@ variables:
 		A:history = "From x" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title, longer than the previous limit of 80 characters.  Previously various buffers were set to 80, and storage in ds_title was also too short." ;
 data:
@@ -857,19 +857,19 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
-*** Running test: bn_tab_comma_multivar.jnl
-*** Running test: bn_element_functions.jnl
-*** Running test: bn_long_revision_num.jnl
+*** 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 V6.96 (PyFerret 1.2) 19-Nov-15" ;
-*** Running test: bn_window_title.jnl
-*** Running test: bn_last_error.jnl
-*** Running test: bn_deg_min.jnl
-*** Running test: bn_dp_readscale.jnl
-*** Running test: bn_bounds_defineax.jnl
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+*** Running ferret script: bn_window_title.jnl
+*** Running ferret script: bn_last_error.jnl
+*** Running ferret script: bn_deg_min.jnl
+*** Running ferret script: bn_dp_readscale.jnl
+*** Running ferret script: bn_bounds_defineax.jnl
 bn_bounds_defineax.jnl --- N+1 def of bounds.
 netcdf irrxzt {
 dimensions:
@@ -900,7 +900,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -959,7 +959,7 @@ data:
   87, 88, 91, 92, 93, 94,
   132, 133, 136, 137, 138, 139 ;
 }
-*** Running test: bn_attributes.jnl
+*** Running ferret script: bn_attributes.jnl
 bn_attributes.jnl --- 1 attributes of string variables
 netcdf a {
 dimensions:
@@ -973,7 +973,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -995,7 +995,7 @@ variables:
 		COADSX105_105:units = "degrees_east" ;
 		COADSX105_105:modulo = " " ;
 		COADSX105_105:point_spacing = "even" ;
-		COADSX105_105:newatt = 0.f ;
+		COADSX105_105:newatt = 3.f ;
 		COADSX105_105:axis = "X" ;
 		COADSX105_105:standard_name = "longitude" ;
 	double COADSY45_45(COADSY45_45) ;
@@ -1017,7 +1017,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1059,7 +1059,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1167,38 +1167,38 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
 netcdf a {
 dimensions:
-	Xc3_3 = 1 ;
-	Yc2_4 = 3 ;
+	Xc = 1 ;
+	Yc = 3 ;
 	bnds = 2 ;
 	Ti = UNLIMITED ; // (1 currently)
 variables:
-	double Xc3_3(Xc3_3) ;
-		Xc3_3:long_name = "Longitude" ;
-		Xc3_3:units = "degrees_east" ;
-		Xc3_3:modulo = 360. ;
-		Xc3_3:point_spacing = "even" ;
-		Xc3_3:axis = "X" ;
-		Xc3_3:standard_name = "longitude" ;
-	double Yc2_4(Yc2_4) ;
-		Yc2_4:long_name = "Latitude" ;
-		Yc2_4:units = "degrees_north" ;
-		Yc2_4:point_spacing = "uneven" ;
-		Yc2_4:axis = "Y" ;
-		Yc2_4:standard_name = "latitude" ;
-		Yc2_4:bounds = "Yc2_4_bnds" ;
-	double Yc2_4_bnds(Yc2_4, bnds) ;
+	double Xc(Xc) ;
+		Xc:long_name = "Longitude" ;
+		Xc:units = "degrees_east" ;
+		Xc:modulo = 360. ;
+		Xc:point_spacing = "even" ;
+		Xc:axis = "X" ;
+		Xc:standard_name = "longitude" ;
+	double Yc(Yc) ;
+		Yc:long_name = "Latitude" ;
+		Yc:units = "degrees_north" ;
+		Yc:point_spacing = "uneven" ;
+		Yc:axis = "Y" ;
+		Yc:standard_name = "latitude" ;
+		Yc:bounds = "Yc_bnds" ;
+	double Yc_bnds(Yc, bnds) ;
 	double Ti(Ti) ;
 		Ti:long_name = "Time" ;
 		Ti:units = "day" ;
 		Ti:axis = "T" ;
 		Ti:standard_name = "time" ;
-	short Elev(Ti, Yc2_4, Xc3_3) ;
+	short Elev(Ti, Yc, Xc) ;
 		Elev:missing_value = -32767s ;
 		Elev:_FillValue = -32768s ;
 		Elev:long_name = "Surface elevation" ;
@@ -1208,7 +1208,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -1231,7 +1231,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1257,7 +1257,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1277,7 +1277,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1298,7 +1298,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1341,7 +1341,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -1381,7 +1381,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -1419,40 +1419,40 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
 netcdf a {
 dimensions:
-	AX011 = 5 ;
+	AX002 = 5 ;
 variables:
-	double AX011(AX011) ;
-		AX011:point_spacing = "even" ;
-		AX011:axis = "X" ;
-	float A1(AX011) ;
+	double AX002(AX002) ;
+		AX002:point_spacing = "even" ;
+		AX002:axis = "X" ;
+	float A1(AX002) ;
 		A1:missing_value = -1.e+34f ;
 		A1:_FillValue = -1.e+34f ;
 		A1:long_name = "A1" ;
 		A1:three = 1.f, 2.f, 3.f ;
 		A1:history = "From EZ.DAT" ;
-	float A2(AX011) ;
+	float A2(AX002) ;
 		A2:missing_value = -1.e+34f ;
 		A2:_FillValue = -1.e+34f ;
 		A2:long_name = "A2" ;
 		A2:history = "From EZ.DAT" ;
-	float A3(AX011) ;
+	float A3(AX002) ;
 		A3:missing_value = -1.e+34f ;
 		A3:_FillValue = -1.e+34f ;
 		A3:long_name = "A3" ;
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
- AX011 = 1, 2, 3, 4, 5 ;
+ AX002 = 1, 2, 3, 4, 5 ;
 
  A1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
 
@@ -1463,29 +1463,29 @@ data:
 bn_attributes.jnl --- 15 attributes of data from delimited data.
 netcdf a {
 dimensions:
-	AX008 = 5 ;
+	AX012 = 5 ;
 variables:
-	double AX008(AX008) ;
-		AX008:point_spacing = "even" ;
-		AX008:axis = "X" ;
-	float V1(AX008) ;
+	double AX012(AX012) ;
+		AX012:point_spacing = "even" ;
+		AX012:axis = "X" ;
+	float V1(AX012) ;
 		V1:missing_value = -1.e+34f ;
 		V1:_FillValue = -1.e+34f ;
 		V1:long_name = "V1" ;
 		V1:strval = "2" ;
 		V1:history = "From EZ.DAT" ;
-	float V4(AX008) ;
+	float V4(AX012) ;
 		V4:missing_value = -1.e+34f ;
 		V4:_FillValue = -1.e+34f ;
 		V4:long_name = "V4" ;
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
- AX008 = 1, 2, 3, 4, 5 ;
+ AX012 = 1, 2, 3, 4, 5 ;
 
  V1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
 
@@ -1507,7 +1507,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1553,7 +1553,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -1594,7 +1594,7 @@ dimensions:
 	TI = UNLIMITED ; // (1 currently)
 	PSXT100_100 = 1 ;
 	PSYT35_56 = 22 ;
-	PSZT11_1 = 1 ;
+	PSZT1_1 = 1 ;
 	TIME1 = 25 ;
 variables:
 	double XC(XC) ;
@@ -1638,21 +1638,21 @@ variables:
 		PSYT35_56:standard_name = "latitude" ;
 		PSYT35_56:bounds = "PSYT35_56_bnds" ;
 	double PSYT35_56_bnds(PSYT35_56, bnds) ;
-	double PSZT11_1(PSZT11_1) ;
-		PSZT11_1:units = "meters" ;
-		PSZT11_1:positive = "down" ;
-		PSZT11_1:point_spacing = "uneven" ;
-		PSZT11_1:axis = "Z" ;
-		PSZT11_1:standard_name = "depth" ;
-		PSZT11_1:bounds = "PSZT11_1_bnds" ;
-	double PSZT11_1_bnds(PSZT11_1, bnds) ;
+	double PSZT1_1(PSZT1_1) ;
+		PSZT1_1:units = "meters" ;
+		PSZT1_1:positive = "down" ;
+		PSZT1_1:point_spacing = "uneven" ;
+		PSZT1_1:axis = "Z" ;
+		PSZT1_1:standard_name = "depth" ;
+		PSZT1_1:bounds = "PSZT1_1_bnds" ;
+	double PSZT1_1_bnds(PSZT1_1, bnds) ;
 	double TIME1(TIME1) ;
 		TIME1:units = "hour since 1980-01-14 14:00:00" ;
 		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME1:point_spacing = "even" ;
 		TIME1:axis = "T" ;
 		TIME1:standard_name = "time" ;
-	float TEMP(TIME1, PSZT11_1, PSYT35_56, PSXT100_100) ;
+	float TEMP(TIME1, PSZT1_1, PSYT35_56, PSXT100_100) ;
 		TEMP:missing_value = -1.e+34f ;
 		TEMP:_FillValue = -1.e+34f ;
 		TEMP:long_name = "TEMPERATURE" ;
@@ -1660,7 +1660,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -1702,7 +1702,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1732,7 +1732,7 @@ data:
     -32767, -32767, -32767, -32767, -32767, -32767 ;
 }
 bn_attributes.jnl --- 20 set data type on output int4
-	int TEMP(TIME1, PSZT11_1, PSYT48_48, PSXT91_108) ;
+	int TEMP(TIME1, PSZT1_1, PSYT48_48, PSXT91_108) ;
 		TEMP:missing_value = -1000 ;
 		TEMP:_FillValue = -1000 ;
 		TEMP:long_name = "TEMPERATURE" ;
@@ -1745,7 +1745,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(TIME1, PSZT11_1, PSYT48_48, PSXT91_108) ;
+	double SALT(TIME1, PSZT1_1, PSYT48_48, PSXT91_108) ;
 		SALT:missing_value = 0.00999999977648258 ;
 		SALT:_FillValue = 0.00999999977648258 ;
 		SALT:long_name = "(SALINITY(ppt) - 35) /1000" ;
@@ -1785,7 +1785,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1822,7 +1822,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1862,7 +1862,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1913,7 +1913,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1936,7 +1936,7 @@ dimensions:
 	PSXT91_108 = 18 ;
 	PSYT35_56 = 22 ;
 	bnds = 2 ;
-	PSZT11_10 = 10 ;
+	PSZT1_10 = 10 ;
 	TIME1 = UNLIMITED ; // (1 currently)
 variables:
 	double PSXT91_108(PSXT91_108) ;
@@ -1952,27 +1952,27 @@ variables:
 		PSYT35_56:standard_name = "latitude" ;
 		PSYT35_56:bounds = "PSYT35_56_bnds" ;
 	double PSYT35_56_bnds(PSYT35_56, bnds) ;
-	double PSZT11_10(PSZT11_10) ;
-		PSZT11_10:units = "meters" ;
-		PSZT11_10:positive = "down" ;
-		PSZT11_10:point_spacing = "uneven" ;
-		PSZT11_10:axis = "Z" ;
-		PSZT11_10:standard_name = "depth" ;
-		PSZT11_10:bounds = "PSZT11_10_bnds" ;
-	double PSZT11_10_bnds(PSZT11_10, bnds) ;
+	double PSZT1_10(PSZT1_10) ;
+		PSZT1_10:units = "meters" ;
+		PSZT1_10:positive = "down" ;
+		PSZT1_10:point_spacing = "uneven" ;
+		PSZT1_10:axis = "Z" ;
+		PSZT1_10:standard_name = "depth" ;
+		PSZT1_10:bounds = "PSZT1_10_bnds" ;
+	double PSZT1_10_bnds(PSZT1_10, bnds) ;
 	double TIME1(TIME1) ;
 		TIME1:units = "hour since 1980-01-14 14:00:00" ;
 		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME1:axis = "T" ;
 		TIME1:standard_name = "time" ;
-	double T2(TIME1, PSZT11_10, PSYT35_56, PSXT91_108) ;
+	double T2(TIME1, PSZT1_10, PSYT35_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 V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -1980,7 +1980,7 @@ dimensions:
 	PSXT91_108 = 18 ;
 	PSYT35_56 = 22 ;
 	bnds = 2 ;
-	PSZT11_10 = 10 ;
+	PSZT1_10 = 10 ;
 	TIME1 = UNLIMITED ; // (1 currently)
 variables:
 	double PSXT91_108(PSXT91_108) ;
@@ -1997,27 +1997,27 @@ variables:
 		PSYT35_56:standard_name = "latitude" ;
 		PSYT35_56:bounds = "PSYT35_56_bnds" ;
 	double PSYT35_56_bnds(PSYT35_56, bnds) ;
-	double PSZT11_10(PSZT11_10) ;
-		PSZT11_10:units = "meters" ;
-		PSZT11_10:positive = "down" ;
-		PSZT11_10:point_spacing = "uneven" ;
-		PSZT11_10:axis = "Z" ;
-		PSZT11_10:standard_name = "depth" ;
-		PSZT11_10:bounds = "PSZT11_10_bnds" ;
-	double PSZT11_10_bnds(PSZT11_10, bnds) ;
+	double PSZT1_10(PSZT1_10) ;
+		PSZT1_10:units = "meters" ;
+		PSZT1_10:positive = "down" ;
+		PSZT1_10:point_spacing = "uneven" ;
+		PSZT1_10:axis = "Z" ;
+		PSZT1_10:standard_name = "depth" ;
+		PSZT1_10:bounds = "PSZT1_10_bnds" ;
+	double PSZT1_10_bnds(PSZT1_10, bnds) ;
 	double TIME1(TIME1) ;
 		TIME1:units = "hour since 1980-01-14 14:00:00" ;
 		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME1:axis = "T" ;
 		TIME1:standard_name = "time" ;
-	double T2(TIME1, PSZT11_10, PSYT35_56, PSXT91_108) ;
+	double T2(TIME1, PSZT1_10, PSYT35_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 V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2025,7 +2025,7 @@ dimensions:
 	PSXT91_108 = 18 ;
 	PSYT35_56 = 22 ;
 	bnds = 2 ;
-	PSZT11_10 = 10 ;
+	PSZT1_10 = 10 ;
 	TIME1 = UNLIMITED ; // (1 currently)
 variables:
 	double PSXT91_108(PSXT91_108) ;
@@ -2040,27 +2040,27 @@ variables:
 		PSYT35_56:axis = "Y" ;
 		PSYT35_56:bounds = "PSYT35_56_bnds" ;
 	double PSYT35_56_bnds(PSYT35_56, bnds) ;
-	double PSZT11_10(PSZT11_10) ;
-		PSZT11_10:units = "meters" ;
-		PSZT11_10:positive = "down" ;
-		PSZT11_10:point_spacing = "uneven" ;
-		PSZT11_10:axis = "Z" ;
-		PSZT11_10:standard_name = "depth" ;
-		PSZT11_10:bounds = "PSZT11_10_bnds" ;
-	double PSZT11_10_bnds(PSZT11_10, bnds) ;
+	double PSZT1_10(PSZT1_10) ;
+		PSZT1_10:units = "meters" ;
+		PSZT1_10:positive = "down" ;
+		PSZT1_10:point_spacing = "uneven" ;
+		PSZT1_10:axis = "Z" ;
+		PSZT1_10:standard_name = "depth" ;
+		PSZT1_10:bounds = "PSZT1_10_bnds" ;
+	double PSZT1_10_bnds(PSZT1_10, bnds) ;
 	double TIME1(TIME1) ;
 		TIME1:units = "hour since 1980-01-14 14:00:00" ;
 		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME1:axis = "T" ;
 		TIME1:standard_name = "time" ;
-	double T2(TIME1, PSZT11_10, PSYT35_56, PSXT91_108) ;
+	double T2(TIME1, PSZT1_10, PSYT35_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 V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2095,7 +2095,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2129,7 +2129,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 27 attributes of  user-defined axes
@@ -2159,7 +2159,7 @@ variables:
 		AXY:long_name = "RESHAPE (A,RVAR)" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 28 Define a new global attribute
@@ -2188,7 +2188,7 @@ variables:
 		BROILED:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -2209,39 +2209,39 @@ data:
 bn_attributes.jnl --- 29 SET VAR/OUTTYPE for user variable
 netcdf a {
 dimensions:
-	PSXT191_108 = 18 ;
-	PSYT135_56 = 22 ;
+	PSXT91_108 = 18 ;
+	PSYT35_56 = 22 ;
 	bnds = 2 ;
-	PSZT11_10 = 10 ;
+	PSZT1_10 = 10 ;
 	TIME1 = UNLIMITED ; // (25 currently)
 variables:
-	double PSXT191_108(PSXT191_108) ;
-		PSXT191_108:units = "degrees_east" ;
-		PSXT191_108:point_spacing = "even" ;
-		PSXT191_108:modulo = 360. ;
-		PSXT191_108:axis = "X" ;
-		PSXT191_108:standard_name = "longitude" ;
-	double PSYT135_56(PSYT135_56) ;
-		PSYT135_56:units = "degrees_north" ;
-		PSYT135_56:point_spacing = "uneven" ;
-		PSYT135_56:axis = "Y" ;
-		PSYT135_56:standard_name = "latitude" ;
-		PSYT135_56:bounds = "PSYT135_56_bnds" ;
-	double PSYT135_56_bnds(PSYT135_56, bnds) ;
-	double PSZT11_10(PSZT11_10) ;
-		PSZT11_10:units = "meters" ;
-		PSZT11_10:positive = "down" ;
-		PSZT11_10:point_spacing = "uneven" ;
-		PSZT11_10:axis = "Z" ;
-		PSZT11_10:standard_name = "depth" ;
-		PSZT11_10:bounds = "PSZT11_10_bnds" ;
-	double PSZT11_10_bnds(PSZT11_10, bnds) ;
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees_east" ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:axis = "X" ;
+		PSXT91_108:standard_name = "longitude" ;
+	double PSYT35_56(PSYT35_56) ;
+		PSYT35_56:units = "degrees_north" ;
+		PSYT35_56:point_spacing = "uneven" ;
+		PSYT35_56:axis = "Y" ;
+		PSYT35_56:standard_name = "latitude" ;
+		PSYT35_56:bounds = "PSYT35_56_bnds" ;
+	double PSYT35_56_bnds(PSYT35_56, bnds) ;
+	double PSZT1_10(PSZT1_10) ;
+		PSZT1_10:units = "meters" ;
+		PSZT1_10:positive = "down" ;
+		PSZT1_10:point_spacing = "uneven" ;
+		PSZT1_10:axis = "Z" ;
+		PSZT1_10:standard_name = "depth" ;
+		PSZT1_10:bounds = "PSZT1_10_bnds" ;
+	double PSZT1_10_bnds(PSZT1_10, bnds) ;
 	double TIME1(TIME1) ;
 		TIME1:units = "hour since 1980-01-14 14:00:00" ;
 		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME1:axis = "T" ;
 		TIME1:standard_name = "time" ;
-	double FAREN(TIME1, PSZT11_10, PSYT135_56, PSXT191_108) ;
+	double FAREN(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
 		FAREN:missing_value = -1.e+34 ;
 		FAREN:_FillValue = -1.e+34 ;
 		FAREN:long_name = "TEMP*9/5 + 32" ;
@@ -2249,44 +2249,44 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
 dimensions:
-	PSXT191_108 = 18 ;
-	PSYT135_56 = 22 ;
+	PSXT91_108 = 18 ;
+	PSYT35_56 = 22 ;
 	bnds = 2 ;
-	PSZT11_10 = 10 ;
+	PSZT1_10 = 10 ;
 	TIME1 = UNLIMITED ; // (25 currently)
 variables:
-	double PSXT191_108(PSXT191_108) ;
-		PSXT191_108:units = "degrees_east" ;
-		PSXT191_108:point_spacing = "even" ;
-		PSXT191_108:modulo = 360. ;
-		PSXT191_108:axis = "X" ;
-		PSXT191_108:standard_name = "longitude" ;
-	double PSYT135_56(PSYT135_56) ;
-		PSYT135_56:units = "degrees_north" ;
-		PSYT135_56:point_spacing = "uneven" ;
-		PSYT135_56:axis = "Y" ;
-		PSYT135_56:standard_name = "latitude" ;
-		PSYT135_56:bounds = "PSYT135_56_bnds" ;
-	double PSYT135_56_bnds(PSYT135_56, bnds) ;
-	double PSZT11_10(PSZT11_10) ;
-		PSZT11_10:units = "meters" ;
-		PSZT11_10:positive = "down" ;
-		PSZT11_10:point_spacing = "uneven" ;
-		PSZT11_10:axis = "Z" ;
-		PSZT11_10:standard_name = "depth" ;
-		PSZT11_10:bounds = "PSZT11_10_bnds" ;
-	double PSZT11_10_bnds(PSZT11_10, bnds) ;
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees_east" ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:axis = "X" ;
+		PSXT91_108:standard_name = "longitude" ;
+	double PSYT35_56(PSYT35_56) ;
+		PSYT35_56:units = "degrees_north" ;
+		PSYT35_56:point_spacing = "uneven" ;
+		PSYT35_56:axis = "Y" ;
+		PSYT35_56:standard_name = "latitude" ;
+		PSYT35_56:bounds = "PSYT35_56_bnds" ;
+	double PSYT35_56_bnds(PSYT35_56, bnds) ;
+	double PSZT1_10(PSZT1_10) ;
+		PSZT1_10:units = "meters" ;
+		PSZT1_10:positive = "down" ;
+		PSZT1_10:point_spacing = "uneven" ;
+		PSZT1_10:axis = "Z" ;
+		PSZT1_10:standard_name = "depth" ;
+		PSZT1_10:bounds = "PSZT1_10_bnds" ;
+	double PSZT1_10_bnds(PSZT1_10, bnds) ;
 	double TIME1(TIME1) ;
 		TIME1:units = "hour since 1980-01-14 14:00:00" ;
 		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
 		TIME1:axis = "T" ;
 		TIME1:standard_name = "time" ;
-	int FAREN(TIME1, PSZT11_10, PSYT135_56, PSXT191_108) ;
+	int FAREN(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
 		FAREN:missing_value = -999 ;
 		FAREN:_FillValue = -999 ;
 		FAREN:long_name = "TEMP*9/5 + 32" ;
@@ -2294,31 +2294,31 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
-		:Conventions = "CF-1.6" ;
-}
-*** Running test: bn_transforms.jnl
-*** Running test: bn_variance.jnl
-*** Running test: bn_linecolors.jnl
-*** Running test: bn_cdf_errmsg.jnl
-*** Running test: bn600_bug_fixes.jnl
-*** Running test: bn601_bug_fixes.jnl
-*** Running test: bn_set_strides.jnl
-*** Running test: bn_lsl_lowpass.jnl
-*** Running test: bn_return_xmod_tmod.jnl
-*** Running test: bn602_bug_fixes.jnl
-*** Running test: bn_modnbd.jnl
-*** Running test: bn_fifty_files.jnl
-*** Running test: bn603_bug_fixes.jnl
-*** Running test: bn_set_var_name.jnl
-*** Running test: bn_memory_symbol.jnl
-*** Running test: bn605_bug_fixes.jnl
-*** Running test: bn608_bug_fixes.jnl
-*** Running test: bn_shade_trim.jnl
-*** Running test: bn_mode_nlevels.jnl
-*** Running test: bn61_bug_fixes.jnl
-*** Running test: bn_test_opendap.jnl
-*** Running test: bn611_bug_fixes.jnl
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
+*** Running ferret script: bn_transforms.jnl
+*** Running ferret script: bn_variance.jnl
+*** Running ferret script: bn_linecolors.jnl
+*** Running ferret script: bn_cdf_errmsg.jnl
+*** Running ferret script: bn600_bug_fixes.jnl
+*** Running ferret script: bn601_bug_fixes.jnl
+*** Running ferret script: bn_set_strides.jnl
+*** Running ferret script: bn_lsl_lowpass.jnl
+*** Running ferret script: bn_return_xmod_tmod.jnl
+*** Running ferret script: bn602_bug_fixes.jnl
+*** Running ferret script: bn_modnbd.jnl
+*** Running ferret script: bn_fifty_files.jnl
+*** Running ferret script: bn603_bug_fixes.jnl
+*** Running ferret script: bn_set_var_name.jnl
+*** Running ferret script: bn_memory_symbol.jnl
+*** Running ferret script: bn605_bug_fixes.jnl
+*** Running ferret script: bn608_bug_fixes.jnl
+*** Running ferret script: bn_shade_trim.jnl
+*** Running ferret script: bn_mode_nlevels.jnl
+*** Running ferret script: bn61_bug_fixes.jnl
+*** Running ferret script: bn_test_opendap.jnl
+*** Running ferret script: bn611_bug_fixes.jnl
 netcdf a {
 dimensions:
 	XAX = 4 ;
@@ -2335,7 +2335,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2365,7 +2365,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2395,7 +2395,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2448,7 +2448,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2490,7 +2490,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2508,12 +2508,12 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
-*** Running test: bn_no_valid_on_plot.jnl
-*** Running test: bn_median.jnl
-*** Running test: bn614_bug_fixes.jnl
+*** Running ferret script: bn_no_valid_on_plot.jnl
+*** Running ferret script: bn_median.jnl
+*** Running ferret script: bn614_bug_fixes.jnl
 err611_set_var_ez.jnl --- 
 netcdf a {
 dimensions:
@@ -2530,7 +2530,7 @@ variables:
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2548,7 +2548,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -2565,7 +2565,7 @@ variables:
 		A:long_name = "{1.1,2.2,3.3}" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2586,7 +2586,7 @@ variables:
 		A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2594,17 +2594,17 @@ data:
 
  A = 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5 ;
 }
-*** Running test: bn_mode_nodata_lab.jnl
-*** Running test: bn_proleptic_gregorian_calendar.jnl
-*** Running test: bn_string_ngd_nbd.jnl
-*** Running test: bn_cat_string.jnl
-*** Running test: bn_sort_strings.jnl
-*** Running test: bn_samplexyt.jnl
-*** Running test: bn_last_go_file.jnl
-*** Running test: bn_cancel_upcase_uservar.jnl
+*** Running ferret script: bn_mode_nodata_lab.jnl
+*** Running ferret script: bn_proleptic_gregorian_calendar.jnl
+*** Running ferret script: bn_string_ngd_nbd.jnl
+*** Running ferret script: bn_cat_string.jnl
+*** Running ferret script: bn_sort_strings.jnl
+*** Running ferret script: bn_samplexyt.jnl
+*** Running ferret script: bn_last_go_file.jnl
+*** Running ferret script: bn_cancel_upcase_uservar.jnl
 netcdf a {
 dimensions:
-	XAX1_10 = 10 ;
+	XAX = 10 ;
 	tday = UNLIMITED ; // (31 currently)
 	lon1_5 = 5 ;
 	lat1_5 = 5 ;
@@ -2612,16 +2612,16 @@ dimensions:
 	zt = 10 ;
 	time1478 = 3 ;
 variables:
-	double XAX1_10(XAX1_10) ;
-		XAX1_10:point_spacing = "even" ;
-		XAX1_10:axis = "X" ;
+	double XAX(XAX) ;
+		XAX:point_spacing = "even" ;
+		XAX:axis = "X" ;
 	double tday(tday) ;
 		tday:units = "days since 1998-12-31 00:00:00" ;
 		tday:axis = "T" ;
 		tday:calendar = "GREGORIAN" ;
 		tday:time_origin = "31-DEC-1998" ;
 		tday:standard_name = "time" ;
-	double MyUpperLowerCaseVar(tday, XAX1_10) ;
+	double MyUpperLowerCaseVar(tday, XAX) ;
 		MyUpperLowerCaseVar:missing_value = -1.e+34 ;
 		MyUpperLowerCaseVar:_FillValue = -1.e+34 ;
 		MyUpperLowerCaseVar:long_name = "X[X=1:10] + T[GT=TDAY]" ;
@@ -2657,11 +2657,11 @@ variables:
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
-*** Running test: bn_cdf_keepax.jnl
-*** Running test: bn_keep_axisnames.jnl
+*** Running ferret script: bn_cdf_keepax.jnl
+*** Running ferret script: bn_keep_axisnames.jnl
 bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
 netcdf a {
 dimensions:
@@ -2686,7 +2686,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -2713,47 +2713,47 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
-		:Conventions = "CF-1.6" ;
-}
-*** Running test: bn_key_label_minmax.jnl
-*** Running test: bn62_bug_fixes.jnl
-*** Running test: bn_convolve.jnl
-*** Running test: bn_tax_tstep.jnl
-*** Running test: bn_grads_z.jnl
-*** Running test: bn_clock_syms.jnl
-*** Running test: bn63_bug_fixes.jnl
-*** Running test: bn_axis_reversed_syms.jnl
-*** Running test: bn_isdepth.jnl
-*** Running test: bn_var_hist_levels.jnl
-*** Running test: bn64_bug_fixes.jnl
-*** Running test: bn_long_grid_names.jnl
-*** Running test: bn_xml_repl.jnl
-*** Running test: bn65_bug_fixes.jnl
-*** Running test: bn_txtype_dmy.jnl
-*** Running test: bn_n_open_dsets_sym.jnl
-*** Running test: bn_multi_decade.jnl
-*** Running test: bn_show_xml_file.jnl
-*** Running test: bn66_bug_fixes.jnl
-*** Running test: bn_netcdf4.jnl
-*** Running test: bn_scat2grid_bin.jnl
-*** Running test: bn_axis_dir_symbols.jnl
-*** Running test: bn663_bug_fixes.jnl
-*** Running test: bn_set_axis_regular.jnl
-*** Running test: bn_set_cancel_redirect.jnl
-*** Running test: bn_min_max_smoothers.jnl
-*** Running test: bn_vector_symbols.jnl
-*** Running test: bn_variance_large.jnl
-*** Running test: bn_labnum_calendar.jnl
-*** Running test: bn665_bug_fixes.jnl
-*** Running test: bn_floatstr.jnl
-*** Running test: bn67_bug_fixes.jnl
-*** Running test: bn_NaN_note.jnl
-*** Running test: bn671_bug_fixes.jnl
-*** Running test: bn68_bug_fixes.jnl
-*** Running test: bn_ifv.jnl
-*** Running test: bn_randu2_randn2.jnl
-*** Running test: bn_axis_cf.jnl
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
+*** Running ferret script: bn_key_label_minmax.jnl
+*** Running ferret script: bn62_bug_fixes.jnl
+*** Running ferret script: bn_convolve.jnl
+*** Running ferret script: bn_tax_tstep.jnl
+*** Running ferret script: bn_grads_z.jnl
+*** Running ferret script: bn_clock_syms.jnl
+*** Running ferret script: bn63_bug_fixes.jnl
+*** Running ferret script: bn_axis_reversed_syms.jnl
+*** Running ferret script: bn_isdepth.jnl
+*** Running ferret script: bn_var_hist_levels.jnl
+*** Running ferret script: bn64_bug_fixes.jnl
+*** Running ferret script: bn_long_grid_names.jnl
+*** Running ferret script: bn_xml_repl.jnl
+*** Running ferret script: bn65_bug_fixes.jnl
+*** Running ferret script: bn_txtype_dmy.jnl
+*** Running ferret script: bn_n_open_dsets_sym.jnl
+*** Running ferret script: bn_multi_decade.jnl
+*** Running ferret script: bn_show_xml_file.jnl
+*** Running ferret script: bn66_bug_fixes.jnl
+*** Running ferret script: bn_netcdf4.jnl
+*** Running ferret script: bn_scat2grid_bin.jnl
+*** Running ferret script: bn_axis_dir_symbols.jnl
+*** Running ferret script: bn663_bug_fixes.jnl
+*** Running ferret script: bn_set_axis_regular.jnl
+*** Running ferret script: bn_set_cancel_redirect.jnl
+*** Running ferret script: bn_min_max_smoothers.jnl
+*** Running ferret script: bn_vector_symbols.jnl
+*** Running ferret script: bn_variance_large.jnl
+*** Running ferret script: bn_labnum_calendar.jnl
+*** Running ferret script: bn665_bug_fixes.jnl
+*** Running ferret script: bn_floatstr.jnl
+*** Running ferret script: bn67_bug_fixes.jnl
+*** Running ferret script: bn_NaN_note.jnl
+*** Running ferret script: bn671_bug_fixes.jnl
+*** Running ferret script: bn68_bug_fixes.jnl
+*** Running ferret script: bn_ifv.jnl
+*** Running ferret script: bn_randu2_randn2.jnl
+*** Running ferret script: bn_axis_cf.jnl
 bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
 netcdf a {
 dimensions:
@@ -2818,7 +2818,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -2850,7 +2850,7 @@ variables:
 		Y_:long_name_mod = "axis YFIFTEEN" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -2883,60 +2883,61 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
-		:Conventions = "CF-1.6" ;
-}
-*** Running test: bn_repeated_coords.jnl
-*** Running test: bn_xml_header.jnl
-*** Running test: bn_eof_simple.jnl
-*** Running test: bn_eof_simple2.jnl
-*** Running test: bn_interpolate_6d.jnl
-*** Running test: bn_regrid_6d.jnl
-*** Running test: bn_syntax_6d.jnl
-*** Running test: bn_expressions_6d.jnl
-*** Running test: bn_direction_fcns_6d.jnl
-*** Running test: bn_regrid_transforms_6d.jnl
-*** Running test: bn_aggregate_e.jnl
-*** Running test: bn_6d_lab_mode.jnl
-*** Running test: bn682_bug_fixes.jnl
-*** Running test: bn683_bug_fixes.jnl
-*** Running test: bn_outtype.jnl
-*** Running test: bn_ribbon_plot.jnl
-*** Running test: bn_descr_4digit.jnl
-*** Running test: bn_axis_outtype.jnl
-*** Running test: bn_axis_nonmonotonic.jnl
-*** Running test: bn_vec_mod.jnl
-*** Running test: bn685_bug_fixes.jnl
-*** Running test: bn_dsg_e_x.jnl
-*** Running test: bn_nco_append.jnl
-*** Running test: bn_nobounds.jnl
-*** Running test: bn_write_integer_att.jnl
-*** Running test: bn_descriptor_mc.jnl
-*** Running test: bn_plot_color_only.jnl
-*** Running test: bn_vtree.jnl
-*** Running test: bn686_bug_fixes.jnl
-*** Running test: bn_long_symnames.jnl
-*** Running test: bn_strdim.jnl
-*** Running test: bn_single_colorlev.jnl
-*** Running test: bn69_bug_fixes.jnl
-*** Running test: bn_bad_axis_bounds.jnl
-*** Running test: bn_enter_exit_GO.jnl
-*** Running test: bn_stddev.jnl
-*** Running test: bn_set_axis_name.jnl
-*** Running test: bn691_bug_fixes.jnl
-*** Running test: bn_append_dsg.jnl
-*** Running test: bn_global_atts.jnl
-*** Running test: bn_conventions_history.jnl
-*** Running test: bn_center_key_labels.jnl
-*** Running test: bn_wgt_transform.jnl
-*** Running test: bn_show_outfile.jnl
-*** Running test: bn_date1900_array.jnl
-*** Running test: bn_spawn_size.jnl
-*** Running test: bn_polygon_log.jnl
-*** Running test: bn694_bug_fixes.jnl
-*** Running test: bn_permute_ascii.jnl
-*** Running test: bn_lon_lat_time_string.jnl
-*** Running test: bn_save_justdim.jnl
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
+*** Running ferret script: bn_repeated_coords.jnl
+*** Running ferret script: bn_xml_header.jnl
+*** Running ferret script: bn_eof_simple.jnl
+*** Running ferret script: bn_eof_simple2.jnl
+*** Running ferret script: bn_interpolate_6d.jnl
+*** Running ferret script: bn_regrid_6d.jnl
+*** Running ferret script: bn_syntax_6d.jnl
+*** Running ferret script: bn_expressions_6d.jnl
+*** Running ferret script: bn_direction_fcns_6d.jnl
+*** Running ferret script: bn_regrid_transforms_6d.jnl
+*** Running ferret script: bn_aggregate_e.jnl
+*** Running ferret script: bn_6d_lab_mode.jnl
+*** Running ferret script: bn682_bug_fixes.jnl
+*** Running ferret script: bn683_bug_fixes.jnl
+*** Running ferret script: bn_outtype.jnl
+*** Running ferret script: bn_ribbon_plot.jnl
+*** Running ferret script: bn_descr_4digit.jnl
+*** Running ferret script: bn_axis_outtype.jnl
+*** Running ferret script: bn_axis_nonmonotonic.jnl
+*** Running ferret script: bn_vec_mod.jnl
+*** Running ferret script: bn685_bug_fixes.jnl
+*** Running ferret script: bn_dsg_e_x.jnl
+*** Running ferret script: bn_nco_append.jnl
+*** Running ferret script: bn_nobounds.jnl
+*** Running ferret script: bn_write_integer_att.jnl
+*** Running ferret script: bn_descriptor_mc.jnl
+*** Running ferret script: bn_plot_color_only.jnl
+*** Running ferret script: bn_vtree.jnl
+*** Running ferret script: bn686_bug_fixes.jnl
+*** Running ferret script: bn_long_symnames.jnl
+*** Running ferret script: bn_strdim.jnl
+*** Running ferret script: bn_single_colorlev.jnl
+*** Running ferret script: bn69_bug_fixes.jnl
+*** Running ferret script: bn_bad_axis_bounds.jnl
+*** Running ferret script: bn_enter_exit_GO.jnl
+*** Running ferret script: bn_stddev.jnl
+*** Running ferret script: bn_set_axis_name.jnl
+*** Running ferret script: bn_let_remote.jnl
+*** Running ferret script: bn691_bug_fixes.jnl
+*** Running ferret script: bn_append_dsg.jnl
+*** Running ferret script: bn_global_atts.jnl
+*** Running ferret script: bn_conventions_history.jnl
+*** Running ferret script: bn_center_key_labels.jnl
+*** Running ferret script: bn_wgt_transform.jnl
+*** Running ferret script: bn_show_outfile.jnl
+*** Running ferret script: bn_date1900_array.jnl
+*** Running ferret script: bn_spawn_size.jnl
+*** Running ferret script: bn_polygon_log.jnl
+*** Running ferret script: bn694_bug_fixes.jnl
+*** Running ferret script: bn_permute_ascii.jnl
+*** Running ferret script: bn_lon_lat_time_string.jnl
+*** Running ferret script: bn_save_justdim.jnl
 netcdf a {
 dimensions:
 	TIME = 8 ;
@@ -2959,7 +2960,7 @@ variables:
 		TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2997,7 +2998,7 @@ variables:
 		time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V6.96 (PyFerret 1.2) 19-Nov-15" ;
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -3013,21 +3014,78 @@ data:
   2, 3, 4, 5, 6, 7, 8, 9,
   3, 4, 5, 6, 7, 8, 9, 10 ;
 }
-*** Running test: bn_time2d.jnl
-*** Running test: bn_legend_labels.jnl
-*** Running test: bn_DQ.jnl
-*** Running test: bn695_bug_fixes.jnl
-*** Running test: bn_f_tax_fcns.jnl
-*** Running test: bn_fmrc.jnl
-*** Running test: bn_return_defined.jnl
-*** Running test: bn_can_var_noerr.jnl
-*** Running test: bn_annotate.jnl
-*** Running test: bn_auxiliary.jnl
-*** Running test: bn_plot_ribbon_gaploc.jnl
-*** Running test: bn_time_short_axes.jnl
-*** Running test: bn_floatstr_extended.jnl
-*** Running test: bn696_bug_fixes
-*** Running test: bn_bin_regrid
-*** Running test: bn_all_ef.jnl
-*** Running test: bn_startupfile.jnl
-*** Running test: bn_outline_poly.jnl
+*** Running ferret script: bn_time2d.jnl
+*** Running ferret script: bn_legend_labels.jnl
+*** Running ferret script: bn_DQ.jnl
+*** Running ferret script: bn695_bug_fixes.jnl
+*** Running ferret script: bn_f_tax_fcns.jnl
+*** Running ferret script: bn_fmrc.jnl
+*** Running ferret script: bn_return_defined.jnl
+*** Running ferret script: bn_can_var_noerr.jnl
+*** Running ferret script: bn_annotate.jnl
+*** Running ferret script: bn_auxiliary.jnl
+*** Running ferret script: bn_plot_ribbon_gaploc.jnl
+*** Running ferret script: bn_time_short_axes.jnl
+*** Running ferret script: bn_floatstr_extended.jnl
+*** Running ferret script: bn696_bug_fixes.jnl
+*** Running ferret script: bn_bin_regrid.jnl
+*** Running ferret script: bn697_bug_fixes.jnl
+*** Running ferret script: bn_aggregate_t.jnl
+*** Running ferret script: bn_unquoted_args.jnl
+*** Running ferret script: bn_long_lists.jnl
+*** Running ferret script: bn_show_uvar_grid.jnl
+*** Running ferret script: bn_aggregate_f.jnl
+*** Running ferret script: bn_aggregate_tef.jnl
+*** Running ferret script: bn_dataset_qualifier.jnl
+*** Running ferret script: bn_speedtest.jnl
+*** Running ferret script: bn_show_noupcase.jnl
+*** Running ferret script: bn_letd_attributes.jnl
+netcdf a {
+variables:
+	double MYVAR ;
+		MYVAR:missing_value = -1.e+34 ;
+		MYVAR:_FillValue = -1.e+34 ;
+		MYVAR:long_name = "coads myvar" ;
+		MYVAR:units = "feet" ;
+		MYVAR:history = "From coads_climatology" ;
+
+// global attributes:
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
+netcdf a {
+variables:
+	double MYVAR ;
+		MYVAR:missing_value = -1.e+34 ;
+		MYVAR:_FillValue = -1.e+34 ;
+		MYVAR:long_name = "Levitus myvar" ;
+		MYVAR:units = "meters" ;
+		MYVAR:standard_name = "None" ;
+		MYVAR:history = "From levitus_climatology" ;
+
+// global attributes:
+		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:Conventions = "CF-1.6" ;
+}
+*** Running ferret script: bn_list_clim_axes.jnl
+*** Running ferret script: bn_climatology_attr.jnl
+*** Running ferret script: bn_plot_along.jnl
+*** Running ferret script: bn_show_commands.jnl
+*** Running ferret script: bn_plot_decimate.jnl
+*** Running ferret script: bn_auto_tprec.jnl
+*** Running ferret script: bn_coordvars_atts.jnl
+*** Running ferret script: bn_gif.jnl
+*** Running ferret script: bn_ps.jnl
+*** Running ferret script: bn_all_ef.jnl
+*** Running ferret script: bn_startupfile.jnl
+*** Running ferret script: bn_outline_poly.jnl
+*** Running ferret script: bn_contourcolor.jnl
+*** Running python script: testgetstrdata.py
+*** Running python script: testferregion.py
+*** Running python script: testferdset.py
+*** Running python script: testfervar.py
+*** Running python script: testferaggdset.py
+*** Running python script: testferaxis.py
+*** Running python script: testfergrid.py
+*** Running python script: testferpyvar.py
+*** Running python script: testfermethods.py
diff --git a/bench/test_results/startup_tests2.pdf b/bench/test_results/startup_tests2.pdf
index 5bff017..7251524 100644
Binary files a/bench/test_results/startup_tests2.pdf and b/bench/test_results/startup_tests2.pdf differ
diff --git a/bench/test_results/testbackground.gif b/bench/test_results/testbackground.gif
new file mode 100644
index 0000000..c3eb7c1
Binary files /dev/null and b/bench/test_results/testbackground.gif differ
diff --git a/bench/test_results/testbackground.png b/bench/test_results/testbackground.png
new file mode 100644
index 0000000..97e1cd1
Binary files /dev/null and b/bench/test_results/testbackground.png differ
diff --git a/bench/test_results/testfermethods_contour.pdf b/bench/test_results/testfermethods_contour.pdf
new file mode 100644
index 0000000..dc610dd
Binary files /dev/null and b/bench/test_results/testfermethods_contour.pdf differ
diff --git a/bench/test_results/testfermethods_fill.pdf b/bench/test_results/testfermethods_fill.pdf
new file mode 100644
index 0000000..a23cc4c
Binary files /dev/null and b/bench/test_results/testfermethods_fill.pdf differ
diff --git a/bench/test_results/testfermethods_lineplot.pdf b/bench/test_results/testfermethods_lineplot.pdf
new file mode 100644
index 0000000..5c6a21e
Binary files /dev/null and b/bench/test_results/testfermethods_lineplot.pdf differ
diff --git a/bench/test_results/testfermethods_pointplot.pdf b/bench/test_results/testfermethods_pointplot.pdf
new file mode 100644
index 0000000..240b4c7
Binary files /dev/null and b/bench/test_results/testfermethods_pointplot.pdf differ
diff --git a/bench/test_results/testfermethods_shade.pdf b/bench/test_results/testfermethods_shade.pdf
new file mode 100644
index 0000000..69394fa
Binary files /dev/null and b/bench/test_results/testfermethods_shade.pdf differ
diff --git a/bench/test_results/testferpyvar.pdf b/bench/test_results/testferpyvar.pdf
new file mode 100644
index 0000000..82d24a7
Binary files /dev/null and b/bench/test_results/testferpyvar.pdf differ
diff --git a/bench/test_results/timetics2.pdf b/bench/test_results/timetics2.pdf
index 53b6621..37f5902 100644
Binary files a/bench/test_results/timetics2.pdf and b/bench/test_results/timetics2.pdf differ
diff --git a/bench/test_results/vec_curv.pdf b/bench/test_results/vec_curv.pdf
index f63cf4b..7edcdc5 100644
Binary files a/bench/test_results/vec_curv.pdf and b/bench/test_results/vec_curv.pdf differ
diff --git a/bench/test_results/vec_curv2.pdf b/bench/test_results/vec_curv2.pdf
index d121ebd..e68c087 100644
Binary files a/bench/test_results/vec_curv2.pdf and b/bench/test_results/vec_curv2.pdf differ
diff --git a/bench/testferaggdset.py b/bench/testferaggdset.py
new file mode 100644
index 0000000..07ba108
--- /dev/null
+++ b/bench/testferaggdset.py
@@ -0,0 +1,38 @@
+# To be run in python after importing and starting pyferret
+# such as from running "pyferret -python"
+
+import sys ; sys.ps1 = '' ; sys.ps2 = ''
+print
+
+print ">>> dsetnames = ['./ens1.nc', './ens2.nc', './ens3.nc', './ens4.nc']"
+dsetnames = ['./ens1.nc', './ens2.nc', './ens3.nc', './ens4.nc']
+print ">>> fourfiles = pyferret.FerAggDSet(name='fourfiles', dsets=dsetnames, along='E')"
+fourfiles = pyferret.FerAggDSet(name='fourfiles', dsets=dsetnames, along='E')
+print ">>> fourfiles.show()"
+fourfiles.show()
+print ">>> print str(fourfiles)"
+print str(fourfiles)
+print ">>> dir(fourfiles)"
+dir(fourfiles)
+print ">>> fourfiles.getdsetnames()"
+fourfiles.getdsetnames()
+print ">>> fourfiles.getdsets()"
+fourfiles.getdsets()
+
+print ">>> fourfiles.SST.showgrid()"
+fourfiles.SST.showgrid()
+
+print ">>> fourfiles.close()"
+fourfiles.close()
+print ">>> print str(fourfiles)"
+print str(fourfiles)
+print ">>> dir(fourfiles)"
+dir(fourfiles)
+print ">>> fourfiles.getdsetnames()"
+fourfiles.getdsetnames()
+print ">>> fourfiles.getdsets()"
+fourfiles.getdsets()
+
+print ">>> del fourfiles"
+del fourfiles
+
diff --git a/bench/testferaxis.py b/bench/testferaxis.py
new file mode 100644
index 0000000..4d47377
--- /dev/null
+++ b/bench/testferaxis.py
@@ -0,0 +1,152 @@
+# To be run in python after importing and starting pyferret
+# such as from running "pyferret -python"
+
+import numpy
+import sys ; sys.ps1 = '' ; sys.ps2 = ''
+print
+
+print ">>> normax = pyferret.FerAxis()"
+normax = pyferret.FerAxis()
+print ">>> print repr(normax)"
+print repr(normax)
+print ">>> dir(normax)"
+dir(normax)
+
+print ">>> coads = pyferret.FerDSet('coads_climatology')"
+coads = pyferret.FerDSet('coads_climatology')
+print ">>> coads.sst.load()"
+coads.sst.load()
+print ">>> sstaxes = coads.sst.grid.axes"
+sstaxes = coads.sst.grid.axes
+print ">>> print repr(sstaxes)"
+print repr(sstaxes)
+print ">>> normax == sstaxes[0]"
+normax == sstaxes[0]
+print ">>> normax != sstaxes[1]"
+normax != sstaxes[1]
+print ">>> normax == sstaxes[2]"
+normax == sstaxes[2]
+print ">>> normax != sstaxes[3]"
+normax != sstaxes[3]
+
+print ">>> print repr(sstaxes[0].axtype)"
+print repr(sstaxes[0].axtype)
+print ">>> print repr(sstaxes[0].coords)"
+print repr(sstaxes[0].coords)
+print ">>> print repr(sstaxes[0].unit)"
+print repr(sstaxes[0].unit)
+print ">>> print repr(sstaxes[0].name)"
+print repr(sstaxes[0].name)
+
+print ">>> print repr(sstaxes[1].axtype)"
+print repr(sstaxes[1].axtype)
+print ">>> print repr(sstaxes[1].coords)"
+print repr(sstaxes[1].coords)
+print ">>> print repr(sstaxes[1].unit)"
+print repr(sstaxes[1].unit)
+print ">>> print repr(sstaxes[1].name)"
+print repr(sstaxes[1].name)
+
+print ">>> print repr(sstaxes[2].axtype)"
+print repr(sstaxes[2].axtype)
+print ">>> print repr(sstaxes[2].coords)"
+print repr(sstaxes[2].coords)
+print ">>> print repr(sstaxes[2].unit)"
+print repr(sstaxes[2].unit)
+print ">>> print repr(sstaxes[2].name)"
+print repr(sstaxes[2].name)
+
+print ">>> print repr(sstaxes[3].axtype)"
+print repr(sstaxes[3].axtype)
+print ">>> print repr(sstaxes[3].coords)"
+print repr(sstaxes[3].coords)
+print ">>> print repr(sstaxes[3].unit)"
+print repr(sstaxes[3].unit)
+print ">>> print repr(sstaxes[3].name)"
+print repr(sstaxes[3].name)
+
+print ">>> dupaxis = sstaxes[0].copy()"
+dupaxis = sstaxes[0].copy()
+print ">>> dupaxis is sstaxes[0]"
+dupaxis is sstaxes[0]
+print ">>> dupaxis == sstaxes[0]"
+dupaxis == sstaxes[0]
+print ">>> dupaxis.coords is sstaxes[0].coords"
+dupaxis.coords is sstaxes[0].coords
+print ">>> numpy.allclose(dupaxis.coords, sstaxes[0].coords)"
+numpy.allclose(dupaxis.coords, sstaxes[0].coords)
+
+print ">>> dupaxis = sstaxes[3].copy()"
+dupaxis = sstaxes[3].copy()
+print ">>> dupaxis is sstaxes[3]"
+dupaxis is sstaxes[3]
+print ">>> dupaxis == sstaxes[3]"
+dupaxis == sstaxes[3]
+print ">>> dupaxis.coords is sstaxes[3].coords"
+dupaxis.coords is sstaxes[3].coords
+print ">>> numpy.allclose(dupaxis.coords, sstaxes[3].coords)"
+numpy.allclose(dupaxis.coords, sstaxes[3].coords)
+
+print ">>> print repr(pyferret.FerAxis._parsegeoval(None))"
+print repr(pyferret.FerAxis._parsegeoval(None))
+print ">>> print repr(pyferret.FerAxis._parsegeoval(0))"
+print repr(pyferret.FerAxis._parsegeoval(0))
+print ">>> print repr(pyferret.FerAxis._parsegeoval(0.0))"
+print repr(pyferret.FerAxis._parsegeoval(0.0))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('0'))"
+print repr(pyferret.FerAxis._parsegeoval('0'))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('5E'))"
+print repr(pyferret.FerAxis._parsegeoval('5E'))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('6W'))"
+print repr(pyferret.FerAxis._parsegeoval('6W'))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('7N'))"
+print repr(pyferret.FerAxis._parsegeoval('7N'))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('8S'))"
+print repr(pyferret.FerAxis._parsegeoval('8S'))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('9m'))"
+print repr(pyferret.FerAxis._parsegeoval('9m'))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('03-APR-2005 06:07:08'))"
+print repr(pyferret.FerAxis._parsegeoval('03-APR-2005 06:07:08'))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('03-APR-2005 06:07'))"
+print repr(pyferret.FerAxis._parsegeoval('03-APR-2005 06:07'))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('03-APR-2005'))"
+print repr(pyferret.FerAxis._parsegeoval('03-APR-2005'))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05T06:07:08'))"
+print repr(pyferret.FerAxis._parsegeoval('2003-04-05T06:07:08'))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05T06:07'))"
+print repr(pyferret.FerAxis._parsegeoval('2003-04-05T06:07'))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05 06:07:08'))"
+print repr(pyferret.FerAxis._parsegeoval('2003-04-05 06:07:08'))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05 06:07'))"
+print repr(pyferret.FerAxis._parsegeoval('2003-04-05 06:07'))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05'))"
+print repr(pyferret.FerAxis._parsegeoval('2003-04-05'))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('4y', istimestep=True))"
+print repr(pyferret.FerAxis._parsegeoval('4y', istimestep=True))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('6d', istimestep=True))"
+print repr(pyferret.FerAxis._parsegeoval('6d', istimestep=True))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('7h', istimestep=True))"
+print repr(pyferret.FerAxis._parsegeoval('7h', istimestep=True))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('8m', istimestep=True))"
+print repr(pyferret.FerAxis._parsegeoval('8m', istimestep=True))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('9s', istimestep=True))"
+print repr(pyferret.FerAxis._parsegeoval('9s', istimestep=True))
+print ">>> print repr(pyferret.FerAxis._parsegeoval('1', istimestep=True))"
+print repr(pyferret.FerAxis._parsegeoval('1', istimestep=True))
+
+
+print ">>> print repr(pyferret.FerAxis._parsegeoslice( slice(5,23,2) ))"
+print repr(pyferret.FerAxis._parsegeoslice( slice(5,23,2) ))
+print ">>> print repr(pyferret.FerAxis._parsegeoslice( slice(-5.0,15.0,4.0) ))"
+print repr(pyferret.FerAxis._parsegeoslice( slice(-5.0,15.0,4.0) ))
+print ">>> print repr(pyferret.FerAxis._parsegeoslice( slice('-6','11','5') ))"
+print repr(pyferret.FerAxis._parsegeoslice( slice('-6','11','5') ))
+print ">>> print repr(pyferret.FerAxis._parsegeoslice( slice('25W','35E',5) ))"
+print repr(pyferret.FerAxis._parsegeoslice( slice('25W','35E',5) ))
+print ">>> print repr(pyferret.FerAxis._parsegeoslice( slice('15S','30N',3) ))"
+print repr(pyferret.FerAxis._parsegeoslice( slice('15S','30N',3) ))
+print ">>> print repr(pyferret.FerAxis._parsegeoslice( slice('-900m','-100m','50m') ))"
+print repr(pyferret.FerAxis._parsegeoslice( slice('-900m','-100m','50m') ))
+print ">>> print repr(pyferret.FerAxis._parsegeoslice( slice('03-APR-2005 11:30','23-JUL-2006 23:30','12h') ))"
+print repr(pyferret.FerAxis._parsegeoslice( slice('03-APR-2005 11:30','23-JUL-2006 23:30','12h') ))
+
diff --git a/bench/testferdset.py b/bench/testferdset.py
new file mode 100644
index 0000000..69856b0
--- /dev/null
+++ b/bench/testferdset.py
@@ -0,0 +1,74 @@
+# To be run in python after importing and starting pyferret
+# such as from running "pyferret -python"
+
+import sys ; sys.ps1 = '' ; sys.ps2 = ''
+print
+
+print ">>> coads = pyferret.FerDSet('coads_climatology.cdf')"
+coads = pyferret.FerDSet('coads_climatology.cdf')
+print ">>> str(coads)"
+str(coads)
+print ">>> dir(coads)"
+dir(coads)
+print ">>> coads.show()"
+coads.show()
+
+print ">>> coads_uw  = pyferret.FerDSet('coads_uw.nc')"
+coads_uw  = pyferret.FerDSet('coads_uw.nc')
+print ">>> str(coads_uw)"
+str(coads_uw)
+print ">>> dir(coads_uw)"
+dir(coads_uw)
+print ">>> coads_uw.show(brief=False)"
+coads_uw.show(brief=False)
+
+print ">>> try:"
+print "...     pyferret.FerDSet(None)"
+print "...     print 'No error found'"
+print "... except ValueError as ex:"
+print "...     print 'ValueError caught with message ' + str(ex)"
+try:
+    pyferret.FerDSet(None)
+    print 'No error found'
+except ValueError as ex:
+    print 'ValueError caught with message: ' + str(ex)
+
+print ">>> pyferret.anondset.sstcopy = coads.sst"
+pyferret.anondset.sstcopy = coads.sst
+print ">>> pyferret.anondset.show()"
+pyferret.anondset.show()
+
+print ">>> pyferret.showdata(brief=False)"
+pyferret.showdata(brief=False)
+print ">>> coads_uw.close()"
+coads_uw.close()
+print ">>> pyferret.showdata()"
+pyferret.showdata()
+print ">>> del coads_uw"
+del coads_uw
+print ">>> pyferret.showdata()"
+pyferret.showdata()
+print ">>> coads.close()"
+coads.close()
+print ">>> pyferret.showdata()"
+pyferret.showdata()
+print ">>> coads.close()"
+coads.close()
+print ">>> pyferret.showdata()"
+pyferret.showdata()
+print ">>> del coads"
+del coads
+print ">>> pyferret.showdata()"
+pyferret.showdata()
+
+print ">>> dir(pyferret.anondset)"
+dir(pyferret.anondset)
+print ">>> pyferret.anondset.show()"
+pyferret.anondset.show()
+print ">>> pyferret.anondset.close()"
+pyferret.anondset.close()
+print ">>> dir(pyferret.anondset)"
+dir(pyferret.anondset)
+print ">>> pyferret.anondset.show()"
+pyferret.anondset.show()
+
diff --git a/bench/testfergrid.py b/bench/testfergrid.py
new file mode 100644
index 0000000..7627d34
--- /dev/null
+++ b/bench/testfergrid.py
@@ -0,0 +1,79 @@
+# To be run in python after importing and starting pyferret
+# such as from running "pyferret -python"
+
+import numpy
+import sys ; sys.ps1 = '' ; sys.ps2 = ''
+print
+
+print ">>> nogrid = pyferret.FerGrid()"
+nogrid = pyferret.FerGrid()
+print ">>> print repr(nogrid)"
+print repr(nogrid)
+print ">>> dir(nogrid)"
+dir(nogrid)
+
+print ">>> coads = pyferret.FerDSet('coads_climatology')"
+coads = pyferret.FerDSet('coads_climatology')
+print ">>> coads.sst.load()"
+coads.sst.load()
+print ">>> coadsgrid = coads.sst.grid"
+coadsgrid = coads.sst.grid
+print ">>> print repr(coadsgrid)"
+print repr(coadsgrid)
+print ">>> nogrid == coadsgrid"
+nogrid == coadsgrid
+print ">>> nogrid != coadsgrid"
+nogrid != coadsgrid
+
+print ">>> dupgrid = coadsgrid.copy()"
+dupgrid = coadsgrid.copy()
+print ">>> dupgrid is coadsgrid"
+dupgrid is coadsgrid
+print ">>> dupgrid == coadsgrid"
+dupgrid == coadsgrid
+print ">>> dupgrid.axes[0] is coadsgrid.axes[0]"
+dupgrid.axes[0] is coadsgrid.axes[0]
+print ">>> dupgrid.axes[0] == coadsgrid.axes[0]"
+dupgrid.axes[0] == coadsgrid.axes[0]
+print ">>> dupgrid.axes[1] is coadsgrid.axes[1]"
+dupgrid.axes[1] is coadsgrid.axes[1]
+print ">>> dupgrid.axes[1] == coadsgrid.axes[1]"
+dupgrid.axes[1] == coadsgrid.axes[1]
+print ">>> dupgrid.axes[2] is coadsgrid.axes[2]"
+dupgrid.axes[2] is coadsgrid.axes[2]
+print ">>> dupgrid.axes[2] == coadsgrid.axes[2]"
+dupgrid.axes[2] == coadsgrid.axes[2]
+print ">>> dupgrid.axes[3] is coadsgrid.axes[3]"
+dupgrid.axes[0] is coadsgrid.axes[0]
+print ">>> dupgrid.axes[3] == coadsgrid.axes[3]"
+dupgrid.axes[3] == coadsgrid.axes[3]
+print ">>> dupgrid.axes[4] is coadsgrid.axes[4]"
+dupgrid.axes[4] is coadsgrid.axes[4]
+print ">>> dupgrid.axes[4] == coadsgrid.axes[4]"
+dupgrid.axes[4] == coadsgrid.axes[4]
+print ">>> dupgrid.axes[5] is coadsgrid.axes[5]"
+dupgrid.axes[0] is coadsgrid.axes[0]
+print ">>> dupgrid.axes[5] == coadsgrid.axes[5]"
+dupgrid.axes[5] == coadsgrid.axes[5]
+
+print ">>> freqax = pyferret.FerAxis(axtype=pyferret.AXISTYPE_CUSTOM,coords=numpy.arange(1,13,0.5),unit='freqnum',name='frequencies')"
+freqax = pyferret.FerAxis(axtype=pyferret.AXISTYPE_CUSTOM,coords=numpy.arange(1,13,0.5),unit='freqnum',name='frequencies')
+print ">>> print repr(freqax)"
+print repr(freqax)
+print ">>> freqgrid = coadsgrid.copy(ax=pyferret.T_AXIS,newax=None).copy(name='freqgrid',ax=pyferret.E_AXIS,newax=freqax)"
+freqgrid = coadsgrid.copy(ax=pyferret.T_AXIS,newax=None).copy(name='freqgrid',ax=pyferret.E_AXIS,newax=freqax)
+print ">>> print repr(freqgrid)"
+print repr(freqgrid)
+print ">>> freqgrid.axes[0] == coadsgrid.axes[0]"
+freqgrid.axes[0] == coadsgrid.axes[0]
+print ">>> freqgrid.axes[1] == coadsgrid.axes[1]"
+freqgrid.axes[1] == coadsgrid.axes[1]
+print ">>> freqgrid.axes[2] == coadsgrid.axes[2]"
+freqgrid.axes[2] == coadsgrid.axes[2]
+print ">>> freqgrid.axes[3] == coadsgrid.axes[3]"
+freqgrid.axes[3] == coadsgrid.axes[3]
+print ">>> freqgrid.axes[4] == coadsgrid.axes[4]"
+freqgrid.axes[4] == coadsgrid.axes[4]
+print ">>> freqgrid.axes[5] == coadsgrid.axes[5]"
+freqgrid.axes[5] == coadsgrid.axes[5]
+
diff --git a/bench/testfermethods.py b/bench/testfermethods.py
new file mode 100644
index 0000000..ef438cd
--- /dev/null
+++ b/bench/testfermethods.py
@@ -0,0 +1,47 @@
+# To be run in python after importing and starting pyferret
+# such as from running "pyferret -python"
+
+import sys ; sys.ps1 = '' ; sys.ps2 = ''
+print
+
+print ">>> coads_uw  = pyferret.FerDSet('coads_uw.nc')"
+coads_uw  = pyferret.FerDSet('coads_uw.nc')
+print ">>> coads_uw.mywnd = (coads_uw.uwnd**2 + coads_uw.vwnd**2)**0.5"
+coads_uw.mywnd = (coads_uw.uwnd**2 + coads_uw.vwnd**2)**0.5
+print ">>> pyferret.showdata(brief=False)"
+pyferret.showdata(brief=False)
+
+print ">>> pyferret.setwindow(1, axisasp=0.75, color=(100,90,90), thick=0.75, logo=False)"
+pyferret.setwindow(1, axisasp=0.75, color=(100,90,90), thick=0.75, logo=False)
+print ">>> pyferret.settextstyle(font='arial', color='blue', bold=True, italic=True)"
+pyferret.settextstyle(font='arial', color='blue', bold=True, italic=True)
+print ">>> febreg = pyferret.FerRegion(T='15-FEB')"
+febreg = pyferret.FerRegion(T='15-FEB')
+print ">>> pyferret.contourplot(coads_uw.mywnd, region=febreg)"
+pyferret.contourplot(coads_uw.mywnd, region=febreg)
+print ">>> pyferret.saveplot('testfermethods_contour.pdf')"
+pyferret.saveplot('testfermethods_contour.pdf')
+print ">>> pyferret.fillplot(coads_uw.mywnd, line=True, region=febreg)"
+pyferret.fillplot(coads_uw.mywnd, line=True, region=febreg)
+print ">>> pyferret.saveplot('testfermethods_fill.pdf')"
+pyferret.saveplot('testfermethods_fill.pdf')
+print ">>> pyferret.shadeplot(coads_uw.mywnd, region=febreg)"
+pyferret.shadeplot(coads_uw.mywnd, region=febreg)
+print ">>> pyferret.saveplot('testfermethods_shade.pdf')"
+pyferret.saveplot('testfermethods_shade.pdf')
+print ">>> febeqreg = pyferret.FerRegion(Y=0,T='15-FEB')"
+febeqreg = pyferret.FerRegion(Y=0,T='15-FEB')
+print ">>> pyferret.pointplot(coads_uw.uwnd, vs=coads_uw.vwnd, color=coads_uw.mywnd, sym=18, symsize=0.1, line=True, region=febeqreg)"
+pyferret.pointplot(coads_uw.uwnd, vs=coads_uw.vwnd, color=coads_uw.mywnd, sym=18, symsize=0.1, line=True, region=febeqreg)
+print ">>> pyferret.saveplot('testfermethods_pointplot.pdf')"
+pyferret.saveplot('testfermethods_pointplot.pdf')
+print ">>> pyferret.lineplot(coads_uw.uwnd, vs=coads_uw.vwnd, color=coads_uw.mywnd, region=febeqreg)"
+pyferret.lineplot(coads_uw.uwnd, vs=coads_uw.vwnd, color=coads_uw.mywnd, region=febeqreg)
+print ">>> pyferret.saveplot('testfermethods_lineplot.pdf')"
+pyferret.saveplot('testfermethods_lineplot.pdf')
+
+print ">>> del coads_uw"
+del coads_uw
+print ">>> pyferret.showdata()"
+pyferret.showdata()
+
diff --git a/bench/testferpyvar.py b/bench/testferpyvar.py
new file mode 100644
index 0000000..dcde1a0
--- /dev/null
+++ b/bench/testferpyvar.py
@@ -0,0 +1,46 @@
+# To be run in python after importing and starting pyferret
+# such as from running "pyferret -python"
+
+import sys ; sys.ps1 = '' ; sys.ps2 = ''
+print
+
+print ">>> coads = pyferret.FerDSet('coads_climatology.cdf')"
+coads = pyferret.FerDSet('coads_climatology.cdf')
+print ">>> pyferret.showdata(brief=False)"
+pyferret.showdata(brief=False)
+
+print ">>> coads.sst.load()"
+coads.sst.load()
+print ">>> datacopy = coads.sst.data"
+datacopy = coads.sst.data
+print ">>> datacopy[87:93,43:47,0,:,0,0] = -5.0"
+datacopy[87:93,43:47,0,:,0,0] = -5.0
+print ">>> coads.sstcopy = pyferret.FerPyVar(grid=coads.sst.grid, data=datacopy, missval=coads.sst.missval, unit=coads.sst.unit, title='modified copy of SST')"
+coads.sstcopy = pyferret.FerPyVar(grid=coads.sst.grid, data=datacopy, missval=coads.sst.missval, unit=coads.sst.unit, title='modified copy of SST')
+print ">>> pyferret.showdata(brief=False)"
+pyferret.showdata(brief=False)
+print ">>> pyferret.setwindow(1, axisasp=0.5, logo=False)"
+pyferret.setwindow(1,axisasp=0.5,logo=False)
+print ">>> pyferret.setdefaulttext(font='Arial')"
+pyferret.settextstyle(font='Arial')
+print ">>> pyferret.shadeplot(coads.sstcopy['40S':'40N','100E':'100W','16-FEB'])"
+pyferret.shadeplot(coads.sstcopy['40S':'40N','100E':'100W','16-FEB'])
+print ">>> pyferret.saveplot('testferpyvar.pdf')"
+pyferret.saveplot('testferpyvar.pdf')
+
+# print ">>> pyferret.run('let sstdiff = sst - sstcopy')"
+# pyferret.run('let sstdiff = sst - sstcopy')
+# print ">>> pyferret.run('vtree sstdiff')"
+# pyferret.run('vtree sstdiff')
+
+print ">>> del coads.sstcopy"
+del coads.sstcopy
+print ">>> pyferret.showdata()"
+pyferret.showdata()
+print ">>> coads.close()"
+coads.close()
+print ">>> del coads"
+del coads
+print ">>> pyferret.showdata()"
+pyferret.showdata()
+
diff --git a/bench/testferregion.py b/bench/testferregion.py
new file mode 100644
index 0000000..5566c63
--- /dev/null
+++ b/bench/testferregion.py
@@ -0,0 +1,39 @@
+# To be run in python after importing and starting pyferret
+# such as from running "pyferret -python"
+
+import numpy
+import sys ; sys.ps1 = '' ; sys.ps2 = ''
+print
+
+print ">>> emptyregion = pyferret.FerRegion()"
+emptyregion = pyferret.FerRegion()
+print ">>> print repr(emptyregion)"
+print repr(emptyregion)
+print ">>> emptyregion._ferretqualifierstr()"
+emptyregion._ferretqualifierstr()
+
+print ">>> coordregion = pyferret.FerRegion(X=slice(-70,20),Y=slice('20N','60N'),Z=-100,T='15-DEC-2015',E=0,F='1')"
+coordregion = pyferret.FerRegion(X=slice(-70,20),Y=slice('20N','60N'),Z=-100,T='15-DEC-2015',E=0,F='1')
+print ">>> print repr(coordregion)"
+print repr(coordregion)
+print ">>> coordregion._ferretqualifierstr()"
+coordregion._ferretqualifierstr()
+
+print ">>> indexregion = pyferret.FerRegion(I=slice(0,20),J=slice('1','60'),K=10,L='5',M=0,N='1')"
+indexregion = pyferret.FerRegion(I=slice(0,20),J=slice('1','60'),K=10,L='5',M=0,N='1')
+print ">>> print repr(indexregion)"
+print repr(indexregion)
+print ">>> indexregion._ferretqualifierstr()"
+indexregion._ferretqualifierstr()
+
+print ">>> try:"
+print "...     badregion = pyferret.FerRegion(X='70W:20E',I=slice(0,20))"
+print "...     print 'Error not caught'"
+print "... except ValueError as ex:"
+print "...     print 'Error caught: %s' % str(ex)"
+try:
+    badregion = pyferret.FerRegion(X='70W:20E',I=slice(0,20))
+    print 'Error not caught'
+except ValueError as ex:
+    print 'Error caught: %s' % str(ex)
+
diff --git a/bench/testfervar.py b/bench/testfervar.py
new file mode 100644
index 0000000..67e48b5
--- /dev/null
+++ b/bench/testfervar.py
@@ -0,0 +1,129 @@
+# To be run in python after importing and starting pyferret
+# such as from running "pyferret -python"
+
+import sys ; sys.ps1 = '' ; sys.ps2 = ''
+print
+
+print ">>> coads = pyferret.FerDSet('coads_climatology.cdf')"
+coads = pyferret.FerDSet('coads_climatology.cdf')
+print ">>> str(coads.sst)"
+print str(coads.sst)
+print ">>> coads.sst.showgrid()"
+print coads.sst.showgrid()
+print ">>> del coads.sst"
+del coads.sst
+
+print ">>> coads_uw  = pyferret.FerDSet('coads_uw.nc')"
+coads_uw  = pyferret.FerDSet('coads_uw.nc')
+print ">>> coads_uw.uwnd.showgrid()"
+coads_uw.uwnd.showgrid()
+
+print ">>> coads_uw.mywnd = (coads_uw.uwnd**2 + coads_uw.vwnd**2)**0.5"
+coads_uw.mywnd = (coads_uw.uwnd**2 + coads_uw.vwnd**2)**0.5
+print ">>> dir(coads_uw)"
+dir(coads_uw)
+print ">>> print repr(coads_uw.mywnd)"
+print repr(coads_uw.mywnd)
+print ">>> coads_uw.mywnd.showgrid()"
+coads_uw.mywnd.showgrid()
+
+print ">>> print repr(coads_uw.mywnd.data)"
+print repr(coads_uw.mywnd.data)
+print ">>> print repr(coads_uw.mywnd.grid)"
+print repr(coads_uw.mywnd.grid)
+print ">>> coads_uw.mywnd.load()"
+coads_uw.mywnd.load()
+print ">>> coads_uw.mywnd.data.shape"
+coads_uw.mywnd.data.shape
+print ">>> print repr(coads_uw.mywnd.data[2:5,2:5,0,0,0,0])"
+print repr(coads_uw.mywnd.data[2:5,2:5,0,0,0,0])
+print ">>> print repr(coads_uw.mywnd.grid)"
+print repr(coads_uw.mywnd.grid)
+print ">>> coads_uw.mywnd.unload()"
+coads_uw.mywnd.unload()
+
+print ">>> coads.sstregrid = coads.sst.regrid(coads_uw.mywnd, pyferret.REGRID_AVERAGE)"
+coads.sstregrid = coads.sst.regrid(coads_uw.mywnd, pyferret.REGRID_AVERAGE)
+print ">>> pyferret.showdata()"
+pyferret.showdata()
+print ">>> coads.sstregrid.showgrid()"
+coads.sstregrid.showgrid()
+print ">>> coads.sstregrid.load()"
+coads.sstregrid.load()
+print ">>> coads.sstregrid.data.shape"
+coads.sstregrid.data.shape
+print ">>> print repr(coads.sstregrid.data[2:5,2:5,0,0,0,0])"
+print repr(coads.sstregrid.data[2:5,2:5,0,0,0,0])
+print "pyferret.run('LIST /X=55W:51W /Y=5N:9N /L=1 SST[d=coads_climatology]')"
+pyferret.run('LIST /X=55W:51W /Y=5N:9N /L=1 SST[d=coads_climatology]')
+
+print ">>> coads_uw.show()"
+coads_uw.show()
+print ">>> del coads_uw.mywnd"
+del coads_uw.mywnd
+print ">>> coads_uw.show()"
+coads_uw.show()
+
+print ">>> pyferret.anondset.sstcopy = coads.sst"
+pyferret.anondset.sstcopy = coads.sst
+print ">>> pyferret.anondset.show()"
+pyferret.anondset.show()
+print ">>> print repr(pyferret.anondset.sstcopy)"
+print repr(pyferret.anondset.sstcopy)
+print ">>> print repr(pyferret.anondset.sstcopy._isfilevar)"
+print repr(pyferret.anondset.sstcopy._isfilevar)
+print ">>> print repr(pyferret.anondset.sstcopy._requires)"
+print repr(pyferret.anondset.sstcopy._requires)
+print ">>> print repr(coads.sst)"
+print repr(coads.sst)
+print ">>> print repr(coads.sst._isfilevar)"
+print repr(coads.sst._isfilevar)
+print ">>> print repr(coads.sst._requires)"
+print repr(coads.sst._requires)
+print ">>> pyferret.anondset.close()"
+pyferret.anondset.close()
+print ">>> pyferret.anondset.show()"
+pyferret.anondset.show()
+
+print ">>> coads.sst2 = coads.sst['15-FEB']"
+coads.sst2 = coads.sst['15-FEB']
+print ">>> coads.sst2.showgrid()"
+coads.sst2.showgrid()
+print ">>> coads.sst2.load()"
+coads.sst2.load()
+print ">>> coads.sst2.data.shape"
+coads.sst2.data.shape
+print ">>> print repr(coads.sst2.data[2:5,23:26,0,0,0,0])"
+print repr(coads.sst2.data[2:5,23:26,0,0,0,0])
+print "pyferret.run('LIST /X=25E:29E /Y=43S:39S /L=2 SST[d=coads_climatology]')"
+pyferret.run('LIST /X=25E:29E /Y=43S:39S /L=2 SST[d=coads_climatology]')
+
+print ">>> coads.sst2 = coads.sst['43S':'39S','25E':'29E',:,1]"
+coads.sst2 = coads.sst['43S':'39S','25E':'29E',:,1]
+print ">>> print repr(coads.sst2)"
+print repr(coads.sst2)
+print ">>> coads.show(brief=False)"
+coads.show(brief=False)
+print ">>> coads.sst2.load()"
+coads.sst2.load()
+print ">>> coads.sst2.data.shape"
+coads.sst2.data.shape
+print ">>> print repr(coads.sst2.data[:,:,0,0,0,0])"
+print repr(coads.sst2.data[:,:,0,0,0,0])
+
+
+print ">>> pyferret.showdata(brief=False)"
+pyferret.showdata(brief=False)
+print ">>> coads_uw.close()"
+coads_uw.close()
+print ">>> del coads_uw"
+del coads_uw
+print ">>> pyferret.showdata()"
+pyferret.showdata()
+print ">>> coads.close()"
+coads.close()
+print ">>> del coads"
+del coads
+print ">>> pyferret.showdata()"
+pyferret.showdata()
+
diff --git a/bench/testgetstrdata.py b/bench/testgetstrdata.py
new file mode 100644
index 0000000..fbdcd74
--- /dev/null
+++ b/bench/testgetstrdata.py
@@ -0,0 +1,29 @@
+# To be run in python after importing and starting pyferret
+# such as from running "pyferret -python"
+
+import sys ; sys.ps1 = '' ; sys.ps2 = ''
+print
+
+print '>>> pyferret.run(\'let strarr = {"one", "two", "three", "four", "five", "six"}\')'
+pyferret.run('let strarr = {"one", "two", "three", "four", "five", "six"}')
+print ">>> pyferret.run('list strarr')"
+pyferret.run('list strarr')
+print ">>> strdict = pyferret.getstrdata('strarr')"
+strdict = pyferret.getstrdata('strarr')
+print ">>> print pyferret.metastr(strdict)"
+print pyferret.metastr(strdict)
+print ">>> strdata = strdict['data']"
+strdata = strdict['data']
+print ">>> repr(strdata.squeeze())"
+repr(strdata.squeeze())
+print ">>> del strdata"
+del strdata
+print ">>> del strdict"
+del strdict
+print ">>> strdict = pyferret.getstrdata('strarr')"
+strdict = pyferret.getstrdata('strarr')
+print ">>> repr(strdict)"
+repr(strdict)
+print ">>> del strdict"
+del strdict
+
diff --git a/bin/Finstall b/bin/Finstall
index 5b16ec4..5b5f808 100755
--- a/bin/Finstall
+++ b/bin/Finstall
@@ -1,12 +1,9 @@
 #! /bin/sh
 ## NOAA PMEL TMAP
 ## Finstall
-## Does two things:
-## Option 1) extracts the contents of fer_executables.tar.gz into $FER_DIR
-##           after renaming any existing files that would have been overwritten
-## Option 2) modifies ferret_paths_template and pyferret_template files to 
-##           specify locations of ferret software and demo data sets to create 
-##           the ferret_paths and pyferret files.
+## modifies ferret_paths_template and pyferret_template files to 
+## specify locations of ferret software and demo data sets to create 
+## the ferret_paths and pyferret files.  Create the pyferret script.
 ## All changes are recorded, with a timestamp, in the log file
 ## $FER_DIR/bin/Finstall.log
 
@@ -367,155 +364,40 @@ python_subdir=\"${python_subdirectory}\"" \
 }
 
 
-### Assign $ferexec_dir, the directory containing the fer_executables.tar.gz file
-get_ferexec_dir() {
-    until [ 0 = 1 ]; do
-        echo " "
-        echo " Enter the name of the directory containing the "
-        echo " 'fer_executables.tar.gz file. "
-        read -p " 'fer_executables.tar.gz' location --> " ferexec_dir
-        if [ ! -d "${ferexec_dir}" ]; then
-            echo " '${ferexec_dir}' is not a directory"
-        else
-#           resolve relative pathnames
-            ferexec_dir=`cd "${ferexec_dir}" ; pwd`
-            if [ ! -f "${ferexec_dir}/fer_executables.tar.gz" ]; then
-                echo " 'fer_executables.tar.gz' is not in ${ferexec_dir}"
-            else
-                return 0
-            fi
-        fi
-    done
-#   should not get here - return error
-    return 1
-}
-
-
-### Install the contents of $ferexec_dir/fer_executables.tar.gz into $fer_dir
-install_execs() {
-    write_log_message "Installing/updating from ${ferexec_dir}/fer_executables.tar.gz"
-
-#   Get the list of files in the tar file
-    exetar_files=`tar tzf ${ferexec_dir}/fer_executables.tar.gz`
-    if [ -z "${exetar_files}" ]; then
-#        tar should have already printed a more appropriate error message
-         write_log_message "No files found in ${ferexec_dir}/fer_executables.tar.gz"
-         echo " "
-         echo " No files found in ${ferexec_dir}/fer_executables.tar.gz "
-         return 1
-    fi
-
-#   Make sure the tar file is the right format
-    lib_files=`tar tzf ${ferexec_dir}/fer_executables.tar.gz lib`
-    if [ -z "${lib_files}" ]; then
-         write_log_message "Aborting - old style fer_executables.tar.gz"
-         echo " "
-         echo " Aborting - old style fer_executables.tar.gz "
-         return 1
-    fi
-
-#   Rename old files if they exist
-    echo " Renaming (by appending '.old') any existing files in ${fer_dir} "
-    echo "     that will be replaced by files in ${ferexec_dir}/fer_executables.tar.gz "
-    for exefile in ${exetar_files} ; do
-        if [ -f "${fer_dir}/${exefile}" ]; then
-            if mv -f "${fer_dir}/${exefile}" "${fer_dir}/${exefile}.old" ; then
-                write_log_message "Renamed existing ${exefile} to ${exefile}.old"
-            else
-                write_log_message "Aborting - unable to rename ${exefile}"
-                echo " "
-                echo " Aborting - unable to rename ${fer_dir}/${exefile} "
-                return 1
-            fi
-        fi
-    done
-
-#   Extract the files into $fer_dir
-    echo " Extracting files from ${ferexec_dir}/fer_executables.tar.gz "
-    echo "                    to ${fer_dir} "
-    if ( cd "${fer_dir}" ; tar xzf "${ferexec_dir}/fer_executables.tar.gz" ) ; then
-        for exefile in ${exetar_files} ; do
-            write_log_message "Extracted ${exefile}"
-        done
-    else
-        return 1
-    fi
-}
-
 
 ### Main script
-### Info message printed only once
 echo " "
-echo " This script can do two things for you to help install Ferret: "
+echo " This script creates the  'ferret_paths.csh' and 'ferret_paths.sh' in a directory "
+echo " you choose using values of FER_DIR (Ferret software directory at your site) and "
+echo " FER_DSETS (Ferret demonstration data at your site).  Furthermore, the link "
+echo " (shortcut) 'ferret_paths' can be created which refers to either 'ferret_paths.csh' "
+echo " or 'ferret_paths.sh'.  Finally, the executable shell script 'pyferret' is created. "
 echo " "
-echo " (1) Install the Ferret executables into FER_DIR/bin from the "
-echo "     fer_executables.tar.gz file."
+echo " Sourcing one of these 'ferret_paths' files ('source ferret_paths.csh' for csh or "
+echo " tcsh, '. ferret_paths.sh' for bash, sh ksh, or dash) will set up a user's "
+echo " environment for running ferret. "
 echo " "
-echo "     You will want to run this option if you are installing "
-echo "     Ferret for the first time or if you are updating Ferret "
-echo "     with new executables."
-echo " "
-echo " (2) Modify the shell scripts 'ferret_paths_template.csh' and "
-echo "     'ferret_paths_template.sh' to set environment variables "
-echo "     FER_DIR and FER_DSETS to the directories at your site "
-echo "     containing the Ferret software and demonstration data. "
-echo " "
-echo "     The files 'ferret_paths.csh' and 'ferret_paths.sh' are "
-echo "     created in a directory you choose.  Furthermore, the link "
-echo "     (shortcut) 'ferret_paths' can be created which refers to "
-echo "     either 'ferret_paths.csh' or 'ferret_paths.sh'. "
-echo " "
-echo "     Sourcing one of these files ('source ferret_paths.csh' "
-echo "     for csh or tcsh, '. ferret_paths.sh' for bash, sh ksh, "
-echo "     or dash) will set up a user's environment for running "
-echo "     ferret. "
-echo " "
-echo "     This also creates the executable shell scripts "
-echo "     'pyferret.csh' and 'pyferret.sh'. "
-echo " "
-echo "     You will want to run this option if you are installing "
-echo "     Ferret for the first time or if you relocated where "
-echo "     Ferret is installed. "
+echo " You will want to run this script if you are installing Ferret for the first time "
+echo " or if you relocated where Ferret is installed. "
 echo " "
+read -p " Proceed? (y/n) [y] " ans
+if [ -n "${ans}" ] && [ "${ans}" != "Y" ] && [ "${ans}" != "y" ]; then
+    echo " "
+    exit 1
+fi
 
-### Print menu and act on choice
-until [ 0 = 1 ]; do
+## Inquire about values and create scripts
+echo " "
+echo " Customize ferret_paths files..."
+if get_fer_dir && get_fer_dsets && get_ferpaths_dir && get_ferpaths_link && get_python_vars; then
+    create_ferret_paths_and_pyferret
     echo " "
-    echo " Enter your choice:"
-    echo " (1) Install executables, (2) Customize ferret_paths files, (3,q,x) Exit"
-    read -p " (1, 2, 3, q, x) --> " choice
-    case "$choice" in
-        1)
-            echo " "
-            echo " Install executables..."
-            if get_fer_dir && get_ferexec_dir; then
-                if ! install_execs; then
-                    echo " "
-                    echo " There is a problem manipulating files in "
-                    echo " "$fer_dir" "
-                    echo " Check your privileges to change files in that directory "
-                    echo " and try again. "
-                fi
-            fi
-            ;;
-        2)
-            echo " "
-            echo " Customize ferret_paths files..."
-            if get_fer_dir && get_fer_dsets && get_ferpaths_dir && \
-               get_ferpaths_link && get_python_vars; then
-                create_ferret_paths_and_pyferret
-            else
-                echo " "
-                echo " ferret_paths files NOT created "
-            fi
-            ;;
-        3 | 'q' | 'Q' | 'x' | 'X')
-            exit 0
-            ;;
-        *)
-            ;;
-    esac
-done
-# should not get here - return error
-exit 1
+    exit 0
+else
+    echo " "
+    echo " ferret_paths files NOT created "
+    echo " "
+    exit 1
+fi
+
 
diff --git a/bin/Fpurge b/bin/Fpurge
index ed7ff67..0314f30 100755
--- a/bin/Fpurge
+++ b/bin/Fpurge
@@ -5,7 +5,7 @@
 # example usage:  Fpurge metafile.plt
 
 # no argument given: explain the ropes
-if [ $# -ne "1" ]; then
+if [ $# -ne 1 ]; then
      echo '*** Syntax error - name 1 filename as template, only ***'
      echo '  Usage:  Fpurge  filename.extension'
      echo 'Example:  Fpurge ferret.jnl'
diff --git a/bin/build_fonts/unix/.gitignore b/bin/build_fonts/unix/.gitignore
new file mode 100644
index 0000000..01fea50
--- /dev/null
+++ b/bin/build_fonts/unix/.gitignore
@@ -0,0 +1,34 @@
+/binary
+/fnt01.chr
+/fnt02.chr
+/fnt03.chr
+/fnt04.chr
+/fnt05.chr
+/fnt06.chr
+/fnt07.chr
+/fnt08.chr
+/fnt09.chr
+/fnt10.chr
+/fnt11.chr
+/fnt12.chr
+/fnt13.chr
+/fnt14.chr
+/fnt15.chr
+/fnt16.chr
+/fnt17.chr
+/fnt18.chr
+/fnt19.chr
+/fnt20.sym
+/fnt21.sym
+/fnt22.sym
+/fnt23.sym
+/fnt24.sym
+/fnt25.sym
+/fnt26.sym
+/fnt27.sym
+/fnt28.sym
+/fnt29.sym
+/fnt30.sym
+/fnt31.chr
+/fnt32.chr
+/fnt33.sym
diff --git a/bin/ferret_paths_template.csh b/bin/ferret_paths_template.csh
index f8b6bf3..f1a6f69 100644
--- a/bin/ferret_paths_template.csh
+++ b/bin/ferret_paths_template.csh
@@ -74,7 +74,7 @@ setenv FER_GO ". ${FER_DIR}/go ${FER_DIR}/examples ${FER_DIR}/contrib"
 
 ## Space-separated list of directories containing traditional
 ## Ferret external function files (shared-object libraries)
-setenv FER_EXTERNAL_FUNCTIONS "${FER_DIR}/ext_func/libs"
+# setenv FER_EXTERNAL_FUNCTIONS "${FER_DIR}/ext_func/libs"
 ## PyFerret external function files (shared-object libraries)
 setenv PYFER_EXTERNAL_FUNCTIONS "${FER_DIR}/ext_func/pylibs"
 
diff --git a/bin/ferret_paths_template.sh b/bin/ferret_paths_template.sh
index 69f9375..ff41307 100644
--- a/bin/ferret_paths_template.sh
+++ b/bin/ferret_paths_template.sh
@@ -74,7 +74,7 @@ export FER_GO=". ${FER_DIR}/go ${FER_DIR}/examples ${FER_DIR}/contrib"
 
 ## Space-separated list of directories containing traditional
 ## Ferret external function files (shared-object libraries)
-export FER_EXTERNAL_FUNCTIONS="${FER_DIR}/ext_func/libs"
+# export FER_EXTERNAL_FUNCTIONS="${FER_DIR}/ext_func/libs"
 ## PyFerret external function files (shared-object libraries)
 export PYFER_EXTERNAL_FUNCTIONS="${FER_DIR}/ext_func/pylibs"
 
diff --git a/bin/make_dist_tar b/bin/make_dist_tar
new file mode 100755
index 0000000..1b7cdad
--- /dev/null
+++ b/bin/make_dist_tar
@@ -0,0 +1,202 @@
+#! /bin/sh
+
+# mycp needs to recursively copy subdirectories for the lib/python* directories
+mycp="/bin/cp -R -p"
+
+print_usage_and_exit() {
+   echo "" 
+   echo "Usage:  $0  <pyferret_dir>  <version>  <platform>  <target_dir>  [ -y ] " 
+   echo "" 
+   echo "    Creates the PyFerret distribution file pyferret-<version>-<platform>.tar.gz " 
+   echo "    from the pyferret source directory <pyferret_dir>, in which pyferret and " 
+   echo "    the font files have been built.  All the files required will be copied to a " 
+   echo "    temporary directory which this script will create.  Any missing executables " 
+   echo "    will be noted.  The gzipped tar file pyferret-<version>-<platform>.tar.gz " 
+   echo "    will be written in <target_dir>, which must already exist.  If the optional " 
+   echo "    fifth argument '-y' is given, any questions normally asked by the script " 
+   echo "    will be automatically answered with 'y'. " 
+   echo "" 
+   exit 1 
+}
+
+if [ $# -lt 4 ]; then
+   echo ""
+   echo "not enough arguments"
+   print_usage_and_exit
+fi
+
+if [ $# -gt 5 ]; then
+   echo ""
+   echo "too many arguments"
+   print_usage_and_exit
+fi
+
+if [ ! -d "$1" ]; then
+   echo ""
+   echo "$1 does not exist or is not a directory"
+   print_usage_and_exit
+fi
+ferret_dir=`cd "$1" ; pwd`
+pyferret_dir="${ferret_dir}/install"
+if [ ! -d "${pyferret_dir}" ]; then
+   echo ""
+   echo "${pyferret_dir} does not exist or is not a directory"
+   echo "Has PyFerret been built?"
+   print_usage_and_exit
+fi
+
+version="$2"
+platform="$3"
+
+if [ ! -d "$4" ]; then
+   echo ""
+   echo "$4 does not exist or is not a directory"
+   print_usage_and_exit
+fi
+target_dir=`cd "$4" ; pwd`
+
+if [ $# -eq 5 ]; then
+   if [ "$5" != "-y" ]; then
+      echo ""
+      echo "fifth optional argument can only be -y"
+      print_usage_and_exit
+   fi
+   auto_ans="y"
+fi
+
+# Name of the directory and tar file to be created
+ctar_name="pyferret-${version}-${platform}"
+ctar_file="${target_dir}/${ctar_name}.tar.gz"
+
+# Make a clean temporary directory for the tar file contents
+parent_temp_dir="/var/tmp/pyferret_$$"
+echo "Creating temporary directory ${parent_temp_dir}"
+rm -fr ${parent_temp_dir}
+temp_dir="${parent_temp_dir}/${ctar_name}"
+mkdir -p ${temp_dir}
+
+echo "Copying the shell scripts"
+${mycp} ${ferret_dir}/bin ${temp_dir}/
+
+echo "Copying journal files"
+${mycp} ${ferret_dir}/jnls/* ${temp_dir}/
+
+echo "Copying external function source files"
+mkdir ${temp_dir}/ext_func
+${mycp} ${ferret_dir}/external_functions ${temp_dir}/ext_func/src
+# Remove any compiled code from the source copy
+find ${temp_dir}/ext_func/src -name \*.so -delete
+find ${temp_dir}/ext_func/src -name \*.a -delete
+find ${temp_dir}/ext_func/src -name \*.o -delete
+# Except put back ef_utility/copy_ferret_ef_mem_subsc.o
+${mycp} ${ferret_dir}/external_functions/ef_utility/copy_ferret_ef_mem_subsc.o ${temp_dir}/ext_func/src/ef_utility/
+
+echo "Copying palettes"
+${mycp} ${ferret_dir}/palettes ${temp_dir}/ppl
+
+# Remove files that should not be distributed
+echo "Removing clutter"
+rm -f ${temp_dir}/bin/Fapropos* 1>>/dev/null 2>&1 
+rm -f ${temp_dir}/bin/Fhelp* 1>>/dev/null 2>&1 
+rm -f ${temp_dir}/bin/Findex* 1>>/dev/null 2>&1 
+rm -f ${temp_dir}/bin/Finstall.[^c]* 1>>/dev/null 2>&1 
+rm -f ${temp_dir}/bin/Ftoc* 1>>/dev/null 2>&1 
+rm -f ${temp_dir}/bin/ferret_paths*_template 1>>/dev/null 2>&1 
+rm -f ${temp_dir}/bin/make_*_tar 1>>/dev/null 2>&1 
+rm -fr ${temp_dir}/bin/fonts_* 1>>/dev/null 2>&1 
+rm -fr ${temp_dir}/bin/build_fonts/original 1>>/dev/null 2>&1 
+rm -f ${temp_dir}/bin/build_fonts/unix/fnt* 1>>/dev/null 2>&1 
+rm -f ${temp_dir}/bin/build_fonts/unix/binary 1>>/dev/null 2>&1 
+
+# Now set up the proper symbolic links
+echo "Setting up symbolic links"
+( cd ${temp_dir}/bin ; ln -s Fdescr Fdesc ; ln -s Fgrids Fgrid ; ln -s Fprint_template Fprint )
+
+echo "Copying external function shared-object libraries"
+mkdir -p ${temp_dir}/ext_func/pylibs
+find ${ferret_dir}/external_functions -type f -perm -100 -name \*.so -exec ${mycp} {} ${temp_dir}/ext_func/pylibs \;
+
+echo "Copying font files"
+fnt_files=${ferret_dir}/bin/build_fonts/unix/f*
+if [ $? -ne 0 -o "${fnt_files}" = "" ]; then
+   echo "No font files found in ${ferret_dir}/bin/build_fonts/unix"
+   echo "Cleaning up - removing ${parent_temp_dir}"
+   rm -fr "${parent_temp_dir}"
+   echo ""
+   exit 1
+fi
+mkdir ${temp_dir}/ppl/fonts
+${mycp} ${fnt_files} ${temp_dir}/ppl/fonts/
+
+mkdir ${temp_dir}/lib
+
+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
+   echo "Copying threddsBrowser"
+   ${mycp} ${tb_jar} ${temp_dir}/lib/
+
+   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 "Cleaning up - removing ${parent_temp_dir}"
+      rm -fr "${parent_temp_dir}"
+      echo ""
+      exit 1
+   fi
+   ${mycp} ${toolsui_jar} ${temp_dir}/lib/
+
+   # Create a symbolic link to the toolsUI-4.1.jar file
+   ( cd ${temp_dir}/lib ; ln -s toolsUI-4.1.jar toolsUI.jar )
+fi
+
+echo "Copying pyferret python modules"
+python_dirs=${pyferret_dir}/lib*/python*
+if [ $? -ne 0 -o "${python_dirs}" = "" ]; then
+   echo "No python* directories found in ${pyferret_dir}/lib"
+   echo "Cleaning up - removing ${parent_temp_dir}"
+   rm -fr "${parent_temp_dir}"
+   echo ""
+   exit 1
+fi
+${mycp} ${python_dirs} ${temp_dir}/lib/
+
+# Create the tar file
+echo ""
+echo "The tar file will be created from "
+echo "${temp_dir}"
+echo "(which can now be examined or tweaked from another shell/window)"
+echo ""
+echo -n "Create gzipped tar file ${ctar_file} (y/n)? "
+if [ -n "$auto_ans" ]; then
+   ans="${auto_ans}"
+   echo $ans
+else
+   read ans
+fi
+while [ "${ans}" != "y" -a "${ans}" != "n" ]; do
+   echo -n "Answer either y or n: "
+   read ans
+done
+if [ "${ans}" = "y" ]; then
+   rm -f "${ctar_file}"
+   ( cd ${parent_temp_dir} ; tar czf "${ctar_file}" "${ctar_name}" )
+   echo ""
+   ls -l "${ctar_file}"
+else
+   echo ""
+   echo "${ctar_file} NOT created"
+   echo "${parent_temp_dir} NOT removed"
+   echo ""
+   exit 1
+fi
+
+# Clean up
+echo ""
+echo "Cleaning up - removing ${parent_temp_dir}"
+rm -fr "${parent_temp_dir}"
+echo ""
+
diff --git a/bin/make_environment_tar b/bin/make_environment_tar
deleted file mode 100755
index e78e522..0000000
--- a/bin/make_environment_tar
+++ /dev/null
@@ -1,163 +0,0 @@
-#! /bin/sh
-
-echo ""
-if [ $# -eq 3 ]; then
-    if [ "$3" = "-y" ]; then
-        auto_ans="y"
-    fi
-fi
-if [ $# -lt 2 -o $# -gt 3 ]; then
-   argerror="true"
-elif [ $# -eq 3 -a -z "${auto_ans}" ]; then
-   argerror="true"
-fi
-if [ -n "${argerror}" ]; then
-   echo "Usage:  $0  <svn_repository>  <target_dir>  [ -y ] "
-   echo ""
-   echo "    Creates the Ferret installation file fer_environment.tar.gz. "
-   echo "    The required files will be extracted from the subversion "
-   echo "    repository <svn_repository>; for example, "
-   echo "        file:///home/users/tmap/svn/repos/ferret/trunk "
-   echo "    to a temporary directory which this script will create. "
-   echo "    Font files and lib files are NOT included in the tar file "
-   echo "    generated.  The gzipped tar file fer_environment.tar.gz "
-   echo "    will be written in <target_dir>, which must already exist. "
-   echo "    If the option third argument '-y' is given, any questions "
-   echo "    normally asked by the script will be automatically answered "
-   echo "    with 'y'. "
-   echo ""
-   echo "    Special case: if <svn_repository> is '.', then the required "
-   echo "    files will be copied from the current directory instead of "
-   echo "    being extracted from a subversion repository.  Thus, in "
-   echo "    this case, this script should probably be invoked as: "
-   echo "        bin/make_environment_tar . <target_dir> "
-   echo ""
-   exit 1
-fi
-
-if [ "$1" = "." ]; then
-    source_dir=`pwd`
-else
-    info=`svn info "$1"`
-    if [ -z "${info}" ]; then
-#  svn has printed an appropriate error message
-#  (but still returned a zero status)
-       echo ""
-       exit 1
-    fi
-fi
-repository="$1"
-
-if [ ! -d "$2" ]; then
-   echo "$2 does not exist "
-   echo ""
-   exit 1
-fi
-# Make sure target_dir is a full pathname
-target_dir=`cd "$2" ; pwd`
-
-# Make a clean temporary directory for the tar file contents
-temp_dir="/var/tmp/fer_env_$$"
-rm -fr ${temp_dir}
-mkdir ${temp_dir}
-cd ${temp_dir}
-
-# Copy or checkout the required files.  The copying intentionally
-# makes exactly the same directory structure as the check-out in
-# order to minimize the divergent parts of this script.
-if [ "${repository}" = "." ]; then
-    echo "Copying FERRET environment files "
-    echo "from ${source_dir} "
-    echo "to ${temp_dir} "
-    echo "   shell scripts"
-    cp -f -r ${source_dir}/bin .
-    rm -f ./bin/build_fonts/unix/binary ./bin/build_fonts/unix/fnt*.* 2>&1 1> /dev/null
-    echo "   journal files"
-    cp -f -r ${source_dir}/jnls .
-    echo "   external function source files"
-    cp -f -r ${source_dir}/external_functions .
-#   remove any object files and libraries from this copy
-#   of what is suppose to be just the source files
-    find ${temp_dir}/external_functions -name \*.so -delete
-    find ${temp_dir}/external_functions -name \*.a -delete
-    find ${temp_dir}/external_functions -name \*.o -delete
-    echo "   palettes"
-    cp -f -r ${source_dir}/palettes .
-else
-    echo "Extracting FERRET environment files "
-    echo "from ${repository} "
-    echo "to ${temp_dir} "
-    echo "   shell scripts"
-    svn checkout -q ${repository}/bin
-    echo "   journal files"
-    svn checkout -q ${repository}/jnls
-    echo "   external function source files"
-    svn checkout -q ${repository}/external_functions
-    echo "   palettes"
-    svn checkout -q ${repository}/palettes
-fi
-
-# Move files into their proper position
-echo "Doing a bit of rearranging"
-mv jnls/* .
-rm -rf jnls
-mv palettes ppl
-mkdir ext_func
-mv external_functions ext_func/src
-
-# Remove files that should not be distributed
-echo "Removing clutter"
-rm -f bin/Fapropos* 2>&1 1> /dev/null
-rm -f bin/Fhelp* 2>&1 1> /dev/null
-rm -f bin/Findex* 2>&1 1> /dev/null
-rm -f bin/Finstall.[^c]* 2>&1 1> /dev/null
-rm -f bin/Ftoc* 2>&1 1> /dev/null
-rm -f bin/ferret_paths*_template 2>&1 1> /dev/null
-rm -f bin/make_*_tar 2>&1 1> /dev/null
-rm -fr bin/fonts_* 2>&1 1> /dev/null
-rm -fr bin/build_fonts/original 2>&1 1> /dev/null
-
-# Now set up the proper symbolic links
-echo "Setting up symbolic links"
-cd bin
-ln -s Fdescr Fdesc
-ln -s Fgrids Fgrid
-ln -s Fprint_template Fprint
-cd ..
-
-# Create the tar file
-ctar_file="${target_dir}/fer_environment.tar.gz"
-echo ""
-echo "The tar file will be created from the contents of "
-echo "${temp_dir}"
-echo "(which can now be examined or tweaked from another shell/window)"
-echo ""
-echo -n "Create gzipped tar file ${ctar_file} (y/n)? "
-if [ -n "$auto_ans" ]; then
-    ans="${auto_ans}"
-    echo $ans
-else
-    read ans
-fi
-while [ "${ans}" != "y"  -a "${ans}" != "n" ]; do
-   echo -n "Answer either y or n: "
-   read ans
-done
-if [ "${ans}" = "y" ]; then
-   echo ""
-   rm -f "${ctar_file}"
-   tar czf "${ctar_file}" --exclude .svn *
-   echo ""
-   ls -l "${ctar_file}"
-else
-   echo ""
-   echo "Tar file NOT created"
-fi
-
-# Clean up
-echo ""
-echo "Cleaning up - removing ${temp_dir}"
-cd "${target_dir}"
-rm -fr "${temp_dir}"
-echo ""
-
diff --git a/bin/make_executable_tar b/bin/make_executable_tar
deleted file mode 100755
index 0906ed3..0000000
--- a/bin/make_executable_tar
+++ /dev/null
@@ -1,184 +0,0 @@
-#! /bin/sh
-
-# mycp needs to recursively copy subdirectories for the lib/python* directories
-mycp="/bin/cp -R -p"
-mylns="/bin/ln -s"
-
-echo ""
-if [ $# -eq 3 ]; then
-    if [ "$3" = "-y" ]; then
-        auto_ans="y"
-    fi
-fi
-if [ $# -lt 2 -o $# -gt 3 ]; then
-   argerror="true"
-elif [ $# -eq 3 -a -z "${auto_ans}" ]; then
-   argerror="true"
-fi
-if [ -n "${argerror}" ]; then
-   echo "Usage:  $0  <ferret_dir>  <target_dir>  [ -y ] "
-   echo ""
-   echo "    Creates the Ferret installation file fer_executables.tar.gz. "
-   echo "    The required files will be copied from the ferret source directory "
-   echo "    <ferret_dir>, in which ferret or pyferret, and the font files "
-   echo "    have been built.  All the files required will be copied to a temporary "
-   echo "    directory which this script will create.  Any missing executables will "
-   echo "    be noted.  The gzipped tar file fer_executables.tar.gz will be written "
-   echo "    in <target_dir>, which must already exist.  If the optional third "
-   echo "    argument '-y' is given, any questions normally asked by the script "
-   echo "    will be automatically answered with 'y'. "
-   echo ""
-   exit 1
-fi
-
-if [ ! -d "$1" ]; then
-   echo "$1 does not exist or is not a directory"
-   echo ""
-   exit 1
-fi
-ferret_dir=`cd "$1" ; pwd`
-if [ ! -d "$2" ]; then
-   echo "$2 does not exist or is not a directory"
-   echo ""
-   exit 1
-fi
-target_dir=`cd "$2" ; pwd`
-
-pyferret_dir="${ferret_dir}/pyferret_install"
-if [ ! -d "${pyferret_dir}" ]; then
-   echo "${pyferret_dir} does not exist or is not a directory"
-   echo "    pyferret module not created"
-   echo ""
-   pyferret_dir=""
-fi
-
-# Get the version of ferret recorded in the code
-version=`awk '/revision_level/ {print $4}' ${ferret_dir}/fer/dat/xrevision_data.F`
-if [ $? -ne 0 -o "${version}" = "" ]; then
-   echo "Unable to read the version number from xrevision_data.F in ${ferret_dir}/fer/dat"
-   echo ""
-   exit 1
-fi
-echo "Ferret version number is ${version}"
-echo ""
-
-# Make a clean temporary directory for the tar file contents
-temp_dir="/var/tmp/fer_exe_$$"
-rm -fr ${temp_dir}
-mkdir ${temp_dir}
-mkdir ${temp_dir}/bin
-
-# Copy fer/ferret_c
-if [ -x ${ferret_dir}/fer/ferret_c ]; then
-   ${mycp} ${ferret_dir}/fer/ferret_c ${temp_dir}/bin/ferret_v${version}
-   cd ${temp_dir}/bin
-   ${mylns} ferret_v${version} ferret
-# Copy the Ferret external function shared-object library files
-   mkdir -p ${temp_dir}/ext_func/libs
-   find ${ferret_dir}/external_functions -type f -perm -100 -name \*.so -exec ${mycp} {} ${temp_dir}/ext_func/libs \;
-else
-   echo "No ferret_c executable found in ${ferret_dir}/fer"
-#  An error only if pyferret_dir was not given
-   if [ "${pyferret_dir}" = "" ]; then
-      echo ""
-      exit 1
-   else
-      echo "   ferret_v<n> and ferret symbolic link not created"
-      echo ""
-   fi
-# Copy the PyFerret external function shared-object library files
-   mkdir -p ${temp_dir}/ext_func/pylibs
-   find ${ferret_dir}/external_functions -type f -perm -100 -name \*.so -exec ${mycp} {} ${temp_dir}/ext_func/pylibs \;
-fi
-
-# Copy font files from bin/build_fonts/unix/
-fer_files=${ferret_dir}/bin/build_fonts/unix/f*
-if [ $? -ne 0 -o "${fer_files}" = "" ]; then
-   echo "No font files found in ${ferret_dir}/bin/build_fonts/unix"
-   echo ""
-   exit 1
-fi
-mkdir ${temp_dir}/ppl
-mkdir ${temp_dir}/ppl/fonts
-${mycp} ${fer_files} ${temp_dir}/ppl/fonts
-
-# Copy threddsBrowser/threddsBrowser.jar
-tb_jar=${ferret_dir}/threddsBrowser/threddsBrowser.jar
-if [ ! -r ${tb_jar} ]; then
-   echo "No threddsBrowser.jar file found ${ferret_dir}/threddsBrowser"
-   echo ""
-   exit 1
-fi
-mkdir ${temp_dir}/lib
-${mycp} ${tb_jar} ${temp_dir}/lib
-
-# Either copy threddsBrowser/toolsUI/toolsUI-4.1.jar ...
-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
-fi
-${mycp} ${toolsui_jar} ${temp_dir}/lib
-# ... or print a message about how to get toolsUI-4.1.jar
-# echo "To minimize size, the toolsUI-4.1.jar file is not included."
-# echo "The user needs to download the jar file from:"
-# echo "  ftp://ftp.unidata.ucar.edu/pub/netcdf-java/v4.1/toolsUI-4.1.jar"
-# echo "(or we can just grab it from <ferret_dir>/threddsBrowser/toolsUI/)"
-# echo 'and put it under the $FER_LIBS ($FER_DIR/lib) subdirectory'
-
-# Create a symbolic link to a (possibly non-existant) toolsUI-4.1.jar file
-cd ${temp_dir}/lib
-${mylns} toolsUI-4.1.jar toolsUI.jar
-
-# Copy ferret_ef_mem_subsc.so
-${mycp} ${ferret_dir}/efmem/ferret_ef_mem_subsc.so ${temp_dir}/lib
-
-# Copy pyferret files
-if [ "${pyferret_dir}" != "" ]; then
-   python_dirs=`find ${pyferret_dir} -type d -name python\*`
-   if [ $? -ne 0 -o "${python_dirs}" = "" ]; then
-      echo "No python* directories found under ${pyferret_dir}"
-      echo ""
-      exit 1
-   fi
-   ${mycp} ${python_dirs} ${temp_dir}/lib
-fi
-
-# Create the tar file
-ctar_file="${target_dir}/fer_executables.tar.gz"
-echo ""
-echo "The tar file will be created from the contents of "
-echo "${temp_dir}"
-echo "(which can now be examined or tweaked from another shell/window)"
-echo ""
-echo -n "Create gzipped tar file ${ctar_file} (y/n)? "
-if [ -n "$auto_ans" ]; then
-    ans="${auto_ans}"
-    echo $ans
-else
-    read ans
-fi
-while [ "${ans}" != "y" -a "${ans}" != "n" ]; do
-   echo -n "Answer either y or n: "
-   read ans
-done
-if [ "${ans}" = "y" ]; then
-   echo ""
-   cd ${temp_dir}
-   rm -f "${ctar_file}"
-   tar czf "${ctar_file}" *
-   echo ""
-   ls -l "${ctar_file}"
-else
-   echo ""
-   echo "Tar file NOT created"
-fi
-
-# Clean up
-echo ""
-echo "Cleaning up - removing ${temp_dir}"
-cd "${target_dir}"
-rm -fr "${temp_dir}"
-echo ""
-
diff --git a/bin/make_source_tar b/bin/make_source_tar
index 81e8e76..b6ff523 100755
--- a/bin/make_source_tar
+++ b/bin/make_source_tar
@@ -50,26 +50,10 @@ echo "from ${repository} "
 echo "to ${temp_dir}/${fer_name} "
 svn checkout -q ${repository} ${fer_name}
 
-# Remove the html_docs subdirectory from the checked-out directory
-rm -rf ${fer_name}/html_docs
-
-# Remove threddsBrowser/toolsUI/toolsUI-4.1.jar for the check-out directory
-# Have the user download this file from ucar 
-# NO LONGER AVAILABLE from ucar; keep it in
-# echo ""
-# echo "NOTE: To minimize size, the toolsUI-4.1.jar file is not included."
-# echo "The user needs to download the jar file from:"
-# echo "  ftp://ftp.unidata.ucar.edu/pub/netcdf-java/v4.1/toolsUI-4.1.jar"
-# echo "(or we can just grab it from <ferret_dir>/threddsBrowser/toolsUI/)"
-# echo 'and put it under the $FER_LIBS ($FER_DIR/lib) subdirectory'
+# toolsUI-4.1.jar is no longer available from ucar; 
+# have to keep it until threddsBrowser gets updated
 # rm ${fer_name}/threddsBrowser/toolsUI/toolsUI-4.1.jar
 
-# Remove the bench/metafile_masters_* directories as this time.  GKS metafiles
-# no longer produced, and currently not creating the PostScript files in RUN_TESTS.sh
-echo ""
-echo 'NOTE: The bench/metafile_masters_* directories are not included.'
-rm -fr ${fer_name}/bench/metafile_masters_*
-
 # Create the tar file
 ctar_file="${target_dir}/fer_source.tar.gz"
 echo ""
diff --git a/bin/pyferret_template b/bin/pyferret_template
index a43806a..1c42b2c 100644
--- a/bin/pyferret_template
+++ b/bin/pyferret_template
@@ -27,5 +27,12 @@ fi
 ## Finally, execute an in-line Python script to run Ferret using the pyferret 
 ## module.  The init method explicity processes the $PYTHONSTARTUP file, if it
 ## exists and if '-secure' was not given as a command-line argument.
-${python_exe} -i -c "import sys; import pyferret; (errval, errmsg) = pyferret.init(sys.argv[1:], True)" $*
+if echo "$@" | grep -q -- "-linebuffer"; then
+    GFORTRAN_UNBUFFERED_PRECONNECTED=1
+    export GFORTRAN_UNBUFFERED_PRECONNECTED
+    python_flags="-u -i"
+else
+    python_flags="-i"
+fi
+${python_exe} ${python_flags} -c "import sys; import pyferret; (errval, errmsg) = pyferret.init(sys.argv[1:], True)" "$@"
 
diff --git a/efmem/Makefile b/efmem/Makefile
deleted file mode 100644
index 5f4bd7f..0000000
--- a/efmem/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# Site-specific defines
-#
-include ../site_specific.mk
-
-#
-# include platform specific definitions of:
-#       CC, FC, RANLIB, CFLAGS, FFLAGS, PPLUS_FFLAGS
-#
-include ../platform_specific.mk.$(BUILDTYPE)
-
-#
-# The shared-object library ferret_ef_mem_subsc.so contains an external
-# copy of the common block FERRET_EF_MEM_SUBSC in a function which copies
-# the values from Ferret's internal copy of the common block.  These values
-# are obtained by calling the Ferret functions ef_get_arg_mem_subscripts,
-# ef_get_res_mem_subscripts, and ef_get_wrk_mem_subscripts.
-#
-# This shared-object library is loaded using dlopen with the RTLD_GLOBAL
-# flag so this external copy of the common block can be seen by all Ferret
-# Fortran external functions.  Python import uses the RTLD_LOCAL flag with
-# dlopen (for encapsulation), thus the reason Ferret's internal copy of the
-# common block is not seen by the Fortran external functions.
-#
-# The name intentionally does not start with "lib" since this library should
-# not be linked with anything.  Ferret loads it dynamically with dlopen.
-#
-EFMEMLIB = ferret_ef_mem_subsc.so
-
-#
-# Targets
-#
-
-all: $(EFMEMLIB)
-
-$(EFMEMLIB): copy_ferret_ef_mem_subsc.o
-	$(LD) $(LD_DYN_FLAGS) copy_ferret_ef_mem_subsc.o -lpyferret -o $(EFMEMLIB)
-
-clean:
-	rm -f *.o $(EFMEMLIB)
-
-#
-# End of Makefile
-#
diff --git a/external_functions/Makefile b/external_functions/Makefile
index 3228070..dc064da 100644
--- a/external_functions/Makefile
+++ b/external_functions/Makefile
@@ -24,9 +24,8 @@ include ../platform_specific.mk.$(BUILDTYPE)
 # Macro Definitions
 #
 
-DIRS = contributed decimate examples fft las statistics stringfcns
-MOREDIRS = contributed cmprsi_by decimate examples extrema featurecollections gridding fft las statistics stringfcns tax_times
-# DIRS = contributed examples fft sort cflib closest_in_list hinterp featurecollections romea odd_formats cat statistics tax_times gridding zaxr 
+DIRS = ef_utility contributed decimate examples fft las statistics stringfcns
+MOREDIRS = cmprsi_by extrema featurecollections gridding tax_times
 
 #
 # Targets
@@ -53,7 +52,7 @@ build:
 
 .PHONY: buildmore
 buildmore:
-	for i in $(MOREDIRS) ; do \
+	for i in $(DIRS) $(MOREDIRS) ; do \
             if ! $(MAKE) -C $$i ; then \
                 exit 1 ; \
             fi ; \
@@ -69,7 +68,7 @@ install:
 
 .PHONY: installmore
 installmore:
-	for i in $(MOREDIRS) ; do \
+	for i in $(DIRS) $(MOREDIRS) ; do \
             if ! $(MAKE) -C $$i install ; then \
                 exit 1 ; \
             fi ; \
diff --git a/external_functions/cflib/curv_to_lonlat_from_weights.c b/external_functions/cflib/curv_to_lonlat_from_weights.c
index 308ebe5..4b6d6a2 100644
--- a/external_functions/cflib/curv_to_lonlat_from_weights.c
+++ b/external_functions/cflib/curv_to_lonlat_from_weights.c
@@ -4,6 +4,7 @@
  * which regridded variable Lwave. 
  */
 
+#include <Python.h> /* make sure Python.h is first */
 #include "nccf_regrid.h"
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/external_functions/cflib/curv_to_lonlat_regrid.c b/external_functions/cflib/curv_to_lonlat_regrid.c
index 4cb5077..19d146a 100644
--- a/external_functions/cflib/curv_to_lonlat_regrid.c
+++ b/external_functions/cflib/curv_to_lonlat_regrid.c
@@ -3,6 +3,7 @@
  * from tst_tripolar_to_lonlat_regrid from the cflib distribution
  */
 
+#include <Python.h> /* make sure Python.h is first */
 #include "nccf_regrid.h"
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/external_functions/cflib/fcn_curv_to_lonlat.c b/external_functions/cflib/fcn_curv_to_lonlat.c
index d3a5735..4467456 100644
--- a/external_functions/cflib/fcn_curv_to_lonlat.c
+++ b/external_functions/cflib/fcn_curv_to_lonlat.c
@@ -3,6 +3,7 @@
  * from tst_tripolar_to_lonlat_regrid from the cflib distribution
  */
 
+#include <Python.h> /* make sure Python.h is first */
 #include "nccf_regrid.h"
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/external_functions/contributed/pco2.F b/external_functions/contributed/pco2.F
index f914ce6..e126242 100644
--- a/external_functions/contributed/pco2.F
+++ b/external_functions/contributed/pco2.F
@@ -199,13 +199,6 @@ c_ ---------------------------------------------------------------------
 c_ RCS lines preceded by "c_ "
 c_ ---------------------------------------------------------------------
 c_
-c_ $Source$ 
-c_ $Revision: 11439 $
-c_ $Date: 2010-11-08 11:39:30 -0800 (Mon, 08 Nov 2010) $   ;  $State$
-c_ $Author: ksmith $ ;  $Locker$
-c_
-c_ ---------------------------------------------------------------------
-c_ $Log$
 c_ Revision 1.1  2004/06/01 17:38:06  ansley
 c_ add pco2 function from Andreas Schmittner
 c_
@@ -560,13 +553,6 @@ c_ ---------------------------------------------------------------------
 c_ RCS lines preceded by "c_ "
 c_ ---------------------------------------------------------------------
 c_
-c_ $Source$
-c_ $Revision: 11439 $
-c_ $Date: 2010-11-08 11:39:30 -0800 (Mon, 08 Nov 2010) $   ;  $State$
-c_ $Author: ksmith $ ;  $Locker$
-c_
-c_ ---------------------------------------------------------------------
-c_ $Log$
 c_ Revision 1.1  2004/06/01 17:38:06  ansley
 c_ add pco2 function from Andreas Schmittner
 c_
@@ -653,13 +639,6 @@ c_ ---------------------------------------------------------------------
 c_ RCS lines preceded by "c_ "
 c_ ---------------------------------------------------------------------
 c_
-c_ $Source$
-c_ $Revision: 11439 $
-c_ $Date: 2010-11-08 11:39:30 -0800 (Mon, 08 Nov 2010) $   ;  $State$
-c_ $Author: ksmith $ ;  $Locker$
-c_
-c_ ---------------------------------------------------------------------
-c_ $Log$
 c_ Revision 1.1  2004/06/01 17:38:06  ansley
 c_ add pco2 function from Andreas Schmittner
 c_
diff --git a/external_functions/date_and_time/date_decode.c b/external_functions/date_and_time/date_decode.c
index b296b21..f3b29e5 100644
--- a/external_functions/date_and_time/date_decode.c
+++ b/external_functions/date_and_time/date_decode.c
@@ -35,6 +35,10 @@
 *
 */
 
+#include <Python.h> /* make sure Python.h is first */
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
 
 /*
   Code to perform decoding of formatted dates and times
@@ -49,11 +53,6 @@
 float FORTRAN(days_from_day0) (double* days_1900, int* iyr, int* imon,
                                int* iday);
 
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-
 float FORTRAN(date_decode) (char *strdate)
 {
 
diff --git a/external_functions/date_and_time/time_decode.c b/external_functions/date_and_time/time_decode.c
index b2bd6c8..95b50cf 100644
--- a/external_functions/date_and_time/time_decode.c
+++ b/external_functions/date_and_time/time_decode.c
@@ -46,6 +46,7 @@
 #define FORTRAN(a) a##_
 #endif
 
+#include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
diff --git a/external_functions/ef_utility/Makefile b/external_functions/ef_utility/Makefile
new file mode 100644
index 0000000..a8818b1
--- /dev/null
+++ b/external_functions/ef_utility/Makefile
@@ -0,0 +1,37 @@
+#
+# Site-specific defines
+#
+include site_specific.mk
+
+#
+# include platform specific definitions of:
+#       CC, FC, RANLIB, CFLAGS, FFLAGS, PPLUS_FFLAGS
+#
+include platform_specific.mk.$(BUILDTYPE)
+
+#
+# The COPY_FERRET_EF_MEM_SUBSC subroutine needs to be called at the start 
+# of the compute method of any PyFerret external function written in Fortran 
+# in order to make an external copy of the (Py)Ferret internal common block 
+# FERRET_EF_MEM_SUBSC.  Because the PyFerret module is shared-object library 
+# loaded privately by Python, the Ferret common blocks are not visible to 
+# these external functions. 
+#
+
+#
+# Targets
+#
+
+.PHONY: all
+all: copy_ferret_ef_mem_subsc.o
+
+.PHONY: install
+install:
+
+.PHONY: clean
+clean:
+	rm -f *.o
+
+#
+# End of Makefile
+#
diff --git a/efmem/copy_ferret_ef_mem_subsc.F b/external_functions/ef_utility/copy_ferret_ef_mem_subsc.F
similarity index 92%
rename from efmem/copy_ferret_ef_mem_subsc.F
rename to external_functions/ef_utility/copy_ferret_ef_mem_subsc.F
index c5a8e16..d20c5fc 100644
--- a/efmem/copy_ferret_ef_mem_subsc.F
+++ b/external_functions/ef_utility/copy_ferret_ef_mem_subsc.F
@@ -31,24 +31,20 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-* The shared-object library libferret_ef_mem_subsc.so created from this
-* source file contains an external copy of the common block FERRET_EF_MEM_SUBSC
-* in a function which copies the values from Ferret's internal copy of
-* the common block.  These values are obtained by calling the functions
-* ef_get_arg_mem_subscripts and ef_get_res_mem_subscripts given in Ferret.
 *
-* This shared-object library is loaded using dlopen with the RTLD_GLOBAL
-* flag so this external copy of the common block can be seen by all Ferret
-* Fortran external functions.  Python import uses the RTLD_LOCAL flag with
-* dlopen (for encapsulation), thus the reason Ferret's internal copy of the
-* common block is not seen by the Fortran external functions.
+* This subroutine needs to be called at the start of the compute method
+* of any PyFerret external function written in Fortran in order to make
+* an external copy of the (Py)Ferret internal common block FERRET_EF_MEM_SUBSC.
+* Because the PyFerret module is shared-object library loaded privately
+* by Python, the Ferret common blocks are not visible to these external
+* functions.
 *
 
       SUBROUTINE COPY_FERRET_EF_MEM_SUBSC
 
       IMPLICIT NONE
-      INCLUDE 'EF_Util.cmn'
-      INCLUDE 'EF_mem_subsc.cmn'
+      INCLUDE 'ferret_cmn/EF_Util.cmn'
+      INCLUDE 'ferret_cmn/EF_mem_subsc.cmn'
 
 * local variables
       INTEGER res_memlo(6), res_memhi(6)
diff --git a/external_functions/ef_utility/platform_specific.mk.i386-apple-darwin b/external_functions/ef_utility/platform_specific.mk.i386-apple-darwin
deleted file mode 100644
index 390f2c5..0000000
--- a/external_functions/ef_utility/platform_specific.mk.i386-apple-darwin
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# platform_specific_includes.mk.i386-linux
-#
-# This file is included in the External Function Makefiles and defines
-# platform specific macros
-# ACM 2/2001 debug flags
-
-INCLUDES        = -I. -I../ef_utility -I../ef_utility/ferret_cmn
-
-CCSHFLAG        =
-CC              = gcc
-RANLIB          = /usr/bin/ranlib
-CFLAGS          = -fPIC -Dlint -DVOID_SIGHANDLER -D_POSIX_VERSION -DDARWIN -DFULL_GUI_VERSION -O2 -DX_REFRESH -DXT_CODE $(INCLUDES)
-FC              = gfortran 
-F77		= gfortran
-F77SHFLAG       = 
-FFLAGS          = -fPIC -Dunix -Dgfortran -fno-second-underscore -fno-backslash -fdollar-ok -ffixed-line-length-132 \
-		  -fdefault-real-8 -fdefault-double-8 $(INCLUDES)
-LD		= gcc
-LD_DYN_FLAGS    = -dynamiclib -Wl,-undefined,dynamic_lookup  
-SYSLIBS         = 
-
-CPP             = /lib/gcc
-CPP_FLAGS       = -P -traditional -Ddouble_p $(INCLUDES)
-CFLAGS_DEBUG	= -g -Ddebug
-FFLAGS_DEBUG	= -g -Ddebug
-FER_LOCAL_EXTFCNS = /usr/local/src/FERRET/external_functions/libs
-
-%.o : %.F
-	$(FC) $(FFLAGS) -c $*.F -o $*.o
-
-#.F.so:
-#	$(FC) $(FFLAGS) $(<F)
-#	$(LD) $(LD_DYN_FLAGS) $*.o -o $*.so
-
-# gcc -dynamiclib -Wl,-undefined,dynamic_lookup -o add_9.dylib add_9.o
-#    gcc -dynamiclib -Wl,-undefined,dynamic_lookup -o .so .o
diff --git a/external_functions/ef_utility/platform_specific.mk.i386-linux b/external_functions/ef_utility/platform_specific.mk.i386-linux
index 7193446..2113f7c 100644
--- a/external_functions/ef_utility/platform_specific.mk.i386-linux
+++ b/external_functions/ef_utility/platform_specific.mk.i386-linux
@@ -3,44 +3,28 @@
 #
 # This file is included in the External Function Makefiles and defines
 # platform specific macros
-# ACM 2/2001 debug flags
 
 # this assumes INSTALL_FER_DIR and PYTHON_EXE has already been defined
 # in site_specific.mk
 
 INCLUDES	= -I. -I../ef_utility -I../ef_utility/ferret_cmn
 
-CCSHFLAG	=
 CC		= gcc
 CFLAGS		= -fPIC -m32 -Ddouble_p -O $(INCLUDES)
+CFLAGS_DEBUG	= -O0 -g
 
 FC		= gfortran
 F77		= gfortran
-F77SHFLAG	=
 FFLAGS		= -fPIC -m32 -Ddouble_p -fno-second-underscore \
 		  -fno-backslash -fdollar-ok -ffixed-line-length-132 -malign-double \
 		  -fdefault-real-8 -fdefault-double-8 -O $(INCLUDES)
-
-RANLIB		= /usr/bin/ranlib
+FFLAGS_DEBUG	= -O0 -g -fbounds-check
 
 LD		= gfortran
 LD_DYN_FLAGS	= -fPIC -m32 -shared -Wl,--no-undefined
-SYSLIBS		= -L$(INSTALL_FER_DIR)/lib/$(PYTHON_EXE)/site-packages/pyferret -lpyferret
-
-CPP		= /lib/cpp
-CPP_FLAGS	= -P -traditional -Ddouble_p $(INCLUDES)
-CFLAGS_DEBUG	= -O0 -g -Ddebug
-FFLAGS_DEBUG	= -O0 -g -fbounds-check -Ddebug
-
-## cancel the default rule for .f -> .o to prevent objects from being built
-## from .f files that are out-of-date with respect to their corresponding .F file
-#%.o : %.f
-#
-## use cpp to preprocess the .F files to .f files and then compile the .f files
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(FFLAGS) -c $*.f
+SYSLIBS		= ../ef_utility/copy_ferret_ef_mem_subsc.o \
+		  -L$(INSTALL_FER_DIR)/lib/$(PYTHON_EXE)/site-packages/pyferret \
+		  -lpyferret
 
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
diff --git a/external_functions/ef_utility/platform_specific.mk.i386-linux-gnu b/external_functions/ef_utility/platform_specific.mk.i386-linux-gnu
index 651ce81..f4f6adb 100644
--- a/external_functions/ef_utility/platform_specific.mk.i386-linux-gnu
+++ b/external_functions/ef_utility/platform_specific.mk.i386-linux-gnu
@@ -1,6 +1,5 @@
 #
 # platform_specific_includes.mk.i386-linux-gnu
-# (for Ubuntu and other "free" Linux distributions)
 #
 # This file is included in the External Function Makefiles and defines
 # platform specific macros
@@ -10,37 +9,22 @@
 
 INCLUDES	= -I. -I../ef_utility -I../ef_utility/ferret_cmn
 
-CCSHFLAG	=
 CC		= gcc
 CFLAGS		= -fPIC -m32 -Ddouble_p -O $(INCLUDES)
+CFLAGS_DEBUG	= -O0 -g
 
 FC		= gfortran
 F77		= gfortran
-F77SHFLAG	=
 FFLAGS		= -fPIC -m32 -Ddouble_p -fno-second-underscore \
 		  -fno-backslash -fdollar-ok -ffixed-line-length-132 -malign-double \
 		  -fdefault-real-8 -fdefault-double-8 -O $(INCLUDES)
-
-RANLIB		= /usr/bin/ranlib
+FFLAGS_DEBUG	= -O0 -g -fbounds-check
 
 LD		= gfortran
 LD_DYN_FLAGS	= -fPIC -m32 -shared -Wl,--no-undefined
-SYSLIBS		= -L$(INSTALL_FER_DIR)/lib/$(PYTHON_EXE)/site-packages/pyferret -lpyferret
-
-CPP		= /lib/cpp
-CPP_FLAGS	= -P -traditional -Ddouble_p $(INCLUDES)
-CFLAGS_DEBUG	= -O0 -g -Ddebug
-FFLAGS_DEBUG	= -O0 -g -fbounds-check -Ddebug
-
-## cancel the default rule for .f -> .o to prevent objects from being built
-## from .f files that are out-of-date with respect to their corresponding .F file
-#%.o : %.f
-#
-## use cpp to preprocess the .F files to .f files and then compile the .f files
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(FFLAGS) -c $*.f
+SYSLIBS		= ../ef_utility/copy_ferret_ef_mem_subsc.o \
+		  -L$(INSTALL_FER_DIR)/lib/$(PYTHON_EXE)/site-packages/pyferret \
+		  -lpyferret
 
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
diff --git a/external_functions/ef_utility/platform_specific.mk.intel-mac b/external_functions/ef_utility/platform_specific.mk.intel-mac
index d32f996..c4019d6 100644
--- a/external_functions/ef_utility/platform_specific.mk.intel-mac
+++ b/external_functions/ef_utility/platform_specific.mk.intel-mac
@@ -3,37 +3,26 @@
 #
 # This file is included in the External Function Makefiles and defines
 # platform specific macros
-# ACM 2/2001 debug flags
 
 # this assumes INSTALL_FER_DIR and PYTHON_EXE has already been defined
 # in site_specific.mk
 
 INCLUDES	= -I. -I../ef_utility -I../ef_utility/ferret_cmn
 
-CCSHFLAG	=
-CC		= gcc
-CFLAGS		= -fPIC -m64 -Ddouble_p -DHAVE_STDDEF_H -DHAVE_UNISTD_H \
-		  -O $(INCLUDES)
-
-FC		= gfortran
-F77		= gfortran
-F77SHFLAG	=
-FFLAGS		= -fPIC -m64 -Ddouble_p -DHAVE_STDDEF_H -DHAVE_UNISTD_H \
-		  -fno-second-underscore -fno-backslash -fdollar-ok \
-		  -ffixed-line-length-132 -fdefault-real-8 -fdefault-double-8 \
-		  -O $(INCLUDES)
-
-RANLIB		= /usr/bin/ranlib
+CC		= $(shell which gcc-6)
+CFLAGS		= -fPIC -Ddouble_p -O $(INCLUDES)
+CFLAGS_DEBUG	= -O0 -g
 
-LD		= gfortran
-LD_DYN_FLAGS	= -fPIC -m64 -shared -Wl,-bundle
-SYSLIBS		= -L$(INSTALL_FER_DIR)/lib64/$(PYTHON_EXE)/site-packages/pyferret \
-		  -L$(INSTALL_FER_DIR)/lib/$(PYTHON_EXE)/site-packages/pyferret -lpyferret
+FC		= $(shell which gfortran-6)
+F77		= $(shell which gfortran-6)
+FFLAGS		= -fPIC -Ddouble_p -fno-second-underscore \
+		  -fno-backslash -fdollar-ok -ffixed-line-length-132 \
+		  -fdefault-real-8 -fdefault-double-8 -O $(INCLUDES)
+FFLAGS_DEBUG	= -O0 -g -fbounds-check
 
-CPP		= /lib/cpp
-CPP_FLAGS	= -P -traditional $(INCLUDES)
-CFLAGS_DEBUG	= -O0 -g
-FFLAGS_DEBUG	= -O0 -g
+LD		= $(shell which gfortran-6)
+LD_DYN_FLAGS	= -fPIC -bundle -undefined dynamic_lookup
+SYSLIBS		= ../ef_utility/copy_ferret_ef_mem_subsc.o 
 
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
diff --git a/external_functions/ef_utility/platform_specific.mk.x86_64-linux b/external_functions/ef_utility/platform_specific.mk.x86_64-linux
index be8df36..56a42b3 100644
--- a/external_functions/ef_utility/platform_specific.mk.x86_64-linux
+++ b/external_functions/ef_utility/platform_specific.mk.x86_64-linux
@@ -3,45 +3,29 @@
 #
 # This file is included in the External Function Makefiles and defines
 # platform specific macros
-# ACM 2/2001 debug flags
 
 # this assumes INSTALL_FER_DIR and PYTHON_EXE has already been defined
 # in site_specific.mk
 
 INCLUDES	= -I. -I../ef_utility -I../ef_utility/ferret_cmn
 
-CCSHFLAG	=
 CC		= gcc
 CFLAGS		= -fPIC -m64 -Ddouble_p -O $(INCLUDES)
+CFLAGS_DEBUG	= -O0 -g
 
 FC		= gfortran
 F77		= gfortran
-F77SHFLAG	=
 FFLAGS		= -fPIC -m64 -Ddouble_p -fno-second-underscore \
 		  -fno-backslash -fdollar-ok -ffixed-line-length-132 \
 		  -fdefault-real-8 -fdefault-double-8 -O $(INCLUDES)
-
-RANLIB		= /usr/bin/ranlib
+FFLAGS_DEBUG	= -O0 -g -fbounds-check 
 
 LD		= gfortran
 LD_DYN_FLAGS	= -fPIC -m64 -shared -Wl,--no-undefined
-SYSLIBS		= -L$(INSTALL_FER_DIR)/lib64/$(PYTHON_EXE)/site-packages/pyferret \
-		  -L$(INSTALL_FER_DIR)/lib/$(PYTHON_EXE)/site-packages/pyferret -lpyferret
-
-CPP		= /lib/cpp
-CPP_FLAGS	= -P -traditional -Ddouble_p $(INCLUDES)
-CFLAGS_DEBUG	= -O0 -g -Ddebug
-FFLAGS_DEBUG	= -O0 -g  -fbounds-check -Ddebug
-
-## cancel the default rule for .f -> .o to prevent objects from being built
-## from .f files that are out-of-date with respect to their corresponding .F file
-#%.o : %.f
-#
-## use cpp to preprocess the .F files to .f files and then compile the .f files
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(FFLAGS) -c $*.f
+SYSLIBS		= ../ef_utility/copy_ferret_ef_mem_subsc.o \
+		  -L$(INSTALL_FER_DIR)/lib64/$(PYTHON_EXE)/site-packages/pyferret \
+		  -L$(INSTALL_FER_DIR)/lib/$(PYTHON_EXE)/site-packages/pyferret \
+		  -lpyferret
 
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
diff --git a/external_functions/ef_utility/platform_specific.mk.x86_64-linux-gnu b/external_functions/ef_utility/platform_specific.mk.x86_64-linux-gnu
index b1122c6..23f5e03 100644
--- a/external_functions/ef_utility/platform_specific.mk.x86_64-linux-gnu
+++ b/external_functions/ef_utility/platform_specific.mk.x86_64-linux-gnu
@@ -1,6 +1,5 @@
 #
 # platform_specific_includes.mk.x86_64-linux-gnu 
-# (for Ubuntu and other "free" Linux distributions)
 #
 # This file is included in the External Function Makefiles and defines
 # platform specific macros
@@ -10,38 +9,23 @@
 
 INCLUDES	= -I. -I../ef_utility -I../ef_utility/ferret_cmn
 
-CCSHFLAG	=
 CC		= gcc
 CFLAGS		= -fPIC -m64 -Ddouble_p -O $(INCLUDES)
+CFLAGS_DEBUG	= -O0 -g
 
 FC		= gfortran
 F77		= gfortran
-F77SHFLAG	=
 FFLAGS		= -fPIC -m64 -Ddouble_p -fno-second-underscore \
 		  -fno-backslash -fdollar-ok -ffixed-line-length-132 \
 		  -fdefault-real-8 -fdefault-double-8 -O $(INCLUDES)
-
-RANLIB		= /usr/bin/ranlib
+FFLAGS_DEBUG	= -O0 -g -fbounds-check
 
 LD		= gfortran
 LD_DYN_FLAGS	= -fPIC -m64 -shared -Wl,--no-undefined
-SYSLIBS		= -L$(INSTALL_FER_DIR)/lib64/$(PYTHON_EXE)/site-packages/pyferret \
-		  -L$(INSTALL_FER_DIR)/lib/$(PYTHON_EXE)/site-packages/pyferret -lpyferret
-
-CPP		= /lib/cpp
-CPP_FLAGS	= -P -traditional -Ddouble_p $(INCLUDES)
-CFLAGS_DEBUG	= -O0 -g -Ddebug
-FFLAGS_DEBUG	= -O0 -g  -fbounds-check -Ddebug
-
-## cancel the default rule for .f -> .o to prevent objects from being built
-## from .f files that are out-of-date with respect to their corresponding .F file
-#%.o : %.f
-#
-## use cpp to preprocess the .F files to .f files and then compile the .f files
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(FFLAGS) -c $*.f
+SYSLIBS		= ../ef_utility/copy_ferret_ef_mem_subsc.o \
+		  -L$(INSTALL_FER_DIR)/lib64/$(PYTHON_EXE)/site-packages/pyferret \
+		  -L$(INSTALL_FER_DIR)/lib/$(PYTHON_EXE)/site-packages/pyferret \
+		  -lpyferret
 
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
diff --git a/external_functions/ef_utility/site_specific.mk b/external_functions/ef_utility/site_specific.mk
index 2c06d31..4de1bcb 100644
--- a/external_functions/ef_utility/site_specific.mk
+++ b/external_functions/ef_utility/site_specific.mk
@@ -1,11 +1,12 @@
 ## Site-dependent definitions included in external function 
-## Makefiles in an installed PyFerret directory.  
+## Makefiles in an installed PyFerret directory.
 
 ## Machine type for which to build Ferret/PyFerret
 ##   x86_64-linux      for 64-bit RHEL
 ##   x86_64-linux-gnu  for 64-bit Ubuntu and many "free" Linux systems
 ##   i386-linux        for 32-bit RHEL
 ##   i386-linux-gnu    for 32-bit Ubuntu and many "free" Linux systems
+##   intel-mac         for Max OSX
 ## This value is used to determine which platform_specific.mk
 ## file to include in the Makefiles.
 BUILDTYPE = $(HOSTTYPE)
@@ -13,6 +14,7 @@ BUILDTYPE = $(HOSTTYPE)
 # BUILDTYPE = x86_64-linux-gnu
 # BUILDTYPE = i386-linux
 # BUILDTYPE = i386-linux-gnu
+# BUILDTYPE = intel-mac
 
 ## INSTALL_FER_DIR and PYTHON_EXE are only used to construct
 ## the location of pyferret library.  The library should be
diff --git a/external_functions/extrema/maxminmax.F b/external_functions/extrema/maxminmax.F
index 5e19818..9f1545c 100644
--- a/external_functions/extrema/maxminmax.F
+++ b/external_functions/extrema/maxminmax.F
@@ -7,7 +7,6 @@ C  From the NCAR graphics library at http://ngwww.ucar.edu version 4.2
 C  Modified by Ansley Manke to regurn only the maxima for subroutine findhi.F
 C
 C-------------------------------------------------------------
-C	$Id: maxminmax.F 11665 2011-01-06 20:18:22Z ksmith $
 C                                                                      
 C                Copyright (C)  2000
 C        University Corporation for Atmospheric Research
diff --git a/external_functions/extrema/minminmax.F b/external_functions/extrema/minminmax.F
index 47c0737..c6a5be6 100644
--- a/external_functions/extrema/minminmax.F
+++ b/external_functions/extrema/minminmax.F
@@ -5,7 +5,6 @@ C  based on NCAR routine MINMAX, return minima
 C  From the NCAR graphics library at http://ngwww.ucar.edu version 4.2
 C  Modified by Ansley Manke to regurn only the minima for subroutine findlo.F
 C-------------------------------------------------------------
-C	$Id: minminmax.F 11665 2011-01-06 20:18:22Z ksmith $
 C                                                                      
 C                Copyright (C)  2000
 C        University Corporation for Atmospheric Research
diff --git a/external_functions/gridding/scat2grid_minmax_xyt.F b/external_functions/gridding/scat2grid_minmax_xyt.F
index 65e6111..146de9e 100644
--- a/external_functions/gridding/scat2grid_minmax_xyt.F
+++ b/external_functions/gridding/scat2grid_minmax_xyt.F
@@ -36,6 +36,7 @@
 *
 * Ansley Manke
 * April 2011
+* 1/16/2016 Correctly work with irregular grids
 
 * In this subroutine we provide information about
 * the function.  The user configurable information 
@@ -204,7 +205,7 @@
 *
 * ef_set_work_array_dims(id,array #,xlo,ylo,zlo,tlo,xhi,yhi,zhi,thi)
 *
-      INTEGER nxout, nyout, ntout, nx2, ny2, nt2, i, k
+      INTEGER nxout, nyout, ntout, i, k
       INTEGER arg_lo_ss(4,1:EF_MAX_ARGS), arg_hi_ss(4,1:EF_MAX_ARGS),
      .     arg_incr(4,1:EF_MAX_ARGS)
 
@@ -214,24 +215,20 @@
       nyout = 1 + arg_hi_ss(Y_AXIS,ARG6) - arg_lo_ss(Y_AXIS,ARG6)
       ntout = 1 + arg_hi_ss(T_AXIS,ARG7) - arg_lo_ss(T_AXIS,ARG7)
 
-      nx2 = nxout* 2
-      ny2 = nyout* 2
-      nt2 = ntout* 2
-
 * xaxlo  output x axis
-      CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nx2, 1, 1, 1)
+      CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nxout, 1, 1, 1)
 * xaxhi  output x axis
-      CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, nx2, 1, 1, 1)
+      CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, nxout, 1, 1, 1)
 
 * yaxlo  output y axis
-      CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, ny2, 1, 1, 1)
+      CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, nyout, 1, 1, 1)
 * yaxhi  output y axis
-      CALL ef_set_work_array_dims (id, 4, 1, 1, 1, 1, ny2, 1, 1, 1)
+      CALL ef_set_work_array_dims (id, 4, 1, 1, 1, 1, nyout, 1, 1, 1)
 
 * taxlo  output t axis
-      CALL ef_set_work_array_dims (id, 5, 1, 1, 1, 1, nt2, 1, 1, 1)
+      CALL ef_set_work_array_dims (id, 5, 1, 1, 1, 1, ntout, 1, 1, 1)
 * taxhi  output t axis
-      CALL ef_set_work_array_dims (id, 6, 1, 1, 1, 1, nt2, 1, 1, 1)
+      CALL ef_set_work_array_dims (id, 6, 1, 1, 1, 1, ntout, 1, 1, 1)
 
       RETURN
       END
@@ -290,18 +287,12 @@
 
 *  Dimension the work arrays
 
-      REAL*8 xaxlo(wrk1lox:wrk1hix/2, wrk1loy:wrk1hiy,
-     .               wrk1loz:wrk1hiz, wrk1lot:wrk1hit)
-      REAL*8 xaxhi(wrk2lox:wrk2hix/2, wrk2loy:wrk2hiy,
-     .               wrk2loz:wrk2hiz, wrk2lot:wrk2hit)
-      REAL*8 yaxlo(wrk3lox:wrk3hix/2, wrk3loy:wrk3hiy,
-     .               wrk3loz:wrk3hiz, wrk3lot:wrk3hit)
-      REAL*8 yaxhi(wrk4lox:wrk4hix/2, wrk4loy:wrk4hiy, 
-     .               wrk4loz:wrk4hiz, wrk4lot:wrk4hit)
-      REAL*8 taxlo(wrk5lox:wrk5hix/2, wrk5loy:wrk5hiy,
-     .               wrk5loz:wrk5hiz, wrk5lot:wrk5hit)
-      REAL*8 taxhi(wrk6lox:wrk6hix/2, wrk6loy:wrk6hiy,
-     .               wrk6loz:wrk6hiz, wrk6lot:wrk6hit)
+      REAL*8 xaxlo(wrk1lox:wrk1hix)
+      REAL*8 xaxhi(wrk2lox:wrk2hix)
+      REAL*8 yaxlo(wrk3lox:wrk3hix)
+      REAL*8 yaxhi(wrk4lox:wrk4hix)
+      REAL*8 taxlo(wrk5lox:wrk5hix)
+      REAL*8 taxhi(wrk6lox:wrk6hix)
 
       INTEGER i, j, k, l, m, n
       INTEGER i1, i2, j1, k1, l1
@@ -312,7 +303,6 @@
 
       REAL x1, y1, xf, yf
       REAL xx, yy, tt, ff, a1, a2
-      REAL xmin, xdel, ymin, ydel, tmin, tdel
 
       CHARACTER*250 errtxt
 
@@ -337,29 +327,29 @@
       nypts = 0
       ntpts = 0
 
-      DO 100 m = X_AXIS, T_AXIS
+      DO 110 m = X_AXIS, T_AXIS
          IF (arg_lo_ss(m,ARG1) .GE. 1) THEN
             i1 = arg_lo_ss(m,ARG1)
             i1n = arg_hi_ss(m,ARG1)
             if (i1n-i1 .NE. 0) nxpts = 1 + (i1n - i1)
          ENDIF
- 100  CONTINUE
+ 110  CONTINUE
 
-      DO 110 m = X_AXIS, T_AXIS
+      DO 120 m = X_AXIS, T_AXIS
          IF (arg_lo_ss(m,ARG2) .GE. 1) THEN
             i2 = arg_lo_ss(m,ARG2)
             i2n = arg_hi_ss(m,ARG2)
             if (i2n-i2 .NE. 0) nypts = 1 + (i2n - i2)
          ENDIF
- 110  CONTINUE
+ 120  CONTINUE
 
-      DO 120 m = X_AXIS, T_AXIS
+      DO 130 m = X_AXIS, T_AXIS
          IF (arg_lo_ss(m,ARG3) .GE. 1) THEN
             i2 = arg_lo_ss(m,ARG3)
             i2n = arg_hi_ss(m,ARG3)
             if (i2n-i2 .NE. 0) ntpts = 1 + (i2n - i2)
-         ENDIF
-120   CONTINUE
+         ENDIF 
+ 130  CONTINUE
 
       IF (nxpts .NE. nypts .OR. nxpts .EQ. 0) GOTO 900
       IF (nxpts .NE. ntpts) GOTO 900
@@ -406,14 +396,6 @@ C  Get coordinates of output axes.
       CALL EF_GET_BOX_LIMITS(id, ARG7, T_AXIS,
      .   arg_lo_ss(T_AXIS, ARG7), arg_hi_ss(T_AXIS, ARG7), taxlo, taxhi)
 
-      xmin = xaxlo(1,1,1,1)
-      xdel = xaxhi(1,1,1,1) - xmin
-      ymin = yaxlo(1,1,1,1)
-      ydel = yaxhi(1,1,1,1) - ymin
-      tmin = taxlo(1,1,1,1)
-      tdel = taxhi(1,1,1,1) - tmin
- 
-
 *  Compute result
 
 *  Initialize result.
@@ -442,21 +424,42 @@ C  Get coordinates of output axes.
 *  of the scattered point.
 
             IF  (modulox(1) .AND. xx.NE.bad_flag(ARG1))
-     .         CALL modscatminmax (xaxlo(1,1,1,1), xaxhi(nx,1,1,1), 1, xx)
+     .         CALL modscatminmax (xaxlo(1), xaxhi(nx), 1, xx)
 
 *  Put fcn into result variable.
 
-         IF (ff .NE. bad_flag(ARG4)) THEN
-            i = INT(0.5+(xx - xmin)/xdel)
-            j = INT(0.5+(yy - ymin)/ydel)
-            l = INT(0.5+(tt - tmin)/tdel)
+            IF (ff .NE. bad_flag(ARG4)) THEN 
+
+            l1 = 1
+            DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+              IF ( tt .GE. taxlo(l1) .AND. tt .LT. taxhi(l1) ) THEN 
+
+            j1 = 1
+            DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+              IF ( yy .GE. yaxlo(j1) .AND. yy .LT. yaxhi(j1) ) THEN 
+
+            i1 = 1
+            DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+               IF ( xx .GE. xaxlo(i1) .AND. xx .LT. xaxhi(i1) ) THEN 
+
+                  result(i,j,1,L) = MIN(ff, result(i,j,1,L))
+                  result(i,j,2,L) = MAX(ff, result(i,j,2,L))
+
+               ENDIF 
+
+            i1 = i1 + 1
+ 100        CONTINUE
+
+            ENDIF 
+            j1 = j1 + 1
+ 200        CONTINUE
+
+            ENDIF 
+            l1 = l1 + 1
+ 400        CONTINUE
 
-	    IF ( L.GE.res_lo_ss(T_AXIS) .AND. L.LE.res_hi_ss(T_AXIS) ) THEN
-               result(i,j,1,L) = MIN(ff, result(i,j,1,L))
-               result(i,j,2,L) = MAX(ff, result(i,j,2,L))
-	    ENDIF
+           ENDIF  ! ff not bad 
 
-         ENDIF  ! ff not bad
 
 300   CONTINUE
 
diff --git a/external_functions/gridding/scat2grid_nobs_xy.F b/external_functions/gridding/scat2grid_nobs_xy.F
deleted file mode 100644
index 3001d57..0000000
--- a/external_functions/gridding/scat2grid_nobs_xy.F
+++ /dev/null
@@ -1,445 +0,0 @@
-*
-*  scat2grid_nobs_xy.F
-*
-*
-*  This software was developed by the Thermal Modeling and Analysis
-*  Project(TMAP) of the National Oceanographic and Atmospheric
-*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
-*  hereafter referred to as NOAA/PMEL/TMAP.
-*
-*  Access and use of this software shall impose the following
-*  obligations and understandings on the user. The user is granted the
-*  right, without any fee or cost, to use, copy, modify, alter, enhance
-*  and distribute this software, and any derivative works thereof, and
-*  its supporting documentation for any purpose whatsoever, provided
-*  that this entire notice appears in all copies of the software,
-*  derivative works and supporting documentation.  Further, the user
-*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
-*  the use of this software or in any product that includes this
-*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
-*  in any advertising or publicity to endorse or promote any products
-*  or commercial entity unless specific written permission is obtained
-*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
-*  is not obligated to provide the user with any support, consulting,
-*  training or assistance of any kind with regard to the use, operation
-*  and performance of this software nor to provide the user with any
-*  updates, revisions, new versions or "bug fixes".
-*
-*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
-*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
-*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
-*
-* Ansley Manke
-* February 9, 2005 from scat2gridgauss_xy
-
-* Returns # observations in each grid cell when a variable is interpolated 
-* onto an equally-spaced X-Y grid.  Input is scattered locations xpts, ypts
-* and the desired result grid. Output is # observations in each grid cell 
-* when data is gridded in x and y.  Calls routine "nobs" based on Billy
-* Kessler's gaussmap-subs.f.
-*
-*
-* In this subroutine we provide information about
-* the function.  The user configurable information 
-* consists of the following:
-*
-* descr              Text description of the function
-*
-* num_args           Required number of arguments
-*
-* axis_inheritance   Type of axis for the result
-*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
-*                       CUSTOM          - user defined axis
-*                       IMPLIED_BY_ARGS - same axis as the incoming argument
-*                       NORMAL          - the result is normal to this axis
-*                       ABSTRACT        - an axis which only has index values
-*
-* piecemeal_ok       For memory optimization:
-*                       axes where calculation may be performed piecemeal
-*                       ( YES, NO )
-* 
-*
-* For each argument we provide the following information:
-*
-* name               Text name for an argument
-*
-* unit               Text units for an argument
-*
-* desc               Text description of an argument
-*
-* axis_influence     Are this argument's axes the same as the result grid?
-*                       ( YES, NO )
-*
-* axis_extend       How much does Ferret need to extend arg limits relative to result 
-*
-
-
-      SUBROUTINE  scat2grid_nobs_xy_init(id)
-
-      INCLUDE 'ferret_cmn/EF_Util.cmn'
-
-      INTEGER id, arg
-
-************************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-      CHARACTER*126 buff
-      WRITE (buff, 10)
-   10 FORMAT ('Count observations when gridding scattered ',
-     .        'data to XY grid using Gaussian function')
-      CALL ef_set_desc(id, buff)
-
-      CALL ef_set_num_args(id, 4)
-      CALL ef_set_axis_inheritance(id, IMPLIED_BY_ARGS, IMPLIED_BY_ARGS, 
-     .      NORMAL, NORMAL)
-
-      CALL ef_set_piecemeal_ok(id, NO, NO, NO, NO)
-      CALL ef_set_num_work_arrays(id, 3)
-
-* Output grid is determined by arguments 3 and 4, the result's x and y axes. 
-
-      arg = 1
-      CALL ef_set_arg_name(id, arg, 'XPTS')
-      CALL ef_set_arg_desc(id, arg, 
-     .     'X coordinates of scattered input pairs')
-      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
-
-      arg = 2
-      CALL ef_set_arg_name(id, arg, 'YPTS')
-      CALL ef_set_arg_desc(id, arg, 
-     .     'Y coordinates of scattered input pairs')
-      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
-
-      arg = 3
-      CALL ef_set_arg_name(id, arg, 'XAXPTS')
-      CALL ef_set_arg_desc(id, arg, 
-     .                   'X axis coordinates of a regular output grid')
-      CALL ef_set_axis_influence(id, arg, YES, NO, NO, NO)
-
-      arg = 4
-      CALL ef_set_arg_name(id, arg, 'YAXPTS')
-      CALL ef_set_arg_desc(id, arg, 
-     .                   'Y axis coordinates of a regular output grid')
-      CALL ef_set_axis_influence(id, arg, NO, YES, NO, NO)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-************************************************************************
-
-      RETURN 
-      END
-*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
-      SUBROUTINE scat2grid_nobs_xy_work_size(id)
-
-      INCLUDE 'ferret_cmn/EF_Util.cmn'
-      INCLUDE 'ferret_cmn/EF_mem_subsc.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-* 
-* Set the work arrays,  X/Y/Z/T dimensions
-*
-* ef_set_work_array_dims(id,array #,xlo,ylo,zlo,tlo,xhi,yhi,zhi,thi)
-*
-      INTEGER nxout, nyout, nx2, ny2
-      INTEGER arg_lo_ss(4,1:EF_MAX_ARGS), arg_hi_ss(4,1:EF_MAX_ARGS),
-     .     arg_incr(4,1:EF_MAX_ARGS)
-
-      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-      nxout = 1 + arg_hi_ss(X_AXIS,ARG3) - arg_lo_ss(X_AXIS,ARG3)
-      nyout = 1 + arg_hi_ss(Y_AXIS,ARG4) - arg_lo_ss(Y_AXIS,ARG4)
-
-      nx2 = nxout* 2
-      ny2 = nyout* 2
-
-* xax  output x axis
-      CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nx2, 1, 1, 1)
-
-* yax  output y axis
-      CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, ny2, 1, 1, 1)
-
-* obs  work array - counts of observations 
-      CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, 
-     .                             nxout, nyout, 1, 1)
-
-      RETURN
-      END
-
-
-*
-* In this subroutine we compute the result
-*
-
-      SUBROUTINE  scat2grid_nobs_xy_compute(id, arg_1, arg_2, arg_3, 
-     .     arg_4, result, xax, yax, obs)
-
-*  arg_1  xpts  \Scattered x,y pairs to be gridded.
-*  arg_2  ypts  / 
-*  arg_3  xaxis of new grid   
-*  arg_4  yaxis of new grid
-
-      INCLUDE 'ferret_cmn/EF_Util.cmn'
-      INCLUDE 'ferret_cmn/EF_mem_subsc.cmn'
-
-      INTEGER id
-      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
-      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
-     .     mem1lot:mem1hit)
-      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
-     .     mem2lot:mem2hit)
-      REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz, 
-     .     mem3lot:mem3hit)
-      REAL arg_4(mem4lox:mem4hix, mem4loy:mem4hiy, mem4loz:mem4hiz, 
-     .     mem4lot:mem4hit)
-
-      REAL result(memreslox:memreshix, memresloy:memreshiy, 
-     .     memresloz:memreshiz, memreslot:memreshit)
-
-* After initialization, the 'res_' arrays contain indexing information 
-* for the result axes.  The 'arg_' arrays will contain the indexing 
-* information for each variable's axes. 
-
-      INTEGER res_lo_ss(4), res_hi_ss(4), res_incr(4)
-      INTEGER arg_lo_ss(4,EF_MAX_ARGS), arg_hi_ss(4,EF_MAX_ARGS),
-     .     arg_incr(4,EF_MAX_ARGS)
-
-
-************************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-      INTEGER i, j, k, l, m, n
-      INTEGER i1, i2, j1, k1, l1
-      INTEGER i3, i3n, j4, j4n
-
-      INTEGER nxpts, nypts, nscat
-      INTEGER nx, ny    
-      INTEGER i1n, i2n
-
-      REAL x1, y1, xf, yf
-      REAL xx, yy
-
-*  Dimension the work arrays
-
-      REAL*8 xax(wrk1lox:wrk1hix/2, wrk1loy:wrk1hiy,
-     .               wrk1loz:wrk1hiz, wrk1lot:wrk1hit)
-      REAL*8 yax(wrk2lox:wrk2hix/2, wrk2loy:wrk2hiy,
-     .               wrk2loz:wrk2hiz, wrk2lot:wrk2hit)
-      REAL obs(wrk3lox:wrk3hix, wrk3loy:wrk3hiy,
-     .               wrk3loz:wrk3hiz, wrk3lot:wrk3hit)
-
-      CHARACTER*250 errtxt
-
-C  variables for checking axis characteristics (modulo axes)
-
-      CHARACTER ax_name(4)*16, ax_units(4)*16
-      LOGICAL backward(4), modulox(4), moduloy(4), regular(4)
-
-      REAL dx, dy, xxbeg, xxend, yybeg, yyend
-
-
-      CALL ef_get_res_subscripts(id, res_lo_ss, res_hi_ss, res_incr)
-      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
-      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
-
-
-*  Check to see if output axes are modulo
-
-      CALL ef_get_axis_info (id, 3, ax_name, ax_units, backward, 
-     .                       modulox, regular)
-      CALL ef_get_axis_info (id, 4, ax_name, ax_units, backward, 
-     .                       moduloy, regular)
-
-*  Find number of points in scattered input points.  1-D arrays defining the 
-*  scattered data points may lie on the X, Y, Z, or T axis of the input arguments.
-
-      nxpts = 0
-      nypts = 0
-
-      DO 100 m = X_AXIS, T_AXIS
-         IF (arg_lo_ss(m,ARG1) .GE. 1) THEN
-            i1 = arg_lo_ss(m,ARG1)
-            i1n = arg_hi_ss(m,ARG1)
-            if (i1n-i1 .NE. 0) nxpts = 1 + (i1n - i1)
-         ENDIF
- 100  CONTINUE
-
-      DO 110 m = X_AXIS, T_AXIS
-         IF (arg_lo_ss(m,ARG2) .GE. 1) THEN
-            i2 = arg_lo_ss(m,ARG2)
-            i2n = arg_hi_ss(m,ARG2)
-            if (i2n-i2 .NE. 0) nypts = 1 + (i2n - i2)
-         ENDIF
- 110  CONTINUE
-
-      IF (nxpts .NE. nypts .OR. nxpts .EQ. 0) GOTO 900
-
-      nscat = nxpts
-
-*  Compute number of points in output axes.
-
-      i3 = arg_lo_ss(X_AXIS,ARG3)
-      i3n = arg_hi_ss(X_AXIS,ARG3)
-
-      j4 = arg_lo_ss(Y_AXIS,ARG4)
-      j4n = arg_hi_ss(Y_AXIS,ARG4)
-
-      nx = 1 + (i3n - i3)
-      ny = 1 + (j4n - j4)
-
-*  Check that xax is a X axis and yax a Y axis
-
-      IF (i3 .EQ. ef_unspecified_int4) THEN
-         WRITE (errtxt, *) 'Third argument must be a X axis'
-         GO TO 999
-      ENDIF
-      IF (j4 .EQ. ef_unspecified_int4) THEN
-         WRITE (errtxt, *) 'Fourth argument must be a Y axis'
-         GO TO 999
-      ENDIF
-
-C  Get coordinates of output axes.
-
-      call ef_get_coordinates(id, ARG3, X_AXIS, 
-     .   arg_lo_ss(X_AXIS, ARG3), arg_hi_ss(X_AXIS, ARG3), xax)
-
-      call ef_get_coordinates(id, ARG4, Y_AXIS, 
-     .   arg_lo_ss(Y_AXIS, ARG4), arg_hi_ss(Y_AXIS, ARG4), yax)
-
-*  Set start, end, and delta for output axes. 
-
-      x1 = xax(1,1,1,1)
-      y1 = yax(1,1,1,1)
-
-      xf = xax(nx,1,1,1)
-      yf = yax(ny,1,1,1)
-
-*  Gridbox sizes in data units
-      dx = xf - x1
-      IF (nx .GT. 1) dx = (xf-x1)/ REAL(nx-1)
-      dy = yf - y1
-      IF (ny .GT. 1) dy = (yf-y1)/ REAL(ny-1) 
-
-
-*  Compute result
-
-*  Initialize counts.
-
-         DO j = 1, ny
-            DO i = 1, nx
-               obs(i,j,1,1) = 0.
-            ENDDO
-         ENDDO
-
-*  Loop over x and y, compute the number of observations for the gaussian-weighted 
-*  mapping onto the grid.  Lat and longitude may be on the X,Y,Z or T axis of ARG1 
-*  and ARG2, sending them to a subroutine collapses the extra dimensions so the
-*  value can be found.
-
-         DO 300 n = 1, nscat
-
-            CALL pickout2 (arg_1, arg_2, n, xx, yy)
-
-*  If an output axis is modulo, apply modulo adjustment to that coordinate
-*  of the scattered point.
-
-            IF (modulox(1)) CALL modscat (xax, nx, 1, xx)
-            IF (moduloy(2)) CALL modscat (yax, ny, 1, yy)
-
-	    CALL nobs (xx, yy, nx, ny, x1, y1, dx, dy,
-     .		       xf, yf, obs)
-
-C ACM modulo 11/9/00  Put points within dx or dy of the end just beyond the
-C                     other end, and use in the gridding computation.
-
-            IF (modulox(1)) THEN
-               IF ((xx-x1 .GE. 0.) .AND. (xx-x1 .LT. dx) ) THEN
-                  xxend = xf + (xx-x1)
-                  CALL nobs (xxend, yy, nx, ny, x1, y1, dx, dy,
-     .                       xf, yf, obs)
-               ENDIF
-                     
-               IF ((xf-xx .GE. 0.)  .AND. (xf-xx .LT. dx) ) THEN
-                  xxbeg = x1 - (xf-xx)
-                  CALL nobs (xxbeg, yy, nx, ny, x1, y1, dx, dy,
-     .                       xf, yf, obs)
-               ENDIF
-            ENDIF
-
-            IF (moduloy(2)) THEN
-               IF ((yy-y1 .GE. 0.0) .AND.  (yy-y1  .LT. dy) ) THEN
-                  yyend = yf + (yy-y1)
-                  CALL nobs (xx, yyend, nx, ny, x1, y1, dx, dy,
-     .                       xf, yf, obs)
-               ENDIF
-                     
-               IF ((yf-yy .LT. 0.)  .AND.  (yf-yy .LT. dy) ) THEN
-                  yybeg = y1 - (yf-yy)
-                  CALL nobs (xx, yybeg, nx, ny, x1, y1, dx, dy,
-     .		             xf, yf, obs)
-               ENDIF
-            ENDIF
-
-
- 300     CONTINUE
-
-*  Put gridded fcn into result variable.
-
-         k = res_lo_ss(Z_AXIS)
-         l = res_lo_ss(T_AXIS)
-
-         i1 = 1
-         DO 410 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
-            j1 = 1
-            DO 400 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
-
-               result(i,j,k,l) = obs(i1,j1,1,1)
-               j1 = j1 + 1
-
- 400        CONTINUE
-            i1 = i1 + 1
- 410     CONTINUE
-
-      RETURN
-
-900   CONTINUE
-
-      IF (nxpts .NE. nypts) THEN
-         WRITE (errtxt,20) nxpts, nypts
-      ELSE IF (nxpts .EQ. 0) THEN
-         WRITE (errtxt, 30)
-      ENDIF
-      GOTO 999 
-
- 999  CALL EF_BAIL_OUT(id, errtxt)
-      RETURN
-
-
-   20 FORMAT ('Input scattered x, y have different # of points', 2I8)
-
-   30 FORMAT ('No data in scattered x, y points')
-
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-************************************************************************
-
-      END
-
-
diff --git a/external_functions/gridding/scat2grid_std_xyt.F b/external_functions/gridding/scat2grid_std_xyt.F
index 1ce2786..31f0de2 100644
--- a/external_functions/gridding/scat2grid_std_xyt.F
+++ b/external_functions/gridding/scat2grid_std_xyt.F
@@ -36,6 +36,7 @@
 *
 * Ansley Manke
 * April 2011
+* 1/16/2016 Correctly work with irregular grids
 
 * In this subroutine we provide information about
 * the function.  The user configurable information 
@@ -170,7 +171,7 @@
 *
 * ef_set_work_array_dims(id,array #,xlo,ylo,zlo,tlo,xhi,yhi,zhi,thi)
 *
-      INTEGER nxout, nyout, ntout, nx2, ny2, nt2, i, k
+      INTEGER nxout, nyout, ntout, i, k
       INTEGER arg_lo_ss(4,1:EF_MAX_ARGS), arg_hi_ss(4,1:EF_MAX_ARGS),
      .     arg_incr(4,1:EF_MAX_ARGS)
 
@@ -180,24 +181,20 @@
       nyout = 1 + arg_hi_ss(Y_AXIS,ARG6) - arg_lo_ss(Y_AXIS,ARG6)
       ntout = 1 + arg_hi_ss(T_AXIS,ARG7) - arg_lo_ss(T_AXIS,ARG7)
 
-      nx2 = nxout* 2
-      ny2 = nyout* 2
-      nt2 = ntout* 2
-
 * xaxlo  output x axis
-      CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nx2, 1, 1, 1)
+      CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nxout, 1, 1, 1)
 * xaxhi  output x axis
-      CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, nx2, 1, 1, 1)
+      CALL ef_set_work_array_dims (id, 2, 1, 1, 1, 1, nxout, 1, 1, 1)
 
 * yaxlo  output y axis
-      CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, ny2, 1, 1, 1)
+      CALL ef_set_work_array_dims (id, 3, 1, 1, 1, 1, nyout, 1, 1, 1)
 * yaxhi  output y axis
-      CALL ef_set_work_array_dims (id, 4, 1, 1, 1, 1, ny2, 1, 1, 1)
+      CALL ef_set_work_array_dims (id, 4, 1, 1, 1, 1, nyout, 1, 1, 1)
 
 * taxlo  output t axis
-      CALL ef_set_work_array_dims (id, 5, 1, 1, 1, 1, nt2, 1, 1, 1)
+      CALL ef_set_work_array_dims (id, 5, 1, 1, 1, 1, ntout, 1, 1, 1)
 * taxhi  output t axis
-      CALL ef_set_work_array_dims (id, 6, 1, 1, 1, 1, nt2, 1, 1, 1)
+      CALL ef_set_work_array_dims (id, 6, 1, 1, 1, 1, ntout, 1, 1, 1)
 
 * counts
       k = 2
@@ -261,18 +258,12 @@
 
 *  Dimension the work arrays
 
-      REAL*8 xaxlo(wrk1lox:wrk1hix/2, wrk1loy:wrk1hiy,
-     .               wrk1loz:wrk1hiz, wrk1lot:wrk1hit)
-      REAL*8 xaxhi(wrk2lox:wrk2hix/2, wrk2loy:wrk2hiy,
-     .               wrk2loz:wrk2hiz, wrk2lot:wrk2hit)
-      REAL*8 yaxlo(wrk3lox:wrk3hix/2, wrk3loy:wrk3hiy,
-     .               wrk3loz:wrk3hiz, wrk3lot:wrk3hit)
-      REAL*8 yaxhi(wrk4lox:wrk4hix/2, wrk4loy:wrk4hiy, 
-     .               wrk4loz:wrk4hiz, wrk4lot:wrk4hit)
-      REAL*8 taxlo(wrk5lox:wrk5hix/2, wrk5loy:wrk5hiy,
-     .               wrk5loz:wrk5hiz, wrk5lot:wrk5hit)
-      REAL*8 taxhi(wrk6lox:wrk6hix/2, wrk6loy:wrk6hiy,
-     .               wrk6loz:wrk6hiz, wrk6lot:wrk6hit)
+      REAL*8 xaxlo(wrk1lox:wrk1hix)
+      REAL*8 xaxhi(wrk2lox:wrk2hix)
+      REAL*8 yaxlo(wrk3lox:wrk3hix)
+      REAL*8 yaxhi(wrk4lox:wrk4hix)
+      REAL*8 taxlo(wrk5lox:wrk5hix)
+      REAL*8 taxhi(wrk6lox:wrk6hix)
       REAL counts(wrk7lox:wrk7hix, wrk7loy:wrk7hiy,
      .              wrk7loz:wrk7hiz, wrk7lot:wrk7hit) 
 
@@ -285,7 +276,6 @@
 
       REAL x1, y1, xf, yf, tol, diff
       REAL xx, yy, tt, ff, c, fac
-      REAL xmin, xdel, ymin, ydel, tmin, tdel
 
       CHARACTER*250 errtxt
 
@@ -310,29 +300,29 @@
       nypts = 0
       ntpts = 0
 
-      DO 100 m = X_AXIS, T_AXIS
+      DO 110 m = X_AXIS, T_AXIS
          IF (arg_lo_ss(m,ARG1) .GE. 1) THEN
             i1 = arg_lo_ss(m,ARG1)
             i1n = arg_hi_ss(m,ARG1)
             if (i1n-i1 .NE. 0) nxpts = 1 + (i1n - i1)
          ENDIF
- 100  CONTINUE
+ 110  CONTINUE
 
-      DO 110 m = X_AXIS, T_AXIS
+      DO 120 m = X_AXIS, T_AXIS
          IF (arg_lo_ss(m,ARG2) .GE. 1) THEN
             i2 = arg_lo_ss(m,ARG2)
             i2n = arg_hi_ss(m,ARG2)
             if (i2n-i2 .NE. 0) nypts = 1 + (i2n - i2)
          ENDIF
- 110  CONTINUE
+ 120  CONTINUE
 
-      DO 120 m = X_AXIS, T_AXIS
+      DO 130 m = X_AXIS, T_AXIS
          IF (arg_lo_ss(m,ARG3) .GE. 1) THEN
             i2 = arg_lo_ss(m,ARG3)
             i2n = arg_hi_ss(m,ARG3)
             if (i2n-i2 .NE. 0) ntpts = 1 + (i2n - i2)
          ENDIF
-120   CONTINUE
+130   CONTINUE
 
       IF (nxpts .NE. nypts .OR. nxpts .EQ. 0) GOTO 900
       IF (nxpts .NE. ntpts) GOTO 900
@@ -378,15 +368,7 @@ C  Get coordinates of output axes.
 
       CALL EF_GET_BOX_LIMITS(id, ARG7, T_AXIS,
      .   arg_lo_ss(T_AXIS, ARG7), arg_hi_ss(T_AXIS, ARG7), taxlo, taxhi)
-
-      xmin = xaxlo(1,1,1,1)
-      xdel = xaxhi(1,1,1,1) - xmin
-      ymin = yaxlo(1,1,1,1)
-      ydel = yaxhi(1,1,1,1) - ymin
-      tmin = taxlo(1,1,1,1)
-      tdel = taxhi(1,1,1,1) - tmin
  
-
 *  Compute result
 
 *  Initialize result.
@@ -425,22 +407,41 @@ C  Get coordinates of output axes.
 *  of the scattered point.
 
            IF  (modulox(1) .AND. xx.NE.bad_flag(ARG1))
-     .         CALL modscatminmax (xaxlo(1,1,1,1), xaxhi(nx,1,1,1), 1, xx)
+     .         CALL modscatminmax (xaxlo(1), xaxhi(nx), 1, xx)
 
 *  Put fcn into result variable.
 
            k = res_lo_ss(Z_AXIS)
+
            IF (ff .NE. bad_flag(ARG4)) THEN
 
-              i = INT(0.5+(xx - xmin)/xdel)
-              j = INT(0.5+(yy - ymin)/ydel)
-              l = INT(0.5+(tt - tmin)/tdel)
+           l1 = 1
+           DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+              IF ( tt .GE. taxlo(l1) .AND. tt .LT. taxhi(l1) ) THEN
+
+           j1 = 1
+           DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+              IF ( yy .GE. yaxlo(j1) .AND. yy .LT. yaxhi(j1) ) THEN
+
+           i1 = 1
+           DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+              IF ( xx .GE. xaxlo(i1) .AND. xx .LT. xaxhi(i1) ) THEN
 
-              IF ( L.GE.res_lo_ss(T_AXIS) .AND. L.LE.res_hi_ss(T_AXIS) ) THEN
                  result(i,j,k,L) = result(i,j,k,L) + ff
                  counts(i,j,1,L) = counts(i,j,1,L) + 1.0 
               ENDIF
 
+           i1 = i1 + 1
+ 100       CONTINUE
+
+           ENDIF
+           j1 = j1 + 1
+ 200       CONTINUE
+
+           ENDIF
+           l1 = l1 + 1
+ 400       CONTINUE
+
            ENDIF  ! ff not bad
 
 300     CONTINUE
@@ -454,7 +455,7 @@ C  Get coordinates of output axes.
             l1 = 1
             DO 600 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
 
-               IF( counts(i,j,1,L) .GT. 1. ) THEN
+               IF( counts(i,j,1,L) .GT. 0. ) THEN
                   result(i,j,k,l) = result(i,j,k,l)/counts(i,j,1,L)
                ELSE
                   result(i,j,k,l) = bad_flag_result
@@ -482,29 +483,45 @@ C  Get coordinates of output axes.
 *  of the scattered point.
 
             IF  (modulox(1) .AND. xx.NE.bad_flag(ARG1))
-     .         CALL modscatminmax (xaxlo(1,1,1,1), xaxhi(nx,1,1,1), 1, xx)
+     .         CALL modscatminmax (xaxlo(1), xaxhi(nx), 1, xx)
 
 *  Accumulate obs-mean in cells; using counts[k=2]
 
-         IF (ff .NE. bad_flag(ARG4)) THEN
-            
-
-           i = INT(0.5+(xx - xmin)/xdel)
-           j = INT(0.5+(yy - ymin)/ydel)
-           l = INT(0.5+(tt - tmin)/tdel)
-           IF ( L.GE.res_lo_ss(T_AXIS) .AND. L.LE.res_hi_ss(T_AXIS) ) THEN
-
-	      IF (result(i,j,k,l) .NE. bad_flag_result) THEN
-                 IF (tt.GE.taxlo(l1,1,1,1) .AND.
-     .               tt.LT.taxhi(l1,1,1,1) .AND.
-     .               result(i,j,k,l) .NE. bad_flag_result) THEN
-                    diff = ff - result(i,j,k,l)
-                    counts(i,j,2,L) = counts(i,j,2,L) + diff*diff
-                 ENDIF
-	      ENDIF
-           ENDIF
+	 
+*  Put fcn into result variable.
+
+            k = res_lo_ss(Z_AXIS)
+
+            IF (ff .NE. bad_flag(ARG4)) THEN
+
+            l1 = 1
+            DO 1400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+               IF ( tt .GE. taxlo(l1) .AND. tt .LT. taxhi(l1) ) THEN
+
+            j1 = 1
+            DO 1200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+               IF ( yy .GE. yaxlo(j1) .AND. yy .LT. yaxhi(j1) ) THEN
+
+            i1 = 1
+            DO 1100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+               IF ( xx .GE. xaxlo(i1) .AND. xx .LT. xaxhi(i1)  .AND.
+     .              result(i,j,k,l) .NE. bad_flag_result) THEN
+                  diff = ff - result(i,j,k,l)
+                  counts(i,j,2,L) = counts(i,j,2,L) + diff*diff
+               ENDIF
+
+            i1 = i1 + 1
+ 1100       CONTINUE
+
+            ENDIF
+            j1 = j1 + 1
+ 1200       CONTINUE
+
+            ENDIF
+            l1 = l1 + 1
+ 1400       CONTINUE
 
-         ENDIF  ! ff not bad
+            ENDIF  ! ff not bad
 
 800   CONTINUE
 
diff --git a/external_functions/gridding/scat2grid_t.F b/external_functions/gridding/scat2grid_t.F
deleted file mode 100644
index 744920e..0000000
--- a/external_functions/gridding/scat2grid_t.F
+++ /dev/null
@@ -1,381 +0,0 @@
-*
-*  scat2grid_t.F
-*
-*
-*  This software was developed by the Thermal Modeling and Analysis
-*  Project(TMAP) of the National Oceanographic and Atmospheric
-*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
-*  hereafter referred to as NOAA/PMEL/TMAP.
-*
-*  Access and use of this software shall impose the following
-*  obligations and understandings on the user. The user is granted the
-*  right, without anx fee or cost, to use, copy, modify, alter, enhance
-*  and distribute this software, and anx derivative works thereof, and
-*  its supporting documentation for anx 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 anx publications that result from
-*  the use of this software or in anx product that includes this
-*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
-*  in anx advertising or publicity to endorse or promote anx 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 anx support, consulting,
-*  training or assistance of anx kind with regard to the use, operation
-*  and performance of this software nor to provide the user with anx
-*  updates, revisions, new versions or "bug fixes".
-*
-*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND Anx 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 Anx SPECIAL,
-*  INDIRECT OR CONSEQUENTIAL DAMAGES OR Anx DAMAGES WHATSOEVER
-*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
-*
-* Ansley Manke
-* May 2003 
-* 11-Jul-2003  Clean up section where we get box limits
-
-* Input is a set of T coordinates on an abstract axis, and an output time axis.
-* Returns a time series which is the number of points that fall inside of each T cell. 
-*
-
-*
-* In this subroutine we provide information about
-* the function.  The user configurable information 
-* consists of the following:
-*
-* descr              Text description of the function
-*
-* num_args           Required number of arguments
-*
-* axis_inheritance   Type of axis for the result
-*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
-*                       CUSTOM          - user defined axis
-*                       IMPLIED_BY_ARGS - same axis as the incoming argument
-*                       NORMAL          - the result is normal to this axis
-*                       ABSTRACT        - an axis which only has index values
-*
-* piecemeal_ok       For memory optimization:
-*                       axes where calculation may be performed piecemeal
-*                       ( YES, NO )
-* 
-*
-* For each argument we provide the following information:
-*
-* name               Text name for an argument
-*
-* unit               Text units for an argument
-*
-* desc               Text description of an argument
-*
-* axis_influence     Are this argument's axes the same as the result grid?
-*                       ( YES, NO )
-*
-* axis_extend       How much does Ferret need to extend arg limits relative to result 
-*
-
-
-      SUBROUTINE  scat2grid_t_init(id)
-
-      INCLUDE 'ferret_cmn/EF_Util.cmn'
-
-      INTEGER id, arg
-
-************************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-      CHARACTER*126 buff
-      WRITE (buff, 10)
-   10 FORMAT ('Count number of t points in each cell of output axis')
-      CALL ef_set_desc(id, buff)
-
-      CALL ef_set_num_args(id, 2)
-c      CALL ef_set_num_args(id, 3)
-
-      CALL ef_set_axis_inheritance(id, IMPLIED_BY_ARGS, IMPLIED_BY_ARGS, 
-     .      IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
-
-      CALL ef_set_piecemeal_ok(id, NO, NO, NO, NO)
-
-      CALL ef_set_num_work_arrays(id, 1)
-
-* output grid is determined by argument 2. 
-
-      arg = 1
-      CALL ef_set_arg_name(id, arg, 'TPTS')
-      CALL ef_set_arg_desc(id, arg, 
-     .     'T coordinates of scattered input time coordinates')
-      CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
-
-      arg = 2
-      CALL ef_set_arg_name(id, arg, 'TAXIS')
-      CALL ef_set_arg_desc(id, arg, 
-     .     'Output time axis')
-      CALL ef_set_axis_influence(id, arg, NO, NO, NO, YES)
-
-c      arg = 3
-c      CALL ef_set_arg_type(id, arg, STRING_ARG)
-c      CALL ef_set_arg_name(id, arg, 'WHICH')
-c      CALL ef_set_arg_desc(id, arg, 
-c     .     'result to compute: SUM or AVG')
-c      CALL ef_set_axis_influence(id, arg, NO, NO, NO, YES)
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-************************************************************************
-
-      RETURN 
-      END
-
-*
-* In this subroutine we request an amount of storage to be supplied
-* by Ferret and passed as an additional argument.
-*
-      SUBROUTINE scat2grid_t_work_size(id)
-
-      INCLUDE 'ferret_cmn/EF_Util.cmn'
-      INCLUDE 'ferret_cmn/EF_mem_subsc.cmn'
-
-      INTEGER id
-
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-* 
-* Set the work arrays,  X/Y/Z/T dimensions
-*
-* ef_set_work_array_dims(id,array #,xlo,ylo,zlo,tlo,xhi,yhi,zhi,thi)
-*
-      INTEGER ntout, nt2
-      INTEGER arg_lo_ss(4,1:EF_MAX_ARGS), arg_hi_ss(4,1:EF_MAX_ARGS),
-     .     arg_incr(4,1:EF_MAX_ARGS)
-
-      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
-
-      ntout = 1 + arg_hi_ss(T_AXIS,ARG2) - arg_lo_ss(T_AXIS,ARG2)
-
-      nt2 = (ntout+1)* 2
-
-* tax  output t axis
-      CALL ef_set_work_array_dims (id, 1, 1, 1, 1, 1, nt2, 1, 1, 1)
-
-* workspace for computing average or variance; same as result T axis
-
-c      CALL ef_set_work_array_dims (id, 2, 
-c     .                             arg_lo_ss(T_AXIS,ARG2), 1, 1, 1, 
-c     .                             arg_hi_ss(T_AXIS,ARG2), 1, 1, 1)
-
-      RETURN
-      END
-
-*
-* In this subroutine we compute the result
-*
-
-c      SUBROUTINE scat2grid_t_compute(id, arg_1, arg_2, arg_3,
-c     .                               result, tax)
-
-      SUBROUTINE scat2grid_t_compute(id, arg_1, arg_2,
-     .                               result, tax)
-
-*  arg_1  tpts  Scattered t values to be gridded.
-*  arg_2  taxis to use for output
-
-      INCLUDE 'ferret_cmn/EF_Util.cmn'
-      INCLUDE 'ferret_cmn/EF_mem_subsc.cmn'
-
-      INTEGER id
-      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
-      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
-     .     mem1lot:mem1hit)
-      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
-     .     mem2lot:mem2hit)
-
-c      REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz, 
-c     .     mem3lot:mem3hit)
-
-
-      REAL result(memreslox:memreshix, memresloy:memreshiy, 
-     .     memresloz:memreshiz, memreslot:memreshit)
-
-* After initialization, the 'res_' arrays contain indexing information 
-* for the result axes.  The 'arg_' arrays will contain the indexing 
-* information for each variable's axes. 
-
-      INTEGER res_lo_ss(4), res_hi_ss(4), res_incr(4)
-      INTEGER arg_lo_ss(4,EF_MAX_ARGS), arg_hi_ss(4,EF_MAX_ARGS),
-     .     arg_incr(4,EF_MAX_ARGS)
-
-
-************************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-      INTEGER i, j, k, l, m, n
-      INTEGER i1, i1n, i2, i2n, ntgrid
-      INTEGER ntpts
-      REAL tt, del, del1
-      CHARACTER*250 errtxt
-
-c      INTEGER STR_UPCASE, arg, iflag
-c      INTEGER factr
-c      CHARACTER*3 str, rtype
-
-C  variables for checking axis characteristics (modulo axes)
-
-      CHARACTER ax_name(4)*16, ax_units(4)*16
-      LOGICAL backward(4), modulot(4), regular(4)
-
-*  Dimension the work arrays
-
-      REAL*8 tax(wrk1lox:wrk1hix/2, wrk1loy:wrk1hiy,
-     .               wrk1loz:wrk1hiz, wrk1lot:wrk1hit)
-
-      REAL*8 top_box
-
-      CALL ef_get_res_subscripts(id, res_lo_ss, res_hi_ss, res_incr)
-      CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
-      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
-
-
-* Get result type to compute 
-
-c      arg = 3
-c      CALL ef_get_arg_string(id, arg, str)
-c      iflag = STR_UPCASE(rtype, str)
-
-*  Check to see if output axis is modulo
-
-      CALL ef_get_axis_info (id, 2, ax_name, ax_units, backward, 
-     .                       modulot, regular)
-
-*  Find number of points in scattered input points.  1-D arrays defining the 
-*  scattered data points may lie on the X, Y, Z, or T axis of the input argument
-
-      ntpts = 0
-
-      DO 100 m = X_AXIS, T_AXIS
-         IF (arg_lo_ss(m,ARG1) .GE. 1) THEN
-            i1 = arg_lo_ss(m,ARG1)
-            i1n = arg_hi_ss(m,ARG1)
-            if (i1n-i1 .NE. 0) ntpts = 1 + (i1n - i1)
-         ENDIF
- 100  CONTINUE
-
-      IF (ntpts .EQ. 0) GOTO 900
-
-*  Check tax is a T axis
-
-      i2 = arg_lo_ss(T_AXIS,ARG2)
-      i2n = arg_hi_ss(T_AXIS,ARG2)
-      ntgrid = i2n - i2 + 1
-
-      IF (i2 .EQ. ef_unspecified_int4) THEN
-         WRITE (errtxt, *) 'Second argument must be a T axis'
-         GO TO 999
-      ENDIF
-
-C  Get coordinates of output axis.
-
-      call ef_get_coordinates(id, ARG2, T_AXIS, 
-     .   arg_lo_ss(T_AXIS, ARG2), arg_hi_ss(T_AXIS, ARG2), tax)
-
-C  Get cell boundaries
-
-      CALL ef_get_box_lo_lim (id, ARG2, T_AXIS, 
-     .   arg_lo_ss(T_AXIS, ARG2), arg_hi_ss(T_AXIS, ARG2), tax)
-
-      CALL ef_get_box_hi_lim (id, ARG2, T_AXIS,
-     .   arg_hi_ss(T_AXIS, ARG2), arg_hi_ss(T_AXIS, ARG2), top_box)
-
-      L = res_hi_ss(T_AXIS)+1
-      tax(L,1,1,1) = top_box
-
-*  Compute result
-
-*  Initialize counts
-
-      i = res_lo_ss(X_AXIS)
-      j = res_lo_ss(Y_AXIS)
-      k = res_lo_ss(Z_AXIS)
-      DO 300 L = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-         result(i,j,k,l)= 0.
- 300  CONTINUE
-
-*  Loop over input tpts
-
-      L = res_lo_ss(T_AXIS)
-
-      DO 500 n = 1, ntpts
-
-        CALL pickout (arg_1, n, tt)
-
-*  If an output axis is modulo, apply modulo adjustment to that coordinate
-*  of the scattered point.
-
-        IF (modulot(4)) CALL modscat (tax, ntgrid, 1, tt)
-
-        IF ( tt  .NE. bad_flag(ARG3) ) THEN
-           DO 400 L = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS) 
-              IF (n .EQ. 1 .AND. tt .EQ. tax(L,1,1,1) ) THEN
-                 result(i,j,k,l) = result(i,j,k,l) + 1.
-              ELSE IF (tt .GT. tax(L,1,1,1) .AND. 
-     .                 tt .LE. tax(L+1,1,1,1) ) THEN
-                result(i,j,k,l) = result(i,j,k,l) + 1.
-              ENDIF
-  400      CONTINUE
-
-         ENDIF
-
- 500  CONTINUE
-
-c      IF (rtype .EQ. 'AVG') THEN
-c         factr = 1./FLOAT(ntpts)
-c         DO 600 L = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS) 
-c            result(i,j,k,l) = result(i,j,k,l)* factr
-c 600     CONTINUE
-c      ENDIF
-
-      RETURN
-
-900   CONTINUE
-
-      IF (ntpts .EQ. 0) THEN
-        WRITE (errtxt, 30)
-      ENDIF
-      GOTO 999 
-
- 999  CALL EF_BAIL_OUT(id, errtxt)
-      RETURN
-
-   30 FORMAT ('No data in scattered T points')
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-************************************************************************
-
-      END
-
-      SUBROUTINE pickout (atim, n, val)
-
-
-*  ACM 5/2003
-*  Called from the scat2grid_t function.
-*  Pick out nth item from atim, which is really 4-D 
-*  with normal axes on three of the four axes.
-
-      REAL atim(*)
-      REAL val
-      INTEGER n
-
-      val = atim(n)
-
-      RETURN
-      END
diff --git a/external_functions/gridding/tracks2grid_mask_ave_xyt.F b/external_functions/gridding/tracks2grid_mask_ave_xyt.F
index 26f2178..bbe8324 100644
--- a/external_functions/gridding/tracks2grid_mask_ave_xyt.F
+++ b/external_functions/gridding/tracks2grid_mask_ave_xyt.F
@@ -37,6 +37,11 @@
 * Ansley Manke
 * June 2009  from scatgrid_nobs_xyt
 *
+* 9/ 3/2015 Fix LAS/SOCAT ticket 1720, missingness patterns in cruise-weighted 
+*           vs unweighted gridded fields.
+* 1/27/2016 Apply modulo operation to scattered longitudes or time if the output
+*           axis is a modulo axis.
+*
 * The input data points are not a simple scatter.  They are cruise tracks 
 * strung one after another .  (Each track will be a contiguous block of points 
 * in the input data arrays. )  And the subtlety is that each cruise needs to 
@@ -306,20 +311,20 @@
       REAL x1, y1, t1, icruise, ncruise, xf, yf, tf
       REAL xx, yy, tt, vv
 
+*  variables for checking axis characteristics (modulo axes)
+      CHARACTER ax_name(6)*16, ax_units(6)*16
+      LOGICAL backward(6), mdulo(6), regular(6)
+      LOGICAL modulox, modulot
+      REAL*8 modxlen, modtlen
+
 *  Dimension the work arrays
 
-      REAL*8 xaxlo(wrk1lox:wrk1hix, wrk1loy:wrk1hiy,
-     .               wrk1loz:wrk1hiz, wrk1lot:wrk1hit)
-      REAL*8 xaxhi(wrk2lox:wrk2hix, wrk2loy:wrk2hiy,
-     .               wrk2loz:wrk2hiz, wrk2lot:wrk2hit)
-      REAL*8 yaxlo(wrk3lox:wrk3hix, wrk3loy:wrk3hiy,
-     .               wrk3loz:wrk3hiz, wrk3lot:wrk3hit)
-      REAL*8 yaxhi(wrk4lox:wrk4hix, wrk4loy:wrk4hiy, 
-     .               wrk4loz:wrk4hiz, wrk4lot:wrk4hit)
-      REAL*8 taxlo(wrk5lox:wrk5hix, wrk5loy:wrk5hiy,
-     .               wrk5loz:wrk5hiz, wrk5lot:wrk5hit)
-      REAL*8 taxhi(wrk6lox:wrk6hix, wrk6loy:wrk6hiy,
-     .               wrk6loz:wrk6hiz, wrk6lot:wrk6hit)
+      REAL*8 xaxlo(wrk1lox:wrk1hix)
+      REAL*8 xaxhi(wrk2lox:wrk2hix)
+      REAL*8 yaxlo(wrk3lox:wrk3hix)
+      REAL*8 yaxhi(wrk4lox:wrk4hix)
+      REAL*8 taxlo(wrk5lox:wrk5hix)
+      REAL*8 taxhi(wrk6lox:wrk6hix)
 
       REAL obs_cruise(wrk7lox:wrk7hix, wrk7loy:wrk7hiy,
      .               wrk7loz:wrk7hiz, wrk7lot:wrk7hit)
@@ -336,6 +341,23 @@
       CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
       CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
 
+
+*  Check to see if the output X-axis is modulo (does not need to be regular)
+      CALL ef_get_axis_info_6d(id, ARG6, ax_name, ax_units,
+     .                         backward, mdulo, regular)
+      modulox = mdulo(X_AXIS)
+      IF ( modulox ) THEN
+         CALL ef_get_axis_modulo_len(id, ARG6, X_AXIS, modxlen)
+      ENDIF
+
+*  Check to see if the output T-axis is modulo (does not need to be regular)
+      CALL ef_get_axis_info_6d(id, ARG6, ax_name, ax_units,
+     .                         backward, mdulo, regular)
+      modulot = mdulo(T_AXIS)
+      IF ( modulot ) THEN
+         CALL ef_get_axis_modulo_len(id, ARG8, T_AXIS, modtlen)
+      ENDIF
+
       obs_only = 0	! 0 = var 1 is a variable to average.
                         ! 1 = Compute a count of cruises with an obs in the grid cells
 
@@ -484,6 +506,16 @@ C  Get coordinates of output axes.
      .           n, vv, xx, yy, tt, ncc)
       icruise = ncc
 
+*  If output axis is modulo, apply modulo adjustment to that coordinate
+*  of the scattered point.
+         IF ( modulox ) THEN
+            CALL modscat(xaxlo(1), xaxhi(nx), modxlen, 1, xx)
+         ENDIF
+         IF ( modulot ) THEN
+            CALL modscat(taxlo(1), taxhi(nt), modtlen, 1, tt)
+         ENDIF
+
+
 * For each cruise keep track of the index range it spans in the result grid
 * Then at the end of the cruise need only to process that subset of the grid.
       indx(1,1) = nx
@@ -500,9 +532,21 @@ C  Get coordinates of output axes.
          IF (vv .EQ. bad_flag(ARG1) .OR. xx .EQ. bad_flag(ARG2) .OR. 
      .          yy .EQ. bad_flag(ARG3) .OR. tt .EQ. bad_flag(ARG4) ) GOTO 300
      
-	 if (xx.LT.xaxlo(1,1,1,1) .OR. xx.GT.xaxhi(nx,1,1,1)) GOTO 300
-	 if (yy.LT.yaxlo(1,1,1,1) .OR. yy.GT.yaxhi(ny,1,1,1)) GOTO 300
-	 if (tt.LT.taxlo(1,1,1,1) .OR. tt.GT.taxhi(nt,1,1,1)) GOTO 300
+
+
+*  If output axis is modulo, apply modulo adjustment to that coordinate
+*  of the scattered point.
+         IF ( modulox ) THEN
+            CALL modscat(xaxlo(1), xaxhi(nx), modxlen, 1, xx)
+         ENDIF
+         IF ( modulot ) THEN
+            CALL modscat(taxlo(1), taxhi(nt), modtlen, 1, tt)
+         ENDIF
+
+
+	 if (xx.LT.xaxlo(1) .OR. xx.GT.xaxhi(nx)) GOTO 300
+	 if (yy.LT.yaxlo(1) .OR. yy.GT.yaxhi(ny)) GOTO 300
+	 if (tt.LT.taxlo(1) .OR. tt.GT.taxhi(nt)) GOTO 300
 
          IF (ncc .NE. icruise) THEN
 	    
diff --git a/external_functions/gridding/tracks2grid_std_xyt.F b/external_functions/gridding/tracks2grid_std_xyt.F
index e790900..ba20561 100644
--- a/external_functions/gridding/tracks2grid_std_xyt.F
+++ b/external_functions/gridding/tracks2grid_std_xyt.F
@@ -37,6 +37,12 @@
 * Ansley Manke
 * October 2010 from tracks2grid_ave_xyt.F
 *
+* 9/ 3/2015 Fix LAS/SOCAT ticket 1720, missingness patterns in cruise-weighted 
+*           vs unweighted gridded fields.
+* 1/14/2016 Fix LAS/SOCAT ticket 1721, missing/zero where there should be data in cell
+* 1/27/2016 Apply modulo operation to scattered longitudes or time if the output
+*           axis is a modulo axis.
+*
 * This is the description of the averaging function.
 * The input data points are not a simple scatter.  They are cruise tracks 
 * strung one after another.  (Each track will be a contiguous block of points 
@@ -318,6 +324,11 @@
       REAL x1, y1, t1, xf, yf, tf
       REAL xx, yy, tt, vv
 
+*  variables for checking axis characteristics (modulo axes)
+      CHARACTER ax_name(6)*16, ax_units(6)*16
+      LOGICAL backward(6), mdulo(6), regular(6)
+      LOGICAL modulox, modulot
+      REAL*8 modxlen, modtlen
 
       REAL dx, dy, xxbeg, xxend, yybeg, yyend
       REAL cellmean, wt_cruise_mean, unwtd_mean,
@@ -351,6 +362,22 @@
       CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
       CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
 
+*  Check to see if the output X-axis is modulo (does not need to be regular)
+      CALL ef_get_axis_info_6d(id, ARG6, ax_name, ax_units,
+     .                         backward, mdulo, regular)
+      modulox = mdulo(X_AXIS)
+      IF ( modulox ) THEN
+         CALL ef_get_axis_modulo_len(id, ARG6, X_AXIS, modxlen)
+      ENDIF
+
+*  Check to see if the output T-axis is modulo (does not need to be regular)
+      CALL ef_get_axis_info_6d(id, ARG6, ax_name, ax_units,
+     .                         backward, mdulo, regular)
+      modulot = mdulo(T_AXIS)
+      IF ( modulot ) THEN
+         CALL ef_get_axis_modulo_len(id, ARG8, T_AXIS, modtlen)
+      ENDIF
+
       obs_only = 0	! Compute the std for average of variable (e.g. fco2)
 
 *  Find number of points in scattered input points.  1-D arrays defining the 
@@ -522,6 +549,16 @@ C  Get coordinates of output axes.
       n = 1
       CALL pickoutxytcv (obs_only, arg_1, arg_2, arg_3, arg_4, arg_5,
      .           n, vv, xx, yy, tt, ncc)
+
+*  If output axis is modulo, apply modulo adjustment to that coordinate
+*  of the scattered point.
+      IF ( modulox ) THEN
+         CALL modscat(xax(1,1,1,1), xax(nx,2,1,1), modxlen, 1, xx)
+      ENDIF
+      IF ( modulot ) THEN
+         CALL modscat(taxlo(1,1,1,1), tax(nt,2,1,1), modtlen, 1, tt)
+      ENDIF
+
       icruise = ncc
 
 * For each cruise keep track of the index range it spans in the result grid
@@ -541,6 +578,15 @@ C  Get coordinates of output axes.
          IF (vv .EQ. bad_flag(ARG1) .OR. xx .EQ. bad_flag(ARG2) .OR. 
      .          yy .EQ. bad_flag(ARG3) .OR. tt .EQ. bad_flag(ARG4) ) GOTO 300
 
+*  If output axis is modulo, apply modulo adjustment to that coordinate
+*  of the scattered point.
+         IF ( modulox ) THEN
+            CALL modscat(xax(1,1,1,1), xax(nx,2,1,1), modxlen, 1, xx)
+         ENDIF
+         IF ( modulot ) THEN
+            CALL modscat(taxlo(1,1,1,1), tax(nt,2,1,1), modtlen, 1, tt)
+         ENDIF
+
 * We have come to the end of a cruise loop over cells represented by the last cruise,
 * summing and counting the observations in the cruise, computing cruiseweight. 
 * cruisemean is weighted cruise mean in cell
@@ -556,7 +602,7 @@ C  Get coordinates of output axes.
             DO j = indx(2,1), indx(2,2)
             DO i = indx(1,1), indx(1,2)
 
-	       IF (obs_cruise(i,j,2,L).GT.0. .AND. obs_cruise(i,j,3,L).GT.0.) THEN
+	       IF (obs_cruise(i,j,2,L).GT.0. .AND. obs_cruise(i,j,3,L).NE.0.) THEN
 
                   wt_cruise_mean = obs_cruise(i,j,1,L)/obs_cruise(i,j,3,L)
 
@@ -568,7 +614,7 @@ C  Get coordinates of output axes.
 		  wi_sums(i,j,1,l) = wi_sums(i,j,1,l) + 1./obs_cruise(i,j,3,L)
 
 		  nc_cell = cell_avg(i,j,2,L)
-		  IF (nc_cell .GT. wrk7hiz) THEN
+		  IF (nc_cell.GT.wrk7hiz) THEN
                      print *, 'Num_obs in cell at I,J,L = ', i,j,L, 
      .               ' is', nc_cell
 		     CALL ef_bail_out (id,
@@ -623,7 +669,7 @@ C  Get coordinates of output axes.
          DO j = indx(2,1), indx(2,2)
             DO i = indx(1,1), indx(1,2)
 
-	       IF (obs_cruise(i,j,2,L).GT.0. .AND. obs_cruise(i,j,3,L).GT.0.) THEN
+	       IF (obs_cruise(i,j,2,L).GT.0. .AND. obs_cruise(i,j,3,L).NE.0.) THEN
 
                   wt_cruise_mean = obs_cruise(i,j,1,L)/obs_cruise(i,j,3,L)
 
@@ -635,7 +681,7 @@ C  Get coordinates of output axes.
 		  wi_sums(i,j,1,l) = wi_sums(i,j,1,l) + 1./obs_cruise(i,j,3,L)
 
 		  nc_cell = cell_avg(i,j,2,L)
-		  IF (nc_cell .GT. wrk7hiz) THEN
+		  IF (nc_cell.GT.wrk7hiz) THEN
                      print *, 'Num_obs in cell at I,J,L = ', i,j,L, 
      .               ' is', nc_cell
 		     CALL ef_bail_out (id,
@@ -669,12 +715,12 @@ C  Get coordinates of output axes.
                    result(i,j,k,l) = bad_flag_result
                ELSE IF (nc_cell .EQ. 1) THEN
                    result(i,j,k,l) = 0.
-               ELSE IF (wi_sums(i,j,1,l).LE.1.e-6) THEN
-                   result(i,j,k,l) = bad_flag_result
+c               ELSE IF (wi_sums(i,j,1,l).LE.1.e-6) THEN
+c                   result(i,j,k,l) = bad_flag_result
 
 * Compute sum of (cruise-cell-averages - weighted cell mean) squared\
 
-               ELSE IF (nc_cell .GT. 1) THEN
+               ELSE IF (nc_cell.GT.1 .AND. wi_sums(i,j,1,l).NE.0.) THEN
 
                   cellmean = cell_avg(i,j,1,L)/wi_sums(i,j,1,l)
 
@@ -699,7 +745,8 @@ C  Get coordinates of output axes.
                   V2 = wsumsq
                   denom = V1*V1 - V2
 		  
-                  IF (ABS(denom) .GT. 1.e-6) THEN
+c                  IF (ABS(denom).GT.1.e-6) THEN
+                  IF (ABS(denom).NE.0.) THEN
                      result(i,j,k,l) = SQRT(wsumsq_ijl* V1/denom)
                   ELSE
                      result(i,j,k,l) = bad_flag_result
diff --git a/external_functions/las/Makefile b/external_functions/las/Makefile
index 4a43db7..64256cf 100644
--- a/external_functions/las/Makefile
+++ b/external_functions/las/Makefile
@@ -39,8 +39,8 @@ include ../ef_utility/platform_specific.mk.$(BUILDTYPE)
 # Targets
 #
 
-#all:	write_webrow.so write_webrow_gwt.so list_value_xml.so
-all:	write_webrow_gwt.so lon_lat_time_string.so
+#all:	write_webrow.so write_webrow_gwt.so list_value_xml.so lon_lat_time_string.so
+all:
 
 debug:
 	$(MAKE) "FFLAGS = $(FFLAGS) $(FFLAGS_DEBUG)" "CFLAGS = $(CFLAGS) $(CFLAGS_DEBUG)" all
diff --git a/external_functions/matlab/matlab_func_link.c b/external_functions/matlab/matlab_func_link.c
index 6e822ea..659cf69 100644
--- a/external_functions/matlab/matlab_func_link.c
+++ b/external_functions/matlab/matlab_func_link.c
@@ -1,3 +1,4 @@
+#include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
diff --git a/external_functions/matlab/matlab_link.c b/external_functions/matlab/matlab_link.c
index 8a1a9d1..6a15513 100644
--- a/external_functions/matlab/matlab_link.c
+++ b/external_functions/matlab/matlab_link.c
@@ -1,3 +1,4 @@
+#include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
diff --git a/external_functions/v5d/binio.c b/external_functions/v5d/binio.c
index 36ebb34..fab100a 100644
--- a/external_functions/v5d/binio.c
+++ b/external_functions/v5d/binio.c
@@ -27,6 +27,7 @@
  *
  */
 
+#include <Python.h> /* make sure Python.h is first */
 #include "config.h"
 
 /*
diff --git a/external_functions/v5d/v5d.c b/external_functions/v5d/v5d.c
index 6b59ed5..2efafb5 100644
--- a/external_functions/v5d/v5d.c
+++ b/external_functions/v5d/v5d.c
@@ -34,6 +34,7 @@ v5df_fer.h
 
  */
 
+#include <Python.h> /* make sure Python.h is first */
 #include "config.h"
 
 
diff --git a/external_functions/zaxr/Makefile b/external_functions/zaxr/Makefile
index ebbac60..d1fceac 100644
--- a/external_functions/zaxr/Makefile
+++ b/external_functions/zaxr/Makefile
@@ -38,7 +38,7 @@ include ../ef_utility/platform_specific.mk.$(BUILDTYPE)
 #
 
 # all:	zaxreplace_avg.so zaxreplace_bin.so zaxreplace_lin.so zaxreplace_zlev.so zaxreplace_rev.so
-all:	zaxreplace_xyt.so zaxreplace_lin.so  eaxreplace_lin.so  taxreplace_lin.so 
+all:	zaxreplace_xyt.so zaxreplace_lin.so eaxreplace_lin.so taxreplace_lin.so 
 
 debug:
 	$(MAKE) "FFLAGS = $(FFLAGS) $(FFLAGS_DEBUG)" "CFLAGS = $(CFLAGS) $(CFLAGS_DEBUG)" all
diff --git a/fer/AIX_MODIFICATIONS.LOG b/fer/AIX_MODIFICATIONS.LOG
deleted file mode 100644
index 642553f..0000000
--- a/fer/AIX_MODIFICATIONS.LOG
+++ /dev/null
@@ -1,347 +0,0 @@
-List of Modifications as made by Daniel Robitaille    
-				(daniel at sequoia.atmos.berkeley.edu)
-
-on his attempt to compile Ferret under AIX 4.3
-
-This list is intended only as a guide to assist others in compiling and linking
-Ferret under IBM AIX 4.x OS's.  The list is neither edited nor verified, 
-and there may be items which are specific to an individuals system setup.
-
-
-
-
-======================================================================  
-
-setenv TMAP_LOCAL /mnt/sequoia/ark6/daniel/ferret/AIX4.2
-symbolic link cc to gcc
-  (our cc setup is broken, and it was easier than trying to refine "cc"
-   to "gcc" in the various Makefiles)
-  
-=======================================================================
- ./fer/Makefile
-
-  when creating xrevision_type_data.F, ( in "update" section),  just do
-  a normal ">" instead of ">!"
-
-======================================================================
- in ./lib
-   ln -s ../list-2.1/liblist.a .
-   ln -s /usr/local/lib/libXpm.a .
-
-======================================================================
-mv platform_specific_flags.mk.aix platform_specific_flags.mk.rs6000
- and modified it for FFLAGS and some PATHs
-
-HOSTTYPE was "rs6000" by default on our server instead of "aix"
-
-   added -DXT_CODE to CFLAGS and FFLAGS
-        (to compile ./fer/gui/UxMethod.c)
-
-   added -ldl to SYSLIB  (for dynamic loading functions dlopen, etc)
-
-======================================================================
-modified:
-  ./fer/ccr/EF_ExternalUtil.c
-  ./fer/ccr/EF_InternalUtil.c
-
-  removed hard-coded link to /home/r3/tmap/local/sun/include/list.h
-     should be  ../../list-2.1/list.h
-
-================================================================
-
-Modified ./fer/ctx/Makefile
-         ./fer/dat/Makefile
-         ./fer/doo/Makefile
-         ./fer/efn/Makefile
-         ./fer/fmt/Makefile
-         ./fer/ino/Makefile
-         ./fer/mem/Makefile
-         ./fer/ocn/Makefile
-         ./fer/plt/Makefile
-         ./fer/rpn/Makefile
-         ./fer/stk/Makefile
-         ./fer/utl/Makefile
-         ./fer/xeq/Makefile
-         ./fer/special/Makefile
-
-  (that's all the fortran 90 makefiles)
-
- Added:
-
-.SUFFIXES:
-.SUFFIXES: .o .f .F .c .f90 .F90
-
-.F.o :
-        xlf90 $(FFLAGS)           $*.F       
-
-===============================================================
-
-Renamed  "INHERIRED_LIMITS" to "INLIMITS"
- in ./fer/ctx/inherited_limits.F
-    ./fer/ctx/flesh_out_axis.F
-    ./fer/ctx/merge_grid.F
-    ./fer/ctx/mergify_grid_axis.F
-
- It seems AIX compiler doesn't like Function logical with more than
-  8 characters  in their label.
-
-
-===============================================================
-
-The cpp has serious problems with  single-quotes and ?? or ???
-Just need to replace single-quotes with double-quotes.
-
-Modified  
-  ./fer/doo/regrid_comments.F
-      replaced
-           REGRID_COMMENTS = 'regridded ???'
-      by
-           REGRID_COMMENTS = "regridded ???"
-              
-
-  ./fer/fmt/alg_trans_titl.F
-      replaced 
-           ALG_TRANS_TITL = '???'
-      by
-           ALG_TRANS_TITL = "???"
-    
-
-  ./fer/fmt/lohi_string.F
-      replaced
-           strbuf = '???'
-      by
-           strbuf = "???"
-
- ./fer/gnl/pop_cs.F
-      replaced
-           STOP 'cs_stk_??'
-      by
-           STOP "cs_stk_??"
-
- ./fer/ino/read_ez.F
-     replaced
-            6000   CALL ERRMSG( ferr_internal, status, 'READ_EZ ??',
-*4900 )
-     by
-            6000   CALL ERRMSG( ferr_internal, status, "READ_EZ ??",
-*4900 )
-
- ./fer/mem/delete_variable.F
-      replaced
-            CALL WARN( 'CORRUPTION! mr_protected ????' )
-      by
-            CALL WARN( "CORRUPTION! mr_protected ????" )
-
- ./fer/rpn/alg_trans_code.F
-      replaced
-              ALG_TRANS_CODE = '???'
-      by
-              ALG_TRANS_CODE = "???"
-
- ./fer/stk/eval_expr.F
-      replaced
-              IF ( cx_stack_ptr .NE. cx_cmnd+1 ) WRITE (6,*)
-'get_cmnd_???'
-      by
-              IF ( cx_stack_ptr .NE. cx_cmnd+1 ) WRITE (6,*)
-"get_cmnd_???"
-
-
- ./fer/stk/get_prot_cmnd_data.F
-      replaced
-              IF ( cx_stack_ptr .NE. cx_cmnd+nu ) WRITE (6,*)
-'get_cmnd_???'
-      by
-              IF ( cx_stack_ptr .NE. cx_cmnd+nu ) WRITE (6,*)
-"get_cmnd_???"
-
- ./fer/stk/is_do_gc_fcn.F
-      replaced
-              IF ( is_cx(isp) .NE. cx_stack_ptr ) WRITE (6,*)
-'OP_STK??'   ! temp
-      by
-              IF ( is_cx(isp) .NE. cx_stack_ptr ) WRITE (6,*)
-"OP_STK??"   ! temp
-
- ./fer/stk/is_do_op.F
-      replaced
-              IF ( is_cx(isp) .NE. cx_stack_ptr ) WRITE (6,*)
-'OP_STK??'   ! temp
-      by
-              IF ( is_cx(isp) .NE. cx_stack_ptr ) WRITE (6,*)
-"OP_STK??"   ! temp
-
- ./fer/xeq/xeq_define.F
-     replaced
-        5400   CALL ERRMSG( ferr_syntax, status,
-     .                  cmnd_buff(:len_cmnd)//' ???', *5000 )
-     by
-        5400   CALL ERRMSG( ferr_syntax, status,
-     .                  cmnd_buff(:len_cmnd)//" ???", *5000 )
-
- ./fer/xeq/xeq_endif.F
-     replaced
-       5400   CALL ERRMSG( ferr_internal, status, 'ENDIF ifstk??',
-*5000)
-     by
-       5400   CALL ERRMSG( ferr_internal, status, "ENDIF ifstk??",
-*5000)
-
-
-===================================================
- ./fer/gnl/dollar_command.F
-   removed this AIX_XLF special case:
-
-#ifdef AIX_XLF
-           risc_buff = cmnd(iptr+1:)
-           cmnd(dollar:) = arg(1:lenarg) // risc_buff
-           lencmnd = (dollar-1) + lenarg + (lencmnd-iptr)   ! new length
-#else
-           cmnd(dollar:) = arg(1:lenarg) // cmnd(iptr+1:)
-           lencmnd = (dollar-1) + lenarg + (lencmnd-iptr)   ! new length
-#endif
-
-=====================================================
- ./fer/gnl/show_1_function.F
-
-  continuation character "1" was in the wrong column for this statement:
-
-    CHARACTER units*40, gcf_name*40, ef_arg_name*40, ef_descr*80,
-    1    ef_units*40
-
-
- ./fer/mem/find_var_name.F
-  various continous character "1" were in the wrong column
-   (5 of them)
-
-
-======================================================
- ./fer/rpn/alg_break_up.F
-    continuation character "1" was in the wrong column for the data
-statements
-
-======================================================
- ./fer/utl/gcf_get_axis_srcs.F
-    continuation character "2" was in the wrong colunm in two locations
-
-====================================================== 
- ./fer/utl/itsa_modulo_gcf.F
-    continuation character "1" was in the wrong colunm in two locations
-
-======================================================
- ./fer/utl/match_quoted_name.F
-    continuation character "1" was in the wrong colunm in one location
-
-======================================================
- ./fer/xeq/ceq_show.F
-    continuation character "1" was in the wrong colunm in one location
-
-======================================================
-
-copied ./fer/platform_specific_flags.mk.rs6000 to ./ppl
- and made PPLUS_FFLAGS similar to FFLAGS
-
-Added to PPLUS_FFLAGS:
-   -DNO_OPEN_CARRIAGECONTROL
-   -DNO_OPEN_READONLY
-   -Dxgks
-Removed -u from PPLUS_FFLAGS  (allow undefined typing) 
-
-=======================================================
-
- modified   
-    ./ppl/tmapadds/Makefile
-    ./ppl/complot/Makefile
-    ./ppl/ourlib/Makefile
-    ./ppl/plot/Makefile
-    ./ppl/plotlib/Makefile
-    ./ppl/pplepic/Makefile
-    ./ppl/pplp_only/Makefile
-    ./ppl/pplusr/Makefile
-    ./ppl/symlib/Makefile
- 
- (they are all fortran 90 makefiles that need to be modified)
-
- replaced 
-    $(FC) $(PPLUS_FFLAGS) -c $<
- by
-    .SUFFIXES:
-    .SUFFIXES: .o .f .F .c .f90 .F90
-
-    .F.o :
-         $(FC) $(PPLUS_FFLAGS) -c $*.F
-
-========================================================
-
- ./ppl/tmapadds/shade.F
-
- continuation symbol "1" in the wrong column in 3 locations
-
-========================================================
-
-
-  ./fmt/Makefile
-Modified Makefile for fortran compiler lines:
-
-F77=f77
-
-.SUFFIXES:
-.SUFFIXES: .o .f .F .c .f90 .F90
-
-.c.o:
-        (cc $(CFLAGS) -c $(DEBUG) $(<F))
-
-.F.o:
-        $(F77) -c $(DEBUG) $(FFLAGS) $*.F
-
-==========================================================
-
- ./fmt/src/readline.c
-
-added:        
-  #include <string.h>
-  #include <sys/dir.h>
-  #define direct dirent
-  #define d_namlen d_reclen
-
-==========================================================
-
- ./fer/ccr/fermain_c.c
-
-   replaced
-     char *meta_name = ".gif"; /* Unused dummy name */
-     set_batch_graphics_(meta_name);
-      ++i;
-
- by
-     char *meta_name = ".gif"; /* Unused dummy name */
-   #ifdef NO_ENTRY_NAME_UNDERSCORES
-     set_batch_graphics(meta_name);
-   #else
-     set_batch_graphics_(meta_name);
-   #endif
-     ++i;
-
-===========================================================
-
- ./fer/Makefile
-  
-  added special/aix_routines.o to FEROBJS_DFLT
-
-===========================================================
-
- ./fer/ccr/EF_Internal.c
- ./fer/ccr/EF_External.c
-
-   Need to add a NO_ENTRY_NAME_UNDERSCORES case for various
-  cases
-===========================================================
-
- ./fer/gui/ferret_structures.h
- 
-  include   list.h should point to
-    ../../list-2.1/list.h
-
-===========================================================
-
-
diff --git a/fer/AIX_MODIFICATIONS_SCHMIDT.LOG b/fer/AIX_MODIFICATIONS_SCHMIDT.LOG
deleted file mode 100644
index c52e939..0000000
--- a/fer/AIX_MODIFICATIONS_SCHMIDT.LOG
+++ /dev/null
@@ -1,330 +0,0 @@
-AIX modifications log from Martin Schmidt.
-
-export TMAP_LOCAL=/silotmp/mschmidt/ferret_54
-export HOSTTYPE=aix
-
-_______________________________________________________________________________
-cd list-2.1
-Edit the Makefile
-DEFINES = -O2
-
-MANDIR	= ${TMAP_LOCAL}/man
-LIBDIR	= ${TMAP_LOCAL}/lib
-INCDIR	= ${TMAP_LOCAL}/include
-
-mkdir ../lib ../include
-mkdir -p ../man/man3 
-
-Do this as root for install
-su
-make all
-make install
-make install.man
-
-_______________________________________________________________________________
-cd readline-4.1
-
-CFLAGS='-O2 -qmaxmem=8084' ./configure --prefix=$TMAP_LOCAL
-
-make check
-Target "check" is up to date.
-
-su
-cd ..
-chown -R mschmidt.staff include lib man
-
-cd -
-make install
-OK
-
-cd examples
-make
-rl works
-_______________________________________________________________________________
-cd xgks
-
-change the preprocessor call in configure from CPP to CPP -C
-CPP='${CC-cc} -E' ---> CPP='${CC-cc} -E -C' line 345
-
-./configure --prefix=$TMAP_LOCAL
-
-chmod u+w progs/star.f progs/gksdemo.f
-
-nc progs/star.f progs/gksdemo.f
-First line in star.f uncommented
-argument of setcol in line 900 of gksdemo.f removed
-added to gksdemo.f
-      program gks
-      call gksdem
-      stop
-      end
-      
-make all
-make install
-star draws a yellow star
-gksdemo basically works but crashs in some menue items.
-_______________________________________________________________________________
-cd ppl
-cd tmapadds
-nc fillpol.F setup_color_table.F shade.F
-wrong continuation lines changed
-symlib/setsym.F
-wrong program flow corrected
-
-gmake l�uft durch
-_______________________________________________________________________________
-cd fmt  
-edit
-/silotmp/mschmidt/ferret_54/fmt/src/Makefile      
-add$ (FINCLUDES) to comp_nocpp
-nc src/tm_break_date.F
-nc src/tm_secs_from_bc.F
-nc src/tm_secs_to_date.F
-wrong continuation lines changed
-
-cd fer
-
- ./gui/UxXt.h 
-> #if defined(__STDC__) && !defined(SOLARIS) && !defined(sun4) && !defined(aix)
----
-< #if defined(__STDC__) && !defined(SOLARIS) && !defined(sun4)
-=====================================================================
-It is not allowed to redefine MAX_MENU_ITEMS. It is only 20 in the Xm system! 
- ./gui/JC_Utility.h
-> /*#define MAX_MENU_ITEMS 256*/
----
-< #define MAX_MENU_ITEMS 256
-=====================================================================
- ./doo/regrid_comments.F 
-> 	REGRID_COMMENTS = "regridded ???"
----
-< 	REGRID_COMMENTS = 'regridded ???'
-======================================================
-efi/compressk_by.F
-long line splitted
-      CALL ef_set_axis_inheritance(id, IMPLIED_BY_ARGS, IMPLIED_BY_ARGS, 
-     1                             ABSTRACT, IMPLIED_BY_ARGS)
-
-======================================================
- ./fmt/alg_trans_titl.F
-> 	ALG_TRANS_TITL = "???"
----
-< 	ALG_TRANS_TITL = '???'
-======================================================
- ./fmt/lohi_string.F
-> 	   strbuf = "???"
----
-< 	   strbuf = '???'
-======================================================
- ./gnl/name_equal_string.F
->      .			cmnd_buff(:len_cmnd)//" ???", *5000 )
----
-<      .			cmnd_buff(:len_cmnd)//' ???', *5000 )
-======================================================
- ./gnl/pop_cs.F
-> 	      STOP "cs_stk_??"
----
-< 	      STOP 'cs_stk_??'
-======================================================
- ./gnl/show_1_function.F
->      1          ef_units*40, ax_remark*64
----
-< 	1    ef_units*40, ax_remark*64
-> 	         ax_remark = "???"
----
-< 	         ax_remark = '???'
-======================================================
- ./gnl/name_equal_string.F
->      .			cmnd_buff(:len_cmnd)//" ???", *5000 )
----
-<      .			cmnd_buff(:len_cmnd)//' ???', *5000 )
-======================================================
- ./ino/read_ez.F
->  6000	CALL ERRMSG( ferr_internal, status, "READ_EZ ??", *4900 )
----
-<  6000	CALL ERRMSG( ferr_internal, status, 'READ_EZ ??', *4900 )
-======================================================
- ./ino/read_binary.F
-<      1		       ds_grid_start(idim,fvar) + 1
----
-> 	1		       ds_grid_start(idim,fvar) + 1
-======================================================
-./ino/read_delimited.F 
->  6000 CALL ERRMSG( ferr_internal, status, "READ_EZ ??", *4900 )
----
-<  6000 CALL ERRMSG( ferr_internal, status, 'READ_EZ ??', *4900 )
-======================================================
-./ino/read_perl.F 
->     1		          ds_grid_start(idim,fvar) + 1
----
-<     1		          ds_grid_start(idim,fvar) + 1
-======================================================
- ./mem/delete_variable.F
-> 	      CALL WARN( "CORRUPTION! mr_protected ????" )
----
-< 	      CALL WARN( 'CORRUPTION! mr_protected ????' )
-======================================================
- ./mem/find_var_name.F
-<      1	      THEN
----
-> 	1	   THEN
-120c120
-<      1	         THEN
----
-> 	1	      THEN
-134c134
-<      1	   THEN
----
-> 	1	THEN
-157c157
-<      1	   THEN
----
-> 	1	THEN
-170c170
-<      1	         THEN
----
-> 	1	      THEN
-======================================================
-
- ./rpn/alg_break_up.F
-112c112
-<      1    / 2, 3, 4,-1,-1, 5, 5, 1, 4,  3,10,11,-1,12,-2/
----
-> 	1    / 2, 3, 4,-1,-1, 5, 5, 1, 4,  3,10,11,-1,12,-2/
-114c114
-<      1    / 7, 3, 7, 7, 7, 7, 7, 7, 7,  3, 7, 7, 7, 7,-2/
----
-> 	1    / 7, 3, 7, 7, 7, 7, 7, 7, 7,  3, 7, 7, 7, 7,-2/
-116c116
-<      1    / 7, 3,-1,-1,-1, 7, 7, 7, 8,  3, 7,-1,-1, 7,-2/
----
-> 	1    / 7, 3,-1,-1,-1, 7, 7, 7, 8,  3, 7,-1,-1, 7,-2/
-118c118
-<      1    / 7, 4, 4, 6,-1, 7, 7, 7, 4, -1, 7,-1,-1, 7,-2/
----
-> 	1    / 7, 4, 4, 6,-1, 7, 7, 7, 4, -1, 7,-1,-1, 7,-2/
-120c120
-<      1    /-9,-9,-9,-9,-9,-9,-9,-9,-9, -9,-9,-9,-9,-9,-2/
----
-> 	1    /-9,-9,-9,-9,-9,-9,-9,-9,-9, -9,-9,-9,-9,-9,-2/
-122c122
-<      1    / 6, 6, 6, 9, 5, 6, 6, 6, 6,  6, 6, 6, 6, 6, 6/
----
-> 	1    / 6, 6, 6, 9, 5, 6, 6, 6, 6,  6, 6, 6, 6, 6, 6/
-124c124
-<      1    /-9,-9,-9,-9,-9,-9,-9,-9,-9, -9,-9,-9,-9,-9,-2/
----
-> 	1    /-9,-9,-9,-9,-9,-9,-9,-9,-9, -9,-9,-9,-9,-9,-2/
-126c126
-<      1    / 8, 8, 7, 7, 7, 7, 7, 7, 7,  7, 7, 7, 7, 7,-2/
----
-> 	1    / 8, 8, 7, 7, 7, 7, 7, 7, 7,  7, 7, 7, 7, 7,-2/
-128c128
-<      1    / 9, 9, 9, 9, 9, 9, 9, 9, 9,  9, 9, 9, 9, 9, 9/
----
-> 	1    / 9, 9, 9, 9, 9, 9, 9, 9, 9,  9, 9, 9, 9, 9, 9/
-130c130
-<      1    / 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10/
----
-> 	1    / 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10/
-132c132
-<      1    /11,11,-1,-1,-1,11,11,11,11, 11,11,-1, 5,11,11/
----
-> 	1    /11,11,-1,-1,-1,11,11,11,11, 11,11,-1, 5,11,11/
-134c134
-<      1    / 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12/
----
-> 	1    / 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12/
-======================================================
- ./rpn/alg_trans_code.F
-> 	ALG_TRANS_CODE = "???"
----
-< 	ALG_TRANS_CODE = '???'
-
-======================================================
- ./stk/eval_expr.F
-> 	   IF ( cx_stack_ptr .NE. cx_cmnd+1 ) WRITE (6,*) "get_cmnd_???"
----
-< 	   IF ( cx_stack_ptr .NE. cx_cmnd+1 ) WRITE (6,*) 'get_cmnd_???'
-======================================================
- ./stk/get_prot_cmnd_data.F
-< 	   IF ( cx_stack_ptr .NE. cx_cmnd+nu ) WRITE (6,*) "get_cmnd_???"
----
-> 	   IF ( cx_stack_ptr .NE. cx_cmnd+nu ) WRITE (6,*) 'get_cmnd_???'
-======================================================
- ./stk/is_do_gc_fcn.F
-> 	   IF ( is_cx(isp) .NE. cx_stack_ptr ) WRITE (6,*) "OP_STK??"	! temp
----
-< 	   IF ( is_cx(isp) .NE. cx_stack_ptr ) WRITE (6,*) 'OP_STK??'	! temp
-======================================================
- ./stk/is_do_op.F
-> 	   STOP "??? fcn or op"
----
-< 	   STOP '??? fcn or op'
-232c232
-> 	   IF ( is_cx(isp) .NE. cx_stack_ptr ) WRITE (6,*) "OP_STK??"	! temp
----
-< 	   IF ( is_cx(isp) .NE. cx_stack_ptr ) WRITE (6,*) 'OP_STK??'	! temp
-======================================================
-
- ./utl/gcf_get_axis_srcs.F
->      2	   STOP 'gcf_get_axis_srcs'
----
-< 	2	STOP 'gcf_get_axis_srcs'
-93c93
->      2	   STOP 'gcf_get_axis_srcs'
----
-< 	2	STOP 'gcf_get_axis_srcs'
-====================================================== 
- ./utl/itsa_modulo_gcf.F
->      1	.EQ. pgc_axis_supplied_herein 
----
-< 	1	.EQ. pgc_axis_supplied_herein 
-79c79
->      1	.EQ. pgc_axis_supplied_herein 
----
-> 	1	.EQ. pgc_axis_supplied_herein 
-======================================================
- ./utl/match_quoted_name.F
->      1	   UPPER_CASE( test_string(i:i) ) ) GOTO 200
----
-< 	1	   UPPER_CASE( test_string(i:i) ) ) GOTO 200
-======================================================
- ./xeq/xeq_define.F
->      .			buff1(:TM_LENSTR1(buff1))//" = ???", *5000 )
----
-<      .			buff1(:TM_LENSTR1(buff1))//' = ???', *5000 )
-======================================================
- ./xeq/xeq_endif.F
->  5400	CALL ERRMSG( ferr_internal, status, "ENDIF ifstk??", *5000)
----
-<  5400	CALL ERRMSG( ferr_internal, status, 'ENDIF ifstk??', *5000)
-======================================================
-gui/UxXt.h
-comment out line 34
-====================================================== 
-FORTRAN definition instead of underscores
-fmt/src/ez_delimited_read.c FORTRAN(days_from_day0)
-/fmt/src/tm_switch_nan.c
-ef_utility/EF_Util.c
-ccr/free_c_string_array.c
-ccr/init_c_string_array.c
-ccr/copy_c_string.c
-ccr/replace_bad_data_sub.c
-ccr/get_sys_cmnd.c
-ccr/add_c_pointer.c
-ccr/xfer_c_ptrs.c
-ccr/free_c_pointer.c
-ccr/save_c_string.c
-ccr/get_c_string_len.c
-ccr/get_c_string.c
-ccr/get_max_c_string_len.c
-ccr/get_offset_c_string_len.c
-ccr/get_offset_c_string.c
-ccr/binaryRead.h changed definition of FORTRAN
-ccr/compare_c_strings.c
-ccr/replaceable_bad_flags.c
-
-Variable cont_key shifted, since misaligned
-ppl/shade_vars.cmn
-
diff --git a/fer/Makefile b/fer/Makefile
index 30c8ee4..fb3e000 100644
--- a/fer/Makefile
+++ b/fer/Makefile
@@ -14,7 +14,6 @@ include ../site_specific.mk
 include ../platform_specific.mk.$(BUILDTYPE)
 
 PLATFORM := $(shell uname -rs)
-VERSION_INFO := (PyFerret $(PYFERRET_VERSION))
 DATE := $(shell /bin/date +%D)
 
 #
@@ -22,10 +21,10 @@ DATE := $(shell /bin/date +%D)
 #
 
 DIRS = ccr cferbind ctx dat doo efi efn ef_utility fmt gnl grdel \
-       ino mem ocn plt pyf rpn stk utl xeq special
+       ino mem plt pyf rpn stk utl xeq special
 
 LIBS = ccr cferbind ctx dat doo efi efn ef_utility fmt gnl grdel \
-       ino mem ocn plt pyf rpn stk utl xeq 
+       ino mem plt pyf rpn stk utl xeq 
 
 #
 # Targets
@@ -39,6 +38,15 @@ all: optimized
 optimized:
 	$(MAKE) "CFLAGS = $(CFLAGS) -O -DNDEBUG" \
 		"FFLAGS = $(FFLAGS) -O -DNDEBUG" \
+		"VERSION_INFO = (opt)" \
+		"PPLUS_FFLAGS = $(PPLUS_FFLAGS) -O -DNDEBUG" \
+		build
+
+.PHONY : beta
+beta:
+	$(MAKE) "CFLAGS = $(CFLAGS) -O -DNDEBUG" \
+		"FFLAGS = $(FFLAGS) -O -DNDEBUG" \
+		"VERSION_INFO = (beta/opt)" \
 		"PPLUS_FFLAGS = $(PPLUS_FFLAGS) -O -DNDEBUG" \
 		build
 
@@ -46,6 +54,7 @@ optimized:
 debug:
 	$(MAKE) "CFLAGS = $(CFLAGS) -O0 -g" \
 		"FFLAGS = $(FFLAGS) -O0 -g -fbounds-check" \
+		"VERSION_INFO = (beta/dbg)" \
 		"PPLUS_FFLAGS = $(PPLUS_FFLAGS) -O0 -g" \
 		build
 
diff --git a/fer/ccr/EF_InternalUtil.c b/fer/ccr/EF_InternalUtil.c
index f5e1867..3813b33 100644
--- a/fer/ccr/EF_InternalUtil.c
+++ b/fer/ccr/EF_InternalUtil.c
@@ -97,9 +97,8 @@
 
 
 /* .................... Includes .................... */
- 
-#include <Python.h> /* make sure Python.h is first */
 
+#include <Python.h> /* make sure Python.h is first */
 #include <unistd.h>		/* for convenience */
 #include <stdlib.h>		/* for convenience */
 #include <stdio.h>		/* for convenience */
@@ -150,8 +149,6 @@ static int I_have_scanned_already = FALSE;
 static int I_have_warned_already = TRUE; /* Warning turned off Jan '98 */
 
 static void *internal_dlsym(char *name);
-static void *ferret_ef_mem_subsc_so_ptr;
-static void (*copy_ferret_ef_mem_subsc_ptr)(void);
 
 /* ............. Function Declarations .............. */
 /*
@@ -568,6 +565,10 @@ void FORTRAN(eofsvd_tfunc_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *,
                            DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
                            DFTYPE *);
  
+void FORTRAN(bcompressi_init)(int *);
+void FORTRAN(bcompressi_result_limits)(int *);
+void FORTRAN(bcompressi_compute)(int *, DFTYPE *, DFTYPE *);
+ 
 void FORTRAN(compressi_init)(int *);
 void FORTRAN(compressi_result_limits)(int *);
 void FORTRAN(compressi_compute)(int *, DFTYPE *, DFTYPE *);
@@ -833,6 +834,11 @@ void FORTRAN(xcat_str_init)(int *);
 void FORTRAN(xcat_str_result_limits)(int *);
 void FORTRAN(xcat_str_compute)(int *, char *, char *, char *);
 
+void FORTRAN(bxcat_init)(int *);
+void FORTRAN(bxcat_result_limits)(int *);
+void FORTRAN(bxcat_custom_axes)(int *);
+void FORTRAN(bxcat_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
+
 void FORTRAN(ycat_init)(int *);
 void FORTRAN(ycat_result_limits)(int *);
 void FORTRAN(ycat_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
@@ -974,7 +980,19 @@ void FORTRAN(scat2grid_bin_xyt_init)(int *);
 void FORTRAN(scat2grid_bin_xyt_work_size)(int *);
 void FORTRAN(scat2grid_bin_xyt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
   DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
-  DFTYPE *, DFTYPE *);
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(scat2grid_bin_xyz_init)(int *);
+void FORTRAN(scat2grid_bin_xyz_work_size)(int *);
+void FORTRAN(scat2grid_bin_xyz_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(scat2grid_bin_xyzt_init)(int *);
+void FORTRAN(scat2grid_bin_xyzt_work_size)(int *);
+void FORTRAN(scat2grid_bin_xyzt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, 
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, 
+  DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
 void FORTRAN(scat2grid_nbin_xy_init)(int *);
 void FORTRAN(scat2grid_nbin_xy_work_size)(int *);
@@ -1061,6 +1079,15 @@ void FORTRAN(write_webrow_gwt_init)(int *);
 void FORTRAN(write_webrow_gwt_result_limits)(int *);
 void FORTRAN(write_webrow_gwt_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
+void FORTRAN(bxsequence_init)(int *);
+void FORTRAN(bxsequence_result_limits)(int *);
+void FORTRAN(bxsequence_custom_axes)(int *);
+void FORTRAN(bxsequence_compute)(int *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(bxsequence_str_init)(int *);
+void FORTRAN(bxsequence_str_result_limits)(int *);
+void FORTRAN(bxsequence_str_custom_axes)(int *);
+void FORTRAN(bxsequence_str_compute)(int *, char *, char *);
 
 /*
  *  End of declarations for internally linked external functions
@@ -1103,7 +1130,7 @@ int FORTRAN(efcn_scan)( int *gfcn_num_internal )
  *  int_dlsym.pl.  Check that N_INTEF is correctly defined below.
  */
 
-#define N_INTEF 174
+#define N_INTEF 180
 
 struct {
   char funcname[EF_MAX_NAME_LENGTH];
@@ -1190,99 +1217,105 @@ struct {
    strcpy(I_EFnames[78].funcname, "scat2ddups");
    strcpy(I_EFnames[79].funcname, "scat2grid_bin_xy");
    strcpy(I_EFnames[80].funcname, "scat2grid_bin_xyt");
-   strcpy(I_EFnames[81].funcname, "scat2gridgauss_xt");
-   strcpy(I_EFnames[82].funcname, "scat2gridgauss_xt_v0");
-   strcpy(I_EFnames[83].funcname, "scat2gridgauss_xy");
-   strcpy(I_EFnames[84].funcname, "scat2gridgauss_xy_v0");
-   strcpy(I_EFnames[85].funcname, "scat2gridgauss_xz");
-   strcpy(I_EFnames[86].funcname, "scat2gridgauss_xz_v0");
-   strcpy(I_EFnames[87].funcname, "scat2gridgauss_yt");
-   strcpy(I_EFnames[88].funcname, "scat2gridgauss_yt_v0");
-   strcpy(I_EFnames[89].funcname, "scat2gridgauss_yz");
-   strcpy(I_EFnames[90].funcname, "scat2gridgauss_yz_v0");
-   strcpy(I_EFnames[91].funcname, "scat2gridgauss_zt");
-   strcpy(I_EFnames[92].funcname, "scat2gridgauss_zt_v0");
-   strcpy(I_EFnames[93].funcname, "scat2gridlaplace_xt");
-   strcpy(I_EFnames[94].funcname, "scat2gridlaplace_xy");
-   strcpy(I_EFnames[95].funcname, "scat2gridlaplace_xz");
-   strcpy(I_EFnames[96].funcname, "scat2gridlaplace_yt");
-   strcpy(I_EFnames[97].funcname, "scat2gridlaplace_yz");
-   strcpy(I_EFnames[98].funcname, "scat2gridlaplace_zt");
-   strcpy(I_EFnames[99].funcname, "scat2grid_nbin_xy");
-   strcpy(I_EFnames[100].funcname, "scat2grid_nbin_xyt");
-   strcpy(I_EFnames[101].funcname, "scat2grid_nobs_xy");
-   strcpy(I_EFnames[102].funcname, "scat2grid_nobs_xyt");
-   strcpy(I_EFnames[103].funcname, "scat2grid_t");
-   strcpy(I_EFnames[104].funcname, "sorti");
-   strcpy(I_EFnames[105].funcname, "sorti_str");
-   strcpy(I_EFnames[106].funcname, "sortj");
-   strcpy(I_EFnames[107].funcname, "sortj_str");
-   strcpy(I_EFnames[108].funcname, "sortk");
-   strcpy(I_EFnames[109].funcname, "sortk_str");
-   strcpy(I_EFnames[110].funcname, "sortl");
-   strcpy(I_EFnames[111].funcname, "sortl_str");
-   strcpy(I_EFnames[112].funcname, "sortm");
-   strcpy(I_EFnames[113].funcname, "sortm_str");
-   strcpy(I_EFnames[114].funcname, "sortn");
-   strcpy(I_EFnames[115].funcname, "sortn_str");
-   strcpy(I_EFnames[116].funcname, "tauto_cor");
-   strcpy(I_EFnames[117].funcname, "tax_datestring");
-   strcpy(I_EFnames[118].funcname, "tax_day");
-   strcpy(I_EFnames[119].funcname, "tax_dayfrac");
-   strcpy(I_EFnames[120].funcname, "tax_jday");
-   strcpy(I_EFnames[121].funcname, "tax_jday1900");
-   strcpy(I_EFnames[122].funcname, "tax_month");
-   strcpy(I_EFnames[123].funcname, "tax_times");
-   strcpy(I_EFnames[124].funcname, "tax_tstep");
-   strcpy(I_EFnames[125].funcname, "tax_units");
-   strcpy(I_EFnames[126].funcname, "tax_year");
-   strcpy(I_EFnames[127].funcname, "tax_yearfrac");
-   strcpy(I_EFnames[128].funcname, "tcat");
-   strcpy(I_EFnames[129].funcname, "tcat_str");
-   strcpy(I_EFnames[130].funcname, "test_opendap");
-   strcpy(I_EFnames[131].funcname, "transpose_xt");
-   strcpy(I_EFnames[132].funcname, "transpose_xy");
-   strcpy(I_EFnames[133].funcname, "transpose_xz");
-   strcpy(I_EFnames[134].funcname, "transpose_yt");
-   strcpy(I_EFnames[135].funcname, "transpose_yz");
-   strcpy(I_EFnames[136].funcname, "transpose_zt");
-   strcpy(I_EFnames[137].funcname, "treverse");
-   strcpy(I_EFnames[138].funcname, "unique_str2int");
-   strcpy(I_EFnames[139].funcname, "write_webrow");
-   strcpy(I_EFnames[140].funcname, "xauto_cor");
-   strcpy(I_EFnames[141].funcname, "xcat");
-   strcpy(I_EFnames[142].funcname, "xcat_str");
-   strcpy(I_EFnames[143].funcname, "xreverse");
-   strcpy(I_EFnames[144].funcname, "ycat");
-   strcpy(I_EFnames[145].funcname, "ycat_str");
-   strcpy(I_EFnames[146].funcname, "yreverse");
-   strcpy(I_EFnames[147].funcname, "zaxreplace_avg");
-   strcpy(I_EFnames[148].funcname, "zaxreplace_bin");
-   strcpy(I_EFnames[149].funcname, "zaxreplace_rev");
-   strcpy(I_EFnames[150].funcname, "zaxreplace_zlev");
-   strcpy(I_EFnames[151].funcname, "zcat");
-   strcpy(I_EFnames[152].funcname, "zcat_str");
-   strcpy(I_EFnames[153].funcname, "zreverse");
-   strcpy(I_EFnames[154].funcname, "eofsvd_space");
-   strcpy(I_EFnames[155].funcname, "eofsvd_stat");
-   strcpy(I_EFnames[156].funcname, "eofsvd_tfunc");
-   strcpy(I_EFnames[157].funcname, "expnd_by_len");
-   strcpy(I_EFnames[158].funcname, "expnd_by_len_str");
-   strcpy(I_EFnames[159].funcname, "fc_isubset");
-   strcpy(I_EFnames[160].funcname, "expndi_by_z_counts");
-   strcpy(I_EFnames[161].funcname, "expndi_id_by_z_counts");
-   strcpy(I_EFnames[162].funcname, "expndi_by_m_counts");
-   strcpy(I_EFnames[163].funcname, "str_mask");
-   strcpy(I_EFnames[164].funcname, "samplexyt_nrst");
-   strcpy(I_EFnames[165].funcname, "separate");
-   strcpy(I_EFnames[166].funcname, "time_reformat");
-   strcpy(I_EFnames[167].funcname, "ft_to_orthogonal");
-   strcpy(I_EFnames[168].funcname, "curv_to_rect_fsu");
-   strcpy(I_EFnames[169].funcname, "piecewise3");
-   strcpy(I_EFnames[170].funcname, "sample_fast_i");
-   strcpy(I_EFnames[171].funcname, "sample_fast_i_str");
-   strcpy(I_EFnames[172].funcname, "separate_str");
-   strcpy(I_EFnames[173].funcname, "write_webrow_gwt");
+   strcpy(I_EFnames[81].funcname, "scat2grid_bin_xyz");
+   strcpy(I_EFnames[82].funcname, "scat2gridgauss_xt");
+   strcpy(I_EFnames[83].funcname, "scat2gridgauss_xt_v0");
+   strcpy(I_EFnames[84].funcname, "scat2gridgauss_xy");
+   strcpy(I_EFnames[85].funcname, "scat2gridgauss_xy_v0");
+   strcpy(I_EFnames[86].funcname, "scat2gridgauss_xz");
+   strcpy(I_EFnames[87].funcname, "scat2gridgauss_xz_v0");
+   strcpy(I_EFnames[88].funcname, "scat2gridgauss_yt");
+   strcpy(I_EFnames[89].funcname, "scat2gridgauss_yt_v0");
+   strcpy(I_EFnames[90].funcname, "scat2gridgauss_yz");
+   strcpy(I_EFnames[91].funcname, "scat2gridgauss_yz_v0");
+   strcpy(I_EFnames[92].funcname, "scat2gridgauss_zt");
+   strcpy(I_EFnames[93].funcname, "scat2gridgauss_zt_v0");
+   strcpy(I_EFnames[94].funcname, "scat2gridlaplace_xt");
+   strcpy(I_EFnames[95].funcname, "scat2gridlaplace_xy");
+   strcpy(I_EFnames[96].funcname, "scat2gridlaplace_xz");
+   strcpy(I_EFnames[97].funcname, "scat2gridlaplace_yt");
+   strcpy(I_EFnames[98].funcname, "scat2gridlaplace_yz");
+   strcpy(I_EFnames[99].funcname, "scat2gridlaplace_zt");
+   strcpy(I_EFnames[100].funcname, "scat2grid_nbin_xy");
+   strcpy(I_EFnames[101].funcname, "scat2grid_nbin_xyt");
+   strcpy(I_EFnames[102].funcname, "scat2grid_nobs_xy");
+   strcpy(I_EFnames[103].funcname, "scat2grid_nobs_xyt");
+   strcpy(I_EFnames[104].funcname, "scat2grid_t");
+   strcpy(I_EFnames[105].funcname, "sorti");
+   strcpy(I_EFnames[106].funcname, "sorti_str");
+   strcpy(I_EFnames[107].funcname, "sortj");
+   strcpy(I_EFnames[108].funcname, "sortj_str");
+   strcpy(I_EFnames[109].funcname, "sortk");
+   strcpy(I_EFnames[110].funcname, "sortk_str");
+   strcpy(I_EFnames[111].funcname, "sortl");
+   strcpy(I_EFnames[112].funcname, "sortl_str");
+   strcpy(I_EFnames[113].funcname, "sortm");
+   strcpy(I_EFnames[114].funcname, "sortm_str");
+   strcpy(I_EFnames[115].funcname, "sortn");
+   strcpy(I_EFnames[116].funcname, "sortn_str");
+   strcpy(I_EFnames[117].funcname, "tauto_cor");
+   strcpy(I_EFnames[118].funcname, "tax_datestring");
+   strcpy(I_EFnames[119].funcname, "tax_day");
+   strcpy(I_EFnames[120].funcname, "tax_dayfrac");
+   strcpy(I_EFnames[121].funcname, "tax_jday");
+   strcpy(I_EFnames[122].funcname, "tax_jday1900");
+   strcpy(I_EFnames[123].funcname, "tax_month");
+   strcpy(I_EFnames[124].funcname, "tax_times");
+   strcpy(I_EFnames[125].funcname, "tax_tstep");
+   strcpy(I_EFnames[126].funcname, "tax_units");
+   strcpy(I_EFnames[127].funcname, "tax_year");
+   strcpy(I_EFnames[128].funcname, "tax_yearfrac");
+   strcpy(I_EFnames[129].funcname, "tcat");
+   strcpy(I_EFnames[130].funcname, "tcat_str");
+   strcpy(I_EFnames[131].funcname, "test_opendap");
+   strcpy(I_EFnames[132].funcname, "transpose_xt");
+   strcpy(I_EFnames[133].funcname, "transpose_xy");
+   strcpy(I_EFnames[134].funcname, "transpose_xz");
+   strcpy(I_EFnames[135].funcname, "transpose_yt");
+   strcpy(I_EFnames[136].funcname, "transpose_yz");
+   strcpy(I_EFnames[137].funcname, "transpose_zt");
+   strcpy(I_EFnames[138].funcname, "treverse");
+   strcpy(I_EFnames[139].funcname, "unique_str2int");
+   strcpy(I_EFnames[140].funcname, "write_webrow");
+   strcpy(I_EFnames[141].funcname, "xauto_cor");
+   strcpy(I_EFnames[142].funcname, "xcat");
+   strcpy(I_EFnames[143].funcname, "xcat_str");
+   strcpy(I_EFnames[144].funcname, "xreverse");
+   strcpy(I_EFnames[145].funcname, "ycat");
+   strcpy(I_EFnames[146].funcname, "ycat_str");
+   strcpy(I_EFnames[147].funcname, "yreverse");
+   strcpy(I_EFnames[148].funcname, "zaxreplace_avg");
+   strcpy(I_EFnames[149].funcname, "zaxreplace_bin");
+   strcpy(I_EFnames[150].funcname, "zaxreplace_rev");
+   strcpy(I_EFnames[151].funcname, "zaxreplace_zlev");
+   strcpy(I_EFnames[152].funcname, "zcat");
+   strcpy(I_EFnames[153].funcname, "zcat_str");
+   strcpy(I_EFnames[154].funcname, "zreverse");
+   strcpy(I_EFnames[155].funcname, "eofsvd_space");
+   strcpy(I_EFnames[156].funcname, "eofsvd_stat");
+   strcpy(I_EFnames[157].funcname, "eofsvd_tfunc");
+   strcpy(I_EFnames[158].funcname, "expnd_by_len");
+   strcpy(I_EFnames[159].funcname, "expnd_by_len_str");
+   strcpy(I_EFnames[160].funcname, "fc_isubset");
+   strcpy(I_EFnames[161].funcname, "expndi_by_z_counts");
+   strcpy(I_EFnames[162].funcname, "expndi_id_by_z_counts");
+   strcpy(I_EFnames[163].funcname, "expndi_by_m_counts");
+   strcpy(I_EFnames[164].funcname, "str_mask");
+   strcpy(I_EFnames[165].funcname, "samplexyt_nrst");
+   strcpy(I_EFnames[166].funcname, "separate");
+   strcpy(I_EFnames[167].funcname, "time_reformat");
+   strcpy(I_EFnames[168].funcname, "ft_to_orthogonal");
+   strcpy(I_EFnames[169].funcname, "curv_to_rect_fsu");
+   strcpy(I_EFnames[170].funcname, "piecewise3");
+   strcpy(I_EFnames[171].funcname, "sample_fast_i");
+   strcpy(I_EFnames[172].funcname, "sample_fast_i_str");
+   strcpy(I_EFnames[173].funcname, "separate_str");
+   strcpy(I_EFnames[174].funcname, "write_webrow_gwt");
+   strcpy(I_EFnames[175].funcname, "bxcat");
+   strcpy(I_EFnames[176].funcname, "bxsequence");
+   strcpy(I_EFnames[177].funcname, "bxsequence_str");
+   strcpy(I_EFnames[178].funcname, "bcompressi");
+   strcpy(I_EFnames[179].funcname, "scat2grid_bin_xyzt");
 
 /*    
  *  ------------------------------------ 
@@ -1302,40 +1335,6 @@ struct {
   }
 
   /*
-   * Open $FER_LIBS/ferret_ef_mem_subsc.so with RTLD_GLOBAL flag to create
-   * the external copy of the FERRET_EF_MEM_SUBSC common block.
-   */
-  path_ptr = getenv("FER_LIBS");
-  if ( path_ptr == NULL ) {
-     fputs("**ERROR: efcn_scan: FER_LIBS is not defined\n", stderr);
-     return_val = -1;
-     return return_val;
-  }
-  sprintf(path, "%s/ferret_ef_mem_subsc.so", path_ptr);
-  ferret_ef_mem_subsc_so_ptr = dlopen(path, RTLD_LAZY | RTLD_GLOBAL);
-  if ( ferret_ef_mem_subsc_so_ptr == NULL ) {
-     /*
-      * fprintf(stderr, "**ERROR: efcn_scan: dlopen of %s\n"
-      *                 "  failed -- %s\n", path, dlerror());
-      * return_val = -1;
-      * return return_val;
-      */
-     copy_ferret_ef_mem_subsc_ptr = NULL;
-  }
-  else {
-     copy_ferret_ef_mem_subsc_ptr = 
-             (void (*)(void)) dlsym(ferret_ef_mem_subsc_so_ptr,
-                                    "copy_ferret_ef_mem_subsc_");
-     if ( copy_ferret_ef_mem_subsc_ptr == NULL ) {
-        fprintf(stderr, "**ERROR: efcn_scan: copy_ferret_ef_mem_subsc_\n"
-                        "  not found in $FER_LIBS/ferret_ef_mem_subsc.so\n"
-                        "  -- %s\n", dlerror());
-        return_val = -1;
-        return return_val;
-     }
-  }
-
-  /*
    * Get internally linked external functions;  and add all 
    * the names and associated directory information to the 
    * STATIC_ExternalFunctionList.
@@ -1978,10 +1977,11 @@ void FORTRAN(efcn_compute)( int *id_ptr, int *narg_ptr, int *cx_list_ptr, int *m
   int internally_linked = FALSE;
 
   /*
-   * Prototype all the functions needed for varying numbers of
-   * arguments and work arrays.
+   * Pointers to all the functions (with protoypes) needed 
+   * for varying numbers of arguments and work arrays.
    */
 
+  void (*copy_ferret_ef_mem_subsc_ptr)(void);
   void (*fptr)(int *);
   void (*f1arg)(int *, DFTYPE *, DFTYPE *);
   void (*f2arg)(int *, DFTYPE *, DFTYPE *, DFTYPE *);
@@ -2141,15 +2141,24 @@ void FORTRAN(efcn_compute)( int *id_ptr, int *narg_ptr, int *cx_list_ptr, int *m
 
     }
 
-    /*
-     * Copy the contents of Ferret's internal copy of the common block
-     * FERRET_EF_MEM_SUBSC to the external copy of this same common
-     * block using load_ferret_ef_mem_subsc_ in libferret_ef_mem_subsc.so
-     * Because libferret_ef_mem_subsc.so was loaded with RTLD_GLOBAL,
-     * this external copy of the common block will be seen by other
-     * Ferret Fotran external functions in shared-object libraries.
-     */
-    (*copy_ferret_ef_mem_subsc_ptr)();
+    if ( ! internally_linked ) {
+        /*
+         * Copy the memory subscripts to the copy of the EF_MEM_SUBSC 
+         * common block found in the external function.  The EF_MEM_SUBSC
+         * common block in Ferret is not visible to the external function
+         * because the pyferret module is a shared object library that
+         * Python has loaded privately.
+         */
+        copy_ferret_ef_mem_subsc_ptr = (void (*)(void)) 
+                dlsym(ef_ptr->handle, "copy_ferret_ef_mem_subsc_");
+        if ( copy_ferret_ef_mem_subsc_ptr == NULL ) {
+            fprintf(stderr, "**ERROR: efcn_scan: copy_ferret_ef_mem_subsc_\n"
+                            "  not found -- %s\n", dlerror());
+            *status = FERR_EF_ERROR;
+            return;
+        }
+        (*copy_ferret_ef_mem_subsc_ptr)();
+    }
 
     /*
      * Prepare for bailout possibilities by setting a signal handler for
@@ -2181,7 +2190,6 @@ void FORTRAN(efcn_compute)( int *id_ptr, int *narg_ptr, int *cx_list_ptr, int *m
 
     canjump = 1;
 
-
     /*
      * Now go ahead and call the external function's "_compute_" function,
      * prototyping it for the number of arguments expected.
@@ -3537,6 +3545,16 @@ else if ( !strcmp(name,"scat2grid_bin_xyt_init_") ) return (void *)FORTRAN(scat2
 else if ( !strcmp(name,"scat2grid_bin_xyt_work_size_") ) return (void *)FORTRAN(scat2grid_bin_xyt_work_size);
 else if ( !strcmp(name,"scat2grid_bin_xyt_compute_") ) return (void *)FORTRAN(scat2grid_bin_xyt_compute);
 
+/* scat2grid_bin_xyz.F */
+else if ( !strcmp(name,"scat2grid_bin_xyz_init_") ) return (void *)FORTRAN(scat2grid_bin_xyz_init);
+else if ( !strcmp(name,"scat2grid_bin_xyz_work_size_") ) return (void *)FORTRAN(scat2grid_bin_xyz_work_size);
+else if ( !strcmp(name,"scat2grid_bin_xyz_compute_") ) return (void *)FORTRAN(scat2grid_bin_xyz_compute);
+
+/* scat2grid_bin_xyzt.F */
+else if ( !strcmp(name,"scat2grid_bin_xyzt_init_") ) return (void *)FORTRAN(scat2grid_bin_xyzt_init);
+else if ( !strcmp(name,"scat2grid_bin_xyzt_work_size_") ) return (void *)FORTRAN(scat2grid_bin_xyzt_work_size);
+else if ( !strcmp(name,"scat2grid_bin_xyzt_compute_") ) return (void *)FORTRAN(scat2grid_bin_xyzt_compute);
+
 /* scat2grid_nbin_xy.F */
 else if ( !strcmp(name,"scat2grid_nbin_xy_init_") ) return (void *)FORTRAN(scat2grid_nbin_xy_init);
 else if ( !strcmp(name,"scat2grid_nbin_xy_work_size_") ) return (void *)FORTRAN(scat2grid_nbin_xy_work_size);
@@ -4044,6 +4062,12 @@ else if ( !strcmp(name,"xcat_str_init_") ) return (void *)FORTRAN(xcat_str_init)
 else if ( !strcmp(name,"xcat_str_result_limits_") ) return (void *)FORTRAN(xcat_str_result_limits);
 else if ( !strcmp(name,"xcat_str_compute_") ) return (void *)FORTRAN(xcat_str_compute);
 
+/* bxcat.F */
+else if ( !strcmp(name,"bxcat_init_") ) return (void *)FORTRAN(bxcat_init);
+else if ( !strcmp(name,"bxcat_result_limits_") ) return (void *)FORTRAN(bxcat_result_limits);
+else if ( !strcmp(name,"bxcat_custom_axes_") ) return (void *)FORTRAN(bxcat_custom_axes);
+else if ( !strcmp(name,"bxcat_compute_") ) return (void *)FORTRAN(bxcat_compute);
+
 /* ycat.F */
 else if ( !strcmp(name,"ycat_init_") ) return (void *)FORTRAN(ycat_init);
 else if ( !strcmp(name,"ycat_result_limits_") ) return (void *)FORTRAN(ycat_result_limits);
@@ -4257,6 +4281,21 @@ else if ( !strcmp(name,"write_webrow_gwt_init_") ) return (void *)FORTRAN(write_
 else if ( !strcmp(name,"write_webrow_gwt_result_limits_") ) return (void *)FORTRAN(write_webrow_gwt_result_limits);
 else if ( !strcmp(name,"write_webrow_gwt_compute_") ) return (void *)FORTRAN(write_webrow_gwt_compute);
 
+else if ( !strcmp(name,"bxsequence_init_") ) return (void *)FORTRAN(bxsequence_init);
+else if ( !strcmp(name,"bxsequence_result_limits_") ) return (void *)FORTRAN(bxsequence_result_limits);
+else if ( !strcmp(name,"bxsequence_custom_axes_") ) return (void *)FORTRAN(bxsequence_custom_axes);
+else if ( !strcmp(name,"bxsequence_compute_") ) return (void *)FORTRAN(bxsequence_compute);
+
+else if ( !strcmp(name,"bxsequence_str_init_") ) return (void *)FORTRAN(bxsequence_str_init);
+else if ( !strcmp(name,"bxsequence_str_result_limits_") ) return (void *)FORTRAN(bxsequence_str_result_limits);
+else if ( !strcmp(name,"bxsequence_str_custom_axes_") ) return (void *)FORTRAN(bxsequence_str_custom_axes);
+else if ( !strcmp(name,"bxsequence_str_compute_") ) return (void *)FORTRAN(bxsequence_str_compute);
+
+/* bcompressi.F */
+else if ( !strcmp(name,"bcompressi_init_") ) return (void *)FORTRAN(bcompressi_init);
+else if ( !strcmp(name,"bcompressi_result_limits_") ) return (void *)FORTRAN(bcompressi_result_limits);
+else if ( !strcmp(name,"bcompressi_compute_") ) return (void *)FORTRAN(bcompressi_compute);
+
 return NULL;
  }
 /*  End of function pointer list for internally-linked External Functions
diff --git a/fer/ccr/SOURCE_FILES b/fer/ccr/SOURCE_FILES
index 4848330..b8334f6 100644
--- a/fer/ccr/SOURCE_FILES
+++ b/fer/ccr/SOURCE_FILES
@@ -32,6 +32,7 @@ get_sys_cmnd.c\
 init_c_string_array.c\
 linux_routines_c.c\
 list.c\
+recover_cached_2d_array_point.c\
 recover_cached_full_array.c\
 replaceable_bad_flags.c \
 replace_bad_data_sub.c \
diff --git a/fer/ccr/binaryRead.c b/fer/ccr/binaryRead.c
index 4fa7652..75d0698 100644
--- a/fer/ccr/binaryRead.c
+++ b/fer/ccr/binaryRead.c
@@ -2,9 +2,6 @@
  *
  * Utility functions for reading binary data
  *
- * $Id: binaryRead.c 14442 2012-07-19 22:54:09Z ksmith $
- *
- *
  * *kob*  4/06 v600 - changes for 64-bit build 
  *
  * * 1/12 *acm* - Ferret 6.8 Changes for double-precision ferret,
diff --git a/fer/ccr/binaryRead.h b/fer/ccr/binaryRead.h
index 8843d4d..6079dd8 100644
--- a/fer/ccr/binaryRead.h
+++ b/fer/ccr/binaryRead.h
@@ -3,8 +3,6 @@
 /*
  * Utility functions for reading binary data
  *
- * $Id: binaryRead.h 14336 2012-07-10 23:31:50Z ksmith $
- *
  * *acm*  5/07 v603 - fix prototype of createBinaryRead to use MAXDIMS rather 
  *                    than hardwired to 4; to match what is in .c file.
  *			  (Found by Andy Jacobson doing the MAC build.)
diff --git a/fer/ccr/cache_full_array.c b/fer/ccr/cache_full_array.c
index 49ada13..f1a3c30 100644
--- a/fer/ccr/cache_full_array.c
+++ b/fer/ccr/cache_full_array.c
@@ -49,6 +49,7 @@
  * revision 0.0 - 5/5/15
  */
 
+#include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
 #include "ferret.h"
  
diff --git a/fer/ccr/free_cached_full_array.c b/fer/ccr/free_cached_full_array.c
index 594df6c..6a2b681 100644
--- a/fer/ccr/free_cached_full_array.c
+++ b/fer/ccr/free_cached_full_array.c
@@ -48,6 +48,7 @@
  * 6/25/2015 *acm* set the pointer value to 0, fixing ticket 2305
  */
 
+#include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
 #include <assert.h>
 #include "ferret.h"
diff --git a/fer/ccr/free_cached_full_array.c b/fer/ccr/recover_cached_2d_array_point.c
similarity index 79%
copy from fer/ccr/free_cached_full_array.c
copy to fer/ccr/recover_cached_2d_array_point.c
index 594df6c..87739a4 100644
--- a/fer/ccr/free_cached_full_array.c
+++ b/fer/ccr/recover_cached_2d_array_point.c
@@ -37,37 +37,39 @@
 
 
 /*
- * free_cached_full_array.c
+ * recover_cached_2d_array_point.c
  *
- * Free a cached full array from c heap storage
+ * Copy the requested single point of a cached full array from c heap storage
+ * into Ferret array memory
  *
  * programmer - steve hankin
  * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
  *
  * revision 0.0 - 5/5/15
- * 6/25/2015 *acm* set the pointer value to 0, fixing ticket 2305
  */
 
+#include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
-#include <assert.h>
 #include "ferret.h"
-
  
-void FORTRAN(free_cached_full_array)( double **pointer_val )
+void FORTRAN(recover_cached_2d_array_point)(
+					 double *array, int *dim1, int *dim2, 
+                                         int *i, int *j,
+					 double **pointer_val )
 
 /*
-  see complementary routines recover_cached_full_array and cache_full_array.c
+  see related routine recover_cached_full_array.c
+  FORTRAN subscripting reversed from C, and indexed to 1 instead of 0
 */
 
 {
   double *ptr;
+  int index;
 
   ptr = *pointer_val;
 
-  if (ptr) {
-	  free(ptr);  // could do assert on ptr==0
-	  *pointer_val=0;
-  }
+  index = (*j-1) * *dim1 + (*i-1);
+  array[0] = ptr[index];
 
   return;
 }
diff --git a/fer/ccr/recover_cached_full_array.c b/fer/ccr/recover_cached_full_array.c
index 51e9844..3a2b190 100644
--- a/fer/ccr/recover_cached_full_array.c
+++ b/fer/ccr/recover_cached_full_array.c
@@ -47,6 +47,7 @@
  * revision 0.0 - 5/5/15
  */
 
+#include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
 #include "ferret.h"
  
diff --git a/fer/ccr/save_arg_pointers.c b/fer/ccr/save_arg_pointers.c
index 70f576e..cac9743 100644
--- a/fer/ccr/save_arg_pointers.c
+++ b/fer/ccr/save_arg_pointers.c
@@ -53,6 +53,7 @@
  *              definition of macro DFTYPE in ferret.h
  */
 
+#include <Python.h> /* make sure Python.h is first */
 #include "ferret.h"
  
 /* global cache pointer */
diff --git a/fer/ccr/set_null_c_string_array.c b/fer/ccr/set_null_c_string_array.c
index d473d5b..035a17c 100644
--- a/fer/ccr/set_null_c_string_array.c
+++ b/fer/ccr/set_null_c_string_array.c
@@ -37,6 +37,7 @@
 /* 
  *   Fill the indicated region of memory with pointers to null strings
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
 
diff --git a/fer/ccr/sizeof_pointer.c b/fer/ccr/sizeof_pointer.c
index 0079214..aea188e 100644
--- a/fer/ccr/sizeof_pointer.c
+++ b/fer/ccr/sizeof_pointer.c
@@ -33,6 +33,7 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.  
 */
 
+#include <Python.h> /* make sure Python.h is first */
 
 /* 
  *  return the size (in units of bytes) of a pointer to a character
diff --git a/fer/cferbind/Makefile b/fer/cferbind/Makefile
index d1251a6..f564b85 100644
--- a/fer/cferbind/Makefile
+++ b/fer/cferbind/Makefile
@@ -6,7 +6,7 @@ include ../../site_specific.mk
 include ../../platform_specific.mk.$(BUILDTYPE)
 
 LIBNAME = ../../lib/libcferbind.a
-CHDRS = $(wildcard *.h) ../grdel/grdel.h
+CHDRS = $(wildcard *.h) ../grdel/grdel.h ../ccr/utf8str.h
 CSRCS = $(wildcard *.c)
 COBJS = $(CSRCS:.c=.o)
 
diff --git a/fer/cferbind/cairoCFerBind_drawPoints.c b/fer/cferbind/cairoCFerBind_drawPoints.c
index 42f3534..640cf7c 100644
--- a/fer/cferbind/cairoCFerBind_drawPoints.c
+++ b/fer/cferbind/cairoCFerBind_drawPoints.c
@@ -84,7 +84,7 @@ grdelBool cairoCFerBind_drawPoints(CFerBind *self, double ptsx[], double ptsy[],
             cairo_arc(instdata->context,
                       ptsx[k] * unitfactor,
                       ptsy[k] * unitfactor,
-                      20.0 * scalefactor,
+                      10.0 * scalefactor,
                       0.0, 2.0 * M_PI);
             cairo_close_path(instdata->context);
         }
diff --git a/fer/common/ferret.parm b/fer/common/ferret.parm
index c3c7465..d4e70f1 100644
--- a/fer/common/ferret.parm
+++ b/fer/common/ferret.parm
@@ -43,15 +43,25 @@
 *        3/15 *sh* pauxrgrd_fmrc for forecast-time index orthoganalizing
 * V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
 * V696 *acm* 11/15 Added @BIN and @NBIN regridding transforms
+* V698 *sh* 1/16 added pagg_promotion_indicator_dset
+*           2/16 added cat_ef_time2d
+* V698 *acm* 2/16 Ticket 2372: Make the earth radius consistent with value in 
+*		  fmt/cmn/gt_lib.parm. This is very nearly the authalic radius 
+*                 of th earth, which is 6,371.0072 km:
+*                 https://en.wikipedia.org/wiki/Earth_radius#Authalic_radius 
+*                 and is also consistent with Matlab
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
+* V698  3/16 *sh* expanded max_gfdl_dsets for EF agg needs
 
 * this should always match maxdsets in TMAP_FORMAT:
 	INTEGER		max_gfdl_dsets
-	PARAMETER     (	max_gfdl_dsets	  = 100 )! = maxdsets in XDSET_INFO
+	PARAMETER     (	max_gfdl_dsets	  = 400 ) ! =maxdsets in tmap_dims.parm
 
 * numerical constants
 	REAL		deg2rad, radius, deg2km, deg2m, m_radius
 	PARAMETER     ( deg2rad = 3.141592 / 180,
-     .			radius = 6370.E5,		! cm
+     .			radius = 6371.E5,		! cm
      .			m_radius = radius / 100.,	! meters
      .			deg2km = deg2rad * radius * 1.E-5,
      .			deg2m  = deg2km * 1000.  )
@@ -138,7 +148,7 @@
 * codes regarding the categories of variables used by the program
 *    "cat" - "categories" of variables ("file","calc","user"...)
 	INTEGER		cat_work_mr,
-     .			cat_file_var, cat_calc_var,
+     .			cat_file_var,
      .			cat_user_var, cat_dummy_var,
      .			cat_expr_var, cat_axis_var,
      .			cat_temp_var, cat_pseudo_var,
@@ -146,10 +156,10 @@
      .			cat_const_var,   cat_string,
      .			cat_counter_var, cat_attrib_val,
      .			cat_agg_e_var, cat_agg_f_var,
+     .			cat_ef_time2d,
      .			cat_pystat_var
 	PARAMETER     ( cat_work_mr  = -9,
      .			cat_file_var = 1,
-     .			cat_calc_var = 2,
      .			cat_user_var = 3,
      .			cat_dummy_var= 4,
      .			cat_expr_var = 5,
@@ -164,7 +174,8 @@
      .			cat_attrib_val = 14,
      .			cat_agg_e_var  = 15,
      .			cat_agg_f_var  = 16,
-     .			cat_pystat_var = 17 )
+     .			cat_ef_time2d  = 17,
+     .			cat_pystat_var = 18 )
 
 * codes referring to the user-defined variables
 	INTEGER		uvar_deleted,
@@ -734,3 +745,7 @@
 	PARAMETER     ( p_DQ_quote = '_DQ_',
      .		        p_SQ_quote = '_SQ_'  )
 
+* flag to indicate this variable is the special 2D tf_times forecast field
+	INTEGER		pagg_promotion_indicator_dset
+	PARAMETER     ( pagg_promotion_indicator_dset = -6767)
+
diff --git a/fer/common/fgrdel.cmn b/fer/common/fgrdel.cmn
index 9799dfd..0de789b 100644
--- a/fer/common/fgrdel.cmn
+++ b/fer/common/fgrdel.cmn
@@ -109,14 +109,14 @@
 * Whether clip the drawing to the current view
         LOGICAL cliptoview(maxwindowobjs)
 
-* Simplest approach for retrieving color RGBA values was 
+* Simplest approach for retrieving color RGBA values was
 * just to store them in the common block when they are set
         REAL*4 colorrgba(4, maxcolorobjs, maxwindowobjs)
 
 * Color ID number used in brushes (for color updates)
         INTEGER brushcolor(maxbrushobjs, maxwindowobjs)
 
-* Color ID number used in pens (for color updates)
+* Color ID number used in pens (for color inquiries and updates)
         INTEGER pencolor(maxpenobjs, maxwindowobjs)
 
 * Color ID number and sizes to use to draw the symbol object
diff --git a/fer/common/interp_stack.parm b/fer/common/interp_stack.parm
index 3abc02b..b2615a2 100644
--- a/fer/common/interp_stack.parm
+++ b/fer/common/interp_stack.parm
@@ -7,6 +7,8 @@
 * V690 12/13 *sh* for auto-curvilinear Ferret
 * V692  7/14 *acm* added isact_avg_wgt
 * V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
 
 * minimum working space provided to transformations
 	INTEGER		iswksiz
@@ -47,7 +49,6 @@
      .			isact_subset,
      .			isact_xy2other,
      .			isact_read,
-     .			isact_calculate,
      .			isact_regrid,
      .			isact_autogrid,
      .			isact_gather,
@@ -71,7 +72,6 @@
      .			isact_subset		= 4,
      .			isact_xy2other		= 5,
      .			isact_read		= 6,
-     .			isact_calculate		= 7,
      .			isact_regrid		= 8,
      .			isact_autogrid		= 9,
      .			isact_gather		= 10,
diff --git a/fer/common/plot_setup.parm b/fer/common/plot_setup.parm
index 43e29d6..40b76af 100644
--- a/fer/common/plot_setup.parm
+++ b/fer/common/plot_setup.parm
@@ -116,17 +116,17 @@
      .              dflt_ul_xorigin,
      .              dflt_ul_yorigin
 
-        PARAMETER ( key_line_frac         =  0.30,
+        PARAMETER ( key_line_frac         =  0.25,
      .              dflt_letsize_title    =  0.20,
      .              dflt_letsize_label    =  0.12,
      .              dflt_letsize_axis     =  0.10,
      .              dflt_key_xspace0      =  3.00,
      .              dflt_key_yspace0      =  0.25,
      .              dflt_key_labht0       =  0.12,
-     .              dflt_key_xorigin      =  1.50,
+     .              dflt_key_xorigin      =  0.75,
      .              dflt_key_yorigin      = -0.85,
      .              dflt_key_xwhite_space =  0.30,
-     .              dflt_key_ywhite_space =  0.02,
+     .              dflt_key_ywhite_space =  0.05,
      .              dflt_ovkey_xspace     =  2.10,
      .              dflt_ovkey_yspace     =  0.18,
      .              dflt_ovkey_labht      =  0.08,
diff --git a/fer/common/slash.parm b/fer/common/slash.parm
index 0192e7a..ca53adf 100644
--- a/fer/common/slash.parm
+++ b/fer/common/slash.parm
@@ -70,6 +70,10 @@
 * v695  5/15 *acm* New command ANNOTATE
 * v696  6/15 *acm* PLOT/VS/RIBBON/GAPLOC to define seperate line segments on
 *                   color PLOT/VS plots (LAS ticket 1597 and others)
+* V698  4/16 *acm* New PLOT/SKIP= (and leave space for PyFerret PLOT/OPACITY=)
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 
 
 * command qualifier states
@@ -273,8 +277,10 @@
      .                  slash_cont_mod,
      .                  slash_cont_thick,
      .                  slash_cont_opacity,
-     .
-     .			slash_vect_over_plot,
+     .                  slash_cont_dms,
+     .                  slash_cont_halfsp
+
+	INTEGER		slash_vect_over_plot,
      .			slash_vect_set_up,
      .			slash_vect_frame,
      .			slash_vect_transpz,
@@ -320,7 +326,10 @@
      .			slash_shad_mod,
      .			slash_shad_trim,
      .			slash_shad_opacity,
+     .			slash_shad_dms,
+     .			slash_shad_halfsp,
      .
+     .			slash_plot_along,
      .			slash_plot_over_plot,
      .			slash_plot_set_up,
      .			slash_plot_frame,
@@ -331,6 +340,7 @@
      .			slash_plot_line,
      .			slash_plot_color,
      .			slash_plot_thick,
+     .			slash_plot_title,
      .			slash_plot_symsize,
      .			slash_plot_step,
      .			slash_plot_dash,
@@ -346,8 +356,11 @@
      .			slash_plot_spectrum,
      .			slash_plot_fast,
      .			slash_plot_missing,
+     .                  slash_plot_opacity,
      .			slash_plot_gap,
-     .                  slash_plot_opacity
+     .			slash_plot_skip,
+     .			slash_plot_dms,
+     .			slash_plot_halfsp
 
 	INTEGER		slash_wire_over,
      .			slash_wire_set_up,
@@ -586,8 +599,10 @@
      .			slash_cont_mod	        = 1+42,
      .                  slash_cont_thick        = 1+43,
      .                  slash_cont_opacity      = 1+44,
-     .
-     .			slash_vect_over_plot	= 1+12,
+     .			slash_cont_dms	        = 1+45,
+     .			slash_cont_halfsp       = 1+46)
+
+	PARAMETER     ( slash_vect_over_plot	= 1+12,
      .			slash_vect_set_up	= 1+13,
      .			slash_vect_frame	= 1+14,
      .			slash_vect_transpz	= 1+16,
@@ -633,7 +648,10 @@
      .			slash_shad_grat 	= 1+32,
      .			slash_shad_mod   	= 1+33,
      .                  slash_shad_opacity      = 1+36,
-     .
+     .			slash_shad_dms   	= 1+37,
+     .			slash_shad_halfsp   	= 1+38)
+
+	PARAMETER     ( slash_plot_along	= 1+12,
      .			slash_plot_over_plot	= 1+13,
      .			slash_plot_set_up	= 1+14,
      .			slash_plot_frame	= 1+15,
@@ -644,6 +662,7 @@
      .			slash_plot_line		= 1+21,
      .			slash_plot_color	= 1+22,
      .			slash_plot_thick	= 1+23,
+     .			slash_plot_title	= 1+26,
      .			slash_plot_symsize	= 1+27,
      .			slash_plot_step		= 1+29,
      .			slash_plot_dash		= 1+30,
@@ -659,8 +678,11 @@
      .			slash_plot_spectrum 	= 1+44,
      .			slash_plot_fast 	= 1+45,
      .			slash_plot_missing 	= 1+46,
-     .			slash_plot_gap	 	= 1+47,
-     .                  slash_plot_opacity      = 1+48)
+     .			slash_plot_opacity      = 1+47,
+     .			slash_plot_gap	 	= 1+48,
+     .			slash_plot_skip	 	= 1+49,
+     .			slash_plot_dms	 	= 1+50,
+     .			slash_plot_halfsp	= 1+51)
 
 	PARAMETER     ( slash_wire_over		= 1+12,
      .			slash_wire_set_up	= 1+13,
diff --git a/fer/common/xbox_bounds.cmn b/fer/common/xbox_bounds.cmn
index c7c24a5..e675336 100644
--- a/fer/common/xbox_bounds.cmn
+++ b/fer/common/xbox_bounds.cmn
@@ -1,4 +1,9 @@
 * COMMON XBOX_BOUNDS - axis pointers used by SHADE within PLOT+
+* V697 *acm* Ticket 2344: Allow time series overlay on any Hovmuller plot
+*            factor for converting the time axis to units of hours was set 
+*            in AXIS_FORMAT
 
 	INTEGER bb_xaxis, bb_yaxis, bb_grid, bb_grid_inccount
-	COMMON/ XBOX_BOUNDS / bb_xaxis, bb_yaxis, bb_grid, bb_grid_inccount
+	REAL*8	fac_hr_x, fac_hr_y
+	COMMON/ XBOX_BOUNDS / bb_xaxis, bb_yaxis, bb_grid, bb_grid_inccount, 
+     .		fac_hr_x, fac_hr_y
diff --git a/fer/common/xcalc_vars.cmn b/fer/common/xcalc_vars.cmn
deleted file mode 100644
index 63e2ec7..0000000
--- a/fer/common/xcalc_vars.cmn
+++ /dev/null
@@ -1,85 +0,0 @@
-* XCALC_VARS.CMN - COMMON/ XCALC_VARS /
-* array declarations and information for "calculatable" variables 
-* ... variables derivable from Philander/COX model results
-* V200:  7/89 - extracted from xvariables
-*  2/12 *kms* Add E and F dimensions to cv_lo_ds and cv_hi_ds
-*             (set to nferdims), added cv_lo_d5 & 6, cv_hi_d5 & 6
-
-*	
-*	cvar_frame_start
-*		      - subscript pointer into "cv..." arrays to the frame
-*			(list) of variable cvances needed to compute this var
-*	cvar_frame_length
-*		      -	Number of variable cvances needed to cumpute this var
-
-	INTEGER		max_calc_vars,
-     .			max_cv
-	PARAMETER     (	max_calc_vars 	  = 65,
-     .			max_cv          = 200 )
-
-********************************************************************************
-******				COMMON DECLARATION			  ******
-
-	COMMON / XCALC_VARS /
-     .		num_calc_vars,
-     .
-     .		cvar_primary_name ( max_calc_vars ),
-     .		cvar_name_code    ( max_calc_vars ),
-     .		cvar_unit_code    ( max_calc_vars ),
-     .		cvar_grid	  ( max_calc_vars, max_gfdl_dsets ),
-     .		cvar_axes	  ( 3, max_calc_vars ),
-     .		cvar_frame_start  ( max_calc_vars ),
-     .		cvar_frame_length ( max_calc_vars ),
-     .		cvar_num_results  ( max_calc_vars ),
-     .
-     .		cv_category ( max_cv ),
-     .		cv_variable ( max_cv ),
-     .		cv_lo_ds    ( max_cv, nferdims ),
-     .		cv_hi_ds    ( max_cv, nferdims )
-
-********************************************************************************
-******			COMMON VARIABLE TYPE DECLARATIONS		  ******
-
-	INTEGER		num_calc_vars
-
-	INTEGER		cvar_num_results  ,
-     .			cvar_grid	  ,
-     .			cvar_axes	  ,
-     .			cvar_frame_start  ,
-     .			cvar_frame_length ,
-     .			cvar_unit_code
-	CHARACTER*40	cvar_primary_name
-	CHARACTER*4	cvar_name_code
-
-	INTEGER		cv_category ,
-     .			cv_variable ,
-     .			cv_grid ,
-     .			cv_lo_ds  ,
-     .			cv_hi_ds
-
-* equivalences to assist with declaration statements
-	INTEGER cv_lo_d1( max_cv ),
-     .		cv_lo_d2( max_cv ),
-     .		cv_lo_d3( max_cv ),
-     .		cv_lo_d4( max_cv ),
-     .		cv_lo_d5( max_cv ),
-     .		cv_lo_d6( max_cv ),
-     .		cv_hi_d1( max_cv ),
-     .		cv_hi_d2( max_cv ),
-     .		cv_hi_d3( max_cv ),
-     .		cv_hi_d4( max_cv ),
-     .		cv_hi_d5( max_cv ),
-     .		cv_hi_d6( max_cv )
-	EQUIVALENCE
-     .		( cv_lo_d1, cv_lo_ds(1,1) ),
-     .		( cv_lo_d2, cv_lo_ds(1,2) ),
-     .		( cv_lo_d3, cv_lo_ds(1,3) ),
-     .		( cv_lo_d4, cv_lo_ds(1,4) ),
-     .		( cv_lo_d5, cv_lo_ds(1,5) ),
-     .		( cv_lo_d6, cv_lo_ds(1,6) ),
-     .		( cv_hi_d1, cv_hi_ds(1,1) ),
-     .		( cv_hi_d2, cv_hi_ds(1,2) ),
-     .		( cv_hi_d3, cv_hi_ds(1,3) ),
-     .		( cv_hi_d4, cv_hi_ds(1,4) ),
-     .		( cv_hi_d5, cv_hi_ds(1,5) ),
-     .		( cv_hi_d6, cv_hi_ds(1,6) )
diff --git a/fer/common/xcommand.cmn b/fer/common/xcommand.cmn
index 8a2a66e..c066768 100644
--- a/fer/common/xcommand.cmn
+++ b/fer/common/xcommand.cmn
@@ -34,9 +34,9 @@
 * v6.6  *acm* 1/10 - more qualifiers on LIST for netcdf4 control
 * V6.5  *acm* 3/10 new qualifiers on (some) SHOW commands and on MESSAGE: 
 *                  /OUTFILE= /APPEND /CLOBBER
-* V6.6 *kms*  5/10 add SET REDIRECT and CANCEL REDIRECT for stdout/stderr redirection
-*      *kms*  7/10 add OPEN alias for SET DATA /BROWSE
-* V664 *kms*  8/10 Add DEFINE PYFUNC /NAME=<alias> python.module.name
+* V6.6  *kms* 5/10 add SET REDIRECT and CANCEL REDIRECT for stdout/stderr redirection
+*       *kms* 7/10 add OPEN alias for SET DATA /BROWSE
+* PyFr *kms*  8/10 Add DEFINE PYFUNC /NAME=<alias> python.module.name
 * V6.8 *acm*  1/12 Add SET DATA/STRICT 
 * PyFr *kms*  3/11 Add CANCEL PYVAR /ALL /DATASET
 * PyFr *kms*  1/12 Add SET GRAPHICS /ENGINE /ANTIALIA /NOANTIAL
@@ -50,9 +50,15 @@
 * PyFr *kms*  7/13 Add /XPIXELS, /YPIXELS, /XINCHES, /YINCHES to SET WINDOW and FRAME
 * V685+ *sh*  9/13 Add SHOW VARIABLE/TREE and alias VTREE
 * V695 *acm*  2/15 Add DEFINE AGGREGATE/F alias, FMRC
-* V695 *acm* 3/15 Changes for PyFerret fonts. Add SET TEXT, SHOW TEXT, CANCEL TEXT
-* V695 *acm*  6/16 New command ANNOTATE
-* V695 *acm*  6/16 New subcommand DEFINE ANNOTATION
+* V695 *acm*  3/15 Changes for PyFerret fonts. Add SET TEXT, SHOW TEXT, CANCEL TEXT
+* V695 *acm*  6/15 New command ANNOTATE
+* V695 *acm*  6/15 New subcommand DEFINE ANNOTATION
+* V695 *sh*  10/15 New alias TSERIES (bump num_predefined_alias to 25)
+* V698 *ACM*  3/15 New SHOW COMMAND/BRIEF
+* V698 *ACM*  4/15 New PLOT/SKIP= (and leave space for PyFerret PLOT/OPACITY=)
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 
 
 * PARAMETERS are used to store numbers of subcommands and qualifiers for use
@@ -83,6 +89,18 @@
 * qualifiers  -	To add new qualifiers simply update nqualNx and make the
 *		corresponding changes in BLOCK DATA XCOMMAND_DATA.
 
+*
+* !!!!!!!!!!
+* Use caution when defining new commands, qualifiers, or changing these data structures:
+* 1- Ferret commands are matched to the first 4 characters only. Make sure
+*    new commands are unique to the first 4 characters.
+* 2- If you are tempted to reorder the lists of commands or subcommands, know 
+*    that users often use even more abbreviation. E.g. "can v" is used for 
+*    "cancel viewport" in many scripts, and that works ONLY because "VIEWPORT" 
+*    comes before "VARIABLE" in the subcommands for CANCEL.
+* !!!!!!!!!!
+ 
+
 
 * pointers to first elements of arrays
 	INTEGER		 nsub_at1  , nqual_at1a
@@ -159,7 +177,7 @@
      .			nqual2u    , nqual_at2v,
      .			nqual2v    , nqual_at2w,
      .			nqual2w    , nqual_at3a
-	PARAMETER    (	nsub2   =22, nsub_at3   = nsub_at2   + nsub2,
+	PARAMETER    (	nsub2   =23, nsub_at3   = nsub_at2   + nsub2,
      .			nqual2a = 1, nqual_at2b = nqual_at2a + nqual2a,	!'    '
      .			nqual2b = 1, nqual_at2c = nqual_at2b + nqual2b,	!'WIND'
      .			nqual2c = 1, nqual_at2d = nqual_at2c + nqual2c,	!'REGI'
@@ -170,7 +188,7 @@
      .			nqual2h = 1, nqual_at2i = nqual_at2h + nqual2h,	!'MODE'
      .			nqual2i = 1, nqual_at2j = nqual_at2i + nqual2i,	!'MOVI'
      .			nqual2j =13, nqual_at2k = nqual_at2j + nqual2j,	!'VARI'
-     .			nqual2k = 1, nqual_at2l = nqual_at2k + nqual2k,	!'COMM'
+     .			nqual2k = 2, nqual_at2l = nqual_at2k + nqual2k,	!'COMM'
      .			nqual2l = 5, nqual_at2m = nqual_at2l + nqual2l,	!'MEMO'
      .			nqual2m =20, nqual_at2n = nqual_at2m + nqual2m,	!'GRID'
      .			nqual2n = 3, nqual_at2o = nqual_at2n + nqual2n,	!'VIEW'
@@ -181,7 +199,7 @@
      .			nqual2s = 1, nqual_at2t = nqual_at2s + nqual2s,	!'NCCACHE'
      .			nqual2t = 1, nqual_at2u = nqual_at2t + nqual2t,	!'GIFFILE'
      .			nqual2u = 7, nqual_at2v = nqual_at2u + nqual2u, !'FUNC'
-     .                  nqual2v = 1, nqual_at2w = nqual_at2v + nqual2v, !'TEXT' 
+     .                  nqual2v = 2, nqual_at2w = nqual_at2v + nqual2v, !'TEXT'
      .                  nqual2w = 3, nqual_at3a = nqual_at2w + nqual2w  !'QUER' 
      .		      )
 
@@ -235,7 +253,7 @@
 	INTEGER		nsub4      , nsub_at5 ,
      .			nqual4a    ,nqual_at5a
 	PARAMETER    (	nsub4   = 1, nsub_at5   = nsub_at4   + nsub4,
-     .			nqual4a = 45,nqual_at5a = nqual_at4a + nqual4a  )
+     .			nqual4a = 48,nqual_at5a = nqual_at4a + nqual4a  )
 
 * LIST		 - commmand # 5
 	INTEGER		nsub5      , nsub_at6  ,
@@ -247,7 +265,7 @@
 	INTEGER		nsub6      , nsub_at7  ,
      .			nqual6a    , nqual_at7a
 	PARAMETER    (	nsub6   = 1, nsub_at7   = nsub_at6   + nsub6,
-     .			nqual6a =49, nqual_at7a = nqual_at6a + nqual6a  )
+     .			nqual6a =52, nqual_at7a = nqual_at6a + nqual6a  )
 
 * GO		 - commmand # 7
 	INTEGER		nsub7      , nsub_at8   ,
@@ -341,7 +359,7 @@
 	INTEGER		nsub18       , nsub_at19 ,
      .			nqual18a     ,nqual_at19a
 	PARAMETER    (	nsub18   = 1, nsub_at19    = nsub_at18   + nsub18,
-     .			nqual18a = 38,nqual_at19a  = nqual_at18a + nqual18a  )
+     .			nqual18a = 39,nqual_at19a  = nqual_at18a + nqual18a  )
 
 * SPAWN			 - commmand # 19
 	INTEGER		nsub19       , nsub_at20 ,
@@ -426,7 +444,7 @@
      .			total_num_commands	= 30,
      .			total_num_subcommands	= nsub_at31 - 1,
      .			total_num_qualifiers	= nqual_at31a - 1,
-     .	                num_predefined_alias    = 24,
+     .	                num_predefined_alias    = 25,
      .			max_queries		= 50 )
 
 * declarations
diff --git a/fer/common/xcontrol.cmn b/fer/common/xcontrol.cmn
index 470f8f4..a41895d 100644
--- a/fer/common/xcontrol.cmn
+++ b/fer/common/xcontrol.cmn
@@ -15,6 +15,8 @@
 * V6.31 10/09 *acm*  Fixing bug 1706, by properly fixing # 1681. ENDIF inside a REPEAT 
 *              loop with semicolon-separated commands. New flag: bumped.
 * V694   2/15 *acm* cs_is_calendar for each of T and F dimensions.
+* V697 12/15 *acm* Ticket 2337 Increase length of cmnd buffer to 20480
+* V697  2/16 *acm* DO NOT Increase length of cmnd buffer from 2048
 
 	INTEGER		cs_max
 	PARAMETER     (	cs_max = 200 )
@@ -42,9 +44,14 @@
      .		cs_save_hi ( cs_max ),
      .		cs_start   ( cs_max )
 	CHARACTER*2048
-     .		cs_text    ( cs_max ),
-     .		cs_repeatname ( cs_max ),
-     .		cmnd_copy
+     .		cs_repeatname ( cs_max )
+	CHARACTER*2048
+     .		cs_text    ( cs_max )
+
+     	INTEGER	cmnd_copy_len
+C Matches cmnd_buff_len        
+	PARAMETER     ( cmnd_copy_len = 2048)
+	CHARACTER*2048 cmnd_copy
 
         CHARACTER*256 my_cbuff
 
diff --git a/fer/common/xcontrol.equiv b/fer/common/xcontrol.equiv
new file mode 100644
index 0000000..96b06d9
--- /dev/null
+++ b/fer/common/xcontrol.equiv
@@ -0,0 +1,10 @@
+* XCONTROL.EQUIV
+* equivalence names for vars in COMMON / XCONTROL /
+*
+*  3/16 *sh* 
+
+        CHARACTER*2048
+     .          cs_go_filename ( cs_max )
+
+	EQUIVALENCE
+     .		( cs_repeatname, cs_go_filename )
diff --git a/fer/common/xdset_parms.cmn b/fer/common/xdset_parms.cmn
deleted file mode 100644
index 23ade49..0000000
--- a/fer/common/xdset_parms.cmn
+++ /dev/null
@@ -1,55 +0,0 @@
-* XDSET_PARMS.CMN
-* special parameters for individual data sets
-* this common is mostly managed by GET_DSET_PARMS
-* needs maxdsets from *VARIABLES.CMN
-* 8/91 *sh* - added dp_nts30_wind
-
-	INTEGER	    max_spec_parms, 
-     .		    max_airt_clim
-	PARAMETER ( max_spec_parms = 40,
-     .		    max_airt_clim  = 5 )
-
-	LOGICAL		dp_flags	( maxdsets, max_spec_parms )
-	REAL		dp_real_vals	( maxdsets, max_spec_parms )
-	INTEGER		dp_int_vals	( maxdsets, max_spec_parms )
-	INTEGER		dp_airt_dset	( max_airt_clim )
-	CHARACTER*4	dp_airt_name	( max_airt_clim )
-
-
-	COMMON /XDSET_PARMS/ dp_flags, dp_airt_dset, dp_airt_name
-
-* logical, real and integer parameters all equivalenced
-	EQUIVALENCE ( dp_flags, dp_real_vals ),
-     .		    ( dp_flags, dp_int_vals  )
-
-* specific names for parameters already known
-* (future parameter equivalences may be imbedded in specific subroutines)
-	LOGICAL	dp_phil_sieg	( maxdsets ),
-     .		dp_cox		( maxdsets ),
-     .		dp_trop_pacific	( maxdsets ),
-     .		dp_phil_qflux	( maxdsets ),
-     .		dp_ramp1_qflux	( maxdsets ),
-     .		dp_ramp2_qflux	( maxdsets ),
-     .		dp_const_air_sst( maxdsets ),
-     .		dp_nts30_wind	( maxdsets )
-
-	INTEGER	dp_clim_air_sst	 ( maxdsets )
-
-	REAL	dp_delta_air_sst ( maxdsets ),
-     .		dp_min_wind	 ( maxdsets ),
-     .		dp_Am_factor	 ( maxdsets )
-
-	EQUIVALENCE
-     .		( dp_flags( 1, 1), dp_phil_sieg ),
-     .		( dp_flags( 1, 2), dp_cox ),
-     .		( dp_flags( 1, 3), dp_trop_pacific ),
-     .		( dp_flags( 1, 4), dp_phil_qflux ),
-     .		( dp_flags( 1, 5), dp_ramp1_qflux ),
-     .		( dp_flags( 1, 6), dp_ramp2_qflux ),
-     .		( dp_flags( 1, 7), dp_clim_air_sst ),
-     .		( dp_flags( 1, 8), dp_const_air_sst ),
-     .		( dp_flags( 1, 9), dp_nts30_wind ),
-     .		! #10 unused
-     .		( dp_flags( 1,11), dp_delta_air_sst ),
-     .		( dp_flags( 1,12), dp_min_wind ),
-     .		( dp_flags( 1,13), dp_Am_factor )
diff --git a/fer/common/xplot_setup.cmn b/fer/common/xplot_setup.cmn
index 2b2e99a..a17cef9 100644
--- a/fer/common/xplot_setup.cmn
+++ b/fer/common/xplot_setup.cmn
@@ -30,6 +30,11 @@
 *                  dflt_ those that need to be scaled by pplscale and 
 *                  possible textscale.
 * V685+ *acm* 12/13 For 6D Ferret, key_doc longer for extra dimensions
+* V698 *sh* 3/16 added parameter max_line_on_plot, max_key_entries
+
+	INTEGER max_line_on_plot, max_key_entries
+	PARAMETER (max_line_on_plot = 200)
+	PARAMETER (max_key_entries  = 40)
 
 	LOGICAL	key_doc(0:12),
      .		onedee_on,
diff --git a/fer/common/xplot_state.cmn b/fer/common/xplot_state.cmn
index 80cf493..f7ac5a4 100644
--- a/fer/common/xplot_state.cmn
+++ b/fer/common/xplot_state.cmn
@@ -13,6 +13,11 @@
 * V68  *acm* 1/12  explicit REAL*4 declarations for double-precision ferret with
 *		    single-precision pplus
 * PyFr *kms*  7/13  add the wn_* arrays to hold ppl lengths for each window
+* v697 *acm* 12/15 Ticket 2331, add flag changed_key to common, to restore the color key
+*                  style after a color plot and also after SHADE/SET; SHADE.
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 
 	INTEGER		max_windows,
      .			max_viewport,
@@ -30,14 +35,17 @@
      .			has_time_axis,
      .			h_logaxis, 
      .			v_logaxis,
-     .                  no_plot_yet
+     .                  no_plot_yet,
+     .                  changed_key
 
 	INTEGER		vp_num,
      .			vp_seg0,
      .			vp_segn,
      .			curr_seg_name,
      .			saved_calendar_id,
-     .			transparent
+     .			transparent,
+     .			dms,
+     .			lonlatspace
 
         REAL*4          wn_xinches,
      .                  wn_yinches,
@@ -82,6 +90,8 @@
      .			curr_seg_name,
      .			saved_calendar_id,
      .			transparent,
+     .			dms,
+     .			lonlatspace,
      .
      .			wn_open	 ( max_windows ),
      .			wn_active( max_windows ),
@@ -128,6 +138,7 @@
      .			h_logaxis, 
      .			v_logaxis,
      .                  no_plot_yet,
+     .                  changed_key,
      .			saved_dt_min,
      .			saved_t1_date,
      .			transparent_color
diff --git a/fer/common/xprog_state.cmn b/fer/common/xprog_state.cmn
index 9012b10..1677528 100644
--- a/fer/common/xprog_state.cmn
+++ b/fer/common/xprog_state.cmn
@@ -51,6 +51,9 @@
 * V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
 *                  added ifstk_skipping
 * V695  *acm* 5/15 logical flag its_pyferret 
+* V697 12/15 *acm* Ticket 2337 Increase length of cmnd buffer to 20480
+*		  - increased max_item_list 250 -> 1000
+* V697  2/16 *acm* DO NOT Increase length of cmnd buffer from 2048
 
 	INTEGER		cmnd_buff_len, max_qual_list, max_arg_list,
      .			max_item_list, max_modes, mode_stack_size,
@@ -58,7 +61,7 @@
 	PARAMETER     ( cmnd_buff_len = 2048,
      .			max_qual_list = 60 ,	! increased from 50 3/12
      .			max_arg_list  = 128 ,	! was 20 pre-4/96
-     .			max_item_list = 250 ,
+     .			max_item_list = 1000 ,
      .			max_modes     = 40 ,
      .			mode_stack_size = 7,
      .			max_ifstk     = 10 )
@@ -200,8 +203,8 @@
      .		cmnd_buff*2048,
      .		last_cmnd_buff*2048,
      .		prompt*8,
-     .		list_format*2048, list_file*2048, list_outtype*6,
-     .          show_file*2048,
+     .		list_format*512, list_file*512, list_outtype*6,
+     .          show_file*512,
      .		mode_name( max_modes )*12,
      .		frame_file*200,
      .		ppl_wait*6,
diff --git a/fer/common/xrevision.cmn b/fer/common/xrevision.cmn
index a35cb19..b6b65b0 100644
--- a/fer/common/xrevision.cmn
+++ b/fer/common/xrevision.cmn
@@ -5,5 +5,5 @@
      .				revision_level
 
 	INTEGER		len_program_name, len_progname_mod
-	CHARACTER*20	program_name, progname_mod
+	CHARACTER*32	program_name, progname_mod
 	REAL		revision_level
diff --git a/fer/common/xrevision_type.cmn b/fer/common/xrevision_type.cmn
index 7f354c1..ce80be8 100644
--- a/fer/common/xrevision_type.cmn
+++ b/fer/common/xrevision_type.cmn
@@ -2,5 +2,5 @@
 
 	COMMON/ XREVISION_TYPE / revision_type
 
-	CHARACTER*20 revision_type
+	CHARACTER*32 revision_type
 
diff --git a/fer/common/xrisc.cmn b/fer/common/xrisc.cmn
index 38f510b..48d6609 100644
--- a/fer/common/xrisc.cmn
+++ b/fer/common/xrisc.cmn
@@ -9,12 +9,14 @@
 * command line length. So increase the buffer size.
 * V530 10/00 - increased to 2048 (should be at least as large as len_cmnd_buf)
 * V694  1/14 - increase to 10240 for handling very long global attribute strings.
+* V697 12/15 - increase to 25000 for ticket 2337: Longer Ferret cmnd-line buffer.
+* V697  2/16 *acm* DO NOT Increase length of cmnd buffer to 20480
 
 * ***  Note that there is also a risc_buff defined in fmt/cmn/xrisc_buff.cmn ***
 
 
 	INTEGER     size_rbuff
-	PARAMETER ( size_rbuff = 10240 )  ! was 256 pre 8/99
+	PARAMETER ( size_rbuff = 10240 ) 
 
 	COMMON/ XRISC / len_rbuff, risc_buff
 	CHARACTER  risc_buff*(size_rbuff)
diff --git a/fer/common/xtext_info.cmn b/fer/common/xtext_info.cmn
index 3e55f3b..1b41e79 100644
--- a/fer/common/xtext_info.cmn
+++ b/fer/common/xtext_info.cmn
@@ -3,6 +3,7 @@
 * 11/21/88 axis_orients moved to TMAP_FORMAT:XTM_GRID.CMN
 *   2/12 *kms* Add E and F dimensions to ww_dim_name, ss_dim_name,
 *              axis_title, and axis_title_len (set to nferdims)
+* V698  *acm* 5/16 Ticket 2405: MODE CALENDAR:auto, need 7 items in the date lists
 
 	INTEGER		num_reqd_file_vars
 	PARAMETER     ( num_reqd_file_vars = 9 )
@@ -12,8 +13,8 @@
 	CHARACTER*4	fvar_name_code( num_reqd_file_vars )
 	CHARACTER*9	axis_title( nferdims )
 	INTEGER		axis_title_len( nferdims )
-	CHARACTER*8	date_labels ( 6 )
-	INTEGER		date_str_len( 6 )
+	CHARACTER*8	date_labels ( 7 )
+	INTEGER		date_str_len( 7 )
 	CHARACTER*16	unit_text   ( 15 )
 	CHARACTER*8	verify_modes( 3 )
 
diff --git a/fer/common/xtra_compute_attr.cmn b/fer/common/xtra_compute_attr.cmn
new file mode 100644
index 0000000..d8c88db
--- /dev/null
+++ b/fer/common/xtra_compute_attr.cmn
@@ -0,0 +1,13 @@
+* XTRA_COMPUTE_ATTR.CMN
+* 
+* *acm* v698  3/16 store extra attributes to be saved with a 
+*             computed variable. Cleared in get_prot_cmnd_data.
+
+
+	COMMON/ XTRA_COMPUTE_ATTR /
+     .		natt_computed_var,
+     .		attname_computed_var,
+     .		attstr_computed_var
+
+	INTEGER natt_computed_var
+	CHARACTER*128 attname_computed_var, attstr_computed_var
diff --git a/fer/ctx/complete_missing_limits.F b/fer/ctx/complete_missing_limits.F
index afcb981..acaa36e 100644
--- a/fer/ctx/complete_missing_limits.F
+++ b/fer/ctx/complete_missing_limits.F
@@ -74,6 +74,7 @@
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * V690 1/14 *sh* removed special behavior for mode_stupid
+* V698 3/16 *sh* added logic for cat_ef_time2d (ACTS_LIKE_FVAR)
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -89,7 +90,7 @@
 	INTEGER	cx
 
 * internal variable declarations:
-	LOGICAL needs_limits, its_unspec
+	LOGICAL ACTS_LIKE_FVAR, needs_limits, its_unspec
 	INTEGER TM_GET_GRIDNUM,
      .          idim, cat, var, grid, mabstract, line, status, grr
 
@@ -147,10 +148,8 @@
 	      IF ( needs_limits ) THEN
 
 	         cx_by_ss(idim, cx) = .TRUE.
-	         IF ( (cat .EQ. cat_file_var)  .OR.
-     .            (cat .EQ. cat_agg_e_var) .OR.
-     .            (cat .EQ. cat_agg_f_var) .OR.
-     .            (cat .EQ. cat_pystat_var) ) THEN
+                 IF ( ACTS_LIKE_FVAR(cat) .OR. 
+     .                (cat .EQ. cat_pystat_var) ) THEN
 	            CALL VAR_SS_LIMS( idim, cx,
      .				      cx_lo_ss(cx,idim),
      .				      cx_hi_ss(cx,idim)  )
diff --git a/fer/ctx/get_auto_aux_vars.F b/fer/ctx/get_auto_aux_vars.F
index 848f084..f2b02f0 100644
--- a/fer/ctx/get_auto_aux_vars.F
+++ b/fer/ctx/get_auto_aux_vars.F
@@ -48,6 +48,7 @@
 
 * *sh* 12/13
 * V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V7    5/16 *acm* See ticket 2352. For LET/D variables look for info under that dataset
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -93,10 +94,20 @@
 	ENDIF
 
 * get the variable ID in the linked list  (user vars stored under dset=pdset_uvars)
-	IF (cat .EQ. cat_user_var) dset = pdset_uvars  ! signals a uvar
-* NOTE: if dset=-1 signals uvar, it would seem that we'll see a bug if
-*       the same varname is used for LET/D definitions in two datasets
-	CALL CD_GET_VAR_ID (dset, varname, varid, status)  ! status check??
+	IF (cat .EQ. cat_user_var) THEN
+	   dset = pdset_uvars  ! signals a uvar
+	   CALL CD_GET_VAR_ID (dset, varname, varid, status) 
+
+* Check whether its a LET/D variable, stored with its dataset.
+	   IF (dset.EQ.pdset_uvars .AND. status.NE.ferr_ok) THEN
+	      IF (dataset .GT. pdset_irrelevant) 
+     .      CALL CD_GET_VAR_ID (dataset, varname, varid, status)
+              IF (status .EQ. ferr_ok) dset = dataset
+	   ENDIF
+	   
+	ELSE
+	   CALL CD_GET_VAR_ID (dset, varname, varid, status) 
+	ENDIF
 
 * get the attribute value of '__LayerzRef_' (patnam_layerz)
         maxlen = LEN(refvarname)
diff --git a/fer/ctx/get_context_bad_flag.F b/fer/ctx/get_context_bad_flag.F
index 32a881e..dc2bd81 100644
--- a/fer/ctx/get_context_bad_flag.F
+++ b/fer/ctx/get_context_bad_flag.F
@@ -46,6 +46,7 @@
 * V510 5/00 *sh* - user variables with settable bad flags
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V698 3/16 *sh* added logic for cat_ef_time2d (ACTS_LIKE_FVAR)
 
 	include	'tmap_dims.parm'
 	include	'xdset_info.cmn_text'
@@ -55,12 +56,11 @@
 	include	'xpyvar_info.cmn'
 	include	'xvariables.cmn'
 
+	LOGICAL ACTS_LIKE_FVAR
 	INTEGER cx
 
 
-	IF     ( cx_category( cx ) .EQ. cat_file_var .OR.
-     .           cx_category( cx ) .EQ. cat_agg_e_var .OR.
-     .           cx_category( cx ) .EQ. cat_agg_f_var ) THEN
+	IF     ( ACTS_LIKE_FVAR(cx_category(cx)) ) THEN
 
 	   cx_bad_data( cx ) = ds_bad_flag( cx_variable( cx ) )
 
diff --git a/fer/ctx/get_context_grid.F b/fer/ctx/get_context_grid.F
index adb571e..2456737 100644
--- a/fer/ctx/get_context_grid.F
+++ b/fer/ctx/get_context_grid.F
@@ -117,8 +117,6 @@
 *	10/95	- support for implicit axes: create axes here and insert
 *		  into implicit grid
 *	 1/96	- idim subscripting bug fixed 1/96 ... how did it escape?
-
-* $Id: get_context_grid.F 19906 2015-07-01 01:26:09Z ksmith $ 
 *       - add check on cx_calendar rather than cx_lo/hi_ww to indicate whether time
 *         is date or timesteps
 * V500 *kob* 3/99- up VAR_CODE decl from 8 to 64 chars
@@ -148,6 +146,10 @@
 * V695+  *sh* 3/15 assign regrid transform for T-F plane FMRC regridding
 * V698+  *sh* 5/15 ax units for gz(density)=lo:hi:del should come from aux var
 *		   only partially fixed here: T0 not parsed from auxvar units
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
+* V698  3/16 *sh* added logic for cat_ef_time2d (ACTS_LIKE_FVAR)
+*                 more sophisticated logic to determine an implied "@FMRC"
 
 	include 'errmsg.parm'
 	include 'ferret.parm'
@@ -170,9 +172,10 @@
 	INTEGER	cx, status
 
 * internal variable declarations:
-        LOGICAL   GEOG_COS_FACTOR, GEOG_LABEL,
+        LOGICAL   GEOG_COS_FACTOR, GEOG_LABEL, ACTS_LIKE_FVAR,
+     .		  ITS_FMRC_2DTIME,
      .		  its_dyn, has_impl_axis, explicit_unstd, use_std_grid,
-     .		  made_aux_line_dummy
+     .		  made_aux_line_dummy, at_fmrc
 	INTEGER	  KNOWN_GRID, TM_UNIT_ID,
      .		  use_grid, ilo, ihi,
      .		  cat, var, dset, std_grid, std_axis, use_axis, idim,
@@ -191,10 +194,8 @@
 * by this point the variable and data set must be known
 	IF ( var .EQ. unspecified_int4 )	CALL ERRMSG
      .			( ferr_syntax,status,'no variable specified',*5000 )
-	IF ( ( cat.EQ.cat_file_var .OR. cat.EQ.cat_agg_e_var .OR. 
-     .         cat.EQ.cat_agg_f_var .OR. cat.EQ.cat_calc_var )
-     .	.AND. dset.EQ.unspecified_int4 )	CALL ERRMSG
-     .			( ferr_state_not_set,status,'SET DATA_SET',*5000 )
+	IF (  ACTS_LIKE_FVAR(cat) .AND. dset.EQ.unspecified_int4 )
+     .	  CALL ERRMSG( ferr_state_not_set,status,'SET DATA_SET',*5000 )
 
 * determine the standard grid for this variable
 	std_grid = KNOWN_GRID( dset, cat, var )
@@ -428,17 +429,30 @@
 	   use_axis = grid_line( idim, use_grid )
 	   std_axis = grid_line( idim, std_grid )
 
+* ... this only means that it *may be* an implied "@FMRC"
+	   at_fmrc = (idim.EQ.t_dim .OR. idim.EQ.f_dim)
+     .             .AND. cx_aux_var(idim,cx) .NE. unspecified_int4
+
 	   IF ( use_axis .EQ. std_axis ) THEN
 	      cx_regrid_trans( idim, cx ) = prgrd_exact
 	   ELSEIF ( cx_regrid_trans(idim,cx) .EQ. unspecified_int4 ) THEN
 	      IF (cx_naux(cx) .EQ. 0) THEN
 	         cx_regrid_trans( idim, cx ) = prgrd_linear_interp
-	      ELSEIF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim)
-     .	        .AND. cx_aux_var( idim,cx) .NE. unspecified_int4
+	      ELSEIF ( at_fmrc 
      .		.AND. cx_aux_var(t_dim,cx) .EQ. cx_aux_var(f_dim,cx) ) THEN
 	         cx_regrid_trans( idim, cx ) = pauxrgrd_fmrc ! T-F plane 
 	      ELSE
-	         cx_regrid_trans( idim, cx ) = pauxrgrd_linear
+! 3/2016 - "@FMRC" is implied whenever aux T or F regrid with 2dtime as aux var
+	         IF (at_fmrc) THEN
+	            at_fmrc = (cx_aux_cat(idim,cx) .EQ. cat_file_var
+     .                    .OR. cx_aux_cat(idim,cx) .EQ. cat_agg_f_var)
+     .             .AND.      ITS_FMRC_2DTIME(dset, cx_aux_var(idim,cx))
+	         ENDIF
+	         IF (at_fmrc) THEN
+	            cx_regrid_trans( idim, cx ) = pauxrgrd_fmrc
+	         ELSE
+	            cx_regrid_trans( idim, cx ) = pauxrgrd_linear
+	         ENDIF
 	      ENDIF
 	   ENDIF
  100	CONTINUE
diff --git a/fer/ctx/known_data_type.F b/fer/ctx/known_data_type.F
index 2afb262..43705ce 100644
--- a/fer/ctx/known_data_type.F
+++ b/fer/ctx/known_data_type.F
@@ -43,6 +43,9 @@
 *      *kms* 11/10 added cat_pystat_var
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
+* V698 3/16 *sh* added logic for cat_ef_time2d (ACTS_LIKE_FVAR)
 
 	include	'tmap_dims.parm'
 	include	'xdset_info.cmn_text'
@@ -50,13 +53,13 @@
 	include	'ferret.parm'
 	include	'xcontext.cmn'
 	include	'xvariables.cmn'
-	include	'xcalc_vars.cmn'
         include 'xpyvar_info.cmn'
 
 * calling argument declarations:
 	INTEGER	cx
 
 * internal variable declarations:
+	LOGICAL ACTS_LIKE_FVAR
 	INTEGER	dset, data_set, category, variable, idim, trans
 
 * initialize
@@ -65,26 +68,14 @@
 	data_set = cx_data_set(cx)
 
 * different procedure for determining grid from each category
-	IF     ( category .EQ. cat_file_var ) THEN
+	IF     ( ACTS_LIKE_FVAR(category) ) THEN
 
 	   cx_type(cx) =  ds_var_type(variable)
 
-	ELSEIF ( category .EQ. cat_agg_e_var ) THEN
-
-           cx_type(cx) = ds_var_type(variable)
-
-	ELSEIF ( category .EQ. cat_agg_f_var ) THEN
-
-           cx_type(cx) = ds_var_type(variable)
-
 	ELSEIF ( category .EQ. cat_pystat_var ) THEN
 
            cx_type(cx) =  pyvar_type(variable)
 
-	ELSEIF ( category .EQ. cat_calc_var ) THEN
-
-           cx_type(cx) = ptype_float
-
 	ELSEIF ( category .EQ. cat_user_var ) THEN
 
 * ... allow "abstract" expressions that don't depend on data set
diff --git a/fer/ctx/parse_var_name.F b/fer/ctx/parse_var_name.F
index 8472493..df10be6 100644
--- a/fer/ctx/parse_var_name.F
+++ b/fer/ctx/parse_var_name.F
@@ -72,6 +72,11 @@
 * V690 12/13 *sh* set auto-curvilinear actions that are needed
 * V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
 *       12/14 *sh* save bracket character positions for VTREE report
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
+* V698  3/16 *sh* added logic for cat_ef_time2d (ACTS_LIKE_FVAR)
+* v698 5/16  *acm* ticket 2413: New attribute keywords ncoordvars, coordnames
+*                  return info about coordinate-variables in datasets
 
 	include	'tmap_dims.parm'
 	include	'ferret.parm'
@@ -86,6 +91,7 @@
 	INTEGER		var_cx, mods_cx, status
 
 * internal variable declarations:
+	LOGICAL         ACTS_LIKE_FVAR
 	INTEGER		STR_SAME, TM_LENSTR1, 
      .                  full_name_len, left_bracket, right_bracket, 
      .			name_len, atsign, idim,  brac_nest, i,
@@ -243,16 +249,10 @@
 	ENDIF
 
 * set the data type of the variable'
-	IF ( cx_category(var_cx) .EQ. cat_file_var ) THEN
+	IF ( ACTS_LIKE_FVAR(cx_category(var_cx)) ) THEN
 	   cx_type(var_cx) = ptype_float   ! TO BE GENERALIZED LATER (8/00)
-	ELSEIF ( cx_category(var_cx) .EQ. cat_agg_e_var ) THEN
-	   cx_type(var_cx) = ptype_float   
-	ELSEIF ( cx_category(var_cx) .EQ. cat_agg_f_var ) THEN
-	   cx_type(var_cx) = ptype_float   
 	ELSEIF ( cx_category(var_cx) .EQ. cat_pystat_var ) THEN
 	   cx_type(var_cx) = ptype_float
-	ELSEIF ( cx_category(var_cx) .EQ. cat_calc_var ) THEN
-	   cx_type(var_cx) = ptype_float
 	ELSEIF ( cx_category(var_cx) .EQ. cat_counter_var ) THEN
 	   cx_type(var_cx) = ptype_float
 	ELSEIF (cx_category(var_cx) .EQ. cat_attrib_val) THEN
@@ -296,6 +296,7 @@
               cx_type(var_cx) = ptype_float
               IF (STR_SAME (attname, 'varnames')  .EQ. 0 .OR.
      .            STR_SAME (attname, 'dimnames')  .EQ. 0 .OR.
+     .            STR_SAME (attname, 'coordnames')  .EQ. 0 .OR.
      .            STR_SAME (attname, 'attnames')  .EQ. 0 )
      .         cx_type(var_cx) = ptype_string
            ENDIF
diff --git a/fer/dat/SOURCE_FILES b/fer/dat/SOURCE_FILES
index 8e9fd03..d8ea782 100644
--- a/fer/dat/SOURCE_FILES
+++ b/fer/dat/SOURCE_FILES
@@ -1,12 +1,10 @@
 SRCS_F = \
 netcdf4_settings_data.F\
 xalgebra_data.F\
-xcalc_vars_data.F\
 xcommand_data.F\
 xcontext_data.F\
 xcontrol_data.F\
 xdependency_tree_data.F\
-xdset_parms_data.F\
 xfgrdel_data.F\
 xfr_grid_data.F\
 xgfdl_error_text_data.F\
diff --git a/fer/dat/netcdf4_settings_data.F b/fer/dat/netcdf4_settings_data.F
index 3d65c3d..b5b9ede 100644
--- a/fer/dat/netcdf4_settings_data.F
+++ b/fer/dat/netcdf4_settings_data.F
@@ -32,6 +32,8 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
+*       *acm* 2/16 add echunk and fchunk
+
 *
 * Initialize the settings for netcdf4 datasets and store them in common.
 
@@ -44,6 +46,8 @@
 *	ychunk_size     - chunk size in Y direction
 *	zchunk_size     - chunk size in Z direction
 *	tchunk_size     - chunk size in T direction
+*	echunk_size     - chunk size in E direction
+*	fchunk_size     - chunk size in F direction
 *	deflate_lev	- deflate level (0 for no deflate)
 *	shuffle_flag    - shuffle - 0 or 1
 *	endian_code     - native=0, little=1, big=0 match nf_endian_* params
@@ -54,6 +58,8 @@
 	DATA ychunk_size  /0/
 	DATA zchunk_size  /0/
 	DATA tchunk_size  /0/
+	DATA echunk_size  /0/
+	DATA fchunk_size  /0/
 	DATA deflate_lev  /0/
 	DATA shuffle_flag /0/
 	DATA endian_code  /0/
@@ -62,6 +68,8 @@
 	DATA ychunk_size_set  /0/
 	DATA zchunk_size_set  /0/
 	DATA tchunk_size_set  /0/
+	DATA echunk_size_set  /0/
+	DATA fchunk_size_set  /0/
 	DATA deflate_lev_set  /0/
 	DATA shuffle_flag_set /0/
 	DATA endian_code_set  /0/
diff --git a/fer/dat/xalgebra_data.F b/fer/dat/xalgebra_data.F
index b7cce19..d161806 100644
--- a/fer/dat/xalgebra_data.F
+++ b/fer/dat/xalgebra_data.F
@@ -95,6 +95,7 @@
 * v695+ 3/15 *sh* added pauxrgrd_fmrc for T-F orthoganalization
 * V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
 * V696 *acm* 11/15 Added @BIN and @NBIN regridding transforms
+* V696 *acm8 11/15 Clarify descriptions for @BIN, @NBIN, @AVE, @NGD, @SUM regridding
 
         IMPLICIT NONE
 	include	'ferret.parm'
diff --git a/fer/dat/xcalc_vars_data.F b/fer/dat/xcalc_vars_data.F
deleted file mode 100644
index 7eefb9d..0000000
--- a/fer/dat/xcalc_vars_data.F
+++ /dev/null
@@ -1,2472 +0,0 @@
-	BLOCK DATA XCALC_VARS_DATA
-
-*
-*
-*  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. 
-*
-*
-* initialization of COMMON / XCALC_VARS /
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V200:  7/21/89 - extracted from XVARIABLES_DTA with extensive changes
-*	10/12/89 - added cvar_num_results data
-*	 2/26/90 - CAIR requires only one component in the 4D version 2.00
-* Linux Port 1/97 *kob* - Added a preprocessor include for tmap_dset.parm
-*			  because it needed a preprocessor.
-*         2/12 *kms* Add the E and F dimensions
-
-        IMPLICIT NONE
-#include "tmap_dset.parm"
-	include 'tmap_dims.parm'
-	include 'xtm_grid.cmn_text'	! .cmn_text has an external
-	include 'ferret.parm'
-	include 'instance_table.parm'
-	include 'xcalc_vars.cmn'
-
-	INTEGER	i
-
-* local parameter declarations:
-	INTEGER     ptstep_1hr_b4, pcair_special, pairt_special, 
-     .              ptemp_special
-	PARAMETER ( ptstep_1hr_b4 = pcv_hourly_0 - 1,
-     .		    pcair_special = pcair  + pcv_spec_flg,
-     .		    pairt_special = pairt + pcv_spec_flg,
-     .		    ptemp_special = ptemp + pcv_spec_flg )
-
-* number of calculatable variables defined in this BLOCK DATA
-	DATA num_calc_vars	/ 59 /
-
-* computable variables pre-defined in program
-	DATA cvar_primary_name	( pqcdz )
-     .				/'VERTICAL HEAT DIFFUSION COEFFICIENT'/
-	DATA cvar_name_code	( pqcdz ) / 'QCDZ'	/
-	DATA cvar_unit_code	( pqcdz ) / pudiffusion /
-	DATA cvar_frame_start	( pqcdz ) / to_qcdz	/
-	DATA cvar_frame_length	( pqcdz ) / qcdz_frame	/
-	DATA cvar_num_results	( pqcdz ) / 2	/	! also PCDZ
-	DATA ( cvar_axes(i,pqcdz),i=1,3 ) / mxt, myt, mzw/
-
-	DATA cvar_primary_name	( ppcdz )
-     .				/'VERTICAL MOMENTUM DIFFUSION COEFFICIENT'/
-	DATA cvar_name_code	( ppcdz ) / 'PCDZ'	/
-	DATA cvar_unit_code	( ppcdz ) / pudiffusion /
-	DATA cvar_frame_start	( ppcdz ) / to_pcdz	/
-	DATA cvar_frame_length	( ppcdz ) / pcdz_frame	/
-	DATA cvar_num_results	( ppcdz ) / 2	/	! also QCDZ
-	DATA ( cvar_axes(i,ppcdz),i=1,3 ) / mxu, myu, mzw /
-
-	DATA cvar_primary_name	( prho0 ) / 'DENSITY REFERENCED TO SURFACE'/
-	DATA cvar_name_code	( prho0 ) / 'RHO0'	/
-	DATA cvar_unit_code	( prho0 ) / punot_app	/
-	DATA cvar_frame_start	( prho0 ) / to_rho0	/
-	DATA cvar_frame_length	( prho0 ) / rho0_frame	/
-	DATA cvar_num_results	( prho0 ) / 1	/
-	DATA ( cvar_axes(i,prho0),i=1,3 ) / mxt, myt, mzt /
-
-	DATA cvar_primary_name	( pqdfz ) 
-     .				/ 'VERTICAL HEAT DIFFUSION' /
-	DATA cvar_name_code	( pqdfz ) / 'QDFZ'	/
-	DATA cvar_unit_code	( pqdfz ) / putemp_dt	/
-	DATA cvar_frame_start	( pqdfz ) / to_qdfz	/
-	DATA cvar_frame_length	( pqdfz ) / qdfz_frame	/
-	DATA cvar_num_results	( pqdfz ) / 1	/
-	DATA ( cvar_axes(i,pqdfz),i=1,3 ) / mxt, myt, mzt /
-
-	DATA cvar_primary_name	( pqdfh ) / 'HORIZONTAL HEAT DIFFUSION' /
-	DATA cvar_name_code	( pqdfh ) / 'QDFH'	/
-	DATA cvar_unit_code	( pqdfh ) / putemp_dt	/
-	DATA cvar_frame_start	( pqdfh ) / to_qdfh	/
-	DATA cvar_frame_length	( pqdfh ) / qdfh_frame	/
-	DATA cvar_num_results	( pqdfh ) / 1	/
-	DATA ( cvar_axes(i,pqdfh),i=1,3 ) / mxt, myt, mzt /
-
-	DATA cvar_primary_name	( pqadx ) / 'ZONAL HEAT ADVECTION' /
-	DATA cvar_name_code	( pqadx ) / 'QADX'	/
-	DATA cvar_unit_code	( pqadx ) / putemp_dt	/
-	DATA cvar_frame_start	( pqadx ) / to_qadx	/
-	DATA cvar_frame_length	( pqadx ) / qadx_frame	/
-	DATA cvar_num_results	( pqadx ) / 1	/
-	DATA ( cvar_axes(i,pqadx),i=1,3 ) / mxt, myt, mzt /
-
-	DATA cvar_primary_name	( pqady ) / 'MERIDIONAL HEAT ADVECTION' /
-	DATA cvar_name_code	( pqady ) / 'QADY'	/
-	DATA cvar_unit_code	( pqady ) / putemp_dt	/
-	DATA cvar_frame_start	( pqady ) / to_qady	/
-	DATA cvar_frame_length	( pqady ) / qady_frame	/
-	DATA cvar_num_results	( pqady ) / 1	/
-	DATA ( cvar_axes(i,pqady),i=1,3 ) / mxt, myt, mzt /
-
-	DATA cvar_primary_name	( pqadz ) / 'VERTICAL HEAT ADVECTION' /
-	DATA cvar_name_code	( pqadz ) / 'QADZ'	/
-	DATA cvar_unit_code	( pqadz ) / putemp_dt	/
-	DATA cvar_frame_start	( pqadz ) / to_qadz	/
-	DATA cvar_frame_length	( pqadz ) / qadz_frame	/
-	DATA cvar_num_results	( pqadz ) / 1	/
-	DATA ( cvar_axes(i,pqadz),i=1,3 ) / mxt, myt, mzt /
-
-	DATA cvar_primary_name	( pqad  ) / 'TOTAL HEAT ADVECTION' /
-	DATA cvar_name_code	( pqad  ) / 'QAD '	/
-	DATA cvar_unit_code	( pqad  ) / putemp_dt	/
-	DATA cvar_frame_start	( pqad  ) / to_qad 	/
-	DATA cvar_frame_length	( pqad  ) / qad _frame	/
-	DATA cvar_num_results	( pqad  ) / 1	/
-	DATA ( cvar_axes(i,pqad ),i=1,3 ) / mxt, myt, mzt /
-
-	DATA cvar_primary_name	( pqdf  ) / 'TOTAL HEAT DIFFUSION' /
-	DATA cvar_name_code	( pqdf  ) / 'QDF '	/
-	DATA cvar_unit_code	( pqdf  ) / putemp_dt	/
-	DATA cvar_frame_start	( pqdf  ) / to_qdf 	/
-	DATA cvar_frame_length	( pqdf  ) / qdf _frame	/
-	DATA cvar_num_results	( pqdf  ) / 1	/
-	DATA ( cvar_axes(i,pqdf ),i=1,3 ) / mxt, myt, mzt /
-
-	DATA cvar_primary_name	( pqeva ) / 'EVAPORATIVE HEAT' /
-	DATA cvar_name_code	( pqeva ) / 'QEVA'	/
-	DATA cvar_unit_code	( pqeva ) / puheat_flux	/
-	DATA cvar_frame_start	( pqeva ) / to_qeva	/
-	DATA cvar_frame_length	( pqeva ) / qeva_frame	/
-	DATA cvar_num_results	( pqeva ) / 2	/	! also computes QSEN
-	DATA ( cvar_axes(i,pqeva),i=1,3 ) / mxt, myt, mnormal /
-
-	DATA cvar_primary_name	( ptau  ) / 'MAGNITUDE OF WIND STRESS' /
-	DATA cvar_name_code	( ptau  ) / 'TAU '	/
-	DATA cvar_unit_code	( ptau  ) / pupressure	/
-	DATA cvar_frame_start	( ptau  ) / to_tau 	/
-	DATA cvar_frame_length	( ptau  ) / tau _frame	/
-	DATA cvar_num_results	( ptau  ) / 1	/
-	DATA ( cvar_axes(i,ptau ),i=1,3 ) / mxt, myt, mnormal /
-
-	DATA cvar_primary_name	( pqsen ) / 'SENSIBLE HEAT'/
-	DATA cvar_name_code	( pqsen ) / 'QSEN'	/
-	DATA cvar_unit_code	( pqsen ) / puheat_flux	/
-	DATA cvar_frame_start	( pqsen ) / to_qsen	/
-	DATA cvar_frame_length	( pqsen ) / qsen_frame	/
-	DATA cvar_num_results	( pqsen ) / 2	/	! also computes QEVA
-	DATA ( cvar_axes(i,pqsen),i=1,3 ) / mxt, myt, mnormal /
-
-	DATA cvar_primary_name	( pqrad ) / 'RADIATIVE HEAT' /
-	DATA cvar_name_code	( pqrad ) / 'QRAD'	/
-	DATA cvar_unit_code	( pqrad ) / puheat_flux	/
-	DATA cvar_frame_start	( pqrad ) / to_qrad	/
-	DATA cvar_frame_length	( pqrad ) / qrad_frame	/
-	DATA cvar_num_results	( pqrad ) / 1	/
-	DATA ( cvar_axes(i,pqrad),i=1,3 ) / mxt, myt, mnormal /
-
-	DATA cvar_primary_name	( pqflx ) / 'SURFACE HEAT FLUX' /
-	DATA cvar_name_code	( pqflx ) / 'QFLX'	/
-	DATA cvar_unit_code	( pqflx ) / puheat_flux	/
-	DATA cvar_frame_start	( pqflx ) / to_qflx	/
-	DATA cvar_frame_length	( pqflx ) / qflx_frame	/
-	DATA cvar_num_results	( pqflx ) / 1	/
-	DATA ( cvar_axes(i,pqflx),i=1,3 ) / mxt, myt, mnormal /
-
-	DATA cvar_primary_name	( prho  ) / 'NORMALIZED DENSITY'/
-	DATA cvar_name_code	( prho  ) / 'RHO'	/
-	DATA cvar_unit_code	( prho  ) / punot_app	/
-	DATA cvar_frame_start	( prho  ) / to_rho	/
-	DATA cvar_frame_length	( prho  ) / rho_frame	/
-	DATA cvar_num_results	( prho  ) / 1	/
-	DATA ( cvar_axes(i,prho ),i=1,3 ) / mxt, myt, mzt /
-
-	DATA cvar_primary_name	( pdpdx ) 
-     .				/ 'd/dX( BAROCLINIC PRESSURE )'/
-	DATA cvar_name_code	( pdpdx ) / 'DPDX'	/
-	DATA cvar_unit_code	( pdpdx ) / pupres_dx	/
-	DATA cvar_frame_start	( pdpdx ) / to_dpdx	/
-	DATA cvar_frame_length	( pdpdx ) / dpdx_frame	/
-	DATA cvar_num_results	( pdpdx ) / 2	/	! also DPDY
-	DATA ( cvar_axes(i,pdpdx),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pdpdy ) 
-     .				/ 'd/dY( BAROCLINIC PRESSURE )'/
-	DATA cvar_name_code	( pdpdy ) / 'DPDY'	/
-	DATA cvar_unit_code	( pdpdy ) / pupres_dx	/
-	DATA cvar_frame_start	( pdpdy ) / to_dpdy	/
-	DATA cvar_frame_length	( pdpdy ) / dpdy_frame	/
-	DATA cvar_num_results	( pdpdy ) / 2	/	! also DPDX
-	DATA ( cvar_axes(i,pdpdy),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pw_u  ) 
-     .				 / 'VERTICAL VELOCITY COMPUTED ON UV GRID' /
-	DATA cvar_name_code	( pw_u  ) / 'W_U '	/
-	DATA cvar_unit_code	( pw_u  ) / puvelocity	/
-	DATA cvar_frame_start	( pw_u  ) / to_w_u	/
-	DATA cvar_frame_length	( pw_u  ) / w_u_frame	/
-	DATA cvar_num_results	( pw_u  ) / 1	/
-	DATA ( cvar_axes(i,pw_u ),i=1,3 ) / mxu, myu, mzw /
-
-	DATA cvar_primary_name	( puavz ) 
-     .				 / 'VERTICALLY AVERAGED ZONAL VELOCITY'	/
-	DATA cvar_name_code	( puavz ) / 'UAVZ'	/
-	DATA cvar_unit_code	( puavz ) / puvelocity	/
-	DATA cvar_frame_start	( puavz ) / to_uavz	/
-	DATA cvar_frame_length	( puavz ) / uavz_frame	/
-	DATA cvar_num_results	( puavz ) / 2	/	! also VAVZ
-	DATA ( cvar_axes(i,puavz),i=1,3 ) / mxu, myu, mnormal /
-
-	DATA cvar_primary_name	( pvavz ) 
-     .				 / 'VERTICALLY AVERAGED MERIDIONAL VELOCITY' /
-	DATA cvar_name_code	( pvavz ) / 'VAVZ'	/
-	DATA cvar_unit_code	( pvavz ) / puvelocity	/
-	DATA cvar_frame_start	( pvavz ) / to_vavz	/
-	DATA cvar_frame_length	( pvavz ) / vavz_frame	/
-	DATA cvar_num_results	( pvavz ) / 2	/	! also UAVZ
-	DATA ( cvar_axes(i,pvavz),i=1,3 ) / mxu, myu, mnormal /
-
-	DATA cvar_primary_name	( pfuw  ) 
-     .					/ 'ZONAL ADVECTIVE COEFFICIENT, FUW' /
-	DATA cvar_name_code	( pfuw  ) / 'FUW ' 	/
-	DATA cvar_unit_code	( pfuw  ) / puvelocity	/
-	DATA cvar_frame_start	( pfuw  ) / to_fuw 	/
-	DATA cvar_frame_length	( pfuw  ) / fuw_frame	/
-	DATA cvar_num_results	( pfuw  ) / 1	/
-	DATA ( cvar_axes(i,pfuw ),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pfvn  ) 
-     .				/ 'MERIDIONAL ADVECTIVE COEFFICIENT, FVN' /
-	DATA cvar_name_code	( pfvn  ) / 'FVN '	/
-	DATA cvar_unit_code	( pfvn  ) / puvelocity	/
-	DATA cvar_frame_start	( pfvn  ) / to_fvn 	/
-	DATA cvar_frame_length	( pfvn  ) / fvn_frame	/
-	DATA cvar_num_results	( pfvn  ) / 1	/
-	DATA ( cvar_axes(i,pfvn ),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( puadx ) / 'ZONAL ADVECTION OF U' /
-	DATA cvar_name_code	( puadx ) / 'UADX'	/
-	DATA cvar_unit_code	( puadx ) / puvel_dt	/
-	DATA cvar_frame_start	( puadx ) / to_uadx	/
-	DATA cvar_frame_length	( puadx ) / uadx_frame	/
-	DATA cvar_num_results	( puadx ) / 1	/
-	DATA ( cvar_axes(i,puadx),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( puady ) / 'MERIDIONAL ADVECTION OF U' /
-	DATA cvar_name_code	( puady ) / 'UADY'	/
-	DATA cvar_unit_code	( puady ) / puvel_dt	/
-	DATA cvar_frame_start	( puady ) / to_uady	/
-	DATA cvar_frame_length	( puady ) / uady_frame	/
-	DATA cvar_num_results	( puady ) / 1	/
-	DATA ( cvar_axes(i,puady),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( puadz ) / 'VERTICAL ADVECTION OF U' /
-	DATA cvar_name_code	( puadz ) / 'UADZ'	/
-	DATA cvar_unit_code	( puadz ) / puvel_dt	/
-	DATA cvar_frame_start	( puadz ) / to_uadz	/
-	DATA cvar_frame_length	( puadz ) / uadz_frame	/
-	DATA cvar_num_results	( puadz ) / 1	/
-	DATA ( cvar_axes(i,puadz),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pvadx ) / 'ZONAL ADVECTION OF V' /
-	DATA cvar_name_code	( pvadx ) / 'VADX'	/
-	DATA cvar_unit_code	( pvadx ) / puvel_dt	/
-	DATA cvar_frame_start	( pvadx ) / to_vadx	/
-	DATA cvar_frame_length	( pvadx ) / vadx_frame	/
-	DATA cvar_num_results	( pvadx ) / 1	/
-	DATA ( cvar_axes(i,pvadx),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pvady ) / 'MERIDIONAL ADVECTION OF V' /
-	DATA cvar_name_code	( pvady ) / 'VADY'	/
-	DATA cvar_unit_code	( pvady ) / puvel_dt	/
-	DATA cvar_frame_start	( pvady ) / to_vady	/
-	DATA cvar_frame_length	( pvady ) / vady_frame	/
-	DATA cvar_num_results	( pvady ) / 1	/
-	DATA ( cvar_axes(i,pvady),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pvadz ) / 'VERTICAL ADVECTION OF V' /
-	DATA cvar_name_code	( pvadz ) / 'VADZ'	/
-	DATA cvar_unit_code	( pvadz ) / puvel_dt	/
-	DATA cvar_frame_start	( pvadz ) / to_vadz	/
-	DATA cvar_frame_length	( pvadz ) / vadz_frame	/
-	DATA cvar_num_results	( pvadz ) / 1	/
-	DATA ( cvar_axes(i,pvadz),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pudfh ) / 'HORIZONTAL DIFFUSION OF U' /
-	DATA cvar_name_code	( pudfh ) / 'UDFH'	/
-	DATA cvar_unit_code	( pudfh ) / puvel_dt	/
-	DATA cvar_frame_start	( pudfh ) / to_udfh	/
-	DATA cvar_frame_length	( pudfh ) / udfh_frame	/
-	DATA cvar_num_results	( pudfh ) / 1	/
-	DATA ( cvar_axes(i,pudfh),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pudfz ) / 'VERTICAL DIFFUSION OF U' /
-	DATA cvar_name_code	( pudfz ) / 'UDFZ'	/
-	DATA cvar_unit_code	( pudfz ) / puvel_dt	/
-	DATA cvar_frame_start	( pudfz ) / to_udfz	/
-	DATA cvar_frame_length	( pudfz ) / udfz_frame	/
-	DATA cvar_num_results	( pudfz ) / 1	/
-	DATA ( cvar_axes(i,pudfz),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pvdfh ) / 'HORIZONTAL DIFFUSION OF V' /
-	DATA cvar_name_code	( pvdfh ) / 'VDFH'	/
-	DATA cvar_unit_code	( pvdfh ) / puvel_dt	/
-	DATA cvar_frame_start	( pvdfh ) / to_vdfh	/
-	DATA cvar_frame_length	( pvdfh ) / vdfh_frame	/
-	DATA cvar_num_results	( pvdfh ) / 1	/
-	DATA ( cvar_axes(i,pvdfh),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pvdfz ) / 'VERTICAL DIFFUSION OF V' /
-	DATA cvar_name_code	( pvdfz ) / 'VDFZ'	/
-	DATA cvar_unit_code	( pvdfz ) / puvel_dt	/
-	DATA cvar_frame_start	( pvdfz ) / to_vdfz	/
-	DATA cvar_frame_length	( pvdfz ) / vdfz_frame	/
-	DATA cvar_num_results	( pvdfz ) / 1	/
-	DATA ( cvar_axes(i,pvdfz),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pucoi ) 
-     .				/ 'U DUE TO IMPLICIT CORIOLIS CORRECTION' /
-	DATA cvar_name_code	( pucoi ) / 'UCOI'	/
-	DATA cvar_unit_code	( pucoi ) / puvel_dt	/
-	DATA cvar_frame_start	( pucoi ) / to_ucoi	/
-	DATA cvar_frame_length	( pucoi ) / ucoi_frame	/
-	DATA cvar_num_results	( pucoi ) / -9999	/
-	DATA ( cvar_axes(i,pucoi),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pvcoi )  
-     .				/ 'V DUE TO IMPLICIT CORIOLIS CORRECTION' /
-	DATA cvar_name_code	( pvcoi ) / 'VCOI'	/
-	DATA cvar_unit_code	( pvcoi ) / puvel_dt	/
-	DATA cvar_frame_start	( pvcoi ) / to_vcoi	/
-	DATA cvar_frame_length	( pvcoi ) / vcoi_frame	/
-	DATA cvar_num_results	( pvcoi ) / -9999	/
-	DATA ( cvar_axes(i,pvcoi),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pubpi ) 
-     .				/ 'U DUE TO BAROCLINIC PRESSURE EFFECTS' /
-	DATA cvar_name_code	( pubpi ) / 'UBPI'	/
-	DATA cvar_unit_code	( pubpi ) / puvel_dt	/
-	DATA cvar_frame_start	( pubpi ) / to_ubpi	/
-	DATA cvar_frame_length	( pubpi ) / ubpi_frame	/
-	DATA cvar_num_results	( pubpi ) / 1	/
-	DATA ( cvar_axes(i,pubpi),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pvbpi ) 
-     .				/ 'V DUE TO BAROCLINIC PRESSURE EFFECTS' /
-	DATA cvar_name_code	( pvbpi ) / 'VBPI'	/
-	DATA cvar_unit_code	( pvbpi ) / puvel_dt	/
-	DATA cvar_frame_start	( pvbpi ) / to_vbpi	/
-	DATA cvar_frame_length	( pvbpi ) / vbpi_frame	/
-	DATA cvar_num_results	( pvbpi ) / 1	/
-	DATA ( cvar_axes(i,pvbpi),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pubwi ) / 'U DUE TO WIND STRESS EFFECTS' /
-	DATA cvar_name_code	( pubwi ) / 'UBWI'	/
-	DATA cvar_unit_code	( pubwi ) / puvel_dt	/
-	DATA cvar_frame_start	( pubwi ) / to_ubwi	/
-	DATA cvar_frame_length	( pubwi ) / ubwi_frame	/
-	DATA cvar_num_results	( pubwi ) / 1	/
-	DATA ( cvar_axes(i,pubwi),i=1,3 ) / mxu, myu, mnormal /
-
-	DATA cvar_primary_name	( pvbwi ) / 'V DUE TO WIND STRESS EFFECTS' /
-	DATA cvar_name_code	( pvbwi ) / 'VBWI'	/
-	DATA cvar_unit_code	( pvbwi ) / puvel_dt	/
-	DATA cvar_frame_start	( pvbwi ) / to_vbwi	/
-	DATA cvar_frame_length	( pvbwi ) / vbwi_frame	/
-	DATA cvar_num_results	( pvbwi ) / 1	/
-	DATA ( cvar_axes(i,pvbwi),i=1,3 ) / mxu, myu, mnormal /
-
-	DATA cvar_primary_name	( pucoe ) 
-     .				/ 'U DUE TO EXPLICIT CORIOLIS CALCULATION' /
-	DATA cvar_name_code	( pucoe ) / 'UCOE'	/
-	DATA cvar_unit_code	( pucoe ) / puvel_dt	/
-	DATA cvar_frame_start	( pucoe ) / to_ucoe	/
-	DATA cvar_frame_length	( pucoe ) / ucoe_frame	/
-	DATA cvar_num_results	( pucoe ) / 2	/	! also VCOE
-	DATA ( cvar_axes(i,pucoe),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pvcoe ) 
-     .				/ 'V DUE TO EXPLICIT CORIOLIS CALCULATION' /
-	DATA cvar_name_code	( pvcoe ) / 'VCOE'	/
-	DATA cvar_unit_code	( pvcoe ) / puvel_dt	/
-	DATA cvar_frame_start	( pvcoe ) / to_vcoe	/
-	DATA cvar_frame_length	( pvcoe ) / vcoe_frame	/
-	DATA cvar_num_results	( pvcoe ) / 2	/	! also UCOE
-	DATA ( cvar_axes(i,pvcoe),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( puad  ) / 'TOTAL ADVECTION OF U' /
-	DATA cvar_name_code	( puad  ) / 'UAD '	/
-	DATA cvar_unit_code	( puad  ) / puvel_dt	/
-	DATA cvar_frame_start	( puad  ) / to_uad 	/
-	DATA cvar_frame_length	( puad  ) / uad _frame	/
-	DATA cvar_num_results	( puad  ) / 1	/
-	DATA ( cvar_axes(i,puad ),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pvad  ) / 'TOTAL ADVECTION OF V' /
-	DATA cvar_name_code	( pvad  ) / 'VAD '	/
-	DATA cvar_unit_code	( pvad  ) / puvel_dt	/
-	DATA cvar_frame_start	( pvad  ) / to_vad 	/
-	DATA cvar_frame_length	( pvad  ) / vad _frame	/
-	DATA cvar_num_results	( pvad  ) / 1	/
-	DATA ( cvar_axes(i,pvad ),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pudf  ) / 'TOTAL DIFFUSION OF U' /
-	DATA cvar_name_code	( pudf  ) / 'UDF '	/
-	DATA cvar_unit_code	( pudf  ) / puvel_dt	/
-	DATA cvar_frame_start	( pudf  ) / to_udf 	/
-	DATA cvar_frame_length	( pudf  ) / udf _frame	/
-	DATA cvar_num_results	( pudf  ) / 1	/
-	DATA ( cvar_axes(i,pudf ),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pvdf  ) / 'TOTAL DIFFUSION OF V' /
-	DATA cvar_name_code	( pvdf  ) / 'VDF '	/
-	DATA cvar_unit_code	( pvdf  ) / puvel_dt	/
-	DATA cvar_frame_start	( pvdf  ) / to_vdf 	/
-	DATA cvar_frame_length	( pvdf  ) / vdf _frame	/
-	DATA cvar_num_results	( pvdf  ) / 1	/
-	DATA ( cvar_axes(i,pvdf ),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pdudt ) / 'd/dt(U)'	/
-	DATA cvar_name_code	( pdudt ) / 'DUDT'	/
-	DATA cvar_unit_code	( pdudt ) / puvel_dt	/
-	DATA cvar_frame_start	( pdudt ) / to_dudt	/
-	DATA cvar_frame_length	( pdudt ) / dudt_frame	/
-	DATA cvar_num_results	( pdudt ) / 1	/
-	DATA ( cvar_axes(i,pdudt),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pdvdt ) / 'd/dt(V)'/
-	DATA cvar_name_code	( pdvdt ) / 'DVDT'	/
-	DATA cvar_unit_code	( pdvdt ) / puvel_dt	/
-	DATA cvar_frame_start	( pdvdt ) / to_dvdt	/
-	DATA cvar_frame_length	( pdvdt ) / dvdt_frame	/
-	DATA cvar_num_results	( pdvdt ) / 1	/
-	DATA ( cvar_axes(i,pdvdt),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pdwdt ) / 'd/dt(W)'/
-	DATA cvar_name_code	( pdwdt ) / 'DWDT'	/
-	DATA cvar_unit_code	( pdwdt ) / puvel_dt	/
-	DATA cvar_frame_start	( pdwdt ) / to_dwdt	/
-	DATA cvar_frame_length	( pdwdt ) / dwdt_frame	/
-	DATA cvar_num_results	( pdwdt ) / 1	/
-	DATA ( cvar_axes(i,pdwdt),i=1,3 ) / mxu, myu, mzw /
-
-	DATA cvar_primary_name	( pdtdt ) / 'd/dt(TEMPERATURE)'/
-	DATA cvar_name_code	( pdtdt ) / 'DTDT'	/
-	DATA cvar_unit_code	( pdtdt ) / putemp_dt	/
-	DATA cvar_frame_start	( pdtdt ) / to_dtdt	/
-	DATA cvar_frame_length	( pdtdt ) / dtdt_frame	/
-	DATA cvar_num_results	( pdtdt ) / 1	/
-	DATA ( cvar_axes(i,pdtdt),i=1,3 ) / mxt, myt, mzt /
-
-	DATA cvar_primary_name	( pubps ) 
-     .				/ 'U DUE TO SURFACE PRESSURE EFFECTS' /
-	DATA cvar_name_code	( pubps ) / 'UBPS'	/
-	DATA cvar_unit_code	( pubps ) / puvel_dt	/
-	DATA cvar_frame_start	( pubps ) / to_ubps	/
-	DATA cvar_frame_length	( pubps ) / ubps_frame	/
-	DATA cvar_num_results	( pubps ) / 1	/
-	DATA ( cvar_axes(i,pubps),i=1,3 ) / mxu, myu, mnormal /
-
-	DATA cvar_primary_name	( pvbps ) 
-     .				/ 'V DUE TO SURFACE PRESSURE EFFECTS' /
-	DATA cvar_name_code	( pvbps ) / 'VBPS'	/
-	DATA cvar_unit_code	( pvbps ) / puvel_dt	/
-	DATA cvar_frame_start	( pvbps ) / to_vbps	/
-	DATA cvar_frame_length	( pvbps ) / vbps_frame	/
-	DATA cvar_num_results	( pvbps ) / 1	/
-	DATA ( cvar_axes(i,pvbps),i=1,3 ) / mxu, myu, mnormal /
-
-	DATA cvar_primary_name	( psali ) 
-     .				/ 'SALINITY'/
-	DATA cvar_name_code	( psali ) / 'SALI'	/
-	DATA cvar_unit_code	( psali ) / puppt	/
-	DATA cvar_frame_start	( psali ) / to_sali	/
-	DATA cvar_frame_length	( psali ) / sali_frame	/
-	DATA cvar_num_results	( psali ) / 1	/
-	DATA ( cvar_axes(i,psali),i=1,3 ) / mxt, myt, mzt /
-
-	DATA cvar_primary_name	( pdens ) 
-     .				/ '(DENSITY-1)*1000'		/
-	DATA cvar_name_code	( pdens ) / 'DENS'	/
-	DATA cvar_unit_code	( pdens ) / pudensity	/
-	DATA cvar_frame_start	( pdens ) / to_dens	/
-	DATA cvar_frame_length	( pdens ) / dens_frame	/
-	DATA cvar_num_results	( pdens ) / 1	/
-	DATA ( cvar_axes(i,pdens),i=1,3 ) / mxt, myt, mzt /
-
-	DATA cvar_primary_name	( pubp  ) 
-     .				/ 'U DUE TO TOTAL PRESSURE' /
-	DATA cvar_name_code	( pubp  ) / 'UBP '	/
-	DATA cvar_unit_code	( pubp  ) / puvel_dt	/
-	DATA cvar_frame_start	( pubp  ) / to_ubp 	/
-	DATA cvar_frame_length	( pubp  ) /  ubp_frame	/
-	DATA cvar_num_results	( pubp  ) / 1	/
-	DATA ( cvar_axes(i,pubp ),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pvbp  ) 
-     .				/ 'V DUE TO TOTAL PRESSURE' /
-	DATA cvar_name_code	( pvbp  ) / 'VBP '	/
-	DATA cvar_unit_code	( pvbp  ) / puvel_dt	/
-	DATA cvar_frame_start	( pvbp  ) / to_vbp 	/
-	DATA cvar_frame_length	( pvbp  ) /  vbp_frame	/
-	DATA cvar_num_results	( pvbp  ) / 1	/
-	DATA ( cvar_axes(i,pvbp ),i=1,3 ) / mxu, myu, mzt /
-
-	DATA cvar_primary_name	( pcmsk ) / 'CONVECTIVE ADJUSTMENT MASK'/
-	DATA cvar_name_code	( pcmsk ) / 'CMSK'	/
-	DATA cvar_unit_code	( pcmsk ) / punot_app	/
-	DATA cvar_frame_start	( pcmsk ) / to_cmsk	/
-	DATA cvar_frame_length	( pcmsk ) / cmsk_frame	/
-	DATA cvar_num_results	( pcmsk ) / 1	/
-	DATA ( cvar_axes(i,pcmsk),i=1,3 ) / mxt, myt, mzt /
-
-	DATA cvar_primary_name	( pw_t  ) 
-     .				/ 'VERTICAL VELOCITY COMPUTED ON TS GRID'/
-	DATA cvar_name_code	( pw_t  ) / 'W_T '	/
-	DATA cvar_unit_code	( pw_t  ) / puvelocity	/
-	DATA cvar_frame_start	( pw_t  ) / to_w_t 	/
-	DATA cvar_frame_length	( pw_t  ) /  w_t_frame	/
-	DATA cvar_num_results	( pw_t  ) / 1	/
-	DATA ( cvar_axes(i,pw_t ),i=1,3 ) / mxt, myt, mzw /
-
-	DATA cvar_primary_name	( pcair ) / 'CLIMATOLOGICAL AIR TEMPERATURE'/
-	DATA cvar_name_code	( pcair ) / 'CAIR'	/
-	DATA cvar_unit_code	( pcair ) / putemperature /
-	DATA cvar_frame_start	( pcair ) / to_cair	/
-	DATA cvar_frame_length	( pcair ) / cair_frame	/
-	DATA cvar_num_results	( pcair ) / 1	/
-	DATA ( cvar_axes(i,pcair),i=1,3 ) / mxt, myt, mnormal /
-
-	DATA cvar_primary_name	( pair  ) / 'AIR TEMPERATURE'/
-	DATA cvar_name_code	( pair  ) / 'AIR '	/
-	DATA cvar_unit_code	( pair  ) / putemperature /
-	DATA cvar_frame_start	( pair  ) / to_air 	/
-	DATA cvar_frame_length	( pair  ) / air_frame	/
-	DATA cvar_num_results	( pair  ) / 1	/
-	DATA ( cvar_axes(i,pair ),i=1,3 ) / mxt, myt, mnormal /
-
-********************************************************************************
-* variable instances needed to  compute cvar variables
-
-	DATA cv_category (to_qcdz+1)/ cat_file_var	/
-	DATA cv_variable (to_qcdz+1)/ pu		/
-	DATA cv_lo_d1  (to_qcdz+1)/ 0		/
-	DATA cv_hi_d1  (to_qcdz+1)/ 0		/
-	DATA cv_lo_d2  (to_qcdz+1)/ 0		/
-	DATA cv_hi_d2  (to_qcdz+1)/ 0		/
-	DATA cv_lo_d3  (to_qcdz+1)/ 0		/
-	DATA cv_hi_d3  (to_qcdz+1)/ 1		/
-	DATA cv_lo_d4  (to_qcdz+1)/ 0		/
-	DATA cv_hi_d4  (to_qcdz+1)/ 0		/
-	DATA cv_lo_d5  (to_qcdz+1)/ 0		/
-	DATA cv_hi_d5  (to_qcdz+1)/ 0		/
-	DATA cv_lo_d6  (to_qcdz+1)/ 0		/
-	DATA cv_hi_d6  (to_qcdz+1)/ 0		/
-
-	DATA cv_category (to_qcdz+2)/ cat_file_var	/
-	DATA cv_variable (to_qcdz+2)/ pv		/
-	DATA cv_lo_d1  (to_qcdz+2)/ 0		/
-	DATA cv_hi_d1  (to_qcdz+2)/ 0		/
-	DATA cv_lo_d2  (to_qcdz+2)/ 0		/
-	DATA cv_hi_d2  (to_qcdz+2)/ 0		/
-	DATA cv_lo_d3  (to_qcdz+2)/ 0		/
-	DATA cv_hi_d3  (to_qcdz+2)/ 1		/
-	DATA cv_lo_d4  (to_qcdz+2)/ 0		/
-	DATA cv_hi_d4  (to_qcdz+2)/ 0		/
-	DATA cv_lo_d5  (to_qcdz+2)/ 0		/
-	DATA cv_hi_d5  (to_qcdz+2)/ 0		/
-	DATA cv_lo_d6  (to_qcdz+2)/ 0		/
-	DATA cv_hi_d6  (to_qcdz+2)/ 0		/
-
-	DATA cv_category (to_qcdz+3)/ cat_calc_var	/
-	DATA cv_variable (to_qcdz+3)/ prho0 		/
-	DATA cv_lo_d1  (to_qcdz+3)/ 0		/
-	DATA cv_hi_d1  (to_qcdz+3)/ 0		/
-	DATA cv_lo_d2  (to_qcdz+3)/ 0		/
-	DATA cv_hi_d2  (to_qcdz+3)/ 0		/
-	DATA cv_lo_d3  (to_qcdz+3)/ 0		/
-	DATA cv_hi_d3  (to_qcdz+3)/ 1		/
-	DATA cv_lo_d4  (to_qcdz+3)/ 0		/
-	DATA cv_hi_d4  (to_qcdz+3)/ 0		/
-	DATA cv_lo_d5  (to_qcdz+3)/ 0		/
-	DATA cv_hi_d5  (to_qcdz+3)/ 0		/
-	DATA cv_lo_d6  (to_qcdz+3)/ 0		/
-	DATA cv_hi_d6  (to_qcdz+3)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_pcdz+1)/ cat_file_var	/
-	DATA cv_variable (to_pcdz+1)/ pu		/
-	DATA cv_lo_d1  (to_pcdz+1)/ 0		/
-	DATA cv_hi_d1  (to_pcdz+1)/ 0		/
-	DATA cv_lo_d2  (to_pcdz+1)/ 0		/
-	DATA cv_hi_d2  (to_pcdz+1)/ 0		/
-	DATA cv_lo_d3  (to_pcdz+1)/ 0		/
-	DATA cv_hi_d3  (to_pcdz+1)/ 1		/
-	DATA cv_lo_d4  (to_pcdz+1)/ 0		/
-	DATA cv_hi_d4  (to_pcdz+1)/ 0		/
-	DATA cv_lo_d5  (to_pcdz+1)/ 0		/
-	DATA cv_hi_d5  (to_pcdz+1)/ 0		/
-	DATA cv_lo_d6  (to_pcdz+1)/ 0		/
-	DATA cv_hi_d6  (to_pcdz+1)/ 0		/
-
-	DATA cv_category (to_pcdz+2)/ cat_file_var	/
-	DATA cv_variable (to_pcdz+2)/ pv		/
-	DATA cv_lo_d1  (to_pcdz+2)/ 0		/
-	DATA cv_hi_d1  (to_pcdz+2)/ 0		/
-	DATA cv_lo_d2  (to_pcdz+2)/ 0		/
-	DATA cv_hi_d2  (to_pcdz+2)/ 0		/
-	DATA cv_lo_d3  (to_pcdz+2)/ 0		/
-	DATA cv_hi_d3  (to_pcdz+2)/ 1		/
-	DATA cv_lo_d4  (to_pcdz+2)/ 0		/
-	DATA cv_hi_d4  (to_pcdz+2)/ 0		/
-	DATA cv_lo_d5  (to_pcdz+2)/ 0		/
-	DATA cv_hi_d5  (to_pcdz+2)/ 0		/
-	DATA cv_lo_d6  (to_pcdz+2)/ 0		/
-	DATA cv_hi_d6  (to_pcdz+2)/ 0		/
-
-	DATA cv_category (to_pcdz+3)/ cat_calc_var	/
-	DATA cv_variable (to_pcdz+3)/ prho0 		/
-	DATA cv_lo_d1  (to_pcdz+3)/ 0		/
-	DATA cv_hi_d1  (to_pcdz+3)/ 0		/
-	DATA cv_lo_d2  (to_pcdz+3)/ 0		/
-	DATA cv_hi_d2  (to_pcdz+3)/ 0		/
-	DATA cv_lo_d3  (to_pcdz+3)/ 0		/
-	DATA cv_hi_d3  (to_pcdz+3)/ 1		/
-	DATA cv_lo_d4  (to_pcdz+3)/ 0		/
-	DATA cv_hi_d4  (to_pcdz+3)/ 0		/
-	DATA cv_lo_d5  (to_pcdz+3)/ 0		/
-	DATA cv_hi_d5  (to_pcdz+3)/ 0		/
-	DATA cv_lo_d6  (to_pcdz+3)/ 0		/
-	DATA cv_hi_d6  (to_pcdz+3)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_rho0+1)/ cat_file_var	/
-	DATA cv_variable (to_rho0+1)/ ptemp		/
-	DATA cv_lo_d1  (to_rho0+1)/ 0		/
-	DATA cv_hi_d1  (to_rho0+1)/ 0		/
-	DATA cv_lo_d2  (to_rho0+1)/ 0		/
-	DATA cv_hi_d2  (to_rho0+1)/ 0		/
-	DATA cv_lo_d3  (to_rho0+1)/ 0		/
-	DATA cv_hi_d3  (to_rho0+1)/ 0		/
-	DATA cv_lo_d4  (to_rho0+1)/ 0		/
-	DATA cv_hi_d4  (to_rho0+1)/ 0		/
-	DATA cv_lo_d5  (to_rho0+1)/ 0		/
-	DATA cv_hi_d5  (to_rho0+1)/ 0		/
-	DATA cv_lo_d6  (to_rho0+1)/ 0		/
-	DATA cv_hi_d6  (to_rho0+1)/ 0		/
-
-	DATA cv_category (to_rho0+2)/ cat_file_var	/
-	DATA cv_variable (to_rho0+2)/ psalt		/
-	DATA cv_lo_d1  (to_rho0+2)/ 0		/
-	DATA cv_hi_d1  (to_rho0+2)/ 0		/
-	DATA cv_lo_d2  (to_rho0+2)/ 0		/
-	DATA cv_hi_d2  (to_rho0+2)/ 0		/
-	DATA cv_lo_d3  (to_rho0+2)/ 0		/
-	DATA cv_hi_d3  (to_rho0+2)/ 0		/
-	DATA cv_lo_d4  (to_rho0+2)/ 0		/
-	DATA cv_hi_d4  (to_rho0+2)/ 0		/
-	DATA cv_lo_d5  (to_rho0+2)/ 0		/
-	DATA cv_hi_d5  (to_rho0+2)/ 0		/
-	DATA cv_lo_d6  (to_rho0+2)/ 0		/
-	DATA cv_hi_d6  (to_rho0+2)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_qdfz+1)/ cat_file_var	/
-	DATA cv_variable (to_qdfz+1)/ ptemp		/
-	DATA cv_lo_d1  (to_qdfz+1)/ 0		/
-	DATA cv_hi_d1  (to_qdfz+1)/ 0		/
-	DATA cv_lo_d2  (to_qdfz+1)/ 0		/
-	DATA cv_hi_d2  (to_qdfz+1)/ 0		/
-	DATA cv_lo_d3  (to_qdfz+1)/ -1		/
-	DATA cv_hi_d3  (to_qdfz+1)/ +1		/
-	DATA cv_lo_d4  (to_qdfz+1)/ ptstep_1hr_b4	/
-	DATA cv_hi_d4  (to_qdfz+1)/ ptstep_1hr_b4	/
-	DATA cv_lo_d5  (to_qdfz+1)/ 0		/
-	DATA cv_hi_d5  (to_qdfz+1)/ 0		/
-	DATA cv_lo_d6  (to_qdfz+1)/ 0		/
-	DATA cv_hi_d6  (to_qdfz+1)/ 0		/
-
-	DATA cv_category (to_qdfz+2)/ cat_calc_var	/
-	DATA cv_variable (to_qdfz+2)/ pqcdz		/
-	DATA cv_lo_d1  (to_qdfz+2)/ 0		/
-	DATA cv_hi_d1  (to_qdfz+2)/ 0		/
-	DATA cv_lo_d2  (to_qdfz+2)/ 0		/
-	DATA cv_hi_d2  (to_qdfz+2)/ 0		/
-	DATA cv_lo_d3  (to_qdfz+2)/ -1		/
-	DATA cv_hi_d3  (to_qdfz+2)/ 0		/
-	DATA cv_lo_d4  (to_qdfz+2)/ ptstep_1hr_b4	/
-	DATA cv_hi_d4  (to_qdfz+2)/ ptstep_1hr_b4	/
-	DATA cv_lo_d5  (to_qdfz+2)/ 0		/
-	DATA cv_hi_d5  (to_qdfz+2)/ 0		/
-	DATA cv_lo_d6  (to_qdfz+2)/ 0		/
-	DATA cv_hi_d6  (to_qdfz+2)/ 0		/
-
-	DATA cv_category (to_qdfz+3)/ cat_calc_var	/
-	DATA cv_variable (to_qdfz+3)/ pqflx		/
-	DATA cv_lo_d1  (to_qdfz+3)/ 0		/
-	DATA cv_hi_d1  (to_qdfz+3)/ 0		/
-	DATA cv_lo_d2  (to_qdfz+3)/ 0		/
-	DATA cv_hi_d2  (to_qdfz+3)/ 0		/
-	DATA cv_lo_d3  (to_qdfz+3)/ 0		/
-	DATA cv_hi_d3  (to_qdfz+3)/ 0		/
-	DATA cv_lo_d4  (to_qdfz+3)/ ptstep_1hr_b4	/
-	DATA cv_hi_d4  (to_qdfz+3)/ ptstep_1hr_b4	/
-	DATA cv_lo_d5  (to_qdfz+3)/ 0		/
-	DATA cv_hi_d5  (to_qdfz+3)/ 0		/
-	DATA cv_lo_d6  (to_qdfz+3)/ 0		/
-	DATA cv_hi_d6  (to_qdfz+3)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_qdfh+1)/ cat_file_var	/
-	DATA cv_variable (to_qdfh+1)/ ptemp		/
-	DATA cv_lo_d1  (to_qdfh+1)/ -1		/
-	DATA cv_hi_d1  (to_qdfh+1)/ +1		/
-	DATA cv_lo_d2  (to_qdfh+1)/ -1		/
-	DATA cv_hi_d2  (to_qdfh+1)/ +1		/
-	DATA cv_lo_d3  (to_qdfh+1)/ 0		/
-	DATA cv_hi_d3  (to_qdfh+1)/ 0		/
-	DATA cv_lo_d4  (to_qdfh+1)/ ptstep_1hr_b4	/
-	DATA cv_hi_d4  (to_qdfh+1)/ ptstep_1hr_b4	/
-	DATA cv_lo_d5  (to_qdfh+1)/ 0		/
-	DATA cv_hi_d5  (to_qdfh+1)/ 0		/
-	DATA cv_lo_d6  (to_qdfh+1)/ 0		/
-	DATA cv_hi_d6  (to_qdfh+1)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_qadx+1)/ cat_file_var	/
-	DATA cv_variable (to_qadx+1)/ ptemp		/
-	DATA cv_lo_d1  (to_qadx+1)/ -1		/
-	DATA cv_hi_d1  (to_qadx+1)/ +1		/
-	DATA cv_lo_d2  (to_qadx+1)/ -1		/
-	DATA cv_hi_d2  (to_qadx+1)/ 0		/
-	DATA cv_lo_d3  (to_qadx+1)/ 0		/
-	DATA cv_hi_d3  (to_qadx+1)/ 0		/
-	DATA cv_lo_d4  (to_qadx+1)/ 0		/
-	DATA cv_hi_d4  (to_qadx+1)/ 0		/
-	DATA cv_lo_d5  (to_qadx+1)/ 0		/
-	DATA cv_hi_d5  (to_qadx+1)/ 0		/
-	DATA cv_lo_d6  (to_qadx+1)/ 0		/
-	DATA cv_hi_d6  (to_qadx+1)/ 0		/
-
-	DATA cv_category (to_qadx+2)/ cat_file_var	/
-	DATA cv_variable (to_qadx+2)/ pu		/
-	DATA cv_lo_d1  (to_qadx+2)/ -1		/
-	DATA cv_hi_d1  (to_qadx+2)/ 0		/
-	DATA cv_lo_d2  (to_qadx+2)/ -1		/
-	DATA cv_hi_d2  (to_qadx+2)/ 0		/
-	DATA cv_lo_d3  (to_qadx+2)/ 0		/
-	DATA cv_hi_d3  (to_qadx+2)/ 0		/
-	DATA cv_lo_d4  (to_qadx+2)/ 0		/
-	DATA cv_hi_d4  (to_qadx+2)/ 0		/
-	DATA cv_lo_d5  (to_qadx+2)/ 0		/
-	DATA cv_hi_d5  (to_qadx+2)/ 0		/
-	DATA cv_lo_d6  (to_qadx+2)/ 0		/
-	DATA cv_hi_d6  (to_qadx+2)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_qady+1)/ cat_file_var	/
-	DATA cv_variable (to_qady+1)/ ptemp		/
-	DATA cv_lo_d1  (to_qady+1)/ 0		/
-	DATA cv_hi_d1  (to_qady+1)/ 0		/
-	DATA cv_lo_d2  (to_qady+1)/ -1		/
-	DATA cv_hi_d2  (to_qady+1)/ +1		/
-	DATA cv_lo_d3  (to_qady+1)/ 0		/
-	DATA cv_hi_d3  (to_qady+1)/ 0		/
-	DATA cv_lo_d4  (to_qady+1)/ 0		/
-	DATA cv_hi_d4  (to_qady+1)/ 0		/
-	DATA cv_lo_d5  (to_qady+1)/ 0		/
-	DATA cv_hi_d5  (to_qady+1)/ 0		/
-	DATA cv_lo_d6  (to_qady+1)/ 0		/
-	DATA cv_hi_d6  (to_qady+1)/ 0		/
-
-	DATA cv_category (to_qady+2)/ cat_file_var	/
-	DATA cv_variable (to_qady+2)/ pv		/
-	DATA cv_lo_d1  (to_qady+2)/ -1		/
-	DATA cv_hi_d1  (to_qady+2)/ 0		/
-	DATA cv_lo_d2  (to_qady+2)/ -1		/
-	DATA cv_hi_d2  (to_qady+2)/ 0		/
-	DATA cv_lo_d3  (to_qady+2)/ 0		/
-	DATA cv_hi_d3  (to_qady+2)/ 0		/
-	DATA cv_lo_d4  (to_qady+2)/ 0		/
-	DATA cv_hi_d4  (to_qady+2)/ 0		/
-	DATA cv_lo_d5  (to_qady+2)/ 0		/
-	DATA cv_hi_d5  (to_qady+2)/ 0		/
-	DATA cv_lo_d6  (to_qady+2)/ 0		/
-	DATA cv_hi_d6  (to_qady+2)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_qadz+1)/ cat_file_var	/
-	DATA cv_variable (to_qadz+1)/ ptemp		/
-	DATA cv_lo_d1  (to_qadz+1)/ 0		/
-	DATA cv_hi_d1  (to_qadz+1)/ 0		/
-	DATA cv_lo_d2  (to_qadz+1)/ 0		/
-	DATA cv_hi_d2  (to_qadz+1)/ 0		/
-	DATA cv_lo_d3  (to_qadz+1)/ -1		/
-	DATA cv_hi_d3  (to_qadz+1)/ +1		/
-	DATA cv_lo_d4  (to_qadz+1)/ 0		/
-	DATA cv_hi_d4  (to_qadz+1)/ 0		/
-	DATA cv_lo_d5  (to_qadz+1)/ 0		/
-	DATA cv_hi_d5  (to_qadz+1)/ 0		/
-	DATA cv_lo_d6  (to_qadz+1)/ 0		/
-	DATA cv_hi_d6  (to_qadz+1)/ 0		/
-
-	DATA cv_category (to_qadz+2)/ cat_file_var	/
-	DATA cv_variable (to_qadz+2)/ pw		/
-	DATA cv_lo_d1  (to_qadz+2)/ 0		/
-	DATA cv_hi_d1  (to_qadz+2)/ 0		/
-	DATA cv_lo_d2  (to_qadz+2)/ 0		/
-	DATA cv_hi_d2  (to_qadz+2)/ 0		/
-	DATA cv_lo_d3  (to_qadz+2)/ -1		/
-	DATA cv_hi_d3  (to_qadz+2)/ 0		/
-	DATA cv_lo_d4  (to_qadz+2)/ 0		/
-	DATA cv_hi_d4  (to_qadz+2)/ 0		/
-	DATA cv_lo_d5  (to_qadz+2)/ 0		/
-	DATA cv_hi_d5  (to_qadz+2)/ 0		/
-	DATA cv_lo_d6  (to_qadz+2)/ 0		/
-	DATA cv_hi_d6  (to_qadz+2)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_qad +1)/ cat_calc_var	/
-	DATA cv_variable (to_qad +1)/ pqadx		/
-	DATA cv_lo_d1  (to_qad +1)/ 0		/
-	DATA cv_hi_d1  (to_qad +1)/ 0		/
-	DATA cv_lo_d2  (to_qad +1)/ 0		/
-	DATA cv_hi_d2  (to_qad +1)/ 0		/
-	DATA cv_lo_d3  (to_qad +1)/ 0		/
-	DATA cv_hi_d3  (to_qad +1)/ 0		/
-	DATA cv_lo_d4  (to_qad +1)/ 0		/
-	DATA cv_hi_d4  (to_qad +1)/ 0		/
-	DATA cv_lo_d5  (to_qad +1)/ 0		/
-	DATA cv_hi_d5  (to_qad +1)/ 0		/
-	DATA cv_lo_d6  (to_qad +1)/ 0		/
-	DATA cv_hi_d6  (to_qad +1)/ 0		/
-
-	DATA cv_category (to_qad +2)/ cat_calc_var	/
-	DATA cv_variable (to_qad +2)/ pqady		/
-	DATA cv_lo_d1  (to_qad +2)/ 0		/
-	DATA cv_hi_d1  (to_qad +2)/ 0		/
-	DATA cv_lo_d2  (to_qad +2)/ 0		/
-	DATA cv_hi_d2  (to_qad +2)/ 0		/
-	DATA cv_lo_d3  (to_qad +2)/ 0		/
-	DATA cv_hi_d3  (to_qad +2)/ 0		/
-	DATA cv_lo_d4  (to_qad +2)/ 0		/
-	DATA cv_hi_d4  (to_qad +2)/ 0		/
-	DATA cv_lo_d5  (to_qad +2)/ 0		/
-	DATA cv_hi_d5  (to_qad +2)/ 0		/
-	DATA cv_lo_d6  (to_qad +2)/ 0		/
-	DATA cv_hi_d6  (to_qad +2)/ 0		/
-
-	DATA cv_category (to_qad +3)/ cat_calc_var	/
-	DATA cv_variable (to_qad +3)/ pqadz		/
-	DATA cv_lo_d1  (to_qad +3)/ 0		/
-	DATA cv_hi_d1  (to_qad +3)/ 0		/
-	DATA cv_lo_d2  (to_qad +3)/ 0		/
-	DATA cv_hi_d2  (to_qad +3)/ 0		/
-	DATA cv_lo_d3  (to_qad +3)/ 0		/
-	DATA cv_hi_d3  (to_qad +3)/ 0		/
-	DATA cv_lo_d4  (to_qad +3)/ 0		/
-	DATA cv_hi_d4  (to_qad +3)/ 0		/
-	DATA cv_lo_d5  (to_qad +3)/ 0		/
-	DATA cv_hi_d5  (to_qad +3)/ 0		/
-	DATA cv_lo_d6  (to_qad +3)/ 0		/
-	DATA cv_hi_d6  (to_qad +3)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_qdf +1)/ cat_calc_var	/
-	DATA cv_variable (to_qdf +1)/ pqdfh		/
-	DATA cv_lo_d1  (to_qdf +1)/ 0		/
-	DATA cv_hi_d1  (to_qdf +1)/ 0		/
-	DATA cv_lo_d2  (to_qdf +1)/ 0		/
-	DATA cv_hi_d2  (to_qdf +1)/ 0		/
-	DATA cv_lo_d3  (to_qdf +1)/ 0		/
-	DATA cv_hi_d3  (to_qdf +1)/ 0		/
-	DATA cv_lo_d4  (to_qdf +1)/ 0		/
-	DATA cv_hi_d4  (to_qdf +1)/ 0		/
-	DATA cv_lo_d5  (to_qdf +1)/ 0		/
-	DATA cv_hi_d5  (to_qdf +1)/ 0		/
-	DATA cv_lo_d6  (to_qdf +1)/ 0		/
-	DATA cv_hi_d6  (to_qdf +1)/ 0		/
-
-	DATA cv_category (to_qdf +2)/ cat_calc_var	/
-	DATA cv_variable (to_qdf +2)/ pqdfz		/
-	DATA cv_lo_d1  (to_qdf +2)/ 0		/
-	DATA cv_hi_d1  (to_qdf +2)/ 0		/
-	DATA cv_lo_d2  (to_qdf +2)/ 0		/
-	DATA cv_hi_d2  (to_qdf +2)/ 0		/
-	DATA cv_lo_d3  (to_qdf +2)/ 0		/
-	DATA cv_hi_d3  (to_qdf +2)/ 0		/
-	DATA cv_lo_d4  (to_qdf +2)/ 0		/
-	DATA cv_hi_d4  (to_qdf +2)/ 0		/
-	DATA cv_lo_d5  (to_qdf +2)/ 0		/
-	DATA cv_hi_d5  (to_qdf +2)/ 0		/
-	DATA cv_lo_d6  (to_qdf +2)/ 0		/
-	DATA cv_hi_d6  (to_qdf +2)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_qeva+1)/ cat_calc_var	/
-	DATA cv_variable (to_qeva+1)/ ptau		/
-	DATA cv_lo_d1  (to_qeva+1)/ 0		/
-	DATA cv_hi_d1  (to_qeva+1)/ 0		/
-	DATA cv_lo_d2  (to_qeva+1)/ 0		/
-	DATA cv_hi_d2  (to_qeva+1)/ 0		/
-	DATA cv_lo_d3  (to_qeva+1)/ 0		/
-	DATA cv_hi_d3  (to_qeva+1)/ 0		/
-	DATA cv_lo_d4  (to_qeva+1)/ 0		/
-	DATA cv_hi_d4  (to_qeva+1)/ 0		/
-	DATA cv_lo_d5  (to_qeva+1)/ 0		/
-	DATA cv_hi_d5  (to_qeva+1)/ 0		/
-	DATA cv_lo_d6  (to_qeva+1)/ 0		/
-	DATA cv_hi_d6  (to_qeva+1)/ 0		/
-
-	DATA cv_category (to_qeva+2)/ cat_file_var	/
-	DATA cv_variable (to_qeva+2)/ ptemp 		/
-	DATA cv_lo_d1  (to_qeva+2)/ 0		/
-	DATA cv_hi_d1  (to_qeva+2)/ 0		/
-	DATA cv_lo_d2  (to_qeva+2)/ 0		/
-	DATA cv_hi_d2  (to_qeva+2)/ 0		/
-	DATA cv_lo_d3  (to_qeva+2)/ 0		/
-	DATA cv_hi_d3  (to_qeva+2)/ 0		/
-	DATA cv_lo_d4  (to_qeva+2)/ 0		/
-	DATA cv_hi_d4  (to_qeva+2)/ 0		/
-	DATA cv_lo_d5  (to_qeva+2)/ 0		/
-	DATA cv_hi_d5  (to_qeva+2)/ 0		/
-	DATA cv_lo_d6  (to_qeva+2)/ 0		/
-	DATA cv_hi_d6  (to_qeva+2)/ 0		/
-
-	DATA cv_category (to_qeva+3)/ cat_calc_var	/
-	DATA cv_variable (to_qeva+3)/ pair		/
-	DATA cv_lo_d1  (to_qeva+3)/ 0		/
-	DATA cv_hi_d1  (to_qeva+3)/ 0		/
-	DATA cv_lo_d2  (to_qeva+3)/ 0		/
-	DATA cv_hi_d2  (to_qeva+3)/ 0		/
-	DATA cv_lo_d3  (to_qeva+3)/ 0		/
-	DATA cv_hi_d3  (to_qeva+3)/ 0		/
-	DATA cv_lo_d4  (to_qeva+3)/ 0		/
-	DATA cv_hi_d4  (to_qeva+3)/ 0		/
-	DATA cv_lo_d5  (to_qeva+3)/ 0		/
-	DATA cv_hi_d5  (to_qeva+3)/ 0		/
-	DATA cv_lo_d6  (to_qeva+3)/ 0		/
-	DATA cv_hi_d6  (to_qeva+3)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_tau +1)/ cat_file_var	/
-	DATA cv_variable (to_tau +1)/ ptaux		/
-	DATA cv_lo_d1  (to_tau +1)/ -1		/
-	DATA cv_hi_d1  (to_tau +1)/ 0		/
-	DATA cv_lo_d2  (to_tau +1)/ -1		/
-	DATA cv_hi_d2  (to_tau +1)/ 0		/
-	DATA cv_lo_d3  (to_tau +1)/ 0		/
-	DATA cv_hi_d3  (to_tau +1)/ 0		/
-	DATA cv_lo_d4  (to_tau +1)/ 0		/
-	DATA cv_hi_d4  (to_tau +1)/ 0		/
-	DATA cv_lo_d5  (to_tau +1)/ 0		/
-	DATA cv_hi_d5  (to_tau +1)/ 0		/
-	DATA cv_lo_d6  (to_tau +1)/ 0		/
-	DATA cv_hi_d6  (to_tau +1)/ 0		/
-
-	DATA cv_category (to_tau +2)/ cat_file_var	/
-	DATA cv_variable (to_tau +2)/ ptauy		/
-	DATA cv_lo_d1  (to_tau +2)/ -1		/
-	DATA cv_hi_d1  (to_tau +2)/ 0		/
-	DATA cv_lo_d2  (to_tau +2)/ -1		/
-	DATA cv_hi_d2  (to_tau +2)/ 0		/
-	DATA cv_lo_d3  (to_tau +2)/ 0		/
-	DATA cv_hi_d3  (to_tau +2)/ 0		/
-	DATA cv_lo_d4  (to_tau +2)/ 0		/
-	DATA cv_hi_d4  (to_tau +2)/ 0		/
-	DATA cv_lo_d5  (to_tau +2)/ 0		/
-	DATA cv_hi_d5  (to_tau +2)/ 0		/
-	DATA cv_lo_d6  (to_tau +2)/ 0		/
-	DATA cv_hi_d6  (to_tau +2)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_qsen+1)/ cat_calc_var	/
-	DATA cv_variable (to_qsen+1)/ ptau 		/
-	DATA cv_lo_d1  (to_qsen+1)/ 0		/
-	DATA cv_hi_d1  (to_qsen+1)/ 0		/
-	DATA cv_lo_d2  (to_qsen+1)/ 0		/
-	DATA cv_hi_d2  (to_qsen+1)/ 0		/
-	DATA cv_lo_d3  (to_qsen+1)/ 0		/
-	DATA cv_hi_d3  (to_qsen+1)/ 0		/
-	DATA cv_lo_d4  (to_qsen+1)/ 0		/
-	DATA cv_hi_d4  (to_qsen+1)/ 0		/
-	DATA cv_lo_d5  (to_qsen+1)/ 0		/
-	DATA cv_hi_d5  (to_qsen+1)/ 0		/
-	DATA cv_lo_d6  (to_qsen+1)/ 0		/
-	DATA cv_hi_d6  (to_qsen+1)/ 0		/
-
-	DATA cv_category (to_qsen+2)/ cat_file_var	/
-	DATA cv_variable (to_qsen+2)/ ptemp		/
-	DATA cv_lo_d1  (to_qsen+2)/ 0		/
-	DATA cv_hi_d1  (to_qsen+2)/ 0		/
-	DATA cv_lo_d2  (to_qsen+2)/ 0		/
-	DATA cv_hi_d2  (to_qsen+2)/ 0		/
-	DATA cv_lo_d3  (to_qsen+2)/ 0		/
-	DATA cv_hi_d3  (to_qsen+2)/ 0		/
-	DATA cv_lo_d4  (to_qsen+2)/ 0		/
-	DATA cv_hi_d4  (to_qsen+2)/ 0		/
-	DATA cv_lo_d5  (to_qsen+2)/ 0		/
-	DATA cv_hi_d5  (to_qsen+2)/ 0		/
-	DATA cv_lo_d6  (to_qsen+2)/ 0		/
-	DATA cv_hi_d6  (to_qsen+2)/ 0		/
-
-	DATA cv_category (to_qsen+3)/ cat_calc_var	/
-	DATA cv_variable (to_qsen+3)/ pair		/
-	DATA cv_lo_d1  (to_qsen+3)/ 0		/
-	DATA cv_hi_d1  (to_qsen+3)/ 0		/
-	DATA cv_lo_d2  (to_qsen+3)/ 0		/
-	DATA cv_hi_d2  (to_qsen+3)/ 0		/
-	DATA cv_lo_d3  (to_qsen+3)/ 0		/
-	DATA cv_hi_d3  (to_qsen+3)/ 0		/
-	DATA cv_lo_d4  (to_qsen+3)/ 0		/
-	DATA cv_hi_d4  (to_qsen+3)/ 0		/
-	DATA cv_lo_d5  (to_qsen+3)/ 0		/
-	DATA cv_hi_d5  (to_qsen+3)/ 0		/
-	DATA cv_lo_d6  (to_qsen+3)/ 0		/
-	DATA cv_hi_d6  (to_qsen+3)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_qrad+1)/ cat_file_var	/
-	DATA cv_variable (to_qrad+1)/ ptemp_special	/
-	DATA cv_lo_d1  (to_qrad+1)/ 0		/
-	DATA cv_hi_d1  (to_qrad+1)/ 0		/
-	DATA cv_lo_d2  (to_qrad+1)/ 0		/
-	DATA cv_hi_d2  (to_qrad+1)/ 0		/
-	DATA cv_lo_d3  (to_qrad+1)/ 0		/	! SST
-	DATA cv_hi_d3  (to_qrad+1)/ 0		/	! SST
-	DATA cv_lo_d4  (to_qrad+1)/ 0		/
-	DATA cv_hi_d4  (to_qrad+1)/ 0		/
-	DATA cv_lo_d5  (to_qrad+1)/ 0		/
-	DATA cv_hi_d5  (to_qrad+1)/ 0		/
-	DATA cv_lo_d6  (to_qrad+1)/ 0		/
-	DATA cv_hi_d6  (to_qrad+1)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_qflx+1)/ cat_calc_var	/
-	DATA cv_variable (to_qflx+1)/ pqeva		/
-	DATA cv_lo_d1  (to_qflx+1)/ 0		/
-	DATA cv_hi_d1  (to_qflx+1)/ 0		/
-	DATA cv_lo_d2  (to_qflx+1)/ 0		/
-	DATA cv_hi_d2  (to_qflx+1)/ 0		/
-	DATA cv_lo_d3  (to_qflx+1)/ 0		/
-	DATA cv_hi_d3  (to_qflx+1)/ 0		/
-	DATA cv_lo_d4  (to_qflx+1)/ 0		/
-	DATA cv_hi_d4  (to_qflx+1)/ 0		/
-	DATA cv_lo_d5  (to_qflx+1)/ 0		/
-	DATA cv_hi_d5  (to_qflx+1)/ 0		/
-	DATA cv_lo_d6  (to_qflx+1)/ 0		/
-	DATA cv_hi_d6  (to_qflx+1)/ 0		/
-
-	DATA cv_category (to_qflx+2)/ cat_calc_var	/
-	DATA cv_variable (to_qflx+2)/ pqsen		/
-	DATA cv_lo_d1  (to_qflx+2)/ 0		/
-	DATA cv_hi_d1  (to_qflx+2)/ 0		/
-	DATA cv_lo_d2  (to_qflx+2)/ 0		/
-	DATA cv_hi_d2  (to_qflx+2)/ 0		/
-	DATA cv_lo_d3  (to_qflx+2)/ 0		/
-	DATA cv_hi_d3  (to_qflx+2)/ 0		/
-	DATA cv_lo_d4  (to_qflx+2)/ 0		/
-	DATA cv_hi_d4  (to_qflx+2)/ 0		/
-	DATA cv_lo_d5  (to_qflx+2)/ 0		/
-	DATA cv_hi_d5  (to_qflx+2)/ 0		/
-	DATA cv_lo_d6  (to_qflx+2)/ 0		/
-	DATA cv_hi_d6  (to_qflx+2)/ 0		/
-
-	DATA cv_category (to_qflx+3)/ cat_calc_var	/
-	DATA cv_variable (to_qflx+3)/ pqrad		/
-	DATA cv_lo_d1  (to_qflx+3)/ 0		/
-	DATA cv_hi_d1  (to_qflx+3)/ 0		/
-	DATA cv_lo_d2  (to_qflx+3)/ 0		/
-	DATA cv_hi_d2  (to_qflx+3)/ 0		/
-	DATA cv_lo_d3  (to_qflx+3)/ 0		/
-	DATA cv_hi_d3  (to_qflx+3)/ 0		/
-	DATA cv_lo_d4  (to_qflx+3)/ 0		/
-	DATA cv_hi_d4  (to_qflx+3)/ 0		/
-	DATA cv_lo_d5  (to_qflx+3)/ 0		/
-	DATA cv_hi_d5  (to_qflx+3)/ 0		/
-	DATA cv_lo_d6  (to_qflx+3)/ 0		/
-	DATA cv_hi_d6  (to_qflx+3)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_rho +1)/ cat_file_var	/
-	DATA cv_variable (to_rho +1)/ ptemp		/
-	DATA cv_lo_d1  (to_rho +1)/ 0		/
-	DATA cv_hi_d1  (to_rho +1)/ 0		/
-	DATA cv_lo_d2  (to_rho +1)/ 0		/
-	DATA cv_hi_d2  (to_rho +1)/ 0		/
-	DATA cv_lo_d3  (to_rho +1)/ 0		/
-	DATA cv_hi_d3  (to_rho +1)/ 0		/
-	DATA cv_lo_d4  (to_rho +1)/ 0		/
-	DATA cv_hi_d4  (to_rho +1)/ 0		/
-	DATA cv_lo_d5  (to_rho +1)/ 0		/
-	DATA cv_hi_d5  (to_rho +1)/ 0		/
-	DATA cv_lo_d6  (to_rho +1)/ 0		/
-	DATA cv_hi_d6  (to_rho +1)/ 0		/
-
-	DATA cv_category (to_rho +2)/ cat_file_var	/
-	DATA cv_variable (to_rho +2)/ psalt		/
-	DATA cv_lo_d1  (to_rho +2)/ 0		/
-	DATA cv_hi_d1  (to_rho +2)/ 0		/
-	DATA cv_lo_d2  (to_rho +2)/ 0		/
-	DATA cv_hi_d2  (to_rho +2)/ 0		/
-	DATA cv_lo_d3  (to_rho +2)/ 0		/
-	DATA cv_hi_d3  (to_rho +2)/ 0		/
-	DATA cv_lo_d4  (to_rho +2)/ 0		/
-	DATA cv_hi_d4  (to_rho +2)/ 0		/
-	DATA cv_lo_d5  (to_rho +2)/ 0		/
-	DATA cv_hi_d5  (to_rho +2)/ 0		/
-	DATA cv_lo_d6  (to_rho +2)/ 0		/
-	DATA cv_hi_d6  (to_rho +2)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_dpdx+1)/ cat_calc_var	/
-	DATA cv_variable (to_dpdx+1)/ prho		/
-	DATA cv_lo_d1  (to_dpdx+1)/ 0		/
-	DATA cv_hi_d1  (to_dpdx+1)/ +1		/
-	DATA cv_lo_d2  (to_dpdx+1)/ 0		/
-	DATA cv_hi_d2  (to_dpdx+1)/ +1		/
-	DATA cv_lo_d3  (to_dpdx+1)/ 0		/	! needs k=1 absolute
-	DATA cv_hi_d3  (to_dpdx+1)/ 0		/
-	DATA cv_lo_d4  (to_dpdx+1)/ 0		/
-	DATA cv_hi_d4  (to_dpdx+1)/ 0		/
-	DATA cv_lo_d5  (to_dpdx+1)/ 0		/
-	DATA cv_hi_d5  (to_dpdx+1)/ 0		/
-	DATA cv_lo_d6  (to_dpdx+1)/ 0		/
-	DATA cv_hi_d6  (to_dpdx+1)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_dpdy+1)/ cat_calc_var	/
-	DATA cv_variable (to_dpdy+1)/ prho		/
-	DATA cv_lo_d1  (to_dpdy+1)/ 0		/
-	DATA cv_hi_d1  (to_dpdy+1)/ +1		/
-	DATA cv_lo_d2  (to_dpdy+1)/ 0		/
-	DATA cv_hi_d2  (to_dpdy+1)/ +1		/
-	DATA cv_lo_d3  (to_dpdy+1)/ 0		/	! needs k=1 absolute
-	DATA cv_hi_d3  (to_dpdy+1)/ 0		/
-	DATA cv_lo_d4  (to_dpdy+1)/ 0		/
-	DATA cv_hi_d4  (to_dpdy+1)/ 0		/
-	DATA cv_lo_d5  (to_dpdy+1)/ 0		/
-	DATA cv_hi_d5  (to_dpdy+1)/ 0		/
-	DATA cv_lo_d6  (to_dpdy+1)/ 0		/
-	DATA cv_hi_d6  (to_dpdy+1)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_w_u +1)/ cat_calc_var	/
-	DATA cv_variable (to_w_u +1)/ pfuw		/
-	DATA cv_lo_d1  (to_w_u +1)/ 0		/
-	DATA cv_hi_d1  (to_w_u +1)/ +1		/
-	DATA cv_lo_d2  (to_w_u +1)/ 0		/
-	DATA cv_hi_d2  (to_w_u +1)/ 0		/
-	DATA cv_lo_d3  (to_w_u +1)/ 0		/
-	DATA cv_hi_d3  (to_w_u +1)/ 0		/
-	DATA cv_lo_d4  (to_w_u +1)/ 0		/
-	DATA cv_hi_d4  (to_w_u +1)/ 0		/
-	DATA cv_lo_d5  (to_w_u +1)/ 0		/
-	DATA cv_hi_d5  (to_w_u +1)/ 0		/
-	DATA cv_lo_d6  (to_w_u +1)/ 0		/
-	DATA cv_hi_d6  (to_w_u +1)/ 0		/
-
-	DATA cv_category (to_w_u +2)/ cat_calc_var	/
-	DATA cv_variable (to_w_u +2)/ pfvn		/
-	DATA cv_lo_d1  (to_w_u +2)/ 0		/
-	DATA cv_hi_d1  (to_w_u +2)/ 0		/
-	DATA cv_lo_d2  (to_w_u +2)/ -1		/
-	DATA cv_hi_d2  (to_w_u +2)/ 0		/
-	DATA cv_lo_d3  (to_w_u +2)/ 0		/
-	DATA cv_hi_d3  (to_w_u +2)/ 0		/
-	DATA cv_lo_d4  (to_w_u +2)/ 0		/
-	DATA cv_hi_d4  (to_w_u +2)/ 0		/
-	DATA cv_lo_d5  (to_w_u +2)/ 0		/
-	DATA cv_hi_d5  (to_w_u +2)/ 0		/
-	DATA cv_lo_d6  (to_w_u +2)/ 0		/
-	DATA cv_hi_d6  (to_w_u +2)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_uavz+1)/ cat_file_var	/
-	DATA cv_variable (to_uavz+1)/ ppsi		/
-	DATA cv_lo_d1  (to_uavz+1)/ 0		/
-	DATA cv_hi_d1  (to_uavz+1)/ +1		/
-	DATA cv_lo_d2  (to_uavz+1)/ 0		/
-	DATA cv_hi_d2  (to_uavz+1)/ +1		/
-	DATA cv_lo_d3  (to_uavz+1)/ 0		/
-	DATA cv_hi_d3  (to_uavz+1)/ 0		/
-	DATA cv_lo_d4  (to_uavz+1)/ 0		/
-	DATA cv_hi_d4  (to_uavz+1)/ 0		/
-	DATA cv_lo_d5  (to_uavz+1)/ 0		/
-	DATA cv_hi_d5  (to_uavz+1)/ 0		/
-	DATA cv_lo_d6  (to_uavz+1)/ 0		/
-	DATA cv_hi_d6  (to_uavz+1)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_vavz+1)/ cat_file_var	/
-	DATA cv_variable (to_vavz+1)/ ppsi		/
-	DATA cv_lo_d1  (to_vavz+1)/ 0		/
-	DATA cv_hi_d1  (to_vavz+1)/ +1		/
-	DATA cv_lo_d2  (to_vavz+1)/ 0		/
-	DATA cv_hi_d2  (to_vavz+1)/ +1		/
-	DATA cv_lo_d3  (to_vavz+1)/ 0		/
-	DATA cv_hi_d3  (to_vavz+1)/ 0		/
-	DATA cv_lo_d4  (to_vavz+1)/ 0		/
-	DATA cv_hi_d4  (to_vavz+1)/ 0		/
-	DATA cv_lo_d5  (to_vavz+1)/ 0		/
-	DATA cv_hi_d5  (to_vavz+1)/ 0		/
-	DATA cv_lo_d6  (to_vavz+1)/ 0		/
-	DATA cv_hi_d6  (to_vavz+1)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_fuw +1)/ cat_file_var	/
-	DATA cv_variable (to_fuw +1)/ ppsi		/
-	DATA cv_lo_d1  (to_fuw +1)/ -1		/	! extra for UAVZ
-	DATA cv_hi_d1  (to_fuw +1)/ +1		/	! extra for UAVZ
-	DATA cv_lo_d2  (to_fuw +1)/ 0		/
-	DATA cv_hi_d2  (to_fuw +1)/ +1		/
-	DATA cv_lo_d3  (to_fuw +1)/ 0		/
-	DATA cv_hi_d3  (to_fuw +1)/ 0		/
-	DATA cv_lo_d4  (to_fuw +1)/ 0		/
-	DATA cv_hi_d4  (to_fuw +1)/ 0		/
-	DATA cv_lo_d5  (to_fuw +1)/ 0		/
-	DATA cv_hi_d5  (to_fuw +1)/ 0		/
-	DATA cv_lo_d6  (to_fuw +1)/ 0		/
-	DATA cv_hi_d6  (to_fuw +1)/ 0		/
-
-	DATA cv_category (to_fuw +2)/ cat_calc_var	/
-	DATA cv_variable (to_fuw +2)/ puavz		/
-	DATA cv_lo_d1  (to_fuw +2)/ -1		/
-	DATA cv_hi_d1  (to_fuw +2)/ 0		/
-	DATA cv_lo_d2  (to_fuw +2)/ 0		/
-	DATA cv_hi_d2  (to_fuw +2)/ 0		/
-	DATA cv_lo_d3  (to_fuw +2)/ 0		/
-	DATA cv_hi_d3  (to_fuw +2)/ 0		/
-	DATA cv_lo_d4  (to_fuw +2)/ 0		/
-	DATA cv_hi_d4  (to_fuw +2)/ 0		/
-	DATA cv_lo_d5  (to_fuw +2)/ 0		/
-	DATA cv_hi_d5  (to_fuw +2)/ 0		/
-	DATA cv_lo_d6  (to_fuw +2)/ 0		/
-	DATA cv_hi_d6  (to_fuw +2)/ 0		/
-
-	DATA cv_category (to_fuw +3)/ cat_file_var	/
-	DATA cv_variable (to_fuw +3)/ pu		/
-	DATA cv_lo_d1  (to_fuw +3)/ -1		/
-	DATA cv_hi_d1  (to_fuw +3)/ 0		/
-	DATA cv_lo_d2  (to_fuw +3)/ 0		/
-	DATA cv_hi_d2  (to_fuw +3)/ 0		/
-	DATA cv_lo_d3  (to_fuw +3)/ 0		/
-	DATA cv_hi_d3  (to_fuw +3)/ 0		/
-	DATA cv_lo_d4  (to_fuw +3)/ 0		/
-	DATA cv_hi_d4  (to_fuw +3)/ 0		/
-	DATA cv_lo_d5  (to_fuw +3)/ 0		/
-	DATA cv_hi_d5  (to_fuw +3)/ 0		/
-	DATA cv_lo_d6  (to_fuw +3)/ 0		/
-	DATA cv_hi_d6  (to_fuw +3)/ 0		/
-
-***************************************************************************
-
-	DATA cv_category (to_fvn +1)/ cat_file_var	/
-	DATA cv_variable (to_fvn +1)/ ppsi		/
-	DATA cv_lo_d1  (to_fvn +1)/ 0		/
-	DATA cv_hi_d1  (to_fvn +1)/ +1		/
-	DATA cv_lo_d2  (to_fvn +1)/ 0		/	! extra for VAVZ
-	DATA cv_hi_d2  (to_fvn +1)/ +2		/	! extra for VAVZ
-	DATA cv_lo_d3  (to_fvn +1)/ 0		/
-	DATA cv_hi_d3  (to_fvn +1)/ 0		/
-	DATA cv_lo_d4  (to_fvn +1)/ 0		/
-	DATA cv_hi_d4  (to_fvn +1)/ 0		/
-	DATA cv_lo_d5  (to_fvn +1)/ 0		/
-	DATA cv_hi_d5  (to_fvn +1)/ 0		/
-	DATA cv_lo_d6  (to_fvn +1)/ 0		/
-	DATA cv_hi_d6  (to_fvn +1)/ 0		/
-
-	DATA cv_category (to_fvn +2)/ cat_calc_var	/
-	DATA cv_variable (to_fvn +2)/ pvavz		/
-	DATA cv_lo_d1  (to_fvn +2)/ 0		/
-	DATA cv_hi_d1  (to_fvn +2)/ 0		/
-	DATA cv_lo_d2  (to_fvn +2)/ 0		/
-	DATA cv_hi_d2  (to_fvn +2)/ +1		/
-	DATA cv_lo_d3  (to_fvn +2)/ 0		/
-	DATA cv_hi_d3  (to_fvn +2)/ 0		/
-	DATA cv_lo_d4  (to_fvn +2)/ 0		/
-	DATA cv_hi_d4  (to_fvn +2)/ 0		/
-	DATA cv_lo_d5  (to_fvn +2)/ 0		/
-	DATA cv_hi_d5  (to_fvn +2)/ 0		/
-	DATA cv_lo_d6  (to_fvn +2)/ 0		/
-	DATA cv_hi_d6  (to_fvn +2)/ 0		/
-
-	DATA cv_category (to_fvn +3)/ cat_file_var	/
-	DATA cv_variable (to_fvn +3)/ pv		/
-	DATA cv_lo_d1  (to_fvn +3)/ 0		/
-	DATA cv_hi_d1  (to_fvn +3)/ 0		/
-	DATA cv_lo_d2  (to_fvn +3)/ 0		/
-	DATA cv_hi_d2  (to_fvn +3)/ +1		/
-	DATA cv_lo_d3  (to_fvn +3)/ 0		/
-	DATA cv_hi_d3  (to_fvn +3)/ 0		/
-	DATA cv_lo_d4  (to_fvn +3)/ 0		/
-	DATA cv_hi_d4  (to_fvn +3)/ 0		/
-	DATA cv_lo_d5  (to_fvn +3)/ 0		/
-	DATA cv_hi_d5  (to_fvn +3)/ 0		/
-	DATA cv_lo_d6  (to_fvn +3)/ 0		/
-	DATA cv_hi_d6  (to_fvn +3)/ 0		/
-
-*****************************************************************************
-
-	DATA cv_category (to_uadx+1)/ cat_calc_var	/
-	DATA cv_variable (to_uadx+1)/ pfuw		/
-	DATA cv_lo_d1  (to_uadx+1)/ 0		/
-	DATA cv_hi_d1  (to_uadx+1)/ +1		/
-	DATA cv_lo_d2  (to_uadx+1)/ 0		/
-	DATA cv_hi_d2  (to_uadx+1)/ 0		/
-	DATA cv_lo_d3  (to_uadx+1)/ 0		/
-	DATA cv_hi_d3  (to_uadx+1)/ 0		/
-	DATA cv_lo_d4  (to_uadx+1)/ 0		/
-	DATA cv_hi_d4  (to_uadx+1)/ 0		/
-	DATA cv_lo_d5  (to_uadx+1)/ 0		/
-	DATA cv_hi_d5  (to_uadx+1)/ 0		/
-	DATA cv_lo_d6  (to_uadx+1)/ 0		/
-	DATA cv_hi_d6  (to_uadx+1)/ 0		/
-
-	DATA cv_category (to_uadx+2)/ cat_file_var	/
-	DATA cv_variable (to_uadx+2)/ pu		/
-	DATA cv_lo_d1  (to_uadx+2)/ -1		/
-	DATA cv_hi_d1  (to_uadx+2)/ +1		/
-	DATA cv_lo_d2  (to_uadx+2)/ 0		/
-	DATA cv_hi_d2  (to_uadx+2)/ 0		/
-	DATA cv_lo_d3  (to_uadx+2)/ 0		/
-	DATA cv_hi_d3  (to_uadx+2)/ 0		/
-	DATA cv_lo_d4  (to_uadx+2)/ 0		/
-	DATA cv_hi_d4  (to_uadx+2)/ 0		/
-	DATA cv_lo_d5  (to_uadx+2)/ 0		/
-	DATA cv_hi_d5  (to_uadx+2)/ 0		/
-	DATA cv_lo_d6  (to_uadx+2)/ 0		/
-	DATA cv_hi_d6  (to_uadx+2)/ 0		/
-
-*****************************************************************************
-
-	DATA cv_category (to_uady+1)/ cat_calc_var	/
-	DATA cv_variable (to_uady+1)/ pfvn		/
-	DATA cv_lo_d1  (to_uady+1)/ 0		/
-	DATA cv_hi_d1  (to_uady+1)/ 0		/
-	DATA cv_lo_d2  (to_uady+1)/ -1		/
-	DATA cv_hi_d2  (to_uady+1)/ 0		/
-	DATA cv_lo_d3  (to_uady+1)/ 0		/
-	DATA cv_hi_d3  (to_uady+1)/ 0		/
-	DATA cv_lo_d4  (to_uady+1)/ 0		/
-	DATA cv_hi_d4  (to_uady+1)/ 0		/
-	DATA cv_lo_d5  (to_uady+1)/ 0		/
-	DATA cv_hi_d5  (to_uady+1)/ 0		/
-	DATA cv_lo_d6  (to_uady+1)/ 0		/
-	DATA cv_hi_d6  (to_uady+1)/ 0		/
-
-	DATA cv_category (to_uady+2)/ cat_file_var	/
-	DATA cv_variable (to_uady+2)/ pu		/
-	DATA cv_lo_d1  (to_uady+2)/ 0		/
-	DATA cv_hi_d1  (to_uady+2)/ 0		/
-	DATA cv_lo_d2  (to_uady+2)/ -1		/
-	DATA cv_hi_d2  (to_uady+2)/ +1		/
-	DATA cv_lo_d3  (to_uady+2)/ 0		/
-	DATA cv_hi_d3  (to_uady+2)/ 0		/
-	DATA cv_lo_d4  (to_uady+2)/ 0		/
-	DATA cv_hi_d4  (to_uady+2)/ 0		/
-	DATA cv_lo_d5  (to_uady+2)/ 0		/
-	DATA cv_hi_d5  (to_uady+2)/ 0		/
-	DATA cv_lo_d6  (to_uady+2)/ 0		/
-	DATA cv_hi_d6  (to_uady+2)/ 0		/
-
-*****************************************************************************
-
-	DATA cv_category (to_uadz+1)/ cat_file_var	/
-	DATA cv_variable (to_uadz+1)/ pu		/
-	DATA cv_lo_d1  (to_uadz+1)/ 0		/
-	DATA cv_hi_d1  (to_uadz+1)/ 0		/
-	DATA cv_lo_d2  (to_uadz+1)/ 0		/
-	DATA cv_hi_d2  (to_uadz+1)/ 0		/
-	DATA cv_lo_d3  (to_uadz+1)/ -1		/
-	DATA cv_hi_d3  (to_uadz+1)/ +1		/
-	DATA cv_lo_d4  (to_uadz+1)/ 0		/
-	DATA cv_hi_d4  (to_uadz+1)/ 0		/
-	DATA cv_lo_d5  (to_uadz+1)/ 0		/
-	DATA cv_hi_d5  (to_uadz+1)/ 0		/
-	DATA cv_lo_d6  (to_uadz+1)/ 0		/
-	DATA cv_hi_d6  (to_uadz+1)/ 0		/
-
-	DATA cv_category (to_uadz+2)/ cat_calc_var	/
-	DATA cv_variable (to_uadz+2)/ pw_u		/
-	DATA cv_lo_d1  (to_uadz+2)/ 0		/
-	DATA cv_hi_d1  (to_uadz+2)/ 0		/
-	DATA cv_lo_d2  (to_uadz+2)/ 0		/
-	DATA cv_hi_d2  (to_uadz+2)/ 0		/
-	DATA cv_lo_d3  (to_uadz+2)/ -1		/
-	DATA cv_hi_d3  (to_uadz+2)/ 0		/
-	DATA cv_lo_d4  (to_uadz+2)/ 0		/
-	DATA cv_hi_d4  (to_uadz+2)/ 0		/
-	DATA cv_lo_d5  (to_uadz+2)/ 0		/
-	DATA cv_hi_d5  (to_uadz+2)/ 0		/
-	DATA cv_lo_d6  (to_uadz+2)/ 0		/
-	DATA cv_hi_d6  (to_uadz+2)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_vadx+1)/ cat_calc_var	/
-	DATA cv_variable (to_vadx+1)/ pfuw		/
-	DATA cv_lo_d1  (to_vadx+1)/ 0		/
-	DATA cv_hi_d1  (to_vadx+1)/ +1		/
-	DATA cv_lo_d2  (to_vadx+1)/ 0		/
-	DATA cv_hi_d2  (to_vadx+1)/ 0		/
-	DATA cv_lo_d3  (to_vadx+1)/ 0		/
-	DATA cv_hi_d3  (to_vadx+1)/ 0		/
-	DATA cv_lo_d4  (to_vadx+1)/ 0		/
-	DATA cv_hi_d4  (to_vadx+1)/ 0		/
-	DATA cv_lo_d5  (to_vadx+1)/ 0		/
-	DATA cv_hi_d5  (to_vadx+1)/ 0		/
-	DATA cv_lo_d6  (to_vadx+1)/ 0		/
-	DATA cv_hi_d6  (to_vadx+1)/ 0		/
-
-	DATA cv_category (to_vadx+2)/ cat_file_var	/
-	DATA cv_variable (to_vadx+2)/ pv		/
-	DATA cv_lo_d1  (to_vadx+2)/ -1		/
-	DATA cv_hi_d1  (to_vadx+2)/ +1		/
-	DATA cv_lo_d2  (to_vadx+2)/ 0		/
-	DATA cv_hi_d2  (to_vadx+2)/ 0		/
-	DATA cv_lo_d3  (to_vadx+2)/ 0		/
-	DATA cv_hi_d3  (to_vadx+2)/ 0		/
-	DATA cv_lo_d4  (to_vadx+2)/ 0		/
-	DATA cv_hi_d4  (to_vadx+2)/ 0		/
-	DATA cv_lo_d5  (to_vadx+2)/ 0		/
-	DATA cv_hi_d5  (to_vadx+2)/ 0		/
-	DATA cv_lo_d6  (to_vadx+2)/ 0		/
-	DATA cv_hi_d6  (to_vadx+2)/ 0		/
-
-*****************************************************************************
-
-	DATA cv_category (to_vady+1)/ cat_calc_var	/
-	DATA cv_variable (to_vady+1)/ pfvn		/
-	DATA cv_lo_d1  (to_vady+1)/ 0		/
-	DATA cv_hi_d1  (to_vady+1)/ 0		/
-	DATA cv_lo_d2  (to_vady+1)/ -1		/
-	DATA cv_hi_d2  (to_vady+1)/ 0		/
-	DATA cv_lo_d3  (to_vady+1)/ 0		/
-	DATA cv_hi_d3  (to_vady+1)/ 0		/
-	DATA cv_lo_d4  (to_vady+1)/ 0		/
-	DATA cv_hi_d4  (to_vady+1)/ 0		/
-	DATA cv_lo_d5  (to_vady+1)/ 0		/
-	DATA cv_hi_d5  (to_vady+1)/ 0		/
-	DATA cv_lo_d6  (to_vady+1)/ 0		/
-	DATA cv_hi_d6  (to_vady+1)/ 0		/
-
-	DATA cv_category (to_vady+2)/ cat_file_var	/
-	DATA cv_variable (to_vady+2)/ pv		/
-	DATA cv_lo_d1  (to_vady+2)/ 0		/
-	DATA cv_hi_d1  (to_vady+2)/ 0		/
-	DATA cv_lo_d2  (to_vady+2)/ -1		/
-	DATA cv_hi_d2  (to_vady+2)/ +1		/
-	DATA cv_lo_d3  (to_vady+2)/ 0		/
-	DATA cv_hi_d3  (to_vady+2)/ 0		/
-	DATA cv_lo_d4  (to_vady+2)/ 0		/
-	DATA cv_hi_d4  (to_vady+2)/ 0		/
-	DATA cv_lo_d5  (to_vady+2)/ 0		/
-	DATA cv_hi_d5  (to_vady+2)/ 0		/
-	DATA cv_lo_d6  (to_vady+2)/ 0		/
-	DATA cv_hi_d6  (to_vady+2)/ 0		/
-
-*****************************************************************************
-
-	DATA cv_category (to_vadz+1)/ cat_file_var	/
-	DATA cv_variable (to_vadz+1)/ pv		/
-	DATA cv_lo_d1  (to_vadz+1)/ 0		/
-	DATA cv_hi_d1  (to_vadz+1)/ 0		/
-	DATA cv_lo_d2  (to_vadz+1)/ 0		/
-	DATA cv_hi_d2  (to_vadz+1)/ 0		/
-	DATA cv_lo_d3  (to_vadz+1)/ -1		/
-	DATA cv_hi_d3  (to_vadz+1)/ +1		/
-	DATA cv_lo_d4  (to_vadz+1)/ 0		/
-	DATA cv_hi_d4  (to_vadz+1)/ 0		/
-	DATA cv_lo_d5  (to_vadz+1)/ 0		/
-	DATA cv_hi_d5  (to_vadz+1)/ 0		/
-	DATA cv_lo_d6  (to_vadz+1)/ 0		/
-	DATA cv_hi_d6  (to_vadz+1)/ 0		/
-
-	DATA cv_category (to_vadz+2)/ cat_calc_var	/
-	DATA cv_variable (to_vadz+2)/ pw_u		/
-	DATA cv_lo_d1  (to_vadz+2)/ 0		/
-	DATA cv_hi_d1  (to_vadz+2)/ 0		/
-	DATA cv_lo_d2  (to_vadz+2)/ 0		/
-	DATA cv_hi_d2  (to_vadz+2)/ 0		/
-	DATA cv_lo_d3  (to_vadz+2)/ -1		/
-	DATA cv_hi_d3  (to_vadz+2)/ 0		/
-	DATA cv_lo_d4  (to_vadz+2)/ 0		/
-	DATA cv_hi_d4  (to_vadz+2)/ 0		/
-	DATA cv_lo_d5  (to_vadz+2)/ 0		/
-	DATA cv_hi_d5  (to_vadz+2)/ 0		/
-	DATA cv_lo_d6  (to_vadz+2)/ 0		/
-	DATA cv_hi_d6  (to_vadz+2)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_udfh+1)/ cat_file_var	/
-	DATA cv_variable (to_udfh+1)/ pu		/
-	DATA cv_lo_d1  (to_udfh+1)/ -1		/
-	DATA cv_hi_d1  (to_udfh+1)/ +1		/
-	DATA cv_lo_d2  (to_udfh+1)/ -1		/
-	DATA cv_hi_d2  (to_udfh+1)/ +1		/
-	DATA cv_lo_d3  (to_udfh+1)/ 0		/
-	DATA cv_hi_d3  (to_udfh+1)/ 0		/
-	DATA cv_lo_d4  (to_udfh+1)/ ptstep_1hr_b4	/
-	DATA cv_hi_d4  (to_udfh+1)/ 0		/
-	DATA cv_lo_d5  (to_udfh+1)/ 0		/
-	DATA cv_hi_d5  (to_udfh+1)/ 0		/
-	DATA cv_lo_d6  (to_udfh+1)/ 0		/
-	DATA cv_hi_d6  (to_udfh+1)/ 0		/
-
-	DATA cv_category (to_udfh+2)/ cat_file_var	/
-	DATA cv_variable (to_udfh+2)/ pv		/
-	DATA cv_lo_d1  (to_udfh+2)/ -1		/
-	DATA cv_hi_d1  (to_udfh+2)/ +1		/
-	DATA cv_lo_d2  (to_udfh+2)/ -1		/
-	DATA cv_hi_d2  (to_udfh+2)/ +1		/
-	DATA cv_lo_d3  (to_udfh+2)/ 0		/
-	DATA cv_hi_d3  (to_udfh+2)/ 0		/
-	DATA cv_lo_d4  (to_udfh+2)/ 0		/
-	DATA cv_hi_d4  (to_udfh+2)/ 0		/
-	DATA cv_lo_d5  (to_udfh+2)/ 0		/
-	DATA cv_hi_d5  (to_udfh+2)/ 0		/
-	DATA cv_lo_d6  (to_udfh+2)/ 0		/
-	DATA cv_hi_d6  (to_udfh+2)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_udfz+1)/ cat_calc_var	/
-	DATA cv_variable (to_udfz+1)/ ppcdz		/
-	DATA cv_lo_d1  (to_udfz+1)/ 0		/
-	DATA cv_hi_d1  (to_udfz+1)/ 0		/
-	DATA cv_lo_d2  (to_udfz+1)/ 0		/
-	DATA cv_hi_d2  (to_udfz+1)/ 0		/
-	DATA cv_lo_d3  (to_udfz+1)/ -1		/
-	DATA cv_hi_d3  (to_udfz+1)/ 0		/
-	DATA cv_lo_d4  (to_udfz+1)/ ptstep_1hr_b4	/
-	DATA cv_hi_d4  (to_udfz+1)/ ptstep_1hr_b4	/
-	DATA cv_lo_d5  (to_udfz+1)/ 0		/
-	DATA cv_hi_d5  (to_udfz+1)/ 0		/
-	DATA cv_lo_d6  (to_udfz+1)/ 0		/
-	DATA cv_hi_d6  (to_udfz+1)/ 0		/
-
-	DATA cv_category (to_udfz+2)/ cat_file_var	/
-	DATA cv_variable (to_udfz+2)/ pu		/
-	DATA cv_lo_d1  (to_udfz+2)/ 0		/
-	DATA cv_hi_d1  (to_udfz+2)/ 0		/
-	DATA cv_lo_d2  (to_udfz+2)/ 0		/
-	DATA cv_hi_d2  (to_udfz+2)/ 0		/
-	DATA cv_lo_d3  (to_udfz+2)/ -1		/
-	DATA cv_hi_d3  (to_udfz+2)/ +1		/
-	DATA cv_lo_d4  (to_udfz+2)/ ptstep_1hr_b4	/
-	DATA cv_hi_d4  (to_udfz+2)/ ptstep_1hr_b4	/
-	DATA cv_lo_d5  (to_udfz+2)/ 0		/
-	DATA cv_hi_d5  (to_udfz+2)/ 0		/
-	DATA cv_lo_d6  (to_udfz+2)/ 0		/
-	DATA cv_hi_d6  (to_udfz+2)/ 0		/
-
-	DATA cv_category (to_udfz+3)/ cat_calc_var	/
-	DATA cv_variable (to_udfz+3)/ pubwi		/
-	DATA cv_lo_d1  (to_udfz+3)/ 0		/
-	DATA cv_hi_d1  (to_udfz+3)/ 0		/
-	DATA cv_lo_d2  (to_udfz+3)/ 0		/
-	DATA cv_hi_d2  (to_udfz+3)/ 0		/
-	DATA cv_lo_d3  (to_udfz+3)/ 0		/
-	DATA cv_hi_d3  (to_udfz+3)/ 0		/
-	DATA cv_lo_d4  (to_udfz+3)/ ptstep_1hr_b4	/
-	DATA cv_hi_d4  (to_udfz+3)/ ptstep_1hr_b4	/
-	DATA cv_lo_d5  (to_udfz+3)/ 0		/
-	DATA cv_hi_d5  (to_udfz+3)/ 0		/
-	DATA cv_lo_d6  (to_udfz+3)/ 0		/
-	DATA cv_hi_d6  (to_udfz+3)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_vdfh+1)/ cat_file_var	/
-	DATA cv_variable (to_vdfh+1)/ pv		/
-	DATA cv_lo_d1  (to_vdfh+1)/ -1		/
-	DATA cv_hi_d1  (to_vdfh+1)/ +1		/
-	DATA cv_lo_d2  (to_vdfh+1)/ -1		/
-	DATA cv_hi_d2  (to_vdfh+1)/ +1		/
-	DATA cv_lo_d3  (to_vdfh+1)/ 0		/
-	DATA cv_hi_d3  (to_vdfh+1)/ 0		/
-	DATA cv_lo_d4  (to_vdfh+1)/ ptstep_1hr_b4	/
-	DATA cv_hi_d4  (to_vdfh+1)/ 0		/
-	DATA cv_lo_d5  (to_vdfh+1)/ 0		/
-	DATA cv_hi_d5  (to_vdfh+1)/ 0		/
-	DATA cv_lo_d6  (to_vdfh+1)/ 0		/
-	DATA cv_hi_d6  (to_vdfh+1)/ 0		/
-
-	DATA cv_category (to_vdfh+2)/ cat_file_var	/
-	DATA cv_variable (to_vdfh+2)/ pu		/
-	DATA cv_lo_d1  (to_vdfh+2)/ -1		/
-	DATA cv_hi_d1  (to_vdfh+2)/ +1		/
-	DATA cv_lo_d2  (to_vdfh+2)/ -1		/
-	DATA cv_hi_d2  (to_vdfh+2)/ +1		/
-	DATA cv_lo_d3  (to_vdfh+2)/ 0		/
-	DATA cv_hi_d3  (to_vdfh+2)/ 0		/
-	DATA cv_lo_d4  (to_vdfh+2)/ 0		/
-	DATA cv_hi_d4  (to_vdfh+2)/ 0		/
-	DATA cv_lo_d5  (to_vdfh+2)/ 0		/
-	DATA cv_hi_d5  (to_vdfh+2)/ 0		/
-	DATA cv_lo_d6  (to_vdfh+2)/ 0		/
-	DATA cv_hi_d6  (to_vdfh+2)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_vdfz+1)/ cat_calc_var	/
-	DATA cv_variable (to_vdfz+1)/ ppcdz		/
-	DATA cv_lo_d1  (to_vdfz+1)/ 0		/
-	DATA cv_hi_d1  (to_vdfz+1)/ 0		/
-	DATA cv_lo_d2  (to_vdfz+1)/ 0		/
-	DATA cv_hi_d2  (to_vdfz+1)/ 0		/
-	DATA cv_lo_d3  (to_vdfz+1)/ -1		/
-	DATA cv_hi_d3  (to_vdfz+1)/ 0		/
-	DATA cv_lo_d4  (to_vdfz+1)/ ptstep_1hr_b4	/
-	DATA cv_hi_d4  (to_vdfz+1)/ ptstep_1hr_b4	/
-	DATA cv_lo_d5  (to_vdfz+1)/ 0		/
-	DATA cv_hi_d5  (to_vdfz+1)/ 0		/
-	DATA cv_lo_d6  (to_vdfz+1)/ 0		/
-	DATA cv_hi_d6  (to_vdfz+1)/ 0		/
-
-	DATA cv_category (to_vdfz+2)/ cat_file_var	/
-	DATA cv_variable (to_vdfz+2)/ pv		/
-	DATA cv_lo_d1  (to_vdfz+2)/ 0		/
-	DATA cv_hi_d1  (to_vdfz+2)/ 0		/
-	DATA cv_lo_d2  (to_vdfz+2)/ 0		/
-	DATA cv_hi_d2  (to_vdfz+2)/ 0		/
-	DATA cv_lo_d3  (to_vdfz+2)/ -1		/
-	DATA cv_hi_d3  (to_vdfz+2)/ +1		/
-	DATA cv_lo_d4  (to_vdfz+2)/ ptstep_1hr_b4	/
-	DATA cv_hi_d4  (to_vdfz+2)/ ptstep_1hr_b4	/
-	DATA cv_lo_d5  (to_vdfz+2)/ 0		/
-	DATA cv_hi_d5  (to_vdfz+2)/ 0		/
-	DATA cv_lo_d6  (to_vdfz+2)/ 0		/
-	DATA cv_hi_d6  (to_vdfz+2)/ 0		/
-
-	DATA cv_category (to_vdfz+3)/ cat_calc_var	/
-	DATA cv_variable (to_vdfz+3)/ pvbwi		/
-	DATA cv_lo_d1  (to_vdfz+3)/ 0		/
-	DATA cv_hi_d1  (to_vdfz+3)/ 0		/
-	DATA cv_lo_d2  (to_vdfz+3)/ 0		/
-	DATA cv_hi_d2  (to_vdfz+3)/ 0		/
-	DATA cv_lo_d3  (to_vdfz+3)/ 0		/
-	DATA cv_hi_d3  (to_vdfz+3)/ 0		/
-	DATA cv_lo_d4  (to_vdfz+3)/ ptstep_1hr_b4	/
-	DATA cv_hi_d4  (to_vdfz+3)/ ptstep_1hr_b4	/
-	DATA cv_lo_d5  (to_vdfz+3)/ 0		/
-	DATA cv_hi_d5  (to_vdfz+3)/ 0		/
-	DATA cv_lo_d6  (to_vdfz+3)/ 0		/
-	DATA cv_hi_d6  (to_vdfz+3)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_ucoi+1)/ cat_file_var	/
-	DATA cv_variable (to_ucoi+1)/ ptemp		/
-	DATA cv_lo_d1  (to_ucoi+1)/ 0		/
-	DATA cv_hi_d1  (to_ucoi+1)/ 0		/
-	DATA cv_lo_d2  (to_ucoi+1)/ 0		/
-	DATA cv_hi_d2  (to_ucoi+1)/ 0		/
-	DATA cv_lo_d3  (to_ucoi+1)/ 0		/
-	DATA cv_hi_d3  (to_ucoi+1)/ 0		/
-	DATA cv_lo_d4  (to_ucoi+1)/ 0		/
-	DATA cv_hi_d4  (to_ucoi+1)/ 0		/
-	DATA cv_lo_d5  (to_ucoi+1)/ 0		/
-	DATA cv_hi_d5  (to_ucoi+1)/ 0		/
-	DATA cv_lo_d6  (to_ucoi+1)/ 0		/
-	DATA cv_hi_d6  (to_ucoi+1)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_vcoi+1)/ cat_file_var	/
-	DATA cv_variable (to_vcoi+1)/ ptemp		/
-	DATA cv_lo_d1  (to_vcoi+1)/ 0		/
-	DATA cv_hi_d1  (to_vcoi+1)/ 0		/
-	DATA cv_lo_d2  (to_vcoi+1)/ 0		/
-	DATA cv_hi_d2  (to_vcoi+1)/ 0		/
-	DATA cv_lo_d3  (to_vcoi+1)/ 0		/
-	DATA cv_hi_d3  (to_vcoi+1)/ 0		/
-	DATA cv_lo_d4  (to_vcoi+1)/ 0		/
-	DATA cv_hi_d4  (to_vcoi+1)/ 0		/
-	DATA cv_lo_d5  (to_vcoi+1)/ 0		/
-	DATA cv_hi_d5  (to_vcoi+1)/ 0		/
-	DATA cv_lo_d6  (to_vcoi+1)/ 0		/
-	DATA cv_hi_d6  (to_vcoi+1)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_ubpi+1)/ cat_calc_var	/
-	DATA cv_variable (to_ubpi+1)/ pdpdx		/
-	DATA cv_lo_d1  (to_ubpi+1)/ 0		/
-	DATA cv_hi_d1  (to_ubpi+1)/ 0		/
-	DATA cv_lo_d2  (to_ubpi+1)/ 0		/
-	DATA cv_hi_d2  (to_ubpi+1)/ 0		/
-	DATA cv_lo_d3  (to_ubpi+1)/ 0		/
-	DATA cv_hi_d3  (to_ubpi+1)/ 0		/
-	DATA cv_lo_d4  (to_ubpi+1)/ 0		/
-	DATA cv_hi_d4  (to_ubpi+1)/ 0		/
-	DATA cv_lo_d5  (to_ubpi+1)/ 0		/
-	DATA cv_hi_d5  (to_ubpi+1)/ 0		/
-	DATA cv_lo_d6  (to_ubpi+1)/ 0		/
-	DATA cv_hi_d6  (to_ubpi+1)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_vbpi+1)/ cat_calc_var	/
-	DATA cv_variable (to_vbpi+1)/ pdpdy		/
-	DATA cv_lo_d1  (to_vbpi+1)/ 0		/
-	DATA cv_hi_d1  (to_vbpi+1)/ 0		/
-	DATA cv_lo_d2  (to_vbpi+1)/ 0		/
-	DATA cv_hi_d2  (to_vbpi+1)/ 0		/
-	DATA cv_lo_d3  (to_vbpi+1)/ 0		/
-	DATA cv_hi_d3  (to_vbpi+1)/ 0		/
-	DATA cv_lo_d4  (to_vbpi+1)/ 0		/
-	DATA cv_hi_d4  (to_vbpi+1)/ 0		/
-	DATA cv_lo_d5  (to_vbpi+1)/ 0		/
-	DATA cv_hi_d5  (to_vbpi+1)/ 0		/
-	DATA cv_lo_d6  (to_vbpi+1)/ 0		/
-	DATA cv_hi_d6  (to_vbpi+1)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_ubwi+1)/ cat_file_var	/
-	DATA cv_variable (to_ubwi+1)/ ptaux		/
-	DATA cv_lo_d1  (to_ubwi+1)/ 0		/
-	DATA cv_hi_d1  (to_ubwi+1)/ 0		/
-	DATA cv_lo_d2  (to_ubwi+1)/ 0		/
-	DATA cv_hi_d2  (to_ubwi+1)/ 0		/
-	DATA cv_lo_d3  (to_ubwi+1)/ 0		/
-	DATA cv_hi_d3  (to_ubwi+1)/ 0		/
-	DATA cv_lo_d4  (to_ubwi+1)/ 0		/
-	DATA cv_hi_d4  (to_ubwi+1)/ 0		/
-	DATA cv_lo_d5  (to_ubwi+1)/ 0		/
-	DATA cv_hi_d5  (to_ubwi+1)/ 0		/
-	DATA cv_lo_d6  (to_ubwi+1)/ 0		/
-	DATA cv_hi_d6  (to_ubwi+1)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_vbwi+1)/ cat_file_var	/
-	DATA cv_variable (to_vbwi+1)/ ptauy		/
-	DATA cv_lo_d1  (to_vbwi+1)/ 0		/
-	DATA cv_hi_d1  (to_vbwi+1)/ 0		/
-	DATA cv_lo_d2  (to_vbwi+1)/ 0		/
-	DATA cv_hi_d2  (to_vbwi+1)/ 0		/
-	DATA cv_lo_d3  (to_vbwi+1)/ 0		/
-	DATA cv_hi_d3  (to_vbwi+1)/ 0		/
-	DATA cv_lo_d4  (to_vbwi+1)/ 0		/
-	DATA cv_hi_d4  (to_vbwi+1)/ 0		/
-	DATA cv_lo_d5  (to_vbwi+1)/ 0		/
-	DATA cv_hi_d5  (to_vbwi+1)/ 0		/
-	DATA cv_lo_d6  (to_vbwi+1)/ 0		/
-	DATA cv_hi_d6  (to_vbwi+1)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_ucoe+1)/ cat_file_var	/
-	DATA cv_variable (to_ucoe+1)/ pu		/
-	DATA cv_lo_d1  (to_ucoe+1)/ 0		/
-	DATA cv_hi_d1  (to_ucoe+1)/ 0		/
-	DATA cv_lo_d2  (to_ucoe+1)/ 0		/
-	DATA cv_hi_d2  (to_ucoe+1)/ 0		/
-	DATA cv_lo_d3  (to_ucoe+1)/ 0		/
-	DATA cv_hi_d3  (to_ucoe+1)/ 0		/
-	DATA cv_lo_d4  (to_ucoe+1)/ 0		/
-	DATA cv_hi_d4  (to_ucoe+1)/ 0		/
-	DATA cv_lo_d5  (to_ucoe+1)/ 0		/
-	DATA cv_hi_d5  (to_ucoe+1)/ 0		/
-	DATA cv_lo_d6  (to_ucoe+1)/ 0		/
-	DATA cv_hi_d6  (to_ucoe+1)/ 0		/
-
-	DATA cv_category (to_ucoe+2)/ cat_file_var	/
-	DATA cv_variable (to_ucoe+2)/ pv		/
-	DATA cv_lo_d1  (to_ucoe+2)/ 0		/
-	DATA cv_hi_d1  (to_ucoe+2)/ 0		/
-	DATA cv_lo_d2  (to_ucoe+2)/ 0		/
-	DATA cv_hi_d2  (to_ucoe+2)/ 0		/
-	DATA cv_lo_d3  (to_ucoe+2)/ 0		/
-	DATA cv_hi_d3  (to_ucoe+2)/ 0		/
-	DATA cv_lo_d4  (to_ucoe+2)/ 0		/
-	DATA cv_hi_d4  (to_ucoe+2)/ 0		/
-	DATA cv_lo_d5  (to_ucoe+2)/ 0		/
-	DATA cv_hi_d5  (to_ucoe+2)/ 0		/
-	DATA cv_lo_d6  (to_ucoe+2)/ 0		/
-	DATA cv_hi_d6  (to_ucoe+2)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_vcoe+1)/ cat_file_var	/
-	DATA cv_variable (to_vcoe+1)/ pu		/
-	DATA cv_lo_d1  (to_vcoe+1)/ 0		/
-	DATA cv_hi_d1  (to_vcoe+1)/ 0		/
-	DATA cv_lo_d2  (to_vcoe+1)/ 0		/
-	DATA cv_hi_d2  (to_vcoe+1)/ 0		/
-	DATA cv_lo_d3  (to_vcoe+1)/ 0		/
-	DATA cv_hi_d3  (to_vcoe+1)/ 0		/
-	DATA cv_lo_d4  (to_vcoe+1)/ 0		/
-	DATA cv_hi_d4  (to_vcoe+1)/ 0		/
-	DATA cv_lo_d5  (to_vcoe+1)/ 0		/
-	DATA cv_hi_d5  (to_vcoe+1)/ 0		/
-	DATA cv_lo_d6  (to_vcoe+1)/ 0		/
-	DATA cv_hi_d6  (to_vcoe+1)/ 0		/
-
-	DATA cv_category (to_vcoe+2)/ cat_file_var	/
-	DATA cv_variable (to_vcoe+2)/ pv		/
-	DATA cv_lo_d1  (to_vcoe+2)/ 0		/
-	DATA cv_hi_d1  (to_vcoe+2)/ 0		/
-	DATA cv_lo_d2  (to_vcoe+2)/ 0		/
-	DATA cv_hi_d2  (to_vcoe+2)/ 0		/
-	DATA cv_lo_d3  (to_vcoe+2)/ 0		/
-	DATA cv_hi_d3  (to_vcoe+2)/ 0		/
-	DATA cv_lo_d4  (to_vcoe+2)/ 0		/
-	DATA cv_hi_d4  (to_vcoe+2)/ 0		/
-	DATA cv_lo_d5  (to_vcoe+2)/ 0		/
-	DATA cv_hi_d5  (to_vcoe+2)/ 0		/
-	DATA cv_lo_d6  (to_vcoe+2)/ 0		/
-	DATA cv_hi_d6  (to_vcoe+2)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_uad +1)/ cat_calc_var	/
-	DATA cv_variable (to_uad +1)/ puadx		/
-	DATA cv_lo_d1  (to_uad +1)/ 0		/
-	DATA cv_hi_d1  (to_uad +1)/ 0		/
-	DATA cv_lo_d2  (to_uad +1)/ 0		/
-	DATA cv_hi_d2  (to_uad +1)/ 0		/
-	DATA cv_lo_d3  (to_uad +1)/ 0		/
-	DATA cv_hi_d3  (to_uad +1)/ 0		/
-	DATA cv_lo_d4  (to_uad +1)/ 0		/
-	DATA cv_hi_d4  (to_uad +1)/ 0		/
-	DATA cv_lo_d5  (to_uad +1)/ 0		/
-	DATA cv_hi_d5  (to_uad +1)/ 0		/
-	DATA cv_lo_d6  (to_uad +1)/ 0		/
-	DATA cv_hi_d6  (to_uad +1)/ 0		/
-
-	DATA cv_category (to_uad +2)/ cat_calc_var	/
-	DATA cv_variable (to_uad +2)/ puady		/
-	DATA cv_lo_d1  (to_uad +2)/ 0		/
-	DATA cv_hi_d1  (to_uad +2)/ 0		/
-	DATA cv_lo_d2  (to_uad +2)/ 0		/
-	DATA cv_hi_d2  (to_uad +2)/ 0		/
-	DATA cv_lo_d3  (to_uad +2)/ 0		/
-	DATA cv_hi_d3  (to_uad +2)/ 0		/
-	DATA cv_lo_d4  (to_uad +2)/ 0		/
-	DATA cv_hi_d4  (to_uad +2)/ 0		/
-	DATA cv_lo_d5  (to_uad +2)/ 0		/
-	DATA cv_hi_d5  (to_uad +2)/ 0		/
-	DATA cv_lo_d6  (to_uad +2)/ 0		/
-	DATA cv_hi_d6  (to_uad +2)/ 0		/
-
-	DATA cv_category (to_uad +3)/ cat_calc_var	/
-	DATA cv_variable (to_uad +3)/ puadz		/
-	DATA cv_lo_d1  (to_uad +3)/ 0		/
-	DATA cv_hi_d1  (to_uad +3)/ 0		/
-	DATA cv_lo_d2  (to_uad +3)/ 0		/
-	DATA cv_hi_d2  (to_uad +3)/ 0		/
-	DATA cv_lo_d3  (to_uad +3)/ 0		/
-	DATA cv_hi_d3  (to_uad +3)/ 0		/
-	DATA cv_lo_d4  (to_uad +3)/ 0		/
-	DATA cv_hi_d4  (to_uad +3)/ 0		/
-	DATA cv_lo_d5  (to_uad +3)/ 0		/
-	DATA cv_hi_d5  (to_uad +3)/ 0		/
-	DATA cv_lo_d6  (to_uad +3)/ 0		/
-	DATA cv_hi_d6  (to_uad +3)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_vad +1)/ cat_calc_var	/
-	DATA cv_variable (to_vad +1)/ pvadx		/
-	DATA cv_lo_d1  (to_vad +1)/ 0		/
-	DATA cv_hi_d1  (to_vad +1)/ 0		/
-	DATA cv_lo_d2  (to_vad +1)/ 0		/
-	DATA cv_hi_d2  (to_vad +1)/ 0		/
-	DATA cv_lo_d3  (to_vad +1)/ 0		/
-	DATA cv_hi_d3  (to_vad +1)/ 0		/
-	DATA cv_lo_d4  (to_vad +1)/ 0		/
-	DATA cv_hi_d4  (to_vad +1)/ 0		/
-	DATA cv_lo_d5  (to_vad +1)/ 0		/
-	DATA cv_hi_d5  (to_vad +1)/ 0		/
-	DATA cv_lo_d6  (to_vad +1)/ 0		/
-	DATA cv_hi_d6  (to_vad +1)/ 0		/
-
-	DATA cv_category (to_vad +2)/ cat_calc_var	/
-	DATA cv_variable (to_vad +2)/ pvady		/
-	DATA cv_lo_d1  (to_vad +2)/ 0		/
-	DATA cv_hi_d1  (to_vad +2)/ 0		/
-	DATA cv_lo_d2  (to_vad +2)/ 0		/
-	DATA cv_hi_d2  (to_vad +2)/ 0		/
-	DATA cv_lo_d3  (to_vad +2)/ 0		/
-	DATA cv_hi_d3  (to_vad +2)/ 0		/
-	DATA cv_lo_d4  (to_vad +2)/ 0		/
-	DATA cv_hi_d4  (to_vad +2)/ 0		/
-	DATA cv_lo_d5  (to_vad +2)/ 0		/
-	DATA cv_hi_d5  (to_vad +2)/ 0		/
-	DATA cv_lo_d6  (to_vad +2)/ 0		/
-	DATA cv_hi_d6  (to_vad +2)/ 0		/
-
-	DATA cv_category (to_vad +3)/ cat_calc_var	/
-	DATA cv_variable (to_vad +3)/ pvadz		/
-	DATA cv_lo_d1  (to_vad +3)/ 0		/
-	DATA cv_hi_d1  (to_vad +3)/ 0		/
-	DATA cv_lo_d2  (to_vad +3)/ 0		/
-	DATA cv_hi_d2  (to_vad +3)/ 0		/
-	DATA cv_lo_d3  (to_vad +3)/ 0		/
-	DATA cv_hi_d3  (to_vad +3)/ 0		/
-	DATA cv_lo_d4  (to_vad +3)/ 0		/
-	DATA cv_hi_d4  (to_vad +3)/ 0		/
-	DATA cv_lo_d5  (to_vad +3)/ 0		/
-	DATA cv_hi_d5  (to_vad +3)/ 0		/
-	DATA cv_lo_d6  (to_vad +3)/ 0		/
-	DATA cv_hi_d6  (to_vad +3)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_udf +1)/ cat_calc_var	/
-	DATA cv_variable (to_udf +1)/ pudfh		/
-	DATA cv_lo_d1  (to_udf +1)/ 0		/
-	DATA cv_hi_d1  (to_udf +1)/ 0		/
-	DATA cv_lo_d2  (to_udf +1)/ 0		/
-	DATA cv_hi_d2  (to_udf +1)/ 0		/
-	DATA cv_lo_d3  (to_udf +1)/ 0		/
-	DATA cv_hi_d3  (to_udf +1)/ 0		/
-	DATA cv_lo_d4  (to_udf +1)/ 0		/
-	DATA cv_hi_d4  (to_udf +1)/ 0		/
-	DATA cv_lo_d5  (to_udf +1)/ 0		/
-	DATA cv_hi_d5  (to_udf +1)/ 0		/
-	DATA cv_lo_d6  (to_udf +1)/ 0		/
-	DATA cv_hi_d6  (to_udf +1)/ 0		/
-
-	DATA cv_category (to_udf +2)/ cat_calc_var	/
-	DATA cv_variable (to_udf +2)/ pudfz		/
-	DATA cv_lo_d1  (to_udf +2)/ 0		/
-	DATA cv_hi_d1  (to_udf +2)/ 0		/
-	DATA cv_lo_d2  (to_udf +2)/ 0		/
-	DATA cv_hi_d2  (to_udf +2)/ 0		/
-	DATA cv_lo_d3  (to_udf +2)/ 0		/
-	DATA cv_hi_d3  (to_udf +2)/ 0		/
-	DATA cv_lo_d4  (to_udf +2)/ 0		/
-	DATA cv_hi_d4  (to_udf +2)/ 0		/
-	DATA cv_lo_d5  (to_udf +2)/ 0		/
-	DATA cv_hi_d5  (to_udf +2)/ 0		/
-	DATA cv_lo_d6  (to_udf +2)/ 0		/
-	DATA cv_hi_d6  (to_udf +2)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_vdf +1)/ cat_calc_var	/
-	DATA cv_variable (to_vdf +1)/ pvdfh		/
-	DATA cv_lo_d1  (to_vdf +1)/ 0		/
-	DATA cv_hi_d1  (to_vdf +1)/ 0		/
-	DATA cv_lo_d2  (to_vdf +1)/ 0		/
-	DATA cv_hi_d2  (to_vdf +1)/ 0		/
-	DATA cv_lo_d3  (to_vdf +1)/ 0		/
-	DATA cv_hi_d3  (to_vdf +1)/ 0		/
-	DATA cv_lo_d4  (to_vdf +1)/ 0		/
-	DATA cv_hi_d4  (to_vdf +1)/ 0		/
-	DATA cv_lo_d5  (to_vdf +1)/ 0		/
-	DATA cv_hi_d5  (to_vdf +1)/ 0		/
-	DATA cv_lo_d6  (to_vdf +1)/ 0		/
-	DATA cv_hi_d6  (to_vdf +1)/ 0		/
-
-	DATA cv_category (to_vdf +2)/ cat_calc_var	/
-	DATA cv_variable (to_vdf +2)/ pvdfz		/
-	DATA cv_lo_d1  (to_vdf +2)/ 0		/
-	DATA cv_hi_d1  (to_vdf +2)/ 0		/
-	DATA cv_lo_d2  (to_vdf +2)/ 0		/
-	DATA cv_hi_d2  (to_vdf +2)/ 0		/
-	DATA cv_lo_d3  (to_vdf +2)/ 0		/
-	DATA cv_hi_d3  (to_vdf +2)/ 0		/
-	DATA cv_lo_d4  (to_vdf +2)/ 0		/
-	DATA cv_hi_d4  (to_vdf +2)/ 0		/
-	DATA cv_lo_d5  (to_vdf +2)/ 0		/
-	DATA cv_hi_d5  (to_vdf +2)/ 0		/
-	DATA cv_lo_d6  (to_vdf +2)/ 0		/
-	DATA cv_hi_d6  (to_vdf +2)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_dudt+1)/ cat_file_var	/
-	DATA cv_variable (to_dudt+1)/ pu   		/
-	DATA cv_lo_d1  (to_dudt+1)/ 0		/
-	DATA cv_hi_d1  (to_dudt+1)/ 0		/
-	DATA cv_lo_d2  (to_dudt+1)/ 0		/
-	DATA cv_hi_d2  (to_dudt+1)/ 0		/
-	DATA cv_lo_d3  (to_dudt+1)/ 0		/
-	DATA cv_hi_d3  (to_dudt+1)/ 0		/
-	DATA cv_lo_d4  (to_dudt+1)/ -1		/
-	DATA cv_hi_d4  (to_dudt+1)/ +1		/
-	DATA cv_lo_d5  (to_dudt+1)/ 0		/
-	DATA cv_hi_d5  (to_dudt+1)/ 0		/
-	DATA cv_lo_d6  (to_dudt+1)/ 0		/
-	DATA cv_hi_d6  (to_dudt+1)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_dvdt+1)/ cat_file_var	/
-	DATA cv_variable (to_dvdt+1)/ pv   		/
-	DATA cv_lo_d1  (to_dvdt+1)/ 0		/
-	DATA cv_hi_d1  (to_dvdt+1)/ 0		/
-	DATA cv_lo_d2  (to_dvdt+1)/ 0		/
-	DATA cv_hi_d2  (to_dvdt+1)/ 0		/
-	DATA cv_lo_d3  (to_dvdt+1)/ 0		/
-	DATA cv_hi_d3  (to_dvdt+1)/ 0		/
-	DATA cv_lo_d4  (to_dvdt+1)/ -1		/
-	DATA cv_hi_d4  (to_dvdt+1)/ +1		/
-	DATA cv_lo_d5  (to_dvdt+1)/ 0		/
-	DATA cv_hi_d5  (to_dvdt+1)/ 0		/
-	DATA cv_lo_d6  (to_dvdt+1)/ 0		/
-	DATA cv_hi_d6  (to_dvdt+1)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_dwdt+1)/ cat_file_var	/
-	DATA cv_variable (to_dwdt+1)/ pw   		/
-	DATA cv_lo_d1  (to_dwdt+1)/ 0		/
-	DATA cv_hi_d1  (to_dwdt+1)/ 0		/
-	DATA cv_lo_d2  (to_dwdt+1)/ 0		/
-	DATA cv_hi_d2  (to_dwdt+1)/ 0		/
-	DATA cv_lo_d3  (to_dwdt+1)/ 0		/
-	DATA cv_hi_d3  (to_dwdt+1)/ 0		/
-	DATA cv_lo_d4  (to_dwdt+1)/ -1		/
-	DATA cv_hi_d4  (to_dwdt+1)/ +1		/
-	DATA cv_lo_d5  (to_dwdt+1)/ 0		/
-	DATA cv_hi_d5  (to_dwdt+1)/ 0		/
-	DATA cv_lo_d6  (to_dwdt+1)/ 0		/
-	DATA cv_hi_d6  (to_dwdt+1)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_dtdt+1)/ cat_file_var	/
-	DATA cv_variable (to_dtdt+1)/ ptemp		/
-	DATA cv_lo_d1  (to_dtdt+1)/ 0		/
-	DATA cv_hi_d1  (to_dtdt+1)/ 0		/
-	DATA cv_lo_d2  (to_dtdt+1)/ 0		/
-	DATA cv_hi_d2  (to_dtdt+1)/ 0		/
-	DATA cv_lo_d3  (to_dtdt+1)/ 0		/
-	DATA cv_hi_d3  (to_dtdt+1)/ 0		/
-	DATA cv_lo_d4  (to_dtdt+1)/ -1		/
-	DATA cv_hi_d4  (to_dtdt+1)/ +1		/
-	DATA cv_lo_d5  (to_dtdt+1)/ 0		/
-	DATA cv_hi_d5  (to_dtdt+1)/ 0		/
-	DATA cv_lo_d6  (to_dtdt+1)/ 0		/
-	DATA cv_hi_d6  (to_dtdt+1)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_ubps+1)/ cat_calc_var	/
-	DATA cv_variable (to_ubps+1)/ pudf		/
-	DATA cv_lo_d1  (to_ubps+1)/ 0		/
-	DATA cv_hi_d1  (to_ubps+1)/ 0		/
-	DATA cv_lo_d2  (to_ubps+1)/ 0		/
-	DATA cv_hi_d2  (to_ubps+1)/ 0		/
-	DATA cv_lo_d3  (to_ubps+1)/ 0		/
-	DATA cv_hi_d3  (to_ubps+1)/ 0		/
-	DATA cv_lo_d4  (to_ubps+1)/ 0		/
-	DATA cv_hi_d4  (to_ubps+1)/ 0		/
-	DATA cv_lo_d5  (to_ubps+1)/ 0		/
-	DATA cv_hi_d5  (to_ubps+1)/ 0		/
-	DATA cv_lo_d6  (to_ubps+1)/ 0		/
-	DATA cv_hi_d6  (to_ubps+1)/ 0		/
-
-	DATA cv_category (to_ubps+2)/ cat_calc_var	/
-	DATA cv_variable (to_ubps+2)/ puad		/
-	DATA cv_lo_d1  (to_ubps+2)/ 0		/
-	DATA cv_hi_d1  (to_ubps+2)/ 0		/
-	DATA cv_lo_d2  (to_ubps+2)/ 0		/
-	DATA cv_hi_d2  (to_ubps+2)/ 0		/
-	DATA cv_lo_d3  (to_ubps+2)/ 0		/
-	DATA cv_hi_d3  (to_ubps+2)/ 0		/
-	DATA cv_lo_d4  (to_ubps+2)/ 0		/
-	DATA cv_hi_d4  (to_ubps+2)/ 0		/
-	DATA cv_lo_d5  (to_ubps+2)/ 0		/
-	DATA cv_hi_d5  (to_ubps+2)/ 0		/
-	DATA cv_lo_d6  (to_ubps+2)/ 0		/
-	DATA cv_hi_d6  (to_ubps+2)/ 0		/
-
-	DATA cv_category (to_ubps+3)/ cat_calc_var	/
-	DATA cv_variable (to_ubps+3)/ pucoe		/
-	DATA cv_lo_d1  (to_ubps+3)/ 0		/
-	DATA cv_hi_d1  (to_ubps+3)/ 0		/
-	DATA cv_lo_d2  (to_ubps+3)/ 0		/
-	DATA cv_hi_d2  (to_ubps+3)/ 0		/
-	DATA cv_lo_d3  (to_ubps+3)/ 0		/
-	DATA cv_hi_d3  (to_ubps+3)/ 0		/
-	DATA cv_lo_d4  (to_ubps+3)/ 0		/
-	DATA cv_hi_d4  (to_ubps+3)/ 0		/
-	DATA cv_lo_d5  (to_ubps+3)/ 0		/
-	DATA cv_hi_d5  (to_ubps+3)/ 0		/
-	DATA cv_lo_d6  (to_ubps+3)/ 0		/
-	DATA cv_hi_d6  (to_ubps+3)/ 0		/
-
-	DATA cv_category (to_ubps+4)/ cat_calc_var	/
-	DATA cv_variable (to_ubps+4)/ pubpi		/
-	DATA cv_lo_d1  (to_ubps+4)/ 0		/
-	DATA cv_hi_d1  (to_ubps+4)/ 0		/
-	DATA cv_lo_d2  (to_ubps+4)/ 0		/
-	DATA cv_hi_d2  (to_ubps+4)/ 0		/
-	DATA cv_lo_d3  (to_ubps+4)/ 0		/
-	DATA cv_hi_d3  (to_ubps+4)/ 0		/
-	DATA cv_lo_d4  (to_ubps+4)/ 0		/
-	DATA cv_hi_d4  (to_ubps+4)/ 0		/
-	DATA cv_lo_d5  (to_ubps+4)/ 0		/
-	DATA cv_hi_d5  (to_ubps+4)/ 0		/
-	DATA cv_lo_d6  (to_ubps+4)/ 0		/
-	DATA cv_hi_d6  (to_ubps+4)/ 0		/
-
-	DATA cv_category (to_ubps+5)/ cat_calc_var	/
-	DATA cv_variable (to_ubps+5)/ pdudt		/
-	DATA cv_lo_d1  (to_ubps+5)/ 0		/
-	DATA cv_hi_d1  (to_ubps+5)/ 0		/
-	DATA cv_lo_d2  (to_ubps+5)/ 0		/
-	DATA cv_hi_d2  (to_ubps+5)/ 0		/
-	DATA cv_lo_d3  (to_ubps+5)/ 0		/
-	DATA cv_hi_d3  (to_ubps+5)/ 0		/
-	DATA cv_lo_d4  (to_ubps+5)/ 0		/
-	DATA cv_hi_d4  (to_ubps+5)/ 0		/
-	DATA cv_lo_d5  (to_ubps+5)/ 0		/
-	DATA cv_hi_d5  (to_ubps+5)/ 0		/
-	DATA cv_lo_d6  (to_ubps+5)/ 0		/
-	DATA cv_hi_d6  (to_ubps+5)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_vbps+1)/ cat_calc_var	/
-	DATA cv_variable (to_vbps+1)/ pvdf		/
-	DATA cv_lo_d1  (to_vbps+1)/ 0		/
-	DATA cv_hi_d1  (to_vbps+1)/ 0		/
-	DATA cv_lo_d2  (to_vbps+1)/ 0		/
-	DATA cv_hi_d2  (to_vbps+1)/ 0		/
-	DATA cv_lo_d3  (to_vbps+1)/ 0		/
-	DATA cv_hi_d3  (to_vbps+1)/ 0		/
-	DATA cv_lo_d4  (to_vbps+1)/ 0		/
-	DATA cv_hi_d4  (to_vbps+1)/ 0		/
-	DATA cv_lo_d5  (to_vbps+1)/ 0		/
-	DATA cv_hi_d5  (to_vbps+1)/ 0		/
-	DATA cv_lo_d6  (to_vbps+1)/ 0		/
-	DATA cv_hi_d6  (to_vbps+1)/ 0		/
-
-	DATA cv_category (to_vbps+2)/ cat_calc_var	/
-	DATA cv_variable (to_vbps+2)/ pvad		/
-	DATA cv_lo_d1  (to_vbps+2)/ 0		/
-	DATA cv_hi_d1  (to_vbps+2)/ 0		/
-	DATA cv_lo_d2  (to_vbps+2)/ 0		/
-	DATA cv_hi_d2  (to_vbps+2)/ 0		/
-	DATA cv_lo_d3  (to_vbps+2)/ 0		/
-	DATA cv_hi_d3  (to_vbps+2)/ 0		/
-	DATA cv_lo_d4  (to_vbps+2)/ 0		/
-	DATA cv_hi_d4  (to_vbps+2)/ 0		/
-	DATA cv_lo_d5  (to_vbps+2)/ 0		/
-	DATA cv_hi_d5  (to_vbps+2)/ 0		/
-	DATA cv_lo_d6  (to_vbps+2)/ 0		/
-	DATA cv_hi_d6  (to_vbps+2)/ 0		/
-
-	DATA cv_category (to_vbps+3)/ cat_calc_var	/
-	DATA cv_variable (to_vbps+3)/ pvcoe		/
-	DATA cv_lo_d1  (to_vbps+3)/ 0		/
-	DATA cv_hi_d1  (to_vbps+3)/ 0		/
-	DATA cv_lo_d2  (to_vbps+3)/ 0		/
-	DATA cv_hi_d2  (to_vbps+3)/ 0		/
-	DATA cv_lo_d3  (to_vbps+3)/ 0		/
-	DATA cv_hi_d3  (to_vbps+3)/ 0		/
-	DATA cv_lo_d4  (to_vbps+3)/ 0		/
-	DATA cv_hi_d4  (to_vbps+3)/ 0		/
-	DATA cv_lo_d5  (to_vbps+3)/ 0		/
-	DATA cv_hi_d5  (to_vbps+3)/ 0		/
-	DATA cv_lo_d6  (to_vbps+3)/ 0		/
-	DATA cv_hi_d6  (to_vbps+3)/ 0		/
-
-	DATA cv_category (to_vbps+4)/ cat_calc_var	/
-	DATA cv_variable (to_vbps+4)/ pvbpi		/
-	DATA cv_lo_d1  (to_vbps+4)/ 0		/
-	DATA cv_hi_d1  (to_vbps+4)/ 0		/
-	DATA cv_lo_d2  (to_vbps+4)/ 0		/
-	DATA cv_hi_d2  (to_vbps+4)/ 0		/
-	DATA cv_lo_d3  (to_vbps+4)/ 0		/
-	DATA cv_hi_d3  (to_vbps+4)/ 0		/
-	DATA cv_lo_d4  (to_vbps+4)/ 0		/
-	DATA cv_hi_d4  (to_vbps+4)/ 0		/
-	DATA cv_lo_d5  (to_vbps+4)/ 0		/
-	DATA cv_hi_d5  (to_vbps+4)/ 0		/
-	DATA cv_lo_d6  (to_vbps+4)/ 0		/
-	DATA cv_hi_d6  (to_vbps+4)/ 0		/
-
-	DATA cv_category (to_vbps+5)/ cat_calc_var	/
-	DATA cv_variable (to_vbps+5)/ pdvdt		/
-	DATA cv_lo_d1  (to_vbps+5)/ 0		/
-	DATA cv_hi_d1  (to_vbps+5)/ 0		/
-	DATA cv_lo_d2  (to_vbps+5)/ 0		/
-	DATA cv_hi_d2  (to_vbps+5)/ 0		/
-	DATA cv_lo_d3  (to_vbps+5)/ 0		/
-	DATA cv_hi_d3  (to_vbps+5)/ 0		/
-	DATA cv_lo_d4  (to_vbps+5)/ 0		/
-	DATA cv_hi_d4  (to_vbps+5)/ 0		/
-	DATA cv_lo_d5  (to_vbps+5)/ 0		/
-	DATA cv_hi_d5  (to_vbps+5)/ 0		/
-	DATA cv_lo_d6  (to_vbps+5)/ 0		/
-	DATA cv_hi_d6  (to_vbps+5)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_sali+1)/ cat_file_var	/
-	DATA cv_variable (to_sali+1)/ psalt		/
-	DATA cv_lo_d1  (to_sali+1)/ 0		/
-	DATA cv_hi_d1  (to_sali+1)/ 0		/
-	DATA cv_lo_d2  (to_sali+1)/ 0		/
-	DATA cv_hi_d2  (to_sali+1)/ 0		/
-	DATA cv_lo_d3  (to_sali+1)/ 0		/
-	DATA cv_hi_d3  (to_sali+1)/ 0		/
-	DATA cv_lo_d4  (to_sali+1)/ 0		/
-	DATA cv_hi_d4  (to_sali+1)/ 0		/
-	DATA cv_lo_d5  (to_sali+1)/ 0		/
-	DATA cv_hi_d5  (to_sali+1)/ 0		/
-	DATA cv_lo_d6  (to_sali+1)/ 0		/
-	DATA cv_hi_d6  (to_sali+1)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_dens+1)/ cat_file_var	/
-	DATA cv_variable (to_dens+1)/ ptemp		/
-	DATA cv_lo_d1  (to_dens+1)/ 0		/
-	DATA cv_hi_d1  (to_dens+1)/ 0		/
-	DATA cv_lo_d2  (to_dens+1)/ 0		/
-	DATA cv_hi_d2  (to_dens+1)/ 0		/
-	DATA cv_lo_d3  (to_dens+1)/ 0		/
-	DATA cv_hi_d3  (to_dens+1)/ 0		/
-	DATA cv_lo_d4  (to_dens+1)/ 0		/
-	DATA cv_hi_d4  (to_dens+1)/ 0		/
-	DATA cv_lo_d5  (to_dens+1)/ 0		/
-	DATA cv_hi_d5  (to_dens+1)/ 0		/
-	DATA cv_lo_d6  (to_dens+1)/ 0		/
-	DATA cv_hi_d6  (to_dens+1)/ 0		/
-
-	DATA cv_category (to_dens+2)/ cat_file_var	/
-	DATA cv_variable (to_dens+2)/ psalt		/
-	DATA cv_lo_d1  (to_dens+2)/ 0		/
-	DATA cv_hi_d1  (to_dens+2)/ 0		/
-	DATA cv_lo_d2  (to_dens+2)/ 0		/
-	DATA cv_hi_d2  (to_dens+2)/ 0		/
-	DATA cv_lo_d3  (to_dens+2)/ 0		/
-	DATA cv_hi_d3  (to_dens+2)/ 0		/
-	DATA cv_lo_d4  (to_dens+2)/ 0		/
-	DATA cv_hi_d4  (to_dens+2)/ 0		/
-	DATA cv_lo_d5  (to_dens+2)/ 0		/
-	DATA cv_hi_d5  (to_dens+2)/ 0		/
-	DATA cv_lo_d6  (to_dens+2)/ 0		/
-	DATA cv_hi_d6  (to_dens+2)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_ubp +1)/ cat_calc_var	/
-	DATA cv_variable (to_ubp +1)/ pubpi		/
-	DATA cv_lo_d1  (to_ubp +1)/ 0		/
-	DATA cv_hi_d1  (to_ubp +1)/ 0		/
-	DATA cv_lo_d2  (to_ubp +1)/ 0		/
-	DATA cv_hi_d2  (to_ubp +1)/ 0		/
-	DATA cv_lo_d3  (to_ubp +1)/ 0	/
-	DATA cv_hi_d3  (to_ubp +1)/ 0	/
-	DATA cv_lo_d4  (to_ubp +1)/ 0		/
-	DATA cv_hi_d4  (to_ubp +1)/ 0		/
-	DATA cv_lo_d5  (to_ubp +1)/ 0		/
-	DATA cv_hi_d5  (to_ubp +1)/ 0		/
-	DATA cv_lo_d6  (to_ubp +1)/ 0		/
-	DATA cv_hi_d6  (to_ubp +1)/ 0		/
-
-	DATA cv_category (to_ubp +2)/ cat_calc_var	/
-	DATA cv_variable (to_ubp +2)/ pubps		/
-	DATA cv_lo_d1  (to_ubp +2)/ 0		/
-	DATA cv_hi_d1  (to_ubp +2)/ 0		/
-	DATA cv_lo_d2  (to_ubp +2)/ 0		/
-	DATA cv_hi_d2  (to_ubp +2)/ 0		/
-	DATA cv_lo_d3  (to_ubp +2)/ 0		/
-	DATA cv_hi_d3  (to_ubp +2)/ 0		/
-	DATA cv_lo_d4  (to_ubp +2)/ 0		/
-	DATA cv_hi_d4  (to_ubp +2)/ 0		/
-	DATA cv_lo_d5  (to_ubp +2)/ 0		/
-	DATA cv_hi_d5  (to_ubp +2)/ 0		/
-	DATA cv_lo_d6  (to_ubp +2)/ 0		/
-	DATA cv_hi_d6  (to_ubp +2)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_vbp +1)/ cat_calc_var	/
-	DATA cv_variable (to_vbp +1)/ pvbpi		/
-	DATA cv_lo_d1  (to_vbp +1)/ 0		/
-	DATA cv_hi_d1  (to_vbp +1)/ 0		/
-	DATA cv_lo_d2  (to_vbp +1)/ 0		/
-	DATA cv_hi_d2  (to_vbp +1)/ 0		/
-	DATA cv_lo_d3  (to_vbp +1)/ 0	/
-	DATA cv_hi_d3  (to_vbp +1)/ 0	/
-	DATA cv_lo_d4  (to_vbp +1)/ 0		/
-	DATA cv_hi_d4  (to_vbp +1)/ 0		/
-	DATA cv_lo_d5  (to_vbp +1)/ 0		/
-	DATA cv_hi_d5  (to_vbp +1)/ 0		/
-	DATA cv_lo_d6  (to_vbp +1)/ 0		/
-	DATA cv_hi_d6  (to_vbp +1)/ 0		/
-
-	DATA cv_category (to_vbp +2)/ cat_calc_var	/
-	DATA cv_variable (to_vbp +2)/ pvbps		/
-	DATA cv_lo_d1  (to_vbp +2)/ 0		/
-	DATA cv_hi_d1  (to_vbp +2)/ 0		/
-	DATA cv_lo_d2  (to_vbp +2)/ 0		/
-	DATA cv_hi_d2  (to_vbp +2)/ 0		/
-	DATA cv_lo_d3  (to_vbp +2)/ 0		/
-	DATA cv_hi_d3  (to_vbp +2)/ 0		/
-	DATA cv_lo_d4  (to_vbp +2)/ 0		/
-	DATA cv_hi_d4  (to_vbp +2)/ 0		/
-	DATA cv_lo_d5  (to_vbp +2)/ 0		/
-	DATA cv_hi_d5  (to_vbp +2)/ 0		/
-	DATA cv_lo_d6  (to_vbp +2)/ 0		/
-	DATA cv_hi_d6  (to_vbp +2)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_cmsk+1)/ cat_file_var	/
-	DATA cv_variable (to_cmsk+1)/ ptemp		/
-	DATA cv_lo_d1  (to_cmsk+1)/ 0		/
-	DATA cv_hi_d1  (to_cmsk+1)/ 0		/
-	DATA cv_lo_d2  (to_cmsk+1)/ 0		/
-	DATA cv_hi_d2  (to_cmsk+1)/ 0		/
-	DATA cv_lo_d3  (to_cmsk+1)/ -1		/
-	DATA cv_hi_d3  (to_cmsk+1)/ +1		/
-	DATA cv_lo_d4  (to_cmsk+1)/ 0		/
-	DATA cv_hi_d4  (to_cmsk+1)/ 0		/
-	DATA cv_lo_d5  (to_cmsk+1)/ 0		/
-	DATA cv_hi_d5  (to_cmsk+1)/ 0		/
-	DATA cv_lo_d6  (to_cmsk+1)/ 0		/
-	DATA cv_hi_d6  (to_cmsk+1)/ 0		/
-
-	DATA cv_category (to_cmsk+2)/ cat_file_var	/
-	DATA cv_variable (to_cmsk+2)/ psalt		/
-	DATA cv_lo_d1  (to_cmsk+2)/ 0		/
-	DATA cv_hi_d1  (to_cmsk+2)/ 0		/
-	DATA cv_lo_d2  (to_cmsk+2)/ 0		/
-	DATA cv_hi_d2  (to_cmsk+2)/ 0		/
-	DATA cv_lo_d3  (to_cmsk+2)/ -1		/
-	DATA cv_hi_d3  (to_cmsk+2)/ +1		/
-	DATA cv_lo_d4  (to_cmsk+2)/ 0 		/
-	DATA cv_hi_d4  (to_cmsk+2)/ 0 		/
-	DATA cv_lo_d5  (to_cmsk+2)/ 0		/
-	DATA cv_hi_d5  (to_cmsk+2)/ 0		/
-	DATA cv_lo_d6  (to_cmsk+2)/ 0		/
-	DATA cv_hi_d6  (to_cmsk+2)/ 0		/
-
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-	DATA cv_category (to_w_t +1)/ cat_file_var	/
-	DATA cv_variable (to_w_t +1)/ pu		/
-	DATA cv_lo_d1  (to_w_t +1)/ -1		/
-	DATA cv_hi_d1  (to_w_t +1)/ 0		/
-	DATA cv_lo_d2  (to_w_t +1)/ -1		/
-	DATA cv_hi_d2  (to_w_t +1)/ 0		/
-	DATA cv_lo_d3  (to_w_t +1)/ 0		/
-	DATA cv_hi_d3  (to_w_t +1)/ 0		/
-	DATA cv_lo_d4  (to_w_t +1)/ 0		/
-	DATA cv_hi_d4  (to_w_t +1)/ 0		/
-	DATA cv_lo_d5  (to_w_t +1)/ 0		/
-	DATA cv_hi_d5  (to_w_t +1)/ 0		/
-	DATA cv_lo_d6  (to_w_t +1)/ 0		/
-	DATA cv_hi_d6  (to_w_t +1)/ 0		/
-
-	DATA cv_category (to_w_t +2)/ cat_file_var	/
-	DATA cv_variable (to_w_t +2)/ pv		/
-	DATA cv_lo_d1  (to_w_t +2)/ -1		/
-	DATA cv_hi_d1  (to_w_t +2)/ 0		/
-	DATA cv_lo_d2  (to_w_t +2)/ -1		/
-	DATA cv_hi_d2  (to_w_t +2)/ 0		/
-	DATA cv_lo_d3  (to_w_t +2)/ 0		/
-	DATA cv_hi_d3  (to_w_t +2)/ 0		/
-	DATA cv_lo_d4  (to_w_t +2)/ 0		/
-	DATA cv_hi_d4  (to_w_t +2)/ 0		/
-	DATA cv_lo_d5  (to_w_t +2)/ 0		/
-	DATA cv_hi_d5  (to_w_t +2)/ 0		/
-	DATA cv_lo_d6  (to_w_t +2)/ 0		/
-	DATA cv_hi_d6  (to_w_t +2)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_cair+1)/ cat_file_var	/
-	DATA cv_variable (to_cair+1)/ pairt_special	/
-	DATA cv_lo_d1  (to_cair+1)/ 0		/
-	DATA cv_hi_d1  (to_cair+1)/ 0		/
-	DATA cv_lo_d2  (to_cair+1)/ 0		/
-	DATA cv_hi_d2  (to_cair+1)/ 0		/
-	DATA cv_lo_d3  (to_cair+1)/ 0		/
-	DATA cv_hi_d3  (to_cair+1)/ 0		/
-	DATA cv_lo_d4  (to_cair+1)/ 0		/
-	DATA cv_hi_d4  (to_cair+1)/ 0		/
-	DATA cv_lo_d5  (to_cair+1)/ 0		/
-	DATA cv_hi_d5  (to_cair+1)/ 0		/
-	DATA cv_lo_d6  (to_cair+1)/ 0		/
-	DATA cv_hi_d6  (to_cair+1)/ 0		/
-
-**************************************************************************
-
-	DATA cv_category (to_air +1)/ cat_file_var	/
-	DATA cv_variable (to_air +1)/ ptemp		/
-	DATA cv_lo_d1  (to_air +1)/ 0		/
-	DATA cv_hi_d1  (to_air +1)/ 0		/
-	DATA cv_lo_d2  (to_air +1)/ 0		/
-	DATA cv_hi_d2  (to_air +1)/ 0		/
-	DATA cv_lo_d3  (to_air +1)/ 0		/
-	DATA cv_hi_d3  (to_air +1)/ 0		/
-	DATA cv_lo_d4  (to_air +1)/ 0		/
-	DATA cv_hi_d4  (to_air +1)/ 0		/
-	DATA cv_lo_d5  (to_air +1)/ 0		/
-	DATA cv_hi_d5  (to_air +1)/ 0		/
-	DATA cv_lo_d6  (to_air +1)/ 0		/
-	DATA cv_hi_d6  (to_air +1)/ 0		/
-
-	DATA cv_category (to_air +2)/ cat_calc_var	/
-	DATA cv_variable (to_air +2)/ pcair_special	/
-	DATA cv_lo_d1  (to_air +2)/ 0		/
-	DATA cv_hi_d1  (to_air +2)/ 0		/
-	DATA cv_lo_d2  (to_air +2)/ 0		/
-	DATA cv_hi_d2  (to_air +2)/ 0		/
-	DATA cv_lo_d3  (to_air +2)/ 0		/
-	DATA cv_hi_d3  (to_air +2)/ 0		/
-	DATA cv_lo_d4  (to_air +2)/ 0		/
-	DATA cv_hi_d4  (to_air +2)/ 0		/
-	DATA cv_lo_d5  (to_air +2)/ 0		/
-	DATA cv_hi_d5  (to_air +2)/ 0		/
-	DATA cv_lo_d6  (to_air +2)/ 0		/
-	DATA cv_hi_d6  (to_air +2)/ 0		/
-
-	END
diff --git a/fer/dat/xcommand_data.F b/fer/dat/xcommand_data.F
index 9fc2f98..e1c681d 100644
--- a/fer/dat/xcommand_data.F
+++ b/fer/dat/xcommand_data.F
@@ -40,6 +40,16 @@
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 *
+* !!!!!!!!!!
+* Use caution when defining new commands:
+* 1- Ferret commands are matched to the first 4 characters only. Make sure
+*    new commands are unique to the first 4 characters.
+* 2- If you are tempted to reorder the lists of commands or subcommands, know 
+*    that users areprone to even more abbreviation. E.g. "can v" is used for 
+*    "cancel viewport" all over the place, and that happens ONLY because "VIEWPORT" 
+*    comes before "VARIABLE" in the subcommands for CANCEL.
+* !!!!!!!!!!
+*
 * revision 0.0 - 3/20/86
 * V200:   7/5/89 - added CANCEL VARIABLE
 *	  9/1/89 - added CANC DATA/ALL,SET VAR and SET DATA/many_options
@@ -227,6 +237,31 @@
 * v696 *acm*  6/15 PLOT/VS/GAPLOC to define seperate line segments on
 *                  PLOT/VS plots (LAS ticket 1597 and others)
 * v696 *acm* 11/15 SET VAR/UNITS instead of /UNIT, just for consistency
+* V697 *acm* 12/15 Correct typo: LIST/SINGLY was shown as /SINGLE
+* V698+ *acm* 2/16 Ticket 2362: Change /D= qualifier to /DATASET=
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
+*       3/16 *sh*  added PLOT/ALONG=axis
+* V698  4/16 *acm* New PLOT/SKIP= (and leave space for PyFerret PLOT/OPACITY=)
+* V698  4/16 *acm* Change it to PLOT/SKIPSYM= 
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
+* V7    6/16 *kms* Add reserved slots for PyFerret commands and qualifiers
+*                  to simplify future merges of Ferret into PyFerret
+
+*
+* !!!!!!!!!!
+* Use caution when defining new commands, qualifiers, or changing these data structures:
+* 1- Ferret commands are matched to the first 4 characters only. Make sure
+*    new commands are unique to the first 4 characters.
+* 2- If you are tempted to reorder the lists of commands or subcommands, know 
+*    that users often use even more abbreviation. E.g. "can v" is used for 
+*    "cancel viewport" in many scripts, and that works ONLY because "VIEWPORT" 
+*    comes before "VARIABLE" in the subcommands for CANCEL.
+* !!!!!!!!!!
+ 
+
 
         IMPLICIT NONE
 	include 'ferret.parm'
@@ -586,10 +621,11 @@
 	   DATA subcommands      (nsub_at2 + 9)	/ 'VARIABLE'	/
 	   DATA num_qualifs      (nsub_at2 + 9)	/ nqual2j	/
 	   DATA qualifier_pointer(nsub_at2 + 9)	/ nqual_at2j	/
-* SHOW VARIABLES /ALL /DATASET /DIAGNOSTIC /USER /OUTFILE/APPEND/CLOBBER
+* SHOW VARIABLES /ALL /DATASET  /USER /OUTFILE/APPEND/CLOBBER
+* /DIAGNOSTI removed 3/2016
 		DATA qualifiers  (nqual_at2j+0)	/ 'ALL '	/
 		DATA qualifiers  (nqual_at2j+1)	/ 'DATASET'	/
-		DATA qualifiers  (nqual_at2j+2)	/ 'DIAG'	/
+		DATA qualifiers  (nqual_at2j+2)	/ '****'	/
 		DATA qualifiers  (nqual_at2j+3)	/ 'USER'	/
 		DATA qualifiers  (nqual_at2j+4)	/ 'XML'		/
 		DATA qualifiers  (nqual_at2j+5)	/ 'OUTFILE'	/
@@ -604,8 +640,9 @@
 	   DATA subcommands      (nsub_at2 +10)	/ 'COMMANDS'	/
 	   DATA num_qualifs      (nsub_at2 +10)	/ nqual2k	/
 	   DATA qualifier_pointer(nsub_at2 +10)	/ nqual_at2k	/
-* SHOW COMMANDS /ALL
+* SHOW COMMANDS /ALL /BRIEF
 		DATA qualifiers  (nqual_at2k+0)	/ 'ALL '	/
+		DATA qualifiers  (nqual_at2k+1)	/ 'BRIEF'	/
 * SHOW MEMORY
 	   DATA subcommands      (nsub_at2 +11)	/ 'MEMORY'	/
 	   DATA num_qualifs      (nsub_at2 +11)	/ nqual2l	/
@@ -620,7 +657,7 @@
 	   DATA subcommands      (nsub_at2 +12)	/ 'GRID'	/
 	   DATA num_qualifs      (nsub_at2 +12)	/ nqual2m	/
 	   DATA qualifier_pointer(nsub_at2 +12)	/ nqual_at2m	/
-* SHOW GRID /ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/D/XML/OUTFILE/APPEND/CLOBBER 
+* SHOW GRID /ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/XML/OUTFILE/APPEND/CLOBBER 
 		DATA qualifiers  (nqual_at2m+0)	/ 'ALL '	/
 		DATA qualifiers  (nqual_at2m+1)	/ 'I   '	/
 		DATA qualifiers  (nqual_at2m+2)	/ 'J   '	/
@@ -709,11 +746,11 @@
                 DATA qualifiers  (nqual_at2v+0)	/ '****'	/
                 DATA qualifiers  (nqual_at2v+1)	/ '****'	/
 
-* SHOW QUERIES							 
+* SHOW QUERIES
 	   DATA subcommands      (nsub_at2 +22)	/ 'QUERIES'	/
 	   DATA num_qualifs      (nsub_at2 +22)	/ nqual2w	/
 	   DATA qualifier_pointer(nsub_at2 +22)	/ nqual_at2w	/
-* SHOW QUERIES / ****
+* SHOW QUERIES / ALL
 		DATA qualifiers  (nqual_at2w+0)	/ 'ALL'		/
 		DATA qualifiers  (nqual_at2w+1)	/ '****'	/
 		DATA qualifiers  (nqual_at2w+2)	/ '****'	/
@@ -826,12 +863,12 @@
 	   DATA num_qualifs      (nsub_at3 +12)	/ nqual3m	/
 	   DATA qualifier_pointer(nsub_at3 +12)	/ nqual_at3m	/
 		DATA qualifiers  (nqual_at3m+0)	/ '****'	/
-* CANCEL ATTRIBUTE /OUTPUT /DATA
+* CANCEL ATTRIBUTE /OUTPUT /DATASET
 	   DATA subcommands      (nsub_at3 +13)	/ 'ATTRIBUT'	/
 	   DATA num_qualifs      (nsub_at3 +13)	/ nqual3n	/
 	   DATA qualifier_pointer(nsub_at3 +13)	/ nqual_at3n	/
 		DATA qualifiers  (nqual_at3n+0)	/ 'OUTPUT'	/
-		DATA qualifiers  (nqual_at3n+1)	/ 'DATA'	/
+		DATA qualifiers  (nqual_at3n+1)	/ 'DATASET'	/
 * CANCEL REDIRECT
 	   DATA subcommands      (nsub_at3 +14)	/ 'REDIRECT'	/
 	   DATA num_qualifs      (nsub_at3 +14)	/ nqual3o	/
@@ -880,7 +917,7 @@
 	   DATA subcommands      (nsub_at4 + 0)	/ '    '	/
 	   DATA num_qualifs      (nsub_at4 + 0)	/ nqual4a	/
 	   DATA qualifier_pointer(nsub_at4 + 0)	/ nqual_at4a	/
-* CONTOUR/I/J/K/L/M/N/X/Y/Z/T/E/F/D/OVERLAY/SET_UP/FRAME/TRANSPOSE
+* CONTOUR/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/OVERLAY/SET_UP/FRAME/TRANSPOSE
 		DATA qualifiers  (nqual_at4a+0)	/ 'I'	/
 		DATA qualifiers  (nqual_at4a+1)	/ 'J'	/
 		DATA qualifiers  (nqual_at4a+2)	/ 'K'	/
@@ -896,7 +933,7 @@
 		DATA qualifiers  (nqual_at4a+12)/ 'OVERLAY'/	!/overlays
 		DATA qualifiers  (nqual_at4a+13)/ 'SET_UP'/	!/set_up
 		DATA qualifiers  (nqual_at4a+14)/ 'FRAME'/	!/frame
-		DATA qualifiers  (nqual_at4a+15)/ 'D'   /	!/data_set
+		DATA qualifiers  (nqual_at4a+15)/ 'DATASET'   /	!/data_set
 		DATA qualifiers  (nqual_at4a+16)/ 'TRANPOSE'/	!/transpose
 		DATA qualifiers  (nqual_at4a+17)/ 'FILL'/	!
 		DATA qualifiers  (nqual_at4a+18)/ 'LINE'/	!
@@ -926,6 +963,9 @@
 		DATA qualifiers  (nqual_at4a+42)/ 'MODULO'/	! modulo for curvilinear plots
 		DATA qualifiers  (nqual_at4a+43)/ 'THICKNES'/	! pen thickness
 		DATA qualifiers  (nqual_at4a+44)/ 'OPACITY'/	! overriding oapcity
+		DATA qualifiers  (nqual_at4a+45)/ 'DEGMINSEC'/	! Request deg/min or deg/min/sec axis labels
+		DATA qualifiers  (nqual_at4a+46)/ 'HALFSPAC'/	! Request a space before the E/W or N/S on axis labels
+		DATA qualifiers  (nqual_at4a+47)/ '****'/	! 
 
 * LIST	 - command # 5
 	DATA commands(5)			/ 'LIST'	/
@@ -949,10 +989,10 @@
 		DATA qualifiers  (nqual_at5a+9)	/ 'T'	/
 		DATA qualifiers  (nqual_at5a+10)/ 'E'	/
 		DATA qualifiers  (nqual_at5a+11)/ 'F'	/
-		DATA qualifiers  (nqual_at5a+12)/ 'D'	/
+		DATA qualifiers  (nqual_at5a+12)/ 'DATASET'	/
 		DATA qualifiers  (nqual_at5a+13)/ 'HEADING'/
 		DATA qualifiers  (nqual_at5a+14)/ 'NOHEAD'/
-		DATA qualifiers  (nqual_at5a+15)/ 'SINGLE'/
+		DATA qualifiers  (nqual_at5a+15)/ 'SINGLY'/
 		DATA qualifiers  (nqual_at5a+16)/ 'FILE'/
 		DATA qualifiers  (nqual_at5a+17)/ 'APPEND'/
 		DATA qualifiers  (nqual_at5a+18)/ 'ORDER'/
@@ -1007,7 +1047,7 @@
 	   DATA subcommands      (nsub_at6 + 0)	/ '    '	/
 	   DATA num_qualifs      (nsub_at6 + 0)	/ nqual6a	/
 	   DATA qualifier_pointer(nsub_at6 + 0)	/ nqual_at6a	/
-* PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/D/OVERLAY/SET_UP/FRAME/TRANSPOSE/VS
+* PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/OVERLAY/SET_UP/FRAME/TRANSPOSE/VS
 		DATA qualifiers  (nqual_at6a+0)	/ 'I'	/
 		DATA qualifiers  (nqual_at6a+1)	/ 'J'	/
 		DATA qualifiers  (nqual_at6a+2)	/ 'K'	/
@@ -1020,11 +1060,11 @@
 		DATA qualifiers  (nqual_at6a+9) / 'T'	/
 		DATA qualifiers  (nqual_at6a+10)/ 'E'	/
 		DATA qualifiers  (nqual_at6a+11)/ 'F'	/
-		DATA qualifiers  (nqual_at6a+12)/ '****'/
+		DATA qualifiers  (nqual_at6a+12)/ 'ALONG'/	!/along
 		DATA qualifiers  (nqual_at6a+13)/ 'OVERLAY'/	!/overlays
 		DATA qualifiers  (nqual_at6a+14)/ 'SET_UP'/	!/set_up
 		DATA qualifiers  (nqual_at6a+15)/ 'FRAME'/	!/frame
-		DATA qualifiers  (nqual_at6a+16)/ 'D'   /	!/data_set
+		DATA qualifiers  (nqual_at6a+16)/ 'DATASET'   /	!/data_set
 		DATA qualifiers  (nqual_at6a+17)/ 'TRANPOSE'/	!/transpose
 		DATA qualifiers  (nqual_at6a+18)/ 'VS  '/	!/versus
 		DATA qualifiers  (nqual_at6a+19)/ 'SYMBOL'/	!/symbol
@@ -1055,8 +1095,11 @@
 		DATA qualifiers  (nqual_at6a+44)/ 'PALETTE'/	! 
 		DATA qualifiers  (nqual_at6a+45)/ 'FAST'/	! style for Ribbon plot
 		DATA qualifiers  (nqual_at6a+46)/ 'MISSING'/	! For missing-dat in ribbon plot
-		DATA qualifiers  (nqual_at6a+47)/ 'GAPLOC'/	! A variable marking gaps to insert in PLOT/VS
-		DATA qualifiers  (nqual_at6a+48)/ 'OPACITY'/	! overriding opacity
+		DATA qualifiers  (nqual_at6a+47)/ 'OPACITY'/	! overriding opacity
+		DATA qualifiers  (nqual_at6a+48)/ 'GAPLOC'/     ! A variable marking gaps to insert in PLOT/VS
+		DATA qualifiers  (nqual_at6a+49)/ 'SKIPSYM'/	! Control for symbol decimation
+		DATA qualifiers  (nqual_at6a+50)/ 'DEGMINSEC'/	! Request deg/min or deg/min/sec axis labels
+		DATA qualifiers  (nqual_at6a+51)/ 'HALFSPAC'/	! Request a space before the E/W or N/S on axis labels
 
 * GO	 - command # 7
 	DATA commands(7)			/ 'GO  '	/
@@ -1112,7 +1155,7 @@
 		DATA qualifiers  (nqual_at9a+11)/ 'T'	/
 		DATA qualifiers  (nqual_at9a+12)/ 'E'	/
 		DATA qualifiers  (nqual_at9a+13)/ 'F'	/
-		DATA qualifiers  (nqual_at9a+14)/ 'D'	/
+		DATA qualifiers  (nqual_at9a+14)/ 'DATASET'	/
 		DATA qualifiers  (nqual_at9a+15)/ 'NAME'/
 
 * DEFINE - command # 10
@@ -1186,7 +1229,7 @@
 	   DATA subcommands      (nsub_at10 + 4)/ 'AXIS'	/
 	   DATA num_qualifs      (nsub_at10 + 4)/ nqual10e	/
 	   DATA qualifier_pointer(nsub_at10 + 4)/ nqual_at10e	/
-* DEFINE AXIS /X/Y/Z/T/E/F /FILE /UNITS /QUIET ...
+* DEFINE AXIS /X/Y/Z/T/E/F /FILE /UNITS /QUIET /LIKE ...
 		DATA qualifiers  (nqual_at10e+ 0)/ 'X'	  /
 		DATA qualifiers  (nqual_at10e+ 1)/ 'Y'	  /
 		DATA qualifiers  (nqual_at10e+ 2)/ 'Z'	  /
@@ -1206,7 +1249,7 @@
 		DATA qualifiers  (nqual_at10e+ 16)/ 'BOUNDS' /
 		DATA qualifiers  (nqual_at10e+ 17)/ 'QUIET' /
 		DATA qualifiers  (nqual_at10e+ 18)/ '****' /
-		DATA qualifiers  (nqual_at10e+ 19)/ '****' /
+		DATA qualifiers  (nqual_at10e+ 19)/ 'LIKE' /
 * DEFINE VIEW
 	   DATA subcommands      (nsub_at10 + 5)/ 'VIEWPORT'	/
 	   DATA num_qualifs      (nsub_at10 + 5)/ nqual10f	/
@@ -1238,8 +1281,8 @@
 	   DATA subcommands      (nsub_at10 + 8)/ 'ATTRIBUT'	/
 	   DATA num_qualifs      (nsub_at10 + 8)/ nqual10i	/
 	   DATA qualifier_pointer(nsub_at10 + 8)/ nqual_at10i	/
-* DEFINE ATTRIBUTE /D /TYPE /OUTPUT /QUIET 
-		DATA qualifiers  (nqual_at10i+ 0)/ 'D' /
+* DEFINE ATTRIBUTE /DATASET /TYPE /OUTPUT /QUIET 
+		DATA qualifiers  (nqual_at10i+ 0)/ 'DATASET' /
 		DATA qualifiers  (nqual_at10i+ 1)/ 'TYPE' /
 		DATA qualifiers  (nqual_at10i+ 2)/ 'OUTPUT' /
 		DATA qualifiers  (nqual_at10i+ 3)/ 'QUIET' /
@@ -1259,7 +1302,7 @@
 		DATA qualifiers  (nqual_at10k+ 1)/ '****' / ! reserved for x
 		DATA qualifiers  (nqual_at10k+ 2)/ '****' / ! y
 		DATA qualifiers  (nqual_at10k+ 3)/ '****' / ! z
-		DATA qualifiers  (nqual_at10k+ 4)/ '****' / ! t
+		DATA qualifiers  (nqual_at10k+ 4)/ 'T'    / ! t
 		DATA qualifiers  (nqual_at10k+ 5)/ 'E'    / ! e
 		DATA qualifiers  (nqual_at10k+ 6)/ 'F'    / ! f
 		DATA qualifiers  (nqual_at10k+ 7)/ 'TITLE' /
@@ -1327,7 +1370,7 @@
 	   DATA subcommands      (nsub_at13 + 0)/ '    '	/
 	   DATA num_qualifs      (nsub_at13 + 0)/ nqual13a	/
 	   DATA qualifier_pointer(nsub_at13 + 0)/ nqual_at13a	/
-* VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/D/OVERLAY/SET_UP/FRAME/TRANSPOSE
+* VECTOR/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/OVERLAY/SET_UP/FRAME/TRANSPOSE
 		DATA qualifiers  (nqual_at13a+0)/ 'I'	/
 		DATA qualifiers  (nqual_at13a+1)/ 'J'	/
 		DATA qualifiers  (nqual_at13a+2)/ 'K'	/
@@ -1343,7 +1386,7 @@
 		DATA qualifiers  (nqual_at13a+12)/ 'OVERLAY'/	!/overlays
 		DATA qualifiers  (nqual_at13a+13)/ 'SET_UP'/	!/set_up
 		DATA qualifiers  (nqual_at13a+14)/ 'FRAME'/	!/frame
-		DATA qualifiers  (nqual_at13a+15)/ 'D'   /	!/data_set
+		DATA qualifiers  (nqual_at13a+15)/ 'DATASET' /	!/data_set
 		DATA qualifiers  (nqual_at13a+16)/ 'TRANPOSE'/	!/transpose
 		DATA qualifiers  (nqual_at13a+17)/ '****'/	!
 		DATA qualifiers  (nqual_at13a+18)/ 'ASPECT'/	!/aspect
@@ -1444,7 +1487,7 @@
 	   DATA subcommands      (nsub_at17 + 0)	/ '    '	/
 	   DATA num_qualifs      (nsub_at17 + 0)	/ nqual17a	/
 	   DATA qualifier_pointer(nsub_at17 + 0)	/ nqual_at17a	/
-* STAT /I/J/K/L/M/N/X/Y/Z/T/E/F/D/G
+* STAT /I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/G
 		DATA qualifiers  (nqual_at17a+0)	/ 'BRIEF'/
 		DATA qualifiers  (nqual_at17a+1)	/ '****'/
 		DATA qualifiers  (nqual_at17a+2)	/ 'I'	/
@@ -1459,7 +1502,7 @@
 		DATA qualifiers  (nqual_at17a+11)	/ 'T'	/
 		DATA qualifiers  (nqual_at17a+12)	/ 'E'	/
 		DATA qualifiers  (nqual_at17a+13)	/ 'F'	/
-		DATA qualifiers  (nqual_at17a+14)	/ 'D'	/
+		DATA qualifiers  (nqual_at17a+14)	/ 'DATASET'	/
 		DATA qualifiers  (nqual_at17a+15)	/ '****'/
 
 * SHADE - command # 18
@@ -1471,7 +1514,7 @@
 	   DATA subcommands      (nsub_at18 + 0)	/ '    '	/
 	   DATA num_qualifs      (nsub_at18 + 0)	/ nqual18a	/
 	   DATA qualifier_pointer(nsub_at18 + 0)	/ nqual_at18a	/
-* SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/D/OVERLAY/SET_UP/FRAME/TRANSPOSE/TRIM
+* SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/OVERLAY/SET_UP/FRAME/TRANSPOSE/TRIM
 		DATA qualifiers  (nqual_at18a+0)/ 'I'	/
 		DATA qualifiers  (nqual_at18a+1)/ 'J'	/
 		DATA qualifiers  (nqual_at18a+2)/ 'K'	/
@@ -1487,7 +1530,7 @@
 		DATA qualifiers  (nqual_at18a+12)/ 'OVERLAY'/	!/overlays
 		DATA qualifiers  (nqual_at18a+13)/ 'SET_UP'/	!/set_up
 		DATA qualifiers  (nqual_at18a+14)/ 'FRAME'/	!/frame
-		DATA qualifiers  (nqual_at18a+15)/ 'D'   /	!/data_set
+		DATA qualifiers  (nqual_at18a+15)/ 'DATASET'   /	!/data_set
 		DATA qualifiers  (nqual_at18a+16)/ 'TRANPOSE'/	!/transpose
 		DATA qualifiers  (nqual_at18a+17)/ 'TRIM'/	!/trim
 		DATA qualifiers  (nqual_at18a+18)/ 'LINE'/	!/lines
@@ -1509,7 +1552,8 @@
 		DATA qualifiers  (nqual_at18a+34)/ 'HLIMITS'/	! horiz
 		DATA qualifiers  (nqual_at18a+35)/ 'VLIMITS'/	! vertical
 		DATA qualifiers  (nqual_at18a+36)/ 'OPACITY'/	! overriding opacity
-		DATA qualifiers  (nqual_at18a+37)/ '****'/	! 
+		DATA qualifiers  (nqual_at18a+37)/ 'DEGMINSEC'/	! Request deg/min or deg/min/sec axis labels
+		DATA qualifiers  (nqual_at18a+38)/ 'HALFSPAC'/	! Request a space before the E/W or N/S on axis
 
 * SPAWN - command # 19
 	DATA commands(19)			/ 'SPAWN'	/
@@ -1542,7 +1586,7 @@
 		DATA qualifiers  (nqual_at20a+8)/ 'Y'		/
 		DATA qualifiers  (nqual_at20a+9)/ 'Z'		/
 		DATA qualifiers  (nqual_at20a+10)/ 'T'		/
-		DATA qualifiers  (nqual_at20a+11)/ 'D'		/
+		DATA qualifiers  (nqual_at20a+11)/ 'DATASET'		/
 		DATA qualifiers  (nqual_at20a+12)/ 'FILE'	/
 		DATA qualifiers  (nqual_at20a+13)/ 'FORMAT'	/
 
@@ -1555,7 +1599,7 @@
 	   DATA subcommands      (nsub_at21 + 0)	/ '    '	/
 	   DATA num_qualifs      (nsub_at21 + 0)	/ nqual21a	/
 	   DATA qualifier_pointer(nsub_at21 + 0)	/ nqual_at21a	/
-* WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/D/OVERLAY/SET_UP/FRAME/TRANSPOSE
+* WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/OVERLAY/SET_UP/FRAME/TRANSPOSE
 		DATA qualifiers  (nqual_at21a+0) / 'I'	/
 		DATA qualifiers  (nqual_at21a+1) / 'J'	/
 		DATA qualifiers  (nqual_at21a+2) / 'K'	/
@@ -1571,7 +1615,7 @@
 		DATA qualifiers  (nqual_at21a+12) / 'OVERLAY'/ 
 		DATA qualifiers  (nqual_at21a+13) / 'SET_UP'/  
 		DATA qualifiers  (nqual_at21a+14)/ 'FRAME'/
-		DATA qualifiers  (nqual_at21a+15)/ 'D'   /
+		DATA qualifiers  (nqual_at21a+15)/ 'DATASET'   /
 		DATA qualifiers  (nqual_at21a+16)/ 'VIEWPOIN'/
 		DATA qualifiers  (nqual_at21a+17)/ 'ZLIMITS'/
 		DATA qualifiers  (nqual_at21a+18)/ 'TRANPOSE'/  
@@ -1659,7 +1703,7 @@
 	   DATA subcommands      (nsub_at27 + 0)/ '    '	/
 	   DATA num_qualifs      (nsub_at27 + 0)/ nqual27a	/
 	   DATA qualifier_pointer(nsub_at27 + 0)/ nqual_at27a	/
-* POLYGON/I/J/K/L/M/N/X/Y/Z/T/E/F/D/OVERLAY/SET_UP/FRAME/TRANSPOSE/COORD_AX
+* POLYGON/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/OVERLAY/SET_UP/FRAME/TRANSPOSE/COORD_AX
 		DATA qualifiers  (nqual_at27a+0)/ 'I'	/
 		DATA qualifiers  (nqual_at27a+1)/ 'J'	/
 		DATA qualifiers  (nqual_at27a+2)/ 'K'	/
@@ -1675,7 +1719,7 @@
 		DATA qualifiers  (nqual_at27a+12)/ 'OVERLAY'/	!/overlays
 		DATA qualifiers  (nqual_at27a+13)/ 'SET_UP'/	!/set_up
 		DATA qualifiers  (nqual_at27a+14)/ 'FRAME'/	!/frame
-		DATA qualifiers  (nqual_at27a+15)/ 'D'   /	!/data_set
+		DATA qualifiers  (nqual_at27a+15)/ 'DATASET' /	!/data_set
 		DATA qualifiers  (nqual_at27a+16)/ 'TRANPOSE'/	!/transpose
 		DATA qualifiers  (nqual_at27a+17)/ 'COORD_AX'/	!/coord_ax
 		DATA qualifiers  (nqual_at27a+18)/ '****'/	!/unused
@@ -1826,14 +1870,17 @@
      .		alias(23)	/ 'DEFINE DATA/AGGREGAT/F' /
      .		alias_name(24)	/ 'VTREE' /,
      .		alias_len(24)	/ 13 /,
-     .		alias(24)	/ 'SHOW VAR/TREE' /
+     .		alias(24)	/ 'SHOW VAR/TREE' /,
+     .		alias_name(25)	/ 'TSERIES' /,
+     .		alias_len(25)	/ 22 /,
+     .		alias(25)	/ 'DEFINE DATA/AGGREGAT/T' /
 
         DATA
      .		(alias_name(i),i=num_predefined_alias+1,150)
-     .                   / 126*unspecified_name4 /,
-     .		(alias_len(i),i=num_predefined_alias+1,150) / 126*4 /,
+     .                   / 125*unspecified_name4 /,
+     .		(alias_len(i),i=num_predefined_alias+1,150) / 125*4 /,
      .		(alias(i),i=num_predefined_alias+1,150)
-     .                   / 126*unspecified_name4 /
+     .                   / 125*unspecified_name4 /
 
 
 	DATA queries(1) / 'STATUS' /,
diff --git a/fer/dat/xdset_parms_data.F b/fer/dat/xdset_parms_data.F
deleted file mode 100644
index 1f872fb..0000000
--- a/fer/dat/xdset_parms_data.F
+++ /dev/null
@@ -1,77 +0,0 @@
-	BLOCK DATA XDSET_PARMS_DATA
-
-*
-*
-*  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. 
-*
-*
-* parameters differentiating characteristics of individual data sets
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 4/5/88
-* revision 0.1 - 7/2/88 - generalized Levitus_clim --> dp_clim_air_sst
-*			- added Am_factor
-* revision 0.2 - 4/19/89- pre-initialize only the LEV air temp set.  Other
-*			  3-letter codes to be pulled from the 205 data base
-*			  when SET DATA_SET is given
-
-        IMPLICIT NONE
-	include	'ferret.parm'
-	include	'tmap_dims.parm'
-	include	'xdset_parms.cmn'
-
-* description of dp_ variables used by COX and PHILANDER output sets for air
-* temperature sets:
-*	dp_const_air_sst	- (LOGICAL) is the airt-sst diff. a constant ?
-*		if yes (constant)
-*	dp_delta_air_sst	- (REAL) contains the airt-sst difference
-*		if no (air temp supplied by another data set)
-*	dp_clim_air_sst		- (INTEGER) points a COX or PHILANDER output
-*				  set to its corresponding air temp set
-*	dp_airt_name		- (STRING) has 3-letter code for air temp set
-*	dp_airt_dset		- (INTEER) has data set # for the air temp dset 
-
-	DATA	dp_clim_air_sst / maxdsets*unspecified_int4 /
-
-	DATA	dp_airt_name( 1 ) / 'LEV' /,
-     .		dp_airt_name( 2 ) / unspecified_name4 /,
-     .		dp_airt_name( 3 ) / unspecified_name4 /,
-     .		dp_airt_name( 4 ) / unspecified_name4 /,
-     .		dp_airt_name( 5 ) / unspecified_name4 /
-
-	DATA	dp_airt_dset / max_airt_clim * unspecified_int4 /
-
-	END
diff --git a/fer/dat/xplot_setup_data.F b/fer/dat/xplot_setup_data.F
index 4bb973f..02e0161 100644
--- a/fer/dat/xplot_setup_data.F
+++ b/fer/dat/xplot_setup_data.F
@@ -41,7 +41,8 @@
 * V200: 12/21/89
 * V540: *sh* 9/01 - added xwhitelo, ywhitelo, ...
 * V63  *acm* 10/09 Changes for gfortran build
-*      *kms*  2/12 Include tmap_dims.parm for nferdims needed by xplot_setup.cmn
+*      *kms*  2/12 Include tmap_dims.parm for nferdims used by xplot_setup.cmn
+* V698 *sh* 3/16 - adjusted key_xorigin and key_ywhite_space
 * PyFr *kms*  7/13 Moved key_xspace0, key_yspace0, key_labht0, key_xorigin, 
 *                  key_yorigin, key_xwhite_space, key_ywhite_space, 
 *                  key_line_frac, ovkey_space, ovkey_yspace, ovkey_labht,
diff --git a/fer/dat/xprog_state_data.F b/fer/dat/xprog_state_data.F
index a4a861e..f71beba 100644
--- a/fer/dat/xprog_state_data.F
+++ b/fer/dat/xprog_state_data.F
@@ -121,6 +121,7 @@
 *                    precision of E and F labeling. The values are equivalenced to 
 *                    ax_dec_pt(MODE_6D_LAB still turns on and off the listing of all 
 *                    6 dimensions on SHOW commands.)
+* V698  4/16 *acm* For ticket 2399: Apply MODE CALENDAR settings to F axes too
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -292,7 +293,7 @@
      .		(mode_arg  ( pmode_e_lab     ,i), i=1,mode_stack_size)
      .				/ mode_stack_size*1 / 
      .		(mode_arg  ( pmode_f_lab     ,i), i=1,mode_stack_size)
-     .				/ mode_stack_size*1 / 
+     .				/ mode_stack_size*-5 /  ! dd-mmm-yyyy:hh:mm
 	DATA	(mode_arg  ( pmode_font_ascii  ,i), i=1,mode_stack_size)
      .				/ mode_stack_size*unspecified_int4 /,
      .		(mode_arg  ( pmode_segment     ,i), i=1,mode_stack_size)
diff --git a/fer/dat/xrevision_data.F b/fer/dat/xrevision_data.F
index 3e9ef7f..d73d48b 100644
--- a/fer/dat/xrevision_data.F
+++ b/fer/dat/xrevision_data.F
@@ -127,16 +127,16 @@
 * v6.95    release for LAS8.4
 * v6.951   New development
 * v6.96    little release with @BIN @NBIN regrid; high-res time plots
+* v6.961   To GFDL for fix to #2334
+* v6.963   To GFDL in a PyFerret update, install on our servers
+* v6.97 (working version)
+* v7.0     7/2016
 
         IMPLICIT NONE
 	include	'xrevision.cmn'
 
-	DATA program_name	/ 'FERRET' /
-	DATA len_program_name	/  6       /
-	DATA revision_level	/  6.96    /
+	DATA program_name	/ 'PyFERRET' /
+	DATA len_program_name	/  8       /
+	DATA revision_level	/  7.0    /
 
-! 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
-!	DATA progname_mod	/ '(GUI BETA v1)' / ! ==> xrevision_type_data.F
-!	DATA len_progname_mod	/  13       /	    ! ==> xrevision_type_data.F
 	END
diff --git a/fer/dat/xtext_info_data.F b/fer/dat/xtext_info_data.F
index ee74883..5a1354d 100644
--- a/fer/dat/xtext_info_data.F
+++ b/fer/dat/xtext_info_data.F
@@ -54,6 +54,7 @@
 *			  because it needed a preprocessor.
 *            2/12 *kms* Add E, F, M, N, ENSEMBLE, and FORECAST;
 *                       include tmap_dims.parm for nferdims needed by xtext_info.cmn
+* V698  *acm* 5/16 Ticket 2405: MODE CALENDAR:auto
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -106,13 +107,15 @@
      .		date_labels ( 3 )	/ 'days'    /,
      .		date_labels ( 4 )	/ 'hours'   /,
      .		date_labels ( 5 )	/ 'minutes' /,
-     .		date_labels ( 6 )	/ 'seconds' /
+     .		date_labels ( 6 )	/ 'seconds' /,
+     .		date_labels ( 7 )	/ 'auto' /
 	DATA	date_str_len( 1 )	/  4 /,		! yyyy
      .		date_str_len( 2 )	/  8 /,		! mmm-yyyy
      .		date_str_len( 3 )	/ 11 /,		! dd-mmm-yyyy
      .		date_str_len( 4 )	/ 14 /,		! dd-mmm-yyyy:hh
      .		date_str_len( 5 )	/ 17 /,		! dd-mmm-yyyy:hh:mm
      .		date_str_len( 6 )	/ 20 /		! dd-mmm-yyyy:hh:mm:ss
+     .		date_str_len( 7 )	/ 20 /		! dd-mmm-yyyy:hh:mm:ss
 
 * computed variable units
 	DATA	unit_text( punot_app	)/ ' ' /,		! N/A
diff --git a/fer/doo/do_aux_var_regrid_2d_tf.F b/fer/doo/do_aux_var_regrid_2d_tf.F
index bf4c515..dd9e86e 100644
--- a/fer/doo/do_aux_var_regrid_2d_tf.F
+++ b/fer/doo/do_aux_var_regrid_2d_tf.F
@@ -48,6 +48,8 @@
 * This code copied/modified from do_aux_var_regrid_1d_z.F
 
 * V695+ 3/15 *sh*
+* V698  3/16 *sh* - compute f_delta from the time2d field rather than F axis
+*                   allowing the F axis to be redefined
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -121,8 +123,12 @@
 
 * f_delta is the time lag between forecasts.
 * It should be consistent in tsrc and should match the delta of the F lag axis
-	f_axis = CGRID_AXIS(f_dim, dst_cx)
-	f_delta = line_delta(f_axis)
+! 3/16 -- do not get it from the F axis, since the user may alter that
+!	f_axis = CGRID_AXIS(f_dim, dst_cx)
+!	f_delta = line_delta(f_axis)
+	f_delta = (tsrc(ip,jp,kp,m1lot,mp,m1hif)
+     .	         - tsrc(ip,jp,kp,m1lot,mp,m1lof))
+     .		                   / (m1hif-m1lof+1)
 
 * extract the time step values of the destination
 	DO l = ldst_min, ldst_max
@@ -134,16 +140,11 @@
      . .OR. tdst(ldst_max) .LT. tsrc(ip,jp,kp,lsrc_min,mp,nsrc_min) )
      .								RETURN
 * number of time steps before the start of the next forecast
-	IF (m1hit .GT. m1lot ) THEN
+	t_delta = (tsrc(ip,jp,kp,m1hit,mp,m1lof)
+     .	         - tsrc(ip,jp,kp,m1lot,mp,m1lof))
+     .		                   / (m1hit-m1lot+1)
 * ... for irregular monthly time steps, t_delta is approximate
-	   t_delta = (tsrc(ip,jp,kp,lsrc_max,mp,nsrc_min)
-     .	            - tsrc(ip,jp,kp,lsrc_min,mp,nsrc_min))
-     .		                   / (lsrc_max-lsrc_min+1)
-	   l_per_n = INT(f_delta/t_delta + 0.5)
-	ELSE
-	   t_delta = 1.0   ! irrelevant
-	   l_per_n = 1
-	ENDIF
+	l_per_n = INT(f_delta/t_delta + 0.5)
 
 * compute the delta increment for each axis
 * this allows "promotion" of degenerate axes
diff --git a/fer/doo/do_fill_interp.F b/fer/doo/do_fill_interp.F
index c16af71..5e42272 100644
--- a/fer/doo/do_fill_interp.F
+++ b/fer/doo/do_fill_interp.F
@@ -48,6 +48,8 @@
 * V550 *sh* 8/2/02 - support for modulo lengths. ensure that filling 
 *		    does not operate acros the subspan modulo void point
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V698 *acm* 5/16 Fix ticket 2366, the logic that tests for crossing the 
+*                  modulo subspan void point was incorrect
 
         IMPLICIT NONE
 	include 'tmap_dims.parm'
@@ -110,6 +112,7 @@
 
 * is it a modulo axis with sufficient component span provided to wrap around
 	line = CGRID_AXIS(idim, com_cx)
+	axdim = 1
 	IF ( line .EQ. mnormal .OR. line .EQ. munknown ) THEN
 	   modulo_axis = .FALSE.
 	ELSE
@@ -119,7 +122,7 @@
 	ENDIF
 	IF ( modulo_axis ) axlen = TM_MODULO_AXLEN(line)
 
-* it his a subspan modulo axis?
+* it this a subspan modulo axis?
 	has_mod_void = TM_ITS_SUBSPAN_MODULO(line)
 	IF (has_mod_void) THEN
 	   has_mod_void = lo_com.LE.0 .OR. hi_com.GE.axdim
@@ -222,10 +225,13 @@
      .                         +   lo_val*(hi_coord-coord) )
      .                         / (hi_coord - lo_coord)
 * ... bad if this interp crosses or lands on the void of a subspan modulo axis 
+*     The multiply tests whether the low and high indices are on the same branch 
+
 	      IF (has_mod_void) THEN
-	        IF ( (lo_index/axdim .NE. hi_index/axdim)
-     .	             .OR. (MOD(i,axdim) .EQ. 0) )
-     .            res(i,j,k,l,m,n) = bad_res
+	        IF ( MOD(lo_index, axdim)*MOD(hi_index, axdim) .LT.0
+     .	             .OR. (MOD(i,axdim) .EQ. 0) ) THEN
+                    res(i,j,k,l,m,n) = bad_res
+	         ENDIF
 	      ENDIF
  110	   CONTINUE
 
diff --git a/fer/doo/do_internal_gc_fcn.F b/fer/doo/do_internal_gc_fcn.F
index c63a0d8..ae187ee 100644
--- a/fer/doo/do_internal_gc_fcn.F
+++ b/fer/doo/do_internal_gc_fcn.F
@@ -98,6 +98,8 @@
 * V68   5/12 *acm* Add ESEQUENCE, FSEQUENCE, SAMPLEM, SAMPLEN
 * V693 10/14 *acm* ticket 2210: check for negative arguments to SUBSTRING
 
+* keep max_cmnd_len for SPAWN at 2048 while Ferret command buffer increases to 20480
+
         IMPLICIT NONE
         include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -681,7 +683,7 @@
      .              m1lof, m1hif,  com1, m1lox, m1loy, m1loz,
      .              m1lot, m1loe, m1lof, max_cmnd_len, slen)
         IF (slen .EQ. max_cmnd_len) CALL ERRMSG(ferr_invalid_command,
-     .       status, 'SPAWN command too long -- 500 char max', *5000)
+     .       status, 'SPAWN command too long -- 2048 char max', *5000)
 * ... execute the command and store the results
         CALL STORE_SYS_STRINGS(buff, res_cx, mres, 1, nnew, status)
         RETURN
diff --git a/fer/doo/regrid_comments.F b/fer/doo/regrid_comments.F
index d6f68b3..07df770 100644
--- a/fer/doo/regrid_comments.F
+++ b/fer/doo/regrid_comments.F
@@ -49,7 +49,7 @@
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V690 *sh* 1/14 document sigma and curvilinear aux var regridding
 * V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
-* V695+  3/15 *sh* special formatting of T-F plane FMRC regridding comments
+* V698  1/16 *sh* special formatting of T-F plane FMRC regridding comments
 
         IMPLICIT NONE
 	include	'tmap_dims.parm'
@@ -147,14 +147,15 @@
 
 	      IF (cx_regrid_trans(idim,cx) .EQ. pauxrgrd_fmrc ) THEN
 * ... comment about T-F axis reorganization for FMRC data sets:
-*          "reorganized on T using 2d TIME2D field"
+*          "time series view using 2d TIME2D field"
 	         IF (idim .EQ. t_dim) THEN
      	            REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
-     .                  'reorganized on T'
+     .                  'time series view'
 	            mlen = mlen + 16
 	         ELSEIF (idim.EQ. f_dim) THEN
-     	            REGRID_COMMENTS = REGRID_COMMENTS(:mlen-1) //
-     .                  'F'
+     	            REGRID_COMMENTS = REGRID_COMMENTS(:mlen) //
+     .                  'forecast visualization view'
+	            mlen = mlen + 27
 	         ENDIF
 	      ELSE
 
diff --git a/fer/efi/SOURCE_FILES b/fer/efi/SOURCE_FILES
index d24e4a4..56c6bea 100644
--- a/fer/efi/SOURCE_FILES
+++ b/fer/efi/SOURCE_FILES
@@ -1,6 +1,10 @@
 SRCS_F = \
 ave_scat2grid_t.F\
 bin_index_wt.F\
+bcompressi.F\
+bxcat.F\
+bxsequence.F\
+bxsequence_str.F\
 compressi.F\
 compressj.F\
 compressk.F\
@@ -112,6 +116,8 @@ sampleyz.F\
 scat2ddups.F\
 scat2grid_bin_xy.F\
 scat2grid_bin_xyt.F\
+scat2grid_bin_xyz.F\
+scat2grid_bin_xyzt.F\
 scat2grid_nbin_xy.F\
 scat2grid_nbin_xyt.F\
 scat2gridgauss_xt.F\
diff --git a/fer/efi/is_element_of.F b/fer/efi/bcompressi.F
similarity index 68%
copy from fer/efi/is_element_of.F
copy to fer/efi/bcompressi.F
index 928ae08..38d0471 100644
--- a/fer/efi/is_element_of.F
+++ b/fer/efi/bcompressi.F
@@ -1,5 +1,5 @@
 *
-* is_element_of.F
+* bcompressi.F
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -32,13 +32,12 @@
 *  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
-*
+* 
 * Ansley Manke
-* March 2003
+* Dec 2015
 *
-*  Return logical value (integer 1 or 0); If argument 1 takes on any of 
-*  the values of the second argument, return 1, else 0.
-
+* This function compresses data on X axis, ending with missing data. 
+* The result is on the same X axis as the input.
 *
 *
 * In this subroutine we provide information about
@@ -76,7 +75,7 @@
 *
 
 
-      SUBROUTINE is_element_of_init(id)
+      SUBROUTINE bcompressi_init(id)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -91,29 +90,24 @@
       CHARACTER*100 fcn_desc
 
       WRITE (fcn_desc, 10)
-   10 FORMAT ('Returns 1 if first argument contains any of the ',
-     .        'values in argument 2, else 0')
+   10 FORMAT ('Returns data, compressed along the original X axis: Missing ',
+     .        'points moved to the end.')
       CALL ef_set_desc(id, fcn_desc)
 
-      CALL ef_set_num_args(id, 2)
+      CALL ef_set_num_args(id, 1)
       CALL ef_set_has_vari_args(id, NO)
       CALL ef_set_axis_inheritance_6d(id,
-     .                                ABSTRACT, NORMAL,
-     .                                NORMAL,   NORMAL,
-     .                                NORMAL,   NORMAL)
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+
       CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
 
       arg = 1
-      CALL ef_set_arg_name(id, arg, 'VAR')
-      CALL ef_set_arg_desc(id, arg, 'data to test')
+      CALL ef_set_arg_name(id, arg, 'DAT')
+      CALL ef_set_arg_desc(id, arg, 'variable to compress in I')
       CALL ef_set_axis_influence_6d(id, arg,
-     .                              NO, NO, NO, NO, NO, NO)
-
-      arg = 2
-      CALL ef_set_arg_name(id, arg, 'VALUES')
-      CALL ef_set_arg_desc(id, arg, 'values to search for')
-      CALL ef_set_axis_influence_6d(id, arg,
-     .                              NO, NO, NO, NO, NO, NO)
+     .                              NO, YES, YES, YES, YES, YES)
 
 *                                                                     ^
 *                                                                     |
@@ -123,6 +117,7 @@
       RETURN 
       END
 
+
 *
 * In this subroutine we provide information about the lo and hi
 * limits associated with each abstract or custom axis.   The user 
@@ -133,7 +128,7 @@
 * hi_ss               hi subscript for an axis
 *
 
-      SUBROUTINE is_element_of_result_limits(id)
+      SUBROUTINE bcompressi_result_limits(id)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -144,13 +139,29 @@
 *                                           USER CONFIGURABLE PORTION |
 *                                                                     |
 *                                                                     V
+
+      INTEGER my_lo_l, my_hi_l
+
+      INTEGER arg
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+
+*
+*     Use utility functions to get context information about the arguments.
 *
 
-      INTEGER ivalue
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
-      ivalue = 1
-      CALL ef_set_axis_limits(id, X_AXIS, ivalue, ivalue)
+      my_lo_l = 1
+      my_hi_l = 1
 
+      arg = 1
+
+      my_hi_l = arg_hi_ss(X_AXIS,arg) - arg_lo_ss(X_AXIS,arg) + 1
+
+
+      CALL ef_set_axis_limits(id, X_AXIS, my_lo_l, my_hi_l)
 *                                                                     ^
 *                                                                     |
 *                                           USER CONFIGURABLE PORTION |
@@ -159,11 +170,10 @@
       RETURN 
       END
 
-
 *
 * In this subroutine we compute the result
 *
-      SUBROUTINE is_element_of_compute(id, arg_1, arg_2, result)
+      SUBROUTINE bcompressi_compute(id, arg_1, result)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -173,8 +183,6 @@
 
       REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz, 
      .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
-      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz, 
-     .           mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
 
       REAL result(memreslox:memreshix, memresloy:memreshiy, 
      .            memresloz:memreshiz, memreslot:memreshit,
@@ -182,7 +190,7 @@
 
 * After initialization, the 'res_' arrays contain indexing information 
 * for the result axes.  The 'arg_' arrays will contain the indexing 
-* information for each variable''s axes. 
+* information for each variable's axes. 
 
       INTEGER res_lo_ss(6),
      .        res_hi_ss(6),
@@ -193,69 +201,83 @@
 
       REAL bad_flag(EF_MAX_ARGS), bad_flag_result
 
+
 ***********************************************************************
 *                                           USER CONFIGURABLE PORTION |
 *                                                                     |
 *                                                                     V
 
+      INTEGER ndx, nsrt, nbad
       INTEGER i, j, k, l, m, n
       INTEGER i1, j1, k1, l1, m1, n1
-      INTEGER i2, j2, k2, l2, m2, n2
+
+*  Get subscript ranges
 
       CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
       CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
 
-C  Check for values matching arg2
 
-C  Returns a single value, so no incrementing result indices
-      i = res_lo_ss(X_AXIS)
-      j = res_lo_ss(Y_AXIS)
-      k = res_lo_ss(Z_AXIS)
-      l = res_lo_ss(T_AXIS)
-      m = res_lo_ss(E_AXIS)
-      n = res_lo_ss(F_AXIS)
+      n1 = arg_lo_ss(F_AXIS, ARG1)
+      DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
 
-      DO 100 n1=arg_lo_ss(F_AXIS,ARG1), arg_hi_ss(F_AXIS, ARG1)
-      DO 100 m1=arg_lo_ss(E_AXIS,ARG1), arg_hi_ss(E_AXIS, ARG1)
-      DO 100 l1=arg_lo_ss(T_AXIS,ARG1), arg_hi_ss(T_AXIS, ARG1)
-      DO 100 k1=arg_lo_ss(Z_AXIS,ARG1), arg_hi_ss(Z_AXIS, ARG1)
-      DO 100 j1=arg_lo_ss(Y_AXIS,ARG1), arg_hi_ss(Y_AXIS, ARG1)
-      DO 100 i1=arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS, ARG1)
+         m1 = arg_lo_ss(E_AXIS, ARG1)
+         DO 500 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
 
-         IF ( arg_1(i1,j1,k1,l1,m1,n1) .NE. bad_flag(1) ) THEN
+            l1 = arg_lo_ss(T_AXIS, ARG1)
+            DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
 
-            DO 200 n2=arg_lo_ss(F_AXIS,ARG2), arg_hi_ss(F_AXIS, ARG2)
-            DO 200 m2=arg_lo_ss(E_AXIS,ARG2), arg_hi_ss(E_AXIS, ARG2)
-            DO 200 l2=arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS, ARG2)
-            DO 200 k2=arg_lo_ss(Z_AXIS,ARG2), arg_hi_ss(Z_AXIS, ARG2)
-            DO 200 j2=arg_lo_ss(Y_AXIS,ARG2), arg_hi_ss(Y_AXIS, ARG2)
-            DO 200 i2=arg_lo_ss(X_AXIS,ARG2), arg_hi_ss(X_AXIS, ARG2)
+               k1 = arg_lo_ss(Z_AXIS, ARG1)
+               DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
 
-               IF ( arg_2(i2,j2,k2,l2,m2,n1) .NE. bad_flag(2) ) THEN
+                  j1 = arg_lo_ss(Y_AXIS, ARG1)
+                  DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
 
-                  IF ( arg_1(i1,j1,k1,l1,m1,n1) .EQ.
-     .                 arg_2(i2,j2,k2,l2,m2,n2) ) THEN
-C A match was found; done
-                     result(i,j,k,l,m,n) = 1.
-                     RETURN
-                  ENDIF
+                     nsrt = 0
+                     nbad = 0
 
-               ENDIF
+                     i1 = arg_lo_ss(X_AXIS,ARG1)
+                     DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
 
- 200        CONTINUE
+                        IF ( arg_1(i1,j1,k1,l1,m1,n1)
+     .                               .NE. bad_flag(1) ) THEN
+                           nsrt = nsrt + 1
+                           result(nsrt,j,k,l,m,n) =
+     .                               arg_1(i1,j1,k1,l1,m1,n1)
+                        ELSE
+                           nbad = nbad + 1
+                        ENDIF
 
-         ENDIF
+                        i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100                 CONTINUE
 
- 100  CONTINUE
+*
+* bcompress argument, putting bad data at the end.
+*
+                     DO 150 ndx = 1, nbad
+                        nsrt = nsrt + 1
+                        result(nsrt,j,k,l,m,n) = bad_flag_result
+ 150                 CONTINUE
 
-C No match found
-      result(i,j,k,l,m,n) = 0.
-      RETURN
+                     j1 = j1 + arg_incr(Y_AXIS, ARG1)
+ 200              CONTINUE
 
-      END
+                  k1 = k1 + arg_incr(Z_AXIS, ARG1)
+ 300           CONTINUE
+
+               l1 = l1 + arg_incr(T_AXIS, ARG1)
+ 400        CONTINUE
+
+            m1 = m1 + arg_incr(E_AXIS, ARG1)
+ 500     CONTINUE
+
+         n1 = n1 + arg_incr(F_AXIS, ARG1)
+ 600  CONTINUE
 
 *                                                                     ^
 *                                                                     |
 *                                           USER CONFIGURABLE PORTION |
 ***********************************************************************
+
+      RETURN 
+      END
diff --git a/fer/efi/bxcat.F b/fer/efi/bxcat.F
new file mode 100644
index 0000000..c988abe
--- /dev/null
+++ b/fer/efi/bxcat.F
@@ -0,0 +1,326 @@
+*
+* bxcat.F
+*
+* Ansley Manke
+* Dec 2015
+* 
+*
+* This function returns the X values of the two variables,
+* concatenated into one long list on a custom simple x axis. Other 
+* axes are unchanged.
+*
+*
+* In this subroutine we provide information about
+* the function.  The user configurable information 
+* consists of the following:
+*
+* descr              Text description of the function
+*
+* num_args           Required number of arguments
+*
+* axis_inheritance   Type of axis for the result
+*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+*                       CUSTOM          - user defined axis
+*                       IMPLIED_BY_ARGS - same axis as the incoming argument
+*                       NORMAL          - the result is normal to this axis
+*                       ABSTRACT        - an axis which only has index values
+*
+* piecemeal_ok       For memory optimization:
+*                       axes where calculation may be performed piecemeal
+*                       ( YES, NO )
+* 
+*
+* For each argument we provide the following information:
+*
+* name               Text name for an argument
+*
+* unit               Text units for an argument
+*
+* desc               Text description of an argument
+*
+* axis_influence     Are this argument''s axes the same as the result grid?
+*                       ( YES, NO )
+*
+* axis_extend       How much does Ferret need to extend arg limits relative to result 
+*
+
+
+      SUBROUTINE bxcat_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      CHARACTER*100 descrip
+
+      WRITE (descrip, 100)
+  100 FORMAT ('Concatenates the X values of two variables into one ',
+     .        'list on an indexed X axis')
+      CALL ef_set_desc(id, descrip)
+
+* Tell Ferret to run the following instead, if the arguments are strings.
+      CALL ef_set_alt_fcn_name(id, 'bxcat_STR')
+
+      CALL ef_set_num_args(id, 2)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                CUSTOM,          IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'A')
+      CALL ef_set_arg_unit(id, arg, ' ')
+      CALL ef_set_arg_desc(id, arg, 'First variable to concatenate')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              NO, YES, YES, YES, YES, YES)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'B')
+      CALL ef_set_arg_unit(id, arg, ' ')
+      CALL ef_set_arg_desc(id, arg, 'Second variable to concatenate')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              NO, YES, YES, YES, YES, YES)
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN
+      END
+
+      
+ 
+      SUBROUTINE bxcat_custom_axes(id)
+ 
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+ 
+      INTEGER id
+      REAL size
+
+       INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .         arg_hi_ss(6,EF_MAX_ARGS),
+     .         arg_incr (6,EF_MAX_ARGS)
+     
+       CHARACTER*16 axname(6), axunits(6)
+       LOGICAL bkw1(6), mod1(6), reg1(6)
+*
+*     Use utility functions to get context information about the arguments.
+*
+       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+       
+*  If the variable is just a raw constant, then it's an all ABSTRACT grid
+*  and the axis length is 99999999.
+
+       CALL ef_get_axis_info_6d(id, ARG2, axname, axunits,
+     .                         bkw1, mod1, reg1)
+       IF (arg_hi_ss(X_AXIS,ARG1) .GE. 99999999 ) THEN  ! see abst. axis size in get_memory.F
+          CALL ef_get_axis_info_6d(id, ARG1, axname, axunits,
+     .                         bkw1, mod1, reg1)
+          IF (axname(1)(1:8) .EQ. 'ABSTRACT') arg_hi_ss(X_AXIS,ARG1) = 1
+       ENDIF
+ 
+       IF (arg_hi_ss(X_AXIS,ARG2) .GE. 99999999 ) THEN  ! see abst. axis size in get_memory.F
+          CALL ef_get_axis_info_6d(id, ARG2, axname, axunits,
+     .                         bkw1, mod1, reg1)
+          IF (axname(2)(1:8) .EQ. 'ABSTRACT') arg_hi_ss(X_AXIS,ARG2) = 1
+       ENDIF
+
+* output X axis size
+
+      size = (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1) +
+     .       (arg_hi_ss(X_AXIS,ARG2) - arg_lo_ss(X_AXIS,ARG2) + 1)
+
+* If non-blank units, the framework calls this a LONGITUDE axis... Fix this.
+      CALL ef_set_custom_axis(id, X_AXIS, 1.0, size, 1.0, 'i', NO)
+ 
+*                                                                     ^
+*                                                                     |
+*                                           USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN 
+      END
+ 
+
+
+
+      SUBROUTINE bxcat_result_limits(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+      INTEGER nx
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      nx = (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1) +
+     .     (arg_hi_ss(X_AXIS,ARG2) - arg_lo_ss(X_AXIS,ARG2) + 1)
+
+      CALL ef_set_axis_limits(id, X_AXIS, 1, nx)
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN
+      END
+
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE bxcat_compute(id, arg_1, arg_2, result)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+     .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+      REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
+     .           mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy,
+     .            memresloz:memreshiz, memreslot:memreshit,
+     .            memresloe:memreshie, memreslof:memreshif)
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes.  The 'arg_' arrays will contain the indexing
+* information for each variable''s axes.
+
+      INTEGER res_lo_ss(6),
+     .        res_hi_ss(6),
+     .        res_incr (6)
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1
+      INTEGER i2, j2, k2, l2, m2, n2
+
+      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+      i = res_lo_ss(X_AXIS)
+      DO 100 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
+
+         n = res_lo_ss(F_AXIS)
+         DO 600 n1 = arg_lo_ss(F_AXIS,ARG1), arg_hi_ss(F_AXIS,ARG1)
+
+         m = res_lo_ss(E_AXIS)
+         DO 500 m1 = arg_lo_ss(E_AXIS,ARG1), arg_hi_ss(E_AXIS,ARG1)
+
+         l = res_lo_ss(T_AXIS)
+         DO 400 l1 = arg_lo_ss(T_AXIS,ARG1), arg_hi_ss(T_AXIS,ARG1)
+
+         k = res_lo_ss(Z_AXIS)
+         DO 300 k1 = arg_lo_ss(Z_AXIS,ARG1), arg_hi_ss(Z_AXIS,ARG1)
+
+         j = res_lo_ss(Y_AXIS)
+         DO 200 j1 = arg_lo_ss(Y_AXIS,ARG1), arg_hi_ss(Y_AXIS,ARG1)
+
+            IF ( arg_1(i1,j1,k1,l1,m1,n1) .EQ. bad_flag(ARG1) ) THEN
+               result(i,j,k,l,m,n) = bad_flag_result
+            ELSE
+               result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l1,m1,n1)
+            ENDIF
+
+            j = j + res_incr(Y_AXIS)
+ 200     CONTINUE
+
+            k = k + res_incr(Z_AXIS)
+ 300     CONTINUE
+
+            l = l + res_incr(T_AXIS)
+ 400     CONTINUE
+
+            m = m + res_incr(E_AXIS)
+ 500     CONTINUE
+
+            n = n + res_incr(F_AXIS)
+ 600     CONTINUE
+
+         i = i + res_incr(X_AXIS)
+ 100  CONTINUE
+
+* concatenate in X - dont restart count of index I
+
+      DO 110 i2 = arg_lo_ss(X_AXIS,ARG2), arg_hi_ss(X_AXIS,ARG2)
+
+         n = res_lo_ss(F_AXIS)
+         DO 610 n2 = arg_lo_ss(F_AXIS,ARG2), arg_hi_ss(F_AXIS,ARG2)
+
+         m = res_lo_ss(E_AXIS)
+         DO 510 m2 = arg_lo_ss(E_AXIS,ARG2), arg_hi_ss(E_AXIS,ARG2)
+
+         l = res_lo_ss(T_AXIS)
+         DO 410 l2 = arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2)
+
+         k = res_lo_ss(Z_AXIS)
+         DO 310 k2 = arg_lo_ss(Z_AXIS,ARG2), arg_hi_ss(Z_AXIS,ARG2)
+
+         j = res_lo_ss(Y_AXIS)
+         DO 210 j2 = arg_lo_ss(Y_AXIS,ARG2), arg_hi_ss(Y_AXIS,ARG2)
+
+            IF ( arg_2(i2,j2,k2,l2,m2,n2) .EQ. bad_flag(ARG2) ) THEN
+               result(i,j,k,l,m,n) = bad_flag_result
+            ELSE
+               result(i,j,k,l,m,n) = arg_2(i2,j2,k2,l2,m2,n2)
+            ENDIF
+
+            j = j + res_incr(Y_AXIS)
+ 210     CONTINUE
+
+            k = k + res_incr(Z_AXIS)
+ 310     CONTINUE
+
+            l = l + res_incr(T_AXIS)
+ 410     CONTINUE
+
+            m = m + res_incr(E_AXIS)
+ 510     CONTINUE
+
+            n = n + res_incr(F_AXIS)
+ 610     CONTINUE
+
+         i = i + res_incr(X_AXIS)
+ 110  CONTINUE
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN
+      END
diff --git a/fer/efi/bxsequence.F b/fer/efi/bxsequence.F
new file mode 100644
index 0000000..2aa87a1
--- /dev/null
+++ b/fer/efi/bxsequence.F
@@ -0,0 +1,241 @@
+*
+* bxsequence.F
+*
+* Ansley Manke
+* Dec 2015
+* 
+*
+* This function is an XSEQUENCE, returned on a custom index axis
+*
+*
+*
+* In this subroutine we provide information about
+* the function.  The user configurable information 
+* consists of the following:
+*
+* descr              Text description of the function
+*
+* num_args           Required number of arguments
+*
+* axis_inheritance   Type of axis for the result
+*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+*                       CUSTOM          - user defined axis
+*                       IMPLIED_BY_ARGS - same axis as the incoming argument
+*                       NORMAL          - the result is normal to this axis
+*                       ABSTRACT        - an axis which only has index values
+*
+* piecemeal_ok       For memory optimization:
+*                       axes where calculation may be performed piecemeal
+*                       ( YES, NO )
+* 
+*
+* For each argument we provide the following information:
+*
+* name               Text name for an argument
+*
+* unit               Text units for an argument
+*
+* desc               Text description of an argument
+*
+* axis_influence     Are this argument''s axes the same as the result grid?
+*                       ( YES, NO )
+*
+* axis_extend       How much does Ferret need to extend arg limits relative to result 
+*
+
+
+      SUBROUTINE bxsequence_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      CHARACTER*100 descrip
+
+      WRITE (descrip, 100)
+  100 FORMAT ('unravel grid to a fixed length line in X')
+      CALL ef_set_desc(id, descrip)
+
+* Tell Ferret to run the following instead, if the arguments are strings.
+      CALL ef_set_alt_fcn_name(id, 'BXSEQUENCE_STR')
+
+      CALL ef_set_num_args(id, 1)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                CUSTOM, NORMAL,
+     .                                NORMAL, NORMAL,
+     .                                NORMAL, NORMAL)
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'A')
+      CALL ef_set_arg_unit(id, arg, ' ')
+      CALL ef_set_arg_desc(id, arg, 'Variable to unravel')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, YES, YES, YES, YES, YES)
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN
+      END
+
+
+      SUBROUTINE bxsequence_result_limits(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+      INTEGER nx
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      nx = (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(Z_AXIS,ARG1) - arg_lo_ss(Z_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(E_AXIS,ARG1) - arg_lo_ss(E_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(F_AXIS,ARG1) - arg_lo_ss(F_AXIS,ARG1) + 1)
+
+      CALL ef_set_axis_limits(id, X_AXIS, 1, nx)
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN
+      END
+
+
+ 
+      SUBROUTINE bxsequence_custom_axes(id)
+ 
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+ 
+      INTEGER id
+      REAL size
+
+       INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .         arg_hi_ss(6,EF_MAX_ARGS),
+     .         arg_incr (6,EF_MAX_ARGS)
+*
+*     Use utility functions to get context information about the arguments.
+*
+       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ 
+* output X axis size
+
+      size = (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(Z_AXIS,ARG1) - arg_lo_ss(Z_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(E_AXIS,ARG1) - arg_lo_ss(E_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(F_AXIS,ARG1) - arg_lo_ss(F_AXIS,ARG1) + 1)
+
+
+      CALL ef_set_custom_axis(id, X_AXIS, 1.0, size, 1.0, 'i', NO)
+ 
+*                                                                     ^
+*                                                                     |
+*                                           USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN 
+      END
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE bxsequence_compute(id, arg_1, result)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+     .           mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy,
+     .            memresloz:memreshiz, memreslot:memreshit,
+     .            memresloe:memreshie, memreslof:memreshif)
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes.  The 'arg_' arrays will contain the indexing
+* information for each variable''s axes.
+
+      INTEGER res_lo_ss(6),
+     .        res_hi_ss(6),
+     .        res_incr (6)
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1
+
+      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+      CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+      j = res_lo_ss(Y_AXIS)
+      k = res_lo_ss(Z_AXIS)
+      l = res_lo_ss(T_AXIS)
+      m = res_lo_ss(E_AXIS)
+      n = res_lo_ss(F_AXIS)
+
+      i = res_lo_ss(X_AXIS)
+      DO 600 n1 = arg_lo_ss(F_AXIS,ARG1), arg_hi_ss(F_AXIS,ARG1)
+      DO 500 m1 = arg_lo_ss(E_AXIS,ARG1), arg_hi_ss(E_AXIS,ARG1)
+      DO 400 l1 = arg_lo_ss(T_AXIS,ARG1), arg_hi_ss(T_AXIS,ARG1)
+      DO 300 k1 = arg_lo_ss(Z_AXIS,ARG1), arg_hi_ss(Z_AXIS,ARG1)
+      DO 200 j1 = arg_lo_ss(Y_AXIS,ARG1), arg_hi_ss(Y_AXIS,ARG1)
+      DO 100 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
+
+	IF ( arg_1(i1,j1,k1,l1,m1,n1) .EQ. bad_flag(ARG1) ) THEN
+	   result(i,j,k,l,m,n) = bad_flag_result
+	ELSE
+	   result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l1,m1,n1)
+	ENDIF
+        i = i + res_incr(X_AXIS)
+
+ 100  CONTINUE
+ 200  CONTINUE
+ 300  CONTINUE
+ 400  CONTINUE
+ 500  CONTINUE
+ 600  CONTINUE
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN
+      END
diff --git a/fer/efi/bxsequence_str.F b/fer/efi/bxsequence_str.F
new file mode 100644
index 0000000..4107959
--- /dev/null
+++ b/fer/efi/bxsequence_str.F
@@ -0,0 +1,245 @@
+*
+* bxsequence_str.F
+*
+* Ansley Manke
+* Dec 2015
+* 
+*
+* This function is the string XSEQUENCE, returned on a custom index axis
+*
+*
+*
+* In this subroutine we provide information about
+* the function.  The user configurable information 
+* consists of the following:
+*
+* descr              Text description of the function
+*
+* num_args           Required number of arguments
+*
+* axis_inheritance   Type of axis for the result
+*                       ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+*                       CUSTOM          - user defined axis
+*                       IMPLIED_BY_ARGS - same axis as the incoming argument
+*                       NORMAL          - the result is normal to this axis
+*                       ABSTRACT        - an axis which only has index values
+*
+* piecemeal_ok       For memory optimization:
+*                       axes where calculation may be performed piecemeal
+*                       ( YES, NO )
+* 
+*
+* For each argument we provide the following information:
+*
+* name               Text name for an argument
+*
+* unit               Text units for an argument
+*
+* desc               Text description of an argument
+*
+* axis_influence     Are this argument''s axes the same as the result grid?
+*                       ( YES, NO )
+*
+* axis_extend       How much does Ferret need to extend arg limits relative to result 
+*
+
+
+      SUBROUTINE bxsequence_str_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      CHARACTER*100 descrip
+
+      WRITE (descrip, 100)
+  100 FORMAT ('unravel string variable to a fixed length line in X')
+      CALL ef_set_desc(id, descrip)
+
+* Tell Ferret to run the following instead, if the arguments are strings.
+c     CALL ef_set_alt_fcn_name(id, 'bxsequence_str_STR')
+
+      CALL ef_set_num_args(id, 1)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                CUSTOM, NORMAL,
+     .                                NORMAL, NORMAL,
+     .                                NORMAL, NORMAL)
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+      CALL ef_set_result_type(id, STRING_RETURN)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'A')
+      CALL ef_set_arg_unit(id, arg, ' ')
+      CALL ef_set_arg_type (id, arg, STRING_ARG)
+      CALL ef_set_arg_desc(id, arg, 'Variable to unravel')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, YES, YES, YES, YES, YES)
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN
+      END
+
+
+      SUBROUTINE bxsequence_str_result_limits(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+      INTEGER nx
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      nx = (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(Z_AXIS,ARG1) - arg_lo_ss(Z_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(E_AXIS,ARG1) - arg_lo_ss(E_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(F_AXIS,ARG1) - arg_lo_ss(F_AXIS,ARG1) + 1)
+
+      CALL ef_set_axis_limits(id, X_AXIS, 1, nx)
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN
+      END
+
+
+ 
+      SUBROUTINE bxsequence_str_custom_axes(id)
+ 
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+ 
+      INTEGER id
+      REAL size
+
+       INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .         arg_hi_ss(6,EF_MAX_ARGS),
+     .         arg_incr (6,EF_MAX_ARGS)
+*
+*     Use utility functions to get context information about the arguments.
+*
+       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ 
+* output X axis size
+
+      size = (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(Z_AXIS,ARG1) - arg_lo_ss(Z_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(E_AXIS,ARG1) - arg_lo_ss(E_AXIS,ARG1) + 1) *
+     .     (arg_hi_ss(F_AXIS,ARG1) - arg_lo_ss(F_AXIS,ARG1) + 1)
+
+
+      CALL ef_set_custom_axis(id, X_AXIS, 1.0, size, 1.0, 'i', NO)
+ 
+*                                                                     ^
+*                                                                     |
+*                                           USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN 
+      END
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE bxsequence_str_compute(id, arg_1, result)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER id
+
+      REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy,
+     .                  mem1loz:mem1hiz, mem1lot:mem1hit,
+     .                  mem1loe:mem1hie, mem1lof:mem1hif)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy,
+     .                   memresloz:memreshiz, memreslot:memreshit,
+     .                   memresloe:memreshie, memreslof:memreshif)
+
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes.  The 'arg_' arrays will contain the indexing
+* information for each variable''s axes.
+
+      INTEGER res_lo_ss(6),
+     .        res_hi_ss(6),
+     .        res_incr (6)
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+
+      REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      INTEGER i, j, k, l, m, n, slen
+      INTEGER i1, j1, k1, l1, m1, n1
+      
+      CHARACTER*512 buff
+
+      CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      j = res_lo_ss(Y_AXIS)
+      k = res_lo_ss(Z_AXIS)
+      l = res_lo_ss(T_AXIS)
+      m = res_lo_ss(E_AXIS)
+      n = res_lo_ss(F_AXIS)
+
+      i = res_lo_ss(X_AXIS)
+      DO 600 n1 = arg_lo_ss(F_AXIS,ARG1), arg_hi_ss(F_AXIS,ARG1)
+      DO 500 m1 = arg_lo_ss(E_AXIS,ARG1), arg_hi_ss(E_AXIS,ARG1)
+      DO 400 l1 = arg_lo_ss(T_AXIS,ARG1), arg_hi_ss(T_AXIS,ARG1)
+      DO 300 k1 = arg_lo_ss(Z_AXIS,ARG1), arg_hi_ss(Z_AXIS,ARG1)
+      DO 200 j1 = arg_lo_ss(Y_AXIS,ARG1), arg_hi_ss(Y_AXIS,ARG1)
+      DO 100 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
+
+	CALL EF_GET_STRING_ARG_ELEMENT_6D(id, ARG1, arg_1,
+     .                             i1, j1, k1, l1, m1, n1, slen, buff)
+	CALL EF_PUT_STRING(buff, slen, result(i,j,k,l,m,n))
+
+        i = i + res_incr(X_AXIS)
+
+ 100  CONTINUE
+ 200  CONTINUE
+ 300  CONTINUE
+ 400  CONTINUE
+ 500  CONTINUE
+ 600  CONTINUE
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN
+      END
diff --git a/fer/efi/curv_to_rect_subs.F b/fer/efi/curv_to_rect_subs.F
old mode 100755
new mode 100644
diff --git a/fer/efi/element_index.F b/fer/efi/element_index.F
index f355b36..a697518 100644
--- a/fer/efi/element_index.F
+++ b/fer/efi/element_index.F
@@ -98,6 +98,9 @@
    10 FORMAT ('Return index value in ARG2 for each point in ARG1')
       CALL ef_set_desc(id, fcn_desc)
 
+* Tell Ferret to run the following instead, if the arguments are strings.
+      CALL ef_set_alt_fcn_name(id, 'ELEMENT_INDEX_STR')
+
       CALL ef_set_num_args(id, 2)
       CALL ef_set_has_vari_args(id, NO)
       CALL ef_set_axis_inheritance_6d(id,
diff --git a/fer/efi/floatstr.F b/fer/efi/floatstr.F
index 4cff4ef..34ad7db 100644
--- a/fer/efi/floatstr.F
+++ b/fer/efi/floatstr.F
@@ -4,6 +4,7 @@
 * Ansley Manke 11/10
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 * V695 *acm* 9/15  Allow integer formats. Truncate Floating point data, write as integer
+* V697 *acm* 11/15 Fix for the zero-filled versions of these formats, so that I0 and F0.0 work
 *
 * Returns float converted to strings according to format given. 
 *
@@ -63,7 +64,7 @@
       CALL ef_set_arg_name(id, arg, 'FMT')
       CALL ef_set_arg_unit(id, arg, ' ')
       CALL ef_set_arg_desc(id, arg,  
-     . 'Fortran format, in parentheses, e.g. "(F5.1)", ("I4"), or ("I3.3")')
+     . 'Fortran format, in parentheses, e.g. "(F5.1)", "(I4)", or "(I3.3)"')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, NO, NO, NO, NO, NO)
 
@@ -124,7 +125,7 @@
       INTEGER i, j, k, l, m, n
       INTEGER i1, j1, k1, l1, m1, n1, p, p2
       REAL    fval
-      INTEGER TM_LENSTR1, STR_UPCASE, slen, ival, isok, status
+      INTEGER TM_LENSTR1, STR_UPCASE, slen, ival, isok, dot, status
       CHARACTER*32 fstring, fformat
       CHARACTER*128 err_msg
       CHARACTER*1 nullstr
@@ -155,15 +156,16 @@
 
       do_integer = .FALSE.
       slen = TM_LENSTR1( fformat )
+      dot = INDEX(fformat,'.')
       DO 30, p =1, slen-1
-	 IF (fformat(p:p+1) .EQ. 'F0')  THEN
+	 IF (fformat(p:p+1) .EQ. 'F0' .AND. p+2.LT.dot)  THEN
 	    zero_fill = .TRUE.
 	    fformat = fformat(1:p)//fformat(p+2:slen)
 	    GOTO 40
 	 ENDIF
 	 IF (fformat(p:p) .EQ. 'F') GOTO 40
 	 
-	 IF (fformat(p:p+1) .EQ. 'I0')  THEN
+	 IF (fformat(p:p+1).EQ.'I0' .AND. fformat(p+2:p+2).NE.')')  THEN
 	    zero_fill = .TRUE.
 	    do_integer = .TRUE.
 	    fformat = fformat(1:p)//fformat(p+2:slen)
diff --git a/fer/efi/is_element_of.F b/fer/efi/is_element_of.F
index 928ae08..cd152de 100644
--- a/fer/efi/is_element_of.F
+++ b/fer/efi/is_element_of.F
@@ -94,6 +94,9 @@
    10 FORMAT ('Returns 1 if first argument contains any of the ',
      .        'values in argument 2, else 0')
       CALL ef_set_desc(id, fcn_desc)
+      
+* Tell Ferret to run the following instead, if the arguments are strings.
+      CALL ef_set_alt_fcn_name(id, 'IS_ELEMENT_OF_STR')
 
       CALL ef_set_num_args(id, 2)
       CALL ef_set_has_vari_args(id, NO)
diff --git a/fer/efi/maxminmax.F b/fer/efi/maxminmax.F
index e09cd25..9f1545c 100644
--- a/fer/efi/maxminmax.F
+++ b/fer/efi/maxminmax.F
@@ -7,7 +7,6 @@ C  From the NCAR graphics library at http://ngwww.ucar.edu version 4.2
 C  Modified by Ansley Manke to regurn only the maxima for subroutine findhi.F
 C
 C-------------------------------------------------------------
-C	$Id: maxminmax.F 9377 2006-04-05 16:34:02Z ansley $
 C                                                                      
 C                Copyright (C)  2000
 C        University Corporation for Atmospheric Research
diff --git a/fer/efi/minminmax.F b/fer/efi/minminmax.F
index 47c0737..c6a5be6 100644
--- a/fer/efi/minminmax.F
+++ b/fer/efi/minminmax.F
@@ -5,7 +5,6 @@ C  based on NCAR routine MINMAX, return minima
 C  From the NCAR graphics library at http://ngwww.ucar.edu version 4.2
 C  Modified by Ansley Manke to regurn only the minima for subroutine findlo.F
 C-------------------------------------------------------------
-C	$Id: minminmax.F 11665 2011-01-06 20:18:22Z ksmith $
 C                                                                      
 C                Copyright (C)  2000
 C        University Corporation for Atmospheric Research
diff --git a/fer/efi/rect_to_curv.F b/fer/efi/rect_to_curv.F
index 281421b..dd6ea95 100644
--- a/fer/efi/rect_to_curv.F
+++ b/fer/efi/rect_to_curv.F
@@ -43,6 +43,7 @@
 ! 2/20/2003
 !  
 ! 11/19/2007 fix bug 1553 looping over k,l
+! 03/22/2016 fix error message, source longigude within 2*pi
 ! 
 ! In this subroutine we provide information about
 ! the function.  The user configurable information 
@@ -651,7 +652,7 @@ C  Other declarations
 
       if(lon_in(nlon_in) - lon_in(1) .gt. tpi + epsln) 
      . call ef_bail_out (id, 
-     . 'The range of source grid longitude may be no larger than tpi')
+     . 'The range of source grid longitude may be no larger than 2*pi')
 
       if(lon_in(1) .lt. 0.0) then
         min_lon = lon_in(1)
diff --git a/fer/efi/sample_fast_i.F b/fer/efi/sample_fast_i.F
index 370d0f1..109c5f5 100644
--- a/fer/efi/sample_fast_i.F
+++ b/fer/efi/sample_fast_i.F
@@ -84,6 +84,9 @@
 *                                                                      V
 
       CALL ef_set_desc(id, 'Fast 1D sample variable using set of indices' )
+      
+* Tell Ferret to run the following instead, if the arguments are strings.
+      CALL ef_set_alt_fcn_name(id, 'SAMPLE_FAST_I_STR')
 
       CALL ef_set_num_args(id, 2)
       CALL ef_set_has_vari_args(id, NO)
diff --git a/fer/efi/sampleij.F b/fer/efi/sampleij.F
index 74c084d..8d6e9c0 100644
--- a/fer/efi/sampleij.F
+++ b/fer/efi/sampleij.F
@@ -42,6 +42,7 @@
 *         Result is abstract on the x axis, normal on the y axis,
 *         and keeps the z and t axes of the input 4-d data.
 * 4/9/09  The function never tested for the bad-flag of the input variable.
+* 1/29/16 Ticketn2358: Clarify the function description and argument descriptions
 *
 * In this subroutine we provide information about
 * the function.  The user configurable information 
@@ -94,7 +95,7 @@
 
       WRITE (fcn_desc, 10)
    10 FORMAT 
-     .  ('Returns data sampled at a subset of its ',
+     .  ('Returns data sampled by matching coordinates at a subset of ',
      .   'grid points, defined by (XPTS, YPTS)')
       CALL ef_set_desc(id, fcn_desc)
 
@@ -115,13 +116,13 @@
 
       arg = 2
       CALL ef_set_arg_name(id, arg, 'XPTS')
-      CALL ef_set_arg_desc(id, arg, 'X indices of grid points')
+      CALL ef_set_arg_desc(id, arg, 'X coordinates of grid points')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, NO, NO, NO, NO, NO)
 
       arg = 3
       CALL ef_set_arg_name(id, arg, 'YPTS')
-      CALL ef_set_arg_desc(id, arg, 'Y indices of grid points')
+      CALL ef_set_arg_desc(id, arg, 'Y coordinates of grid points')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, NO, NO, NO, NO, NO)
 
@@ -351,14 +352,16 @@
 
             DO 110 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1) 
                xgrid = xaxdat(i1,1,1,1,1,1)
-               IF ( TM_FPEQ(xgrid, arg_2(i2,j2,k2,l2,m2,n2)) )
-     .            imatch = i1
+               IF ( TM_FPEQ(xgrid, arg_2(i2,j2,k2,l2,m2,n2)) ) THEN
+                   imatch = i1
+               ENDIF
   110       CONTINUE
 
             DO 120 j1 = arg_lo_ss(Y_AXIS,ARG1), arg_hi_ss(Y_AXIS,ARG1) 
                ygrid = yaxdat(j1,1,1,1,1,1)
-               IF ( TM_FPEQ(ygrid, arg_3(i3,j3,k3,l3,m3,n3)) )
-     .            jmatch = j1
+               IF ( TM_FPEQ(ygrid, arg_3(i3,j3,k3,l3,m3,n3)) ) THEN
+                  jmatch = j1
+               ENDIF
   120       CONTINUE
 
          ENDIF
diff --git a/fer/efi/scat2grid_nbin_xyt.F b/fer/efi/scat2grid_bin_xyz.F
similarity index 78%
copy from fer/efi/scat2grid_nbin_xyt.F
copy to fer/efi/scat2grid_bin_xyz.F
index f7a5fc2..839c7cc 100644
--- a/fer/efi/scat2grid_nbin_xyt.F
+++ b/fer/efi/scat2grid_bin_xyz.F
@@ -1,5 +1,5 @@
 *
-*  scat2grid_nbin_xyt
+*  scat2grid_bin_xyz
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -35,8 +35,7 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
 *
 * Ansley Manke
-* April 2010
-* Ferret V665 10/2010 Change loop structure to make this more efficient.
+* March 2016 from scat2grid_bin_XYZ.
 
 * In this subroutine we provide information about
 * the function.  The user configurable information
@@ -73,7 +72,7 @@
 *
 
 
-      SUBROUTINE  scat2grid_nbin_xyt_init(id)
+      SUBROUTINE  scat2grid_bin_xyz_init(id)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -85,43 +84,43 @@
 *                                                                      |
 *                                                                      V
 
-      CALL ef_set_desc(id, 'Count observations when putting ' //
-     .                     'scattered data into XYT grid by binning')
+      CALL ef_set_desc(id,
+     .        'Put scattered data into XYZ grid by binning')
       CALL ef_set_num_args(id, 7)
       CALL ef_set_axis_inheritance_6d(id,
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
-     .                                NORMAL,          IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, NORMAL,
      .                                NORMAL,          NORMAL)
       CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
-      CALL ef_set_num_work_arrays(id, 6)
+      CALL ef_set_num_work_arrays(id, 7)
 
-* Output grid is determined by arguments 5, 6, and 7, the result's x, y, and t axes.
+* Output grid is determined by arguments 5, 6, and 7, the result's x, y, and z axes.
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'XPTS')
       CALL ef_set_arg_desc(id, arg,
-     .        'X coordinates of scattered XYT locations')
+     .        'X coordinates of scattered XYZ locations')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, NO, NO, NO, NO, NO)
 
       arg = 2
       CALL ef_set_arg_name(id, arg, 'YPTS')
       CALL ef_set_arg_desc(id, arg,
-     .        'Y coordinates of scattered XYT locations')
+     .        'Y coordinates of scattered XYZ locations')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, NO, NO, NO, NO, NO)
 
       arg = 3
-      CALL ef_set_arg_name(id, arg, 'TPTS')
+      CALL ef_set_arg_name(id, arg, 'ZPTS')
       CALL ef_set_arg_desc(id, arg,
-     .        'T coordinates of scattered XYT locations')
+     .        'Z coordinates of scattered XYZ locations')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, NO, NO, NO, NO, NO)
 
       arg = 4
       CALL ef_set_arg_name(id, arg, 'F')
       CALL ef_set_arg_desc(id, arg,
-     .        'variable at scattered XYT locations')
+     .        'variable at scattered XYZ locations')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, NO, NO, NO, NO, NO)
 
@@ -140,12 +139,11 @@
      .                              NO, YES, NO, NO, NO, NO)
 
       arg = 7
-      CALL ef_set_arg_name(id, arg, 'TAXPTS')
+      CALL ef_set_arg_name(id, arg, 'ZAXPTS')
       CALL ef_set_arg_desc(id, arg,
-     .        'T axis coordinates of the output grid, ' //
-     .        'with same units and origin as TPTS')
+     .        'Z axis coordinates of the output grid')
       CALL ef_set_axis_influence_6d(id, arg,
-     .                              NO, NO, NO, YES, NO, NO)
+     .                              NO, NO, YES, NO, NO, NO)
 
 *                                                                      ^
 *                                                                      |
@@ -160,7 +158,7 @@
 * In this subroutine we request an amount of storage to be supplied
 * by Ferret and passed as an additional argument.
 *
-      SUBROUTINE scat2grid_nbin_xyt_work_size(id)
+      SUBROUTINE scat2grid_bin_xyz_work_size(id)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -183,47 +181,49 @@
       INTEGER arg_lo_ss(6,EF_MAX_ARGS),
      .        arg_hi_ss(6,EF_MAX_ARGS),
      .        arg_incr (6,EF_MAX_ARGS)
-      INTEGER nxout, nyout, ntout, nx2, ny2, nt2
+      INTEGER nxout, nyout, nzout
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
       nxout = 1 + arg_hi_ss(X_AXIS,ARG5) - arg_lo_ss(X_AXIS,ARG5)
       nyout = 1 + arg_hi_ss(Y_AXIS,ARG6) - arg_lo_ss(Y_AXIS,ARG6)
-      ntout = 1 + arg_hi_ss(T_AXIS,ARG7) - arg_lo_ss(T_AXIS,ARG7)
+      nzout = 1 + arg_hi_ss(Z_AXIS,ARG7) - arg_lo_ss(Z_AXIS,ARG7)
 
-      nx2 = nxout * 2
-      ny2 = nyout * 2
-      nt2 = ntout * 2
 
 * xaxlo  output x axis
       CALL ef_set_work_array_dims_6d(id, 1,
      .                                1, 1, 1, 1, 1, 1,
-     .                              nx2, 1, 1, 1, 1, 1)
+     .                            nxout, 1, 1, 1, 1, 1)
 
 * xaxhi  output x axis
       CALL ef_set_work_array_dims_6d(id, 2,
      .                                1, 1, 1, 1, 1, 1,
-     .                              nx2, 1, 1, 1, 1, 1)
+     .                            nxout, 1, 1, 1, 1, 1)
 
 * yaxlo  output y axis
       CALL ef_set_work_array_dims_6d(id, 3,
      .                                1, 1, 1, 1, 1, 1,
-     .                              ny2, 1, 1, 1, 1, 1)
+     .                            nyout, 1, 1, 1, 1, 1)
 
 * yaxhi  output y axis
       CALL ef_set_work_array_dims_6d(id, 4,
      .                                1, 1, 1, 1, 1, 1,
-     .                              ny2, 1, 1, 1, 1, 1)
+     .                            nyout, 1, 1, 1, 1, 1)
 
-* taxlo  output t axis
+* zaxlo  output z axis
       CALL ef_set_work_array_dims_6d(id, 5,
      .                                1, 1, 1, 1, 1, 1,
-     .                              nt2, 1, 1, 1, 1, 1)
+     .                            nzout, 1, 1, 1, 1, 1)
 
-* taxhi  output t axis
+* zaxhi  output z axis
       CALL ef_set_work_array_dims_6d(id, 6,
      .                                1, 1, 1, 1, 1, 1,
-     .                              nt2, 1, 1, 1, 1, 1)
+     .                            nzout, 1, 1, 1, 1, 1)
+
+* counts
+      CALL ef_set_work_array_dims_6d(id, 7,
+     .                                1,     1,     1, 1, 1, 1,
+     .                            nxout, nyout, nzout, 1, 1, 1)
 
 *                                                                      ^
 *                                                                      |
@@ -238,17 +238,18 @@
 * In this subroutine we compute the result
 *
 
-      SUBROUTINE scat2grid_nbin_xyt_compute(id, arg_1, arg_2, arg_3,
-     .                        arg_4, arg_5, arg_6, arg_7, result,
-     .                        xaxlo, xaxhi, yaxlo, yaxhi, taxlo, taxhi)
+      SUBROUTINE scat2grid_bin_xyz_compute(id, arg_1, arg_2, arg_3,
+     .                           arg_4, arg_5, arg_6, arg_7, result,
+     .                           xaxlo, xaxhi, yaxlo, yaxhi,
+     .                           zaxlo, zaxhi, counts)
 
 *  arg_1  xpts  \
-*  arg_2  ypts  / Scattered x,y,t triples to be gridded.
-*  arg_3  tpts /
+*  arg_2  ypts  / Scattered x,y,z triples to be gridded.
+*  arg_3  zpts /
 *  arg_4  variable, /
 *  arg_5  xaxis of new grid
 *  arg_6  yaxis of new grid
-*  arg_7  taxis of new grid
+*  arg_7  zaxis of new grid
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -277,12 +278,13 @@
 
 * Ignore the unused final dimensions in the work arrays since
 * Fortran is column major
-      REAL*8 xaxlo(wrk1lox:wrk1hix/2)
-      REAL*8 xaxhi(wrk2lox:wrk2hix/2)
-      REAL*8 yaxlo(wrk3lox:wrk3hix/2)
-      REAL*8 yaxhi(wrk4lox:wrk4hix/2)
-      REAL*8 taxlo(wrk5lox:wrk5hix/2)
-      REAL*8 taxhi(wrk6lox:wrk6hix/2)
+      REAL*8 xaxlo(wrk1lox:wrk1hix)
+      REAL*8 xaxhi(wrk2lox:wrk2hix)
+      REAL*8 yaxlo(wrk3lox:wrk3hix)
+      REAL*8 yaxhi(wrk4lox:wrk4hix)
+      REAL*8 zaxlo(wrk5lox:wrk5hix)
+      REAL*8 zaxhi(wrk6lox:wrk6hix)
+      REAL counts(wrk7lox:wrk7hix, wrk7loy:wrk7hiy, wrk7loz:wrk7hiz)
 
 * After initialization, the 'res_' arrays contain indexing information
 * for the result axes.  The 'arg_' arrays will contain the indexing
@@ -291,9 +293,9 @@
       INTEGER res_lo_ss(6),
      .        res_hi_ss(6),
      .        res_incr (6)
-      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
-     .        arg_hi_ss(6,EF_MAX_ARGS),
-     .        arg_incr (6,EF_MAX_ARGS)
+      INTEGER arg_lo_ss(7,EF_MAX_ARGS),
+     .        arg_hi_ss(7,EF_MAX_ARGS),
+     .        arg_incr (7,EF_MAX_ARGS)
 
       REAL bad_flag(EF_MAX_ARGS), bad_flag_result
 
@@ -303,18 +305,18 @@
 *                                                                      V
 
       INTEGER i, j, k, l, m, n
-      INTEGER i1, j1, l1
+      INTEGER i1, j1, k1
       INTEGER lo_ss, hi_ss
-      INTEGER nxpts, nypts, ntpts, nscat
-      INTEGER idx, nx, ny, nt
-      REAL xx, yy, tt, ff
+      INTEGER nxpts, nypts, nzpts, nscat
+      INTEGER idx, nx, ny, nz
+      REAL xx, yy, zz, ff
       CHARACTER*250 errtxt
 
 *  variables for checking axis characteristics (modulo axes)
       CHARACTER ax_name(6)*16, ax_units(6)*16
       LOGICAL backward(6), mdulo(6), regular(6)
-      LOGICAL modulox, moduloy, modulot
-      REAL*8 modxlen, modylen, modtlen
+      LOGICAL modulox
+      REAL*8 modxlen
 
       CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
@@ -328,22 +330,6 @@
          CALL ef_get_axis_modulo_len(id, ARG5, X_AXIS, modxlen)
       ENDIF
 
-*  Check to see if the output Y-axis is modulo (does not need to be regular)
-      CALL ef_get_axis_info_6d(id, ARG6, ax_name, ax_units,
-     .                         backward, mdulo, regular)
-      moduloy = mdulo(Y_AXIS)
-      IF ( moduloy ) THEN
-         CALL ef_get_axis_modulo_len(id, ARG6, Y_AXIS, modylen)
-      ENDIF
-
-*  Check to see if the output T-axis is modulo (does not need to be regular)
-      CALL ef_get_axis_info_6d(id, ARG7, ax_name, ax_units,
-     .                         backward, mdulo, regular)
-      modulot = mdulo(T_AXIS)
-      IF ( modulot ) THEN
-         CALL ef_get_axis_modulo_len(id, ARG7, T_AXIS, modtlen)
-      ENDIF
-
 *  Find number of points in scattered input points.  1-D arrays defining the
 *  scattered data points may lie on the X, Y, Z, T, E, or F axis of the input
 *  arguments.
@@ -375,15 +361,15 @@
          ENDIF
   20  CONTINUE
 
-      ntpts = 0
+      nZPTS = 0
       DO 40 idx = X_AXIS, F_AXIS
          lo_ss = arg_lo_ss(idx,ARG3)
          hi_ss = arg_hi_ss(idx,ARG3)
          IF ( lo_ss .NE. ef_unspecified_int4 ) THEN
-            IF ( ntpts .NE. 0 ) THEN
-               ntpts = ntpts * (hi_ss - lo_ss + 1)
+            IF ( nzpts .NE. 0 ) THEN
+               nzpts = nzpts * (hi_ss - lo_ss + 1)
             ELSE
-               ntpts = hi_ss - lo_ss + 1
+               nzpts = hi_ss - lo_ss + 1
             ENDIF
          ENDIF
   40  CONTINUE
@@ -405,8 +391,8 @@
          WRITE (errtxt, 90) ' XPTS,', ' YPTS ', nxpts, nypts
          GOTO 999
       ENDIF
-      IF ( nxpts .NE. ntpts ) THEN
-         WRITE (errtxt, 90) ' XPTS,', ' TPTS ', nxpts, nypts
+      IF ( nxpts .NE. nzpts ) THEN
+         WRITE (errtxt, 90) ' XPTS,', ' ZPTS ', nxpts, nzpts
          GOTO 999
       ENDIF
       IF ( nxpts .NE. nscat ) THEN
@@ -416,7 +402,7 @@
   90  FORMAT('Input scattered', 2A6, 'have different # of points', 2I8)
 
       IF ( nscat .LE. 0 ) THEN
-         errtxt = 'No data in scattered x, y, t points'
+         errtxt = 'No data in scattered x, y, z points'
          GOTO 999
       ENDIF
 
@@ -440,14 +426,14 @@
       ENDIF
       ny = hi_ss - lo_ss + 1
 
-      lo_ss = arg_lo_ss(T_AXIS,ARG7)
-      hi_ss = arg_hi_ss(T_AXIS,ARG7)
-*  Check that tax a T axis
+      lo_ss = arg_lo_ss(Z_AXIS,ARG7)
+      hi_ss = arg_hi_ss(Z_AXIS,ARG7)
+*  Check that zax aZ axis
       IF ( lo_ss .EQ. ef_unspecified_int4 ) THEN
-         errtxt = 'Seventh argument must be a T axis'
+         errtxt = 'Seventh argument must be a Z axis'
          GOTO 999
       ENDIF
-      nt = hi_ss - lo_ss + 1
+      nz = hi_ss - lo_ss + 1
 
 C  Get coordinates of output axes.
 
@@ -457,18 +443,18 @@ C  Get coordinates of output axes.
       CALL EF_GET_BOX_LIMITS(id, ARG6, Y_AXIS, arg_lo_ss(Y_AXIS, ARG6),
      .                       arg_hi_ss(Y_AXIS, ARG6), yaxlo, yaxhi)
 
-      CALL EF_GET_BOX_LIMITS(id, ARG7, T_AXIS, arg_lo_ss(T_AXIS, ARG7),
-     .                       arg_hi_ss(T_AXIS, ARG7), taxlo, taxhi)
+      CALL EF_GET_BOX_LIMITS(id, ARG7, Z_AXIS, arg_lo_ss(Z_AXIS, ARG7),
+     .                       arg_hi_ss(Z_AXIS, ARG7), zaxlo, zaxhi)
 
 *  Compute result
 
-      k = res_lo_ss(Z_AXIS)
+      l = res_lo_ss(T_AXIS)
       m = res_lo_ss(E_AXIS)
       n = res_lo_ss(F_AXIS)
 
 *  Initialize result.
 
-      DO l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+      DO k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
          DO j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
             DO i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
                result(i,j,k,l,m,n) = 0.0
@@ -476,6 +462,16 @@ C  Get coordinates of output axes.
          ENDDO
       ENDDO
 
+*  Initialize counts.
+
+      DO k1 = 1, nz
+         DO j1 = 1, ny
+            DO i1 = 1, nx
+               counts(i1,j1,k1) = 0.0
+            ENDDO
+         ENDDO
+      ENDDO
+
 *  Loop over x,y,t, placing the function values in the appropriate slots
 *  in the grid. xpts and ypts may be on the X,Y,Z,T,E or F axis of ARG1
 *  and ARG2, sending them to a subroutine collapses the extra dimensions
@@ -483,29 +479,24 @@ C  Get coordinates of output axes.
 
       DO 700 idx = 1, nscat
 
-         CALL pickout4(arg_1, arg_2, arg_3, arg_4, idx, xx, yy, tt, ff)
+         CALL pickout4(arg_1, arg_2, arg_3, arg_4, idx, xx, yy, zz, ff)
          IF ( xx .EQ. bad_flag(ARG1) .OR.
      .        yy .EQ. bad_flag(ARG2) .OR.
-     .        tt .EQ. bad_flag(ARG3) .OR.
+     .        zz .EQ. bad_flag(ARG3) .OR. 
      .        ff .EQ. bad_flag(ARG4) ) GOTO 700
 
 *  If output axis is modulo, apply modulo adjustment to that coordinate
 *  of the scattered point.
+
          IF ( modulox ) THEN
             CALL modscat(xaxlo(1), xaxhi(nx), modxlen, 1, xx)
          ENDIF
-         IF ( moduloy ) THEN
-            CALL modscat(yaxlo(1), yaxhi(ny), modylen, 1, yy)
-         ENDIF
-         IF ( modulot ) THEN
-            CALL modscat(taxlo(1), taxhi(nt), modtlen, 1, tt)
-         ENDIF
 
 *  Put fcn into result variable.
 
-         l1 = 1
-         DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
-            IF ( tt .GE. taxlo(l1) .AND. tt .LT. taxhi(l1) ) THEN
+         k1 = 1
+         DO 400 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+            IF ( zz .GE. zaxlo(k1) .AND. zz .LT. zaxhi(k1) ) THEN
 
          j1 = 1
          DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
@@ -515,8 +506,9 @@ C  Get coordinates of output axes.
          DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
             IF ( xx .GE. xaxlo(i1) .AND. xx .LT. xaxhi(i1) ) THEN
 
-               result(i,j,k,l,m,n) = result(i,j,k,l,m,n) + 1.0
-*  Location found and point assigned; go to the next scatter point
+               result(i,j,k,l,m,n) = result(i,j,k,l,m,n) + ff
+               counts(i1,j1,k1) = counts(i1,j1,k1) + 1.0
+*              Location found and point assigned; go to the next scatter point
                GOTO 700
 
             ENDIF
@@ -528,11 +520,37 @@ C  Get coordinates of output axes.
  200     CONTINUE
 
             ENDIF
-            l1 = l1 + 1
+            k1 = k1 + 1
  400     CONTINUE
 
  700  CONTINUE
 
+* Compute result, average in each bin.
+
+      k1 = 1
+      DO 410 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+      j1 = 1
+      DO 210 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+      i1 = 1
+      DO 110 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+         IF ( counts(i1,j1,k1) .GT. 0.0 ) THEN
+            result(i,j,k,l,m,n) = result(i,j,k,l,m,n) / counts(i1,j1,k1)
+         ELSE
+            result(i,j,k,l,m,n) = bad_flag_result
+         ENDIF
+
+         i1 = i1 + 1
+ 110  CONTINUE
+
+         j1 = j1 + 1
+ 210  CONTINUE
+
+         k1 = k1 + 1
+ 410  CONTINUE
+
       RETURN
 
  999  CALL EF_BAIL_OUT(id, errtxt)
diff --git a/fer/efi/scat2grid_nbin_xyt.F b/fer/efi/scat2grid_bin_xyzt.F
similarity index 67%
copy from fer/efi/scat2grid_nbin_xyt.F
copy to fer/efi/scat2grid_bin_xyzt.F
index f7a5fc2..d566726 100644
--- a/fer/efi/scat2grid_nbin_xyt.F
+++ b/fer/efi/scat2grid_bin_xyzt.F
@@ -1,5 +1,5 @@
 *
-*  scat2grid_nbin_xyt
+*  scat2grid_bin_xyzt
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -34,9 +34,9 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
 *
+
 * Ansley Manke
-* April 2010
-* Ferret V665 10/2010 Change loop structure to make this more efficient.
+* March 2016 from scat2grid_bin_XYZ.
 
 * In this subroutine we provide information about
 * the function.  The user configurable information
@@ -73,7 +73,7 @@
 *
 
 
-      SUBROUTINE  scat2grid_nbin_xyt_init(id)
+      SUBROUTINE  scat2grid_bin_xyzt_init(id)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -85,61 +85,75 @@
 *                                                                      |
 *                                                                      V
 
-      CALL ef_set_desc(id, 'Count observations when putting ' //
-     .                     'scattered data into XYT grid by binning')
-      CALL ef_set_num_args(id, 7)
+      CALL ef_set_desc(id,
+     .        'Put scattered data into XYZT grid by binning')
+      CALL ef_set_num_args(id, 9)
       CALL ef_set_axis_inheritance_6d(id,
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
-     .                                NORMAL,          IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
      .                                NORMAL,          NORMAL)
       CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
-      CALL ef_set_num_work_arrays(id, 6)
+      CALL ef_set_num_work_arrays(id, 9)
 
-* Output grid is determined by arguments 5, 6, and 7, the result's x, y, and t axes.
+* Output grid is determined by arguments 6,7,8, and 9, the result's x, y, z, and t axes.
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'XPTS')
       CALL ef_set_arg_desc(id, arg,
-     .        'X coordinates of scattered XYT locations')
+     .        'X coordinates of scattered XYZT locations')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, NO, NO, NO, NO, NO)
 
       arg = 2
       CALL ef_set_arg_name(id, arg, 'YPTS')
       CALL ef_set_arg_desc(id, arg,
-     .        'Y coordinates of scattered XYT locations')
+     .        'Y coordinates of scattered XYZT locations')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, NO, NO, NO, NO, NO)
 
       arg = 3
-      CALL ef_set_arg_name(id, arg, 'TPTS')
+      CALL ef_set_arg_name(id, arg, 'ZPTS')
       CALL ef_set_arg_desc(id, arg,
-     .        'T coordinates of scattered XYT locations')
+     .        'Z coordinates of scattered XYZT locations')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, NO, NO, NO, NO, NO)
 
       arg = 4
-      CALL ef_set_arg_name(id, arg, 'F')
+      CALL ef_set_arg_name(id, arg, 'TPTS')
       CALL ef_set_arg_desc(id, arg,
-     .        'variable at scattered XYT locations')
+     .        'T coordinates of scattered XYZT locations')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, NO, NO, NO, NO, NO)
 
       arg = 5
+      CALL ef_set_arg_name(id, arg, 'F')
+      CALL ef_set_arg_desc(id, arg,
+     .        'variable at scattered XYZT locations')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              NO, NO, NO, NO, NO, NO)
+
+      arg = 6
       CALL ef_set_arg_name(id, arg, 'XAXPTS')
       CALL ef_set_arg_desc(id, arg,
      .        'X axis coordinates of the output grid')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              YES, NO, NO, NO, NO, NO)
 
-      arg = 6
+      arg = 7
       CALL ef_set_arg_name(id, arg, 'YAXPTS')
       CALL ef_set_arg_desc(id, arg,
      .        'Y axis coordinates of the output grid')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, YES, NO, NO, NO, NO)
 
-      arg = 7
+      arg = 8
+      CALL ef_set_arg_name(id, arg, 'ZAXPTS')
+      CALL ef_set_arg_desc(id, arg,
+     .        'Z axis coordinates of the output grid')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              NO, NO, YES, NO, NO, NO)
+
+      arg = 9
       CALL ef_set_arg_name(id, arg, 'TAXPTS')
       CALL ef_set_arg_desc(id, arg,
      .        'T axis coordinates of the output grid, ' //
@@ -160,7 +174,7 @@
 * In this subroutine we request an amount of storage to be supplied
 * by Ferret and passed as an additional argument.
 *
-      SUBROUTINE scat2grid_nbin_xyt_work_size(id)
+      SUBROUTINE scat2grid_bin_xyzt_work_size(id)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -183,47 +197,59 @@
       INTEGER arg_lo_ss(6,EF_MAX_ARGS),
      .        arg_hi_ss(6,EF_MAX_ARGS),
      .        arg_incr (6,EF_MAX_ARGS)
-      INTEGER nxout, nyout, ntout, nx2, ny2, nt2
+      INTEGER nxout, nyout, nzout, ntout
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
-      nxout = 1 + arg_hi_ss(X_AXIS,ARG5) - arg_lo_ss(X_AXIS,ARG5)
-      nyout = 1 + arg_hi_ss(Y_AXIS,ARG6) - arg_lo_ss(Y_AXIS,ARG6)
-      ntout = 1 + arg_hi_ss(T_AXIS,ARG7) - arg_lo_ss(T_AXIS,ARG7)
-
-      nx2 = nxout * 2
-      ny2 = nyout * 2
-      nt2 = ntout * 2
+      nxout = 1 + arg_hi_ss(X_AXIS,ARG6) - arg_lo_ss(X_AXIS,ARG6)
+      nyout = 1 + arg_hi_ss(Y_AXIS,ARG7) - arg_lo_ss(Y_AXIS,ARG7)
+      nzout = 1 + arg_hi_ss(Z_AXIS,ARG8) - arg_lo_ss(Z_AXIS,ARG8)
+      ntout = 1 + arg_hi_ss(T_AXIS,ARG9) - arg_lo_ss(T_AXIS,ARG9)
 
 * xaxlo  output x axis
       CALL ef_set_work_array_dims_6d(id, 1,
      .                                1, 1, 1, 1, 1, 1,
-     .                              nx2, 1, 1, 1, 1, 1)
+     .                            nxout, 1, 1, 1, 1, 1)
 
 * xaxhi  output x axis
       CALL ef_set_work_array_dims_6d(id, 2,
      .                                1, 1, 1, 1, 1, 1,
-     .                              nx2, 1, 1, 1, 1, 1)
+     .                            nxout, 1, 1, 1, 1, 1)
 
 * yaxlo  output y axis
       CALL ef_set_work_array_dims_6d(id, 3,
      .                                1, 1, 1, 1, 1, 1,
-     .                              ny2, 1, 1, 1, 1, 1)
+     .                            nyout, 1, 1, 1, 1, 1)
 
 * yaxhi  output y axis
       CALL ef_set_work_array_dims_6d(id, 4,
      .                                1, 1, 1, 1, 1, 1,
-     .                              ny2, 1, 1, 1, 1, 1)
+     .                            nyout, 1, 1, 1, 1, 1)
 
-* taxlo  output t axis
+* zaxlo  output z axis
       CALL ef_set_work_array_dims_6d(id, 5,
      .                                1, 1, 1, 1, 1, 1,
-     .                              nt2, 1, 1, 1, 1, 1)
+     .                            nzout, 1, 1, 1, 1, 1)
 
-* taxhi  output t axis
+* zaxhi  output z axis
       CALL ef_set_work_array_dims_6d(id, 6,
      .                                1, 1, 1, 1, 1, 1,
-     .                              nt2, 1, 1, 1, 1, 1)
+     .                            nzout, 1, 1, 1, 1, 1)
+
+* taxlo  output t axis
+      CALL ef_set_work_array_dims_6d(id, 7,
+     .                                1, 1, 1, 1, 1, 1,
+     .                            ntout, 1, 1, 1, 1, 1)
+
+* taxhi  output t axis
+      CALL ef_set_work_array_dims_6d(id, 8,
+     .                                1, 1, 1, 1, 1, 1,
+     .                            ntout, 1, 1, 1, 1, 1)
+
+* counts
+      CALL ef_set_work_array_dims_6d(id, 9,
+     .                                1,     1,     1,     1,  1, 1,
+     .                            nxout, nyout, nzout, ntout,  1, 1)
 
 *                                                                      ^
 *                                                                      |
@@ -238,17 +264,23 @@
 * In this subroutine we compute the result
 *
 
-      SUBROUTINE scat2grid_nbin_xyt_compute(id, arg_1, arg_2, arg_3,
-     .                        arg_4, arg_5, arg_6, arg_7, result,
-     .                        xaxlo, xaxhi, yaxlo, yaxhi, taxlo, taxhi)
+      SUBROUTINE scat2grid_bin_xyzt_compute(id, arg_1, arg_2, arg_3,
+     .                           arg_4, arg_5, arg_6, arg_7, arg_8, arg_9, 
+     .                           result,
+     .                           xaxlo, xaxhi, yaxlo, yaxhi,
+     .                           zaxlo, zaxhi, taxlo, taxhi, 
+     .                           counts)
 
 *  arg_1  xpts  \
 *  arg_2  ypts  / Scattered x,y,t triples to be gridded.
-*  arg_3  tpts /
-*  arg_4  variable, /
-*  arg_5  xaxis of new grid
-*  arg_6  yaxis of new grid
-*  arg_7  taxis of new grid
+*  arg_3  zpts /
+*  arg_4  tpts/
+*  arg_5  variable, /
+*  arg_6  xaxis of new grid
+*  arg_7  yaxis of new grid
+*  arg_8  zaxis of new grid
+*  arg_9  taxis of new grid
+
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -270,6 +302,10 @@
      .           mem6lot:mem6hit, mem6loe:mem6hie, mem6lof:mem6hif)
       REAL arg_7(mem7lox:mem7hix, mem7loy:mem7hiy, mem7loz:mem7hiz,
      .           mem7lot:mem7hit, mem7loe:mem7hie, mem7lof:mem7hif)
+      REAL arg_8(mem8lox:mem8hix, mem8loy:mem8hiy, mem8loz:mem8hiz,
+     .           mem8lot:mem8hit, mem8loe:mem8hie, mem8lof:mem8hif)
+      REAL arg_9(mem9lox:mem9hix, mem9loy:mem9hiy, mem9loz:mem9hiz,
+     .           mem9lot:mem9hit, mem9loe:mem9hie, mem9lof:mem9hif)
 
       REAL result(memreslox:memreshix, memresloy:memreshiy,
      .            memresloz:memreshiz, memreslot:memreshit,
@@ -277,12 +313,16 @@
 
 * Ignore the unused final dimensions in the work arrays since
 * Fortran is column major
-      REAL*8 xaxlo(wrk1lox:wrk1hix/2)
-      REAL*8 xaxhi(wrk2lox:wrk2hix/2)
-      REAL*8 yaxlo(wrk3lox:wrk3hix/2)
-      REAL*8 yaxhi(wrk4lox:wrk4hix/2)
-      REAL*8 taxlo(wrk5lox:wrk5hix/2)
-      REAL*8 taxhi(wrk6lox:wrk6hix/2)
+      REAL*8 xaxlo(wrk1lox:wrk1hix)
+      REAL*8 xaxhi(wrk2lox:wrk2hix)
+      REAL*8 yaxlo(wrk3lox:wrk3hix)
+      REAL*8 yaxhi(wrk4lox:wrk4hix)
+      REAL*8 zaxlo(wrk5lox:wrk5hix)
+      REAL*8 zaxhi(wrk6lox:wrk6hix)
+      REAL*8 taxlo(wrk7lox:wrk7hix)
+      REAL*8 taxhi(wrk8lox:wrk8hix)
+      REAL*8 counts(wrk9lox:wrk9hix, wrk9loy:wrk9hiy, 
+     .            wrk9loz:wrk9hiz, wrk9lot:wrk9hit)
 
 * After initialization, the 'res_' arrays contain indexing information
 * for the result axes.  The 'arg_' arrays will contain the indexing
@@ -303,18 +343,18 @@
 *                                                                      V
 
       INTEGER i, j, k, l, m, n
-      INTEGER i1, j1, l1
+      INTEGER i1, j1, k1, l1
       INTEGER lo_ss, hi_ss
-      INTEGER nxpts, nypts, ntpts, nscat
-      INTEGER idx, nx, ny, nt
-      REAL xx, yy, tt, ff
+      INTEGER nxpts, nypts, nzpts, ntpts, nscat
+      INTEGER idx, nx, ny, nz, nt
+      REAL xx, yy, zz, tt, ff
       CHARACTER*250 errtxt
 
 *  variables for checking axis characteristics (modulo axes)
       CHARACTER ax_name(6)*16, ax_units(6)*16
       LOGICAL backward(6), mdulo(6), regular(6)
-      LOGICAL modulox, moduloy, modulot
-      REAL*8 modxlen, modylen, modtlen
+      LOGICAL modulox, modulot
+      REAL*8 modxlen, modtlen
 
       CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
@@ -328,20 +368,12 @@
          CALL ef_get_axis_modulo_len(id, ARG5, X_AXIS, modxlen)
       ENDIF
 
-*  Check to see if the output Y-axis is modulo (does not need to be regular)
-      CALL ef_get_axis_info_6d(id, ARG6, ax_name, ax_units,
-     .                         backward, mdulo, regular)
-      moduloy = mdulo(Y_AXIS)
-      IF ( moduloy ) THEN
-         CALL ef_get_axis_modulo_len(id, ARG6, Y_AXIS, modylen)
-      ENDIF
-
 *  Check to see if the output T-axis is modulo (does not need to be regular)
-      CALL ef_get_axis_info_6d(id, ARG7, ax_name, ax_units,
+      CALL ef_get_axis_info_6d(id, ARG8, ax_name, ax_units,
      .                         backward, mdulo, regular)
       modulot = mdulo(T_AXIS)
       IF ( modulot ) THEN
-         CALL ef_get_axis_modulo_len(id, ARG7, T_AXIS, modtlen)
+         CALL ef_get_axis_modulo_len(id, ARG8, T_AXIS, modtlen)
       ENDIF
 
 *  Find number of points in scattered input points.  1-D arrays defining the
@@ -375,18 +407,31 @@
          ENDIF
   20  CONTINUE
 
-      ntpts = 0
+      nzpts = 0
       DO 40 idx = X_AXIS, F_AXIS
          lo_ss = arg_lo_ss(idx,ARG3)
          hi_ss = arg_hi_ss(idx,ARG3)
          IF ( lo_ss .NE. ef_unspecified_int4 ) THEN
             IF ( ntpts .NE. 0 ) THEN
+               nzpts = ntpts * (hi_ss - lo_ss + 1)
+            ELSE
+               nzpts = hi_ss - lo_ss + 1
+            ENDIF
+         ENDIF
+  40  CONTINUE
+
+      ntpts = 0
+      DO 50 idx = X_AXIS, F_AXIS
+         lo_ss = arg_lo_ss(idx,ARG4)
+         hi_ss = arg_hi_ss(idx,ARG4)
+         IF ( lo_ss .NE. ef_unspecified_int4 ) THEN
+            IF ( ntpts .NE. 0 ) THEN
                ntpts = ntpts * (hi_ss - lo_ss + 1)
             ELSE
                ntpts = hi_ss - lo_ss + 1
             ENDIF
          ENDIF
-  40  CONTINUE
+  50  CONTINUE
 
       nscat = 0
       DO 80 idx = X_AXIS, F_AXIS
@@ -405,8 +450,12 @@
          WRITE (errtxt, 90) ' XPTS,', ' YPTS ', nxpts, nypts
          GOTO 999
       ENDIF
+      IF ( nxpts .NE. nzpts ) THEN
+         WRITE (errtxt, 90) ' XPTS,', ' ZPTS ', nxpts, nzpts
+         GOTO 999
+      ENDIF
       IF ( nxpts .NE. ntpts ) THEN
-         WRITE (errtxt, 90) ' XPTS,', ' TPTS ', nxpts, nypts
+         WRITE (errtxt, 90) ' XPTS,', ' TPTS ', nxpts, ntpts
          GOTO 999
       ENDIF
       IF ( nxpts .NE. nscat ) THEN
@@ -416,87 +465,110 @@
   90  FORMAT('Input scattered', 2A6, 'have different # of points', 2I8)
 
       IF ( nscat .LE. 0 ) THEN
-         errtxt = 'No data in scattered x, y, t points'
+         errtxt = 'No data in scattered x, y, z, t points'
          GOTO 999
       ENDIF
 
 *  Compute number of points in output axes.
 
-      lo_ss = arg_lo_ss(X_AXIS,ARG5)
-      hi_ss = arg_hi_ss(X_AXIS,ARG5)
+      lo_ss = arg_lo_ss(X_AXIS,ARG6)
+      hi_ss = arg_hi_ss(X_AXIS,ARG6)
 *  Check that xax is an X axis
       IF ( lo_ss .EQ. ef_unspecified_int4 ) THEN
-         errtxt = 'Fifth argument must be an X axis'
+         errtxt = 'Sixth argument must be an X axis'
          GOTO 999
       ENDIF
       nx = hi_ss - lo_ss + 1
 
-      lo_ss = arg_lo_ss(Y_AXIS,ARG6)
-      hi_ss = arg_hi_ss(Y_AXIS,ARG6)
+      lo_ss = arg_lo_ss(Y_AXIS,ARG7)
+      hi_ss = arg_hi_ss(Y_AXIS,ARG7)
 *  Check that yax a Y axis
       IF ( lo_ss .EQ. ef_unspecified_int4 ) THEN
-         errtxt = 'Sixth argument must be a Y axis'
+         errtxt = 'Seventh argument must be a Y axis'
          GOTO 999
       ENDIF
       ny = hi_ss - lo_ss + 1
 
-      lo_ss = arg_lo_ss(T_AXIS,ARG7)
-      hi_ss = arg_hi_ss(T_AXIS,ARG7)
+      lo_ss = arg_lo_ss(Z_AXIS,ARG8)
+      hi_ss = arg_hi_ss(Z_AXIS,ARG8)
+*  Check that zax a Z axis
+      IF ( lo_ss .EQ. ef_unspecified_int4 ) THEN
+         errtxt = 'Eighth argument must be a Z axis'
+         GOTO 999
+      ENDIF
+      nz = hi_ss - lo_ss + 1
+
+      lo_ss = arg_lo_ss(T_AXIS,ARG9)
+      hi_ss = arg_hi_ss(T_AXIS,ARG9)
 *  Check that tax a T axis
       IF ( lo_ss .EQ. ef_unspecified_int4 ) THEN
-         errtxt = 'Seventh argument must be a T axis'
+         errtxt = 'Ninth argument must be a T axis'
          GOTO 999
       ENDIF
       nt = hi_ss - lo_ss + 1
 
 C  Get coordinates of output axes.
 
-      CALL EF_GET_BOX_LIMITS(id, ARG5, X_AXIS, arg_lo_ss(X_AXIS, ARG5),
-     .                       arg_hi_ss(X_AXIS, ARG5), xaxlo, xaxhi)
+      CALL EF_GET_BOX_LIMITS(id, ARG6, X_AXIS, arg_lo_ss(X_AXIS, ARG6),
+     .                       arg_hi_ss(X_AXIS, ARG6), xaxlo, xaxhi)
 
-      CALL EF_GET_BOX_LIMITS(id, ARG6, Y_AXIS, arg_lo_ss(Y_AXIS, ARG6),
-     .                       arg_hi_ss(Y_AXIS, ARG6), yaxlo, yaxhi)
+      CALL EF_GET_BOX_LIMITS(id, ARG7, Y_AXIS, arg_lo_ss(Y_AXIS, ARG7),
+     .                       arg_hi_ss(Y_AXIS, ARG7), yaxlo, yaxhi)
 
-      CALL EF_GET_BOX_LIMITS(id, ARG7, T_AXIS, arg_lo_ss(T_AXIS, ARG7),
-     .                       arg_hi_ss(T_AXIS, ARG7), taxlo, taxhi)
+      CALL EF_GET_BOX_LIMITS(id, ARG8, Z_AXIS, arg_lo_ss(Z_AXIS, ARG8),
+     .                       arg_hi_ss(Z_AXIS, ARG8), zaxlo, zaxhi)
+
+      CALL EF_GET_BOX_LIMITS(id, ARG9, T_AXIS, arg_lo_ss(T_AXIS, ARG9),
+     .                       arg_hi_ss(T_AXIS, ARG9), taxlo, taxhi)
 
 *  Compute result
 
-      k = res_lo_ss(Z_AXIS)
       m = res_lo_ss(E_AXIS)
       n = res_lo_ss(F_AXIS)
 
 *  Initialize result.
 
       DO l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+       DO k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
          DO j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
             DO i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
                result(i,j,k,l,m,n) = 0.0
             ENDDO
          ENDDO
+       ENDDO
       ENDDO
 
-*  Loop over x,y,t, placing the function values in the appropriate slots
-*  in the grid. xpts and ypts may be on the X,Y,Z,T,E or F axis of ARG1
+*  Initialize counts.
+
+      DO l1 = 1, nt
+       DO k1 = 1, nz
+         DO j1 = 1, ny
+            DO i1 = 1, nx
+               counts(i1,j1,k1,l1) = 0.0
+            ENDDO
+         ENDDO
+       ENDDO
+      ENDDO
+
+*  Loop over x,y,z,t, placing the function values in the appropriate slots
+*  in the grid. xpts,ypts,zpts,tpts may be on the X,Y,Z,T,E or F axis of ARG1
 *  and ARG2, sending them to a subroutine collapses the extra dimensions
 *  so the value can be found.
 
       DO 700 idx = 1, nscat
 
-         CALL pickout4(arg_1, arg_2, arg_3, arg_4, idx, xx, yy, tt, ff)
+         CALL pickout5(arg_1, arg_2, arg_3, arg_4, arg_5, idx, xx, yy, zz, tt, ff)
          IF ( xx .EQ. bad_flag(ARG1) .OR.
      .        yy .EQ. bad_flag(ARG2) .OR.
-     .        tt .EQ. bad_flag(ARG3) .OR.
-     .        ff .EQ. bad_flag(ARG4) ) GOTO 700
+     .        zz .EQ. bad_flag(ARG3) .OR. 
+     .        tt .EQ. bad_flag(ARG4) .OR. 
+     .        ff .EQ. bad_flag(ARG5) ) GOTO 700
 
 *  If output axis is modulo, apply modulo adjustment to that coordinate
 *  of the scattered point.
          IF ( modulox ) THEN
             CALL modscat(xaxlo(1), xaxhi(nx), modxlen, 1, xx)
          ENDIF
-         IF ( moduloy ) THEN
-            CALL modscat(yaxlo(1), yaxhi(ny), modylen, 1, yy)
-         ENDIF
          IF ( modulot ) THEN
             CALL modscat(taxlo(1), taxhi(nt), modtlen, 1, tt)
          ENDIF
@@ -507,6 +579,10 @@ C  Get coordinates of output axes.
          DO 400 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
             IF ( tt .GE. taxlo(l1) .AND. tt .LT. taxhi(l1) ) THEN
 
+         k1 = 1
+         DO 300 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+            IF ( zz .GE. zaxlo(k1) .AND. zz .LT. zaxhi(k1) ) THEN
+
          j1 = 1
          DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
             IF ( yy .GE. yaxlo(j1) .AND. yy .LT. yaxhi(j1) ) THEN
@@ -515,8 +591,9 @@ C  Get coordinates of output axes.
          DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
             IF ( xx .GE. xaxlo(i1) .AND. xx .LT. xaxhi(i1) ) THEN
 
-               result(i,j,k,l,m,n) = result(i,j,k,l,m,n) + 1.0
-*  Location found and point assigned; go to the next scatter point
+               result(i,j,k,l,m,n) = result(i,j,k,l,m,n) + ff
+               counts(i1,j1,k1,l1) = counts(i1,j1,k1,l1) + 1.0
+*              Location found and point assigned; go to the next scatter point
                GOTO 700
 
             ENDIF
@@ -528,11 +605,47 @@ C  Get coordinates of output axes.
  200     CONTINUE
 
             ENDIF
+            k1 = k1 + 1
+ 300     CONTINUE
+
+            ENDIF
             l1 = l1 + 1
  400     CONTINUE
 
  700  CONTINUE
 
+* Compute result, average in each bin.
+
+      l1 = 1
+      DO 410 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+      k1 = 1
+      DO 310 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+      j1 = 1
+      DO 210 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+      i1 = 1
+      DO 110 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+         IF ( counts(i1,j1,k1,l1) .GT. 0.0 ) THEN
+            result(i,j,k,l,m,n) = result(i,j,k,l,m,n) / counts(i1,j1,k1,l1)
+         ELSE
+            result(i,j,k,l,m,n) = bad_flag_result
+         ENDIF
+
+         i1 = i1 + 1
+ 110  CONTINUE
+
+         j1 = j1 + 1
+ 210  CONTINUE
+
+         k1 = k1 + 1
+ 310  CONTINUE
+
+         l1 = l1 + 1
+ 410  CONTINUE
+
       RETURN
 
  999  CALL EF_BAIL_OUT(id, errtxt)
diff --git a/fer/efi/scat2grid_nbin_xyt.F b/fer/efi/scat2grid_nbin_xyt.F
index f7a5fc2..94670a0 100644
--- a/fer/efi/scat2grid_nbin_xyt.F
+++ b/fer/efi/scat2grid_nbin_xyt.F
@@ -233,7 +233,6 @@
       RETURN
       END
 
-
 *
 * In this subroutine we compute the result
 *
@@ -313,8 +312,8 @@
 *  variables for checking axis characteristics (modulo axes)
       CHARACTER ax_name(6)*16, ax_units(6)*16
       LOGICAL backward(6), mdulo(6), regular(6)
-      LOGICAL modulox, moduloy, modulot
-      REAL*8 modxlen, modylen, modtlen
+      LOGICAL modulox, modulot
+      REAL*8 modxlen, modtlen
 
       CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
@@ -328,14 +327,6 @@
          CALL ef_get_axis_modulo_len(id, ARG5, X_AXIS, modxlen)
       ENDIF
 
-*  Check to see if the output Y-axis is modulo (does not need to be regular)
-      CALL ef_get_axis_info_6d(id, ARG6, ax_name, ax_units,
-     .                         backward, mdulo, regular)
-      moduloy = mdulo(Y_AXIS)
-      IF ( moduloy ) THEN
-         CALL ef_get_axis_modulo_len(id, ARG6, Y_AXIS, modylen)
-      ENDIF
-
 *  Check to see if the output T-axis is modulo (does not need to be regular)
       CALL ef_get_axis_info_6d(id, ARG7, ax_name, ax_units,
      .                         backward, mdulo, regular)
@@ -494,9 +485,6 @@ C  Get coordinates of output axes.
          IF ( modulox ) THEN
             CALL modscat(xaxlo(1), xaxhi(nx), modxlen, 1, xx)
          ENDIF
-         IF ( moduloy ) THEN
-            CALL modscat(yaxlo(1), yaxhi(ny), modylen, 1, yy)
-         ENDIF
          IF ( modulot ) THEN
             CALL modscat(taxlo(1), taxhi(nt), modtlen, 1, tt)
          ENDIF
diff --git a/fer/efi/scat2grid_subs.F b/fer/efi/scat2grid_subs.F
index d2de6f3..bee1750 100644
--- a/fer/efi/scat2grid_subs.F
+++ b/fer/efi/scat2grid_subs.F
@@ -91,7 +91,7 @@
       SUBROUTINE pickout4 (alon, alat, atimes, vals, n, xx, yy, tt, vv)
 
 *  Called from the scatter*  gridding functins.
-*  Pick out nth item from alon and alat, which are really 4-dimensioned arrays
+*  Pick out nth item from alon, alat, atimes, which are really 4-dimensioned arrays
 *  with normal axes on three of the four axes.
 *  (can be any variables, typically lon,lat,time,value or lon,lat,depth,time, etc)
 
@@ -107,6 +107,27 @@
       RETURN
       END
 
+      SUBROUTINE pickout5 (alon, alat, adepths, atimes, vals, n, xx, yy, zz, tt, vv)
+
+*  Called from the scatter*  gridding functins.
+*  Pick out nth item from alon, alat, azdep, atimes, which are really 4-dimensioned arrays
+*  with normal axes on three of the four axes.
+*  (can be any variables, typically lon,lat,time,depth,value etc)
+
+      REAL alon(*), alat(*), adepths(*), atimes(*), vals(*)
+      REAL xx, yy, zz, tt, vv
+      INTEGER n
+
+      xx = alon(n)
+      yy = alat(n)
+      tt = atimes(n)
+      zz = adepths(n)
+      vv = vals(n)
+
+      RETURN
+      END
+
+
 c************************************************************************
 c...NOBS.....Based on gausswt, return only the # of obs in (x,y) gridbox
 c............method is to call this sub for each data value
diff --git a/fer/efi/separate.F b/fer/efi/separate.F
index b671aa5..deacdd9 100644
--- a/fer/efi/separate.F
+++ b/fer/efi/separate.F
@@ -86,6 +86,9 @@
 
       CALL ef_set_desc(id,
      . 'Insert a bad-value between features (Discrete Sampling Geometries datasets)' )
+      
+* Tell Ferret to run the following instead, if the arguments are strings.
+      CALL ef_set_alt_fcn_name(id, 'SEPARATE_STR')
 
       CALL ef_set_num_args(id, 3)
       CALL ef_set_has_vari_args(id, NO)
diff --git a/fer/fmt/ascii_limits.F b/fer/fmt/ascii_limits.F
index e32205d..0041785 100644
--- a/fer/fmt/ascii_limits.F
+++ b/fer/fmt/ascii_limits.F
@@ -58,6 +58,7 @@
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction.
 * v687  *acm* 3/14 Fix ticket 2149: TM_GET_CAL gets the calendar label from the T axis.
 * v690 *sh* 4/14 show regridding by "false 1 pt" curvilinear regrid 
+* V698 *sh* 4/16 document a true E ensemble axis with dataset identifier
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -65,6 +66,7 @@
 	include 'xalgebra.cmn'
 	include 'calendar.decl'
 	include 'calendar.cmn'
+	include 'xdset_info.cmn_text'
 
 * calling argument declarations:
 	INTEGER		cx, idim, slen
@@ -75,9 +77,11 @@
 	PARAMETER     ( full_precision = .TRUE. )
 
 * internal variable declarations:
-	INTEGER		TM_LENSTR, TM_GET_CALENDAR_ID, 
+	LOGICAL		TM_HAS_STRING, its_ensemble
+	INTEGER		TM_LENSTR, TM_GET_CALENDAR_ID,
+     .			TM_LENSTR1, ENSEMBLE_MEMBER_DSET,
      .			max_len, len_trans, llen, trans, i,
-     .			grid, cal_id, len_cal
+     .			grid, cal_id, len_cal, dset, slen2, memb_dset
 	CHARACTER	ALG_TRANS_TITL*20, LOHI_WORLD*44, LEFINT*4, 
      .			TM_FMT*10, TM_GET_CAL*32, TM_GET_F_CAL*32,
      .			VAR_CODE*128,
@@ -88,6 +92,16 @@
 	max_len	= LEN(string)
 	trans     = cx_trans( idim, cx )
 	trans_arg = cx_trans_arg( idim, cx )
+	dset = cx_data_set(cx)
+
+* is this a label for an ensemble axis?
+	its_ensemble = .FALSE.
+	its_ensemble = idim .EQ. E_dim
+     .		    .AND. dset.GT.pdset_irrelevant
+     .	            .AND. dset.LE.max_gfdl_dsets
+ 	IF (its_ensemble) THEN
+	      its_ensemble = TM_HAS_STRING(ds_type(dset), 'ENS')
+	ENDIF
 
 * not an applicable dimension ?
 	IF ( cx_lo_ww( idim, cx ) .EQ. unspecified_val8 ) THEN
@@ -157,5 +171,24 @@
 	   ENDIF
 	ENDIF
 
+* a single ensemble member name
+	IF ( its_ensemble
+     .  .AND.cx_lo_ss(cx,idim).NE.unspecified_int4
+     .  .AND.cx_lo_ss(cx,idim).EQ.cx_lo_ss(cx,idim) ) THEN
+
+
+* ... get the special string that indicates the ensemble member
+	   memb_dset = ENSEMBLE_MEMBER_DSET(dset, cx_lo_ss(cx,idim))
+	   IF (  memb_dset.GT.pdset_irrelevant
+     .	    .AND.memb_dset.LE.max_gfdl_dsets) THEN
+	      slen2 = TM_LENSTR1( ds_name(memb_dset) )
+	      slen2 = MIN(slen2, 12)  ! no more than 12 chars
+	      string = string(1:slen)//' ('// 
+     .		       ds_name(memb_dset)(1:slen2) // ')'	
+	      slen = TM_LENSTR1( string )
+	   ENDIF
+	ENDIF
+
+
 	RETURN
 	END
diff --git a/fer/fmt/aux_var_units.F b/fer/fmt/aux_var_units.F
index 5aac023..91306c0 100644
--- a/fer/fmt/aux_var_units.F
+++ b/fer/fmt/aux_var_units.F
@@ -42,6 +42,9 @@
 * written for VAX computer under VMS operating system
 *
 * V698+ *sh* 5/15 - derived from var_units.F
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
+* V698  3/16 *sh* added logic for cat_ef_time2d  (ACTS_LIKE_FVAR)
 
 	include	'tmap_dims.parm'
 	include	'xdset_info.cmn_text'
@@ -52,14 +55,14 @@
 	include	'errmsg.parm'
 	include	'xtext_info.cmn'
 	include	'xcontext.cmn'
-	include	'xcalc_vars.cmn'
 	include	'xvariables.cmn'
+        include 'xpyvar_info.cmn'
 
 * calling argument declarations
 	INTEGER	cx, idim
 
 * internal variable declarations
-	LOGICAL UNIT_CHG_AX
+	LOGICAL UNIT_CHG_AX, ACTS_LIKE_FVAR
 	INTEGER	category, variable, status
 
 * initialize
@@ -72,15 +75,13 @@
 	ENDIF
 
 * select units by category of variable
-	IF     ( category .EQ. cat_file_var .OR. 
-     .		 category .EQ. cat_agg_e_var .OR. 
-     .		 category .EQ. cat_agg_f_var) THEN
+	IF     ( ACTS_LIKE_FVAR(category) ) THEN
 
 	   AUX_VAR_UNITS = ds_var_units( variable )
 
-	ELSEIF ( category .EQ. cat_calc_var ) THEN
+	ELSEIF ( category .EQ. cat_pystat_var ) THEN
 
-	   AUX_VAR_UNITS = unit_text( cvar_unit_code(variable) )
+	   AUX_VAR_UNITS = pyvar_units( variable )
 
 	ELSEIF ( category .EQ. cat_user_var ) THEN
 
diff --git a/fer/fmt/cx_dim_str.F b/fer/fmt/cx_dim_str.F
index 2b47e5a..151089a 100644
--- a/fer/fmt/cx_dim_str.F
+++ b/fer/fmt/cx_dim_str.F
@@ -52,11 +52,13 @@
 * V533:  6/01 - allow for the possibility of negative subscripts
 * V600:  1/06 *acm*  prevent values of LOG10(0.0) 
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V698 *sh* 3/2016 document a true E ensemble axis with dataset identifier
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
 	include 'xcontext.cmn'
 	include 'xtext_info.cmn'
+	include 'xdset_info.cmn_text'
 
 * calling argument declarations
 	LOGICAL	full_prec
@@ -64,14 +66,28 @@
 	CHARACTER*(*) to_word
 
 * local variable declarations:
+	LOGICAL TM_HAS_STRING, its_ensemble
 	CHARACTER LOHI_WORLD*44
-	INTEGER TM_LENSTR, llen, ndigits, cx_dim_str_len
 	CHARACTER ALG_TRANS_CODE*3, ARG_STRING*12, LEFINT*8, buff*8
+	INTEGER TM_LENSTR1, ENSEMBLE_MEMBER_DSET
+	INTEGER llen, ndigits, cx_dim_str_len, dset, slen2, memb_dset
 
 * initialize - put in "=" and blank out string
         cx_dim_str_len = LEN( CX_DIM_STR )
 	CX_DIM_STR = '*='
 
+* initialize special case of documenting an ensemble axis
+	its_ensemble = .FALSE.
+	IF (cx .GT. cx_buff) THEN
+	   dset = cx_data_set(cx)
+	   its_ensemble = idim .EQ. E_dim
+     .		    .AND. dset.GT.pdset_irrelevant
+     .	            .AND. dset.LE.max_gfdl_dsets
+ 	   IF (its_ensemble) THEN
+	      its_ensemble = TM_HAS_STRING(ds_type(dset), 'ENS')
+	   ENDIF
+	ENDIF
+
 * create "lo_limit" or "lo:hi" in subscript or world coords
 
 * SUBSCRIPT NOTATION (I,J,K or L)
@@ -127,7 +143,25 @@
 	   CX_DIM_STR = CX_DIM_STR(1:slen) // '@' //
      .				ALG_TRANS_CODE( cx_trans( idim, cx )) //
      .				ARG_STRING( cx_trans_arg( idim, cx ))
-	   slen = TM_LENSTR( CX_DIM_STR )
+	   slen = TM_LENSTR1( CX_DIM_STR )
+	ENDIF
+
+* a single ensemble member name
+	IF ( its_ensemble
+     .  .AND.cx_lo_ss(cx,idim).NE.unspecified_int4
+     .  .AND.cx_lo_ss(cx,idim).EQ.cx_lo_ss(cx,idim) ) THEN
+
+
+* ... get the special string that indicates the ensemble member
+	   memb_dset = ENSEMBLE_MEMBER_DSET(dset, cx_lo_ss(cx,idim))
+	   IF (  memb_dset.GT.pdset_irrelevant
+     .	    .AND.memb_dset.LE.max_gfdl_dsets) THEN
+	      slen2 = TM_LENSTR1( ds_name(memb_dset) )
+	      slen2 = MIN(slen2, 12)  ! no more than 12 chars
+	      CX_DIM_STR = CX_DIM_STR(1:slen) // ' ('
+     .			// ds_name(memb_dset)(:slen2) // ')'	
+	      slen = TM_LENSTR1( CX_DIM_STR )
+	   ENDIF
 	ENDIF
 	
 	RETURN
diff --git a/fer/fmt/full_uvar_name.F b/fer/fmt/full_uvar_name.F
index 0e5a895..170b8e5 100644
--- a/fer/fmt/full_uvar_name.F
+++ b/fer/fmt/full_uvar_name.F
@@ -44,23 +44,47 @@
 * V402:
 * V420:  4/96 - document "(/D default)" on pdset_irrelevant variables
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
+*                  using original upper/lowercase spelling
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure
 
 * calling argument declarations:
 	INTEGER	uvar
 
 * local variable declarations:
+	
+	LOGICAL coordvar
 	INTEGER TM_LENSTR1, len, len2
+	INTEGER dset, varid, vtype, nvdims, outflag, vdims(8), 
+     .		nvatts, status
 
 	include 'tmap_dims.parm'
 	include 'xdset_info.cmn_text'
 	external xdset_info_data
 	include 'ferret.parm'
 	include	'xvariables.cmn'
+	include	'xprog_state.cmn'
+	include 'errmsg.parm'
 
 * variable name and definition
 *	len = TM_LENSTR1(uvar_name_code(uvar))
         CALL string_array_get_strlen1(uvar_name_code_head,uvar,len)
 	FULL_UVAR_NAME = uvar_name_code(uvar)(:len)
+
+* Get the original upper/lowercase spelling if mode upcase is canceled.
+	IF (.NOT.mode_upcase_output) THEN  ! get original variable name
+	   dset = pdset_uvars
+	   CALL CD_GET_VAR_ID (dset, uvar_name_code(uvar), varid, status)
+	   IF (status .NE. ferr_ok) THEN
+              dset = uvar_dset(uvar)
+	      CALL CD_GET_VAR_ID (dset, uvar_name_code(uvar), varid, status)
+	   ENDIF
+	   IF (status .EQ. ferr_ok) 
+     .      CALL CD_GET_VAR_INFO (dset, varid, FULL_UVAR_NAME, vtype, 
+     .            nvdims, vdims, nvatts, coordvar, outflag, status)
+	ENDIF
+
 	IF (uvar_dset(uvar) .GT. pdset_irrelevant) THEN
 	   len2 = TM_LENSTR1(ds_name(uvar_dset(uvar)))
 	   FULL_UVAR_NAME = FULL_UVAR_NAME(:len)//'[D='//
diff --git a/fer/fmt/full_uvar_name_xml.F b/fer/fmt/full_uvar_name_xml.F
index bd165c9..a0b64f6 100644
--- a/fer/fmt/full_uvar_name_xml.F
+++ b/fer/fmt/full_uvar_name_xml.F
@@ -43,23 +43,41 @@
 *             from FULL_UVAR_NAME
 
 * V 6.66
+* V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
+*                  using original upper/lowercase spelling
+
 
 * calling argument declarations:
 	INTEGER	uvar
 
 * local variable declarations:
+	LOGICAL coordvar
 	INTEGER TM_LENSTR1, len, len2
+	INTEGER dset, varid, vtype, nvdims, outflag, vdims(8), 
+     .		nvatts, status
 
 	include 'tmap_dims.parm'
 	include 'xdset_info.cmn_text'
 	external xdset_info_data
 	include 'ferret.parm'
 	include	'xvariables.cmn'
+	include	'xprog_state.cmn'
+	include 'errmsg.parm'
 
 * variable name and definition
 *	len = TM_LENSTR1(uvar_name_code(uvar))
         CALL string_array_get_strlen1(uvar_name_code_head,uvar,len)
 	FULL_UVAR_NAME_XML = uvar_name_code(uvar)(:len)
+
+* Get the original upper/lowercase spelling if mode upcase is canceled.
+	IF (.NOT.mode_upcase_output) THEN  ! get original variable name
+	   dset = pdset_uvars
+	   CALL CD_GET_VAR_ID (dset, uvar_name_code(uvar), varid, status)
+	   IF (status .EQ. ferr_ok) 
+     .      CALL CD_GET_VAR_INFO (dset, varid, FULL_UVAR_NAME_XML, vtype, 
+     .            nvdims, vdims, nvatts, coordvar, outflag, status)
+	ENDIF
+
 	IF (uvar_dset(uvar) .GT. pdset_irrelevant) THEN
 	   len2 = TM_LENSTR1(ds_des_name(uvar_dset(uvar)))
 	   FULL_UVAR_NAME_XML = FULL_UVAR_NAME_XML(:len)//'[D='//
diff --git a/fer/fmt/lohi_world.F b/fer/fmt/lohi_world.F
index 440823a..11673ad 100644
--- a/fer/fmt/lohi_world.F
+++ b/fer/fmt/lohi_world.F
@@ -58,7 +58,9 @@
 *                  formatted
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 * V690 *sh* 1/14 - added kludge to display limits from aux var regrid by avg
-*	e.g. gz(depth)=0:100 at ave
+* V698  *acm* 5/16 Ticket 2405: MODE CALENDAR:auto
+* V698 *sh* 4/16 hack to format E axis limits as integers
+*	         Note:  this is a poor fix.  See 4/16 note below
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -66,9 +68,9 @@
 	include	'ferret.parm'
 	include 'xcontext.cmn'
 	include 'xprog_state.cmn'
-	include 'xvariables.cmn'		! added 3/90
+	include 'xvariables.cmn'	! added 3/90
 	include 'xfr_grid.cmn'		! added 3/90
-
+	include 'xunits.cmn_text'
 
 * calling argument declarations
 	LOGICAL	full_prec
@@ -76,9 +78,10 @@
 	CHARACTER*(*) to_word
 
 * internal variable declarations:
-	LOGICAL	aux_span_compress
-	INTEGER	sub_len, ndec, grid, status, cx_try
-	REAL*8	TM_WORLD, bc_to_t0, lo, hi, temp
+	LOGICAL	SCALAR_GRID_LINE, aux_span_compress, its_float
+	INTEGER	DATE_PREC, sub_len, ndec, grid, line, status, 
+     .          cx_try, cat, var, loss, hiss, delss, j, decimal
+	REAL*8	TM_WORLD, BOX_SIZE, bc_to_t0, lo, hi, small
 	CHARACTER*40	LOHI_STRING
 
 * initialize
@@ -114,11 +117,11 @@
         ENDIF
 	IF ( grid .EQ. unspecified_int4 ) grid = mgrid_abstract
 
-* is this just a single grid box with the world coord bod edges given ?
+* is this just a single grid box with the world coord box edges given ?
 * 1/14: for gz(depth)=0:100 at ave we have a valid single point target axis
 * on which we want to document the axis limits (in cx_lo/hi_ww), rather
 * than the point coordinate.  Look at cx_regrid_trans to decide.
- 200    IF ( cx_lo_ss(cx,idim) .NE. unspecified_int4
+ 200	   IF ( cx_lo_ss(cx,idim) .NE. unspecified_int4
      .	.AND.cx_lo_ss(cx,idim) .EQ. cx_hi_ss(cx,idim) 
      .	.AND. .NOT.aux_span_compress				) THEN
 	   lo = TM_WORLD( cx_lo_ss(cx,idim),grid, idim, box_middle )
@@ -128,15 +131,65 @@
 	   hi = cx_hi_ww( idim, cx )
 	ENDIF
 
+* hack for E axis positions, so @AVE gets labeled with integer index nos
+* *sh* 4/16 - this is a poor place to have fixed this problem
+*     better would be to create the concept of an "enumerated axis", which
+*     should always be represented as an integer position.  A quick way to
+*     do this is to create ITSA_ENUMERATED_AXIS, which (for now) answers .TRUE.
+*     only for E axes with units of plag_ax_units_e = 'realization'
+*     (This can be expanded later as more enumerated cases arise.)
+*     Then in TM_WORLD when returning a coordinate on an enumerated axis ignore
+*     box_lo_lim and box_hi_lim, returning box_middle (the integer position)
+	its_float = lo .NE. INT(lo)
+	IF (its_float .AND. idim.EQ.E_dim) THEN
+	   line = grid_line(idim,grid)
+	   IF ( (cx .GT. cx_buff)
+     .    .AND. line_units(line).EQ.plag_ax_units_e ) THEN
+	      cat = cx_category(cx)
+	      var = cx_variable(cx) 
+	      IF (cx_trans(idim,cx) .GT. trans_compress_code
+     .	   .OR.   (cat.EQ.cat_user_var
+     .       .AND. SCALAR_GRID_LINE(idim, grid, cat, var)) ) THEN
+	         lo = lo + 0.5
+	         hi = hi - 0.5
+	      ENDIF
+	   ENDIF
+	ENDIF
+
 * determine precision level for output string
 	IF ( full_prec ) THEN
 	   ndec = ax_dec_pt( idim )
 	ELSE
 	   ndec = 0
 	ENDIF
+	
+* What precision is needed to represent this delta and world range ?
+* Will write time string according to the resolution of the time axis
+* Uses same method as for text listings
+
+	decimal = ndec
+	IF (idim.EQ.t_dim .AND. ABS(ndec).GT.6) THEN
+	   loss = cx_lo_ss(cx,idim)
+	   hiss = cx_hi_ss(cx,idim)
+	   delss = 1
+	   IF (loss .NE. unspecified_int4) delss = cx_delta (idim,cx)
+
+* how large is the smallest "delta" world coordinate to represent ?
+	   small = +1.E33
+	   IF (line_delta(grid_line( idim, grid )) .NE. unspecified_val8) THEN
+              small = line_delta( grid_line(idim, grid) )
+	   ELSE
+ 	      DO j = cx_lo_ss(cx,idim), cx_hi_ss(cx,idim), delss
+	         small = MIN( small, BOX_SIZE( j, grid, idim ) )
+ 	      ENDDO
+	   ENDIF
+
+	   decimal = DATE_PREC( grid, idim, small )
+	   decimal = decimal + 1
+	ENDIF
 
 * create the string
-	LOHI_WORLD = LOHI_STRING( lo,hi,idim,grid,to_word,ndec,slen )
+	LOHI_WORLD = LOHI_STRING( lo,hi,idim,grid,to_word,decimal,slen )
 	
 	RETURN
 	END
diff --git a/fer/fmt/var_title.F b/fer/fmt/var_title.F
index a7b7447..1815357 100644
--- a/fer/fmt/var_title.F
+++ b/fer/fmt/var_title.F
@@ -68,6 +68,9 @@
 * V600  4/06 *acm* - additional declarations found by Solaris compiler
 * V601 10/06 *acm* fix bug 1442. plot and listing titles should show the 
 *                  variable title, or if no title, the variable name.
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
+* V698 3/16  *sh* added logic for cat_ef_time2d (ACTS_LIKE_FVAR)
 
         include	'tmap_dims.parm'
 	include	'xdset_info.cmn_text'
@@ -76,7 +79,6 @@
 	external xgt_grid_data
 	include	'ferret.parm'
 	include	'xvariables.cmn'
-	include	'xcalc_vars.cmn'
 	include	'xcontext.cmn'
 	include	'xalgebra.cmn'
         include 'xpyvar_info.cmn'
@@ -86,7 +88,7 @@
 	INTEGER	cx
 
 * internal variable declarations
-	LOGICAL 	UNIT_CHG_AX, NC_GET_ATTRIB, got_it
+	LOGICAL 	UNIT_CHG_AX, NC_GET_ATTRIB, ACTS_LIKE_FVAR, got_it
 	INTEGER 	TM_LENSTR1, cat, var, idim, tlen, llen, trans,
      .			uvar, item, start, end, slen, dset, varid,
      .                  attlen, attoutflag, status
@@ -99,10 +101,7 @@
 	var = cx_variable( cx )
 	cat = cx_category( cx )
 
-	IF     ( cat .EQ. cat_file_var .OR. 
-     .		 cat .EQ. cat_agg_e_var .OR. 
-     .		 cat .EQ. cat_agg_f_var) THEN
-
+	IF     ( ACTS_LIKE_FVAR(cat) ) THEN
 	   IF ( ds_var_title( var )(1:1) .NE. ' ' ) THEN
 	      var_title = ds_var_title( var )
 	   ELSE
@@ -132,10 +131,6 @@
               var_title = pyvar_title( var )
            ENDIF
 
-	ELSEIF ( cat .EQ. cat_calc_var ) THEN
-
-	   var_title = cvar_primary_name( var )
-
 	ELSEIF ( cat .EQ. cat_user_var  ) THEN
 
 	   IF ( uvar_title( var ) .EQ. ' ' ) THEN
diff --git a/fer/fmt/var_title_mod.F b/fer/fmt/var_title_mod.F
index 8963967..c983e3f 100644
--- a/fer/fmt/var_title_mod.F
+++ b/fer/fmt/var_title_mod.F
@@ -69,6 +69,8 @@
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction. 
 * V690 *sh* suppress comment about regridding for 1pt 'false regridding'
 *       used on  curvilinear variables.  It will be documented in ASCII_LIMITS.
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
 
 	include	'tmap_dims.parm'
 	include	'xdset_info.cmn_text'
@@ -80,7 +82,6 @@
 	include	'xcontext.cmn'
 	include	'xalgebra.cmn'
 	include	'xtext_info.cmn'
-	include	'xdset_parms.cmn'
 
 * calling argument declarations
 	INTEGER cx
@@ -113,128 +114,6 @@
 	add_on = mlen .GT. 0
 	mlen = MAX( 1, mlen )		! avoid zero len string errors
 
-* add remark about accuracy of d/dT derivative
-	trans = cx_trans( t_dim, cx )
-	IF ( trans .EQ. trans_no_transform 
-     . .AND. cx_trans_arg(t_dim,cx) .NE. bad_val4
-     . .AND. categ .EQ. cat_calc_var
-     . .AND. ( var .EQ. pubps  .OR.  var .EQ. pvbps
-     .		.OR.  (pdudt.LE. var .AND. var.LE.pdtdt) ) ) THEN
-	   IF ( add_on ) THEN
-	      var_title_mod = var_title_mod(:mlen) //' - '
-	      mlen = MIN( maxlen, mlen + 3 )
-	   ELSE
-	      add_on = .TRUE.
-	   ENDIF
-	   IF ( cx_trans_arg(t_dim,cx) .EQ. bad_val4 ) THEN
-	      var_title_mod = var_title_mod(:mlen) //'irregular dt'
-	      mlen = MIN( maxlen, mlen+12 )
-	   ELSE
-	      var_title_mod = var_title_mod(:mlen) //
-     .			     'dt='//TM_FMT( cx_trans_arg(t_dim,cx), 4, 8, slen )
-	      mlen = MIN( maxlen, mlen+3+slen )
-	   ENDIF
-	ENDIF
-
-	trans = cx_trans( f_dim, cx )
-	IF ( trans .EQ. trans_no_transform 
-     . .AND. cx_trans_arg(f_dim,cx) .NE. bad_val4
-     . .AND. categ .EQ. cat_calc_var
-     . .AND. ( var .EQ. pubps  .OR.  var .EQ. pvbps
-     .		.OR.  (pdudt.LE. var .AND. var.LE.pdtdt) ) ) THEN
-	   IF ( add_on ) THEN
-	      var_title_mod = var_title_mod(:mlen) //' - '
-	      mlen = MIN( maxlen, mlen + 3 )
-	   ELSE
-	      add_on = .TRUE.
-	   ENDIF
-	   IF ( cx_trans_arg(f_dim,cx) .EQ. bad_val4 ) THEN
-	      var_title_mod = var_title_mod(:mlen) //'irregular dt'
-	      mlen = MIN( maxlen, mlen+12 )
-	   ELSE
-	      var_title_mod = var_title_mod(:mlen) //
-     .			     'dt='//TM_FMT( cx_trans_arg(f_dim,cx), 4, 8, slen )
-	      mlen = MIN( maxlen, mlen+3+slen )
-	   ENDIF
-	ENDIF
-
-* some variables need all the comments about surface heat flux
-* namely: QFLX and (QDF or QDFZ) at the surface
-	k_lo     = cx_lo_ss( cx, z_dim ) 
-	vcalc = categ .EQ. cat_calc_var
-	all_q = vcalc .AND. ( var.EQ.pqflx	.OR.
-     .		  ( (var.EQ.pqdfz .OR. var.EQ.pqdf) .AND. k_lo.EQ.1 ) )
-
-* add remark about clim. air T vs. const. air/sea temperature difference
-	IF ( all_q .OR. 
-     .	     ( vcalc .AND.  ( var.EQ.pqsen .OR. var.EQ.pqeva
-     .			.OR.  var.EQ.pair  .OR. var.EQ.pcair ) ) ) THEN
-	   IF ( add_on ) THEN
-	      var_title_mod = var_title_mod(:mlen) //' - '
-	      mlen = MIN( maxlen, mlen + 3 )
-	   ELSE
-	      add_on = .TRUE.
-	   ENDIF
-	   IF ( .NOT.dp_const_air_sst(dset) .OR. var .EQ. pcair ) THEN
-	      cairt = dp_clim_air_sst( dset )		! cairt used in calcs
-	      cairt_dset = dp_airt_dset( cairt )	! dset containing cairt
-* ... base remark on experiment number to ensure that neither file names,
-*     logicals, nor descriptors can point to wrong climatological data
-	      var_title_mod = var_title_mod(:mlen) // ds_expnum( cairt_dset )
-     .			      // ' air T'	
-	      mlen = MIN( maxlen, mlen+10 )
-	   ELSE
-* ... constant air sst difference
-	      var_title_mod = var_title_mod(:mlen) // 'air/sst dT=' //
-     .		TM_FMT( dp_delta_air_sst(dset), 4, 8, slen )
-	      mlen = MIN( maxlen, mlen+11+slen )
-	   ENDIF
-	ENDIF
-
-* add remark about minimum wind used
-	IF ( all_q .OR. 
-     .	     ( vcalc .AND. (var.EQ.pqsen .OR. var.EQ.pqeva) ) ) THEN
-	   var_title_mod = var_title_mod(:mlen) // ';min. wind=' //
-     .		TM_FMT( dp_min_wind(dset), 4, 8, slen )
-	   mlen = MIN( maxlen, mlen+11+slen )
-	ENDIF
-
-* add remark about the surface radiation calculation
-	IF ( all_q .OR. ( vcalc .AND. var.EQ.pqrad ) ) THEN
-	   IF ( add_on ) THEN
-	      var_title_mod = var_title_mod(:mlen) //' - '
-	      mlen = MIN( maxlen, mlen + 3 )
-	   ELSE
-	      add_on = .TRUE.
-	   ENDIF
-	   IF ( dp_phil_qflux(dset) ) THEN
-	      var_title_mod = var_title_mod(:mlen) // 'Phil/Sieg Q flux'
-	      mlen = MIN( maxlen, mlen+14 )
-	   ELSEIF ( dp_ramp1_qflux(dset) ) THEN
-	      var_title_mod = var_title_mod(:mlen) // 'single heat ramp'
-	      mlen = MIN( maxlen, mlen+16 )
-	   ELSEIF ( dp_ramp2_qflux(dset) ) THEN
-	      var_title_mod = var_title_mod(:mlen) // 'double heat ramp'
-	      mlen = MIN( maxlen, mlen+16 )
-	   ENDIF
-	ENDIF
-
-* add remark about momentum diffusion coefficient
-* add second pair of parens around second conditional statement below 
-*     *kob* 4/14/98
-	IF ( vcalc .AND. ((var.EQ.pudfh) .OR. (var.EQ.pvdfh)) ) THEN
-	   IF ( add_on ) THEN
-	      var_title_mod = var_title_mod(:mlen) //' - '
-	      mlen = MIN( maxlen, mlen + 3 )
-	   ELSE
-	      add_on = .TRUE.
-	   ENDIF
-	      buffer = 	      TM_FMT( dp_Am_factor(dset), 3, 5, slen )
-	      var_title_mod = var_title_mod(:mlen)//
-     .			      'Am=' // buffer(:slen)
-	      mlen = MIN( maxlen, mlen+3+slen )
-	ENDIF
-
 * add axis name to pseudo variables
 	IF ( categ .EQ. cat_pseudo_var ) THEN
 	   idim = MOD( var-1, 6 ) + 1
diff --git a/fer/fmt/var_units.F b/fer/fmt/var_units.F
index 8994228..0669db0 100644
--- a/fer/fmt/var_units.F
+++ b/fer/fmt/var_units.F
@@ -55,6 +55,9 @@
 *                  onto CHAR function variable 
 * v554 *acm* 1/04 - add variable category cat_counter_var
 * V600 *acm* 3/06 - add variable category cat_attrib_val
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
+* V698  3/16 *sh* added logic for cat_ef_time2d (ACTS_LIKE_FVAR)
 
 	include	'tmap_dims.parm'
 	include	'xdset_info.cmn_text'
@@ -64,7 +67,6 @@
 	include	'ferret.parm'
 	include	'xtext_info.cmn'
 	include	'xcontext.cmn'
-	include	'xcalc_vars.cmn'
 	include	'xvariables.cmn'
 	include	'xpyvar_info.cmn'
 
@@ -72,7 +74,7 @@
 	INTEGER	cx
 
 * internal variable declarations
-	LOGICAL UNIT_CHG_AX
+	LOGICAL UNIT_CHG_AX, ACTS_LIKE_FVAR
 	INTEGER	TM_LENSTR1, slen, category, variable, idim, axis, trans
 	CHARACTER*2048 buff
 
@@ -81,9 +83,7 @@
 	variable = cx_variable( cx )
 
 * select units by category of variable
-	IF     ( category .EQ. cat_file_var .OR. 
-     .		 category .EQ. cat_agg_e_var .OR. 
-     .		 category .EQ. cat_agg_f_var) THEN
+	IF     ( ACTS_LIKE_FVAR(category) ) THEN
 
 	   VAR_UNITS = ds_var_units( variable )
 
@@ -91,10 +91,6 @@
 
            VAR_UNITS = pyvar_units( variable )
 
-	ELSEIF ( category .EQ. cat_calc_var ) THEN
-
-	   VAR_UNITS = unit_text( cvar_unit_code(variable) )
-
 	ELSEIF ( category .EQ. cat_user_var ) THEN
 
 	   VAR_UNITS = uvar_units( variable )
diff --git a/fer/gnl/SOURCE_FILES b/fer/gnl/SOURCE_FILES
index 26ce775..1da98e3 100644
--- a/fer/gnl/SOURCE_FILES
+++ b/fer/gnl/SOURCE_FILES
@@ -1,17 +1,21 @@
 SRCS_F = \
 add_attribute.F\
+agg_clean_grids.F\
 alias_command.F\
 alias_id.F\
 all_1_arg.F\
 arg_string.F\
 atom_pos.F\
 auto_filename.F\
+build_t_agg_axis.F\
 cancel_data_set.F\
+cancel_one_data_set.F\
 cdf_list.F\
 cdf_list_global_atts.F\
 check_format.F\
 check_memory.F\
 check_member_sets.F\
+choose_line_name.F\
 cleanup_last_cmnd.F\
 coached_str_sub.F\
 create_agg_axis.F\
@@ -19,8 +23,9 @@ create_agg_dset.F\
 cs_command.F\
 cs_semicolon.F\
 ctrl_c.F\
-define_aggregate_grid.F\
+define_ef_aggregate_grid.F\
 define_special_grids.F\
+define_t_agg_mc_dset.F\
 delete_one_line.F\
 do_query.F\
 dollar_arg.F\
@@ -35,6 +40,7 @@ equal_val.F\
 equal_val_int.F\
 errmsg.F\
 escape_for_xml.F\
+fill_fmrc_time_gaps.F\
 finalize.F\
 float2string_for_xml.F\
 get_dataset_name.F\
@@ -45,13 +51,18 @@ get_input_varname.F\
 get_mode_arg.F\
 get_ppl_memory_size.F\
 get_scriptfile_name.F\
+get_upcase_flag.F\
 get_uvars_list_by_attname_and_val.F\
-init_aggregate_dset.F\
+init_ef_aggregate_dset.F\
 init_journal.F\
 init_memory.F\
+init_t_aggregate_dset.F\
+init_t_agg_mc_dset.F\
 initialize.F\
+is_agg_member.F\
 isit_const_arr_var.F\
 isit_coord_var.F\
+its_fmrc_2dtime.F\
 line_facts.F\
 line_facts_xml.F\
 list_cmnd_data.F\
@@ -66,6 +77,7 @@ netcdf4_list_settings.F\
 netcdf4_set_list_settings.F\
 netcdf4_show_list_settings.F\
 no_journal.F\
+ok_as_agg_var.F\
 parse_comma_list.F\
 parse_command.F\
 pop_cs.F\
@@ -78,6 +90,8 @@ reset_axis.F\
 reset_ax_att.F\
 save_ppl_memory_size.F\
 save_scriptfile_name.F\
+scalar_grid_line.F\
+set_agg_var_atts.F\
 set_var.F\
 show_1_dsvar.F\
 show_1_function.F\
@@ -93,7 +107,6 @@ show_data_set_params.F\
 show_data_set_vars.F\
 show_data_set_vars_xml.F\
 show_data_set_xml.F\
-show_diag_vars.F\
 show_dim_xml.F\
 show_dyn_grids.F\
 show_grid.F\
@@ -107,6 +120,8 @@ show_pytext_group.F\
 show_region.F\
 show_regrid_transforms.F\
 show_transforms.F\
+sort_fmrc_dsets.F\
+sort_tseries_dsets.F\
 special_symbol.F\
 symbol_command.F\
 translate_lat_long.F\
diff --git a/fer/gnl/add_attribute.F b/fer/gnl/add_attribute.F
index a03bdf5..460c5a3 100644
--- a/fer/gnl/add_attribute.F
+++ b/fer/gnl/add_attribute.F
@@ -42,6 +42,7 @@
 * NOAA/PMEL, Seattle, WA - TMAP
 * 9/2005
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V698  5/16 *acm* Ticket 2416 allow all output types for DEFINE ATT.
 
 
       include 'tmap_dims.parm'
@@ -102,12 +103,14 @@
 * but the expression is a string, it is an error.  If a string was requested,
 * we can convert a numeric value to string below.
 
-      IF (attype_spec .EQ. ptype_float  .AND. 
-     .    mr_type(mr) .NE. ptype_float) GOTO 5300
-
-      attype = NCFLOAT
-      IF (mr_type(mr) .EQ. ptype_string .OR.
-     .    attype_spec .EQ. ptype_string ) attype = NCCHAR
+      IF (attype_spec .EQ. ptype_unknown) THEN
+         attype = NCFLOAT
+         IF (mr_type(mr) .EQ. ptype_string) attype = NCCHAR 
+      ELSE
+         attype = attype_spec
+      ENDIF
+      IF (attype .NE. NCCHAR .AND. 
+     .    mr_type(mr) .EQ. ptype_string) GOTO 5300
 
 * See if the attribute already exists for the variable. (If it does
 * then one can use SET ATT). The flag do_err is false so no error message 
@@ -150,7 +153,6 @@
      .         attoutflag, attbuff, dummy, status)  
 
          ELSE 
-            attype = NCFLOAT
             CALL CD_PUT_NEW_ATTR (dset, varid, attname, attype, attlen, 
      .         attoutflag, attbuff, 
      .         grid_data(lo(1),lo(2),lo(3),lo(4),lo(5),lo(6)), status)      
diff --git a/fer/gnl/agg_clean_grids.F b/fer/gnl/agg_clean_grids.F
new file mode 100644
index 0000000..bf536e6
--- /dev/null
+++ b/fer/gnl/agg_clean_grids.F
@@ -0,0 +1,148 @@
+	SUBROUTINE AGG_CLEAN_GRIDS( dset, agg_dim, ens_ax, tlag_ax  )
+
+*  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 among the temporary grids for duplicates. Remove duplication.
+* Ensure that distinct grids have distinct names.
+
+* Programmer Steve Hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+
+* V698 1/16 *sh* based upon code from CD_CLEAN_GRIDS
+*      2/16 *sh* if identical pre-existing agg axes exists, re-use them
+
+* argument definitions:
+*       dset    - pointer to aggregated data set (input)
+*	agg_dim	- axis of aggregation (E_dim or F_dim)  (input)
+*	ens_ax	- aggregation axis of the ensemble (input)
+*	tlag_ax	- time axis (F aggregation, only) (input)
+
+* include files
+	include 'tmap_errors.parm'
+	include 'tmap_dims.parm'
+#include "tmap_dset.parm"
+#include "gt_lib.parm"
+        include 'xbuild_grids.cmn'
+	include 'xtm_grid.cmn_text'
+	include 'xdset_info.cmn_text'
+        include 'netcdf.inc'
+
+* argument declarations
+	INTEGER	 dset, agg_dim, ens_ax, tlag_ax
+
+* local variable declarations:
+	LOGICAL TM_SAME_GRID_DEF, have_prev_ens, have_prev_tlag
+	INTEGER TM_FIND_LIKE_DYN_LINE, ivar, gg,
+     .		prev_tlag_ax, prev_ens_ax, accepted_grid, test_grid
+	CHARACTER buff*8	 
+
+* initialize
+	have_prev_tlag = .FALSE.
+
+********************
+* avoid creating duplicate axes
+
+* If the ensemble axis or the lag-time axis of an FMRC is an exact duplicate
+* of a pre-existing axis use the previous one, instead
+	prev_ens_ax = TM_FIND_LIKE_DYN_LINE( ens_ax )
+	have_prev_ens = prev_ens_ax  .NE. unspecified_int4
+	IF (agg_dim .EQ. F_dim) THEN
+	   prev_tlag_ax = TM_FIND_LIKE_DYN_LINE( tlag_ax )
+	   have_prev_tlag = prev_tlag_ax .NE. unspecified_int4
+	ENDIF
+	IF ( have_prev_ens .OR. have_prev_tlag ) THEN
+* find the places that the new axes are in use. Replace them with pre_exist 
+!     note: We should use the dset var LIST!   Super-inefficient loop here
+	   varloop: DO ivar = 1, maxvars
+	      IF ( ds_var_setnum(ivar) .NE. dset ) CYCLE varloop
+	      gg = ds_grid_number(ivar)
+* ... replace the duplicated axes with the previous identical ones
+	      IF (have_prev_ens) THEN
+	         IF (grid_line(agg_dim,gg) .EQ. ens_ax)
+     .				grid_line(agg_dim,gg) = prev_ens_ax
+	      ENDIF
+	      IF (have_prev_tlag) THEN
+	         IF (grid_line(t_dim,gg) .EQ. tlag_ax)
+     .				grid_line(t_dim,gg) = prev_tlag_ax
+	      ENDIF
+	   ENDDO varloop
+
+* delete the redundant axes
+	   IF ( have_prev_ens ) THEN 
+	      line_name(ens_ax) = char_init16 ! deallo'd in tm_garb_col
+!	      CALL TM_DEALLO_DYN_LINE(ens_ax)
+	      ens_ax = prev_ens_ax
+	   ENDIF
+	   IF ( have_prev_tlag ) THEN
+	      line_name(tlag_ax) = char_init16 ! deallo'd in tm_garb_col
+!	      CALL TM_DEALLO_DYN_LINE(tlag_ax)
+	      tlag_ax = prev_tlag_ax
+	   ENDIF
+	ENDIF
+
+* ****************
+* grids
+
+* check for duplicate grid guts
+	accepted_grid = 0		! to get start of linked list
+ 10	CALL TM_NEXT_TMP_GRID( accepted_grid, *500)
+	IF (grid_name(accepted_grid) .EQ. char_init) GOTO 10 ! already removed
+
+	test_grid = accepted_grid
+ 20	CALL TM_NEXT_TMP_GRID( test_grid, *200)
+	IF (grid_name(test_grid) .EQ. char_init) GOTO 100 ! already removed
+
+* is the test grid a duplicate of the accepted grid?
+	IF ( TM_SAME_GRID_DEF( accepted_grid, test_grid ) ) THEN
+*  ... yes -- point its variables to the accepted grid
+	   DO ivar = 1, maxvars
+	      IF ( ds_var_setnum(ivar) .NE. dset ) CYCLE
+	      IF ( ds_grid_number(ivar) .EQ. test_grid ) 
+     .		   ds_grid_number(ivar) = accepted_grid
+	   ENDDO
+	   grid_name(test_grid) = char_init   ! throw it away
+	ELSE
+*  ... no -- make sure it has a unique name
+	   CALL TM_NEW_GRID_NAME( grid_name(test_grid), buff )
+	   grid_name(test_grid) = buff
+	ENDIF
+* inner loop -- Go back for another test_grid
+ 100	GOTO 20
+
+* outer loop -- Go back for another accepted_grid
+ 200	GOTO 10
+
+* we've tested the uniqueness of all temporary grids.  We're done.
+ 500	RETURN
+	END
diff --git a/fer/gnl/build_t_agg_axis.F b/fer/gnl/build_t_agg_axis.F
new file mode 100644
index 0000000..f07de7d
--- /dev/null
+++ b/fer/gnl/build_t_agg_axis.F
@@ -0,0 +1,583 @@
+	SUBROUTINE BUILD_T_AGG_AXIS (dset_num, nagfiles,
+     .			memb_order, memb_filename,
+     .			memb_tstep_start, memb_tstep_end,
+     .			memb_nsteps, t_regular, use_strict, 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. 
+*
+
+
+*  Modify the time axis that was defined by the first file of the T-agg
+*  through the inclusion time information from all of the member files in
+*  the aggregation.
+*  If the file time metadata information was not provided (i.e. in the
+*  argument arrays memb_*), then fill in that metadata here, while creating the
+*  aggregated time axis
+*  If the files as-provided were out of order, then sort them
+
+
+* Programmer Steve Hankin
+* NOAA/PMEL, Seattle, WA - TMAP 
+*
+* V695+ 10/15 *sh* -- based upon DEFINE_EF_AGGREGATE_GRID
+* V67    5/16 *acm*   Fixes for member sets with single-point time axes having bounds
+
+      IMPLICIT NONE
+        include 'tmap_errors.parm'
+#include "tmap_dset.parm"
+        include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'xdset_info.cmn_text'
+	external xdset_info_data
+	include 'xdset_info.cd_equiv'
+        include 'xprog_state.cmn'
+	include 'xtm_grid.cmn_text'  
+	include 'errmsg.parm'
+	include 'xvariables.cmn'
+	include 'xcontext.cmn'
+	include 'xfr_grid.cmn'
+	include 'interp_stack.parm'
+	include 'netcdf.inc'
+
+
+* arguments:
+
+*	dset_num	- dataset number 1st file -- to become the T agg
+*	nagfiles	- number of files in the aggregation (input)
+*	memb_order	- ordering index of files (input empty/output filled)
+*	memb_filename	- array of filenames (input)
+*	memb_tstep_start- array of first timestep in each file (input)
+*	memb_tstep_end	- array of last  timestep in each file (input)
+*	memb_nsteps	- array of N timesteps in each file (input)
+*			  (unspecified_int4 signals no metadata provided)
+*	t_regular	- flag to signal promise of regular timesteps (input)
+*	use_strict	- flag to allow micro-adjustments of T axis (input)
+*	status		- return status (output)
+*
+
+* Setting the argument t_regular=.TRUE. signals a promise that every
+* individual file will be regularly spaced with the identical delta,
+* including the delta between files
+
+* Argument definitions
+	LOGICAL		t_regular, use_strict
+	INTEGER		nagfiles, dset_num, status
+	INTEGER		memb_nsteps(nagfiles), memb_order(nagfiles)
+	REAL*8		memb_tstep_start(nagfiles), memb_tstep_end(nagfiles)
+	CHARACTER*512	memb_filename(nagfiles)
+
+
+* local variable declarations:
+	LOGICAL TM_DFPEQ_TOL, need_midpoints, need_T0_adjust,
+     .		swap_axes
+	INTEGER TM_LENSTR1, TM_GET_CALENDAR_ID, TM_FIND_LIKE_DYN_LINE,
+     .		taxis, nsteps, max_line_available, dtype, vlen, blen,
+     .		i, ifile, istep, ivar, TMAP_status, isubsc1,
+     .		cdfid, vid, bounds_id, gg, ilo, ihi, l, imemb,
+     .		startpts(2), numpts(2), d1s, d1e, d2s, d2e,
+     .		agg_unit_code, file_unit_code, agg_cal_id, pre_exist
+	REAL	TM_WORLD_AX, T0_ADJUST,
+     .		tt, delta, highest_tstep, dfirst_delta, 
+     .		depsilon
+	CHARACTER LEFINT*20, lname*20, vname*64, bname*12, units_str*128,
+     .		  calendar_str*128, agg_t0_str*20, file_t0_str*20
+
+* local parameter declaration
+* (this definition should be in a shared declarations file)
+	REAL	depsilon_46
+	PARAMETER (depsilon_46 = 2.**(-46)) 
+
+* 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)
+	agg_T0_str     = line_T0(taxis)
+	agg_cal_id     = TM_GET_CALENDAR_ID (line_cal_name(taxis))
+
+* note that this routine is called under a promise that
+* dset_num is the *only* dataset that uses the time axis pointed to by
+* ds_time_axis.  Thus our procedure here will be to define the aggregated T
+* axis in as a new axis and then replace the pointers to the old axis with the
+* new. 
+
+
+* 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_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
+	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)
+	   ENDDO
+	   line_delta(taxis) = 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
+
+	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
+* all of the aggregated files have been consulted, we cannot put the cell
+* boundaries in their usual place immediately following the cell positions.
+* Instead we temporarily locate the irregular cell boundaries at the *top*
+* of the line_mem array working backwards, copying them into their proper
+* position after the cell marker coordinates are all in place.
+
+	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
+	   IF (t_regular) THEN
+	      CONTINUE
+!	      highest_tstep = line_start(taxis)
+!     .			    + line_dim(taxis)*line_delta(taxis)
+!	      DO ifile = 2, nagfiles
+!	         highest_tstep = memb_tstep_end(ifile)
+!	         line_dim(taxis) = line_dim(taxis) + memb_nsteps(ifile)
+!	      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
+	         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) 
+
+	   IF (t_regular) THEN
+	      CALL WARN('/T_REGULAR NOT YET IMPLEMENTED')
+!	      highest_tstep = line_start(taxis)
+!     .			    + line_dim(taxis)*line_delta(taxis)
+!	      DO ifile = 2, nagfiles
+!* ... read the length of the time axis from the file to be aggregated
+!	         CALL CD_QUIK_NCOPEN (dset_num, memb_filename(ifile),
+!     .				      vname(:vlen),
+!     .				      cdfid, vid, bounds_id,
+!     .				      units_str, calendar_str,
+!     .				      nsteps, TMAP_status)
+!	         IF (TMAP_status .NE. merr_ok) GOTO 5010
+!* user gives /T_REGULAR as a promise of file compatibility, so no checking
+!* of units and calendar attributes
+!	         memb_nsteps(ifile) = nsteps
+!* ... read the first and last time step values from the axis
+!! it's faster to compute the first and last than to read them
+!! reading last, anyway, so that if the promise of regular points is a lie
+!! at least the range of the time axis will be correct
+!!	         CALL CD_RD_R8_1(cdfid, vid,     1,dtype,vname(:vlen),
+!!     .                           memb_tstep_start(ifile), status )
+!!	         IF ( status .NE. merr_ok ) GOTO 5010
+!	         CALL CD_RD_R8_1(cdfid, vid,nsteps,dtype,vname(:vlen),
+!     .                           memb_tstep_end(ifile),   status )
+!	         IF ( status .NE. merr_ok ) GOTO 5010	         
+!	         line_dim(taxis) = line_dim(taxis) + nsteps
+!	         highest_tstep = memb_tstep_end(ifile)
+!	         line_delta(taxis) = (highest_tstep - line_start(taxis))
+!     .				   /(line_dim(taxis) - 1)
+!	         memb_tstep_start(ifile) = highest_tstep
+!     .				       - (nsteps-1)*line_delta(taxis)
+!	         CALL CD_CLOSE_SET ( cdfid, status)
+!	         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),
+     .				      vname(:vlen),
+     .				      cdfid, vid, bounds_id,
+     .				      units_str, calendar_str,
+     .				      nsteps, TMAP_status)
+	         IF (TMAP_status .NE. merr_ok) GOTO 5010
+* ... check to see if calendar, units, and T0 are consistent with the agg axis
+	         CALL CD_GET_T0(memb_filename(ifile), units_str, calendar_str,
+     .                  agg_cal_id, file_unit_code, file_t0_str, status)
+	         need_T0_adjust = (file_unit_code .NE. agg_unit_code)
+     .			     .OR. (file_T0_str    .NE. agg_T0_str)
+	         IF (need_t0_adjust) CALL T0_ADJUST_INIT ( agg_cal_id,
+     .				          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
+* ... 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)
+	         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))
+	            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)
+
+	         IF (bounds_id .EQ. unspecified_int4) THEN
+* ... cell boundaries NOT available in this file
+*     if not available in any one file, they aare effectively missing
+	            need_midpoints = .TRUE.
+
+	         ELSEIF (.NOT. need_midpoints) THEN
+* ... cell boundaries ARE available in this file
+*     store them in high line memory, backwards ordered
+	            bname = 'bounds array'
+                    blen = 12
+*     in CF the bounds are stored 2D Nx2, whereas in Ferret they are simply N+1
+*     so two reads are needed
+*       read #1) the lower bound array and 
+*       read #2) the topmost upper bound (a single point)
+*     the cells are *assumed* to be contiguous -- no checking done
+
+*     #1) read the lower box bound values (nsteps values)
+                    startpts(1) = 1
+                    startpts(2) = 1
+                    numpts(1) = 1
+                    numpts(2) = nsteps
+
+                    d1s = startpts(1)
+                    d1e = numpts(1)
+                    d2s = startpts(2)
+                    d2e = numpts(2)
+
+                    CALL CD_RD_R8_BNDS( cdfid, bounds_id,
+     .			  startpts, numpts, dtype, bname(:blen),
+     .                    line_mem(max_line_available),  
+     .                    d1s, d1e, d2s, d2e, status )
+                    IF ( status .NE. merr_ok ) GOTO 5010
+
+*     #2) read the highest upper box bound value (a single value)
+                    startpts(1) = 2
+                    startpts(2) = nsteps
+                    numpts(1) = 1
+                    numpts(2) = 1
+
+                    d1s = startpts(1)
+                    d1e = numpts(1)
+                    d2s = startpts(2)
+                    d2e = numpts(2)
+
+                    CALL CD_RD_R8_BNDS( cdfid, bounds_id,
+     .			  startpts, numpts, dtype,  bname(:blen),
+     .                    line_mem(max_line_available+nsteps),  
+     .                    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
+
+* ... 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))
+	               ENDDO
+	            ENDIF
+	         ENDIF
+	         CALL CD_CLOSE_SET ( cdfid, status)
+	         IF ( status .NE. merr_ok ) GOTO 5010
+	      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
+	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
+* ... 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) )
+
+* deal with cell boundaries
+	   next_line_mem_pos =  next_line_mem_pos + 2*nsteps + 1
+
+* ... 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)
+
+	   ELSE
+
+* 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
+
+* if the coordinates have been saved as irregular we must now
+*  check to see if the coords may be regular after all
+
+*  ... 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 )
+	   DO i = 1, nagfiles
+	      ifile = memb_order(i)
+	      DO l = 1, memb_nsteps(ifile)  ! timestep within memer 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
+	      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)
+	      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) )
+     .								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)
+	   IF (nsteps .GT. 1) THEN   
+	      line_delta(taxis) = (line_mem(ihi)-line_mem(ilo))/(nsteps-1)
+	   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
+	ENDIF
+****** 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
+
+* correct all time-dependent variables in this dataset
+*  ... the upper L limit was set based upon the first file, alone
+*  ... and the time axis might just have been swapped for a pre-existing one
+	DO ivar = 1, maxvars
+	   IF ( ds_var_setnum(ivar) .EQ. dset_num ) THEN
+	      gg  = ds_grid_number(ivar)
+	      IF (grid_line(t_dim,gg) .EQ. taxis) THEN
+	         ds_grid_end(t_dim,ivar) = nsteps
+	         IF (swap_axes) THEN
+* ... was this grid modified in this loop an instant ago?
+*     note: Shoud use the dset var LIST!   Super-inefficient nested loop
+	            DO i = 1, ivar-1
+	               IF ( ds_var_setnum(i) .EQ. dset_num ) THEN
+	                  IF (ds_grid_number(i) .EQ. gg) GOTO 500 !already done
+	               ENDIF
+	            ENDDO
+	            grid_line(t_dim,gg) = pre_exist
+* ... "use" the pre-existing on; "un-use" the new one
+	            CALL TM_USE_LINE(pre_exist)
+	            CALL TM_DEALLO_DYN_LINE(taxis)
+	            taxis = pre_exist
+	            ds_time_axis(dset_num) = taxis
+	            swap_axes = .FALSE. ! done swapping
+	         ENDIF
+	      ENDIF
+	   ENDIF
+ 500	   CONTINUE
+	ENDDO
+
+ 5000	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='
+     .		//lname(:blen)//' of file '//memb_filename(ifile), *5000 )
+ 5400	lname = LEFINT(l, blen)
+	CALL ERRMSG( ferr_grid_definition, status,
+     .   'Time bounds do not enclose time step coordinate at L='
+     .		//lname(:blen)//' of file '//memb_filename(ifile), *5000 )
+
+	END
diff --git a/fer/gnl/cancel_data_set.F b/fer/gnl/cancel_data_set.F
index d4e9523..549e944 100644
--- a/fer/gnl/cancel_data_set.F
+++ b/fer/gnl/cancel_data_set.F
@@ -1,4 +1,4 @@
-	SUBROUTINE CANCEL_DATA_SET( iset, is_all, status )
+	RECURSIVE SUBROUTINE CANCEL_DATA_SET( dset, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -33,30 +33,27 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* close and delete all dependening on a data set
+* close a dataset
+* remove from memory any cached data that may depend upon this dataset
+* if the dataset is a part of an E or F aggregations refuse to close
+* unless all datasets are being closed (slash/all)
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
 *
-* V200:	10/20/89 - extracted from XEQ_CANCEL with enhancements to accept /ALL
-*		   and data set names
-*	 12/8/89 - if saved_dset is cancelled then indicate that
-* Unix/RISC port 8/91 *sh*
-*     bug fix: calling var, iset, was used as an internal loop index
-* Linux Port 1/97 *kob* - Added a preprocessor include for tmap_dset.parm
-*			  because it needed a preprocessor.
-* V533: *sh* 6/01 - close set after deletions to avoid "%%" diagnostics
-* V685 *acm* 4/13 - If its a member of an aggregation, also close the aggregation.
-*                   Pass in whether this was "all", if so dont issue the
-*                   note for canceling a member dataset
+* V695 *sh* 1/16 - bulk of logic moved to CANCEL_ONE_DATA_SET 
+* V698  3/16 *acm* Remove unneeded xdset_parms.cmn
+
+* calling arguments
+*  dset      -  (input) dataset number to be closed
+*  status    - (output) return status
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
 	include 'tmap_errors.parm'
 	include	'ferret.parm'
 	include 'errmsg.parm'
-	include 'xdset_parms.cmn'
 	include 'xprog_state.cmn'
 	include 'xdset_info.cmn_text'
 	external xdset_info_data
@@ -65,174 +62,62 @@
 	external xgt_grid_data
 
 * calling argument declarations:
-	LOGICAL is_all
-	INTEGER	iset, status
+	INTEGER	dset, status
 
 * local variable declarations:
-	LOGICAL hidden
-	INTEGER TM_LENSTR1
-	INTEGER	iclim, iclim_user, i, nmemb, imemb, membset, 
-     .          mlen, slen1, slen2, cset, close_it, nv, igrid, 
-     .          ens_line, agg_dim, iens
-	CHARACTER*20 agg_msg
-	CHARACTER*8 TM_FMT, set1, set2
-
-* Recursive loop. If canceling a dset that is a member of an ensemble 
-* or ensembles, we will come back here and cancel the ensemble set too.
-
-	iens = 1
-	cset = iset
-
-100	CONTINUE
-
-	IF (cset .EQ. 0) GOTO 300
-
-* Will want to cancel the ensemble axis
-	ens_line = 0
-	IF (ds_type(cset) .EQ. 'ENS') THEN
-	   agg_dim = 5
-	   DO 10 nv = 1, maxvars
- 	      IF (ds_var_setnum(nv) .EQ. cset) THEN
-	          igrid = ds_grid_number(nv)
-		  ens_line = grid_line(agg_dim, igrid)
-		  GOTO 15  ! only 1 ensemble axis per ens. dataset
-	      ENDIF
-   10	   CONTINUE
-   15	   CONTINUE
-	ENDIF
-
-* Will want to cancel the Forecast axis
-
-	IF (ds_type(cset) .EQ. 'FCT') THEN
-	   agg_dim = 6
-	   DO 11 nv = 1, maxvars
- 	      IF (ds_var_setnum(nv) .EQ. cset) THEN
-	          igrid = ds_grid_number(nv)
-		  ens_line = grid_line(agg_dim, igrid)
-		  GOTO 16  ! only 1 ensemble axis per ens. dataset
-	      ENDIF
-   11	   CONTINUE
-   16	   CONTINUE
-   
-	ENDIF
-* purge and delete any cat_pystat_var variables associated with this dataset
-        CALL DELETE_PYSTAT_DSET_VARS( iset )
-
-* delete any memory variables from this data set
-* ( necessary because their pointers will lead to incorrect data set 
-*   information and possibly misleading output )
-	CALL ERASE_DSET( cset )
+	LOGICAL	IS_AGG_MEMBER, is_member, more
+	INTEGER	one_set_status, parent, imemb, nmemb, membset
+ 
+* initialize
+	status = ferr_ok
+	IF (ds_name(dset) .EQ. char_init1024) RETURN  ! already deleted
+	more = .TRUE.
+
+* is the requested dataset part of an aggregation?
+* If so, this is an implicit request to (recursively) cancel the parent, too
+* Remember that E aggs can be members of F aggs and visa versa
+	DO WHILE (more)
+	   IF ( IS_AGG_MEMBER(dset, 1, parent, more) ) THEN
+	      CALL WARN('Dataset used in aggregation.  '//
+     .		        'Canceling aggregation, '//ds_name(parent))
+	      CALL CANCEL_DATA_SET(parent, status)
+	      IF (status .NE. ferr_ok) GOTO 5000
+	   ENDIF
+	ENDDO
 
 * delete all user defined data from memory for similar reasons
 * (note: this is unnecessarily strict - could be refined in the future)
 	CALL PURGE_ALL_UVARS
-	
-* If canceling an aggregation then reset the hidden setting to the 
-* default for member datasets.  Check on ens_line finds cases where
-* an ensemeble datset was created but has no variables.
-
-	IF ((ds_type(cset).EQ.'ENS' .OR. ds_type(cset).EQ.'FCT')
-     .      .AND. ens_line.GT.0) THEN
-
-* Get number of aggregation members
-	   CALL CD_GET_AGG_DSET_INFO (cset, nmemb, status)
-
-* Look through the aggregation members.
-
-	   hidden = .FALSE.
-	   DO 20 imemb = 1, nmemb
-	      CALL CD_GET_AGG_DSET_MEMBER (cset, imemb, membset, status)
-	      IF (status .NE. ferr_ok) GOTO 20
-	      IF (ds_hide(membset)) hidden = .TRUE.
-	      ds_hide(membset) = .FALSE.
-  20	   CONTINUE
-  
-	   IF (hidden) THEN
-	     risc_buff = 
-     .	   'Cancel aggregate dataset. Un-hiding hidden member datasets'
-	     CALL WARN(risc_buff)
-	   ENDIF
 
+* if this dataset is an aggregation, cancel hidden member datasets, too
+* unless they are also members in some other aggregation
+	IF (ds_type(dset).EQ.'ENS' .OR. ds_type(dset).EQ.'FCT') THEN
+
+* ... loop over aggregation members
+	   CALL CD_GET_AGG_DSET_INFO (dset, nmemb, status)
+	   IF (status .NE. ferr_ok) CALL WARN('crptn: isit_agg_member')
+	   DO imemb = 1, nmemb
+	      CALL CD_GET_AGG_DSET_MEMBER (dset, imemb, membset, status)
+	      IF (status .NE. ferr_ok)  CALL WARN('crptn: cancel_data_set')
+	      IF (ds_name(membset) .EQ. char_init1024) CYCLE ! already deleted?
+
+* ... if not a member of some other aggregation: cancel the hidden member
+	      is_member = IS_AGG_MEMBER(membset, 1, parent, more)
+	      IF ( is_member .AND. .NOT.more ) THEN
+	         IF (ds_hide(membset)) CALL CANCEL_ONE_DATA_SET
+     .							(membset, status)
+	         IF (status .NE. ferr_ok) GOTO 5000
+	      ENDIF
+	   ENDDO
 	ENDIF
 
-* close and cancel the data set
-	CALL TM_CLOSE_SET( cset, status )
-	IF ( status .NE. merr_ok ) RETURN
-
-* Cancel the ensemble axis
-	IF ( ens_line .NE. 0) CALL DELETE_ONE_LINE (ens_line, status)
-
-* Was the original dataset to be closed a member of an aggregation?  If so cancel 
-* the aggregation set. If we implement other aggregations, set agg_msg depending 
-* on the ds_type direction.
-
-	cset = iset
-	close_it = 0
-	DO 50 i = iens, maxdsets
-	   IF ((ds_type(i).EQ.'ENS' .OR. ds_type(i).EQ.'FCT')) THEN
-	      agg_msg = 'ensemble'
-	      IF (ds_type(cset).EQ.'FCT') agg_msg = 'forecast aggregation'
-	      mlen = TM_LENSTR1(agg_msg)
-
-* Get number of aggregation members
-	      CALL CD_GET_AGG_DSET_INFO (i, nmemb, status)
-
-* Look through the aggregation members.
-
-	      DO 40 imemb = 1, nmemb
-	         CALL CD_GET_AGG_DSET_MEMBER (i, imemb, membset, status)
-		 IF (status .NE. ferr_ok) GOTO 40
-
-* Was cset a member of this aggregation? If so close the aggregation
-
-		 IF (imemb .EQ. cset) THEN 
-		    set1 = TM_FMT (float(cset), 8, 8, slen1)
-		    set2 = TM_FMT (float(i), 8, 8, slen2)
-
-		    IF (.NOT. is_all) THEN
-		       WRITE (risc_buff, 1000) set1(:slen1), agg_msg(:mlen), 
-     .                     agg_msg(:mlen),set2(:slen2)
-		       CALL WARN(risc_buff)
-		    ENDIF
-		    
-* ! Found a match. Go close this aggregation set
-		    close_it = i
-		    cset = i
-		    iens = i+1
-		    GOTO 60 
-
-		 ENDIF
-  40	      CONTINUE
-	   ENDIF
-  50	CONTINUE
-  60	CONTINUE
-  
-	IF (close_it .GT. 0) GOTO 100
-
- 1000	FORMAT ('Dataset ', A,' was a member of an ', A,'. Canceling ',
-     .        A,', dataset ', A)
-
-  300	CONTINUE
-
-* no longer the saved data set ?
-	IF ( iset .EQ. saved_dset ) saved_dset = unspecified_int4
-
-* was this a climatological air temp field ?
-	DO 400 iclim = 1, max_airt_clim
- 	   IF ( dp_airt_dset(iclim) .EQ. iset ) THEN
-	      dp_airt_dset(iclim) = unspecified_int4
-	      GOTO 500
-	   ENDIF
- 400	CONTINUE
-* ... no - we're done
-	RETURN
-
-* ... yes - delete any variables that may have used it
-*     ( a precaution against mixed up clim. data sets )
- 500	DO 600 iclim_user = 1, maxdsets
-	   IF ( dp_clim_air_sst(iclim_user) .EQ. iclim )
-     .                                   CALL ERASE_DSET( iset )
- 600	CONTINUE
+* finally cancel the requested dataset
+	CALL CANCEL_ONE_DATA_SET(dset, status)
+	IF (status .NE. ferr_ok) GOTO 5000
 
+* success
         RETURN
+
+* error exits
+ 5000	RETURN
 	END
diff --git a/fer/gnl/cancel_one_data_set.F b/fer/gnl/cancel_one_data_set.F
new file mode 100644
index 0000000..843d5dc
--- /dev/null
+++ b/fer/gnl/cancel_one_data_set.F
@@ -0,0 +1,140 @@
+	SUBROUTINE CANCEL_ONE_DATA_SET( dset, 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. 
+*
+*
+* close a single dataset
+* if this dataset is an aggregation remove its special axes
+
+* programmer - steve hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+* written for VAX computer under VMS operating system
+*
+* V200:	10/20/89 - extracted from XEQ_CANCEL with enhancements to accept /ALL
+*		   and data set names
+*	 12/8/89 - if saved_dset is cancelled then indicate that
+* Unix/RISC port 8/91 *sh*
+*     bug fix: calling var, iset, was used as an internal loop index
+* Linux Port 1/97 *kob* - Added a preprocessor include for tmap_dset.parm
+*			  because it needed a preprocessor.
+* V533: *sh* 6/01 - close set after deletions to avoid "%%" diagnostics
+* V685 *acm* 4/13 - If its a member of an aggregation, also close the agg
+* V698 *sh* 1/16 - complexity removed to the parent routine, CANCEL_DATA_SET
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
+*            *sh*  deallo special E and F axes even if user has re-defined them
+
+* calling arguments
+*  dset      -  (input) dataset number to be closed
+*  status    - (output) return status
+
+	include 'tmap_dims.parm'
+#	include "tmap_dset.parm"
+	include 'tmap_errors.parm'
+	include	'ferret.parm'
+	include 'errmsg.parm'
+	include 'xprog_state.cmn'
+	include 'xdset_info.cmn_text'
+	external xdset_info_data
+	include 'xrisc.cmn'
+	include	'xtm_grid.cmn_text'
+	external xgt_grid_data
+
+* calling argument declarations:
+	INTEGER	dset, status
+
+* local variable declarations:
+	LOGICAL NC_GET_ATTRIB_STRING, got_it
+	INTEGER TM_GET_LINENUM
+	INTEGER	iclim, iclim_user, i, nmemb, imemb, membset, 
+     .          ivar, axis, varid, parent,
+     .          memb_cat, memb_dset, memb_grid, iline, memb_var,
+     .          attid, attype, attlen, attoutflag
+	CHARACTER axname*12, attname*12
+
+* local parameter declarations
+	LOGICAL do_warn
+	INTEGER max_slen
+	PARAMETER (do_warn = .TRUE.,
+     .		   max_slen = 12)
+
+
+* since ensembles create so much dataset proliferation, need a diagnostic
+* message to see what is being canceled
+	IF (mode_diagnostic) CALL SPLIT_LIST(pttmode_ops, ttout_lun,
+     .		' canceling dset '//ds_des_name(dset), 0 )
+
+* delete any memory variables from this data set
+* ( necessary because their pointers will lead to incorrect data set 
+*   information and possibly misleading output )
+	CALL ERASE_DSET( dset )
+
+* If canceling an F aggregation then ...
+* de-allocate special axes TF_LAG_F and TF_CAL_T
+* get the names of these special axes from the attribute pointers
+	IF (ds_type(dset).EQ.'FCT') THEN
+	   CALL CD_GET_VAR_ID (dset, '.', varid, status)
+	   CALL CD_GET_VAR_ATT_ID (dset, varid, '_cal_t_ax', attid, status)
+	   IF (status.EQ.atom_not_found) GOTO 5100
+           CALL CD_GET_VAR_ATT_INFO (dset, varid, attid, 
+     .                attname, attype, attlen, attoutflag, status )
+	   IF (status.EQ.atom_not_found) GOTO 5100
+	   got_it = NC_GET_ATTRIB_STRING (dset, varid, attname, 
+     .                                do_warn, 'global', max_slen,  
+     .                                attlen, attoutflag, axname)
+	   axis = TM_GET_LINENUM(axname)
+	   CALL TM_DEALLO_DYN_LINE(axis)
+
+	   CALL CD_GET_VAR_ATT_ID (dset, varid, '_lag_f_ax', attid, status)
+	   IF (status.EQ.atom_not_found) GOTO 5100
+           CALL CD_GET_VAR_ATT_INFO (dset, varid, attid, 
+     .                attname, attype, attlen, attoutflag, status )
+	   IF (status.EQ.atom_not_found) GOTO 5100
+	   got_it = NC_GET_ATTRIB_STRING (dset, varid, attname, 
+     .                                do_warn, 'global', max_slen, 
+     .                                attlen, attoutflag, axname)
+	   axis = TM_GET_LINENUM(axname)
+	   CALL TM_DEALLO_DYN_LINE(axis)
+	ENDIF
+
+* really close and cancel the data set
+	CALL TM_CLOSE_SET( dset, status )
+	IF ( status .NE. merr_ok ) RETURN
+
+        RETURN
+
+* error exits
+ 5000	RETURN
+ 5100	CALL ERRMSG(ferr_internal, status, 'cancel_data_set', *5000 )
+
+	END
diff --git a/fer/gnl/cdf_list.F b/fer/gnl/cdf_list.F
index 934079d..5a377fb 100644
--- a/fer/gnl/cdf_list.F
+++ b/fer/gnl/cdf_list.F
@@ -126,7 +126,10 @@
 *                 the user has said /KEEP_AXISNAMES
 * V694 *acm* 3/15 Ticket 2240. Dont send scale, attribute, and bad-val to CD_WRITE_VAR. That
 *                 routine gets those attributes per variable from the dataset being written.
-* V695 *acm* 7/16 If they said LIST/QUIET, don't do all the warnings and NOTEs
+* V695 *acm* 7/15 If they said LIST/QUIET, don't do all the warnings and NOTEs
+* V698 *acm* 1/16 Allow for Epic CDF files, ds_type = 'ECDF'
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure
 
 #include "netcdf.inc"
         include 'tmap_errors.parm'
@@ -267,6 +270,7 @@
         CALL CD_CONVENTIONS_OUT( append, cdfid, buff1, status )
         IF ( status .NE. merr_ok ) GOTO 5800
 
+
 * optional title for data set
 	IF ( title .NE. ' ' ) THEN
 	   CALL CD_WRITE_ATTRIB(cdfid, pcdf_global, 'title',
@@ -290,9 +294,11 @@
         varid = 0      
 	cx  = cx_list(1)
         dset = cx_data_set( cx )
-        IF (dset .GE. 1) THEN
-          IF (ds_type(dset).EQ.'CDF' .OR. ds_type(dset).EQ.' MC' 
-     .        .OR. ds_type(dset).EQ.'ENS' .OR. ds_type(dset).EQ.'FCT')
+
+        IF (dset .GT. pdset_irrelevant) THEN
+          IF (ds_type(dset).EQ.'CDF' .OR. ds_type(dset).EQ.'ECDF' 
+     .        .OR. ds_type(dset).EQ.' MC' .OR. ds_type(dset).EQ.'ENS' 
+     .        .OR. ds_type(dset).EQ.'FCT')
      .       CALL CDF_LIST_GLOBAL_ATTS (dset, cdfid, status)
         ENDIF
         dset_last = dset
@@ -332,13 +338,22 @@
 * is it in the linked-list for dset. If so get attr info, including original 
 * upper/lowercase form of the name. If mode upcase_output is set, then upcase 
 * the variable name.
+* If it is a LET/D= user-var its linked list info is with that datset.
  
 * For user-defined variables, with double-precision Ferret, write as double-precision
 * unless the user has requested otherwise.
 
            itsa_uvar = cat .EQ. cat_user_var
-           IF (itsa_uvar .OR. dset .EQ. pdset_irrelevant) dset = pdset_uvars
+	   IF (dset .EQ. pdset_irrelevant) dset = pdset_uvars
+	   IF (itsa_uvar .AND. dset .LE. pdset_irrelevant)  dset = pdset_uvars
            CALL CD_GET_VAR_ID (dset, varcode, varid, status)
+	   IF (status .NE. ferr_ok) THEN
+	      IF (itsa_uvar .AND. dset.GE.pdset_irrelevant) THEN
+	         dset = pdset_uvars
+		 CALL CD_GET_VAR_ID (dset, varcode, varid, status)
+		 IF (status .NE. ferr_ok) dset = dset_last
+	      ENDIF
+	   ENDIF
 
            vartype = 0
            outtype = 0
@@ -348,8 +363,8 @@
      .            vdims, nvatts, coordvar, all_outflag, status)
               varcode = varname
               IF (mode_upcase_output) CALL STR_UPCASE( varcode, varname)
-              IF (dset .EQ. pdset_uvars) THEN  !for user vars type not known in attrib structure
-                 vartype = 6  ! netcdf nf_double
+              IF (itsa_uvar) THEN  ! for user vars type not known in attrib structure
+                 vartype = 6       ! netcdf nf_double
                  IF (itsa_string) vartype = 2
               ENDIF
               outtype = vartype
@@ -399,7 +414,7 @@
               alen = TM_LENSTR1(typnam(outtype))
               CALL CD_PUT_NEW_ATTR (dset, varid, 
      .              attname, 2, 61, 1, 
-     .              'This variable written using Ferret was converted from '//
+     .         'This variable written using Ferret was converted from '//
      .              typnam(vartype)(4:slen)//' to '//
      .              typnam(outtype)(4:alen), 1., status )
               IF (status .NE. ferr_ok) GOTO 5990
@@ -533,6 +548,7 @@
 	   ENDIF
            IF (type .NE. 0 .AND. varid .GT. 0) type = outtype
            IF (dset .EQ. pdset_uvars) type = outtype
+           IF (itsa_uvar) type = outtype 
            IF (type .EQ. 0) outtype = vartype
 
 * create the variable and its grid (coordinate output gets deferred)
@@ -695,7 +711,8 @@
                        IF (attype .NE. outtype .AND. istat .EQ. ferr_ok)  THEN
                           alen = TM_LENSTR1(typnam(attype))
                           slen = TM_LENSTR1(typnam(outtype))
-                          IF (dset .GT. 0 .AND. do_warn) CALL WARN (
+                          IF ((.NOT.itsa_uvar) .AND. (dset .GT. 0 .AND. do_warn)) 
+     .                      CALL WARN (
      .                      'Converting data type of missing_value '//
      .                       typnam(attype)(1:alen)//
      .                      ' to match output type of variable '//
@@ -1204,6 +1221,9 @@
          CALL TM_NOTE( 'Use the LET command to define a legal name',
      .                 err_lun )
          GOTO 5800
+ 5220    CALL ERRMSG ( ferr_syntax, status,
+     .                 'error writing variable: '//varcode,
+     .                 *5800 )
 
  5300    CALL ERRMSG ( ferr_invalid_command, status,
      .                 'Exceeds grid limits: '//
diff --git a/fer/gnl/check_member_sets.F b/fer/gnl/check_member_sets.F
index a4f6cc7..8b43874 100644
--- a/fer/gnl/check_member_sets.F
+++ b/fer/gnl/check_member_sets.F
@@ -1,4 +1,5 @@
-	SUBROUTINE CHECK_MEMBER_SETS (nsets, member_sets, status)
+	SUBROUTINE CHECK_MEMBER_SETS (agg_dim, nsets, memb_dsetnames,
+     .				      member_sets, status)
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -40,6 +41,19 @@
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
 * V695+ *sh*  5/15 removed block of code from here to INIT_AGGREGATE_DSET
 *                  notably, the call to GET_AXIS_SPEED
+* V698+ *sh* 11/15 add ok_re_use_existing to TM_INIT_DSET call
+*            12/15 pass dataset names and nsets *into* this routine
+*	           if dataset not already open, then open it hidden
+*	      2/16 allow "-" as an indicator of a dummy dataset
+*	      3/16 check for illegal Unix filenames
+*	      4/16 defer checking aggs build of aggs to OK_AS_AGG_VAR
+
+* calling arguments
+*   agg_dim             - axis of the aggregation being created
+*   nsets		- number of datasets to be aggregated (input)
+*   memb_dsetnames	- array of names of the datasets (input)
+*   member_sets		- array of open dataset numbers (output)
+*   status		- return status
 
         include 'tmap_errors.parm'
 #include "tmap_dset.parm"
@@ -57,19 +71,24 @@
 	include 'xdiag_ctrl.cmn_text'
 
 * calling argument declarations:
-	INTEGER nsets, member_sets(*), status
+	INTEGER agg_dim, nsets, member_sets(nsets), status
+	CHARACTER*(*), memb_dsetnames(nsets)
 
 * local variable declarations:
 	LOGICAL TM_DIGIT, tregular, use_strict
-	INTEGER TM_LENSTR, item, ich, buff_len, dset, iset, perm(nferdims)
+	INTEGER TM_LENSTR, i, ich, buff_len, dset, iset, perm(nferdims)
 	CHARACTER buff1*512
 
-	DO 100 iset = 1, maxdsets
+* local parameter definitions
+	LOGICAL ok_re_use_existing
+	PARAMETER ( ok_re_use_existing = .TRUE.)
+
+	DO 100 iset = 1, nsets
 	   member_sets(iset) = unspecified_int4
   100	CONTINUE
 
-	DO 110 item = 1, nferdims
-	   perm(item) = unspecified_int4
+	DO 110 i = 1, nferdims
+	   perm(i) = unspecified_int4
   110	CONTINUE
 
 * Check on the aggregate-member datasets. (code taken from xeq_set)
@@ -78,25 +97,36 @@
 	tregular = .FALSE.
 	use_strict = .FALSE.
 
-	nsets = 0
-	DO 760 item = 1, num_items
+	DO iset = 1, nsets
+
+	   buff1 = memb_dsetnames(iset)
+	   buff_len = TM_LENSTR(buff1)
 
-           CALL EQUAL_STR_LC(
-     .                   cmnd_buff(item_start(item):item_end(item)),
-     .                   buff1, status ) 
-	   IF (status .NE. ferr_ok)
-     .        buff1 = cmnd_buff(item_start(item):item_end(item))
-	   IF (TM_LENSTR(buff1) .EQ. 0)
-     .        buff1 = cmnd_buff(item_start(item):item_end(item))
+* check for legal Unix filename
+* could use tm_legal_unix_name.F, but it is old and overly strict
+* the netCDF library will refuse an illegal name, but it will not give a nice
+* message
+* can easily add more to this test as needed
+	   IF (INDEX(buff1(:buff_len)," ") .GT. 0) GOTO 5050
+
+	   IF (buff1 .EQ. "-") THEN
+* dummy dataset indicator
+	      IF (iset .EQ. 1) GOTO 5100
+	      member_sets(iset) = pdset_dummy
+	      CYCLE
+	   ENDIF
 
 * check to see if data set was referred to by number
 * 9/95 - replaced "*" with "(I)" read from separate buffer
 	   IF ( TM_DIGIT(buff1) ) THEN
 
-	      buff_len = TM_LENSTR(buff1)
-              DO 730 ich = 1, buff_len
+* avoid crash due to single character "+" or "."
+	      IF (buff_len.EQ.1
+     .      .AND.(buff1(1:1).LT.'0' .OR. buff1(1:1).GT.'9')) GOTO 740
+
+              DO ich = 1, buff_len
 		IF ( .NOT. TM_DIGIT(buff1(ich:ich))) GOTO 740
- 730	      CONTINUE
+	      ENDDO
 	      READ (buff1,*) dset
 #ifdef MANDATORY_FORMAT_WIDTHS
 	      READ (buff1,*,ERR=740) dset
@@ -105,9 +135,8 @@
 #endif
 * ... check for valid number given
 	      IF   ( dset .LT. 1
-     .	      .OR.   dset .GT. maxdsets )		GOTO 5200
-	      IF ( ds_name( dset ) .EQ. char_init1024) GOTO 5200
-	      IF (ds_type(dset).EQ.'ENS' .OR. ds_type(dset).EQ.'FCT') GOTO 5200
+     .	      .OR.   dset .GT. maxdsets )	  GOTO 5200
+	      IF (ds_name(dset).EQ.char_init1024) GOTO 5200
 	      GOTO 750
 	   ENDIF
 
@@ -115,36 +144,29 @@
  740       ds_dset_type = 'CDF'   ! used and cleared in tm_init_dset
 
 * initialize a TMAP-supported data set
- 	   CALL TM_INIT_DSET( buff1,
+ 	   CALL TM_INIT_DSET( buff1, ok_re_use_existing,
      .			      perm, dset, tregular, use_strict, status )
 	   
            IF ( status .NE. merr_no_action ) THEN  ! merr_no_action = already init'ed
 	      IF ( status .NE. ferr_ok ) GOTO 5300 ! error in file or url
-
+	      ds_hide(dset) = .TRUE.   ! hide unless previously opened
 	   ENDIF
 
- 750	   CONTINUE
-	   nsets = nsets + 1
-	   member_sets(nsets) = dset
+ 750	   member_sets(iset) = dset
 
- 760	CONTINUE
+	ENDDO
 
 	status = ferr_ok
 
  5000   RETURN	
 
-* Errors: too-many datasets open so aggregate dataset can't be opened,
-* or error on a member dataset. 
-* ?? If some member datasets were opened, close them??)
-* Return no-dataset-number.
-
- 9950	dset = unspecified_int4
-	status = ferr_TMAP_error
-	GOTO 5000
-
+* Error exits: 
+ 5050	CALL ERRMSG( ferr_invalid_command, status,
+     .		'corrupted filename: '//buff1(:buff_len), *5000 )
+ 5100	CALL ERRMSG( ferr_invalid_command, status,
+     .		'1st aggregate member may not be missing', *5000)
  5200	CALL ERRMSG( ferr_unknown_data_set, status,
-     .		'dset '//cmnd_buff( item_start(item):item_end(item) )
-     .		//' unknown or is already an aggregate dataset', *9950 )
- 5300	CALL ERRMSG( ferr_TMAP_error, status, ' ', *9950 )
+     .		'dset '//buff1(:buff_len),         *5000 )
+ 5300	CALL ERRMSG( ferr_TMAP_error, status, ' ', *5000 )
 
 	END
diff --git a/fer/fmt/full_uvar_name.F b/fer/gnl/choose_line_name.F
similarity index 54%
copy from fer/fmt/full_uvar_name.F
copy to fer/gnl/choose_line_name.F
index 0e5a895..08d9a41 100644
--- a/fer/fmt/full_uvar_name.F
+++ b/fer/gnl/choose_line_name.F
@@ -1,6 +1,4 @@
-	CHARACTER*(*) FUNCTION FULL_UVAR_NAME(uvar, len)
-
-*
+	SUBROUTINE CHOOSE_LINE_NAME (axis, original, axname)
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -34,48 +32,53 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* append to the given user variable name the data set information
-*	var[D=dset_name]
+* For the given axis number, return either line_name(axis) or
+* line_name_orig(axis).  When mode_upcase is set, return the line_name
+* version which has been upper-cased. 
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+* If mode_upcase is false, atempt to return line_name_orig.
+* -- First check whether line_name_orig is defined. 
+* -- If the lengths of line_name and line_name_orig differ, the line name was changed 
+*    by Ferret for uniqueness. In these cases, check the value of the flag "original". 
+* -- If mode_upcase is false, and original is true, then we want the original form 
+*    no matter what. E.g. for xml output, we want the original axis name from the file.
+*    For other cases, such as a generic SHOW GRID, we want the name in use for the 
+*    Ferret session.
+* V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
+*                  using original upper/lowercase spelling
 
-* V402:
-* V420:  4/96 - document "(/D default)" on pdset_irrelevant variables
-*       *acm* 3/12 cleanup ifdefs and unnecessary include files
 
-* calling argument declarations:
-	INTEGER	uvar
+	include 'tmap_dims.parm'
+	include 'xtm_grid.cmn_text'
+#	include "tmap_dset.parm"
+	include 'xprog_state.cmn'
 
-* local variable declarations:
-	INTEGER TM_LENSTR1, len, len2
+	LOGICAL original 
+	INTEGER TM_LENSTR, axis
+	CHARACTER*(*) axname
 
-	include 'tmap_dims.parm'
-	include 'xdset_info.cmn_text'
-	external xdset_info_data
-	include 'ferret.parm'
-	include	'xvariables.cmn'
+	axname = line_name(axis)
 
-* variable name and definition
-*	len = TM_LENSTR1(uvar_name_code(uvar))
-        CALL string_array_get_strlen1(uvar_name_code_head,uvar,len)
-	FULL_UVAR_NAME = uvar_name_code(uvar)(:len)
-	IF (uvar_dset(uvar) .GT. pdset_irrelevant) THEN
-	   len2 = TM_LENSTR1(ds_name(uvar_dset(uvar)))
-	   FULL_UVAR_NAME = FULL_UVAR_NAME(:len)//'[D='//
-     .			ds_name(uvar_dset(uvar))(:len2)//']'
-	   len = len + len2 + 4
-	ELSEIF (uvar_dset(uvar) .EQ. pdset_irrelevant) THEN
-	   FULL_UVAR_NAME = FULL_UVAR_NAME(:len)//' (/D default)'
-	   len = len + 13
-	ENDIF
-	IF (uvar_remote(uvar)) THEN
-	   FULL_UVAR_NAME = FULL_UVAR_NAME(:len)//' (/REMOTE)'
-	   len = len + 10
+	IF (.NOT. mode_upcase_output) THEN
+
+* If there is no good line_name_orig defined, keep line_name
+	   IF (TM_LENSTR(line_name_orig(axis)).EQ.0  .OR.
+     .         line_name_orig(axis)(1:2) .EQ. char_init) THEN
+             axname = line_name(axis)
+
+* If the axis has been renamed for uniqueness, return line_name
+* unless original has been set.
+
+	   ELSE IF (TM_LENSTR(line_name_orig(axis)) .NE. 
+     .              TM_LENSTR(line_name(axis)     ) .AND. .NOT.original) THEN
+             axname = line_name(axis)
+
+* Otherwise if upcase is turned off, return line_name_orig
+           ELSE
+	      axname = line_name_orig(axis)
+           ENDIF
 	ENDIF
 
+	
 	RETURN
 	END
-
-
diff --git a/fer/gnl/coached_str_sub.F b/fer/gnl/coached_str_sub.F
index 52042ff..05df0d0 100644
--- a/fer/gnl/coached_str_sub.F
+++ b/fer/gnl/coached_str_sub.F
@@ -89,6 +89,7 @@
 * V580 *acm* 11/04 when command contains some error text, and an error condition
 *                  is found, issue an error rather than just a note. (bug 1077)
 * V500 *acm*  1/05 Fix the above within the ifdef NO_PASSED_CONCAT too
+* V698 *acm*  4/16 Fix ticket 2398: report the argument as given, along with the error
 
 * calling argument declarations:
 	LOGICAL   err_subst
@@ -285,8 +286,21 @@
      .       coaching(estart:eend), *5000)
 !	   CALL WARN( coaching(estart:eend) )
 	ELSEIF ( options ) THEN
+	   tmp_buff = sym_name
+	   IF (tmp_buff(1:1) .EQ. 'a') tmp_buff(1:1) = 'A'
+	   iptr = TM_LENSTR1(tmp_buff)
+	   IF (len_in .EQ. 0) THEN
+	      CALL WARN
+     . 	       (tmp_buff(:iptr)//' was missing or empty.')
+           ELSE
+	      CALL WARN
+     . 	       (tmp_buff(:iptr)//' received was: '
+     .					//in_str(:len_in))
+	   ENDIF
+	   tmp_buff = sym_name
 	   CALL WARN
-     .	('Valid '//tmp_buff(:TM_LENSTR1(tmp_buff))//' choices are: '//risc_buff)
+     .	    ('Valid '//tmp_buff(:TM_LENSTR1(tmp_buff))
+     .	         //' choices are: '//coaching(ostart:oend))
 	ENDIF
 	GOTO 5000
 #else
@@ -296,6 +310,12 @@
 !	   CALL WARN( coaching(estart:eend) )
 	ELSEIF ( options ) THEN
 	   CALL WARN
+     .	('Aggument  '//sym_name//' received was: '
+     .					//in_str(:len_out))
+	   CALL WARN
+     .	('Valid '//sym_name//' choices are: '
+     .					//coaching(ostart:oend))
+	   CALL WARN
      .	('Valid '//sym_name//' choices are: '
      .					//coaching(ostart:oend))
 	ENDIF
diff --git a/fer/gnl/create_agg_axis.F b/fer/gnl/create_agg_axis.F
index 7086a28..27f982c 100644
--- a/fer/gnl/create_agg_axis.F
+++ b/fer/gnl/create_agg_axis.F
@@ -37,6 +37,11 @@
 
 * original: *acm*
 * V695+ *sh* 5/15 - set up calendar axis attributes from 1st member dset
+* V698 *sh* 1/16 - use TM_ALLO_TMP_LINE to create axis, so its use counts get 
+*			set and it gets deallocated automatically
+*      *sh* 2/16 - if a pre-existing identical axis exists, re-use it
+*                  else we cannot aggregate the aggs (for EF and FE aggs)
+*      *sh* 4/16 - put special E and F units onto agg axes
 
       IMPLICIT NONE
         include 'tmap_errors.parm'
@@ -49,62 +54,75 @@
         include 'xprog_state.cmn'
 	include 'xtm_grid.cmn_text'  
 	include 'errmsg.parm'
+	include 'xunits.cmn_text'
+
 	
 * calling argument declarations:
 	INTEGER	len, line_dir, iline, status
 
 * local variable declarations:
-	INTEGER ALLO_MANAGED_AXIS
+	INTEGER TM_FIND_LIKE_DYN_LINE, pre_exist
 	CHARACTER*64 newname
 
 * create the ensemble or forecast axis
-
-	status = ALLO_MANAGED_AXIS (iline )
+	CALL TM_ALLO_TMP_LINE (iline, status)
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
 * save the line in memory - but don't catalog its name
 	IF (line_dir .EQ. e_dim) THEN
 	   CALL TM_NEW_LINE_NAME ( 'ENSEMBLE', newname )
 	   line_direction( iline ) = 'EE'
+	   line_units( iline ) = plag_ax_units_e
 	ENDIF
 	IF (line_dir .EQ. f_dim) THEN
 	   CALL TM_NEW_LINE_NAME ( 'RUN', newname )
 	   line_direction( iline ) = 'FI'
+	   line_units( iline ) = plag_ax_units_f
 	ENDIF
 
 	line_name     ( iline ) = newname
 	line_name_orig( iline ) = newname
 	line_start    ( iline ) = 1.0D0
+!	line_start    ( iline ) = 0.5D0     ! something to consider ...3/16
 	line_delta    ( iline ) = 1.0D0
 	line_dim      ( iline ) = len
 	line_regular  ( iline ) = .TRUE.
 	line_modulo   ( iline ) = .FALSE.
-	line_units    ( iline ) = ' '
 	line_unit_code( iline ) = 0			! unknown units
 	line_shift_origin( iline ) = .FALSE.
 
-	line_direction( iline ) = 'NA'
-	IF (line_dir .EQ. x_dim) THEN
-	   line_direction( iline ) = 'WE'
-	   line_name     ( iline ) = 'LONGUITUDE'
-	ELSEIF (line_dir .EQ. y_dim) THEN
-	   line_direction( iline ) = 'SN'
-	   line_name     ( iline ) = 'LATITUDE'
-	ELSEIF (line_dir .EQ. z_dim) THEN
-	   line_direction( iline ) = 'UD'
-	   line_name     ( iline ) = 'DEPTH'
-	ELSEIF (line_dir .EQ. t_dim) THEN
-	   line_direction( iline ) = 'TI'
-	   line_name     ( iline ) = 'TIME'
-	ELSEIF (line_dir .EQ. e_dim) THEN
-	   line_direction( iline ) = 'EE'
-	   line_name     ( iline ) = 'ENSEMBLE'
-	ELSEIF (line_dir .EQ. f_dim) THEN
-	   line_direction( iline ) = 'FI'
-	   line_name     ( iline ) = 'FORECAST'
-	ENDIF
+!	line_direction( iline ) = 'NA'
+!	IF (line_dir .EQ. x_dim) THEN
+!	   line_direction( iline ) = 'WE'
+!	   line_name     ( iline ) = 'LONGUITUDE'
+!	ELSEIF (line_dir .EQ. y_dim) THEN
+!	   line_direction( iline ) = 'SN'
+!	   line_name     ( iline ) = 'LATITUDE'
+!	ELSEIF (line_dir .EQ. z_dim) THEN
+!	   line_direction( iline ) = 'UD'
+!	   line_name     ( iline ) = 'DEPTH'
+!	ELSEIF (line_dir .EQ. t_dim) THEN
+!	   line_direction( iline ) = 'TI'
+!	   line_name     ( iline ) = 'TIME'
+!	ELSEIF (line_dir .EQ. e_dim) THEN
+!	   line_direction( iline ) = 'EE'
+!	   line_name     ( iline ) = 'ENSEMBLE'
+!	ELSEIF (line_dir .EQ. f_dim) THEN
+!	   line_direction( iline ) = 'FI'
+!	   line_name     ( iline ) = 'FORECAST'
+!	ENDIF
 	line_name_orig( iline ) = line_name ( iline )
 
+! this code not needed.  AGG_CLEAN_GRIDS takes care of removing dups
+!* now check to see if an identical axis already exists.  If so, then
+!* use the pre-existing one, instead
+!	pre_exist = TM_FIND_LIKE_DYN_LINE( iline )
+!	IF (pre_exist .NE. unspecified_int4) THEN
+!	   line_name (iline) = char_init16   ! deallo'd in tm_garb_collect
+!!	   CALL TM_DEALLO_DYN_LINE(iline)
+!	   iline = pre_exist
+!	ENDIF
+
  5000   RETURN	
  5300   status = ferr_TMAP_error
 	RETURN
diff --git a/fer/gnl/create_agg_dset.F b/fer/gnl/create_agg_dset.F
index 6990d8a..cbb158f 100644
--- a/fer/gnl/create_agg_dset.F
+++ b/fer/gnl/create_agg_dset.F
@@ -1,5 +1,5 @@
-	SUBROUTINE CREATE_AGG_DSET (agg_dset, dname, dtitle,
-     .               nsets, agg_dim, iline, status)
+	SUBROUTINE CREATE_AGG_DSET (agg_dset, dname, dpath, dtitle,
+     .               nsets, dset1, agg_dim, iline, status)
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -39,11 +39,25 @@
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * V685 *acm*  3/13 For Ensemble aggregations, call the ds_type 'ENS'
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
+* V695+ *sh*  11/15 Correct bugs in setting of aggregate dset title
+* V698  *sh*  1/16 pass explicit path name (for "USE file.agg" compatibility)
+
+* calling argument
+*   agg_dset	- dataset number of the aggregation (input)
+*   dname	- name of the aggregated dataset (input)
+*   dpath	- pathname of the aggregated dataset (input)
+*   dtitle	- optional title string (input)
+*   nsets	- number of datasets in the aggregation (input)
+*   dset1	- dataset number of first (pattern) dataset in agg (input)
+*   agg_dim	- idim number (5 or 6) of aggregation dimension (input)
+*   iline	- ??
+*   status	- return status (output)
 
       IMPLICIT NONE
         include 'tmap_errors.parm'
 #include "tmap_dset.parm"
         include 'tmap_dims.parm'
+	include 'xstep_files.cmn_text'
 	include	'ferret.parm'
 	include 'xdset_info.cmn_text'
 	external xdset_info_data
@@ -53,14 +67,16 @@
 	include 'errmsg.parm'
 	include 'netcdf.inc'
 	include 'xvariables.cmn'
+	include 'xtext_info.cmn'
 
 * calling argument declarations:
-	CHARACTER*(*)	dname, dtitle
-	INTEGER		agg_dset, nsets, agg_dim, iline, status
+	CHARACTER*(*)	dname, dpath, dtitle
+	INTEGER		agg_dset, nsets, dset1, agg_dim, iline, status
 
 * local variable declarations:
 	INTEGER TM_LENSTR, TM_LENSTR1, ALLO_MANAGED_AXIS,
-     .		type, coordvar, varid, big_cx
+     .		type, coordvar, varid, big_cx, nlen, istep
+	CHARACTER LEFINT*20, ntext*20
 	REAL	bad_flag
 
 	CALL CD_INIT_AGG_DSET (agg_dset, dname, status)
@@ -72,23 +88,42 @@
 	IF (agg_dim .EQ. f_dim ) ds_type(agg_dset) = 'FCT'
 
 	ds_name(agg_dset) = dname
-	ds_des_name(agg_dset) = dname
+	ds_des_name(agg_dset) = dpath
 
 	IF (dtitle(1:2).EQ.char_init .OR. TM_LENSTR(dtitle).EQ.0) THEN
-	   ds_title(agg_dset) = cmnd_buff(item_start(1):item_end(num_items))
+	   ntext = LEFINT(nsets, nlen)
+	   IF (agg_dim.EQ.e_dim) THEN
+	      ds_title(agg_dset) = "Ensemble"
+	   ELSE
+	      ds_title(agg_dset) = "Forecast"
+	   ENDIF
+	   ds_title(agg_dset) = ds_title(agg_dset)(:8)//' series of '
+     .		//ntext(:nlen)//' datasets patterned on '//
+     .		ds_name(dset1)
 	ELSE
-	   ds_title(agg_dset) = dtitle(:TM_LENSTR1(dname))
+	   ds_title(agg_dset) = dtitle
 	ENDIF
-
+	ds_mod_title(agg_dset) = ' '
+ 
+* assign a stepfile to this dataset (needed for consistency with other dsets)
+        DO istep = 1,maxstepfiles
+          IF (sf_setnum(istep) .EQ. set_not_open) THEN
+	     sf_name  (istep) = dname
+	     sf_setnum(istep) = agg_dset
+             GOTO 100
+          ENDIF
+	ENDDO
+* No room left for new stepfiles
+       GOTO 5400
+ 
 * create the aggregate axis
-
-	CALL CREATE_AGG_AXIS (nsets, agg_dim, iline, status)
+ 100	CALL CREATE_AGG_AXIS (nsets, agg_dim, iline, status)
 	IF (status .NE. ferr_ok) GOTO 5300 
 
 	RETURN
 	
  5000   RETURN	
  5300   status = ferr_TMAP_error
-	RETURN
-
+	GOTO 5000
+ 5400	CALL ERRMSG(ferr_internal, status, 'create_agg_dset', *5000)
 	END
diff --git a/fer/gnl/define_aggregate_grid.F b/fer/gnl/define_aggregate_grid.F
deleted file mode 100644
index 1ca4797..0000000
--- a/fer/gnl/define_aggregate_grid.F
+++ /dev/null
@@ -1,421 +0,0 @@
-	SUBROUTINE DEFINE_AGGREGATE_GRID (agg_dset, tcoordname, nvars, vname,
-     .      fvar, iline, tf_lag_t, grid, agg_dim, member_sets, nsets)
-
-*  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. 
-*
-* Define ensemble axis and grid using that axis. For uvars, grid is set to
-* unspecified_int4 when calling this. Will defer the grid check for later.
-
-* Programmer Ansley Manke
-* NOAA/PMEL, Seattle, WA - TMAP 
-*
-* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
-* V695+ 4/15 *acm* and *sh* -- added support for forecast aggregations
-
-      IMPLICIT NONE
-        include 'tmap_errors.parm'
-#include "tmap_dset.parm"
-        include 'tmap_dims.parm'
-	include	'ferret.parm'
-	include 'xdset_info.cmn_text'
-	external xdset_info_data
-	include 'xdset_info.cd_equiv'
-        include 'xprog_state.cmn'
-	include 'xtm_grid.cmn_text'  
-	include 'errmsg.parm'
-	include 'xvariables.cmn'
-	include 'xcontext.cmn'
-	include 'xfr_grid.cmn'
-	include 'interp_stack.parm'
-	include 'netcdf.inc'
-
-* calling argument declarations:
-	INTEGER agg_dset, nvars, fvar, iline, tf_lag_t, grid,
-     .		agg_dim, member_sets(*), nsets
-	CHARACTER*(*) vname, tcoordname
-
-* local variable declarations:
-	LOGICAL	its_dynamic, itsa_uvar, has_edges
-	INTEGER STR_SAME, TM_LENSTR1,
-     .		big_cx, igrid, idim, gnum, nv, type, ii, iset, slen, 
-     .		ndim, vtype, attype, attoutflag, i2, status,
-     .		npts, nT, nF, ipt, iline2, gnum2, it2d,
-     .		axcalt, axlagf, gg, ipt1, ipte, fax
-	REAL*8  TDEST_WORLD
-
-* Getting info back from the attribute-handling structure
-	CHARACTER dimname*128, buff*128, name1*128
-	INTEGER varid, tline, g2d
-
-* initialize
-      tline = unspecified_int4
-
-* Define aggregate grid
-
-      igrid = unspecified_int4
-      IF (grid .NE. unspecified_int4) THEN
-         igrid = 0
-         CALL TM_NEXT_TMP_GRID (igrid, 710)
-  710    CALL TM_ALLO_TMP_GRID (igrid, status)
-         IF (status .NE. ferr_ok) GOTO 5000
-
-         DO 700 idim = 1, nferdims
-            grid_line(idim, igrid) = grid_line(idim,grid)
-  700    CONTINUE
-	 tline = grid_line(t_dim, igrid)
-         grid_line(agg_dim, igrid) = iline
-* for FMRC agg the shared T axis is a time lag 
-	 IF (tf_lag_t .NE. unspecified_int4)
-     .			grid_line(t_dim, igrid) = tf_lag_t 
-
-* Make up a unique grid name for aggregate grid
-         IF (agg_dim .EQ. t_dim) grid_name(igrid) = 'GEN'
-         IF (agg_dim .EQ. f_dim) grid_name(igrid) = 'GFN'
-         CALL TM_NEW_GRID_NAME( grid_name(igrid), buff )
-         grid_name(igrid) = buff
-
-	 gnum = igrid
-      ENDIF
-
-* ds_var slot, fill with aggregate variable in aggregate dataset.
-      itsa_uvar = .FALSE.
-      DO 720 nv = 1, maxvars
-	      IF ( STR_SAME(ds_var_code(nv),char_init) .EQ. 0 ) GOTO 725
- 720	CONTINUE
- 725	ds_var_setnum(nv)   = agg_dset
-	CALL string_array_modify(ds_var_code_head, nv, 
-     .         ds_var_code(fvar), LEN(ds_var_code(fvar)))
-	ds_var_title(nv)    = ds_var_title(fvar)
-	IF ( ds_var_title(nv) .EQ. char_init128) 
-     .       ds_var_title(nv)  = ds_var_code(nv)
-	ds_var_titl_mod(nv) = ds_var_titl_mod(fvar)
-	ds_var_type(nv)     = ds_var_type(fvar)
-	ds_var_units(nv)    = ds_var_units(fvar)
-	ds_missing_flag(nv) = bad_val4
-	ds_bad_flag(nv)     = bad_val4
-	cd_scale_factor(nv) = 1.
-	cd_add_offset(nv)   = 0.
-	cd_scaled(nv)       = .FALSE.
-
-	IF (grid .NE. unspecified_int4) THEN
-	   ndim = 1
-	   DO 730 idim = 1, nferdims
-	      ds_grid_start(idim,nv)= ds_grid_start(idim,fvar)
-	      ds_grid_end(idim,nv)  = ds_grid_end(idim,fvar)
-	      ds_ordering(idim,nv)  = ds_ordering(idim,fvar)
-	      IF (ds_ordering(ndim,fvar) .GT. 0) ndim = ndim + 1
- 730	   CONTINUE
-	   ds_grid_start(agg_dim,nv)= 1
-	   ds_grid_end(agg_dim,nv)  = nsets
-	   ds_ordering(ndim,nv)     = agg_dim
-           
-	   ds_grid_number(nv) = gnum
-	ENDIF
-
-* Type should be NCFLOAT or NCCHAR
-	IF (ds_var_type(nv) .EQ. ptype_string) THEN
-	   type = NCCHAR
-	ELSE
-	   type = NCFLOAT
-	ENDIF
-      
-	CALL CD_ADD_VAR( agg_dset, vname, nvars, 
-     .         ds_var_title(nv), ds_var_units(nv), type, 
-     .         .FALSE., ds_bad_flag(nv), status)
-        IF (nvars .EQ. 1) name1 = vname
-
-* If this is a forecast aggregation, then the 2D time var has been defined (or 
-* will be, just below). Add a coordinates attribute to variables in the FMRC 
-* dataset which now have a 2D forecast-time coordinate variable. 
-* Also add an attribute (name to be finalized), _ftime2dRef pointing to TIME2D
-	      
-	IF (agg_dim.EQ.f_dim .AND. grid_line(t_dim, gnum).NE.int4_init) THEN
-	   buff = " "
-	   slen = 0
-	   DO 2200 idim = nferdims, 1, -1 
-	      IF (grid_line(idim, gnum) .NE. int4_init) THEN
-	         dimname = line_name(grid_line(idim, gnum))
-		 IF (idim .EQ. t_dim) dimname = tcoordname
-	         IF (slen.EQ.0) THEN
-		    buff = dimname(:TM_LENSTR1(dimname) )
-		 ELSE
- 	            buff = buff(:slen)//' '//dimname(:TM_LENSTR1(dimname) )
-                 ENDIF
-		 slen = TM_LENSTR1(buff)
-	      ENDIF
- 2200	   CONTINUE
-	   CALL CD_GET_VAR_ID (agg_dset, vname, varid, status)
-	   slen = TM_LENSTR1(buff)
-	   attoutflag = 1
-	   attype = NCCHAR
-	   CALL CD_PUT_NEW_ATTR (agg_dset, varid, 'coordinates', attype, 
-     .             slen, attoutflag, buff, 0., status )
-
-	   slen = TM_LENSTR1(tcoordname)
-	   attoutflag = 1
-	   attype = NCCHAR
-	   CALL CD_PUT_NEW_ATTR (agg_dset, varid, '_ftime2dRef', attype, 
-     .             slen, attoutflag, tcoordname, 0., status )
-
-	ENDIF
-
-* Add aggregate-grid info to the lists in aggregate datset and
-* aggregate-grid list.   Mark user-variables with a grid number of -999
-
-	DO 750 ii = 1, nsets
-	   iset = member_sets(ii)
-	   DO 740 nv = 1, maxvars
-	      IF ( (ds_var_setnum(nv) .EQ. iset) .AND. 
-     .             (STR_SAME(ds_var_code(nv), vname) .EQ. 0) ) THEN
-	         igrid = ds_grid_number(nv)
-		 vtype = cat_file_var ! file var
-	         CALL CD_ADD_AGG_VAR_INFO (agg_dset, vname, ii, vtype, 
-     .             iset, igrid, iline, nv, status)
-	      ENDIF
-	      IF ( (uvar_dset(nv) .EQ. iset) .AND. 
-     .             (STR_SAME(uvar_name_code(nv), vname) .EQ. 0) ) THEN
-	         igrid = unspecified_int4
-		 vtype = cat_user_var! user var
-	         CALL CD_ADD_AGG_VAR_INFO (agg_dset, vname, ii, vtype, 
-     .             iset, igrid, iline, nv, status)
-	      ENDIF
- 740	   CONTINUE
- 750	CONTINUE
-
- 
-************* FMRC setup **************************************************
-* Define 2D time variable and then the special axes needed for FMRC dataset
-* The code that follows should be executed only once for an FMRC aggregation
-* We use the test of whether the tcoordname variable is already defined
-* to bail out if the code has already been run 
-* (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, varid, status)
-	   IF (status .EQ. ferr_ok) GOTO 5000  ! BAIL OUT -- already defined
-
-	   igrid = 0
-	   CALL TM_NEXT_TMP_GRID (igrid, 760)
-  760	   CALL TM_ALLO_TMP_GRID (igrid, status)
-	   IF (status .NE. ferr_ok) GOTO 5000
-	   CALL TM_NEW_GRID_NAME ( 'FTI', buff )
-           grid_name(igrid) = buff
-	   g2d = igrid
-
-* ds_var slot, define TIME2D
-
-	   DO 770 nv = 1, maxvars
-	      IF ( STR_SAME(ds_var_code(nv),char_init) .EQ. 0 ) GOTO 775
- 770	   CONTINUE
- 775	   ds_var_setnum(nv)   = agg_dset
-	   CALL string_array_modify(ds_var_code_head, nv, 
-     .         tcoordname, LEN(tcoordname))
-	   ds_var_title(nv)    = 'Forecast time step matrix'
-	   ds_var_titl_mod(nv) = ' '
-	   ds_var_type(nv)     = ptype_float
-	   ds_missing_flag(nv) = bad_val4
-	   ds_bad_flag(nv)     = bad_val4
-	   cd_scale_factor(nv) = 1.
-	   cd_add_offset(nv)   = 0.
-	   cd_scaled(nv)       = .FALSE.
-* ... re-assemble units = 'days since 15-jan-1982' from units and t0
-	   slen = TM_LENSTR1(line_units(tline))
-	   ds_var_units(nv)    = line_units(tline)(:slen) // ' since '
-     .			      // line_t0(tline)
-
-	   IF (g2d .NE. unspecified_int4) THEN
-	      DO 780 idim = 1, nferdims
-	         grid_line(idim, g2d) = 0
-	         ds_grid_start(idim,nv) = 1
-	         ds_grid_end(idim,nv) = 1
-	         ds_ordering(idim,nv) = 0
- 780	      CONTINUE
-
-	      grid_line(t_dim, g2d) = grid_line(t_dim,gnum)
-	      grid_line(f_dim, g2d) = iline
-
-	      ds_grid_start(t_dim,nv) = 1
-	      ds_grid_end(t_dim,nv) = line_dim(tline)
-	      ds_ordering(1,nv) = t_dim
-
-	      ds_grid_start(f_dim,nv) = 1
-	      ds_grid_end(f_dim,nv) = nsets
-	      ds_ordering(2,nv) = agg_dim
-
-	      ds_grid_number(nv) = g2d
-	   ENDIF
-
-* ... save the sequence number of this variable, so we can cache it later
-	   it2d = nv
-
-	   type = NCFLOAT
-	   nvars = nvars + 1
-      
-	   CALL CD_ADD_VAR( agg_dset, tcoordname, nvars, 
-     .         ds_var_title(nv), ds_var_units(nv), type, 
-     .         .FALSE., ds_bad_flag(nv), status)
-
-* Add the aggregate-grid info with CALL CD_ADD_AGG_VAR_INFO
-* save the grid of the member datasets so we can get back the
-* right time axis for each member, but set member dataset to 0
-* because the 2d Time variable is not in the member sets.
-
-	   DO 790 ii = 1, nsets
-              iset = member_sets(ii)
-	      DO 795 i2 = 1, maxvars
-	         IF ( (ds_var_setnum(i2) .EQ. iset) .AND. 
-     .                (STR_SAME(ds_var_code(i2), name1) .EQ. 0) ) 
-     .            igrid = ds_grid_number(i2)
- 795	      CONTINUE
-
-	      iset = 0
-	      vtype = cat_agg_f_var
-	      CALL CD_ADD_AGG_VAR_INFO (agg_dset, tcoordname, ii, vtype, 
-     .             iset, igrid, iline, nv, status)
- 790	   CONTINUE
-
-* Give the time2D variable _CoordinateAxisType and calendar attributes
-
-	   CALL CD_GET_VAR_ID (agg_dset, tcoordname, varid, status)
-	   attype = NCCHAR
-	   CALL CD_PUT_NEW_ATTR (agg_dset, varid, '_CoordinateAxisType', 
-     .       attype, 4, attoutflag, 'Time', 0., status )
-	   slen = TM_LENSTR1(line_cal_name(tline))
-	   attoutflag = 1
-	   attype = NCCHAR
-	   CALL CD_PUT_NEW_ATTR (agg_dset, varid, 'calendar', attype, 
-     .       slen, attoutflag, line_cal_name(tline), 0., status )
-
-* define two special axes needed for FMRC regridding:
-* the 1D verification time axis and the 1D forecast
-* lead time axis
-* Assemble the 2D time array in line_mem and call CD_MAKE_FMRC_AXES
-* Save it at the start of available line storage memory
-* Also save the time box edge positions in line_mem above the 2d array
-* line_mem contents will be:  2d_times, 2d_lo_lims, hi_lim_of_last_time
-	   nT = line_dim(grid_line(t_dim,gnum))
-	   nF = line_dim(grid_line(f_dim,gnum))
-	   npts = nT * nF
-	   ipt1 = next_line_mem_pos
-	   ipt  = ipt1
-	   IF ((ipt+2*npts+1).GT.maxlinestore) GOTO 5100
-
-* ... loop over the member data sets, copying their time steps
-	   DO ii = 1, nsets
-	      CALL CD_GET_AGG_VAR_INFO (agg_dset, vname, ii, 
-     .                vtype, iset, gnum2, iline2, nv, status)
-	      IF (status .NE. ferr_ok) GOTO 5200
-* ...  iline2 should be equal to iline -- no importance
-* set up to translate all times to the T0 of the first member
-	      CALL TDEST_WORLD_INIT (gnum2, grid, t_dim, status)
-	      IF (status .NE. ferr_ok) RETURN 
-	      DO i2 = 1, nT
-	         line_mem(ipt) = TDEST_WORLD(i2, gnum2, t_dim, box_middle)
-	         line_mem(ipt+npts) =
-     .				 TDEST_WORLD(i2, gnum2, t_dim, box_lo_lim)
-	         ipt = ipt + 1
-	      ENDDO
-	   ENDDO
-	   line_mem(ipt1+2*npts) =
-     .				 TDEST_WORLD(nT, gnum2, t_dim, box_hi_lim)
-
-* 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,
-     .						ds_var_c_cache_ptr(it2d))
-
-!***** TEST ****
-!	   CALL RECOVER_CACHED_ARRAY(line_mem(ipt1+72), npts,
-!     .						ds_var_c_cache_ptr(varid))
-
-
-* make the two special axes 
-* (varid still holds the id of the tccordname 2d time array)
-	   has_edges = .TRUE.
-	   CALL CD_MAKE_FMRC_AXES (agg_dset, has_edges, varid, tcoordname,
-     .			ds_var_type(nv), npts, nT, nF,
-     .			axcalt, axlagf, status)
-	   IF (status .NE. merr_ok) GOTO 5000
-
-* define the F calendar axis -- similar drill to above
-	   ipt1 = next_line_mem_pos
-	   IF ((ipt1+2*nF+1).GT.maxlinestore) GOTO 5100
-	   ipt  = ipt1
-
-* ... loop over the member data sets, copying the 1st time step of each
-	   DO ii = 1, nsets
-	      CALL CD_GET_AGG_VAR_INFO (agg_dset, vname, ii, 
-     .                vtype, iset, gnum2, iline2, nv, status)
-	      IF (status .NE. ferr_ok) GOTO 5200
-	      CALL TDEST_WORLD_INIT (gnum2, grid, t_dim, status)
-	      IF (status .NE. ferr_ok) RETURN 
-	      line_mem(ipt) = TDEST_WORLD(1, gnum2, t_dim, box_middle )
-	      line_mem(ipt+nF) = TDEST_WORLD(1, gnum2, t_dim, box_lo_lim )
-	      ipt = ipt + 1
-	   ENDDO
-	   line_mem(ipt+nF) = TDEST_WORLD(1, gnum2, t_dim, box_hi_lim )
-
-* ... make the forecast calendar axis
-	   CALL CD_MAKE_FMRC_FCAL_AXIS (agg_dset, iline, 
-     .					nF, axcalt, status)
-	   IF (status .NE. merr_ok) GOTO 5000
-
-! *sh* code in SHOW_DATA_SET_VARS indicates that I do not understand how the
-! current code handles grids of aggregated datasets.  This block of code
-! seems to be causing troubles ... causing SHOW DATA to display limits of
-! 0:-7777 for the F axis ... so I removed the block below
-
-!* as a precaution, a hack to correct any ds_start and ds_end
-!* values that may have been made using the old iline definition 
-!	   DO nv = 1, maxvars
-!	      IF ( ds_var_setnum(nv) .EQ. agg_dset ) THEN
-!	         gg  = ds_grid_number(nv)
-!	         fax = grid_line(f_dim,gg)
-!	         IF (fax .EQ. iline) THEN
-!	            ds_grid_start(f_dim,nv) = line_mem(ipt1)
-!	            ds_grid_end  (f_dim,nv) = line_dim(ipte)
-!	         ENDIF
-!	      ENDIF
-!	   ENDDO
-
-	ENDIF  ! Forecast aggregations speacial needs
-
-
-
- 5000	RETURN
- 5100	CALL ERRMSG(ferr_insuff_memory,status,
-     .	        'unable to define forecast aggregation', *5000)
- 5200	CALL ERRMSG(ferr_internal, status, 'define_aggregate_grid!', *5000)
-	END
diff --git a/fer/gnl/define_ef_aggregate_grid.F b/fer/gnl/define_ef_aggregate_grid.F
new file mode 100644
index 0000000..3d5e04e
--- /dev/null
+++ b/fer/gnl/define_ef_aggregate_grid.F
@@ -0,0 +1,638 @@
+	SUBROUTINE DEFINE_EF_AGGREGATE_GRID (agg_dset,
+     .		tcoordname, nvars, vname, fvar, iline,
+     .		tf_lag_t, ref_grid, agg_dim, member_sets, nsets)
+
+*  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. 
+*
+* Define ensemble or forecast axis and grid using that axis.
+* For uvars, grid is set to
+* unspecified_int4 when calling this. Will defer the grid check for later.
+
+* Programmer Ansley Manke
+* NOAA/PMEL, Seattle, WA - TMAP 
+*
+* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V695+ 4/15 *acm* and *sh* -- added support for forecast aggregations
+* V698 1/16 *sh* - support gappy and inconsistent length forecast members
+* V698 3/16 *sh* - shift both lag axes and F-calendar to pts at low cell edge
+
+      IMPLICIT NONE
+        include 'tmap_errors.parm'
+#include "tmap_dset.parm"
+        include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'xdset_info.cmn_text'
+	external xdset_info_data
+	include 'xdset_info.cd_equiv'
+        include 'xprog_state.cmn'
+	include 'xtm_grid.cmn_text'  
+	include 'errmsg.parm'
+	include 'xvariables.cmn'
+	include 'xcontext.cmn'
+	include 'xfr_grid.cmn'
+	include 'interp_stack.parm'
+	include 'netcdf.inc'
+
+* calling argument declarations:
+	INTEGER agg_dset, nvars, fvar, iline, tf_lag_t, ref_grid,
+     .		agg_dim, member_sets(*), nsets
+	CHARACTER*(*) vname, tcoordname
+
+* local variable declarations:
+	LOGICAL	NC_GET_ATTRIB, ITS_FMRC_2DTIME, its_dynamic, itsa_uvar,
+     .		has_edges, has_gaps, found_fvar, ef_ordered_time2d
+	INTEGER STR_SAME, TM_LENSTR1,
+     .		big_cx, igrid, idim, agg_grid, nv, type, ii, iset, slen, 
+     .		ndim, vtype, i2, i, status,
+     .		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
+	REAL*8  TDEST_WORLD, TM_WORLD_AX, fdelta
+
+* Getting info back from the attribute-handling structure
+        INTEGER maxlen
+        PARAMETER (maxlen = 128)
+	CHARACTER*(maxlen) dimname, buff, name1
+	INTEGER varid, t2did, tline, g2d, globalid, ref_id, attlen,
+     .		attype, attoutflag
+        REAL    attvals(10)
+
+* initialize
+	tline = unspecified_int4
+	has_gaps = .FALSE.
+	ef_ordered_time2d = .FALSE.
+	ef_time2d_dset = ds_var_setnum(fvar)
+
+* the 2D time variable in an E-aggregation of F-aggregations has special needs
+* its grid should not have the agg axis 
+	IF (agg_dim .EQ. E_dim) THEN
+	   ef_ordered_time2d = ITS_FMRC_2DTIME(ef_time2d_dset, fvar)
+	ENDIF
+
+* Define aggregate grid
+
+      igrid = unspecified_int4
+      IF (ref_grid .NE. unspecified_int4) THEN
+	 CALL TM_ALLO_TMP_GRID (igrid, status)
+         IF (status .NE. ferr_ok) GOTO 5000
+
+         DO 700 idim = 1, nferdims
+            grid_line(idim, igrid) = grid_line(idim,ref_grid)
+ 700     CONTINUE
+	 tline = grid_line(t_dim, igrid)
+	 IF (ef_ordered_time2d) THEN
+	    ef_time2d_grid = ref_grid  ! grid of fvar (w/out agg axis)
+	 ELSE
+	    grid_line(agg_dim, igrid) = iline
+	 ENDIF
+* for FMRC agg the shared T axis is a time lag 
+	 IF (tf_lag_t .NE. unspecified_int4) THEN
+	    grid_line(t_dim, igrid) = tf_lag_t 
+	 ENDIF
+* Make up a unique grid name for aggregate grid
+         IF (agg_dim .EQ. e_dim) grid_name(igrid) = 'GEN'
+         IF (agg_dim .EQ. f_dim) grid_name(igrid) = 'GFN'
+! as temps all have same name -- duplicates are resolved in AGG_CLEAN_GRIDS
+!         CALL TM_NEW_GRID_NAME( grid_name(igrid), buff )
+!         grid_name(igrid) = buff
+
+	 agg_grid = igrid
+      ENDIF
+
+* ds_var slot, fill with aggregate variable in aggregate dataset.
+      itsa_uvar = .FALSE.
+      DO 720 nv = 1, maxvars
+	      IF ( STR_SAME(ds_var_code(nv),char_init) .EQ. 0 ) GOTO 725
+ 720	CONTINUE
+ 725	ds_var_setnum(nv)   = agg_dset
+	CALL string_array_modify(ds_var_code_head, nv, 
+     .         ds_var_code(fvar), LEN(ds_var_code(fvar)))
+! ?? better: inherit these attibutes from members in SET_AGG_VAR_ATTS
+	ds_var_title(nv)    = ds_var_title(fvar)
+	IF ( ds_var_title(nv) .EQ. char_init128) 
+     .       ds_var_title(nv)  = ds_var_code(nv)
+	ds_var_titl_mod(nv) = ds_var_titl_mod(fvar)
+	ds_var_units(nv)    = ds_var_units(fvar)
+	ds_missing_flag(nv) = ds_missing_flag(fvar)	! was bad_val4
+	ds_bad_flag(nv)     = ds_bad_flag(fvar)		! was bad_val4
+	ds_var_type(nv)     = ds_var_type(fvar)
+	cd_scale_factor(nv) = 1.
+	cd_add_offset(nv)   = 0.
+	cd_scaled(nv)       = .FALSE.
+
+	IF (ref_grid .NE. unspecified_int4) THEN
+	   ndim = 1
+	   DO 730 idim = 1, nferdims
+	      ds_grid_start(idim,nv)= ds_grid_start(idim,fvar)
+	      ds_grid_end(idim,nv)  = ds_grid_end(idim,fvar)
+	      ds_ordering(idim,nv)  = ds_ordering(idim,fvar)
+	      IF (ds_ordering(ndim,fvar) .GT. 0) ndim = ndim + 1
+ 730	   CONTINUE
+	   ds_grid_start(agg_dim,nv)= 1
+	   ds_grid_end(agg_dim,nv)  = nsets
+	   ds_ordering(ndim,nv)     = agg_dim  ! last dimension of the grid
+* ... limit T axis length to the T length of the F aggregation
+           IF (agg_dim.EQ.f_dim .AND. tf_lag_t.NE.unspecified_int4)
+     .		ds_grid_end(t_dim,nv) = line_dim(tf_lag_t)
+
+	   ds_grid_number(nv) = agg_grid
+	ENDIF
+
+* Type should be NCFLOAT or NCCHAR
+	IF (ds_var_type(nv) .EQ. ptype_string) THEN
+	   type = NCCHAR
+	ELSE
+	   type = NCFLOAT
+	ENDIF
+
+* Hook the aggregated variable into the linked list structures
+	CALL CD_ADD_VAR( agg_dset, vname, nvars, 
+     .         ds_var_title(nv), ds_var_units(nv), type, 
+     .         .FALSE., ds_bad_flag(nv), status)
+        IF (nvars .EQ. 1) name1 = vname
+
+* If this is a forecast aggregation, then the 2D time var has been defined (or 
+* will be, just below). Add a coordinates attribute to variables in the FMRC 
+* dataset which now have a 2D forecast-time coordinate variable. 
+* Also add an attribute (name to be finalized), _ftime2d pointing to TIME2D
+	     
+	IF (agg_dim.EQ.f_dim .AND. grid_line(t_dim, agg_grid).NE.int4_init) THEN
+	   buff = " "
+	   slen = 0
+	   DO 2200 idim = nferdims, 1, -1 
+	      IF (grid_line(idim, agg_grid) .NE. int4_init) THEN
+	         dimname = line_name(grid_line(idim, agg_grid))
+		 IF (idim .EQ. t_dim) dimname = tcoordname
+	         IF (slen.EQ.0) THEN
+		    buff = dimname(:TM_LENSTR1(dimname) )
+		 ELSE
+ 	            buff = buff(:slen)//' '//dimname(:TM_LENSTR1(dimname) )
+                 ENDIF
+		 slen = TM_LENSTR1(buff)
+	      ENDIF
+ 2200	   CONTINUE
+	   CALL CD_GET_VAR_ID (agg_dset, vname, varid, status)
+	   slen = TM_LENSTR1(buff)
+	   attoutflag = 1
+	   attype = NCCHAR
+	   CALL CD_PUT_NEW_ATTR (agg_dset, varid, 'coordinates', attype, 
+     .             slen, attoutflag, buff, 0., status )
+
+	   slen = TM_LENSTR1(tcoordname)
+	   attoutflag = 1
+	   attype = NCCHAR
+	   CALL CD_PUT_NEW_ATTR (agg_dset, varid, '_ftime2d', attype, 
+     .             slen, attoutflag, tcoordname, 0., status )
+
+	ENDIF
+
+* Add aggregate-grid info to the lists in aggregate datset and
+* aggregate-grid list.   Mark user-variables with a grid number of -999
+* Note if there is a LET/D variable that duplicates the name of a file var
+* it is the file var that gets registered, even though the LET/D var has
+* precedence during evaluation.  This allows for the possibility thatthe LET/D
+* var may be cancelled. BUT it also allows the possibility that the grid
+* of the fvar is unacceptable -- a chance of a crash for a pathological dataset
+	dsets: DO ii = 1, nsets
+	   iset = member_sets(ii)
+* ... special hack for the TF_TIMES 2d time array when it is E-aggregated
+	   IF (ef_ordered_time2d) THEN
+	      vtype = cat_ef_time2d
+	      CALL CD_ADD_AGG_VAR_INFO (agg_dset, vname, ii, vtype, 
+     .                ef_time2d_dset, ef_time2d_grid, iline, fvar, status)
+	      CYCLE dsets
+	   ENDIF
+	   found_fvar = .FALSE.
+	   IF (iset .NE. pdset_dummy) THEN
+* ... add this member data set as an fvar as part of this aggregated variable
+	      DO nv = 1, maxvars
+	         IF ( (ds_var_setnum(nv) .EQ. iset) .AND. 
+     .                (STR_SAME(ds_var_code(nv), vname) .EQ. 0) ) THEN
+	            igrid = ds_grid_number(nv)
+		    vtype = cat_file_var
+	            CALL CD_ADD_AGG_VAR_INFO (agg_dset, vname, ii, vtype, 
+     .                iset, igrid, iline, nv, status)
+	            found_fvar = .TRUE.
+	            EXIT
+	         ENDIF
+	      ENDDO
+	      IF (.NOT.found_fvar) THEN
+* ... add this member data set as a LET/D as part of this aggregated variable
+* ... optimize search using deleted_list_get_undel
+!	         DO nv = 1, max_uvar      ! brute-force equivalent loop
+		 CALL deleted_list_get_undel(uvar_num_items_head,
+     .                              deleted_list_result(1),
+     .                              max_uvar, num_indices )
+	         DO i = 1, num_indices
+	            nv = deleted_list_result(i)
+	            IF ( uvar_num_items(nv) .EQ. uvar_deleted) CYCLE
+	            IF ( (uvar_dset(nv) .EQ. iset) .AND. 
+     .                   (STR_SAME(uvar_name_code(nv), vname) .EQ. 0) ) THEN
+		       vtype = cat_user_var
+	               igrid = uvar_grid(nv,iset)
+	               CALL CD_ADD_AGG_VAR_INFO (agg_dset, vname, ii, vtype, 
+     .                   iset, igrid, iline, nv, status)
+* ... bump the use count for this grid to protect it from being deleted if
+*     the user changes the LET/D definition -- grid is needed during the
+*     gather process (IS_STRIP & IS_AGGREGATE_GATHER).
+*  ==> be sure to un-use (deallo) it when the aggregation gets canceled
+*  ==> or if an error occurs prior to the complete initialization of this agg
+	               CALL TM_USE_DYN_GRID(igrid)
+	               EXIT
+	            ENDIF
+	         ENDDO
+	      ENDIF
+	   ELSE
+* ... add the dummy data set as a part of this variable 
+*     Note that the first member of the agg by common sense cannot be a dummy
+	      CALL CD_ADD_AGG_VAR_INFO (agg_dset, vname, ii, vtype_dummy, 
+     .             pdset_dummy, igrid_dummy, iline, nv_dummy, status)
+	   ENDIF
+* ... grab information from the first dataset to reuse with dummy datasets 
+	   IF (ii .EQ. 1) THEN
+*    ... OK_AS_AGG_VAR guarantees grid is always valid -- even for LET/D vars
+	      IF (igrid .EQ. unspecified_int4) STOP 'DEFINE_EF_AGG grid err'
+	      nv_dummy = nv
+	      igrid_dummy = igrid
+	      vtype_dummy = cat_file_var
+	   ENDIF
+	ENDDO dsets
+
+ 
+************* FMRC setup **************************************************
+* Define 2D time variable and then the special axes needed for FMRC dataset
+* The code that follows should be executed only once for an FMRC aggregation
+* We use the test of whether the tcoordname variable is already defined
+* to bail out if the code has already been run 
+* (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)
+	   IF (status .EQ. ferr_ok) GOTO 4000  ! BAIL OUT -- already defined
+
+	   igrid = 0
+!	   CALL TM_NEXT_TMP_GRID (igrid, 760)   ! not needed
+  760	   CALL TM_ALLO_TMP_GRID (igrid, status)
+	   IF (status .NE. ferr_ok) GOTO 5000
+	   CALL TM_NEW_GRID_NAME ( 'FTI', buff )
+           grid_name(igrid) = buff
+	   g2d = igrid
+
+* ds_var slot, define TIME2D
+
+	   DO 770 nv = 1, maxvars
+	      IF ( STR_SAME(ds_var_code(nv),char_init) .EQ. 0 ) GOTO 775
+ 770	   CONTINUE
+ 775	   ds_var_setnum(nv)   = agg_dset
+	   CALL string_array_modify(ds_var_code_head, nv, 
+     .         tcoordname, LEN(tcoordname))
+	   ds_var_title(nv)    = 'Forecast time step matrix'
+	   ds_var_titl_mod(nv) = ' '
+	   ds_var_type(nv)     = ptype_float
+	   ds_missing_flag(nv) = bad_val4
+	   ds_bad_flag(nv)     = bad_val4
+	   cd_scale_factor(nv) = 1.
+	   cd_add_offset(nv)   = 0.
+	   cd_scaled(nv)       = .FALSE.
+* ... re-assemble units = 'days since 15-jan-1982' from units and t0
+	   slen = TM_LENSTR1(line_units(tline))
+	   ds_var_units(nv)    = line_units(tline)(:slen) // ' since '
+     .			      // line_t0(tline)
+
+	   IF (g2d .NE. unspecified_int4) THEN
+	      DO 780 idim = 1, nferdims
+	         grid_line(idim, g2d) = 0   ! presumably =mpsnorm ??
+	         ds_grid_start(idim,nv) = 1
+	         ds_grid_end(idim,nv) = 1
+	         ds_ordering(idim,nv) = 0
+ 780	      CONTINUE
+
+	      grid_line(t_dim, g2d) = grid_line(t_dim,agg_grid)
+	      grid_line(f_dim, g2d) = iline
+
+	      ds_grid_start(t_dim,nv) = 1
+	      ds_grid_end(t_dim,nv) = line_dim(tf_lag_t)  ! limit to agg dim
+	      ds_ordering(1,nv) = t_dim
+
+	      ds_grid_start(f_dim,nv) = 1
+	      ds_grid_end(f_dim,nv) = nsets
+	      ds_ordering(2,nv) = agg_dim
+
+	      ds_grid_number(nv) = g2d
+	   ENDIF
+
+* ... save the sequence number of this variable, so we can cache it later
+	   it2d = nv
+
+	   type = NCFLOAT
+	   nvars = nvars + 1
+      
+	   CALL CD_ADD_VAR( agg_dset, tcoordname, nvars, 
+     .         ds_var_title(nv), ds_var_units(nv), type, 
+     .         .FALSE., ds_bad_flag(nv), status)
+
+* Add the aggregate-grid info with CALL CD_ADD_AGG_VAR_INFO
+* save the grid of the member datasets so we can get back the
+* right time axis for each member, but set member dataset to 0
+* because the 2d Time variable is not in the member sets.
+
+	   DO 790 ii = 1, nsets
+              iset = member_sets(ii)
+	      DO 795 i2 = 1, maxvars
+	         IF ( (ds_var_setnum(i2) .EQ. iset) .AND. 
+     .                (STR_SAME(ds_var_code(i2), name1) .EQ. 0) ) 
+     .            igrid = ds_grid_number(i2)
+ 795	      CONTINUE
+
+	      iset = pagg_promotion_indicator_dset
+	      vtype = cat_agg_f_var 
+	      CALL CD_ADD_AGG_VAR_INFO (agg_dset, tcoordname, ii, vtype, 
+     .             iset, igrid, iline, nv, status)
+ 790	   CONTINUE
+
+* Give the time2D variable _CoordinateAxisType, _ftime2d and calendar atts
+
+	   CALL CD_GET_VAR_ID (agg_dset, tcoordname, t2did, status)
+	   attype = NCCHAR
+	   CALL CD_PUT_NEW_ATTR (agg_dset, t2did, '_CoordinateAxisType', 
+     .       attype, 4, attoutflag, 'Time', 0., status )
+!	   CALL CD_PUT_NEW_ATTR (agg_dset, t2did, '_ftime2d', 
+!     .       attype, 4, attoutflag, 'self', 0., status )
+	   slen = TM_LENSTR1(line_cal_name(tline))
+	   attoutflag = 1
+	   attype = NCCHAR
+	   CALL CD_PUT_NEW_ATTR (agg_dset, t2did, 'calendar', attype, 
+     .       slen, attoutflag, line_cal_name(tline), 0., status )
+
+* an FMRC needs 4 axes:
+* 2 are the native axes of the data grids in compressed block FMRC form
+*   - native T: a lag axis of time steps between each successive forecast
+*   - native F: a calendar axis of times at which each run was initiated
+* 2 are target regridding axes:
+*   - target T: a calendar axis of the target times being forecast
+*   - target F: a lag (lead) axis of time steps prior to the target time
+
+* first define the two target axes
+* Assemble the 2D time array in line_mem and call CD_MAKE_FMRC_AXES
+* Save it at the start of available line storage memory
+* Also save the time box edge positions in line_mem above the 2d array
+* line_mem contents will be:  2d_times, 2d_lo_lims, hi_lim_of_last_time
+	   nT = line_dim(grid_line(t_dim,agg_grid))
+	   nF = line_dim(grid_line(f_dim,agg_grid))
+	   npts = nT * nF
+	   ipt1 = next_line_mem_pos
+	   ipt  = ipt1
+	   IF ((ipt+2*npts+1).GT.maxlinestore) GOTO 5100
+
+* ... loop over the member data sets, copying their time steps
+	   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
+	            ipt = ipt + 1
+	         ENDDO
+	      ELSE
+* ... insert the series of time step values from this forecast
+	         CALL CD_GET_AGG_VAR_INFO (agg_dset, vname, ii, 
+     .                vtype, iset, memb_grid, iline2, nv, status)
+	         IF (status .NE. ferr_ok) GOTO 5200
+* ... iline2 should be equal to iline -- no importance; not used
+* ... if the first member has a LET/D var, use time axis info from another var
+	         IF (memb_grid .EQ. unspecified_int4) memb_grid = igrid_dummy
+* set up to translate all times to the T0 of the first member
+	         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)
+	            ipt = ipt + 1
+	         ENDDO
+	      ENDIF
+	   ENDDO
+	   line_mem(ipt1+2*npts) =
+     .				 TDEST_WORLD(nT, memb_grid, t_dim, box_hi_lim)
+
+* ... if there were gaps in the forecast time array, fill 'em
+*     always compute lagF - the number of time steps between forecasts
+	   CALL FILL_FMRC_TIME_GAPS(has_gaps,
+     .				    line_mem(ipt1),
+     .				    line_mem(ipt1+npts),
+     .				    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,
+     .						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)
+	   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
+! 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
+! simply midpoints between them.
+
+* Get the F-step values -- lower bounds of the L=1 cells
+*   ... copying them from the axcalt axis
+	   l = 1
+	   DO ipt = ipt1, ipt1+nsets-1
+	      line_mem(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
+* ... 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) 
+*   ... the lower limit of the first point
+	   line_mem(ipt1+nsets) = line_mem(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
+	   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
+
+* ... 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
+! cannot put attribute onto axis, because axis isn't in dataset List structure
+! this is part of a larger problem that the newly created axes of aggregations
+! have not yet been inserted into any List structures ... so their attributes
+! cannot be manipulated
+!          CALL CD_ADD_COORD_VAR( pdset_coord_vars, stuff (add new axis) ...
+!          IF ( status .NE. ferr_ok ) GOTO 5600
+!	   slen = TM_LENSTR1(line_name(iline))
+!	   CALL CD_GET_VAR_ID (pdset_coord_vars,
+!     .		'('//line_name(iline)(:slen)//')', varid, status)
+!	   attoutflag = 1
+!	   attype = NCCHAR
+!	   CALL CD_PUT_NEW_ATTR (pdset_coord_vars, varid, '_CoordinateAxistype',
+!     .		   attype, 7, attoutflag, 'RunTime', 0., status )
+
+* ... assign global attributes pointing to the target regrid axes
+*    (CF requires variable attributes, but they are helpful as globals, too)
+	   CALL CD_GET_VAR_ID (agg_dset, '.', globalid, status)
+	   slen = TM_LENSTR1(line_name(axcalt))
+	   CALL CD_PUT_NEW_ATTR (agg_dset, globalid, '_cal_t_ax', attype, 
+     .             slen, attoutflag, line_name(axcalt), 0., status )
+	   CALL CD_PUT_NEW_ATTR (agg_dset, globalid, '_lag_f_ax', attype, 
+     .             slen, attoutflag, line_name(axlagf), 0., status )
+
+* make the regrid target axes non-temporary and set use counts to 1
+	   CALL TM_RE_ALLO_TMP_LINE(axcalt)
+	   CALL TM_USE_LINE(axcalt)
+	   CALL TM_RE_ALLO_TMP_LINE(axlagf)
+	   CALL TM_USE_LINE(axlagf)
+
+	ENDIF  ! end of forecast aggregation special coordinate creation
+
+
+* F-agg atts _cal_t_ax and _lag_f_a_x point to the special regridding axes
+ 4000	IF (agg_dim.EQ.f_dim) THEN
+	   slen = TM_LENSTR1(line_name(axcalt))
+	   attoutflag = 1
+	   attype = NCCHAR
+	   CALL CD_PUT_NEW_ATTR (agg_dset, varid, '_cal_t_ax', attype, 
+     .             slen, attoutflag, line_name(axcalt), 0., status )
+	   CALL CD_PUT_NEW_ATTR (agg_dset, varid, '_lag_f_ax', attype, 
+     .             slen, attoutflag, line_name(axlagf), 0., status )
+	ENDIF
+
+
+ 5000	RETURN
+ 5100	CALL ERRMSG(ferr_insuff_memory,status,
+     .	        'unable to define forecast aggregation', *5000)
+ 5200	CALL ERRMSG(ferr_internal, status, 'define_ef_aggregate_grid!',
+     .		 *5000)
+ 5300	CALL ERRMSG(ferr_aggregate_error, status,
+     .		'no suitable file vars in 1st aggregation member', *5000)
+	END
diff --git a/fer/gnl/define_special_grids.F b/fer/gnl/define_special_grids.F
index 0c961b4..bea7e8a 100644
--- a/fer/gnl/define_special_grids.F
+++ b/fer/gnl/define_special_grids.F
@@ -50,6 +50,7 @@
 *                   in line_name_orig for CANCEL MODE UPCASE
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 * V685 *acm*  6/13 Increase nominal length of abstract axis
+* V698 *sh* 12/15 set up dummy (missing placeholder) dataset 
 
 	include	'tmap_dims.parm'
 	include	'tmap_errors.parm'
@@ -57,6 +58,7 @@
 	external xunits_data
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+	include 'xdset_info.cmn_text'
 	include	'ferret.parm'
 	include	'xfr_grid.cmn'
 
@@ -247,7 +249,9 @@
 * save pointer to grid
 	mgrid_fabstract = igrid
 
-
+* dummy dataset
+	ds_name(pdset_dummy) = "(dummy)"
+	ds_des_name(pdset_dummy) = "(dummy)"
 
 	RETURN
 
diff --git a/fer/gnl/define_t_agg_mc_dset.F b/fer/gnl/define_t_agg_mc_dset.F
new file mode 100644
index 0000000..5e12124
--- /dev/null
+++ b/fer/gnl/define_t_agg_mc_dset.F
@@ -0,0 +1,177 @@
+	SUBROUTINE DEFINE_T_AGG_MC_DSET
+     .		(dset_name, dset_path, dset_title, nagfiles,
+     .		 memb_filename,
+     .		 memb_tstep_start, memb_tstep_end, memb_nstep,
+     .		 t_regular, use_strict, dset_num, 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. 
+*
+*
+* Define and initialize a MC (T-aggregated netCDF) dataset from a list
+* of member filenames and metadata about the times they contain
+* Since this code is derived from the old MC descriptor file logic, its
+* internals simulate the reading of a descriptor file
+* The first netCDF file in the list will be opened and inspected
+* in the process of creating the aggregation.
+
+* V695+ *sh* 10/15 new routine -- built as hack on tm_init_dset.F
+* V698 *sh* 1/16  pass explicit path name (for "USE file.agg" compatibility)
+*                 date-sort the file list in BUILD_T_AGG_AXIS
+
+* arguments:
+
+*	dset_name	- dataset name to assign to the aggregation (input)
+*	dset_path	- dataset path to assign to the aggregation (input)
+*	dset_title	- dataset title (input)
+*	nagfiles	- number of files in the aggregation (input)
+*	memb_filename	- array of filenames (input)
+*	memb_tstep_start- array of first timestep in each file (input)
+*	memb_tstep_end	- array of last  timestep in each file (input)
+*	memb_nstep	- array of N timesteps in each file (input)
+*			  (unspecified_int4 signals no metadata provided)
+*	t_regular	- flag to signal promise of regular timesteps (input)
+*	use_strict	- flag to allow micro-adjustments of T axis (input)
+*	dset_num	- number assigned to this data set (output)
+*	status		- return status (output)
+*
+
+* Argument definitions
+	LOGICAL		t_regular, use_strict
+	INTEGER		nagfiles, dset_num, status
+	INTEGER		memb_nstep(nagfiles), member_order(nagfiles)
+	REAL*8		memb_tstep_start(nagfiles), memb_tstep_end(nagfiles)
+	CHARACTER*(*)	dset_name, dset_path, dset_title
+	CHARACTER*512	memb_filename(nagfiles)
+
+* Parameter and common files
+        include 'ferret.parm'
+        include 'errmsg.parm'
+        include 'tmap_errors.parm'              ! error codes
+#include "tmap_dset.parm"
+        include 'tmap_dims.parm'                ! data set dimensions
+	include 'xtm_grid.cmn_text'
+	include 'xio.cmn_text'
+        external xio_data
+        include 'xdset_info.cmn_text'   ! data set common
+        external xdset_info_data
+        include 'xsys_names.cmn_text'
+        external xsys_names_data
+        include 'xdiag_ctrl.cmn_text'
+        external xdiag_ctrl_data
+        include 'xrisc_buff.cmn'
+
+* Internal declarations
+	LOGICAL	match
+	INTEGER	TM_LENSTR1, tmap_status
+	INTEGER	dlen, slen, iset, idim
+	INTEGER	perm(nferdims), memb_order(nagfiles)
+	CHARACTER LEFINT*16, buff*16
+
+* local parameter definitions
+	LOGICAL dont_re_use_existing
+	PARAMETER (dont_re_use_existing = .FALSE.)
+
+* initialize
+	dlen = TM_LENSTR1( dset_name )
+	DO idim = 1, nferdims
+ 	   perm(idim) = unspecified_int4 ! dummy USE/ORDER= qualifier
+	ENDDO
+
+* check to see if the aggregation name is already in use
+	DO iset = 1, maxdsets
+           match = ds_name(iset) .EQ. dset_name
+           IF ( match ) GOTO 5100
+!           match = ds_name(iset) .EQ. memb_filename(1)
+!           IF ( match ) GOTO 5200
+  	ENDDO
+
+* initialize the first file in the aggregation
+* ... it will serve as a pattern of the time-dependent variables that will
+*     be presumed to exist in all opther files of the aggregation
+!!!! ToDo:  add "ptax_share_no" argument to avoid sharing of time axis
+	CALL TM_INIT_DSET(memb_filename(1), dont_re_use_existing,
+     .			  perm, dset_num,t_regular, use_strict, tmap_status)
+
+	IF (tmap_status.NE.merr_ok) GOTO 5010
+	CALL CD_NCCLOSE ( dset_num, status)
+	IF ( status .NE. merr_ok ) GOTO 5010
+
+* build the aggregated time axis -- either from matedata the caller provided
+* (from python) or by reading the coord from the netCDF files
+	CALL BUILD_T_AGG_AXIS (dset_num, nagfiles, memb_order, memb_filename,
+     .			memb_tstep_start, memb_tstep_end,
+     .			memb_nstep, t_regular, use_strict, status)
+	IF (status .NE. ferr_ok) GOTO 9900
+
+* use individual file metadata to simulate an MC descriptor ("Multifile Cdf")
+	CALL INIT_T_AGG_MC_DSET(dset_num, nagfiles, memb_order, memb_filename,
+     .		 memb_tstep_start, memb_tstep_end, memb_nstep,
+     .		 use_strict, status)
+	IF (status .NE. merr_ok) GOTO 9900
+
+* change the dataset metadata to make this into an aggregation
+	ds_type(dset_num) = '  MC'
+	ds_name(dset_num) = dset_name
+	ds_des_name(dset_num) = dset_path 
+	IF (dset_title .NE. char_init) ds_title(dset_num) = dset_title
+	buff = LEFINT(nagfiles, slen)
+	ds_mod_title(dset_num)      = 'T-aggregation of '
+     .				// buff(:slen)//' netCDF files'
+	ds_regsteps(dset_num) = line_regular(ds_time_axis(dset_num))
+
+! stuff done in MC descriptors.  Needed here ??
+!	CALL TM_MAKE_4D_GRIDS(dset_num,status)
+!* ?? need to do this for remote mc aggregations ??
+!	CALL TM_DSET_USE_GRIDS( dset_num )
+
+* success
+	RETURN
+
+* errors
+ 5010	CALL ERRMSG( ferr_TMAP_error, status, ' ', *5000 )
+
+ 5100   CALL ERRMSG( ferr_invalid_command,status,
+     .		'given aggregation dataset name already in use: '
+     .		//dset_name(:dlen), *5000 )
+      
+! 5200	CALL ERRMSG( ferr_invalid_command,status,
+!     .		'the first file to be aggregated is already USEed: '
+!     .		//memb_filename(1), *5000 )
+
+* get out from error
+ 9900	CALL TM_PURGE_TMP_GRIDS(TMAP_status)
+	CALL TM_CLOSE_SET ( dset_num, TMAP_status )
+ 9950	dset_num = unspecified_int4
+ 5000	RETURN
+	END
diff --git a/fer/gnl/define_t_aggregation.F b/fer/gnl/define_t_aggregation.F
new file mode 100644
index 0000000..d261073
--- /dev/null
+++ b/fer/gnl/define_t_aggregation.F
@@ -0,0 +1,132 @@
+	SUBROUTINE DEFINE_T_AGGREGATION
+     .		(dset_name, dset_title, nagfiles,
+     .		 memb_filename,
+     .		 gvn_memb_tstep_start, gvn_memb_tstep_end, gvn_memb_nstep,
+     .		 t_regular, use_strict, dset_num, 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. 
+*
+*
+* this routine functions as a wrapper around the routine DEFINE_T_AGG_MC_DSET
+* it is intended to make that routine friendlier to call from Python
+* Through this routine we permit the Python user to pass scalars to
+* indicate the time step metadata is not available
+
+* V695+ *sh* 10/15 new routine 
+
+* arguments:
+*   NOTE: the 3 args that begin with "gvn" are the "given" metadata for the
+*   files to be aggregated.  If the gvn_memb_nstep array length is 1, then the
+*   calling program has elected NOT to provide this information 
+
+*	dset_name	- dataset name to assign to the aggregation (input)
+*	dset_title	- dataset title (input)
+*	nagfiles	- number of files in the aggregation (input)
+*	memb_filename	- array of filenames (input)
+*	gvn_memb_tstep_start - array of first timestep in each file (input)
+*	gvn_memb_tstep_end   - array of last  timestep in each file (input)
+*	gvn_memb_nstep	- array of N timesteps in each file (input)
+*	t_regular	- flag to signal promise of regular timesteps (input)
+*	use_strict	- flag to allow micro-adjustments of T axis (input)
+*	dset_num	- number assigned to this data set (output)
+*	status		- return status (output)
+*
+
+        include 'ferret.parm'
+        include 'errmsg.parm'
+
+* Argument definitions
+	INTEGER		gvn_memb_nstep(*)
+	REAL*8		gvn_memb_tstep_start(*), gvn_memb_tstep_end(*)
+	LOGICAL		t_regular, use_strict
+	INTEGER		nagfiles, dset_num, status
+	CHARACTER*(*)	dset_name, dset_title
+	CHARACTER*128	memb_filename(nagfiles)
+
+* Internal declarations
+	INTEGER	iset
+	INTEGER	memb_nstep(nagfiles)
+	REAL*8	memb_tstep_start(nagfiles), memb_tstep_end(nagfiles)
+
+* ***!!! TEMPORARY  !!!*** -- need to expand error message list
+	INTEGER ferr_invalid_pyFerret_call
+	ferr_invalid_pyFerret_call = ferr_invalid_command
+
+* initialize
+	status = ferr_ok
+
+* HOW TO GET THE SIZE OF AN ARRAY!!!!  Intrinsic SIZE function??
+
+
+* has the caller of this routine provided the time step metadata?
+	IF ( SIZE(gvn_memb_nstep).NE.SIZE(gvn_memb_tstep_start)
+     .  .OR. SIZE(gvn_memb_nstep).NE.SIZE(gvn_memb_tstep_end)  ) GOTO 5100
+
+	IF (SIZE(gvn_memb_nstep) .EQ. nagfiles) THEN
+* yes -- copy the given metadata into working arrays
+	   DO iset = 1, nagfiles
+	      memb_nstep      (iset) = gvn_memb_nstep      (iset)
+	      memb_tstep_start(iset) = gvn_memb_tstep_start(iset)
+	      memb_tstep_end  (iset) = gvn_memb_tstep_end  (iset)
+	   ENDDO
+	ELSEIF (SIZE(gvn_memb_nstep) .EQ. 1) THEN
+* no -- set up empty arrays
+	   DO iset = 1, nagfiles
+	      memb_nstep      (iset) = unspecified_int4
+	      memb_tstep_start(iset) = unspecified_val8
+	      memb_tstep_end  (iset) = unspecified_val8
+	   ENDDO
+	ELSE
+* oops -- lengths of arrays are not conformable
+	   GOTO 5100
+	ENDIF
+
+* now call the "real" routine
+	CALL DEFINE_T_AGG_MC_DSET
+     .		(dset_name, dset_title, nagfiles,
+     .		 memb_filename,
+     .		 memb_tstep_start, memb_tstep_end, memb_nstep,
+     .		 use_strict, dset_num, status)
+
+
+* success
+	RETURN
+
+* error exits
+ 5000	RETURN
+ 5100	CALL ERRMSG( ferr_invalid_command, status,
+     .		'aggregation timestep metadata  arrays must' //
+     .		'contain metadata for the files or be all of length 1'
+     .           *5000 )
+	END
diff --git a/fer/gnl/dollar_arg.F b/fer/gnl/dollar_arg.F
index fb6e883..e4c04ce 100644
--- a/fer/gnl/dollar_arg.F
+++ b/fer/gnl/dollar_arg.F
@@ -48,6 +48,7 @@
 * 11/04*acm* - fix bug 485: $0 should return the name of the script -
 *              IF (karg.LE.0 .OR. karg.GE.100) should be IF(karg.LT.0 ...
 * V693+ *sh 2/15 - added support for _DQ_-enclosedquotations
+* V697 *acm 1/16 - Fix ticket 2343: preserve blanks at the end of quoted args
 
 * calling argument declarations:
 	INTEGER	  lenarg, status
@@ -56,7 +57,7 @@
 * internal variable declarations:
 	LOGICAL quote, DQ_quote, found_comma, bslash, its_quote, its_DQ
 	INTEGER	TM_LENSTR1,lengo, iarg, goptr, start, iend, karg,
-     .		open_paren, open_brkt
+     .		open_paren, open_brkt, i, la
 	CHARACTER c1*1
 
 * internal parameter declarations
@@ -189,6 +190,15 @@
 !	   lenarg = iend - start + 1
 * ... remove one level of backslash escapes from the arg
 	   CALL DE_ESCAPE_STRING(arg, lenarg)
+
+* ... if the command had quotes, preserve blanks at the end of the string
+	   IF (goline(iend:iend) .EQ. ' ') THEN
+	      la = lenarg
+	      DO i = iend-start+1, la+1, -1
+	         lenarg = lenarg + 1
+		 arg = arg//' '
+	      ENDDO
+	   ENDIF
 	ENDIF
 
 * a set of empty quotes is regarded as a place-holder for the default
diff --git a/fer/gnl/errmsg.F b/fer/gnl/errmsg.F
index 2f53e08..a74d99f 100644
--- a/fer/gnl/errmsg.F
+++ b/fer/gnl/errmsg.F
@@ -90,6 +90,10 @@
 * *acm*  5/06 V600   -- Concatenate multiple lines for FER_LAST_ERROR with backslash.
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * *sh* 11/13 V685    -- if allowed_err, then quickly exit
+* V697 12/15 *acm* Ticket 2337 Increase length of cmnd buffer to 20480
+*                  Handle longer error strings when defining the buffer symbuf
+* V697 2/16 *acm* DO NOT Increase length of cmnd buffer to 20480 but keep related
+*                   changes here
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -113,6 +117,8 @@
 	LOGICAL 	help_cue, multiline
 	INTEGER		TM_LENSTR1, len_text, len_string, status,
      .			cr_pos, ier, ist, len_symbuf
+        INTEGER		max_len_symbuf
+	PARAMETER	(max_len_symbuf=1028)
         CHARACTER*1028  symbuf  ! for symbol FER_LAST_ERROR
 
 * see if "HELP CUE" was requested
@@ -143,7 +149,9 @@
 	      CALL TM_SPLIT_MESSAGE( err_lun, ' **ERROR: '//
      .				err_text(status-greport)(:len_text) )
      
-              symbuf(len_symbuf:) = ' **ERROR: '//
+              IF (len_symbuf + len_text + 10 .GT. max_len_symbuf) 
+     .			len_symbuf = len_symbuf - (len_text + 10)
+	      symbuf(len_symbuf:) = ' **ERROR: '//
      .				err_text(status-greport)(:len_text)
               len_symbuf = len_symbuf + len_text + 10
 
@@ -162,7 +170,9 @@
      .			        risc_buff(:len_string) )
 !     .				': '//err_string(:len_string) )  !11/93 SUN bug
 
-                 symbuf(len_symbuf:) = ' **ERROR: '//
+                 IF (len_symbuf + len_string + 10 .GT. max_len_symbuf) 
+     .			len_symbuf = len_symbuf - (len_string + 10)
+		 symbuf(len_symbuf:) = ' **ERROR: '//
      .			        risc_buff(:len_string) 
                  len_symbuf = len_symbuf + len_string + 10
 
@@ -176,18 +186,30 @@
      .				': '//risc_buff(:len_string) )
 !     .				': '//err_string(:len_string) )  !11/93 SUN bug
 
-                 symbuf(len_symbuf:) =' **ERROR: '//
+                 
+                 IF (len_symbuf + len_text + len_string + 13 .GT. max_len_symbuf )
+     .			len_symbuf = len_symbuf - (len_text + len_string + 13)
+                 IF (len_text + len_string + 13 .GT. max_len_symbuf) THEN
+		   len_symbuf = max_len_symbuf - len_text - 16
+		   symbuf =' **ERROR: '//
+     .				err_text(status-greport)(:len_text)//
+     .				': '//risc_buff(:len_symbuf)//'...'
+                   len_symbuf = max_len_symbuf
+		 ELSE
+		    symbuf(len_symbuf:) =' **ERROR: '//
      .				err_text(status-greport)(:len_text)//
      .				': '//risc_buff(:len_string) 
-                 len_symbuf = len_symbuf + len_text + len_string + 13
-
+                    len_symbuf = len_symbuf + len_text + len_string + 13
+		 ENDIF
               ENDIF
     
 	      IF ( multiline ) THEN
                  CALL WRITE_MULTI(err_lun, err_string(cr_pos+1:))
+                 len_string = TM_LENSTR1(err_string(cr_pos+1:))
+		 IF (len_symbuf + len_string + 2 .GT. max_len_symbuf) 
+     .			len_symbuf = len_symbuf -(len_string + 2)
                  symbuf(len_symbuf:len_symbuf) = '\\'
                  symbuf(len_symbuf+1:) = err_string(cr_pos+1:)
-                 len_string = TM_LENSTR1(err_string(cr_pos+1:))
                  len_symbuf = len_symbuf + len_string + 2
                  DO WHILE (INDEX( symbuf, pCR ) .GT. 0)
                    cr_pos = INDEX( symbuf, pCR )
@@ -202,7 +224,9 @@
 	   len_string = TM_LENSTR1( err_string )
 	   WRITE (err_lun,3100) err_string(:len_string)
 
-           symbuf(len_symbuf:) =err_string(:len_string)
+           IF (len_symbuf + len_string + 1  .GT. max_len_symbuf) 
+     .			len_symbuf = len_symbuf - (len_string + 1)
+	   symbuf(len_symbuf:) =err_string(:len_string)
            len_symbuf = len_symbuf + len_string + 1
 
  3100	   FORMAT (' **Panasonic error: ',A)
@@ -239,7 +263,7 @@
 * unrecognized error code ?
 	   CALL TM_SPLIT_MESSAGE( err_lun, 'unknown error code:')              
            symbuf(len_symbuf:) = 'unknown error code:'
-           len_symbuf = len_symbuf + 19
+           len_symbuf = MAX(max_len_symbuf, len_symbuf + 19)
 
 	END IF
 
@@ -254,8 +278,14 @@
 * indicates that control is to be returned to the operator
 	IF ( cs_in_control ) THEN
 * ... display the offending command
-	   IF (status.NE.ferr_silent) CALL TM_SPLIT_MESSAGE( err_lun,
-     .					cmnd_buff(1:len_cmnd) )
+           IF (len_cmnd .GT. max_len_symbuf) THEN
+              len_cmnd = MIN(len_cmnd, max_len_symbuf)
+	      IF (status.NE.ferr_silent) CALL TM_SPLIT_MESSAGE( err_lun,
+     .					cmnd_buff(1:len_cmnd)//'...')
+           ELSE
+	      IF (status.NE.ferr_silent) CALL TM_SPLIT_MESSAGE( err_lun,
+     .					cmnd_buff(1:len_cmnd))
+           ENDIF
            IF ( status.EQ.ferr_interrupt
      .    .OR. .NOT.mode_ignore_err    ) THEN
 * ... collapse the control stack back to simple operator control
@@ -283,9 +313,9 @@
          IF ( len_eftext .GT. 0) THEN
             symbuf(len_symbuf:) = '. Bailing out of external function '
      .         //efname(:len_efname)//'\\'
-            len_symbuf = len_symbuf + len_efname + 36
+            len_symbuf = MIN(max_len_symbuf, len_symbuf + len_efname + 36)
             symbuf(len_symbuf:) = ef_errtext(:len_eftext)
-            len_symbuf = len_symbuf + len_eftext
+            len_symbuf = MIN(max_len_symbuf, len_symbuf + len_eftext)
          ENDIF
 
 * TMAP_error was saved in FER_LAST_ERROR already. Otherwise save
diff --git a/fer/gnl/fill_fmrc_time_gaps.F b/fer/gnl/fill_fmrc_time_gaps.F
new file mode 100644
index 0000000..949f527
--- /dev/null
+++ b/fer/gnl/fill_fmrc_time_gaps.F
@@ -0,0 +1,123 @@
+	SUBROUTINE FILL_FMRC_TIME_GAPS (has_gaps, time2d, edge2d,
+     .					nt, nf, lagF, 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. 
+*
+* NOAA/PMEL, Seattle, WA - TMAP 
+
+* if there are gaps in the forecast array that was provided, there will be
+* missing rows in the 2d time array.  This routine fills thos gaps.
+*
+* V698 *sh* 12/15 
+
+* calling arguments
+*   has_gaps - (in) flag if gap-filling is needed
+*   time2d - (in) 2d forecast time step array (with missing time series)
+*   edge2d - (in) 2d forecast time lower bound array (also with missing points)
+*   nT	   - (in) number of time pointss in each forecast
+*   nF	   - (in) number of forecasts
+*   lagF   - (in) number of model time steps of lag between forecasts (output)
+
+* calling argument declarations:
+	LOGICAL has_gaps
+	INTEGER nT, nF, lagF, status
+	REAL time2d(nT, nF), edge2d(nT, nF)
+
+* internal variable declarations:
+	INTEGER ifcst, istep, ifcst2, istep2
+	REAL	tref
+	CHARACTER LEFINT*8
+
+	include 'ferret.parm'
+	include 'errmsg.parm'
+	
+* initialize
+	status = ferr_ok
+
+* determine the number of indices lagged between rows
+* the first and last time series are guaranteed to be present
+* find the column where it is first found in a subsequent row
+	tref = time2d(nT,1)
+	DO ifcst = 2, nF
+* ... find the next forecast that exists
+	   IF (time2d(1,ifcst) .EQ. unspecified_val8) CYCLE
+* ... find the time step of this forecast where tref gets repeated
+	   DO istep = nT, 1, -1
+	      IF (time2d(istep, ifcst) .EQ. tref) THEN
+	         lagF = (nT-istep)/(ifcst-1)
+	         GOTO 100
+	      ENDIF
+	   ENDDO
+	   GOTO 5100  ! tref not found in this forecast
+	ENDDO
+	GOTO 5100     ! should never get here
+
+ 100	IF (.NOT.has_gaps) RETURN    ! we computed lagF.  Thats enuf
+
+* fill in the missing time step values from adjoining rows
+	DO ifcst = 2, nF
+* ... skip valid forecasts
+	   IF (time2d(1,ifcst) .NE. unspecified_val8) CYCLE
+* ... copy the upper times from the preceding forecast
+	   DO istep = lagF+1, nT
+	      time2d(istep-lagF, ifcst) = time2d(istep, ifcst-1)
+	      edge2d(istep-lagF, ifcst) = edge2d(istep, ifcst-1)
+	   ENDDO
+* ... look ahead to find the next valid forecast
+	   DO ifcst2 = ifcst+1, nF
+	      IF (time2d(1,ifcst2) .NE. unspecified_val8) GOTO 110
+	   ENDDO
+	   GOTO 5100  ! can never get here cuz the final row always exists
+* ... copy the lower times from this future forecast
+ 110	   istep2 = (ifcst2-ifcst)*lagF
+	   IF (istep2 .GT. nT-lagF) GOTO 5100  ! void too long
+	   DO istep = nT-lagF+1, nT
+	      time2d(istep,ifcst) = time2d(istep-istep2, ifcst2)
+	      edge2d(istep,ifcst) = edge2d(istep-istep2, ifcst2)
+	   ENDDO
+	ENDDO
+
+* success
+	status = ferr_ok
+	RETURN
+
+* error exits
+ 5000	RETURN
+ 5100	CALL ERRMSG( ferr_aggregate_error, status,
+     .		'time steps corrupted or '//
+     .		'too many missing forecasts in a row at forecast '//
+     .		LEFINT(ifcst, ifcst2), *5000 )
+
+	END
+
diff --git a/fer/gnl/get_context_mods.F b/fer/gnl/get_context_mods.F
index a3c82be..95aa02e 100644
--- a/fer/gnl/get_context_mods.F
+++ b/fer/gnl/get_context_mods.F
@@ -158,6 +158,7 @@
 * V695+ *sh* 2/15 add support for _DQ_ 
 * V698+ *sh* 5/15 bug fix: allow blanks before aux varname e.g. "gz( depth)"
 * V698+ *sh* 6/15 bug fix: all axes to allow [g*(aux)=pt], not just z_dim
+* V698+ *acm* 2/16 Ticket 2362: Change /D= qualifier to /DATASET=
 
 * specifiers may give coordinate in subscript units (/I,/J,/K,/L) or
 * may give coordinate in "world" units (/X,/Y,/Z,/T)
@@ -298,21 +299,25 @@
  30	      CONTINUE
 	   ELSEIF (letter.EQ.'d' .OR. letter.EQ.'D' ) THEN
 	      IF ( iend .EQ. istart ) GOTO 5015
-* make sure it isn't some other qualifier that begins with "d"
-!	      IF ( iend .GT. istart ) THEN
-	         IF (  text_buff( istart+1:istart+1 ) .NE. ' '
-     .	         .AND. text_buff( istart+1:istart+1 ) .NE. '='
-     .	         .AND. text_buff( istart+1:istart+1 ) .NE. tab ) GOTO 50
+* Match any portion of DATASET=
+               
+	      equal_pos = ATOM_POS( text_buff(istart:iend), '=' )
+	      IF ( equal_pos .EQ. atom_not_found
+     .	         .OR. equal_pos .EQ. atom_illegal_pos ) GOTO 50
+              namlen = equal_pos-1
+	      IF (namlen.GT.1) THEN
+	         name = text_buff(istart:istart+namlen-1)
+		 IF (.NOT. MATCH4(name, namlen, 'DATA', 4) ) GOTO 50
+	      ENDIF
+	      
 * We just want to go on if there is a grave-accent expression, e.g. 
 *  `var,r=dsetnum` inside the "d="
-                 do ii = istart+2,iend
-	            IF (  text_buff(ii:ii) .EQ. '`') GOTO 50
-		 enddo
-!	      ENDIF
+	      do ii = istart+2,iend
+	         IF (  text_buff(ii:ii) .EQ. '`') GOTO 50
+	      enddo
+
 * ... D=data_set given
-	      equal_pos = ATOM_POS( text_buff(istart:iend), '=' )
-	      IF ( equal_pos .EQ. atom_not_found
-     .	      .OR. equal_pos .EQ. atom_illegal_pos ) GOTO 5110
+
 	      equal_pos = equal_pos + istart - 1
 	      name = text_buff(equal_pos+1:iend)
 	      namlen = iend-equal_pos
diff --git a/fer/gnl/get_fer_command.F b/fer/gnl/get_fer_command.F
index db80204..c0f14a5 100644
--- a/fer/gnl/get_fer_command.F
+++ b/fer/gnl/get_fer_command.F
@@ -102,6 +102,11 @@
 *                   3) Do not call PARSE_COMMAND for pure comments.
 *		    4) Process continuation lines
 *                 Issue warning if GO file EOF found while in the midst of IF
+* V697 12/15 *acm* Ticket 2337 Increase length of cmnd buffer to 20480
+* V697 12/15 *acm* Ticket 2341 Check that cmnd_len hasn't been set to 0.
+* V697 2/16 *acm* DO NOT Increase length of cmnd buffer to 20480 but keep 
+*                 other related changes when reporting errors in long command lines
+
 
 #ifdef MIXING_NAG_F90_AND_C
 	USE F90_UNIX
@@ -287,6 +292,7 @@ c        IF(has_more.NE.1) goto 210
 * find length of command line ("!" is a valid terminator to permit comments)
 	cmnd_len = cmnd_len_w_cmnt   ! dflt len if no comment found
 	pure_comment = .FALSE.
+	IF (cmnd_len .LE. 0) pure_comment = .TRUE.
 	IF (cmnd_buff(1:1) .EQ. '!'
      . .OR. cmnd_buff(1:1) .EQ. '*'
      . .OR. cmnd_buff(1:1) .EQ. ' ' .AND. cmnd_len .EQ. 1) THEN
@@ -349,6 +355,7 @@ c        IF(has_more.NE.1) goto 210
 	   IF (appending_cmnd) THEN
 	      cmnd_copy = cmnd_copy(:len_cmnd_copy) // cmnd_buff(:cmnd_len)
 	      len_cmnd_copy = len_cmnd_copy + cmnd_len
+	      IF (len_cmnd_copy .GT. cmnd_buff_len) GOTO 5005
 	   ELSE
 	      cmnd_copy = cmnd_buff(:cmnd_len)
 	      len_cmnd_copy = cmnd_len
diff --git a/fer/gnl/get_mode_arg.F b/fer/gnl/get_mode_arg.F
index 5a444b6..0f75980 100644
--- a/fer/gnl/get_mode_arg.F
+++ b/fer/gnl/get_mode_arg.F
@@ -65,6 +65,7 @@
 * V67   *acm* 3/11 - Fix for ticket 1819, size of arg for MODE DESPERATE,
 *                    and allow for a floating-point input
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V698  *acm* 5/16 Ticket 2405: MODE CALENDAR:auto
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -107,7 +108,7 @@
 
 	ELSEIF ( mode .EQ. pmode_time_lab ) THEN
 	   tlen = MIN( 7, TM_LENSTR1(text) )
-	   DO 100 iarg = 1, 6
+	   DO 100 iarg = 1, 7
 	      vax_code = STR_CASE_BLIND_COMPARE
      .		( text(:tlen), date_labels(iarg)(:tlen) )
 	      IF ( vax_code .EQ. vms_str_success ) THEN
diff --git a/ppl/tmapadds/its_gksm.c b/fer/gnl/get_upcase_flag.F
similarity index 80%
copy from ppl/tmapadds/its_gksm.c
copy to fer/gnl/get_upcase_flag.F
index 6f1b555..29f6f6b 100644
--- a/ppl/tmapadds/its_gksm.c
+++ b/fer/gnl/get_upcase_flag.F
@@ -1,4 +1,5 @@
-/*
+	SUBROUTINE get_upcase_flag( upcase )
+*
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -30,19 +31,22 @@
 *  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
 *  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.  
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*/
+* return the value of the flag mode_upcase_output.  The common blocks
+* and/or declarations used in the include files here conflict with 
+* declarations in repl_exprns
+* V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
+*                  using original upper/lowercase spelling
 
+	include 'tmap_dims.parm'
+	include 'xprog_state.cmn'
 
+* calling argument declarations
+	LOGICAL	upcase
 
-/* 
- * boolean function returns 1 or 0 to tell if the given
- * GKS workstation is a GKSM metafile workstation
- */
+	upcase = mode_upcase_output
 
-int its_gksm_(int *wkid)
-{
-    return 0;
-}
+	RETURN
 
+	END
diff --git a/fer/gnl/init_aggregate_dset.F b/fer/gnl/init_aggregate_dset.F
deleted file mode 100644
index 9e952a8..0000000
--- a/fer/gnl/init_aggregate_dset.F
+++ /dev/null
@@ -1,426 +0,0 @@
-	SUBROUTINE INIT_AGGREGATE_DSET (dname, dtitle, agg_dset, 
-     .     agg_quiet, agg_hide, agg_dim, 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. 
-*
-* Programmer Ansley Manke
-* NOAA/PMEL, Seattle, WA - TMAP 
-*
-* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
-* V685 4/13 *acm* Ability to define ensemble with /HIDDEN
-*                 Get grid of user-vars, allow more combinations with user vars
-*                 better error handling.
-* V695 2/15 *acm* Aggregation in either E or F direction, as defined by agg_dim
-* V695+ 5/15 *sh* Call GET_AXIS_SPEEDS (pulled out of CHECK_MEMBER_DSETS)
-
-      IMPLICIT NONE
-	include 'netcdf.inc'
-        include 'tmap_errors.parm'
-#include "tmap_dset.parm"
-        include 'tmap_dims.parm'
-	include	'ferret.parm'
-	include 'xdset_info.cmn_text'
-	external xdset_info_data
-	include 'xdset_info.cd_equiv'
-	include 'xunits.cmn_text'
-        include 'xprog_state.cmn'
-	include 'xtm_grid.cmn_text'  
-	include 'errmsg.parm'
-	include 'xvariables.cmn'
-	include 'xcontext.cmn'
-	include 'xfr_grid.cmn'
-
-* calling argument declarations:
-	CHARACTER*(*)	dname, dtitle
-	INTEGER		agg_dset, agg_dim, status
-	LOGICAL		agg_quiet, agg_hide
-
-* local variable declarations:
-	LOGICAL	match, has_uvars, need_tf_lag_t
-	INTEGER	TM_LENSTR, TM_LENSTR1, STR_SAME, NCF_DELETE_DSET,
-     .		NCF_ADD_AGG_MEMBER, NCF_GET_AGG_MEMBER_INFO, 
-     .          KNOWN_GRID,
-     .		iset, dset, item, ii, nT,
-     .		perm(nferdims), nsets, member_sets(maxdsets), 
-     .		imatch, nv, grid, igrid, idim, ivar, nvars, iline, 
-     .		slen, memb_var, memb_dset, memb_grid, ugrid, 
-     .		type, fvar, ndims, ngatts, recdim, varid, attoutflag,
-     .          tax_match, tf_lag_t, memb_tax, prev_line_start
-	CHARACTER vname*128, buff*64, tcoordname*16
-	CHARACTER TM_STRING*13
-	REAL*8  TM_WORLD, avg_lag
-
-* initialize
-	need_tf_lag_t = .TRUE.
-	tf_lag_t = unspecified_int4  ! lag time axis if FMRC
-
-* check to see if this name matches an already-open dataset name.
-* if so, thats an error
-
-	DO 100 iset = 1, maxdsets
-           match = ds_name(iset) .EQ. dname
-           IF ( match ) GOTO 5100
-  100	CONTINUE
-
-* See if requested datasets are open and if not, try to open them.
-
-	CALL CHECK_MEMBER_SETS (nsets, member_sets, status)
-	IF (status .NE. ferr_ok .OR. nsets .EQ. 0) GOTO 9950
-
-* Ok, all the member datasets are open and available
-
-* Assign aggregate data set number, exiting if maximum number 
-* of data sets are open
-
-	DO 200 iset = 1,maxdsets
-	  IF (ds_name(iset) .EQ. char_init1024) THEN
-	    agg_dset = iset
-	    GOTO 220
-	  ENDIF
-  200	CONTINUE
-
-* Too many data sets are open
-	CALL TM_ERRMSG ( merr_dsetlim, status, 'INIT_AGGREGATE_DSET',
-     .			 no_descfile, no_stepfile,
-     .			 'MAX='//TM_STRING(DBLE(maxdsets)),
-     .			 no_errstring, *9950)
- 220	CONTINUE
-
-* Create datset. Will delete it later if there are no aggregate variables found.
-	CALL CREATE_AGG_DSET (agg_dset, dname, dtitle,
-     .			 nsets, agg_dim, iline, status)  
-	IF (status .NE. ferr_ok) GOTO 5300
-
-* perform initializations needed on a new dataset
-!* interpret special parameters in the descriptor
-!	CALL GET_DSET_PARMS( agg_dset, status )
-!	IF ( status .NE. ferr_ok ) GOTO 5300XX
-
-* determine relative access speeds along each axis
-	CALL GET_AXIS_SPEED( agg_dset )
-
-!* build completed ( with time axis ) grids for computable variables
-!	CALL MAKE_CVAR_GRIDS( dset, status )
-!	IF ( status .NE. ferr_ok ) GOTO 5300XX
-
-* 1st member dset sets pattern for all to follow
-	dset = member_sets(1)
-
-* If this is a Forecast aggregation create name for the 2D time array
-* Make it unique as necessary by adding "_" chars
-	IF (agg_dim.EQ.f_dim) THEN
-	   tcoordname = 'TF_TIMES'
-	   slen = 8
- 250	   CONTINUE
-	   DO ivar = 1, maxvars
-	      IF (ds_var_setnum(ivar) .EQ. dset) THEN
-	         IF ( STR_SAME(tcoordname,ds_var_code(ivar)) .EQ. 0 ) THEN
-	            tcoordname = tcoordname(:slen)//'_'
-	            slen = slen + 1
-	            GOTO 250
-	         ENDIF
-	      ENDIF
-	   ENDDO
-	ELSE
-	   tcoordname = ' '
-	ENDIF
-
-*********  top of variable loop ***************
-* See what variables are shared by all the datsets
-	nvars = 0
-	DO 800 ivar = 1, maxvars
-           IF ( ds_var_setnum(ivar) .NE. dset ) GOTO 800
-	   vname = ds_var_code(ivar)
-	   imatch = 1
-	   DO 400 ii = 2, nsets
-	      iset = member_sets(ii)
-              DO 300 nv = 1, maxvars
-	         IF ( (ds_var_setnum(nv) .EQ. iset) .AND.
-     .                (STR_SAME(ds_var_code(nv), vname) .EQ. 0) ) THEN
-                    imatch = imatch + 1
-		 ENDIF
-  300	      CONTINUE
-
-* See if a user-defined LET/D variable name matches
-              DO 350 nv = 1, maxvars
-	         IF ( (uvar_dset(nv) .EQ. iset) .AND.
-     .                (STR_SAME(uvar_name_code(nv), vname) .EQ. 0) ) THEN
-                    imatch = imatch + 1
-	      ENDIF
-  350	      CONTINUE
-
-  400	   CONTINUE
-
-           IF (imatch .NE. nsets) THEN
-	      IF ( .NOT.agg_quiet ) 
-     .	         CALL WARN('Exclude variable from aggregate. '//
-     .	         'Does not appear in all member datasets: '//
-     .	         vname)
-	      GOTO 800 ! Variable not in all datasets
-	   ENDIF
-
-           grid = ds_grid_number(ivar)
-	   IF (grid_line(agg_dim, grid) .NE. 0) GOTO 5400
-
-* Check that grids match for file variables. 
-* NOTE if the variables in the member datasets share the same grid, and
-*      there is a record axis, then they may have different timesteps but 
-*      grid_line and ds_grid_start, ds_grid_end will have the same contents.
-*      How to find that case? (check line_mem) Or just allow it?
-
-* For a FMRC aggregation, the time axes must be the same units and origin 
-* and length but will in general NOT share time steps.  The first time step 
-* should increase from one set to the other. Not checking for this at the 
-* moment.
-
-           imatch = 1
-	   prev_line_start = 0
-	   IF (grid_line(t_dim, grid) .NE. 0) prev_line_start = 
-     .          line_start(grid_line(t_dim, grid))
-	   has_uvars = .FALSE.
-
-           DO 600 ii = 2, nsets
-	      iset = member_sets(ii)
-	      tax_match = 0
-              DO 500 nv = 1, maxvars
-	         IF ( (ds_var_setnum(nv) .EQ. iset) .AND. 
-     .                (STR_SAME(ds_var_code(nv), vname) .EQ. 0) ) THEN
-                    igrid = ds_grid_number(nv)
-		    DO 550 idim = 1, nferdims
-		       IF (agg_dim.EQ.f_dim .AND. idim.EQ.t_dim) GOTO 550
-		       IF ( grid_line(idim, grid) .NE.  
-     .                      grid_line(idim, igrid) ) GOTO 500
-  550	            CONTINUE
-                    imatch = imatch + 1
-		 ENDIF
-
-	         IF ( (uvar_dset(nv) .EQ. iset)   .AND. 
-     .                (STR_SAME(uvar_name_code(nv), vname) .EQ. 0) ) THEN
-
-	            CALL GET_UVAR_GRID( nv, iset, status )
-	            IF ( status .NE. ferr_ok ) GOTO 5600
-	            igrid = KNOWN_GRID(iset,cat_user_var,nv)
-
-	            IF (igrid .NE. grid) THEN
-		    DO 555 idim = 1, nferdims
-		       IF (agg_dim.EQ.f_dim .AND. idim.EQ.t_dim) GOTO 555
-		       IF ( grid_line(idim, grid) .NE.  
-     .                      grid_line(idim, igrid) ) GOTO 500
-  555	            CONTINUE
-                    ENDIF
-
-		    imatch = imatch + 1 
-
-		    has_uvars = .TRUE.
-	         ENDIF
-		 
-* For forecast-direction aggregations, the time axis of the aggregation 
-* is not taken directly from the ensemble members.  Instead it
-* is merely a lag axis -- number of time steps and lag per step
-		 IF (agg_dim .EQ. f_dim .AND. need_tf_lag_t) THEN
-	            memb_tax = grid_line(t_dim, grid)
-	            nT = line_dim(memb_tax)
-	            avg_lag = ( TM_WORLD(nT, grid, t_dim, box_middle )
-     .	                      - TM_WORLD(1,  grid, t_dim, box_middle ) )
-     .			      /(nT-1)
-	            CALL TM_NEW_LINE_NAME ( 'TF_LAG_T', buff )
-	            CALL TM_MAKE_BASIC_AXIS( buff, 0.0D0, avg_lag, nT,
-     .					     tf_lag_t, status )
-	            line_unit_code(tf_lag_t) = line_unit_code(memb_tax)
-	            line_units(tf_lag_t) =
-     .					un_name(line_unit_code(tf_lag_t))
-!	            line_tunit(tf_lag_t) =
-!     .					un_convert(line_unit_code(tf_lag_t))
-	            line_direction(tf_lag_t) = 'TT'
-	            line_dattype  (tf_lag_t) = nf_double
-	            line_dim_only (tf_lag_t) = .FALSE.  ! ?? why?
-	            need_tf_lag_t = .FALSE.
-		 ENDIF
-		       
-  500	      CONTINUE
-  600	   CONTINUE
-  
-
-*  variable in all datsets but they dont have the same grid.
-	   IF (imatch .NE. nsets) THEN
-	      IF ( .NOT.agg_quiet ) 
-     .	         CALL WARN('Exclude variable from aggregate. '//
-     .	         'Grid differs in member datasets: '//
-     .	         vname)
-              IF (agg_dim.EQ.f_dim .AND. tax_match.NE.0) THEN
-	      IF ( .NOT.agg_quiet ) 
-     .	         CALL WARN('FMRC Time axes do not share units or size;'//
-     .	         ' or starting times not increasing '//
-     .	         vname)
-              ENDIF
-	      GOTO 800 
-	   ENDIF
-	      
-* same grid for this variable in all datasets 
-	   
-           nvars = nvars + 1
-
-	   CALL DEFINE_AGGREGATE_GRID (agg_dset, tcoordname, nvars, vname,
-     .           ivar, iline, tf_lag_t, grid, agg_dim, member_sets, nsets)
-	   IF (status .NE. ferr_ok) GOTO 5000
-
-  800   CONTINUE
-
-* See if user-defined (LET/D=) variables from the first dataset are 
-* shared by all the datsets
-
-	dset = member_sets(1)
-	DO 1800 ivar = 1, maxvars
-           IF ( uvar_dset(ivar) .NE. dset ) GOTO 1800
-	   vname = uvar_name_code(ivar)
-	   imatch = 1
-
-	   grid = unspecified_int4
-	   DO 1400 ii = 2, nsets
-	      iset = member_sets(ii)
-              DO 1300 nv = 1, maxvars
-	         IF ( (ds_var_setnum(nv) .EQ. iset) .AND.
-     .                (STR_SAME(ds_var_code(nv), vname) .EQ. 0) ) THEN
-                    imatch = imatch + 1
-		    grid = ds_grid_number(nv)
-		    fvar = nv
-
-		 ENDIF
- 1300	      CONTINUE
-
-* See if a user-defined LET/D variable name matches
-              DO 1350 nv = 1, maxvars
-	         IF ( (uvar_dset(nv) .EQ. iset) .AND.
-     .                (STR_SAME(uvar_name_code(nv), vname) .EQ. 0) ) THEN
-
-                    imatch = imatch + 1
-		 ENDIF
- 1350	      CONTINUE
-
- 1400	   CONTINUE
-
-	   IF (imatch .NE. nsets) THEN
-	      
-	      IF ( .NOT.agg_quiet ) 
-     .	         CALL WARN('Exclude variable from aggregate. '//
-     .	         'Does not appear in all member datasets: '//
-     .	         vname)
-               GOTO 1800 ! Variable not in all datasets
-	   ENDIF
-
-* If one dataset contains the variable then we will be able to define the grid.
-	   
-	   IF (grid .NE. unspecified_int4) THEN
-
-              nvars = nvars + 1
-
-	      CALL DEFINE_AGGREGATE_GRID (agg_dset, tcoordname, nvars, vname,
-     .           fvar, iline, tf_lag_t, grid, agg_dim, member_sets, nsets)
-	      IF (status .NE. ferr_ok) GOTO 5000
-
-* Do not include variables that are entirely user-defined.
-	   ELSE
-	      IF ( .NOT.agg_quiet ) 
-     .	         CALL WARN('Exclude variable from aggregate. '//
-     .	         'Must be a file variable in at least '//
-     .		 'one member dataset: '// vname)
-
-	   ENDIF
-
- 1800	CONTINUE
-
-* If no variables from the datasets match, delete this dataset. 
-
-	if (nvars .EQ. 0) goto 5500
-
-* Add aggregate members to aggregate dataset
-
-	DO 2000 iset = 1, nsets
-	   status = NCF_ADD_AGG_MEMBER (agg_dset, member_sets(iset)) 
- 2000	CONTINUE
-
-	IF (dtitle(1:2) .NE. char_init) THEN
-	   ds_title(agg_dset) = dtitle
-	ELSE
-	   ds_title(agg_dset) = 'Ensemble'
-	ENDIF
-	ds_mod_title(agg_dset) = ' '
-	ds_time_axis(agg_dset) = ds_time_axis(member_sets(1))
-	ds_format(agg_dset) = ds_format(member_sets(1))
- 
-* set use counts and clean up temporary grids and axes for agg. dset
-	CALL TM_GARB_COL_GRIDS(agg_dset)
-
-* If user requested /HIDE, then mark the member datasets for
-* hidden status on SHOW DATA commands
-	
-	IF (agg_hide) THEN
- 	   DO 2100 iset = 1, nsets
-	      ds_hide (iset) = .TRUE. 
- 2100	   CONTINUE
-	ENDIF
-
- 5000   RETURN	
-
-* Errors: too-many datasets open so aggregate dataset can't be opened,
-* or error on a member dataset. 
-* ?? If some member datasets were opened, close them??)
-* Return no-dataset-number.
-
- 9950	agg_dset = unspecified_int4
-	status = ferr_TMAP_error
-	GOTO 5000
- 9960	CALL CANCEL_DATA_SET( agg_dset, .FALSE., status )
-	agg_dset = unspecified_int4
-	GOTO 5000
-
- 5100   CALL ERRMSG( ferr_invalid_command,status,
-     .		'dataset name already in use: '
-     .		//dname(:TM_LENSTR1(dname)), *5000 )
-     
- 5300	CALL ERRMSG( ferr_aggregate_error, status, ' ', *9950 )
-
- 5400	CALL ERRMSG( ferr_TMAP_error, status,
-     .		' Variables in member datasets already '
-     .		//'have axis in the E direction', *9950 )
-
- 5500	CALL ERRMSG( ferr_aggregate_error, status,
-     .		'No valid datasets or datasets share no variables. ', 
-     .		*9960 )
-
- 5600	CALL ERRMSG( ferr_aggregate_error, status,
-     .		'Could not get grid for user-defined variables '
-     .		//uvar_name_code(nv)(:TM_LENSTR1(uvar_name_code(nv))), 
-     .		*9960 )
-	END
-
diff --git a/fer/gnl/init_ef_aggregate_dset.F b/fer/gnl/init_ef_aggregate_dset.F
new file mode 100644
index 0000000..8ee1e4f
--- /dev/null
+++ b/fer/gnl/init_ef_aggregate_dset.F
@@ -0,0 +1,395 @@
+	SUBROUTINE INIT_EF_AGGREGATE_DSET (memb_dsetname_var,
+     .	   nsets, have_expr, dname, dpath, dtitle, agg_dset, 
+     .     agg_quiet, agg_hide, agg_dim, 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. 
+
+* initialize a new ensemble (E) or forecast (F) aggregated dataset
+* Aggregation member variables may be a blend of file variables and LET/D vars
+* Since the user may alter LET/D definitions after the aggregation has been
+* defined, the following approach is taken to processing:
+*  1) during DEFINE DATA/AGG the grids of all member variables are determined
+*     This means that IS_UVAR_GRID is called for LET/D vars.
+*     These grid numbers are stored in the aggregation LIST structures
+*     The grids of the variables in the aggregated (parent) dataset are also
+*     determined and stored in ds_grid_number as if they are file variables.
+*     These grids are "static" as with file variables -- always valid. 
+*  2) (TBD as of this writing!!!)==> the use counts of *all* member grids are
+*     bumped, so that they cannot be deleted, even if LET/D definitions change
+*  3) (TBD as of this writing!!!)==> at get_grid time all of the components
+*     of the aggregation are checked to
+*     ensure they have a grid (IS_UVAR_GRID) -- allowing for last-minute
+*     LET/D var changes
+*  4) during evaluation (in IS_STRIP and IS_AGGREGATE_GATHER) the variable
+*     name and member dataset number are used to make a fresh determination of
+*     the variable category and grid.  Error out if grid number has changed
+
+* Programmer Ansley Manke
+* NOAA/PMEL, Seattle, WA - TMAP 
+*
+* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V685 4/13 *acm* Ability to define ensemble with /HIDDEN
+*                 Get grid of user-vars, allow more combinations with user vars
+*                 better error handling.
+* V695 2/15 *acm* Aggregation in either E or F direction, as defined by agg_dim
+* V695+ 5/15 *sh* Call GET_AXIS_SPEEDS (pulled out of CHECK_MEMBER_DSETS)
+* V695+ 10/15 *sh* rename this routine to INIT_EF_AGGREGATE_DSET
+* V698 12/15 *sh* reorganization of code in order to accommodate:
+*		  checks of uvar grids delayed until eval
+*	          allow for LET/D def changes after DEFINE/AGG (hopefully)
+*		  allow dataset list passed as a Ferret string variable
+*                 allow forecast datasets out of order (sort em)
+*		  allow gaps in the forecast series (insert dummy datasets)
+* V698 1/16  *sh* pass explicit path name (for "USE file.agg" compatibility)
+*      2/16  *sh* automatically xfer attributes from member vars to agg vars
+*      3/16  *sh* trap simple invalid commands
+*                 start TBOXLO[L=1], not TBOX[L=1], of tf_lag_t axis at 0.0 
+
+* arguments:
+*	memb_dsetname_var - if have_expr, the variable of names (input)
+*	nsets		- number of datasets in the aggregation (input)
+*       have_expr	- flag if filenames were listed or in an expr (input)
+*	dname		- dataset name to assign to the aggregation (input)
+*	dpath		- dataset path name to assign to aggregation (input)
+*	dtitle		- dataset title (input)
+*	dset_num	- number assigned to this data set (output)
+*       agg_quiet       - flag whether to report certain conditions (input)
+*	agg_hide        - flag whether to hide the component datasets (input)
+*	agg_dim		- axis of the aggregation (E or F) (input)
+*	status		- return status (output)
+
+      IMPLICIT NONE
+	include 'netcdf.inc'
+        include 'tmap_errors.parm'
+#include "tmap_dset.parm"
+        include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'xdset_info.cmn_text'
+	external xdset_info_data
+	include 'xdset_info.cd_equiv'
+	include 'xunits.cmn_text'
+        include 'xprog_state.cmn'
+	include 'xtm_grid.cmn_text'  
+	include 'errmsg.parm'
+	include 'xvariables.cmn'
+	include 'xcontext.cmn'
+	include 'xfr_grid.cmn'
+
+* calling argument declarations:
+	CHARACTER*(*)	dname, dpath, dtitle
+	INTEGER		nsets, agg_dset, agg_dim, status
+	LOGICAL		have_expr, agg_quiet, agg_hide
+	REAL		memb_dsetname_var(*)
+
+* parameter definitions
+	INTEGER	pmaxgaps, pmaxvarsperset
+	PARAMETER (pmaxgaps = 10,
+     .		   pmaxvarsperset = 400)
+
+* local variable declarations:
+	LOGICAL	OK_AS_AGG_VAR, match, has_uvars
+	INTEGER	TM_LENSTR, TM_LENSTR1, STR_SAME,
+     .		NCF_ADD_AGG_MEMBER, NCF_GET_AGG_MEMBER_INFO, 
+     .          KNOWN_GRID,
+     .		iset, dset1, item, ii, nT, max_str_len,
+     .		perm(nferdims), member_sets(nsets+pmaxgaps),
+     .		imatch, nv, grid, igrid, idim, ivar, nvars, nuvars, iline, 
+     .		slen, memb_var, memb_dset, memb_grid, ugrid, nsets_wgaps,
+     .		type, fvar, ndims, ngatts, recdim, varid, attoutflag,
+     .          tf_lag_t, memb_tax,
+     .		ref_grid, ref_fvar, ref_fvars(pmaxvarsperset),
+     .		num_indices, j, jj, ignored_status
+	CHARACTER buff*64, tcoordname*16
+	CHARACTER TM_STRING*13
+	CHARACTER*512 GET_STRING_ELEMENT_1D_X, memb_dsetname(nsets)
+	CHARACTER*128 vname
+	REAL*8  TM_WORLD, avg_lag
+
+* initialize
+	tf_lag_t = unspecified_int4  ! lag time axis if FMRC
+	max_str_len = 512
+	nsets_wgaps = nsets
+	DO iset = 1, nsets+pmaxgaps
+	   member_sets(iset) = pdset_dummy
+	ENDDO
+
+* must have at least two datasets for an F aggregation
+	IF (agg_dim.EQ.F_dim .AND. nsets.LT.2) GOTO 5050
+
+* check to see if this new dataset name matches an already-open dataset name.
+* if so, thats an error
+	DO iset = 1, maxdsets
+           match = ds_name(iset) .EQ. dname
+           IF ( match ) GOTO 5100
+	ENDDO
+
+* set up array of dataset identifier strings
+*   these may be string dataset numers or names,  pre-init'ed or not
+	IF (have_expr) THEN
+*  ... dataset list passed through a string variable
+	  DO iset = 1, nsets
+	    memb_dsetname(iset) = GET_STRING_ELEMENT_1D_X(
+     .			nsets,
+     .                  memb_dsetname_var,iset,
+     .			max_str_len,slen )
+	  ENDDO
+	ELSE
+*  ... dataset names given by user on command line
+	  DO iset = 1, nsets
+	    memb_dsetname(iset) = cmnd_buff(item_start(iset):item_end(iset))
+	  ENDDO
+	ENDIF
+
+* See if requested datasets are open and if not, try to open them.
+	CALL CHECK_MEMBER_SETS (agg_dim, nsets, memb_dsetname,
+     .				member_sets, status)
+	IF (status .NE. ferr_ok) GOTO 9950
+
+* forecast aggregation datasets may need to be sorted and gaps detected
+	IF (agg_dim .EQ. f_dim) THEN
+	   CALL SORT_FMRC_DSETS (nsets, member_sets, nsets+pmaxgaps,
+     .				 nsets_wgaps, nT, status)
+	   IF (status .NE. ferr_ok) GOTO 5000
+	ENDIF
+
+* Assign aggregate data set number, exiting if maximum number 
+* of data sets are open
+	DO iset = 1,maxdsets
+	  IF (ds_name(iset) .EQ. char_init1024) THEN
+	    agg_dset = iset
+	    GOTO 220
+	  ENDIF
+	ENDDO
+* ... too many data sets are open
+	CALL TM_ERRMSG ( merr_dsetlim, status, 'INIT_EF_AGGREGATE_DSET',
+     .			 no_descfile, no_stepfile,
+     .			 'MAX='//TM_STRING(DBLE(maxdsets)),
+     .			 no_errstring, *9950)
+ 220	CONTINUE
+
+* Create datset. Will delete it later if there are no aggregate variables found
+* Note: the pattern will the first dataset given.  They may get reordered.
+	CALL CREATE_AGG_DSET (agg_dset, dname, dpath, dtitle,
+     .			 nsets_wgaps, member_sets(1), agg_dim, iline, status)  
+	IF (status .NE. ferr_ok) GOTO 5300
+
+* perform initializations needed on a new dataset
+* determine relative access speeds along each axis
+	CALL GET_AXIS_SPEED( agg_dset )
+
+* 1st member dset sets pattern for all to follow
+	dset1 = member_sets(1)
+
+* If this is a Forecast aggregation create name for the 2D time array
+* Make it unique as necessary by adding trailing "_" chars
+	IF (agg_dim.EQ.f_dim) THEN
+	   tcoordname = 'TF_TIMES'
+	   slen = 8
+ 250	   CONTINUE
+	   DO ivar = 1, maxvars
+	      IF (ds_var_setnum(ivar) .EQ. dset1) THEN
+	         IF ( STR_SAME(tcoordname,ds_var_code(ivar)) .EQ. 0 ) THEN
+	            tcoordname = tcoordname(:slen)//'_'
+	            slen = slen + 1
+	            GOTO 250
+	         ENDIF
+	      ENDIF
+	   ENDDO
+	ELSE
+	   tcoordname = ' '
+	ENDIF
+
+*****
+* find variables that are acceptable for aggregation using dset1 as the basis
+* an aggregatable var must have at least member dset that is an fvar - ref_fvar
+* note LET/D names that duplicate file variable names take precedence, so
+*     check them first
+	nuvars = 0
+!	DO nv = 1, max_uvar      ! brute-force equivalent loop
+	CALL deleted_list_get_undel(uvar_num_items_head,
+     .                              deleted_list_result(1),
+     .                              max_uvar, num_indices )
+	DO j = 1, num_indices
+	   nv = deleted_list_result(j)
+	   IF (uvar_dset(nv) .EQ. dset1) THEN
+	      IF (OK_AS_AGG_VAR(nv, cat_user_var, dset1, member_sets,
+     .		  nsets_wgaps, agg_dim, agg_quiet, ref_fvar, status)  ) THEN
+	         nuvars = nuvars + 1
+	         ref_fvars(nuvars) = ref_fvar
+	      ELSE
+	         IF (status .NE. ferr_ok) GOTO 5000
+	      ENDIF
+	   ENDIF
+	ENDDO
+	nvars = nuvars
+
+* now find the file variables
+	ref_grid = unspecified_int4
+        DO nv = 1, maxvars
+	   IF (ds_var_setnum(nv) .EQ. dset1) THEN
+* ... skip it if it duplicates a name already found as a LET/D variable
+	      DO ii = 1, nuvars
+	         IF (STR_SAME(ds_var_code(ref_fvars(ii)),
+     .			      ds_var_code(nv)           ) .EQ. 0) GOTO 300
+	      ENDDO
+	      IF (OK_AS_AGG_VAR(nv, cat_file_var, dset1, member_sets,
+     .		  nsets_wgaps, agg_dim, agg_quiet, ref_fvar, status)  ) THEN
+	         nvars = nvars + 1
+	         ref_fvars(nvars) = ref_fvar
+	      ELSE
+	         IF (status .NE. ferr_ok) GOTO 5000
+	      ENDIF
+	   ENDIF
+ 300	   CONTINUE
+	ENDDO
+*****
+
+* If no variables from the datasets match, delete this dataset. 
+	IF (nvars .EQ. 0) GOTO 5500
+
+* For forecast aggregations, the time axis of the aggregation 
+* is not taken directly from the ensemble members.  Instead it
+* is merely a lag axis -- number of time steps and lag per step
+	IF (agg_dim .EQ. f_dim) THEN
+	   ref_grid = ds_grid_number(ref_fvars(1))
+	   IF (ref_grid .EQ. unspecified_int4) GOTO 5400
+	   memb_tax = grid_line(t_dim, ref_grid)
+	   avg_lag = ( TM_WORLD(nT, ref_grid, t_dim, box_middle )
+     .	             - TM_WORLD(1,  ref_grid, t_dim, box_middle ) )
+     .			/(nT-1)
+	   CALL TM_NEW_LINE_NAME ( 'TF_LAG_T', buff )
+! pre 3/16	   CALL TM_MAKE_BASIC_AXIS( buff, 0.0D0, avg_lag, nT,
+* note that if the FMRC gets aggregated by the THREDDS Data Server this
+* code never gets called.  See CD_SCAN_AUX_COORDS for that case.
+	   CALL TM_MAKE_BASIC_AXIS( buff, avg_lag/2., avg_lag, nT,
+     .				    tf_lag_t, status )
+	   line_unit_code(tf_lag_t) = line_unit_code(memb_tax)
+	   line_units(tf_lag_t) = un_name(line_unit_code(tf_lag_t))
+	   line_direction(tf_lag_t) = 'TT'
+	   line_dattype  (tf_lag_t) = nf_double
+	   line_dim_only (tf_lag_t) = .FALSE.  ! indicates netCDF dim w/out var
+	ENDIF
+
+
+* register the list of variables found suitable for this aggregation
+	ii = 0
+	nv = 0
+	DO WHILE (ii .LT. nvars)
+	   ii = ii + 1
+	   nv = nv + 1! kludgy: incremented just below when TF_TIMES is added
+	   ref_fvar = ref_fvars(ii)
+	   vname = ds_var_code(ref_fvar)
+	   grid = ds_grid_number(ref_fvar)
+	   CALL DEFINE_EF_AGGREGATE_GRID (agg_dset, tcoordname, nv, vname,
+     .					  ref_fvar, iline, tf_lag_t, grid,
+     .					  agg_dim, member_sets, nsets_wgaps)
+	   IF (status .NE. ferr_ok) GOTO 5000
+
+* transfer to the aggregated variable whatever special attributes it inherits
+	   CALL SET_AGG_VAR_ATTS(agg_dset, vname, nv, nsets_wgaps, 
+     .			         ref_fvar, member_sets, status)
+	   IF (status .NE. ferr_ok) GOTO 9960
+	ENDDO
+
+* register member datasets to aggregate dataset
+	DO iset = 1, nsets_wgaps
+	   status = NCF_ADD_AGG_MEMBER (agg_dset, iset, member_sets(iset)) 
+	ENDDO
+ 
+* remove duplicate temp grid definitions amd makegrid names unique
+	CALL AGG_CLEAN_GRIDS(agg_dset, agg_dim, iline, tf_lag_t)
+
+* set use counts and remove temp status of agg grids and axes
+	CALL TM_GARB_COL_GRIDS(agg_dset)
+
+* set the official time axis of the dataset
+	CALL CD_GET_TIME_AXIS( agg_dset, t_dim, ignored_status )
+	IF (ignored_status .NE. merr_ok) CALL WARN
+     .					  ('INIT_EF_GET_TIME_AX crptn')
+
+* If user requested /HIDE, then mark the member datasets for hidden status
+	IF (agg_hide) THEN
+ 	   DO iset = 1, nsets_wgaps
+	      ds_hide (member_sets(iset)) = .TRUE. 
+	   ENDDO
+	ENDIF
+
+* successful completion
+	RETURN
+
+* error bail out
+* remove all hidden member datasets of the failed aggregation
+* ... this is a little brute force in that it may cancel a previously opened
+* ... dataset included using DEFINE DATA/AGG/HIDE (havnt checked carefully)
+ 5000	DO ii = 1, nsets_wgaps
+	   iset = member_sets(ii)
+	   IF (iset .EQ. pdset_dummy
+     .    .OR. iset .EQ. unspecified_int4) CYCLE
+	   IF (ds_name(iset) .EQ. char_init1024) CYCLE ! already deleted
+	   IF (ds_hide (iset)) CALL CANCEL_ONE_DATA_SET( iset, ignored_status )
+	ENDDO
+ 6000	RETURN	
+
+* Errors: too-many datasets open so aggregate dataset can't be opened,
+* or error on a member dataset. 
+* ?? If some member datasets were opened, close them??)
+* Return no-dataset-number.
+
+ 9950	agg_dset = unspecified_int4
+	status = ferr_TMAP_error
+	GOTO 5000
+* wipe out the partially-created aggregated dataset
+ 9960	CALL TM_PURGE_TMP_GRIDS(ignored_status)
+	CALL TM_CLOSE_SET_COND_DEALLO( agg_dset, .FALSE., ignored_status )
+	agg_dset = unspecified_int4
+	GOTO 5000
+
+ 5050	CALL ERRMSG( ferr_invalid_command,status,
+     .		'cannot F-aggregate a single member dataset', *6000 )
+
+ 5100   CALL ERRMSG( ferr_invalid_command,status,
+     .		'dataset name already in use: '
+     .		//dname(:TM_LENSTR1(dname)), *5000 )
+     
+ 5300	CALL ERRMSG( ferr_aggregate_error, status, ' ', *9950 )
+
+
+ 5400	CALL ERRMSG( ferr_aggregate_error, status,
+     .		'No time axis for aggregation',          *9960 )
+
+ 5500	CALL ERRMSG( ferr_aggregate_error, status,
+     .		'No valid datasets or datasets share no variables. ', 
+     .		*9960 )
+
+	END
+
diff --git a/fer/gnl/init_t_agg_mc_dset.F b/fer/gnl/init_t_agg_mc_dset.F
new file mode 100644
index 0000000..d8a2819
--- /dev/null
+++ b/fer/gnl/init_t_agg_mc_dset.F
@@ -0,0 +1,190 @@
+	SUBROUTINE INIT_T_AGG_MC_DSET
+     .		(dset_num, nagfiles, memb_order, memb_filename,
+     .		 memb_tstep_start, memb_tstep_end, memb_nstep,
+     .		 use_strict, 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. 
+*
+*
+*
+* Initialize a multifile netCDF ("MC") T-aggregated dataset
+*    - information equivalent to reading stepfile information from descriptor
+*      file is passed in through the argument list
+*    - call cd_init_dset on first file of data set to set up all 
+*      common information for the dataset, such as variables, etc
+*    - assemble the T-aggregate dataset and associate this
+*      time axis with the parent grids
+*
+* V695+ *sh* 10/15 - new, hack-built from MC_INIT_DSET
+* V698 *sh*   2/16 - member files may be disordered
+
+* arguments:
+*	dset_num	- number assigned to this data set (input)
+*	nagfiles	- number of files in the aggregation (input)
+*	memb_order	- sequence ordering of member (input)
+*	memb_filename	- array of filenames (input)
+*	memb_tstep_start- array of first timestep in each file (input)
+*	memb_tstep_end	- array of last  timestep in each file (input)
+*	memb_nstep	- array of N timesteps in each file (input)
+*	use_strict	- (not impl.) flag for coord micro-adjustment (input)
+*	status		- return status (output)
+
+* Argument definitions
+	LOGICAL		use_strict
+	INTEGER		nagfiles, dset_num, status
+	INTEGER		memb_nstep(nagfiles), memb_order(nagfiles)
+	REAL		memb_tstep_start(nagfiles), memb_tstep_end(nagfiles)
+	CHARACTER*512	memb_filename(nagfiles)
+
+* Parameter and common files
+
+	include 'tmap_errors.parm'		! error codes
+#include "tmap_dset.parm"	
+	include 'tmap_dims.parm'		! data set dimensions
+!#include "gt_lib.parm"
+	include 'ferret.parm'
+	include 'errmsg.parm'
+	include 'xio.cmn_text'
+        external xio_data
+	include 'xtm_grid.cmn_text'
+	external xgt_grid_data
+	include 'xdset_info.cmn_text'		! data set common
+	external xdset_info_data
+	include 'xstep_files.cmn_text'		! step file common
+	external xstep_files_data
+	include 'xdset_info.cd_equiv'		! has mc_init_stepfile
+
+* Define variables from Set File namelist records
+
+	include 'descript.def'
+
+
+* Internal declarations
+
+	CHARACTER*13	TM_STRING
+	INTEGER		ivar, stp_pos,
+     .			istep, i, nrecperstep, epos, first_file,
+     .			stp_cnt, min_pos, max_pos,istat,
+     .			lline, file_reclen, preceding_steps
+	REAL*8		file_trange, steps_in_file
+
+* simulate reading of step records - one per file to be aggregated
+	istep = 0
+
+* Initialize some STEPFILE variables
+	s_aux_set_num = 0       ! irrelevant?
+	s_regvarflag  = ' '     ! irrelevant
+	s_index       = ' '	! irrelevant
+	file_reclen = unspecified_int4  ! irrelevant?
+	s_delta	      = 0	! used to determine if regular time steps
+        preceding_steps = 0
+
+* * * * * * top of stepfile loop * * * * *
+	DO i = 1, nagfiles
+	  istep = memb_order(i)
+
+* calculate time range per file and check for even number per file
+	  file_trange = memb_tstep_end(istep)-memb_tstep_start(istep)
+	  steps_in_file = memb_nstep(istep)
+	  s_delta = file_trange / steps_in_file
+
+* Find the next storage position for stepfiles in common
+	  IF (i .EQ. 1) THEN
+* ... stepfile of first file in member list was assigned during netCDF init
+	     DO stp_cnt = 1,maxstepfiles
+	       IF (sf_setnum(stp_cnt) .EQ. dset_num) GOTO 100
+	     ENDDO
+	     GOTO 5100     ! should never happen
+	  ELSE  
+	     DO stp_cnt = stp_pos,maxstepfiles
+	       IF (sf_setnum(stp_cnt) .EQ. set_not_open) GOTO 100
+	     ENDDO
+* No room left for new stepfiles
+	     CALL TM_ERRMSG ( merr_filim, status, 'MC_AGG_INIT',
+     .			   dset_num, no_stepfile,
+     .			   'MAX='//TM_STRING(DBLE(maxstepfiles)),
+     .			   no_errstring, *9900)
+	   ENDIF
+
+* store values in common
+ 100	  sf_setnum(stp_cnt) = dset_num
+	  sf_name  (stp_cnt) = memb_filename(istep)
+	  sf_1step (stp_cnt) = memb_tstep_start(istep)
+	  sf_lastep(stp_cnt) = memb_tstep_end(istep)
+* sf_ndxs and sf_ndxe contain the L limits for each file on the agg T axis
+	  sf_ndxs  (stp_cnt) = preceding_steps + 1
+	  sf_ndxe  (stp_cnt) = preceding_steps + steps_in_file
+          preceding_steps = sf_ndxe(stp_cnt)
+	  sf_delta(stp_cnt) = s_delta
+!	  sf_aux_set_num(stp_cnt) = s_aux_set_num
+	  sf_lunit(stp_cnt) = file_not_open
+	  sf_index(stp_cnt) = s_index
+	  sf_reclen(stp_cnt) = file_reclen !???uninited var in MC_INIT_DSET
+	  IF (s_regvarflag .EQ. ' ') sf_regvars(stp_cnt) = .TRUE.
+!	  IF (last_delta .EQ. -999.) last_delta = s_delta  ! relevant?
+	  IF (s_delta .NE. 0) THEN
+	    sf_regtimes(stp_cnt) = .TRUE.		   ! relevant?
+	  ELSE
+	    sf_regtimes(stp_cnt) = .FALSE.
+	  ENDIF
+
+* time-independent fields are read from the first file in the member list
+	  IF (i .EQ. 1) mc_init_stepfile(dset_num) = stp_cnt
+
+* prepare for next file
+	  stp_pos = stp_cnt+1
+
+	ENDDO  
+* * * * end of stepfile loop * * * * *
+
+
+* summarize certain stepfile info at the dataset level
+	ds_1step(dset_num)  = memb_tstep_start(memb_order(1))
+	ds_lastep(dset_num) = memb_tstep_end(memb_order(nagfiles))
+	IF (ds_regsteps(dset_num)) THEN
+	  ds_delstep(dset_num)  = line_delta(ds_time_axis(dset_num))
+	ELSE
+	  ds_delstep(dset_num) = 0.
+	ENDIF
+	status = merr_ok
+
+	RETURN
+
+
+* errors
+ 9900	status = ferr_TMAP_error
+ 5000	RETURN
+ 5100	CALL ERRMSG( ferr_internal, status, 'init_t_agg_mc_dset', *5000)
+	END
diff --git a/fer/gnl/init_t_aggregate_dset.F b/fer/gnl/init_t_aggregate_dset.F
new file mode 100644
index 0000000..561a4a0
--- /dev/null
+++ b/fer/gnl/init_t_aggregate_dset.F
@@ -0,0 +1,136 @@
+	SUBROUTINE INIT_T_AGGREGATE_DSET(mem_filename_list,
+     .			nagfiles, have_expr,
+     .			dset_name, dset_path, dset_title,
+     .			t_regular, use_strict, dset_num, 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. 
+*
+*
+* assemble the needed arguments and call DEFINE_T_AGG_MC_DSET
+* a close cousin of this routine is DEFINE_T_AGGREGATION, which similarly
+* assembles the arguments, but is intended to for calling from Python
+* Whereas Python has the option to supply the time axis metadata of each
+* file to be aggregated, herein we will always need to glean that information
+* by opening each file
+
+* the incoming command syntax may be
+*    DEFINE DATA/AGGREGATE/<dim>  agname = file1, file2, file3, ...
+*  or
+*    DEFINE DATA/AGGREGATE/<dim>  agname = <string_expression>
+
+
+* admittedly, the hierarchy of calling names is not self-evident.  They are:
+* top level: INIT_T_AGGRETATE_DSET  and DEFINE_T_AGGREGATION (for Python)
+*   ==> DEFINE_T_AGG_MC_DSET
+*       ==> BUILD_T_AGG_AXIS
+*       ==> INIT_T_AGG_MC_DSET
+
+* V695+ *sh* 11/15 new routine 
+* V698 *sh* 1/16  pass explicit path name (for "USE file.agg" compatibility)
+
+* arguments:
+*	mem_filename_list - if have_expr, the variable of names (input)
+*	nagfiles	- number of files in the aggregation (input)
+*       have_expr	- flag if filenames were listed or in an expr (input)
+*	dset_name	- dataset name to assign to the aggregation (input)
+*	dset_path	- path name to assign to the aggregation (input)
+*	dset_title	- dataset title (input)
+*  t_regular (not implemented)	- flag to promise regular timesteps (input)
+*	use_strict	- flag to allow micro-adjustments of T axis (input)
+*	dset_num	- number assigned to this data set (output)
+*	status		- return status (output)
+*
+
+* these are the arrays that need to be created
+*	memb_filename	 - array of member filenames (input)
+*	memb_tstep_start - array of first timestep in each file (input)
+*	memb_tstep_end   - array of last  timestep in each file (input)
+*	memb_nstep	 - array of N timesteps in each file (input)
+
+
+        include 'tmap_dims.parm'
+	include 'ferret.parm'
+        include 'errmsg.parm'
+	include 'xprog_state.cmn'
+	include 'xvariables.cmn'   ! for is_mr
+
+* Argument definitions
+	LOGICAL		have_expr, t_regular, use_strict
+	INTEGER		nagfiles, dset_num, status
+	CHARACTER*(*)	dset_name, dset_path, dset_title
+	REAL		mem_filename_list(*)
+
+* Internal declarations
+	INTEGER	iset, slen, max_str_len
+	INTEGER	memb_nstep(nagfiles)
+	REAL*8	memb_tstep_start(nagfiles), memb_tstep_end(nagfiles)
+	CHARACTER*512 GET_STRING_ELEMENT_1D_X, memb_filename(nagfiles)
+
+* initialize
+	status = ferr_ok
+	max_str_len = 512
+
+* set up array of filenames
+	IF (have_expr) THEN
+*  ... filenames passed through a string variable
+	  DO iset = 1, nagfiles
+	    memb_filename(iset) = GET_STRING_ELEMENT_1D_X(
+     .			nagfiles,
+     .                  mem_filename_list,iset,
+     .			max_str_len,slen )
+	  ENDDO
+	ELSE
+*  ... filenames given by user on command line
+	  DO iset = 1, nagfiles
+	    memb_filename(iset) = cmnd_buff(item_start(iset):item_end(iset))
+	  ENDDO
+	ENDIF
+
+* set up dummy (empty) timestep metadata arrays
+	DO iset = 1, nagfiles
+	   memb_nstep      (iset) = unspecified_int4
+	   memb_tstep_start(iset) = unspecified_val8
+	   memb_tstep_end  (iset) = unspecified_val8
+	ENDDO
+
+* now call the "real" routine
+	CALL DEFINE_T_AGG_MC_DSET
+     .		(dset_name, dset_path, dset_title, nagfiles,
+     .		 memb_filename,
+     .		 memb_tstep_start, memb_tstep_end, memb_nstep,
+     .		 t_regular, use_strict, dset_num, status)
+
+
+* done
+	RETURN
+	END
diff --git a/fer/gnl/initialize.F b/fer/gnl/initialize.F
index 1e7823d..809507a 100644
--- a/fer/gnl/initialize.F
+++ b/fer/gnl/initialize.F
@@ -82,6 +82,8 @@
 *     *kms* 11/10 - added cat_pystat_var string_array_init
 * V68   1/12 *acm* declarations changes for double-precision ferret.
 *       3/12 *acm* cleanup ifdefs and unnecessary include files
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
 
         include 'tmap_errors.parm'  ! error codes
 	include 'tmap_dims.parm'
@@ -177,74 +179,10 @@
 * see BLOCK DATA initialization of COMMON/ XPROG_STATE /
 
 *********************** GRIDS **************************************************
-	CALL GFDL_TERMS
+c	CALL GFDL_TERMS
 
 	RADIAN=57.29578							! 1027
 	cm2deg = radian / radius
-	
-!	ito = line_subsc1(mpsxt)
-!	DO 210 ifrom = 1, line_dim(mpsxt)
-!	   line_mem ( ito ) = xt ( ifrom )		! point location
-!	   ito = ito + 1
-! 210	CONTINUE
-!	DO 212 ifrom = 1, line_dim(mpsxt)
-!	   line_mem ( ito ) = dxt( ifrom ) * cm2deg	! grid box size
-!	   ito = ito + 1
-! 212	CONTINUE
-!
-!	ito = line_subsc1(mpsxu)
-!	DO 220 ifrom = 1, line_dim(mpsxu)
-!	   line_mem ( ito ) = xv ( ifrom )
-!	   ito = ito + 1
-! 220	CONTINUE
-!	DO 222 ifrom = 1, line_dim(mpsxu)
-!	   line_mem ( ito ) = dxu( ifrom ) * cm2deg
-!	   ito = ito + 1
-! 222	CONTINUE
-!
-!	ito = line_subsc1(mpsyt)
-!	line_start(mpsyt) = yt( 1 )
-!	DO 230 ifrom = 1, line_dim(mpsyt)
-!	   line_mem ( ito ) = yt ( ifrom )
-!	   ito = ito + 1
-! 230	CONTINUE
-!	DO 232 ifrom = 1, line_dim(mpsyt)
-!	   line_mem ( ito ) = dyt( ifrom ) * cm2deg
-!	   ito = ito + 1
-! 232	CONTINUE
-!
-!	ito = line_subsc1(mpsyu)
-!	line_start(mpsyu) = yv( 1 )
-!	DO 240 ifrom = 1, line_dim(mpsyu)
-!	   line_mem ( ito ) = yv ( ifrom )
-!	   ito = ito + 1
-! 240	CONTINUE
-!	DO 242 ifrom = 1, line_dim(mpsyu)
-!	   line_mem ( ito ) = dyu( ifrom ) * cm2deg
-!	   ito = ito + 1
-! 242	CONTINUE
-!
-!	ito = line_subsc1(mpszt)
-!	line_start(mpszt) = zdzz( 1 ) * .01
-!	DO 250 ifrom = 1, line_dim(mpszt)
-!	   line_mem ( ito ) = zdzz( ifrom ) * .01
-!	   ito = ito + 1
-! 250	CONTINUE
-!	DO 252 ifrom = 1, line_dim(mpszt)
-!	   line_mem ( ito ) = dz  ( ifrom ) * .01
-!	   ito = ito + 1
-! 252	CONTINUE
-!
-!	ito = line_subsc1(mpszw)
-!	line_start(mpszw) = zdz( 1 ) * .01
-!	DO 260 ifrom = 1, line_dim(mpszw)
-!	   line_mem ( ito ) = zdz( ifrom     ) * .01
-!	   ito = ito + 1
-! 260	CONTINUE
-!	DO 262 ifrom = 1, line_dim(mpszw)
-!	   line_mem ( ito ) = dzz( ifrom + 1 ) * .01 ! Phil/Sieg start at 0
-!	   ito = ito + 1
-! 262	CONTINUE
 
 *************** MISCELLANEOUS **************************************************
 * TMAP librabry routine errors to same output unit as other errors
diff --git a/fer/gnl/show_data_set_xml.F b/fer/gnl/is_agg_member.F
similarity index 51%
copy from fer/gnl/show_data_set_xml.F
copy to fer/gnl/is_agg_member.F
index 4b9f209..a7d57aa 100644
--- a/fer/gnl/show_data_set_xml.F
+++ b/fer/gnl/is_agg_member.F
@@ -1,7 +1,5 @@
-	SUBROUTINE SHOW_DATA_SET_XML( lun, dset )
+	LOGICAL FUNCTION IS_AGG_MEMBER( dset, kth, parent, more )
 
-*
-*
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
 *  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -35,75 +33,76 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* Output the name and list variables in the data set in xml-style format
+* is the indicated dataset part of kth or more aggregated datasets
+!**** NOTE:  THIS ROUTINE (and many others) SHOULD USE THE dset
+!****      LIST STRUCTURE RATHER THAN BRUTE-FORCE LOOPS THROUGH ALL DATASETS
+
+* calling arguments
+*   dset    - the dataset to be checked to see if it is used in an agg (input)
+*   kth     - if more than one parent this specifies whichone to return (input)
+*   parent  - the kth agg that owns it (or unspecified_int4 if none) (output)
+*   more    - logical to indicate if there are other parents beyond kth 
+
+* programmer - steve hankin
+* V695 *sh* 1/16
+* V698  3/16 *acm* Remove unneeded xdset_parms.cmn
 
-* programmer - Ansley Manke, based on show_data_set_vars.F
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* 6-Aug-2003
-* V5.80 13-Sep-2004 *acm* Add data-set specific user variables to the listing
-*       30-Sep-2004 *acm* Move listing of dataset info to show_data.F, show any
-*                         dataset-specific user-defined variables, use the
-*                         tag <var name> rather than <vname>
-*       13-Oct-2004 *acm* for consistent XML, write <var name="VNAME" />
-* V67  *acm* 2/11 XML fixes. New attribute formatting, ![CDATA] escape, upper/lowercase handling.
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
-	include 'ez_lib.parm'
+	include 'tmap_errors.parm'
+	include	'ferret.parm'
+	include 'errmsg.parm'
+	include 'xprog_state.cmn'
 	include 'xdset_info.cmn_text'
 	external xdset_info_data
-	include 'xtm_grid.cmn_text'
+	include 'xrisc.cmn'
+	include	'xtm_grid.cmn_text'
 	external xgt_grid_data
-	include 'xez_info.cmn_text'
-	external xez_info_data
-	include	'ferret.parm'
-	include	'xvariables.cmn'
-	include	'xtext_info.cmn'
-	include	'xprog_state.cmn'
-	include	'xrisc.cmn'
 
 * calling argument declarations:
-	INTEGER	lun, dset
-	
-* local variable declarations:
-	INTEGER TM_LENSTR, TM_LENSTR1, ivar, slen
-        CHARACTER uvarname*150
-
- 2040   FORMAT ('<var name="', A, '" />' )
-
-* List the variables in the set
-
-	risc_buff = ' '
+	LOGICAL more
+	INTEGER	dset, kth, parent
 
-	DO 400 ivar = 1, maxvars
-	   IF ( ds_var_setnum(ivar) .NE. dset ) GOTO 400
-           IF ( ds_var_code(ivar) .EQ. '-' ) GOTO 400
-  
-* ... output variable code
-
-*           slen = TM_LENSTR1(ds_var_code(ivar))
-           CALL string_array_get_strlen1(ds_var_code_head, ivar, slen)
-           WRITE ( risc_buff, 2040 ) ds_var_code(ivar)(1:slen)
-	   CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
-
- 400	CONTINUE
-
-
-* show the data-set-specific user-defined variables
-
-	DO 600 ivar = 1, max_uvar
-	   IF (uvar_num_items(ivar) .EQ. uvar_deleted  ) GOTO 600
-	   IF (uvar_dset(ivar) .EQ. dset) THEN
-
-* ... output variable name
-
-             uvarname = uvar_name_code(ivar)
-             slen = TM_LENSTR1(uvarname)
-             WRITE ( risc_buff, 2040 ) uvarname(1:slen)
-             CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
-
-         ENDIF
- 600  CONTINUE
-
-      RETURN
-      END
+* local variable declarations:
+	INTEGER	nmemb, imemb, membset, iset, kparent, status
+
+
+* initialize -- default is "no parent found"
+	kparent = 0
+	IS_AGG_MEMBER = .FALSE.
+	parent = unspecified_int4
+	more = .FALSE.
+
+* check all of the aggregations currently open
+! note: extremely inefficient loop.  Should use List of aggs
+	DO iset = 1, maxdsets
+	   IF ( ds_name(iset) .EQ. char_init1024) CYCLE
+	   IF (iset .EQ. dset) CYCLE
+	   IF ( ds_type(iset).NE.'ENS' .AND. ds_type(iset).NE.'FCT') CYCLE 
+
+* Get number of agg members in this one
+	   CALL CD_GET_AGG_DSET_INFO (iset, nmemb, status)
+	   IF (status .NE. ferr_ok) CALL WARN('crptn: isit_agg_member')
+
+* Look through the agg members to see if we are one of them
+	   members: DO imemb = 1, nmemb
+	      CALL CD_GET_AGG_DSET_MEMBER (iset, imemb, membset, status)
+	      IF (status .NE. ferr_ok)  CALL WARN('crptn: isit_agg_member')
+	      IF (membset .EQ. dset) THEN
+	         kparent = kparent + 1
+	         IF (kparent .EQ. kth) THEN
+	            parent = iset ! return the kth one found
+	            IS_AGG_MEMBER = .TRUE.
+	         ELSEIF (kparent .GT. kth) THEN
+	            more = .TRUE.
+	            RETURN    ! nothing more worth learning
+	         ENDIF
+	         EXIT members
+	      ENDIF
+	   ENDDO members
+
+	ENDDO
+
+	RETURN
+	END
diff --git a/fer/gnl/create_agg_dset.F b/fer/gnl/its_fmrc_2dtime.F
similarity index 55%
copy from fer/gnl/create_agg_dset.F
copy to fer/gnl/its_fmrc_2dtime.F
index 6990d8a..fb624bf 100644
--- a/fer/gnl/create_agg_dset.F
+++ b/fer/gnl/its_fmrc_2dtime.F
@@ -1,6 +1,5 @@
-	SUBROUTINE CREATE_AGG_DSET (agg_dset, dname, dtitle,
-     .               nsets, agg_dim, iline, status)
-*
+	LOGICAL FUNCTION ITS_FMRC_2DTIME (dset, fvar)
+
 *  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,62 +32,71 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-* Programmer Ansley Manke
-* NOAA/PMEL, Seattle, WA - TMAP 
-*
-* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
-* V685 *acm*  3/13 For Ensemble aggregations, call the ds_type 'ENS'
-* V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
+* Return boolean indicating whether the passed variable is in fact
+* the 2D FMRC time matrix of the dataset
+
+* V698 2/16 *sh*
 
       IMPLICIT NONE
-        include 'tmap_errors.parm'
 #include "tmap_dset.parm"
+!#include "gt_lib.parm"     ! str_match
         include 'tmap_dims.parm'
 	include	'ferret.parm'
+	include 'errmsg.parm'
 	include 'xdset_info.cmn_text'
-	external xdset_info_data
 	include 'xdset_info.cd_equiv'
-        include 'xprog_state.cmn'
-	include 'xtm_grid.cmn_text'  
-	include 'errmsg.parm'
-	include 'netcdf.inc'
-	include 'xvariables.cmn'
+	include 'xtm_grid.cmn_text'
 
 * calling argument declarations:
-	CHARACTER*(*)	dname, dtitle
-	INTEGER		agg_dset, nsets, agg_dim, iline, status
+	INTEGER dset, fvar
 
 * local variable declarations:
-	INTEGER TM_LENSTR, TM_LENSTR1, ALLO_MANAGED_AXIS,
-     .		type, coordvar, varid, big_cx
-	REAL	bad_flag
-
-	CALL CD_INIT_AGG_DSET (agg_dset, dname, status)
+	LOGICAL NC_GET_ATTRIB, got_it
+	INTEGER STR_CASE_BLIND_COMPARE, grid, vid, istat, status
 
-	IF (status .NE. ferr_ok) GOTO 5300 
+	INTEGER str_match
+        PARAMETER (str_match = 0)
 
-* Set the dataset type and title (can add other directions)
-	IF (agg_dim .EQ. e_dim ) ds_type(agg_dset) = 'ENS'
-	IF (agg_dim .EQ. f_dim ) ds_type(agg_dset) = 'FCT'
+* Getting info back from the attribute-handling structure
+        INTEGER maxlen
+        PARAMETER (maxlen = 128)
+	CHARACTER*(maxlen) buff
+	INTEGER varid, t2did, tline, g2d, globalid, ref_id, attlen,
+     .		attype, attoutflag
+        REAL    attvals(10)
 
-	ds_name(agg_dset) = dname
-	ds_des_name(agg_dset) = dname
+* initialize
+	grid = ds_grid_number(fvar)
 
-	IF (dtitle(1:2).EQ.char_init .OR. TM_LENSTR(dtitle).EQ.0) THEN
-	   ds_title(agg_dset) = cmnd_buff(item_start(1):item_end(num_items))
-	ELSE
-	   ds_title(agg_dset) = dtitle(:TM_LENSTR1(dname))
-	ENDIF
+* it must be 2D in the TF plane
+	IF (grid_line(x_dim,grid) .NE. mnormal
+     . .OR. grid_line(y_dim,grid) .NE. mnormal
+     . .OR. grid_line(z_dim,grid) .NE. mnormal
+     . .OR. grid_line(e_dim,grid) .NE. mnormal ) GOTO 2000
+	IF (grid_line(t_dim,grid) .EQ. mnormal
+     . .OR. grid_line(f_dim,grid) .EQ. mnormal ) GOTO 2000
 
-* create the aggregate axis
-
-	CALL CREATE_AGG_AXIS (nsets, agg_dim, iline, status)
-	IF (status .NE. ferr_ok) GOTO 5300 
+* it must have a _CoordinateAxisType='Time' attribute
+* ... get the List id of the variable
+        CALL CD_GET_VAR_ID (dset, ds_var_code(fvar), vid, status)
+        IF (status .NE. ferr_ok) GOTO 5100
+* ... get the attribute val
+        got_it = NC_GET_ATTRIB ( dset, vid, '_CoordinateAxisType',
+     .                              .TRUE., ds_var_code(fvar), maxlen,
+     .                              attlen, attoutflag, buff, attvals )
+	IF (.NOT.got_it) GOTO 2000
+	istat = STR_CASE_BLIND_COMPARE(buff, 'time')
 
+* final test
+        ITS_FMRC_2DTIME = istat .EQ. str_match
 	RETURN
-	
- 5000   RETURN	
- 5300   status = ferr_TMAP_error
+
+* nope - this aint it
+ 2000	ITS_FMRC_2DTIME = .FALSE.
 	RETURN
 
+* error bail out
+ 5000	RETURN
+ 5100	CALL ERRMSG(ferr_internal, status, 'its_fmrc_2dtime!',
+     .		 *5000)     ! error not trapped
 	END
diff --git a/fer/gnl/line_facts.F b/fer/gnl/line_facts.F
index 3ff622b..08fac50 100644
--- a/fer/gnl/line_facts.F
+++ b/fer/gnl/line_facts.F
@@ -1,6 +1,4 @@
-
-
-	SUBROUTINE LINE_FACTS( lun, idim, grid, orient )
+	SUBROUTINE LINE_FACTS( lun, idim, grid, orient, uvar )
 
 *
 *
@@ -39,6 +37,10 @@
 *
 * print basic facts about an axis defined in memory
 
+* New 12/15:
+* last argument: uvar is positive if we are to describe the 
+* grid subset for the user-variable given.
+
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
@@ -56,26 +58,35 @@
 *       12/29/94 - use SPLIT_LIST to redirect tty output for GUI
 * V510 *sh* 12/99 - show units even if line has no orientation
 * V68  *acm 12/11 - if npts > 1.e7 the format overflowed. Up the size.
+* V697  12/15 *acm* Changes to add details on SHOW GRID uvar to indicate 
+*                   compressed or subset of axes
+* V697  12/15 *acm* Changes to formatting the output that shows subsets
+* V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
+*                  using original upper/lowercase spelling
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
+#	include "tmap_dset.parm"
 	external xgt_grid_data
 	include	'ferret.parm'
 	include 'xtext_info.cmn'
 	include 'xrisc.cmn'          ! 12/94 SPLIT_LIST buffer
+	include 'xvariables.cmn'
+	include 'xprog_state.cmn'
 
 * calling argument declarations
-	INTEGER	  lun, idim, grid, orient
+	INTEGER	  lun, idim, grid, orient, uvar
 
 * local variable declarations:
-	LOGICAL	BKWD_AXIS, GEOG_LABEL, calendar
-	INTEGER TM_LENSTR1, lo, hi, i, line, dlen, ndec, status,
-     .          nlen, naxlen, int1
-	CHARACTER AX_TITLE*32, 	lo_str*20, hi_str*20, direction*1,
-     .		  title*32, reg*1, modflag*1, truncated*1, frmt*50
+	LOGICAL	BKWD_AXIS, GEOG_LABEL, calendar, original
+	INTEGER TM_LENSTR1, TM_SUBSC, lo, hi, i, line, dlen, ndec, status,
+     .          nlen, naxlen, int1, slen, i1ss, inss
+	CHARACTER AX_TITLE*32, TM_FMT*20, lo_str*20, hi_str*20, direction*1,
+     .		  title*32, reg*1, modflag*1, truncated*1, frmt*80,
+     .		  lo_uvar*20, hi_uvar*20, uvar_desc*40, cstr*3, countstr*20,
+     .		  axname*64
 	REAL*8	TM_WORLD, lo_val8, hi_val8, pts
 
-
 * local parameter declarations:
 	INTEGER		sig_figs
 	PARAMETER     ( sig_figs = 5 )
@@ -93,6 +104,10 @@
 	   title = 'normal'
 	   WRITE ( risc_buff, 3010 ) title, ww_dim_name( idim )
 	   CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
+	ELSEIF ( line_name(line) .EQ. char_init)  THEN
+	   title = 'normal'
+	   WRITE ( risc_buff, 3010 ) title, ww_dim_name( idim )
+	   CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
 	ELSE
 
 * get nicely formatted limits (end box outer edges)
@@ -149,10 +164,96 @@
 	   ENDIF
 
 * allow for long axis names (6/92)
-           nlen = MAX( TM_LENSTR1(line_name(line)), 9 )
+	   original = .FALSE.
+	   CALL CHOOSE_LINE_NAME(line, original, axname)
+           nlen = MAX( TM_LENSTR1(axname), 9 )
 
 	   naxlen = INT(0.5+DLOG10(DFLOAT(line_dim(line))) ) 
 
+* report information about the subsetting or compressing of the grid.
+
+* FERRET DOCUMENTATION: implicit grid modifications of LET vars (e.g. @AVE)
+* From merge_grid:
+* There are subtlities associated with limits that are given in the UVAR
+* definition.  These are classified in uvar_given under these codings:
+* ("gvn" indicates lo/hi limits were given in square brackets)
+* ("gnl","lo","lohi" and "xact" encode special requirements of transformations)
+*
+*    -1   uvlim_irrelevant- limits irrelevant: NEW=10.1
+*    -2   uvlim_hidden    - limits hidden inside on another axis: NEW=FFT(v)
+*     0   uvlim_gvn_gnl   - limits given in a gen'l way: NEW=U[K=1:5]
+*     1   uvlim_gvn_lo    - limits that require exact lo match: NEW=U[K=1:5 at IIN]
+*     2   uvlim_gvn_lohi  - limits require exact lohi match: NEW=U[K=1:5 at WEQ]
+*     3   uvlim_gvn_xact  - limits that reduce to a pt.: NEW=U[K=1:5 at AVE]
+*     4   uvlim_needed    - no limit info. given
+*     5   uvlim_need_lo   - no lims but transf. needs xact lo:NEW=U[K at IIN]
+*     6   uvlim_need_lohi - no lims but transf. needs xact lohi:NEW=U[K=@WEQ]
+*     7   uvlim_need_xact - no lims but transf. needs xact: NEW=U[K at AVE]
+*   100   uvlim_unknown
+
+* Subsets on axis, compressing transform, ... All this is
+* skipped if it's a SHOW AXIS or SHOW GRID gridname
+
+	   IF (uvar .GT. 0) THEN 
+	      uvar_desc = 'full'
+
+* Subsets orange in transform or expression
+	   IF ( uvar_given(idim,uvar) .EQ. uvlim_gvn_gnl  .OR. 
+     .          uvar_given(idim,uvar) .EQ. uvlim_gvn_lo   .OR. 
+     .          uvar_given(idim,uvar) .EQ. uvlim_gvn_lohi )  THEN
+	      IF (uvar_lo_ss(uvar, idim) .NE. unspecified_int4) THEN
+	         i1ss = uvar_lo_ss(uvar, idim)
+	         inss = uvar_hi_ss(uvar, idim)
+	      ELSE
+	         i1ss =  TM_SUBSC ( uvar_lo_ww(idim, uvar), grid, idim, -1 )
+	         inss =  TM_SUBSC ( uvar_hi_ww(idim, uvar), grid, idim, -1 )
+	      ENDIF
+
+	      IF (i1ss .EQ. inss) THEN
+	         uvar_desc = '1 pt'
+	      ELSE
+	         countstr = TM_FMT(FLOAT(inss-i1ss), 15, 20, slen)
+	         uvar_desc = countstr(:slen)//' pts'
+	      ENDIF
+	   ENDIF
+
+* Compressing
+*   Single-point subsets are marked as gvn_xact (for conformability?)
+*   which would result in "compressed" here. 
+*   So if gvn_xact and hi=lo, call that a single-point subset.
+*   This means that var[x=5 at max] is also reported as point subset. 
+
+	   IF ( uvar_given(idim,uvar) .EQ. uvlim_gvn_xact)  THEN
+	      IF (uvar_lo_ss(uvar, idim) .NE. unspecified_int4) THEN
+	         i1ss = uvar_lo_ss(uvar, idim)
+	         inss = uvar_hi_ss(uvar, idim)
+	      ELSE
+	         i1ss =  TM_SUBSC ( uvar_lo_ww(idim, uvar), grid, idim, -1 )
+	         inss =  TM_SUBSC ( uvar_hi_ww(idim, uvar), grid, idim, -1 )
+	      ENDIF
+
+	      IF (i1ss .EQ. inss) THEN
+	         uvar_desc = '1 pt'
+	      ELSE
+	         uvar_desc = 'compressed'
+	      ENDIF
+
+	   ENDIF
+
+c Compressing transfm, w/o limits
+
+	   IF ( uvar_given(idim,uvar) .EQ. uvlim_need_xact) THEN
+	      uvar_desc = 'compressed'
+	   ENDIF
+
+* Grid-changing function: uvar_given = uvar_hidden for idim
+
+	   IF (uvar_given(idim,uvar) .EQ. uvlim_hidden )  THEN
+	      uvar_desc = '(axis from grid-changing func)'
+	   ENDIF
+
+	   ENDIF !  uvar, reporting subset, compression
+
 * write info
 	   int1 = 34 - (naxlen+1)
 	   naxlen = naxlen + 1
@@ -162,7 +263,7 @@
 	      WRITE (frmt, 3030) int1, naxlen
 	   ENDIF
 
-           WRITE ( risc_buff, frmt )	line_name ( line )(:nlen),
+	   WRITE ( risc_buff, frmt )	axname(:nlen),
      .				title (:41-nlen),
      .				line_dim  ( line ),
      .				modflag,
@@ -171,16 +272,30 @@
      .				lo_str,
      .				hi_str
 
+* If there is a subset or compression, add that information. This is
+* skipped if it's a SHOW AXIS or SHOW GRID gridname
+
+	   IF (uvar .GT. 0) THEN
+
+	      WRITE ( risc_buff, frmt ) axname (:nlen),
+     .				title (:41-nlen),
+     .				line_dim  ( line ),
+     .				modflag,
+     .				reg,
+     .				direction,
+     .				lo_str,
+     .				hi_str,
+     .				uvar_desc
+	   ENDIF
 
 	   CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
+
 	ENDIF
 	RETURN
 
  3010	FORMAT ( T2,A8,T12,A1 )
-c 3020	FORMAT ( T2,A,1X,A,T27,I7,3A1,T39,A20,T60,A20 )
-c 3030	FORMAT ( T2,A,1X,A,T22,I12,3A1,T39,A20,T60,A20 )
 
- 3020   FORMAT ('(T2,A,1X,A,T',I2,',I',I1',3A1,T39,A20,T60,A20 )')
- 3030   FORMAT ('(T2,A,1X,A,T',I2,',I',I2',3A1,T39,A20,T60,A20 )')
+ 3020   FORMAT ('(T2,A,1X,A,T',I2,',I',I1',3A1,T39,A20,T60,A20,T80,A)')
+ 3030   FORMAT ('(T2,A,1X,A,T',I2,',I',I2',3A1,T39,A20,T60,A20,T80,A)')
 
 	END
diff --git a/fer/gnl/line_facts_xml.F b/fer/gnl/line_facts_xml.F
index b95a9ea..fa2a02f 100644
--- a/fer/gnl/line_facts_xml.F
+++ b/fer/gnl/line_facts_xml.F
@@ -54,6 +54,8 @@
 * V67  *acm* 2/11 XML fixes. New attribute formatting, ![CDATA] escape, upper/lowercase handling.
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 *      *acm* 3/13 Dont show axes with names in parentheses e.g. (AX004)
+* V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
+*                  using original upper/lowercase spelling
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -71,7 +73,7 @@
 
 * local variable declarations:
 	LOGICAL	BKWD_AXIS, GEOG_LABEL,
-     .          calendar, new, got_it, coordvar
+     .          calendar, new, got_it, coordvar, original
 	INTEGER TM_LENSTR, TM_LENSTR1, TM_GET_CALENDAR_ID, 
      .          STR_SAME, line, slen, llen, ndec, cal_id, status,
      .            varid, vtype, nvdims, vdims(8), nvatts, blen, i, 
@@ -80,7 +82,7 @@
 	CHARACTER TM_FMT*16, show_str*16, lo_str*20, hi_str*20, 
      .            title*32, outbuff*20, aname*128,
      .            attname*128, attbuff*2048, buff*20, outstring*2048,
-     .            atype*10, axis_name*128
+     .            atype*10, axname*64
 
 	REAL*8	TM_WORLD, lo_val8, hi_val8
 	REAL      vals(100), fval
@@ -117,12 +119,13 @@
            status = 0
 	ELSE
 
-	   axis_name = line_name(line)
+	   original = .TRUE.
+	   CALL CHOOSE_LINE_NAME(line, original, axname)
 
 * header
-	   IF (axis_name(1:1) .EQ. '(') GOTO 5000
+	   IF (axname(1:1) .EQ. '(') GOTO 5000
 
-           CALL ESCAPE_FOR_XML (axis_name, outstring, slen)
+           CALL ESCAPE_FOR_XML (axname, outstring, slen)
 	   WRITE ( risc_buff, 2020 ) outstring(1:slen)
 
 	   CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
diff --git a/fer/gnl/netcdf4_show_list_settings.F b/fer/gnl/netcdf4_show_list_settings.F
index 8d1fd3f..69b3d52 100644
--- a/fer/gnl/netcdf4_show_list_settings.F
+++ b/fer/gnl/netcdf4_show_list_settings.F
@@ -41,6 +41,7 @@
 *
 * revision 0.0 - 1/13/2010
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+*       *acm* 2/16 add echunk and fchunk
 
 * Qualilifiers for SET LIST: NCFORMAT,
 * XCHUNK,YCHUNK,ZCHUNK,TCHUNK,DEFLATE,SHUFFLE,ENDIAN
@@ -127,6 +128,22 @@
 	   CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
 	   nchunk = nchunk + 1
 	ENDIF
+
+        IF (echunk_size_set .GT. 0) THEN
+	   val = echunk_size
+           show_str = TM_FMT(val, 5, 12, slen)
+	   WRITE (risc_buff, 1200) 'E', show_str(1:slen)
+	   CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
+	   nchunk = nchunk + 1
+	ENDIF
+
+        IF (fchunk_size_set .GT. 0) THEN
+	   val = fchunk_size
+           show_str = TM_FMT(val, 5, 12, slen)
+	   WRITE (risc_buff, 1200) 'F', show_str(1:slen)
+	   CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
+	   nchunk = nchunk + 1
+	ENDIF
         
 	IF (nchunk .EQ. 0) THEN
 	   risc_buff = '        NetCDF chunk sizes = default'
diff --git a/fer/gnl/ok_as_agg_var.F b/fer/gnl/ok_as_agg_var.F
new file mode 100644
index 0000000..052c7b0
--- /dev/null
+++ b/fer/gnl/ok_as_agg_var.F
@@ -0,0 +1,210 @@
+	LOGICAL FUNCTION OK_AS_AGG_VAR( var1, cat1, dset1, memb_list,
+     .		             nsets, agg_dim, quiet, ref_fvar, 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. 
+
+* determine if a candidate variable from the fist datset of an aggregation
+* is found and has a suitable grid in all other members of the aggregation
+* make sure the grid of all member variables is known -- even LET/D vars
+* at least one member must have a file variable of this name -- the ref_fvar
+
+* Programmer Steve Hankin
+* NOAA/PMEL, Seattle, WA - TMAP 
+*
+* V698 12/15 *sh* extracted from init_ef_aggregate_dset.F
+* V698  4/16 *sh* already used agg axis ok as long as scalar span (typ "@ave")
+
+* arguments:
+* inputs:
+*	var1	  - variable number of the candidate var from dset 1
+*	cat1	  - category (uvar or file) of the candidate var from dset 1
+*	dset1	  - the dataset number of the 1st member
+*	memb_list - list of member datasets
+*	nsets	  - number of datasets in the aggregation
+*	agg_dim	  - axis of aggregation
+*	quiet	  - flag whether to announce unacceptable variables
+* outputs
+*	ref_fvar  - the first member file variable with an acceptable grid
+*	status	  - return status
+
+      IMPLICIT NONE
+	include 'netcdf.inc'
+#include "tmap_dset.parm"
+        include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'xdset_info.cmn_text'
+	include 'xdset_info.cd_equiv'
+	include 'xunits.cmn_text'
+	include 'xtm_grid.cmn_text'  
+	include 'errmsg.parm'
+	include 'xvariables.cmn'
+	include 'xcontext.cmn'
+	include 'xfr_grid.cmn'
+	include 'xtext_info.cmn'
+
+* calling argument declarations:
+	LOGICAL quiet
+	INTEGER	var1, cat1, dset1, nsets, memb_list(nsets), agg_dim,
+     .		ref_fvar,status
+
+* local variable declarations:
+	LOGICAL SCALAR_GRID_LINE, found_name
+	INTEGER iset, member, j, iv, var, cat, grid, ref_grid, idim, 
+     .		vlen, nuvars
+	CHARACTER vname*128
+	INTEGER	STR_SAME, TM_LENSTR1, KNOWN_GRID
+
+* initialize
+	status = ferr_ok
+	ref_fvar = unspecified_int4
+
+* the name of the candidate variable
+	IF (cat1 .EQ. cat_file_var) THEN
+	   vname = ds_var_code(var1)
+	ELSE
+	   vname = uvar_name_code(var1)
+	ENDIF 
+	vlen = TM_LENSTR1(vname)
+
+* is the candidate variable suitable as the reference fvar?
+	IF (cat1 .EQ. cat_file_var) THEN
+	   grid = ds_grid_number(var1)
+	   IF (.NOT.SCALAR_GRID_LINE(agg_dim,grid,cat1,var1)) GOTO 5400
+	   IF ( (agg_dim.EQ.f_dim .AND. grid_line(t_dim,grid).NE.mnormal) 
+     .	  .OR.  (agg_dim.EQ.e_dim) )          THEN
+	      ref_fvar = var1
+	      ref_grid = ds_grid_number(ref_fvar)
+	   ENDIF
+	ELSE
+* ... no but make sure we know its grid
+	   CALL GET_UVAR_GRID( var1, dset1, status )
+           IF ( status .NE. ferr_ok ) GOTO 5500
+           grid = KNOWN_GRID(dset1,cat_user_var,var1)
+	ENDIF 
+
+* *** loop over the member datasets ***
+	DO iset = 2, nsets
+	   member = memb_list(iset)
+	   IF (member .EQ. pdset_dummy) CYCLE ! ignore dummy (missing) dataset
+	   found_name = .FALSE.
+
+	   CALL FIND_VAR_NAME (member,vname(:vlen), cat, var )
+	   IF (var .EQ. munknown_var_name) GOTO 5100
+	   IF (cat .EQ. cat_user_var) THEN
+	      IF (uvar_dset(var).EQ. unspecified_int4) THEN
+	         GOTO 5600
+	      ELSEIF (uvar_dset(var).NE. member) THEN
+	         GOTO 5100
+	      ENDIF
+* make sure the grid of this member LET/D variable is known
+	      CALL GET_UVAR_GRID( var, member, status )
+              IF ( status .NE. ferr_ok ) GOTO 5500
+              grid = KNOWN_GRID(member,cat_user_var,var)
+	   ENDIF
+
+
+* "reference fvar" -- the first file var encountered with an acceptable grid
+	   IF ( ref_fvar.EQ.unspecified_int4
+     .	  .AND. cat .EQ. cat_file_var          ) THEN
+	      grid = ds_grid_number(var)
+	      IF (.NOT.SCALAR_GRID_LINE(agg_dim,grid,cat,var) ) GOTO 5400
+	      IF ( (agg_dim.EQ.f_dim.AND.grid_line(t_dim,grid).NE.mnormal) 
+     .	     .OR.  (agg_dim.EQ.e_dim) ) THEN
+	         ref_fvar = var
+	         ref_grid = ds_grid_number(ref_fvar)
+	      ENDIF
+	   ENDIF
+
+* now check grid compatibility
+	   IF (ref_fvar .EQ. unspecified_int4) THEN
+	      GOTO 5000
+	   ELSE
+	      IF (cat .EQ. cat_user_var) THEN
+	         grid = uvar_grid(var, member)
+	      ELSE			! cat_file, cat_agg_e, or cat_agg_f
+	         grid = ds_grid_number(var)
+	      ENDIF
+* ... check that the grid of this variable conforms with the reference grid
+! 4/16	      IF (grid_line(agg_dim, grid) .NE. mnormal) GOTO 5400
+	      IF (.NOT.SCALAR_GRID_LINE(agg_dim,grid,cat,var)) GOTO 5400
+	      DO idim = 1, nferdims
+	         IF (idim .EQ.agg_dim) CYCLE  ! already checked
+	         IF (agg_dim.EQ.f_dim .AND. idim.EQ.t_dim) CYCLE
+* ... conformable for axes with more than 1 pt means same axis in both grids
+*     but all single point axes, including normal axes are conformable
+	         IF (SCALAR_GRID_LINE(idim,ref_grid,cat_file_var,ref_fvar))
+     .									THEN
+	            IF (.NOT.SCALAR_GRID_LINE(idim,grid,cat,var)) GOTO 5200
+	         ELSE
+		    IF ( grid_line(idim, ref_grid) .NE.  
+     .                   grid_line(idim, grid)         ) GOTO 5200
+	         ENDIF
+	      ENDDO
+	   ENDIF
+	ENDDO
+
+* success
+	OK_AS_AGG_VAR = .TRUE.
+	RETURN
+
+* failure conditions
+ 5000	OK_AS_AGG_VAR = .FALSE.
+	RETURN
+ 5100	IF ( .NOT.quiet ) 
+     .	         CALL WARN('Variable "'//vname(:vlen)//
+     .		 '" excluded from aggregate: '//
+     .	         'Not found in all member datasets')
+	GOTO 5000
+
+ 5200	IF ( .NOT.quiet ) 
+     .	         CALL WARN('Variable "'//vname(:vlen)//
+     .		 '" excluded from aggregate: '//
+     .	         ww_dim_name(idim)//' axis differs among members')
+	GOTO 5000
+
+ 5400	IF ( .NOT.quiet ) 
+     .	         CALL WARN('Variable "'//vname(:vlen)//
+     .		 '" excluded from aggregate: '//
+     .		'Already has '//ww_dim_name(agg_dim)//' axis')
+	GOTO 5000
+
+ 5500   CALL ERRMSG( ferr_aggregate_error, status,
+     .          'Could not get grid for user-defined variables '// 
+     .		vname(:vlen), *5000 )
+
+ 5600   CALL ERRMSG( ferr_aggregate_error, status,
+     .          'Conflicting global LET definition for '// 
+     .		vname(:vlen), *5000 )
+
+
+	END
diff --git a/fer/gnl/parse_command.F b/fer/gnl/parse_command.F
index c447163..38fcedb 100644
--- a/fer/gnl/parse_command.F
+++ b/fer/gnl/parse_command.F
@@ -123,7 +123,20 @@
 *                 Also added support for _DQ_ style of quotation marks
 *      *acm*  2/15 Prevent run-time errors in string length for _DQ_ handling
 * V695 *acm*  3/15 Ticket 2245: if no arguments on a REPEAT command, exit gracefully.
-
+* V698 *sh*  12/15 avoid the need to surround filenames with slashes in quotes
+*	           Applies to SET DATA, GO, SAY, DEFINE SYM and DEFINE DATA/AGG
+*		   The first non-qualifier following a qualifier terminates
+*                  parsing of qualifiers, supporting
+*		       DEFINE DATA/AGG name = /path/filename, 
+*                  Specific hacks for SET DATA (& DEFINE SYM) and GO
+* V697 12/15 *acm* Ticket 2337 Increase length of cmnd buffer to 20480.
+*                  change to echo back only the first part of the command on error.
+* V697  1/16 *acm* ticket 2356: Allow multiple slashes in command-line between qualifiers.
+* V697  2/16 *acm* DO NOT Increase length of cmnd buffer to 20480
+*                  but keep the other changes at that time, echo back only the 
+*                  start of command on an error
+* V697  3/16 Ticket 2376: parsing backslash escapes within repeat loops.
+* V697  3/16  *acm* ticket 2356 scale back change for multiple slash at end of command
 
 * command, subcommand and qualifiers will be identified by number in
 *	 COMMON/XCOMMAND.  Arguments will be returned as positions in
@@ -172,17 +185,21 @@
 
 * modified def of MATCH4 from INTEGER to LOGICAL *kob* IBM port 8/94
 	LOGICAL	TM_LEGAL_NAME, known_qualifier, atsin_qualifier,
-     .          doub_quote, DQ_quote,
+     .          doub_quote, DQ_quote, a_qual_found, look_for_quals,
      .		surround_quote, surround_DQ_, end_DQ_, subst, first_paren,
      .          itsa_qualifier(local_max_arg_list), 
-     .          MATCH4, escape, apply_cx, ptrslash, i3_ok
+     .          MATCH4, escape, apply_cx, ptrslash, i3_ok,
+     .		its_set_data, its_define_sym, its_go, its_say,
+     .		has_lead_white_space, found_white_space
 	INTEGER TM_LENSTR
 	INTEGER	buff_len, bang_position, ptr, quote_end,
      .		word_num, look_ahead, look_back, isub_word, csgo,
      .		isubcmnd_ptr, iword, last_qual, iqual_word, iterm,
-     .		iqual, iqual_ptr, iarg, i, nparen, nsubst_passes,
+     .		iqual, iqual_ptr, iarg, i, ii, nparen, nsubst_passes,
      .		grave_start, grave_end, in, out, nest,
-     .		paren_level,len_test,len_mchars, m
+     .		paren_level,len_test,len_mchars, current_words,
+     .		last_recognized_word, white_aftr_cmnd, white_aftr_subcmnd,
+     .		ngone
 	CHARACTER c1*1
 	CHARACTER url_buff*2048
 
@@ -194,7 +211,7 @@
 #else
 	PARAMETER     ( tab = CHAR(9) )
 #endif
-        PARAMETER ( grave_digits = 16 )
+        PARAMETER ( grave_digits = 7 )
 
 * intialize
 	grave_start	= 1
@@ -209,6 +226,10 @@
 	num_args	= 0
 	cmnd_num 	= 0		! in case of comment line
 	cmnd_buff (buff_len:buff_len) = ' '	! always end with blank
+	a_qual_found	= .FALSE.
+	look_for_quals	= .TRUE. 
+	white_aftr_cmnd = buff_len
+	white_aftr_subcmnd = buff_len
 
 * inits moved into this code from get_ferret_command (housekeeping)
         DO i = 1, local_max_arg_list
@@ -219,109 +240,28 @@
 * full length of text
 	cmnd_len = TM_LENSTR (cmnd_buff)
 
-! 12/14 handled in GET_FER_COMMAND
-!* ignore "yes?" at start of command
-! 2	IF (cmnd_buff(1:5) .EQ. 'yes? '
-!     . .OR. cmnd_buff(1:5) .EQ. '...? ' ) THEN
-!	   IF ( cmnd_len .LT. 6 ) THEN
-!	     cmnd_buff = ' '
-!	     cmnd_len = 0
-!	   ELSE
-!	     cmnd_buff = cmnd_buff(6:cmnd_len)
-!	     cmnd_len = cmnd_len - 5
-!	     GOTO 2		! in case there are multiple "yes?"'s
-!	   ENDIF
-!	ENDIF
-
-! 12/14 handled in GET_FER_COMMAND
-!* comment line ?
-!	IF ( (cmnd_len .LE. 0
-!     .   .OR. cmnd_buff(1:1) .EQ. '*'
-!     .   .OR. cmnd_buff(1:1) .EQ. '!' ) 
-!     . .AND. .NOT.has_continuation_cmnd ) THEN
-!	   RETURN
-!	ENDIF
-!	IF ( cmnd_buff(1:1) .EQ. '/'
-!     .	.AND. .NOT.has_continuation_cmnd ) GOTO 5050
-
-!* find length of command line ("!" is a valid terminator to permit comments)
-!* 2/14 WILL NEVER GET HERE
-!*       no comments should ever be sent into this routine.
-!*       REMOVE THIS BLOCK
-!	bang_position = INDEX ( cmnd_buff, '!' )
-!* ... 11/95 allow "!" to be be "escaped"
-!	IF ( bang_position .GT. 1 ) THEN
-!#ifdef NO_DOUBLE_ESCAPE_SLASH
-!	   IF ( cmnd_buff(bang_position-1:bang_position) .EQ. '\!' ) THEN
-!#else
-!	   IF ( cmnd_buff(bang_position-1:bang_position) .EQ. '\\!' ) THEN
-!#endif
-!	      CALL WARN("PARSE_COMMAND SHOULD NEVER BE HERE - I")
-!* ... ... this block of code could replace INDEX() but doesn't for performance
-!	      DO 6 bang_position = bang_position+1, cmnd_len
-!#ifdef NO_DOUBLE_ESCAPE_SLASH
-!	         IF (cmnd_buff(bang_position:bang_position).EQ.'!'
-!     .         .AND. cmnd_buff(bang_position-1:bang_position-1).NE.'\')
-!     .				GOTO 8
-!#else
-!	         IF (cmnd_buff(bang_position:bang_position).EQ.'!'
-!     .         .AND. cmnd_buff(bang_position-1:bang_position-1).NE.'\\')
-!     .				GOTO 8
-!#endif
-! 6	      CONTINUE
-!	      bang_position = 0
-!	   ENDIF
-!	ENDIF
-! 8	IF ( bang_position .GT. 0 ) THEN
-!	   DO 10 cmnd_len = bang_position-1, 1, -1
-!	      IF (  cmnd_buff(cmnd_len:cmnd_len) .NE. ' '
-!     .	      .AND. cmnd_buff(cmnd_len:cmnd_len) .NE. tab ) GOTO 15
-! 10	   CONTINUE
-!	   IF (.NOT.has_continuation_cmnd) RETURN	! no text before !
-!	ENDIF
-!
-!* prepend continuation from a previous line if any
-!* 12/14 -- WILL NEVER GET HERE
-!*          continuations handled in get_fer_command
-!*          REMOVE THIS BLOCK
-! 15	IF ( has_continuation_cmnd ) THEN
-!	   CALL WARN("PARSE_COMMAND SHOULD NEVER BE HERE - II")
-!	   len_cmnd_copy = len_cmnd_copy - 1  ! final char is continuation
-!	   IF (len_cmnd_copy .GT. 0) THEN
-!	     IF ( cmnd_len .GT. 0) THEN
-!	        cmnd_buff = cmnd_copy(:len_cmnd_copy) // cmnd_buff(:cmnd_len)
-!	     ELSE
-!	        cmnd_buff = cmnd_copy(:len_cmnd_copy)
-!	     ENDIF
-!	   ENDIF
-!	   cmnd_len = len_cmnd_copy + cmnd_len
-!!	   IF ( cmnd_len .GE. 2048 ) GOTO 5005 ! must match cmnd_buff_len
-!	ENDIF
+* ignore trailing slashes in parsing (further fix for ticket 2356)
+
+	IF (cmnd_len .GE. 2) THEN
+	DO WHILE (cmnd_buff(cmnd_len-1:cmnd_len) .EQ. '//' .AND. cmnd_len.GT.2)
+	   cmnd_len = cmnd_len-2
+	   IF (cmnd_len .LE. 1) GOTO 6
+	ENDDO
+	ENDIF
+ 6	CONTINUE
 
 * save a copy of the command with untranslated symbols for use by REPEAT
-!* and for building the complete command when continuation lines are used.
+* and for building the complete command when continuation lines are used.
 
 	cmnd_copy = cmnd_buff
 	len_cmnd_copy = cmnd_len
 
-! 12/14 handled in GET_FER_COMMAND
-!* is this an incomplete line requiring continuation (terminated w/ backslash)?
-!	has_continuation_cmnd =
-!#ifdef NO_DOUBLE_ESCAPE_SLASH
-!     .				cmnd_buff(cmnd_len:cmnd_len) .EQ. '\' 
-!#else
-!     .				cmnd_buff(cmnd_len:cmnd_len) .EQ. '\\'
-!#endif
-!	IF ( has_continuation_cmnd
-!     . .OR. cmnd_len .EQ. 0        ) THEN
-!	   cmnd_num = 0
-!	   RETURN
-!	ENDIF
-
 * * * * * * * * *
 * remove parens enclosing entire command or command group
 * modified 10/95 to protect "($name) at line start
  20     IF (cmnd_len .GT. 1) THEN
+ 	IF (cmnd_len .GT. cmnd_copy_len) GOTO 5005
+
 	   IF( cmnd_buff(1:1) .EQ. '(' 
      .	 .AND. cmnd_buff(2:2) .NE. '$'
      .   .AND. cmnd_buff(cmnd_len:cmnd_len) .EQ. ')' ) THEN
@@ -330,6 +270,9 @@
               CALL LEFT_JUST( cmnd_buff(1:cmnd_len),
      .                        cmnd_buff(1:cmnd_len), cmnd_len )
            ENDIF
+           DO WHILE (cmnd_buff(cmnd_len:cmnd_len) .EQ. '/' .AND. cmnd_len.GT.1)
+	      cmnd_len = cmnd_len-1
+	   ENDDO
         ENDIF
 
 * Again save a copy of the command with untranslated symbols for use by REPEAT
@@ -344,6 +287,10 @@
               CALL LEFT_JUST( cmnd_copy(1:len_cmnd_copy),
      .                        cmnd_copy(1:len_cmnd_copy), len_cmnd_copy)
            ENDIF
+           DO WHILE (cmnd_copy(len_cmnd_copy:len_cmnd_copy) .EQ. '/' 
+     .               .AND. len_cmnd_copy.GT.1)
+	      len_cmnd_copy = len_cmnd_copy-1
+	   ENDDO
         ENDIF
 
 
@@ -388,10 +335,6 @@
  60        CONTINUE
         ENDIF
 
-!* check for buffer overflow (too-long command line)
-! 90     IF ( cmnd_len .EQ. buff_len ) GOTO  5005
-!	cmnd_buff (buff_len:buff_len) = ' '	! always end with blank
-
 * * * * * * * * *
 * substitute GO command arguments, if any
 * and return to re-process command if substitution occurs (4/93)
@@ -419,6 +362,7 @@
 * substitute symbols (PLOT+ symbols expressed as "($symname)" ), if any (6/95)
 * and return to re-process command if substitution occurs
         CALL SYMBOL_COMMAND( cmnd_buff, cmnd_len, subst, status )
+	IF (cmnd_len .GT. cmnd_copy_len) GOTO 5005
 	IF ( status .NE. ferr_ok ) GOTO 5000
 	IF ( subst ) THEN
 	   reverify = .TRUE.      ! informational echo needed
@@ -438,19 +382,36 @@
  100	CONTINUE
 
 * skip blanks preceeding word
+	has_lead_white_space = .FALSE.
 	DO 110 ptr = ptr, cmnd_len
-		IF (      cmnd_buff(ptr:ptr) .NE. ' '
-     .		    .AND. cmnd_buff(ptr:ptr) .NE. tab ) GOTO 200
+	   IF (      cmnd_buff(ptr:ptr) .NE. ' '
+     .	       .AND. cmnd_buff(ptr:ptr) .NE. tab ) GOTO 200
+	   has_lead_white_space = .TRUE.
  110	CONTINUE
 	GOTO 500		! end of command buffer - no more words
 
 * we have another word in the buffer.  Is this word a qualifier ?
-
+* 12/15 - cease hunt for qualifiers when a non-qual follows qualifiers
  200	IF ( word_num .EQ. max_words ) GOTO 500
 	word_num 	= word_num + 1
-	IF ( cmnd_buff(ptr:ptr) .EQ. '/' ) THEN
+	IF  ( has_lead_white_space ) THEN
+	   IF (ptr .LT. white_aftr_cmnd 
+     .   .AND. word_num .GT. 1  ) white_aftr_cmnd = ptr-1 ! GO hack
+	   IF (ptr .LT. white_aftr_subcmnd 
+     .   .AND. word_num .GT. 2  ) white_aftr_subcmnd = ptr-1 ! SET DATA hack
+	ENDIF
+	IF ( look_for_quals .AND. cmnd_buff(ptr:ptr).EQ.'/' ) THEN
 	   itsa_qualifier(word_num) = .TRUE.
+	   a_qual_found = .TRUE.
 	   ptr = ptr + 1		! jump over "/"
+
+* Skip over multiple / in a row. (ticket 2356)
+* (Not allowing for all possible combinations of spaces and slashes)
+
+	   DO WHILE (cmnd_buff(ptr:ptr) .EQ. '/' .AND. ptr.LT.cmnd_len)
+	      ptr = ptr+1
+	   ENDDO
+
 *	skip blanks between "/" and text of word
 	   DO 210 ptr = ptr, cmnd_len
 		IF (      cmnd_buff(ptr:ptr) .EQ. '/' ) GOTO 5050
@@ -461,6 +422,7 @@
 	   GOTO 500			! ignore "/" at end of buffer
 	ELSE
 	   itsa_qualifier(word_num) = .FALSE.
+	   IF (a_qual_found) look_for_quals = .FALSE.
 	ENDIF
 
 * we have found the start of a word - initialize variables
@@ -477,7 +439,7 @@
 	   IF (ptr .GT. 1) THEN
 #ifdef NO_DOUBLE_ESCAPE_SLASH
 	      IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\' ) ptrslash = .TRUE.
-!                            '  closing single quote to make emacs happy
+*                            '  closing single quote to make emacs happy
 #else
 	      IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) ptrslash = .TRUE.
 #endif
@@ -546,7 +508,7 @@
 	      DO 402 ptr = ptr+1, cmnd_len
 #ifdef NO_DOUBLE_ESCAPE_SLASH
 	         IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\'  ) GOTO 402
-!                            '  closing single quote to make emacs happy
+*                            '  closing single quote to make emacs happy
 #else
 	         IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) GOTO 402
 #endif
@@ -559,7 +521,7 @@
 	      DO 403 ptr = ptr+1, cmnd_len
 #ifdef NO_DOUBLE_ESCAPE_SLASH
 	         IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\'  ) GOTO 403
-!                            '  closing single quote to make emacs happy
+*                            '  closing single quote to make emacs happy
 #else
 	         IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) GOTO 403
 #endif
@@ -577,7 +539,7 @@
 	      DO 404 ptr = ptr+1, cmnd_len
 #ifdef NO_DOUBLE_ESCAPE_SLASH
 	         IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\'  ) GOTO 404
-!                            '  closing single quote to make emacs happy
+*                            '  closing single quote to make emacs happy
 #else
 	         IF ( cmnd_buff(ptr-1:ptr-1) .EQ. '\\' ) GOTO 404
 #endif
@@ -606,6 +568,13 @@
 	      IF (cmnd_buff(ptr-1:ptr) .EQ. '\\/') GOTO 410
 #endif
 	   ENDIF
+
+* "/" is not a terminator if we are not looking for more qualifiers
+	   IF (.NOT.look_for_quals
+     .    .AND. cmnd_buff(ptr:ptr) .EQ. '/' ) THEN
+	      surround_quote = .FALSE.  ! text outside of quotation
+	      GOTO 410
+	   ENDIF
 	
 * probable terminator found - make sure it's not hiding a comma or =
 * first check ahead that the next non-blank/tab is not comma or =
@@ -733,18 +702,77 @@ cc  Allow zero-length null string in quotes
 	subcmnd_num	 = 1		! use "    " as  subcommand
 	isubcmnd_ptr = subcommand_pointer(cmnd_num)
 
+* special hacks to allow "SET DATA path/dset" and "GO path/script"
+* without quotes surrounding the argument
+ 700	its_set_data = cmnd_num    .EQ. cmnd_set
+     .           .AND. subcmnd_num .EQ. 7
+	its_define_sym = cmnd_num    .EQ. cmnd_define
+     .           .AND. subcmnd_num .EQ. 8
+	its_go  = cmnd_num    .EQ. cmnd_go
+	its_say = cmnd_num    .EQ. cmnd_message
+	IF (its_go .OR. its_say) THEN
+	   last_recognized_word = 1    ! GO and MESSAGE have no subcommand
+	ELSE
+	   last_recognized_word = 2    ! used by SET DATA and DEF SYM
+	ENDIF
+
 * +++++++ QUALIFIERS +++++++
 * since "/" may be used for syntax purposes other that qualifiers determine the
-* last "/" that is intended as a qualifier
- 700    DO 702 iword = MAX( isub_word+1, 2 ), word_num
-	   IF ( .NOT.itsa_qualifier(iword) )	  THEN
+* last "/" that is intended as a qualifier.  For example "GO path/script.jnl"
+* 12/2015 note: this hack is required because the code above does not identify
+* the command and subcommand at the very start and use the word count at that
+* point to guide the identification of qualifier slashes.
+* locate the final qualifier
+	last_qual = word_num
+	DO iword = MAX( isub_word+1, 2 ), word_num
+	   IF ( .NOT.itsa_qualifier(iword) ) THEN
 	      last_qual = iword - 1
-	      GOTO 704
+	      EXIT
 	   ENDIF
- 702	CONTINUE
-	last_qual = word_num
+	ENDDO
+* any so-called qualifiers beyond last_qual are red herrings
+* they should own their slash chars, and may not be separate words at all
+* note that if there is white space between a slash and the start of text
+* it may not get fixed correctly ... lazy cuz that shouldn't ever happen
+	DO iword = last_qual+1, word_num
+	   IF (itsa_qualifier(iword)) THEN
+	      arg_start(iword) = arg_start(iword) - 1  ! own the  "/"
+	   ENDIF
+	ENDDO
+* group contiguous blocks of slash-connected chars into single args
+*     e.g. set data /home/users/tmap/ferret/linux/dsets/coads.nc
+* ... work from right to left, consolidate qualifier groups
+	ngone = 0
+	DO iword = word_num, last_qual+1, -1
+	   IF (itsa_qualifier(iword) )THEN
+	      itsa_qualifier(iword) = .FALSE.
+	      IF (arg_start(iword).EQ.(arg_end(iword-1)+1)) THEN
+	         arg_end(iword-1) = arg_end(iword)
+	         arg_start(iword) = 0
+	         arg_end(iword)   = 0
+	         ngone = ngone + 1
+	      ENDIF
+	   ENDIF
+	ENDDO
+* ... remove the voids left behind
+	iword = last_qual+1
+	current_words = word_num
+	DO WHILE (iword .LT. current_words)
+	   IF (arg_start(iword) .EQ. 0) THEN
+	      DO ii = iword+1, current_words
+	         arg_start(ii-1) = arg_start(ii)
+	         arg_end  (ii-1) = arg_end  (ii)
+	      ENDDO
+	      arg_start(current_words) = 0
+	      arg_end  (current_words) = 0
+	      current_words = current_words - 1
+	   ENDIF
+	   IF (arg_start(iword).NE.0) iword = iword + 1
+	ENDDO
+	word_num = word_num - ngone
+*	last_qual = word_num
 
-* loop through qualifiers
+* finally ... loop through qualifiers to identify them
  704	DO 740 iqual_word = 2, last_qual
 	   IF ( .NOT.itsa_qualifier(iqual_word) )	  GOTO 740
 	   IF ( num_qualifs(isubcmnd_ptr) .EQ. 0 )        GOTO 5030	! error
@@ -772,6 +800,7 @@ cc  Allow zero-length null string in quotes
 	   atsin_qualifier  = 
      .		cmnd_buff(arg_start(iqual_word):arg_start(iqual_word)) .EQ. '@'
 	   IF ( known_qualifier .OR. atsin_qualifier ) THEN
+	        last_recognized_word = iqual_word
 		num_quals = num_quals + 1
 		qual_start(num_quals) = arg_start(iqual_word)
 		qual_end  (num_quals) = arg_end  (iqual_word)
@@ -785,7 +814,63 @@ cc  Allow zero-length null string in quotes
  730	   CONTINUE
 
 * checked all possible qualifiers and did't find a match
-	   GOTO 5030							! error
+	   IF (its_set_data .OR. its_define_sym) THEN
+* *sh* 2015 *HACK* for SET DATA path/filename and GO path/filename
+*      since filenames may contain slashes that are mistaken as qualifiers
+*      we treat the first unrecognized qualifier as potentially part of the
+*      filename. 
+*      It is *not* part of the filename if
+*      - no white space gap has been seen to the left
+*      For SET DATA it is also not part of the filename if
+*      - there is a white space gap without a comma found to the right
+	      IF (white_aftr_subcmnd .GT. arg_start(iqual_word)) GOTO 5030 
+* ... look to right for white space with no comma
+	      found_white_space = .FALSE.
+	      DO iterm = arg_end(iqual_word), cmnd_len
+	         IF (   cmnd_buff(iterm:iterm) .EQ. ' '
+     .		   .OR. cmnd_buff(iterm:iterm) .EQ. '	' ) THEN
+	            found_white_space = .TRUE.
+		 ELSEIF (found_white_space) THEN
+	            IF (cmnd_buff(iterm:iterm) .NE. ',') THEN
+	               GOTO 5030
+	            ELSE
+	               EXIT
+	            ENDIF
+	         ENDIF
+	      ENDDO
+	      word_num = last_recognized_word + 1
+	      arg_end(word_num) = cmnd_len
+	      IF (itsa_qualifier(word_num)) arg_start(word_num)
+     .			= arg_start(word_num)-1	    ! keep "/" in /home/file
+	      itsa_qualifier(word_num) = .FALSE.
+	      last_qual = iqual_word - 1     ! added 12/2015 -- approx true
+	      EXIT
+	   ELSEIF (its_go .OR. its_say) THEN
+* *HACK* for GO to allow unquoted "GO path/script" and "GO /hom/path/script"
+	      IF (white_aftr_cmnd .GT. arg_start(iqual_word)) GOTO 5030 
+* ... its an absolute path -- count the slashes
+	      ngone = 0
+	      i = iqual_word+1
+	      DO WHILE (i.LE. word_num .AND. itsa_qualifier(i))
+	         ngone = ngone + 1
+	         i  =i+1
+	      ENDDO
+* turn this entire absolute path into a single argument
+	      word_num = word_num - ngone
+	      arg_start(iqual_word) = arg_start(iqual_word)-1 ! keep start "/"
+	      arg_end(iqual_word)   = arg_end(iqual_word+ngone)
+	      itsa_qualifier(iqual_word) = .FALSE.
+	      last_qual = iqual_word - 1     ! added 12/2015 -- approx true
+	      DO i = iqual_word+1, word_num
+                 arg_start(i) = arg_start(i+ngone)
+                 arg_end  (i) = arg_end  (i+ngone)
+	         IF (itsa_qualifier(i) ) arg_start(i) = arg_start(i) - 1
+	         itsa_qualifier(i) = .FALSE.
+	      ENDDO
+	      EXIT
+	   ELSE
+	      GOTO 5030		! all other commands: unknown qual error
+	   ENDIF
 
  740	CONTINUE
 
@@ -911,7 +996,7 @@ cc  Allow zero-length null string in quotes
      .                       grave_digits, subst, status  )
 	   IF ( status .NE. ferr_ok ) GOTO 5000	
 	   IF ( subst ) THEN
-! ... num_uvars_in_cmnd flags expression results from previous cmnds as invalid
+* ... num_uvars_in_cmnd flags expression results from previous cmnds as invalid
 	      num_uvars_in_cmnd = cmnd_uvars_not_given
 	      reverify = .TRUE.      ! informational echo needed
 	      GOTO 5   ! back to parse again with the expresns replaced
@@ -919,8 +1004,12 @@ cc  Allow zero-length null string in quotes
 	ENDIF
 
 * replace backslashes that were escapes
+* Ticket 2376: If the command is a REPEAT, this needs to wait until
+* the command is parsed within the execution of the loop.
+
 #ifdef NO_DOUBLE_ESCAPE_SLASH
-	IF ( INDEX(cmnd_buff(:cmnd_len),'\') .GT. 0 ) THEN
+	IF (  ( cmnd_num .NE. cmnd_repeat ) .AND. 
+     .		INDEX(cmnd_buff(:cmnd_len),'\') .GT. 0 ) THEN
 	   in  = 1
 	   out = 1
  900	   IF (cmnd_buff(in:in+1) .EQ. '\!') THEN
@@ -936,7 +1025,8 @@ cc  Allow zero-length null string in quotes
 	      cmnd_buff(out:out) = '/'
 	      in = in + 2
 #else
-	IF ( INDEX(cmnd_buff(:cmnd_len),'\\') .GT. 0 ) THEN
+	IF ( ( cmnd_num .NE. cmnd_repeat ) .AND. 
+     .		INDEX(cmnd_buff(:cmnd_len),'\\') .GT. 0 ) THEN
 	   in  = 1
 	   out = 1
  900	   IF (cmnd_buff(in:in+1) .EQ. '\\!') THEN
@@ -972,6 +1062,9 @@ cc  Allow zero-length null string in quotes
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * error exits
  5000	RETURN
+* error exits
+ 5005	CALL ERRMSG( ferr_syntax, status,
+     .			'command line too long -- exceeds 2048', *5000 )
 
  5010	CALL ERRMSG( ferr_syntax, status,
      .			'unpaired quotation marks, grave accent or brackets',
@@ -983,8 +1076,13 @@ cc  Allow zero-length null string in quotes
  5020	CALL ERRMSG( ferr_unknown_command, status,
      .		cmnd_buff( arg_start(1):arg_end(1) ), *5000 )
 
- 5025	CALL ERRMSG( ferr_syntax, status,
+ 5025	IF ( arg_end(word_num) - arg_start(word_num) .GT. 200) THEN 
+	   CALL ERRMSG( ferr_syntax, status,
+     .		cmnd_buff( arg_start(word_num):arg_start(word_num)+200 )//'...', *5000 )
+        ELSE
+	   CALL ERRMSG( ferr_syntax, status,
      .		cmnd_buff( arg_start(word_num):arg_end(word_num) ), *5000 )
+        ENDIF
 
  5030	CALL ERRMSG( ferr_unknown_qualifier, status,
      .		cmnd_buff( arg_start(iqual_word):arg_end(iqual_word) ), *5000 )
diff --git a/fer/gnl/pop_cs.F b/fer/gnl/pop_cs.F
index aa74861..04ea95d 100644
--- a/fer/gnl/pop_cs.F
+++ b/fer/gnl/pop_cs.F
@@ -66,11 +66,12 @@
 *                  and handle nested unclosed IFs 
 * v6932 12/14 *sh* unclosed IF warning moved to GET_FER_COMMAND
 * V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
+* V698  *sh* 3/16 maintain GO_FILE as the currently active GO file
 
 * internal variable declarations:
 	INTEGER	LIB_FREE_LUN,TM_LENSTR1,stat,axis,ivar,cvar,csp_to,ll,
      .          slen, plen
-        INTEGER i, j, num_indices
+        INTEGER i, j, ier, num_indices
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -78,12 +79,12 @@
 	include 'errmsg.parm'
 	include 'xprog_state.cmn'
 	include 'xcontrol.cmn'
+	include 'xcontrol.equiv'
         include 'xcontext.cmn'
         include 'xalgebra.cmn'
         include 'xvariables.cmn'
 	include	'xrisc.cmn'
 
-
 * internal error ?
 	IF ( csp .LT. 1 ) STOP 'csp_undflw'
 
@@ -117,6 +118,19 @@
 	   CLOSE( UNIT = cmnd_lun, ERR = 10 )
  10	   stat = LIB_FREE_LUN( cmnd_lun )
 
+* reset the GO_FILE symbol to the parent GO file, if any
+	   ier = 0
+	   j = 0
+           CALL SETSYM ('GO_FILE n/a', 11, ier, j)
+	   DO i = csp-1,1,-1
+              IF ( cs_cmnd_num(i) .EQ. cmnd_go) THEN
+	        ll = TM_LENSTR1(cs_go_filename(i))
+              	CALL SETSYM ('GO_FILE '//cs_go_filename(i), 8+ll, ier, j)
+                EXIT
+              ENDIF
+           ENDDO
+
+
 	ELSEIF ( cs_cmnd_num( csp ) .EQ. cmnd_repeat ) THEN
 * ... restore context prior to REPEAT loop (along repeat axis only)
            axis = cs_axis( csp )
diff --git a/fer/gnl/redefine_ax_att.F b/fer/gnl/redefine_ax_att.F
index 423fc85..90adcc4 100644
--- a/fer/gnl/redefine_ax_att.F
+++ b/fer/gnl/redefine_ax_att.F
@@ -48,6 +48,7 @@
 *                 if new_modulo is false then remove attribute from axis
 * V64  *acm*11/09 The ENDIF for name-is-an-axis-of-dset was in the wrong place:
 *                 check for changes in all the attribs.
+* V698  3/16 *acm* Remove unneeded xdset_parms.cmn
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -60,7 +61,6 @@
 	include 'xprog_state.cmn'
 	include 'xvariables.cmn'
 	include 'xrisc.cmn'
-        include 'xdset_parms.cmn'
         include 'netcdf.inc'
 
 * calling argument declarations:
diff --git a/fer/gnl/repl_exprns.F b/fer/gnl/repl_exprns.F
index bfb92f3..328941b 100644
--- a/fer/gnl/repl_exprns.F
+++ b/fer/gnl/repl_exprns.F
@@ -116,6 +116,9 @@
 * v695 *acm* 9/15 Ticket 2313: For `return=`, if the return request is for an attribute 
 *                 not related to the grid or other characteristics that need evaluation, 
 *                 do not evaluate the expression.
+* v695 *acm* 5/16 Ticket 2389. When the user gives `var,prec=xx`, return the acutal number
+*                 of digits requested. Return exponential formats when that makes the
+*                 result shorter. Changes are only for positive values of ,prec=
 
 #include "netcdf.inc"
 	include 'tmap_dims.parm'
@@ -146,9 +149,9 @@
 * internal variable declarations:
 	LOGICAL   need_formatting, zero_fill, coordvar,
      .            do_err, do_eval, get_ready, was_dep, const_arr_var,
-     .		  dqote, DQ
+     .		  dqote, DQ, orig_name, user_prec
 	INTEGER   CGRID_SIZE, CGRID_AXIS, TM_LENSTR1, CX_DIM_LEN,
-     .		  FIND_DSET_NUMBER, GET_ABSTRACT_LINE, 
+     .		  FIND_DSET_NUMBER, GET_ABSTRACT_LINE, TM_LENSTR,
      .		  str_len, lenbuff, iend, itmp, axis,
      .		  mr, cx, mr_temp, i, i2, use_digits, true_end,
      .		  qual_end, brkt, idim, use_width, dset, varid, 
@@ -157,8 +160,7 @@
      .            attid, ieq, base_isp, base_cx, cat, var
 	REAL	  result, val
 	REAL*8 TM_WORLD, TM_WW_AXLEN, ww
-	CHARACTER TM_FMT*28, LEFINT*16, VAR_TITLE*(max_len),
-c	CHARACTER TM_FMT*18, LEFINT*16, VAR_TITLE*(max_len),
+	CHARACTER TM_FMT*28, TM_FMT_USER*28, LEFINT*16, VAR_TITLE*(max_len),
      .		  VAR_UNITS*(max_len), GET_STRING_ELEMENT*(max_len),
      .		  repl*(max_len), bad_str*(max_len), return_errmsg*256,
      .            buff*128, varname*512, attname*128, aname*128
@@ -179,6 +181,7 @@ c	CHARACTER TM_FMT*18, LEFINT*16, VAR_TITLE*(max_len),
 	did_sub = .FALSE.    	! any substitutions done?
 	lenbuff = LEN( cmnd )
 	use_digits = digits
+	user_prec = .FALSE.
 	bad_str = 'bad'
 !	fmt = ' '
 	use_width = 0
@@ -308,6 +311,7 @@ c	CHARACTER TM_FMT*18, LEFINT*16, VAR_TITLE*(max_len),
 	      IF ( status .NE. ferr_ok ) GOTO 5000
 	      IF (ABS(result) .GT. 16.) GOTO 5510 	         
 	      use_digits = NINT(result)
+	      user_prec = .TRUE.
 	      GOTO 131
 	   ELSEIF (cmnd(i:i).EQ.'b' .OR. cmnd(i:i).EQ.'B') THEN
 * ... decode BAD = string
@@ -1047,7 +1051,9 @@ c	CHARACTER TM_FMT*18, LEFINT*16, VAR_TITLE*(max_len),
 	         IF (axis.EQ.mnormal .OR. axis.EQ.munknown) THEN
 	           repl = 'NORMAL'
 	         ELSE
-	            repl = line_name( axis )
+* Get axis name. If mode upcase is canceled, use original spelling if defined
+		    orig_name = .FALSE.
+		    CALL CHOOSE_LINE_NAME(axis, orig_name, repl)
 	         ENDIF
 	         need_formatting = .FALSE.
 	      ELSEIF ( repl(2:5) .EQ. "UNIT" ) THEN
@@ -1118,12 +1124,19 @@ c	CHARACTER TM_FMT*18, LEFINT*16, VAR_TITLE*(max_len),
 	   ELSE
 
 * .... convert to a formatted result with requested digits
+*      Ticket 2389: TM_FMT_USER applies use_digits more strictly 
+*      than TM_FMT, returns results of exponentials more consistently. 
+
 	     result =  memory(1, mr_blk1(mr_temp))
 	     IF ( result .EQ. mr_bad_data(mr) ) THEN
 	        repl = bad_str
 	        str_len = TM_LENSTR1(bad_str)
 	     ELSE
-	        repl = TM_FMT( result, use_digits, max_len, str_len )
+	        IF (user_prec .AND. use_digits.GT.0) THEN
+	           repl = TM_FMT_USER( result, use_digits, max_len, str_len )
+		ELSE
+	           repl = TM_FMT ( result, use_digits, max_len, str_len )
+		ENDIF
 	     ENDIF
 	   ENDIF
 * ... clean up temporary variable
diff --git a/fer/gnl/reset_ax_att.F b/fer/gnl/reset_ax_att.F
index dace462..f9bad38 100644
--- a/fer/gnl/reset_ax_att.F
+++ b/fer/gnl/reset_ax_att.F
@@ -42,6 +42,7 @@
 * 11/2006 
 * V602  2/07 *acm* Fix bug 1492, changing attributes of coordinate variables 
 *                  Use pseudo-dataset of user-defined axes to keep track of attributes.
+* V698  3/16 *acm* Remove unneeded xdset_parms.cmn
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -54,7 +55,6 @@
 	include 'xprog_state.cmn'
 	include 'xvariables.cmn'
 	include 'xrisc.cmn'
-        include 'xdset_parms.cmn'
         include 'netcdf.inc'
 
 * calling argument declarations:
diff --git a/fer/mem/purge_dset.F b/fer/gnl/scalar_grid_line.F
similarity index 64%
copy from fer/mem/purge_dset.F
copy to fer/gnl/scalar_grid_line.F
index 5fcfb8f..4c38bab 100644
--- a/fer/mem/purge_dset.F
+++ b/fer/gnl/scalar_grid_line.F
@@ -1,10 +1,8 @@
-	SUBROUTINE PURGE_DSET ( dset )
-
-*
+	LOGICAL FUNCTION SCALAR_GRID_LINE( idim, grid, cat, var)
 *
 *  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,34 +31,55 @@
 *  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
-*
-*
-* delete all memory variables with data from a particular data set
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
+* determine if the indicated axis is a single point axis
+* meaning line_dim of 1 or NORMAL, or user variable compressed to a point
+
+* Programmer Steve Hankin
+* NOAA/PMEL, Seattle, WA - TMAP 
 *
-* V200: 10/25/89 - extracted from ERASE_DSET
-*	12/18/89 - eliminated the possibility of multiple data set variables
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V698 3/16 *sh*
+
+* arguments:
+* inputs:
+*	idim	  - dimension to test (input)
+*	grid	  - grid to test (input)
+*	cat	  - category of variable to test (input)  (only uvars matter)
+*	var	  - (user) variable to test (input)
 
-        IMPLICIT NONE
+      IMPLICIT NONE
+	include 'netcdf.inc'
+#include "tmap_dset.parm"
         include 'tmap_dims.parm'
 	include	'ferret.parm'
+	include 'xtm_grid.cmn_text'  
 	include 'xvariables.cmn'
 
 * calling argument declarations:
-	INTEGER	dset
+	INTEGER idim, grid, cat, var
 
 * local variable declarations:
-	INTEGER mr
+	INTEGER line
 
-* eliminate memory variables depending on this data set
-	DO 100 mr = 1,max_mrs
-	   IF ( mr_protected( mr ) .EQ. mr_deleted ) GOTO 100
-	   IF ( dset .EQ. mr_data_set(mr) ) CALL DELETE_VARIABLE( mr )
- 100	CONTINUE
+* initialize
+	line = grid_line(idim, grid)
 
+* is the axis unit length
+	IF (line .EQ. mnormal
+     .	.OR.line_dim(line) .EQ. 1) GOTO 1000
+
+* is this a user variable compressed to a point
+	IF (cat .EQ. cat_user_var) THEN
+	   IF (uvar_given(idim,var).EQ.uvlim_gvn_xact
+     .    .OR. uvar_given(idim,var).EQ.uvlim_need_xact  ) GOTO 1000
+	ENDIF
+
+* not a unity length axis
+	SCALAR_GRID_LINE = .FALSE.
 	RETURN
+
+* yes, a unity length line
+ 1000	SCALAR_GRID_LINE = .TRUE.
+	RETURN
+
 	END
diff --git a/fer/gnl/set_agg_var_atts.F b/fer/gnl/set_agg_var_atts.F
new file mode 100644
index 0000000..6ca30ff
--- /dev/null
+++ b/fer/gnl/set_agg_var_atts.F
@@ -0,0 +1,220 @@
+    	SUBROUTINE SET_AGG_VAR_ATTS(agg_dset, vname, aggv_slot, nsets,
+     .                              ref_fvar, memb_set, 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. 
+*
+*
+* assign attributes to an aggregated variable if the same, identical attributes
+* are found on all member variables
+* (units, title, and bad_flag are taken care of elsewhere)
+
+
+* programmer - steve hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+
+* V698 *sh* 2/16 
+* V698 *acm* 2/16 LET/D variables are now stored with their associated datset
+*                 in the List structure so can get their attribute info
+
+        INCLUDE 'tmap_dims.parm'
+        INCLUDE 'ferret.parm'
+        INCLUDE 'errmsg.parm'      
+        INCLUDE 'xprog_state.cmn'
+        INCLUDE 'xvariables.cmn'
+        INCLUDE 'xcontext.cmn'
+        INCLUDE 'xdset_info.cmn_text'
+        INCLUDE 'netcdf.inc'
+
+* calling arguments
+*  agg_dset     - dset no of the aggregation (input)
+*  vname        - name of the aggregated variable (input)
+*  aggv_slot    - index of agg var in ds_ common (input)
+*  nsets        - number of member datasets in aggregation (input)
+*  ref_fvar     - reference file variable serving as the pattern (input)
+*  memb_set     - list of member dataset numbers (input)
+*  status       - return status (output)
+
+* calling argument declarations
+    	INTEGER agg_dset, aggv_slot, nsets, 
+     .          ref_fvar, memb_set(*), status
+        CHARACTER*128 vname
+
+* Local variable declarations
+        INTEGER maxlen
+        PARAMETER (maxlen = 2048)
+
+        LOGICAL NC_GET_ATTRIB, coordvar, got_it
+        INTEGER TM_LENSTR1, vlen, ref_dset, ref_id, var_id,
+     .          vtype, nvdims, nvatts, vdims(8), iatt, imemb,
+     .          attype, attlen, attoutflag,
+     .          m_attid, m_attype, m_attlen, m_attoutflag,
+     .          m_dset, m_cat, m_grid, m_var, m_ens_ax,
+     .          all_outflag, memb_id(nsets), i
+        REAL    attvals(50), m_attvals(50)
+        CHARACTER attname*128
+        CHARACTER*(maxlen) attstr, m_attstr
+
+
+* initialize
+        vlen = TM_LENSTR1(vname)
+        ref_dset = ds_var_setnum(ref_fvar)
+
+* Get var id for reference variable
+        CALL CD_GET_VAR_ID (ref_dset, vname(:vlen), ref_id, status)
+        IF (status .NE. ferr_ok) GOTO 5200
+
+* Get var id for aggregated variable
+        CALL CD_GET_VAR_ID (agg_dset, vname(:vlen), var_id, status)
+        IF (status .NE. ferr_ok) GOTO 5200
+
+* Get var ids for member variables
+        imemb = 1
+        DO imemb = 1, nsets
+
+* skip dummy datasets
+           IF (memb_set(imemb) .EQ. pdset_dummy) THEN
+              memb_id(imemb) = unspecified_int4
+              CYCLE
+           ENDIF
+
+* LET/D vars are represented in the List structure of their assigned
+* dataset. Treat as for any file variable
+	   CALL CD_GET_AGG_VAR_INFO (agg_dset, vname(:vlen), imemb, 
+     .         m_cat, m_dset, m_grid, m_ens_ax, m_var, status)
+           IF (status .NE. ferr_ok) GOTO 5200
+           CALL CD_GET_VAR_ID (memb_set(imemb), vname(:vlen),
+     .                         memb_id(imemb), status)
+           IF (status .NE. ferr_ok) GOTO 5200
+
+        ENDDO
+
+* Get number of attributes from the reference variable
+        CALL CD_GET_VAR_INFO (ref_dset, ref_id, vname(:vlen),
+     .                        vtype, nvdims, vdims,
+     .                        nvatts, coordvar, all_outflag, status)
+!       IF (coordvar) GOTO error
+
+
+**** loop through the attribute list from the reference variable
+        attloop: DO iatt = 1, nvatts
+           CALL CD_GET_VAR_ATT_NAME (ref_dset, ref_id, iatt, attname, status)
+
+* Ignore basic attributes. These are already defined.
+*?? Check the attribute values from each member?
+           IF (attname .EQ. 'units'
+     .    .OR. attname .EQ. 'long_name'
+     .    .OR. attname .EQ. '_FillValue'
+     .    .OR. attname .EQ. 'missing_value') CYCLE
+
+* get the reference attribute info
+           CALL CD_GET_VAR_ATT_INFO (ref_dset, ref_id, iatt, attname, 
+     .               attype, attlen, attoutflag, status )
+           IF (status .NE. ferr_ok) GOTO 5200
+
+* get the reference attribute value and info
+           got_it = NC_GET_ATTRIB ( ref_dset, ref_id, attname,
+     .                              .TRUE., vname(:vlen), maxlen,
+     .                              attlen, attoutflag,
+     .                              attstr, attvals )
+           IF (.NOT.got_it) GOTO 5200
+	   
+* ensure that the attribute is identical in all member variables
+
+           DO imemb = 1, nsets
+
+* ... skip over dummy members
+              IF (memb_set(imemb) .EQ. pdset_dummy) CYCLE
+
+! ... skip over user variables
+              IF (memb_id(imemb)  .EQ. unspecified_int4) CYCLE
+
+* ... get the attribute id in the member
+              CALL CD_GET_VAR_ATT_ID (memb_set(imemb), memb_id(imemb),
+     .                                attname, m_attid, status)
+              IF (status.EQ.atom_not_found) CYCLE attloop
+
+* ... get the attribute info for the member
+              CALL CD_GET_VAR_ATT_INFO (memb_set(imemb), memb_id(imemb),
+     .                                  m_attid, attname, m_attype, 
+     .                                  m_attlen, m_attoutflag, status )
+              IF (status .NE. ferr_ok) GOTO 5200
+              IF (m_attype .NE. attype
+     .       .OR. m_attlen .NE. attlen ) CYCLE attloop
+
+* get the attribute value for the member
+              got_it = NC_GET_ATTRIB (memb_set(imemb), memb_id(imemb),
+     .                              attname,
+     .                              .TRUE., vname(:vlen), maxlen,
+     .                              m_attlen, m_attoutflag,
+     .                              m_attstr, m_attvals )
+              IF (.NOT.got_it) GOTO 5200
+
+* check that the value matches the reference
+              IF (attype .EQ. NCCHAR) THEN
+* ... check that string values are identical
+                 IF (m_attstr .NE. attstr)  CYCLE attloop
+              ELSE
+* ... check that numeric values are identical
+                 DO i = 1, attlen
+                    IF (attvals(i) .NE. m_attvals(i)) CYCLE attloop
+                 ENDDO
+              ENDIF
+
+           ENDDO   ! done cmparing with member attributes
+
+* transfer this attribute from the reference variable to the aggregate variable
+	   CALL CD_PUT_NEW_ATTR (agg_dset, var_id, attname, attype, 
+     .                  attlen, attoutflag, attstr, attvals, status )
+
+        ENDDO attloop
+
+* Do not call UPDATE_ATTRIBUTES. The title, units, missing etc were
+* already set in defining the variable in the aggregation.
+cc        CALL UPDATE_ATTRIBUTES (agg_dset, vname, aggv_slot, status)
+cc        IF (status .NE. ferr_ok) GOTO 5200
+
+* success
+* (status may have been set to atom_not_found on a missing attribute.
+*  Set to ferr_ok.)
+
+	status = ferr_ok
+        RETURN
+
+* error exits
+ 5000   RETURN
+
+! 5100   CALL ERRMSG (ferr_var_not_in_set, status, vname(:vlen),*5000)
+!
+ 5200   CALL ERRMSG (ferr_internal, status,
+     .               'attListCrptn: '//vname(:vlen),*5000)
+	END
diff --git a/fer/gnl/set_var.F b/fer/gnl/set_var.F
index 2c8e0d0..997af9b 100644
--- a/fer/gnl/set_var.F
+++ b/fer/gnl/set_var.F
@@ -85,6 +85,9 @@
 * V690 *acm*  3/14 Fix ticket 2152, error messages on illegal SET VAR/NAME
 * V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
+* V698 *sh*  4/16  allow SET VARIABLE on agg dsets
+* V7   *acm* 5/16  Fix ticket 2432, see alsoticket 2352. For LET/D variables 
+*                  look for info under that dataset
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -106,6 +109,7 @@
 
 * internal variable declarations:
 	LOGICAL		VALID_GRID, TM_LEGAL_NAME, TM_HAS_STRING,
+     .			ACTS_LIKE_FVAR,
      .                  have_mods, ez, gtts, ncfile, coordvar
 	INTEGER		GRID_FROM_NAME, TM_LENSTR1, STR_UPCASE, mod_cx,
      .			i, dset, grid, cat, var, loc, TMAP_status, 
@@ -147,7 +151,8 @@
 	IF ( var .EQ. munknown_var_name ) GOTO 5005
 
 * May be an EZ or user-defined variable
-	IF ( cat .EQ. cat_file_var ) THEN
+!	IF ( cat .EQ. cat_file_var ) THEN    ! pre 4/16
+	IF ( ACTS_LIKE_FVAR(cat) ) THEN
 	   ez = ds_type(dset) .EQ. pds_type_ez
 !	   IF ( .NOT. ez ) GOTO 5010		! removed restriction 10/95
 	ELSEIF ( cat .EQ. cat_user_var ) THEN   ! uvars bad, too, until 10/92
@@ -319,13 +324,13 @@
 
            IF (typflag(1:5) .EQ. 'INPUT'  ) THEN   ! input type
               outtype_flag = 99  ! do not change from incoming type
-           ELSE IF (typflag(1:3) .EQ. 'BYT' .OR. typflag(1:4) .EQ. 'INT1') THEN
+           ELSE IF (typflag(1:3) .EQ. 'BYT' .OR. typflag(1:4).EQ.'INT1') THEN
               outtype_flag = 1   ! NC_BYTE
-           ELSE IF (typflag(1:3) .EQ. 'SHO' .OR. typflag(1:4) .EQ. 'INT2') THEN
+           ELSE IF (typflag(1:3) .EQ. 'SHO' .OR. typflag(1:4).EQ.'INT2') THEN
               outtype_flag = 3   ! NC_SHORT
-           ELSE IF (typflag(1:3) .EQ. 'INT' .OR. typflag(1:4) .EQ. 'INT4') THEN
+           ELSE IF (typflag(1:3) .EQ. 'INT' .OR. typflag(1:4).EQ.'INT4') THEN
               outtype_flag = 4   ! NC_INT (4-byte integer)
-           ELSE IF (typflag(1:3) .EQ. 'FLO' .OR. typflag(1:3) .EQ. 'REA') THEN
+           ELSE IF (typflag(1:3) .EQ. 'FLO' .OR. typflag(1:3).EQ.'REA') THEN
               outtype_flag = 5   ! NC_FLOAT
            ELSE IF (typflag(1:3) .EQ. 'DOU') THEN
               outtype_flag = 6   ! NC_DOUBLE
@@ -363,7 +368,7 @@
 
            CALL CD_GET_VAR_ID (dset, vname, varid, status)
 	   
-           IF  (cat .EQ. cat_user_var) THEN 
+           IF  (cat.EQ.cat_user_var .AND. status.NE.ferr_ok) THEN 
 	      dset = pdset_uvars
   	      CALL CD_GET_VAR_ID (dset, vname, varid, status)
            ENDIF
@@ -406,7 +411,7 @@
 	      IF ( layerz_ref .NE. char_init128 ) THEN
                  attlen = TM_LENSTR1(layerz_ref)
                  attname = patnam_layerz
-                 CALL CD_GET_VAR_ATT_ID (dset, varid, attname, attid, status)
+                 CALL CD_GET_VAR_ATT_ID (dset, varid, attname, attid, status) 
                  IF (attid .GT. 0) THEN
                     CALL CD_GET_VAR_ATT_INFO (dset, varid, attid, 
      .                attname, attype, attlen, attoutflag, status )
@@ -430,7 +435,8 @@
 	      ENDIF
 	   ENDIF
 
-	ELSEIF ( cat .EQ. cat_file_var ) THEN
+!	ELSEIF ( cat .EQ. cat_file_var ) THEN  ! pre 4/16
+	ELSEIF ( ACTS_LIKE_FVAR(cat) ) THEN
 * ... other file variables (10/95)
 	   IF ( grid .NE. int4_init   ) GOTO 5112
 	   IF ( bad  .NE. real4_init  ) THEN
@@ -674,7 +680,8 @@
      .               						*5000 )
  5400	CALL PARSE_NAM_DSET( newname, cx_last, dset,
      .			     cat, var, mod_cx, status )
-	IF (cat .EQ. cat_file_var) THEN
+!	IF (cat .EQ. cat_file_var) THEN   ! pre 4/16
+	IF (ACTS_LIKE_FVAR(cat)) THEN
            CALL ERRMSG( ferr_invalid_command, status,
      .               'illegal new name.  Variable '
      .			//newname_lc(:len_rbuff)//' exists in dataset ',
diff --git a/fer/gnl/show_1_mr.F b/fer/gnl/show_1_mr.F
index f8ce985..13a512d 100644
--- a/fer/gnl/show_1_mr.F
+++ b/fer/gnl/show_1_mr.F
@@ -55,6 +55,9 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V6.8  acm  6/12 Implement mode_6d_lab, set by default. If canceled, the 
 *                 various SHOW commnands will not list info for E,F dimensions.
+* V698  1/16 *sh* bug fix: the initial 6D trap was removing all possibility of
+*		  showing 5D or 6D variables
+
 
 	include	'tmap_dims.parm'
 	include	'xtm_grid.cmn_text'
@@ -97,7 +100,7 @@
 
 * If mode 6d_lab has been canceled, but the variable has dimension 5 or 6,
 * that is an error
-	DO 150 idim = listdims, nferdims
+	DO 150 idim = listdims+1, nferdims
 	   IF ( MR_DIM_LEN( idim, mr ) .GT. 1 ) GOTO 5100
  150	CONTINUE
 
diff --git a/fer/gnl/show_1_uvar_xml.F b/fer/gnl/show_1_uvar_xml.F
index 35a39d0..ec176c6 100644
--- a/fer/gnl/show_1_uvar_xml.F
+++ b/fer/gnl/show_1_uvar_xml.F
@@ -47,12 +47,14 @@
 *                  with < etc.
 * V650  Write to lun which may be set to a file unit number rather than std out
 * V67  *acm* 2/11 XML fixes. New attribute formatting, ![CDATA] escape, upper/lowercase handling.
+* V67  *acm* 2/16 Fixes for getting extra attributes that may have been assigned
 
         include 'tmap_dims.parm'
 	include 'xdset_info.cmn_text'
 	external xdset_info_data
 	include	'ferret.parm'
 	include	'xvariables.cmn'
+	include	'xcontext.cmn'
 	include	'xrisc.cmn'
 	include 'xprog_state.cmn'
         include 'errmsg.parm'
@@ -171,7 +173,14 @@
 
 * All attributes not already listed.
  
-	dset = 0
+	dset = pdset_uvars
+	CALL CD_GET_VAR_ID (dset, vname, varid, status)
+	IF (status .NE. ferr_ok) THEN
+	    dset = cx_data_set(cx_last) 
+	    CALL CD_GET_VAR_ID (dset, vname, varid, status)
+        ENDIF
+	IF (status .NE. ferr_ok) GOTO 1000
+
 	CALL CD_GET_VAR_INFO (dset, varid, vname, vtype, nvdims, 
      .            vdims, nvatts, coordvar, all_outflag, status)
 	IF (status .NE. ferr_ok) GOTO 1000
diff --git a/fer/gnl/show_data.F b/fer/gnl/show_data.F
index 023d5dd..48c0624 100644
--- a/fer/gnl/show_data.F
+++ b/fer/gnl/show_data.F
@@ -42,6 +42,7 @@
 * V691+ 8/14 *acm* Fix ticket 2194: SHOW with /OUTFILE
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
 * V695 *acm*  9/15 Fix #2317: length of name sent to FIND_DSET_NUMBER
+* V698 *sh* 1/16 Removed "Ferret-defined" annotation
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -143,11 +144,11 @@
 	   ENDIF
 	   IF (dset.NE.unspecified_int4 .AND. dset.NE.pdset_irrelevant) THEN
 	   IF ( TM_HAS_STRING(ds_type(iset), 'ENS') ) THEN
-	      default = default(:len0)//'  Ferret-defined Ensemble aggregation'
+	      default = default(:len0)//'  Ensemble aggregation'
 	      len0 = TM_LENSTR1( default )
 	   ENDIF
 	   IF ( TM_HAS_STRING(ds_type(iset), 'FCT') ) THEN
-	      default = default(:len0)//'  Ferret-defined Forecast aggregation'
+	      default = default(:len0)//'  Forecast aggregation'
 	      len0 = TM_LENSTR1( default )
 	   ENDIF
 	   ENDIF
diff --git a/fer/gnl/show_data_files.F b/fer/gnl/show_data_files.F
index 53a6124..04e1c6f 100644
--- a/fer/gnl/show_data_files.F
+++ b/fer/gnl/show_data_files.F
@@ -54,6 +54,8 @@
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * V685 *acm*  3/13 For Ensemble aggregations, call the ds_type 'ENS'
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
+* V695 *sh*  12/15 For FMRCs and Ensembles show aggregation members
+* V698 *sh*   2/16 insert blank line at conclusion of list
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -72,8 +74,9 @@
 	
 * local variable declarations:
 	INTEGER		KNOWN_GRID, TM_LENSTR1,
-     .			ivar, grid, istep, ndec, status, lskip, slen
-	CHARACTER	LEFINT*8, lo_date*20, hi_date*20, skip*8
+     .			ivar, grid, istep, ndec, status, lskip, slen,
+     .			nmemb, memb_set, nfig
+	CHARACTER	LEFINT*8, lo_date*20, hi_date*20, buff*8
 
 * special processing of EZ data sets
 	IF ( ds_type(dset) .EQ. pds_type_ez ) THEN
@@ -88,10 +91,29 @@
      .		' /COLUMNS = '//LEFINT( ds_ntuple(dset), lskip ), 0)
  5000	   RETURN
 
+* show aggregation members
+        ELSEIF (ds_type(dset) .EQ. 'ENS'
+     .    .OR.  ds_type(dset) .EQ. 'FCT') THEN
+
+* ... get number of aggregation members
+	   CALL CD_GET_AGG_DSET_INFO (dset, nmemb, status)
+	   IF (status .NE. ferr_ok) RETURN   ! should never happen
+	   CALL SPLIT_LIST(pttmode_explct, lun,
+     .		'          Aggregated datasets:', 0 )
+
+* ... loop through the aggregation members.
+	   nfig = LOG10(REAL(nmemb)) + 1
+	   DO istep = 1, nmemb
+	      CALL CD_GET_AGG_DSET_MEMBER (dset, istep, memb_set, status)
+	      IF (status .NE. ferr_ok) RETURN   ! should never happen
+	      buff = LEFINT(istep, slen )
+	      CALL SPLIT_LIST(pttmode_explct, lun,
+     .		'      '//buff(:nfig)//': '//ds_des_name(memb_set), 0 )
+	   ENDDO
+	   RETURN
+
 * nothing to show for netCDF files (4/94)
         ELSEIF (ds_type(dset) .EQ. 'CDF'
-     .    .OR.  ds_type(dset) .EQ. 'ENS'
-     .    .OR.  ds_type(dset) .EQ. 'FCT'
      .    .OR.  ds_type(dset) .EQ. 'ECDF') THEN
 	   RETURN
 	ENDIF
@@ -137,6 +159,9 @@
 	   ENDIF
  300	CONTINUE
 
+* insert blank line for nicer formatting
+	CALL SPLIT_LIST(pttmode_explct, lun, ' ', 1)
+
 	RETURN
 	END
 
diff --git a/fer/gnl/show_data_set_attrs.F b/fer/gnl/show_data_set_attrs.F
index 46ccff5..2aee623 100644
--- a/fer/gnl/show_data_set_attrs.F
+++ b/fer/gnl/show_data_set_attrs.F
@@ -47,6 +47,13 @@
 * V62  4/09 List the data type of variables as they are in the input
 *           dataset.
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure, 
+*                  and are shown with their dataset on SHOW DAT/ATT
+* V698  3/16 *acm* Ticket 2371: Wrap the output of SHOW DAT/ATT to 
+*                  the next line when the variable name or attribute 
+*                  name is long
+* 
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -71,15 +78,15 @@
 	INTEGER	lun, dset
 	
 * local variable declarations:
-        LOGICAL         NC_GET_ATTRIB, coordvar, got_it
+        LOGICAL         NC_GET_ATTRIB, coordvar, got_it, first_time
 	INTEGER 	TM_LENSTR1, STR_SAME, NCF_INQ_DS, varid, ndims,
      .                  nvars, ngatts, recdim, iatt, attype, attlen,
      .                  slen,  llen, vlen, vtype, nvdims,
      .                  vdims(8),  nvatts, status, blen, i, len_attbuff,
-     .                  max_vals, attoutflag, all_outflag, attid
+     .                  max_vals, attoutflag, all_outflag, attid, uvflag
         REAL            vals(1000)
-	CHARACTER	TM_FMT*14, varname*512, attname*128, 
-     .                  buff*14, attbuff*10240, oflag*1
+	CHARACTER	TM_FMT*14, GET_UNIQUE_DSET_NAME*1024, varname*512, 
+     .                  attname*128, buff*14, dsname*1024, attbuff*10240, oflag*1
         CHARACTER*6     typ(0:7)
         PARAMETER       (len_attbuff = 10240, max_vals=1000)
         
@@ -105,11 +112,22 @@
      .         T50,'AttType',T62,'Size',T67,'OutFlag',T75,'AttValue')
  3201	FORMAT('---------------------------------------------',
      .         '---------------------------------------------')
+
  3300	FORMAT(' ',A,T24,A,T34,A,T50,A,T62,A,T67,A,T75,A)
+ 4300	FORMAT(' ',T50,A,T62,A,T67,A,T75,A)
+ 5300	FORMAT(' ',T24,A,T34,A,T50,A,T62,A,T67,A,T75,A)
  3301	FORMAT(' ',A,T24,A,T34,A,T50,A,T62,A,T67,A,T75)
+ 5301	FORMAT(' ',T24,A,T34,A,T50,A,T62,A,T67,A,T75)
  3302	FORMAT(' ',A)
+ 3304	FORMAT(' ',A,T34,A,T50,A,T62,A,T67,A,T75,A)
+ 4304	FORMAT(' ',T50,A,T62,A,T67,A,T75,A)
+ 5304	FORMAT(' ',T34,A,T50,A,T62,A,T67,A,T75,A)
  3400	FORMAT('(',A,')',T24,A,T34,A,T50,A,T62,A,T67,A,T75,A)
+ 4400	FORMAT(T50,A,T62,A,T67,A,T75,A)
+ 5400	FORMAT(T24,A,T34,A,T50,A,T62,A,T67,A,T75,A)
  3500	FORMAT(T34,A,T50,A,T62,A,T67,A,T75,A)
+ 4500	FORMAT(T50,A,T62,A,T67,A,T75,A)
+
 
 	CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
         WRITE (lun, 3201) 
@@ -160,15 +178,28 @@
 
                  slen = TM_LENSTR1(attname)
                  buff = TM_FMT (FLOAT(attlen),7,14,llen)
-		 IF (vlen+slen+llen+blen+20 .LE. len_attbuff) THEN
+		 IF (slen .GT. 15) THEN
+
                     WRITE (risc_buff, 3300) varname(1:vlen), typ(vtype),
-     .                 attname(1:slen), typ(attype), buff(1:llen), oflag,
-     .                 attbuff(1:blen)
-                 ELSE
-                    WRITE (risc_buff, 3301) varname(1:vlen), typ(vtype),
-     .                 attname(1:slen), typ(attype), buff(1:llen), oflag
+     .                 attname(1:slen)
+
                     CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
-                    WRITE (risc_buff, 3302) attbuff(1:len_attbuff-2)
+                    WRITE (risc_buff, 4300) typ(attype), buff(1:llen), oflag,
+     .                 attbuff(1:blen)
+
+		 ELSE
+		    IF (vlen+slen+llen+blen+20 .LE. len_attbuff) THEN
+                       WRITE (risc_buff, 3300) varname(1:vlen), typ(vtype),
+     .                    attname(1:slen), typ(attype), buff(1:llen), oflag,
+     .                    attbuff(1:blen)
+
+                    ELSE
+                       WRITE (risc_buff, 3301) varname(1:vlen), typ(vtype),
+     .                    attname(1:slen), typ(attype), buff(1:llen), oflag
+     
+                       CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
+                       WRITE (risc_buff, 3302) attbuff(1:len_attbuff-2)
+                    ENDIF
                  ENDIF
                  CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
                  risc_buff = ' '
@@ -181,17 +212,42 @@
 * Write attributes for all variables
         IF (nvars .GE. 1) THEN
 
+	   first_time = .TRUE.
            DO 300 varid = 1, nvars
               CALL CD_GET_VAR_INFO (dset, varid, varname, vtype, nvdims,
      .           vdims, nvatts, coordvar, all_outflag, status)
               IF (varid .EQ. 0) vtype = 7  ! 
               vlen = TM_LENSTR1(varname)
 
+* Special listing for user-defined variables added to this dataset
+	      CALL CD_GET_VAR_UVFLAG (dset, varid, uvflag, status)
+	      
+	      IF ( uvflag .EQ. 1) THEN
+	         IF (first_time ) CALL SPLIT_LIST(pttmode_explct, lun,
+     .			' ------------------------------', 31) 
+	         first_time = .FALSE.
+		 IF (vtype .EQ. 0) vtype = 7             ! user-var data type not set
+		 dsname = GET_UNIQUE_DSET_NAME( dset )
+		 llen = TM_LENSTR1(dsname)
+		 varname = varname(1:vlen)//'[D='//dsname(:llen)//']' 
+		 vlen = TM_LENSTR1(varname)
+	      ENDIF
+
               IF (nvatts .EQ. 0) THEN
                  IF (coordvar) THEN
                     WRITE (risc_buff, 3400) varname(1:vlen), typ(vtype)
+                    IF (vlen .GT. 21) THEN
+		       WRITE (risc_buff, 3400) varname(1:vlen)
+		       CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
+		       WRITE (risc_buff, 5400) typ(vtype)
+                    ENDIF
                  ELSE
                     WRITE (risc_buff, 3300) varname(1:vlen), typ(vtype)
+                    IF (vlen .GT. 21) THEN
+                       WRITE (risc_buff, 3300) varname(1:vlen)
+		       CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
+		       WRITE (risc_buff, 5300) typ(vtype)
+		    ENDIF
                  ENDIF
 		 
 		 CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
@@ -230,26 +286,125 @@
                  buff = TM_FMT (FLOAT(attlen),7,14,llen) 
                 
                  IF (iatt .EQ. 1) THEN
+                    IF (uvflag.EQ.0) THEN
                     IF (coordvar) THEN
-                       WRITE (risc_buff, 3400) varname(1:vlen), 
-     .                    typ(vtype), attname(1:slen), typ(attype), 
-     .                    buff(1:llen), oflag, attbuff(1:blen)
-                    ELSE
-		    IF (vlen+slen+llen+blen+20 .LE. len_attbuff) THEN
-                       WRITE (risc_buff, 3300) varname(1:vlen), typ(vtype),
-     .                 attname(1:slen), typ(attype), buff(1:llen), oflag,
-     .                 attbuff(1:blen)
+		       IF (slen .GT. 15) THEN
+                          WRITE (risc_buff, 3400) varname(1:vlen), 
+     .                       typ(vtype), attname(1:slen)
+     
+                          IF (vlen .GT. 21) THEN
+                             WRITE (risc_buff, 3400) varname(1:vlen)
+                             CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
+                             WRITE (risc_buff, 5400) typ(vtype), attname(1:slen)
+                          ENDIF
+                          CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
+
+                          WRITE (risc_buff, 4400) typ(attype), 
+     .                       buff(1:llen), oflag, attbuff(1:blen)
+
+		       ELSE
+                          WRITE (risc_buff, 3400) varname(1:vlen), 
+     .                       typ(vtype), attname(1:slen), typ(attype), 
+     .                       buff(1:llen), oflag, attbuff(1:blen)
+                          IF (vlen .GT. 21) THEN
+                             WRITE (risc_buff, 3400) varname(1:vlen)
+                             CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
+                             WRITE (risc_buff, 5400) typ(vtype), attname(1:slen), 
+     .                          typ(attype), buff(1:llen), oflag, attbuff(1:blen)
+                          ENDIF
+		       ENDIF
+
 		    ELSE
-                       WRITE (risc_buff, 3301) varname(1:vlen), typ(vtype),
-     .                 attname(1:slen), typ(attype), buff(1:llen), oflag
-                       CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
-                    WRITE (risc_buff, 3302) attbuff(1:len_attbuff-2)
-                    ENDIF
+		       IF (slen .GT. 15) THEN
+                          WRITE (risc_buff, 3300) varname(1:vlen), typ(vtype),
+     .                    attname(1:slen)
+
+                          IF (vlen .GT. 21) THEN
+                             WRITE (risc_buff, 3300) varname(1:vlen)
+                             CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
+                             WRITE (risc_buff, 5300) typ(vtype), attname(1:slen)
+                          ENDIF
+                          CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
+
+                          WRITE (risc_buff, 4300) typ(attype), buff(1:llen), oflag,
+     .                    attbuff(1:blen)
+
+		       ELSE
+
+                          IF (vlen+slen+llen+blen+20 .LE. len_attbuff) THEN
+                             WRITE (risc_buff, 3300) varname(1:vlen), typ(vtype),
+     .                         attname(1:slen), typ(attype), buff(1:llen), oflag,
+     .                         attbuff(1:blen)
+     
+                             IF (vlen .GT. 21) THEN
+                                WRITE (risc_buff, 3300) varname(1:vlen)
+                                CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
+                                WRITE (risc_buff, 5300) typ(vtype),
+     .                            attname(1:slen), typ(attype), buff(1:llen), oflag,
+     .                            attbuff(1:blen)
+                             ENDIF
+
+                          ELSE
+                             WRITE (risc_buff, 3301) varname(1:vlen), typ(vtype),
+     .                         attname(1:slen), typ(attype), buff(1:llen), oflag
+
+                             IF (vlen .GT. 21) THEN
+                                WRITE (risc_buff, 3301) varname(1:vlen)
+                                CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
+                                WRITE (risc_buff, 5301) typ(vtype),
+     .                             attname(1:slen), typ(attype), buff(1:llen), oflag
+                             ENDIF
+
+                             CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
+                             WRITE (risc_buff, 3302) attbuff(1:len_attbuff-2)
+                          ENDIF
+
+		       ENDIF
+                    ENDIF  ! coordvar or not
+                    ENDIF  ! not uvflag
+
+                    IF (uvflag .EQ. 1) THEN
+		       IF (slen .GT. 15) THEN
+                          WRITE (risc_buff, 3304) varname(1:vlen), 
+     .                       attname(1:slen)
+                          IF (vlen .GT. 32) THEN
+                             WRITE (risc_buff, 3304) varname(1:vlen)
+			     CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
+                             WRITE (risc_buff, 5304) attname(1:slen)
+			  ENDIF
+
+			  CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
+ 
+                          WRITE (risc_buff, 4304) typ(attype), buff(1:llen), oflag,
+     .                       attbuff(1:blen)
+     
+		       ELSE
+                          WRITE (risc_buff, 3304) varname(1:vlen), 
+     .                       attname(1:slen), typ(attype), buff(1:llen), oflag,
+     .                       attbuff(1:blen)
+                          IF (vlen .GT. 32) THEN
+                             WRITE (risc_buff, 3304) varname(1:vlen)
+			     CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
+			     WRITE (risc_buff, 5304) 
+     .                       attname(1:slen), typ(attype), buff(1:llen), oflag,
+     .                       attbuff(1:blen)
+                          ENDIF
+
+		       ENDIF
+
                     ENDIF
+
                  ELSE 
-                    WRITE (risc_buff, 3500) 
-     .                  attname(1:slen), typ(attype), buff(1:llen),
-     .                  oflag, attbuff(1:blen)
+                    IF (slen .GT. 15) THEN
+                       WRITE (risc_buff, 3500) attname(1:slen)
+                       CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
+                       WRITE (risc_buff, 4500) typ(attype), buff(1:llen),
+     .                   oflag, attbuff(1:blen)
+                    ELSE
+                       WRITE (risc_buff, 3500) 
+     .                     attname(1:slen), typ(attype), buff(1:llen),
+     .                     oflag, attbuff(1:blen)
+                    ENDIF
                  ENDIF
 
                  CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
diff --git a/fer/gnl/show_data_set_params.F b/fer/gnl/show_data_set_params.F
index dd53490..99c67fe 100644
--- a/fer/gnl/show_data_set_params.F
+++ b/fer/gnl/show_data_set_params.F
@@ -45,24 +45,21 @@
 * Unix/RISC port 3/91 *sh* - cannot use function in WRITE list
 * V320: 12/29/94 - use SPLIT_LIST to redirect tty output for GUI
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables, 
+*                  pre-defined axes and grids, cat_calc_var. 
+*                  All that's left here is a possible dset title.
 
 	include 'tmap_dims.parm'
 	include 'xdset_info.cmn_text'
 	external xdset_info_data
 	include	'ferret.parm'
-	include	'xdset_parms.cmn'
 	include	'xrisc.cmn'
 
 * calling argument declarations:
 	INTEGER	lun, dset
-	
-* local parameters:
-	INTEGER	sigdig, mxlen
-	PARAMETER     ( sigdig = 5, mxlen = 20 )
 
 * local variable declarations:
-	INTEGER 	TM_LENSTR1, dlen, cairt
-	CHARACTER*4	buffer*24, TM_FMT*20
+	INTEGER 	TM_LENSTR1
 
 * data set title (and possible modifier)
 	CALL SPLIT_LIST(pttmode_explct, lun,
@@ -73,49 +70,5 @@
      .	'     '//ds_mod_title(dset)(:TM_LENSTR1(ds_mod_title(dset)))
      .								,0)
 
-* describe the "type" of data set
-	IF ( dp_phil_sieg(dset) .OR. dp_cox(dset) ) CALL SPLIT_LIST
-     .	(pttmode_explct, lun,
-     .	'             Philander/Seigel diagnostic variables available'
-     .					,0)
-
-* special Philander/Seigel parameters:
-	IF ( dp_phil_sieg(dset) ) THEN
-* ... min. wind speed
-	   CALL SPLIT_LIST(pttmode_explct, lun,
-     .		'           minimum wind speed: '//
-     .		TM_FMT(dp_min_wind(dset),sigdig,mxlen,dlen), 0 )
-* ... heat flux parameterization
-	   risc_buff = ' '
-	   IF ( dp_phil_qflux(dset) ) THEN
-	      WRITE (risc_buff, 3110) 'from Philander/Seigel'
-	   ELSEIF ( dp_ramp1_qflux(dset) ) THEN
-	      WRITE (risc_buff, 3110) 'single ramp - attenuate above 27 deg.'
-	   ELSEIF ( dp_ramp2_qflux(dset) ) THEN
-	      WRITE (risc_buff, 3110) 'double ramp - at T>27 and T<26'
-	   ENDIF
-	   CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0 )
-* ... constant air/sst temp. delta
-	   IF ( dp_const_air_sst(dset) ) THEN
-	      CALL SPLIT_LIST(pttmode_explct, lun,
-     .			'           constant air/SST difference: '//
-     .			TM_FMT(dp_delta_air_sst(dset),sigdig,mxlen,dlen), 0)
-           ENDIF
-* ... climatological air temp field
-	   cairt = dp_clim_air_sst( dset )		! cairt needed for calcs
-	   risc_buff = ' '
-	   WRITE (risc_buff,3130) dp_airt_name( cairt )
-	   CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0 )
-* ... Am factor
-	   buffer = TM_FMT( dp_Am_factor(dset), sigdig, mxlen, dlen )
-	   risc_buff = ' '
-	   WRITE (risc_buff,3140) buffer 
-	   CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0 )
-	ENDIF
- 3110	FORMAT ( T12,'surface radiation parameterization: ',A)
- 3120	FORMAT ( T12,'constant air/SST difference: ',A)
- 3130	FORMAT ( T12,A,' climatological air temperature field')
- 3140	FORMAT ( T12,'horizontal momentum Am = ',A )
-
 	RETURN
 	END
diff --git a/fer/gnl/show_data_set_vars.F b/fer/gnl/show_data_set_vars.F
index cf6f2fb..db13c22 100644
--- a/fer/gnl/show_data_set_vars.F
+++ b/fer/gnl/show_data_set_vars.F
@@ -78,6 +78,8 @@
 * v6.85  *acm* 10/13 See ticket 1098, extraneous lines when error getting grid.
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
 * v695 *acm*  4/15 Bug fix: output written in loop 300 was cut off
+* V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
+*                  using original upper/lowercase spelling
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -103,12 +105,13 @@
 	INTEGER	lun, dset, status
 	
 * local variable declarations:
-	LOGICAL		first_time, its_delimited, is_undetermined
+	LOGICAL		first_time, its_delimited, is_undetermined, coordvar
 	INTEGER 	TM_LENSTR1, TM_LENSTR, TM_GET_CALENDAR_ID, GRID_FROM_NAME,
      .			ivar, i, dlen, len, grid, taxis, slen(nferdims), tlen, 
      .			nfields, kvar, field_types(maxezvars), 
      .			cal_id, len_cal, j, num_indices, rlen(nferdims), iok,
-     .			listdims, idim, igrid, nv
+     .			listdims, idim, igrid, nv, varid, vtype, nvdims, outflag,
+     .                  vdims(8),  nvatts
 	CHARACTER	LEFINT*16, LOHI_STRING*48, TM_FMT*14, 
      .			TM_GET_CAL*32, 
      .			line*255, cal_name*32
@@ -209,10 +212,16 @@
            ENDIF
 
 	   line = ds_var_code(ivar)
+	   IF (.NOT.mode_upcase_output) THEN  ! get original variable name
+	      CALL CD_GET_VAR_ID (dset, ds_var_code(ivar), varid, status)
+	      CALL CD_GET_VAR_INFO (dset, varid, line, vtype, 
+     .            nvdims, vdims, nvatts, coordvar, outflag, status)
+	   ENDIF
+
 * ... separate into two lines if variable code is too long (11/92)
            IF ( TM_LENSTR1( line ) .GT. 8 ) THEN
 	      risc_buff = ' '
-              WRITE ( risc_buff, '(1X,A)' ) ds_var_code(ivar)
+              WRITE ( risc_buff, '(1X,A)' ) line
 	      CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
               line = ' '
            ENDIF
@@ -248,11 +257,17 @@
 
 	   IF (iok .EQ. 0) THEN  ! re-format the line for this variable
 	   
-           line = ds_var_code(ivar)
+
+	   line = ds_var_code(ivar)
+	   IF (.NOT.mode_upcase_output) THEN  ! get original variable name
+	      CALL CD_GET_VAR_ID (dset, ds_var_code(ivar), varid, status)
+	      CALL CD_GET_VAR_INFO (dset, varid, line, vtype, 
+     .            nvdims, vdims, nvatts, coordvar, outflag, status)
+	   ENDIF
 * ... separate into two lines if variable code is too long (11/92)
            IF ( TM_LENSTR1( line ) .GT. 8 ) THEN
 	      risc_buff = ' '
-              WRITE ( risc_buff, '(1X,A)' ) ds_var_code(ivar)
+              WRITE ( risc_buff, '(1X,A)' ) line
 	      CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
               line = ' '
            ENDIF
diff --git a/fer/gnl/show_data_set_vars_xml.F b/fer/gnl/show_data_set_vars_xml.F
index 85e1da0..6b9a5ef 100644
--- a/fer/gnl/show_data_set_vars_xml.F
+++ b/fer/gnl/show_data_set_vars_xml.F
@@ -59,6 +59,12 @@
 * V685 *acm* 2/13  Always list the default Ferret bad-flag in the xml header. The script 
 *                  get_datavar.jnl under LAS iosp/scripts makes sure that is the value written 
 *                  to the netcdf data files.
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure, 
+*                  and are shown with their dataset on SHOW DATA commands
+* V7    6/16 *acm* Fix ticket 2441. For LET/D variables need to store the 
+*                  uvar list in a local array. If using deleted_list_result,
+*                  it got changed by the call to get the grid of the variable            
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -87,7 +93,8 @@
      .            ivar, slen, llen, grid, cx_expr, dset_save,
      .            varid, vtype, nvdims, vdims(8), nvatts, blen, i, 
      .            len_attbuff, attoutflag, all_outflag, attid, 
-     .            attlen, attype, iatt, iset, alen, npts, status
+     .            attlen, attype, iatt, iset, alen, npts, 
+     .            num_indices, status, let_d_uvars_list(max_uvar)
 	REAL      vals(100)
 
         LOGICAL   NC_GET_ATTRIB, got_it, coordvar, newatt, have_units,
@@ -374,19 +381,23 @@ C Write statement that uses number 2075 when we change to using these.)
 
 * show the data-set-specific user-defined variables
 
-	DO 600 ivar = 1, max_uvar
-	   IF (uvar_num_items(ivar) .EQ. uvar_deleted  ) GOTO 600
-	   IF (uvar_dset(ivar) .EQ. dset) THEN
+        CALL deleted_list_get_undel(uvar_num_items_head,
+     .                              let_d_uvars_list(1),
+     .                              max_uvar, num_indices )
+        DO 600 ivar = 1, num_indices
+           i = let_d_uvars_list(ivar)
+	   IF (uvar_dset(i) .EQ. dset .AND.
+     .         uvar_parent(i) .EQ. 0   ) THEN
 
 * ... output variable code, units, grid, and type
 *     Skip intermediate variables by checking uvar_parent
 
-             uvarname = uvar_name_code(ivar)
-             IF (uvar_parent(ivar) .NE. 0) GOTO 600
+             uvarname = uvar_name_code(i)
+             IF (uvar_parent(i) .NE. 0) GOTO 600
+	     IF (uvarname(1:3) .EQ. 'EX#') GOTO 600
 
-	     iset = -1
-	     CALL CD_GET_VAR_ID (iset, uvarname, varid, status)
-             CALL CD_GET_VAR_INFO (iset, varid, uvarname, vtype, nvdims, 
+	     CALL CD_GET_VAR_ID (dset, uvarname, varid, status)
+             CALL CD_GET_VAR_INFO (dset, varid, uvarname, vtype, nvdims, 
      .          vdims, nvatts, coordvar, all_outflag, status)
 
              CALL ESCAPE_FOR_XML (uvarname, outstring, slen)
@@ -394,8 +405,8 @@ C Write statement that uses number 2075 when we change to using these.)
 
 
              CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
-             slen = TM_LENSTR1(uvar_text(ivar))
-             CALL ESCAPE_FOR_XML (uvar_text(ivar), outstring, slen)
+             slen = TM_LENSTR1(uvar_text(i))
+             CALL ESCAPE_FOR_XML (uvar_text(i), outstring, slen)
              WRITE ( risc_buff, 2020 ) 'definition'
              CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
              WRITE (risc_buff, 2055) outstring(1:slen)
@@ -405,11 +416,11 @@ C Write statement that uses number 2075 when we change to using these.)
 
 
 * Write the units and title
-             slen = TM_LENSTR(uvar_units(ivar))
-             IF (uvar_units(ivar)(1:2) .NE. char_init 
+             slen = TM_LENSTR(uvar_units(i))
+             IF (uvar_units(i)(1:2) .NE. char_init 
      .             .AND. slen.GT.0) THEN
-                slen = TM_LENSTR1(uvar_units(ivar))
-                CALL ESCAPE_FOR_XML (uvar_units(ivar), outstring, slen)
+                slen = TM_LENSTR1(uvar_units(i))
+                CALL ESCAPE_FOR_XML (uvar_units(i), outstring, slen)
                 WRITE ( risc_buff, 2020 ) 'units'
                 CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
                 WRITE (risc_buff, 2055) outstring(1:slen)
@@ -419,10 +430,10 @@ C Write statement that uses number 2075 when we change to using these.)
 		have_units = .TRUE.
              ENDIF
 
-             slen = TM_LENSTR(uvar_title(ivar))
-             IF (uvar_title(ivar)(1:2) .NE. char_init 
+             slen = TM_LENSTR(uvar_title(i))
+             IF (uvar_title(i)(1:2) .NE. char_init 
      .             .AND. slen.GT.0) THEN
-                CALL ESCAPE_FOR_XML (uvar_title(ivar), outstring, slen)
+                CALL ESCAPE_FOR_XML (uvar_title(i), outstring, slen)
                 WRITE ( risc_buff, 2020 ) 'long_name'
                 CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
                 WRITE (risc_buff, 2055) outstring(1:slen)
@@ -434,7 +445,7 @@ C Write statement that uses number 2075 when we change to using these.)
 
 ! missing_flag and _FillValue same for user-variable 
 
-             CALL FLOAT2STRING_FOR_XML (uvar_bad_data(ivar), attype, show_str, slen)
+             CALL FLOAT2STRING_FOR_XML (uvar_bad_data(i), attype, show_str, slen)
              CALL ESCAPE_FOR_XML (show_str, outstring, slen)
              WRITE ( risc_buff, 2030 ) '_FillValue' 
              CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
@@ -450,7 +461,7 @@ C Write statement that uses number 2075 when we change to using these.)
              WRITE ( risc_buff, 2060 ) 
              CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
 
-             IF (uvar_data_type(ivar,dset) .EQ. ptype_string ) THEN
+             IF (uvar_data_type(i,dset) .EQ. ptype_string ) THEN
                 show_str = 'STRING'
              ELSE
                 show_str = 'FLOAT'
@@ -466,14 +477,14 @@ C Write statement that uses number 2075 when we change to using these.)
              CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
 
 * Now get other attributes that may have been assigned.
-             iset = -1
-	     CALL CD_GET_VAR_ID (iset, uvarname, varid, status)
-             CALL CD_GET_VAR_INFO (iset, varid, uvarname, vtype, nvdims, 
+
+	     CALL CD_GET_VAR_ID (dset, uvarname, varid, status)
+             CALL CD_GET_VAR_INFO (dset, varid, uvarname, vtype, nvdims, 
      .          vdims, nvatts, coordvar, all_outflag, status)
              IF (status .NE. ferr_ok) GOTO 600  ! or where?
              DO 700 iatt = 1, nvatts
 
-                CALL CD_GET_VAR_ATT_INFO (iset, varid, iatt, attname, 
+                CALL CD_GET_VAR_ATT_INFO (dset, varid, iatt, attname, 
      .              attype, attlen, attoutflag, status )
 
 * All attributes not already listed.
@@ -483,7 +494,8 @@ C Write statement that uses number 2075 when we change to using these.)
 * do not apply.
 * Attributes are inherited from the defining variable. That variable got 
 * attributes direction, infile_datatype when writing from the header file
-* based on the original dataset.  Skip those two here.
+* based on the original dataset. ferret_datatype is defined just above. 
+* Skip those here.
 
                 newatt = .TRUE.
                 newatt = 
@@ -496,6 +508,7 @@ C Write statement that uses number 2075 when we change to using these.)
      .              (STR_SAME(attname, 'valid_min') .NE. 0) .AND. 
      .              (STR_SAME(attname, 'valid_max') .NE. 0) .AND. 
      .              (STR_SAME(attname, 'direction') .NE. 0) .AND. 
+     .              (STR_SAME(attname, 'ferret_datatype') .NE. 0) .AND. 
      .              (STR_SAME(attname, 'infile_datatype') .NE. 0)
 
                 IF (STR_SAME(attname, 'units').EQ.0 .AND.have_units) 
@@ -506,7 +519,7 @@ C Write statement that uses number 2075 when we change to using these.)
 
                 IF (newatt) THEN
                    blen = 2048  ! len of attbuff
-                   got_it = NC_GET_ATTRIB (iset, varid, attname, 
+                   got_it = NC_GET_ATTRIB (dset, varid, attname, 
      .                                .TRUE., uvarname, blen, attlen, 
      .                                attoutflag, attbuff, vals)
                    IF (attlen .GT. 0) THEN
@@ -547,19 +560,11 @@ C Write statement that uses number 2075 when we change to using these.)
  
  700         CONTINUE
 
-* The grid
+* The grid, if available.
              grid = GRID_FROM_NAME_XML( uvarname, cx_last, cx_expr, status )
 	     
-* If its a string get the name and length of the string dimension.
-* (but how to do this for a user-defined variable?)
-c             IF (vtype .EQ. NCCHAR ) THEN
-c                CALL CD_GET_DS_DIMS (iset, vdims(1), buff, npts, status)
-c                CALL SHOW_GRID_STRING_XML (lun, grid, cx_expr,
-c     .                  buff, npts)
-c             ELSE
-                CALL SHOW_GRID_XML (lun, grid, cx_expr)
-c             ENDIF
-c             IF ( status .NE. ferr_ok ) GOTO 5100
+             IF (status .EQ. ferr_ok .AND. grid.NE.unspecified_int4) 
+     .         CALL SHOW_GRID_XML (lun, grid, cx_expr)
 
              WRITE ( risc_buff, 2070 )
              CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
@@ -587,10 +592,10 @@ c             IF ( status .NE. ferr_ok ) GOTO 5100
 * were there string variables?  If so write basic info about their string dimensions.
 
       have_dims = .FALSE.
-      DO 900 ivar = 1, maxvars
-         IF ( ds_var_setnum(ivar) .NE. dset ) GOTO 900
-         IF ( ds_var_code(ivar) .EQ. '-' ) GOTO 900  
-         uvarname = ds_var_code(ivar)
+      DO 900 i = 1, maxvars
+         IF ( ds_var_setnum(i) .NE. dset ) GOTO 900
+         IF ( ds_var_code(i) .EQ. '-' ) GOTO 900  
+         uvarname = ds_var_code(i)
 
          CALL CD_GET_VAR_ID (dset, uvarname, varid, status)
          CALL CD_GET_VAR_INFO (dset, varid, uvarname, vtype, nvdims,
diff --git a/fer/gnl/show_data_set_xml.F b/fer/gnl/show_data_set_xml.F
index 4b9f209..3a9e71c 100644
--- a/fer/gnl/show_data_set_xml.F
+++ b/fer/gnl/show_data_set_xml.F
@@ -46,6 +46,8 @@
 *                         tag <var name> rather than <vname>
 *       13-Oct-2004 *acm* for consistent XML, write <var name="VNAME" />
 * V67  *acm* 2/11 XML fixes. New attribute formatting, ![CDATA] escape, upper/lowercase handling.
+* V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
+*                  using original upper/lowercase spelling
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -61,13 +63,16 @@
 	include	'xtext_info.cmn'
 	include	'xprog_state.cmn'
 	include	'xrisc.cmn'
+	include 'errmsg.parm'
 
 * calling argument declarations:
 	INTEGER	lun, dset
 	
 * local variable declarations:
-	INTEGER TM_LENSTR, TM_LENSTR1, ivar, slen
-        CHARACTER uvarname*150
+	LOGICAL coordvar
+	INTEGER TM_LENSTR, TM_LENSTR1, ivar, iset, slen, varid, 
+     .		vtype, nvdims, outflag, vdims(8), nvatts, status
+        CHARACTER varname*150
 
  2040   FORMAT ('<var name="', A, '" />' )
 
@@ -79,11 +84,18 @@
 	   IF ( ds_var_setnum(ivar) .NE. dset ) GOTO 400
            IF ( ds_var_code(ivar) .EQ. '-' ) GOTO 400
   
-* ... output variable code
+* ... output variable code. Get the original upper- or lower-case spelling
 
 *           slen = TM_LENSTR1(ds_var_code(ivar))
            CALL string_array_get_strlen1(ds_var_code_head, ivar, slen)
-           WRITE ( risc_buff, 2040 ) ds_var_code(ivar)(1:slen)
+
+           varname = ds_var_code(ivar)
+           CALL CD_GET_VAR_ID (dset, varname, varid, status)
+           IF (status .EQ. ferr_ok) 
+     .        CALL CD_GET_VAR_INFO (dset, varid, varname, vtype, nvdims,
+     .           vdims, nvatts, coordvar, outflag, status)
+           slen = TM_LENSTR1(varname)
+           WRITE ( risc_buff, 2040 ) varname(1:slen)
 	   CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
 
  400	CONTINUE
@@ -97,13 +109,19 @@
 
 * ... output variable name
 
-             uvarname = uvar_name_code(ivar)
-             slen = TM_LENSTR1(uvarname)
-             WRITE ( risc_buff, 2040 ) uvarname(1:slen)
-             CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
+	      varname = uvar_name_code(ivar)
+	      iset = pdset_uvars
+	      CALL CD_GET_VAR_ID (dset, varname, varid, status)
+	      IF (status .EQ. ferr_ok) 
+     .          CALL CD_GET_VAR_INFO (dset, varid, varname, vtype, nvdims,
+     .           vdims, nvatts, coordvar, outflag, status)
+
+	      slen = TM_LENSTR1(varname)
+	      WRITE ( risc_buff, 2040 ) varname(1:slen)
+	      CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
 
-         ENDIF
- 600  CONTINUE
+           ENDIF
+ 600	CONTINUE
 
       RETURN
       END
diff --git a/fer/gnl/show_diag_vars.F b/fer/gnl/show_diag_vars.F
deleted file mode 100644
index fc7520a..0000000
--- a/fer/gnl/show_diag_vars.F
+++ /dev/null
@@ -1,132 +0,0 @@
-	SUBROUTINE SHOW_DIAG_VARS( name, order )
-
-*
-*
-*  This software was developed by the Thermal Modeling and Analysis
-*  Project(TMAP) of the National Oceanographic and Atmospheric
-*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
-*  hereafter referred to as NOAA/PMEL/TMAP.
-*
-*  Access and use of this software shall impose the following
-*  obligations and understandings on the user. The user is granted the
-*  right, without any fee or cost, to use, copy, modify, alter, enhance
-*  and distribute this software, and any derivative works thereof, and
-*  its supporting documentation for any purpose whatsoever, provided
-*  that this entire notice appears in all copies of the software,
-*  derivative works and supporting documentation.  Further, the user
-*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
-*  the use of this software or in any product that includes this
-*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
-*  in any advertising or publicity to endorse or promote any products
-*  or commercial entity unless specific written permission is obtained
-*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
-*  is not obligated to provide the user with any support, consulting,
-*  training or assistance of any kind with regard to the use, operation
-*  and performance of this software nor to provide the user with any
-*  updates, revisions, new versions or "bug fixes".
-*
-*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
-*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
-*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
-*
-*
-* execute the SHOW VARIABLES/DIAGNOSTIC command - display an alphabetized list 
-* of the available variables
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 7/8/87  - from SHOW_MEM_VARS and XEQ_SHOW
-* revision 0.1 - 3/25/88 - added interruptibility
-* revision 0.2 - 4/5/88  - eliminated cvar_second_name
-* revision 0.3 - 4/29/88 - added "name" for name matching
-* V200:  7/25/89 - show component vars
-* V320: 12/29/94 - use SPLIT_LIST to redirect tty output for GUI
-* V650  Write to show_lun which may be set to a file unit number rather than std out
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
-
-	include 'tmap_dims.parm'
-	include	'ferret.parm'
-	include 'errmsg.parm'
-	include 'xprog_state.cmn'
-	include 'xvariables.cmn'
-	include	'xcalc_vars.cmn'
-	include	'xtext_info.cmn'
-	include 'xinterrupt.cmn'
-
-* calling argument declarations:
-	INTEGER		order( max_calc_vars )
-	CHARACTER	name*4
-
-* local variable declarations:
-	LOGICAL MATCH4, all, full
-	INTEGER i, i2, temp, len, icomp, comp0, iend, var, status,
-     .          TM_LENSTR, len_test, len_mchars
-	CHARACTER	var_code*4, comp_buff*64
-	DATA		comp_buff(1:9) / '-->using:' /
-
-* local parameters
-	INTEGER	    slash_full
-	PARAMETER ( slash_full = 1 + 1 )
-
-* initialize
-	all  = name .EQ. unspecified_name4
-	full = qual_given(slash_full) .GT. 0
-
-* fill the order buffer with the default order
-	DO 100 i = 1, num_calc_vars
- 100	order(i) = i
-
-* alphabetize the list
-	DO 200 i2 = num_calc_vars, 2, -1
-	DO 200 i = 2, i2
-	   IF ( cvar_name_code(order(i-1)) .GT. cvar_name_code(order(i)) )
-     .									THEN
-	      temp = order(i)
-	      order(i  ) = order(i-1)
-	      order(i-1) = temp
-	   ENDIF
- 200	CONTINUE
-
-* ... and write it out
-	   CALL SPLIT_LIST(pttmode_explct, show_lun,
-     .		'Diagnostic variables:',21)
-	   CALL SPLIT_LIST(pttmode_explct, show_lun,
-     .		'name         title',18)
-           len_test = TM_LENSTR(name)
-	   DO 300 i2 = 1, num_calc_vars
-	      IF ( interrupted ) CALL ERRMSG
-     .			( ferr_interrupt, status, ' ', *1000 )
-	      i = order( i2 )
-              len_mchars = TM_LENSTR(cvar_name_code(i)(:4))
-	      IF ( all .OR. MATCH4(name,len_test, 
-     .            cvar_name_code(i),len_mchars) ) THEN
-	         CALL SPLIT_LIST(pttmode_explct, show_lun,
-     .			cvar_name_code(i)//'      '//cvar_primary_name(i), 0)
-	         IF ( .NOT.full ) GOTO 300
-* ... show the components
-	         comp0  = cvar_frame_start( i )
-	         iend = 9
-	         DO 250 icomp = comp0 + 1, comp0 + cvar_frame_length(i)
-	            iend = iend + 5
-	            var = cv_variable( icomp )
-	            IF (var .GT. pcv_spec_flg) var = var - pcv_spec_flg
-	            IF ( cv_category( icomp ) .EQ. cat_calc_var ) THEN
-	               var_code = cvar_name_code( var )
-	            ELSE
-	               var_code = fvar_name_code( var )
-	            ENDIF
-	            WRITE( comp_buff( iend-4:iend ), '(1X,A)' ) var_code
- 250	         CONTINUE
-	         CALL SPLIT_LIST(pttmode_explct, show_lun, comp_buff, iend)
-	      ENDIF
- 300	   CONTINUE
-
- 1000	RETURN
-	END
diff --git a/fer/gnl/show_dyn_grids.F b/fer/gnl/show_dyn_grids.F
index ec9cf38..5d32e6d 100644
--- a/fer/gnl/show_dyn_grids.F
+++ b/fer/gnl/show_dyn_grids.F
@@ -47,6 +47,36 @@
 * V532 5/01 *sh* - bug fix: ignore deleted static grids when chking axis usage
 * V650  Write to show_lun which may be set to a file unit number rather than std out
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V697  12/15 *acm* Changes to add details on SHOW GRID uvar to indicate 
+*                   compressed or subsetted axes
+
+* FERRET DOCUMENATION:  dynamic grids and axes
+* (entered 1/2016 *sh*)
+* There are three types of grids in Ferret:  legacy, dynamic, and temporary
+* 1. Legacy grids occupy grid storage belowup to index max_grids
+*    They are brute-force allocated using TM_GET_GRIDNUM.
+* 2. Dynamic grids occupy grid storage above max_grids.
+*    They are managed using routines with "_dyn_" in their names.
+*    They appear as a simple table, like the legacy grids, but they are
+*    managed through a doubly-linked list into lists of "free" and "used" grids
+*    A use count (grid_use_cnt) keeps track of when they are no longer needed.
+*    When a use count falls to zer (through de-allocation) a grid is
+*    automatically returned to the free list.
+*    Each variable in a dataset that depends upon a grid constitutes a "use"
+*    as does each memory-resident user variable instance defined on that grid.
+*    This routine checks that these counts have not been corrupted.
+* 3. Temporary grids are a linked lists of grids that have been temporarily
+*    removed from the free and used lists.  They are managed by routines that
+*    have "_tmp_" in their names.
+*    Grids are put onto the temporary list during the process of initializing
+*    a dataset, so that if an error condition occurs during initialization
+*    it is simple to clean up the partially created grids.  At successful
+*    completion of initializing a dataset all temporary grid should be moved
+*    back to the free or used lists. Some go back to the free list because
+*    duplicate grid definitions occur temporarily during dataset initialization
+* 
+* Dynamic management of axes ("lines") is very similar.  Each grid that uses a
+*    line bumps the use count for that line.  
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -64,7 +94,7 @@
 	INTEGER mods_cx
 
 * local variable declarations:
-        LOGICAL show_all, shown
+        LOGICAL show_all, shown, uvgrid
 	INTEGER grid, line, dset, var, count, i, slash_all, status
 	CHARACTER sanity_msg*24
 
@@ -73,6 +103,7 @@
 
 * initialize
         show_all   = qual_given( slash_all ) .GT. 0
+	uvgrid = .FALSE.
 
 * first show the dynamic grids
         shown = .FALSE.
@@ -118,7 +149,7 @@
 * *kob* 4/99 shorten dynamic grid name on output statment
  3000	   FORMAT ( 4X,A,1X,A16,16X, 'use count:',I4,5x,A)
 	   CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
-	   CALL SHOW_GRID(grid, mods_cx, status)
+	   CALL SHOW_GRID(grid, mods_cx, uvgrid, status)
 	   IF (status .NE. ferr_ok) GOTO 5000
            shown = .TRUE.
 	   grid = grid_flink(grid)
diff --git a/fer/gnl/show_grid.F b/fer/gnl/show_grid.F
index 2017e2c..d64d34f 100644
--- a/fer/gnl/show_grid.F
+++ b/fer/gnl/show_grid.F
@@ -1,4 +1,4 @@
-	SUBROUTINE SHOW_GRID( grid, cx, status )
+	SUBROUTINE SHOW_GRID( grid, cx, uvgrid, status )
 
 *
 *
@@ -68,6 +68,9 @@
 * V6.8  acm  6/12 Implement mode_6d_lab, set by default. If canceled, the 
 *                 various SHOW commnands will not list info for E,F dimensions.
 * V691+ 8/14 *acm* Fix ticket 2194: SHOW with /OUTFILE and not /XML. 
+* V697  12/15 *acm* Changes to add details on SHOW GRID uvar to indicate 
+*                   compressed or subset of axes
+* V697  12/15 *acm* Changes to formatting the output that shows subsets
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -77,12 +80,14 @@
 	include 'errmsg.parm'
 	include 'xprog_state.cmn'
 	include 'xrisc.cmn'
+	include 'xvariables.cmn'
 
 * calling argument declarations
+	LOGICAL uvgrid 
 	INTEGER grid, cx, status
 
 * local variable declarations:
-	INTEGER i, idim, listdims
+	INTEGER i, idim, listdims, uvar
 
 * If mode 6d_lab has been cancelled, we will list only the first 4 dimensions.
 * But if the grid has E or F axes, thats an error.
@@ -97,12 +102,21 @@
   90	   CONTINUE
 	ENDIF
 
+* Getting details about the grid of a user-variable
+        uvar = -1
+	IF (uvgrid) uvar = is_uvar(isp)
+
 * list and describe the axes of the grid
 	risc_buff = ' '
-	WRITE ( risc_buff, 3000 )
+	IF (uvgrid) THEN
+	   WRITE ( risc_buff, 3100 )
+	ELSE
+	   WRITE ( risc_buff, 3000 )
+	ENDIF
+
 	CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
 	DO 110 idim = 1, listdims
-	   CALL LINE_FACTS( show_lun, idim, grid, idim )
+	   CALL LINE_FACTS( show_lun, idim, grid, idim, uvar )
  110	CONTINUE
 
 * list the data on any axis that has been especially requested
@@ -120,6 +134,9 @@
  3000	FORMAT (T2,'name',T13,'axis',T31,'# pts',T39,'start',T60,
      .          'end' )
 
+ 3100	FORMAT (T2,'name',T13,'axis',T31,'# pts',T39,'start',T60,
+     .          'end',T80,'subset' )
+
 5000    RETURN
 5100	CALL ERRMSG( ferr_invalid_command, status,
      .		     'variable has more than 4 dimensions. Set mode 6D_LAB'
diff --git a/fer/gnl/show_grid_string_xml.F b/fer/gnl/show_grid_string_xml.F
index 0355840..06def04 100644
--- a/fer/gnl/show_grid_string_xml.F
+++ b/fer/gnl/show_grid_string_xml.F
@@ -45,6 +45,8 @@
 * v6.5 *acm* 3/10 Cleanup - remove commented-out includes
 * V67  *acm* 2/11 XML fixes. New attribute formatting, ![CDATA] escape, upper/lowercase handling.
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
+*                  using original upper/lowercase spelling
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -65,10 +67,11 @@
 	CHARACTER*(*) stringdimname
 
 * local variable declarations:
+	LOGICAL original 
 	INTEGER TM_LENSTR1, TM_LENSTR, STR_DNCASE, idim, slen, line, status
         CHARACTER*1 axdir
 	CHARACTER*2048 outstring
-	CHARACTER TM_FMT*16, show_str*16
+	CHARACTER TM_FMT*16, show_str*16, axname*64
 
  2020   FORMAT ('<grid name="',A,'">' )
  2030   FORMAT ('<axes>' )
@@ -94,6 +97,7 @@
 	WRITE (risc_buff, 2070 ) outstring(1:slen) 
 	CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
 
+	original = .TRUE.
 	DO 110 idim = 1, nferdims
            line = grid_line(idim, grid)
            IF (line .GT. 0) THEN
@@ -103,7 +107,10 @@
 
            IF (line .GT. 0  .AND.  slen .GT. 0 .AND.
      .         cx_expr .EQ. unspecified_int4) THEN
-              CALL ESCAPE_FOR_XML (line_name(line), outstring, slen)
+	      CALL CHOOSE_LINE_NAME(line, original, axname)
+	      slen = TM_LENSTR(axname)
+
+              CALL ESCAPE_FOR_XML (axname, outstring, slen)
               WRITE (risc_buff, 2040 ) axdir, outstring(1:slen), axdir
 	      CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
            ENDIF
@@ -113,9 +120,9 @@
 
               IF ( cx_hi_ss(cx_expr,idim).NE.unspecified_int4 .AND. 
      .	           cx_lo_ss(cx_expr,idim).NE.unspecified_int4 ) THEN
-                 slen = TM_LENSTR1(line_name(line))
+                 slen = TM_LENSTR1(axname)
                  WRITE (risc_buff, 2040 ) axdir,
-     .              line_name(line)(1:slen), axdir
+     .              axname(1:slen), axdir
 	         CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
               ENDIF
            ENDIF
diff --git a/fer/gnl/show_grid_xml.F b/fer/gnl/show_grid_xml.F
index 45310c4..0105fc8 100644
--- a/fer/gnl/show_grid_xml.F
+++ b/fer/gnl/show_grid_xml.F
@@ -46,6 +46,8 @@
 * V67  *acm* 2/11 XML fixes. New attribute formatting, ![CDATA] escape, upper/lowercase handling.
 *      *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 * v685 *acm* 4/12 The flag line_write tells us whether to write the axis name to the xml
+* V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
+*                  using original upper/lowercase spelling
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -65,10 +67,11 @@
 	INTEGER lun, grid, cx_expr
 
 * local variable declarations:
+	LOGICAL original 
 	INTEGER TM_LENSTR1, TM_LENSTR, STR_DNCASE, STR_SAME,
      .		idim, slen, line, iwrite, status
         CHARACTER*1 axdir
-	CHARACTER*512 outstring
+	CHARACTER outstring*512, axname*64
 
  2020   FORMAT ('<grid name="',A,'">' )
  2030   FORMAT ('<axes>' )
@@ -85,16 +88,17 @@
 	CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
 
 	iwrite = 0
+	original = .TRUE.
 	DO 110 idim = 1, nferdims
 	   slen = 0
            line = grid_line(idim, grid)
+	   CALL CHOOSE_LINE_NAME(line, original, axname)
            IF (line .GT. 0 .AND. 
-     .	          STR_SAME(line_name(line), 'ABSTRACT') .NE. 0) THEN
-	      slen = TM_LENSTR(line_name(line))
+     .	          STR_SAME(axname, 'ABSTRACT') .NE. 0) THEN
+	      slen = TM_LENSTR(axname)
 	      status = STR_DNCASE(axdir, ww_dim_name(idim))
 	      IF (slen .EQ. 0) GOTO 110
-	      CALL ESCAPE_FOR_XML (line_name(line), outstring, slen)
-
+	      CALL ESCAPE_FOR_XML (axname, outstring, slen)
 
               IF (cx_expr .EQ. unspecified_int4) THEN
                  WRITE (risc_buff, 2040 ) axdir, outstring(1:slen), axdir
@@ -122,11 +126,11 @@
 	      slen = 0
               line = grid_line(idim, grid)
               IF (line .GT. 0 .AND. 
-     .	          STR_SAME(line_name(line), 'ABSTRACT') .NE. 0) THEN
-	         slen = TM_LENSTR(line_name(line))
+     .	          STR_SAME(axname, 'ABSTRACT') .NE. 0) THEN
+	         slen = TM_LENSTR(axname)
 	         status = STR_DNCASE(axdir, ww_dim_name(idim))
 	         IF (slen .EQ. 0) GOTO 120
-	         CALL ESCAPE_FOR_XML (line_name(line), outstring, slen)
+	         CALL ESCAPE_FOR_XML (axname, outstring, slen)
 
                  WRITE (risc_buff, 2040 ) axdir, outstring(1:slen), axdir
                  CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
diff --git a/fer/gnl/show_line.F b/fer/gnl/show_line.F
index 9e90840..fc7ef85 100644
--- a/fer/gnl/show_line.F
+++ b/fer/gnl/show_line.F
@@ -51,6 +51,8 @@
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V695+  *sh* 5/15 show T0 for forecast calendar axes, too
+* V697  12/15 *acm* Changes to add details on SHOW GRID uvar to indicate 
+*                   compressed or subsetted axes
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -69,7 +71,7 @@
 
 * local variable declarations:
 	LOGICAL		TM_ITS_SUBSPAN_MODULO
-	INTEGER		idim, orient, slen, i
+	INTEGER		idim, orient, slen, i, idum
 	INTEGER		TM_LENSTR1, TM_GET_CALENDAR_ID, cal_id
 	CHARACTER	TM_FMT*32, buff*80, buff20*20
 	REAL*8		TM_WW_AXLEN
@@ -116,7 +118,10 @@
 	grid_line(idim, mgrid_buff) = line
 
 * report basic facts using code from SHOW_GRID
-	CALL LINE_FACTS( show_lun, idim, mgrid_buff, orient )
+* Last argument is user-var code, not needed here, but used when calling from SHOW_GRID
+	buff20 = ' '
+	idum = -1
+	CALL LINE_FACTS( show_lun, idim, mgrid_buff, orient, idum )
 	IF ( brief ) RETURN
 
 * report /T0= for formatted time axis
diff --git a/fer/gnl/sort_fmrc_dsets.F b/fer/gnl/sort_fmrc_dsets.F
new file mode 100644
index 0000000..57f50d4
--- /dev/null
+++ b/fer/gnl/sort_fmrc_dsets.F
@@ -0,0 +1,233 @@
+	SUBROUTINE SORT_FMRC_DSETS (nsets_in, member_sets, maxmembers,
+     .				    nsets_out, nt_out, 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. 
+*
+* NOAA/PMEL, Seattle, WA - TMAP 
+
+* sort the given list of datasets based upon the starting time steps
+* and insert dummy dataset where the forecast sequence has gaps
+*
+* V698 *sh* 11/15 
+*            2/16 -- allow missing datasets among nsets_in
+*            3/16 -- bug fix in epsilon used to screen bad gaps
+
+* calling arguments
+*   nsets_in		- number of datasets given to be aggregated (input)
+*   member_sets		- array of open dataset numbers (input-output)
+*   maxmembers		- maximum number of members allowes (input)
+*   nsets_out		- number of datasets including dummy fillers (output)
+*   nt_out		- time ax len (in case inconsistent) (output)
+*   status		- return staus (output)
+
+        include 'tmap_errors.parm'
+#include "tmap_dset.parm"
+        include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'xdset_info.cmn_text'
+	external xdset_info_data
+        include 'xprog_state.cmn'
+	include 'xtm_grid.cmn_text'  
+	include 'errmsg.parm'
+	include 'netcdf.inc'
+	include 'xvariables.cmn'
+	include 'xcontext.cmn'
+	include 'xfr_grid.cmn'
+	include 'xdiag_ctrl.cmn_text'
+
+* calling argument declarations:
+	INTEGER nsets_in, nsets_out, nt_out,
+     .		maxmembers, member_sets(maxmembers)
+
+* local variable declarations:
+	LOGICAL alteredDelta
+	INTEGER	ivar, grid, grid1, iset, dset, dset1, taxis, taxis1,
+     .		status, nadded, ngap, i, nsets, itmp_memb(maxmembers),
+     .		deltaFactor
+	REAL TDEST_WORLD, TM_WORLD, d, epsilon, gap, deltaT, deltaT_0,
+     .		start_time(maxmembers), rindices(maxmembers),
+     .		d_ratio, d_ratio_int
+	CHARACTER LEFINT*8
+
+* initialize
+	dset1  = member_sets(1)
+	taxis1 = ds_time_axis(dset1)
+	nt_out = line_dim(taxis1)
+	status = ferr_ok
+	IF (nsets_in .LE. 1) RETURN
+
+* since forecast series must be regular, and the code below
+* is able to detect gaps in the list of forecasts given,we
+* will simply remove the user-specified gaps, knowing they
+* will be re-inserted automatically
+	ngap = 0
+	iset = 1
+	DO WHILE (iset+ngap .LT. nsets_in)
+	   IF (member_sets(iset) .EQ. pdset_dummy) THEN
+	      ngap = ngap + 1
+	   ELSE
+	      iset = iset + 1
+	   ENDIF
+	   member_sets(iset) = member_sets(iset+ngap)
+	ENDDO
+	nsets = nsets_in - ngap
+	nsets_out = nsets
+
+* locate a variable in the first dataset that uses this time axis
+	DO ivar = 1, maxvars
+           IF ( ds_var_setnum(ivar) .NE. dset1 ) CYCLE
+	   grid1 = ds_grid_number(ivar)
+	   IF (grid_line(t_dim,grid1) .EQ. taxis1) GOTO 100
+	ENDDO
+	GOTO 5100
+
+* loop through the datasets extracting the start time from each one
+* Apply the T0 encoding of the first dataset to all
+ 100	start_time(1) = TM_WORLD( 1, grid1, t_dim, box_middle )
+	DO iset = 2, nsets
+	   dset  = member_sets(iset)
+	   taxis = ds_time_axis(dset)
+           IF (line_name_orig(taxis) .NE. line_name_orig(taxis1)) GOTO 5100
+	   
+* ... length of T axis in the aggregation will be the MIN of all members
+	   IF (line_dim(taxis) .LT. nt_out) nt_out = line_dim(taxis)
+
+* ... locate a variable in the first dataset that uses this time axis
+	   DO ivar = 1, maxvars
+              IF ( ds_var_setnum(ivar) .NE. dset ) CYCLE
+	      grid = ds_grid_number(ivar)
+	      IF (grid_line(t_dim,grid) .EQ. taxis) GOTO 200
+	   ENDDO
+	   GOTO 5100
+
+* ... save the start time of this dataset
+ 200	   CALL TDEST_WORLD_INIT (grid, grid1, t_dim, status)
+	   IF (status .NE. ferr_ok) GOTO 5100 
+	   start_time(iset) = TDEST_WORLD(1, grid, t_dim, box_middle)
+	ENDDO
+
+* sort the dates and the dataset list
+* ... put indices into REAL array
+	DO iset = 1, nsets
+	   rindices(iset) = iset
+	ENDDO
+	CALL HEAP2(start_time, rindices, unspecified_val8, nsets)
+* ... reorder the dataset numbers to match the sort
+	DO iset = 1, nsets
+	   itmp_memb(iset) = member_sets(INT(rindices(iset)))
+	ENDDO
+* ... copy the sorted list back into the input array
+	DO iset = 1, nsets
+	   member_sets(iset) = itmp_memb(iset)
+	ENDDO
+
+* determine the intended delta-T between the (ordered) forecasts
+* ... first get the minimum delta-T
+	deltaT_0 = start_time(2) - start_time(1)
+	DO iset = 2, nsets
+	   d = start_time(iset)-start_time(iset-1)
+	   IF ( d .LT. deltaT_0) deltaT_0 = d
+	ENDDO
+	IF (deltaT_0 .EQ. 0.0) GOTO 5250
+
+* for monthly data delta-T may vary from 28 to 31, so allow a margin of error
+	epsilon = 1.0001 * (31.-28.)/28.
+
+* now re-evaluate the deltas to find the lowest common denominator
+* i.e. if we discover there is a gap of size 1.5*deltaT, that means that
+* the correct delta is new_delta= 0.5*deltaT.  This re-interprets our two
+* gaps as 2*new_delta and 3*new_delta
+	deltaFactor = 1
+	deltaT = deltaT_0
+	alteredDelta = .TRUE.
+	DO WHILE (alteredDelta)
+	   alteredDelta = .FALSE.
+	   DO iset = 2, nsets
+	      d = start_time(iset)-start_time(iset-1)
+	      d_ratio = d/deltaT
+* delta ratio must be an integer within epsilon threshold
+	      d_ratio_int = FLOAT(INT(d_ratio + 0.49))
+	      IF (ABS(d_ratio-d_ratio_int)/d_ratio .GT. epsilon) THEN
+* ... we have the wrong deltaT -- try an integer fraction of it
+	         deltaFactor = deltaFactor + 1
+	         IF (deltaFactor .GT. 4) GOTO 5200
+	         deltaT = deltaT_0 / deltaFactor
+	         alteredDelta = .TRUE.
+	         EXIT    ! try again with smaller delta
+	      ENDIF
+	   ENDDO	
+	ENDDO
+
+* loop through the data set list inserting dummys where there are gaps
+	ngap = 0    ! not needed?
+	nadded = 0
+	iset = 1
+	DO WHILE (iset .LT. nsets_out)
+	   iset = iset + 1
+	   d = start_time(iset)-start_time(iset-1)
+	   IF (ABS(d-deltaT)/deltaT .GT. epsilon) THEN
+* ... we have a gap (or at least an irregularity)
+	      gap = d/deltaT
+	      ngap = INT(gap + 0.5)      ! here ngap=1 means nothing missing
+	      ngap = ngap - 1		 ! now  ngap=0 means nothing missing
+	      nsets_out = nsets_out + ngap
+	      IF (nsets_out .GT. maxmembers) THEN
+	         nsets_out = maxmembers   ! needed to clean up files after err
+	         GOTO 5200
+	      ENDIF
+*     ... open the gap
+	      DO i = nsets_out, iset+ngap, -1
+	         member_sets(i) = member_sets(i-ngap)
+	         start_time (i) = start_time (i-ngap)
+	      ENDDO
+*     ... fill the gap
+	      DO i = iset, iset+ngap-1
+	         member_sets(i) = pdset_dummy
+	      ENDDO
+	      iset = iset + ngap
+	   ENDIF
+	ENDDO
+
+	RETURN
+
+* error exits
+ 5000	RETURN
+ 5100	CALL WARN(
+     .		'Unable to sort forecast datasets due to corrupted times.')
+	GOTO 5000
+ 5200	CALL ERRMSG( ferr_aggregate_error, status,
+     .		'forecast start times are irregular or too gappy', *5000 )
+ 5250	CALL ERRMSG( ferr_aggregate_error, status,
+     .		'some files have duplicate forecast start times', *5000 )
+
+	END
diff --git a/fer/gnl/sort_tseries_dsets.F b/fer/gnl/sort_tseries_dsets.F
new file mode 100644
index 0000000..e8e0eff
--- /dev/null
+++ b/fer/gnl/sort_tseries_dsets.F
@@ -0,0 +1,146 @@
+	SUBROUTINE SORT_TSERIES_DSETS (nmembers, nsteps, skip_edges,
+     .				       memb_nsteps, memb_order,
+     .				       tsteps, edges)
+*
+*  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. 
+*
+* NOAA/PMEL, Seattle, WA - TMAP 
+
+* sort the time steps that have been pulled from the time series members
+*
+* V698 *sh* 1/16 
+
+* calling arguments
+*   nmembers	- number of members in aggregation (input)
+*   nsteps	- total number of time steps in agg axis (input)
+*   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)
+
+        include 'tmap_errors.parm'
+#include "tmap_dset.parm"
+        include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'xdset_info.cmn_text'
+	external xdset_info_data
+        include 'xprog_state.cmn'
+	include 'xtm_grid.cmn_text'  
+	include 'errmsg.parm'
+	include 'netcdf.inc'
+	include 'xvariables.cmn'
+	include 'xcontext.cmn'
+	include 'xfr_grid.cmn'
+	include 'xdiag_ctrl.cmn_text'
+
+* calling argument declarations:
+	LOGICAL skip_edges
+	INTEGER nmembers, nsteps, memb_nsteps(nmembers), memb_order(nmembers)
+	REAL	tsteps(nsteps), edges(nsteps+nmembers)
+
+* local variable declarations:
+	LOGICAL sorted
+	INTEGER lstart(nmembers), i, lin, lout, ifile
+	REAL    tstart(nmembers), buff(nsteps+nmembers), 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
+
+* 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
+
+* ... 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
+	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)
+	ENDDO
+
+	END
diff --git a/fer/grdel/fgd_gqpen.F b/fer/grdel/fgd_gqpen.F
new file mode 100644
index 0000000..5b597cc
--- /dev/null
+++ b/fer/grdel/fgd_gqpen.F
@@ -0,0 +1,53 @@
+*
+* Returns the RGBA fractions of the color object in a pen object 
+* with ID number pennum for the window with ID number windowid.  
+* If the pen object exists the RGBA fractions are returned 
+* in redfrac, greenfrac, bluefrac, and opaquefrac arguments, 
+* and istat is set to zero.  If the pen object does not exist, 
+* then istat is set to one and the RGBA fractions are unchanged.
+*
+
+        SUBROUTINE FGD_GQPEN(windowid, pennum, istat,
+     .                       redfrac, greenfrac, bluefrac, opaquefrac)
+
+        IMPLICIT NONE
+        INTEGER windowid, pennum, istat
+        REAL*4 redfrac, greenfrac, bluefrac, opaquefrac
+
+        INCLUDE 'ferret.parm'
+        INCLUDE 'tmap_dims.parm'
+        INCLUDE 'xprog_state.cmn'
+        INCLUDE 'fgrdel.cmn'
+
+        INTEGER colornum
+
+*       Sanity checks
+        IF ( (windowid .LT. 1) .OR. 
+     .       (windowid .GT. maxwindowobjs) ) THEN
+            STOP 'FGD_GQPEN: Invalid windowid'
+        ENDIF
+        IF ( windowobjs(windowid) .EQ. nullobj ) THEN
+            STOP 'FGD_GQPEN: null windowobj'
+        ENDIF
+        IF ( (pennum .LE. 0) .OR.
+     .       (pennum .GT. maxpenobjs) ) THEN
+            STOP 'FGD_GQPEN: Invalid pennum'
+        ENDIF
+        IF ( penobjs(pennum, windowid) .EQ. nullobj ) THEN
+            istat = 1
+            RETURN
+        ENDIF
+
+*       Simplest approach for retrieving pen color numbers
+*       and the color RGBA values for that color was just 
+*       to store them in the common block when they are set
+        colornum = pencolor(pennum, windowid)
+        redfrac = colorrgba(1, colornum, windowid)
+        greenfrac = colorrgba(2, colornum, windowid)
+        bluefrac = colorrgba(3, colornum, windowid)
+        opaquefrac = colorrgba(4, colornum, windowid)
+        istat = 0
+
+        RETURN
+        END
+
diff --git a/fer/ino/SOURCE_FILES b/fer/ino/SOURCE_FILES
index c33d3fd..0e887fd 100644
--- a/fer/ino/SOURCE_FILES
+++ b/fer/ino/SOURCE_FILES
@@ -3,9 +3,7 @@ cdf_prep_cache.F\
 dset_type.F\
 equal_delimit.F\
 find_dset_number.F\
-get_dset_parms.F\
 init_ez_dset.F\
-make_cvar_grids.F\
 read_ez.F\
 read_binary.F\
 read_delimited.F\
diff --git a/fer/ino/get_dset_parms.F b/fer/ino/get_dset_parms.F
deleted file mode 100644
index 6e38ee2..0000000
--- a/fer/ino/get_dset_parms.F
+++ /dev/null
@@ -1,323 +0,0 @@
-	SUBROUTINE GET_DSET_PARMS( dset, 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 parameter values for data set - 1st set defaults, then read (if possible)
-* from the 205 data base, then over-ride using any parameters given in the
-* descriptor
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 2/11/88
-* revision 0.1 - 4/28/88 - get parameters from 205 data base
-* revision 0.2 - 6/22/88 - allow SIEG and SEIG interchangeably
-*			 - warning only for invalid 205 data base entry
-* revision 0.3 - 7/1/88  - allow multiple air temp climatologies
-*			 - add dp_Am_factor
-* revision 1.0 -11/17/88 - new io library and grid common
-* revision 1.1 - 4/19/89 - changed AIRT logic so that 3-letter code is read
-*			   from 205 data base.  "LEV" is still default.
-* Unix/RISC port 5/91 *sh*: changed runs data base file name
-*               8/29/91 - added add'l parm "NTS30 WIND STRESS CALC"
-* V320: 12/29/94 - use SPLIT_LIST to redirect tty output for GUI
-* V420: 9/95 - using TM_ITSA_MODEL_RUN TMAP runs are now recognizable from
-* 		their file names, alone.  Parameters are then read from the
-*		205 run data base.
-*       *acm* 3/12 changes for 6D Ferret
-
-	include 'ferret.parm'
-	include 'errmsg.parm'
-	include 'tmap_dims.parm'
-	include 'tmap_errors.parm'
-	include 'xdset_parms.cmn'
-	include 'xprog_state.cmn'
-	include 'xdset_info.cmn_text'
-	external xdset_info_data
-	include 'xrisc.cmn'          ! 12/94 SPLIT_LIST buffer
-
-* calling argument declarations
-	INTEGER	dset, num_prev_gridfiles, status
-
-* local variable declarations
-	LOGICAL	TM_HAS_STRING, TM_DIGIT, TM_ITSA_MODEL_RUN
-	INTEGER	TM_LENSTR1,
-     .		NEXT205, TMAP_status, dummy, i, slen, iclim
-	CHARACTER	TM_EXP_CODE*6, col_head*132, table_row*132,
-     .			entry*64, entry_nam*64
-
-* parameter definitions
-	INTEGER	    max_dset_parms
-	PARAMETER ( max_dset_parms = 15 )	! to match *DSET_INFO.CMN
-
-* Philander/Siegel model output ? (Sieg or Seig)
-	dp_phil_sieg( dset ) = TM_HAS_STRING( ds_source(dset), 'PHIL' )
-     .			 .AND. ( TM_HAS_STRING( ds_source(dset), 'SIEG' )
-     .			    .OR. TM_HAS_STRING( ds_source(dset), 'SEIG' ) )
-
-* 9/95 - may conclude it is a TMAP model run based on file name, too
-* (the term "Philander/Siegel" has been commandeered for all TMAp runs)
-	IF (.NOT.dp_phil_sieg(dset)) dp_phil_sieg(dset) =TM_ITSA_MODEL_RUN
-     .					(ds_name(dset),
-     .					 ds_source(dset),
-     .					 ds_expnum(dset)  )
-
-* Cox model output ?
-	dp_cox( dset )	 = TM_HAS_STRING( ds_source(dset), 'COX' )
-
-* something unknown ?
-	IF (   ds_source(dset) .NE. ' '
-     .	.AND. .NOT.dp_phil_sieg(dset)
-     .	.AND. .NOT.dp_cox(dset) ) THEN
-	   WRITE ( risc_buff, 3020 )
-     .		ds_source(dset)( :TM_LENSTR1( ds_source(dset) ) ),
-     .		ds_name(dset)( :TM_LENSTR1( ds_name(dset) ) )
-	   CALL WARN ( risc_buff )
-	ENDIF
-
-* tropical Pacific (160x100x27) grid ?
-	dp_trop_pacific( dset ) = TM_HAS_STRING( ds_subsource(dset), 'TROP' )
-     .			    .AND. TM_HAS_STRING( ds_subsource(dset), 'PAC'  )
-
-********* PHILANDER/COX parameters ****************************
-* * * * INITIALIZE PARAMETER DEFAULTS * * * * 
-	dp_min_wind	( dset ) = 488.
-	dp_phil_qflux	( dset ) = .TRUE.
-	dp_ramp1_qflux	( dset ) = .FALSE.
-	dp_ramp2_qflux	( dset ) = .FALSE.
-	dp_clim_air_sst	( dset ) = 1		! LEVITUS
-	dp_const_air_sst( dset ) = .TRUE.
-	dp_delta_air_sst( dset ) = 1.0
-	dp_Am_factor	( dset ) = 2.0
-        dp_nts30_wind   ( dset ) = .FALSE.
-
-* * * *  CHECK THE 205 DATA BASE * * * * 
-	IF ( dp_phil_sieg(dset).OR.dp_cox(dset) ) THEN
-* get the table heading line and row containing this experiment code
-	   CALL TM_GET_205_RUN_LINE
-     .		( 'model_runs.doc', TM_EXP_CODE(dset), col_head, table_row,
-     .			TMAP_status )	
-	   IF ( TMAP_status .NE. merr_ok ) THEN
-	      CALL WARN ('Model run parameters not available')
-	      CALL WARN ('Diagnostic variable results may be incorrect')
-	      GOTO 500
-	   ENDIF
-
-* ... MINIMUM WIND
-	   ASSIGN 110 TO NEXT205
-	   entry_nam = 'WND'
-	   CALL TM_GET_205_RUN_PARM
-     .		( entry_nam, col_head, table_row, entry, slen, TMAP_status )
-	   IF ( TMAP_status .NE. merr_ok ) GOTO 5010
-	   IF ( .NOT.TM_DIGIT(entry) ) GOTO 5010
-	   READ ( entry, *, ERR=5010 ) dp_min_wind(dset)
-
-* ... HEAT FLUX PARAMETERIZATION
- 110	   ASSIGN 120 TO NEXT205
-	   entry_nam = 'FLUX'
-	   CALL TM_GET_205_RUN_PARM
-     .		( entry_nam, col_head, table_row, entry, slen, TMAP_status )
-	   IF ( TMAP_status .NE. merr_ok ) GOTO 5010
-	   dp_phil_qflux  ( dset ) = TM_HAS_STRING( entry, 'PHIL' )
-	   dp_ramp1_qflux ( dset ) = TM_HAS_STRING( entry, 'RAMP1' )
-	   dp_ramp2_qflux ( dset ) = TM_HAS_STRING( entry, 'RAMP2' )
-	   IF ( .NOT.dp_phil_qflux( dset )
-     .	  .AND. .NOT.dp_ramp1_qflux( dset )
-     .	  .AND. .NOT.dp_ramp2_qflux( dset ) ) GOTO 5010
-
-* ... AIR/SST DELTA TEMP (a value or "CLIM")
- 120	   ASSIGN 130 TO NEXT205
-	   entry_nam = 'SEAT'
-	   CALL TM_GET_205_RUN_PARM
-     .		( entry_nam, col_head, table_row, entry, slen, TMAP_status )
-	   IF ( TMAP_status .NE. merr_ok ) GOTO 5010
-	   IF ( TM_DIGIT( entry ) ) THEN
-	      READ ( entry, '(F24.0)', ERR=5010 ) dp_delta_air_sst(dset)
-	      dp_delta_air_sst( dset ) = -dp_delta_air_sst(dset) ! neg. stored
-	      dp_const_air_sst( dset ) = .TRUE.
-	   ELSE
-	      IF ( entry(:4) .NE. 'CLIM' ) GOTO 5010
-	      dp_const_air_sst( dset ) = .FALSE.
-	   ENDIF
-
-* ... CLIMATOLOGICAL AIR TEMP FIELD
- 130	   ASSIGN 140 TO NEXT205
-	   entry_nam = 'AIR'
-	   CALL TM_GET_205_RUN_PARM
-     .		( entry_nam, col_head, table_row, entry, slen, TMAP_status )
-	   IF ( TMAP_status .NE. merr_ok ) GOTO 5010
-	   DO 135 iclim = 1, max_airt_clim
-	      IF ( dp_airt_name(iclim) .EQ. unspecified_name4 ) GOTO 137
-	      IF ( TM_HAS_STRING(entry,dp_airt_name(iclim)) ) THEN
-* ... this 3-letter AIRT code is already known: point data set to it
-	         dp_clim_air_sst ( dset ) = iclim
-	         GOTO 140
-	      ENDIF
- 135	   CONTINUE
-* ... a new 3-letter code but no room to store it
-	   GOTO 5030
-* ... a new 3-letter code: save it and point data set to it
- 137	   dp_airt_name( iclim )   = entry
-	   dp_clim_air_sst( dset ) = iclim
-
-* ... Am FACTOR - HORIZONTAL MOMENTUM DIFFUSION
- 140	   ASSIGN 500 TO NEXT205
-	   entry_nam = 'Am'
-	   CALL TM_GET_205_RUN_PARM
-     .		( entry_nam, col_head, table_row, entry, slen, TMAP_status )
-	   IF ( TMAP_status .NE. merr_ok ) GOTO 5010
-	   IF ( .NOT.TM_DIGIT( entry ) ) GOTO 5010
-	   READ ( entry, '(F24.0)', ERR=5010 ) dp_Am_factor(dset)
-	ENDIF
-
-* * * * DESCRIPTOR PARAMETERS * * * *
-* "name" = "value"
- 500	DO 590 i = 1, max_dset_parms
-
-	   entry_nam = ds_parm_name(i,dset)
-	   IF ( entry_nam .EQ. ' ' ) THEN
-	      GOTO 590
-	   ELSE
-	      entry = ds_parm_text(i,dset)
-	   ENDIF
-
-* ... "HEAT FLUX = PHILANDER/SIEGEL" or "HEAT FLUX = DOUBLE RAMP", etc.
-	   IF ( TM_HAS_STRING( entry_nam, 'HEAT FLUX'	) )THEN
-	      dp_phil_qflux  ( dset ) = TM_HAS_STRING( entry, 'PHIL' )
-	      dp_ramp1_qflux ( dset ) = TM_HAS_STRING( entry, 'SINGLE' )
-	      dp_ramp2_qflux ( dset ) = TM_HAS_STRING( entry, 'DOUBLE' )
-
-* ... "AIR-SEA DELTA T = value,"LEV","CAC",... "?
-	   ELSEIF ( TM_HAS_STRING( entry_nam, 'AIR-SEA DELTA T'	) ) THEN
-	   IF ( TM_DIGIT( entry ) ) THEN
-	      READ ( entry, '(F24.0)', ERR=5010 ) dp_delta_air_sst(dset)
-	      dp_delta_air_sst( dset ) = -dp_delta_air_sst(dset) ! neg. stored
-	      dp_const_air_sst( dset ) = .TRUE.
-	      dp_clim_air_sst ( dset ) = unspecified_int4
-	   ELSE
-	      DO 510 iclim = 1, max_airt_clim
-	         IF ( TM_HAS_STRING(entry,dp_airt_name(iclim)) ) THEN
-	            dp_const_air_sst( dset ) = .FALSE.
-	            dp_clim_air_sst ( dset ) = iclim
-	            GOTO 590
-	         ENDIF
- 510	      CONTINUE
-	      GOTO 5020
-	   ENDIF
-
-* ... "MINIMUM WIND = 488."
-	   ELSEIF ( TM_HAS_STRING( entry_nam, 'MINIMUM WIND' ) ) THEN
-	      IF ( entry .EQ. ' ' ) GOTO 5020
-	      IF ( TM_DIGIT( entry ) ) THEN
-	         READ ( entry, *, ERR=5020 ) dp_min_wind(dset)
-	      ELSE
-	         GOTO 5020
-	      ENDIF
-
-* ... "Am_factor = 2.0"
-	   ELSEIF ( TM_HAS_STRING( entry_nam, 'Am_factor' ) ) THEN
-	      IF ( entry .EQ. ' ' ) GOTO 5020
-	      IF ( TM_DIGIT( entry ) ) THEN
-	         READ ( entry, *, ERR=5020 ) dp_Am_factor(dset)
-	         IF ( dp_Am_factor(dset) .LT. 0.0 ) GOTO 5020
-	      ELSE
-	         GOTO 5020
-	      ENDIF
-
-* ... "205_AIRT = "LEV","CAC", "ALV", etc.
-*     (flag this data set as containing climatological air temp ?)
-	   ELSEIF ( TM_HAS_STRING( entry_nam, '205_AIRT' ) ) THEN
-	      DO 550 iclim = 1, max_airt_clim
-	         IF ( dp_airt_name(iclim) .EQ. unspecified_name4 ) THEN
-*	... fill blank AIRT slot with this AIRT 3-letter code
-	            dp_airt_name(iclim) = entry(:3)
-	            dp_airt_dset(iclim) = dset
-	            GOTO 590
-	         ELSEIF (TM_HAS_STRING(entry,dp_airt_name(iclim)) ) THEN
-*	... point this data set at the already specified 3-letter AIRT code
-	            IF ( dp_airt_dset(iclim) .EQ. unspecified_int4 ) THEN
-	               dp_airt_dset(iclim) = dset
-	               GOTO 590
-	            ELSE
-	              GOTO 5019
-	            ENDIF
-	         ENDIF
- 550	      CONTINUE
-*	... no blank AIRT slots for this AIRT set
-	      GOTO 5030
-
-* ... "NTS30 WIND STRESS MODIFICATION"
-	   ELSEIF ( TM_HAS_STRING( entry_nam, 'NTS30 WIND' ) ) THEN
-              dp_nts30_wind( dset ) = .TRUE.
-
-* ... parameter not recognized
-	   ELSEIF ( dp_phil_sieg(dset).OR.dp_cox(dset) ) THEN
-	      WRITE ( risc_buff, 3020 )
-     .		entry_nam( :TM_LENSTR1( entry_nam ) ),
-     .		ds_name(dset)( :TM_LENSTR1( ds_name(dset) ) )
- 3020	      FORMAT( ' Warning: unrecognized parameter ', A,
-     .					  ' in data set ', A )
-	      CALL WARN ( risc_buff )
-	   ENDIF
-
- 590	CONTINUE
-
-* successful completion
-	status = ferr_ok
-	RETURN
-
-* syntax error
- 5000	RETURN
-
- 5010	CALL WARN('Invalid entry in model run data base')
-	CALL WARN('Data set: '//ds_name(dset)(:TM_LENSTR1(ds_name(dset))))
-	CALL WARN('Column:'//entry_nam(:TM_LENSTR1(entry_nam)))
-	CALL WARN('Field:'//entry(:slen))
-	CALL WARN( 'Continuing with errors ...')
-	GOTO NEXT205
- 5019	CALL WARN( 'MULTIPLE DSETS CLAIM TO BE SAME AIR TEMPERATURE SET')
- 5020	CALL ERRMSG( ferr_descriptor, status,
-     .		ds_name(dset)( :TM_LENSTR1( ds_name(dset) ) )//' : "'//
-     .		entry_nam(:TM_LENSTR1(entry_nam))//'='//
-     .		entry(:TM_LENSTR1(entry))//'"',
-     .		*5000 )
- 5030	CALL ERRMSG( ferr_prog_limit, status,
-     .		ds_name(dset)( :TM_LENSTR1( ds_name(dset) ) )//
-     .		' :no room for air temp data set '// entry(:4),
-     .		*5000 )
-
-	END
diff --git a/fer/ino/init_ez_dset.F b/fer/ino/init_ez_dset.F
index c3133c0..2042cb8 100644
--- a/fer/ino/init_ez_dset.F
+++ b/fer/ino/init_ez_dset.F
@@ -189,7 +189,7 @@
 	   CALL PURGE_ALL_UVARS		! delete (possibly dependent) uvars
 * (note: this purge is unnecessarily strict - could be refined in the future)
 
-	   CALL CANCEL_DATA_SET( dset, .FALSE., status )
+	   CALL CANCEL_DATA_SET( dset, status )
 	
 	   IF ( status .NE. ferr_ok ) RETURN
 	   already_init = .FALSE.
diff --git a/fer/ino/make_cvar_grids.F b/fer/ino/make_cvar_grids.F
deleted file mode 100644
index 11a5a0d..0000000
--- a/fer/ino/make_cvar_grids.F
+++ /dev/null
@@ -1,116 +0,0 @@
-	SUBROUTINE MAKE_CVAR_GRIDS ( dset, status )
-
-*
-*
-*  This software was developed by the Thermal Modeling and Analysis
-*  Project(TMAP) of the National Oceanographic and Atmospheric
-*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
-*  hereafter referred to as NOAA/PMEL/TMAP.
-*
-*  Access and use of this software shall impose the following
-*  obligations and understandings on the user. The user is granted the
-*  right, without any fee or cost, to use, copy, modify, alter, enhance
-*  and distribute this software, and any derivative works thereof, and
-*  its supporting documentation for any purpose whatsoever, provided
-*  that this entire notice appears in all copies of the software,
-*  derivative works and supporting documentation.  Further, the user
-*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
-*  the use of this software or in any product that includes this
-*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
-*  in any advertising or publicity to endorse or promote any products
-*  or commercial entity unless specific written permission is obtained
-*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
-*  is not obligated to provide the user with any support, consulting,
-*  training or assistance of any kind with regard to the use, operation
-*  and performance of this software nor to provide the user with any
-*  updates, revisions, new versions or "bug fixes".
-*
-*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
-*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
-*  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
-*
-*
-* find or make a full grid, including a time axis, for each cvar variable in 
-* the given data set based on information stored in COMMON by INIT_DSET.
-* results are stored COMMON/~VARIABLES/ in cvar_grid
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 -11/17/88 - based on MAKE_DS_4D_GRIDS v1.0
-*			   new io library does file variables - only cvars here
-* Unix/RISC port - 1/91 - cant use "/star" in comments on Unix
-*Linux Port 1/97 *kob* - Added a preprocessor include for tmap_dset.parm
-*			  because it needed a preprocessor.
-*       *acm* 3/12 changes for 6D Ferret
-
-	include 'tmap_dims.parm'
-#	include "tmap_dset.parm"
-	include 'xdset_info.cmn_text'
-	external xdset_info_data
-	include 'xtm_grid.cmn_text'
-	external xgt_grid_data
-	include 'ferret.parm'
-	include 'errmsg.parm'
-	include	'xvariables.cmn'
-	include	'xcalc_vars.cmn'
-	include	'xdset_parms.cmn'
-
-* calling argument declarations
-	INTEGER	dset, status
-
-* local variable declarations
-	INTEGER	TM_LENSTR1, fvar, cvar, idim, iline, slen
-	CHARACTER TM_FMT*4, gname*8
-
-* * * * CALCULATED VARIABLES
-	IF ( .NOT.( dp_phil_sieg(dset) .OR. dp_cox(dset) ) ) THEN
-* not available: not Philander/Siegel or Cox
-	   DO 150 cvar = 1, num_calc_vars
- 150	   cvar_grid( cvar, dset ) = unspecified_int4
-
-	ELSE
-* create a template for the unchanging grid stuff
-	   DO 200 idim = 1, 4
- 200	   grid_out_prod( idim, mgrid_buff ) = .TRUE.
-	   grid_line( t_dim, mgrid_buff ) = ds_time_axis( dset )
-
-	   DO 320 cvar = 1, num_calc_vars
-
-* fill in the spacial axes for the grid to look for
-	      DO 310 idim = 1,3
-	         IF ( cvar_axes( idim, cvar ) .EQ. mnormal ) THEN
-	            grid_line( idim, mgrid_buff ) = mnormal
-	         ELSE
-	            grid_line( idim, mgrid_buff ) =
-     .			ds_basic_axes( cvar_axes(idim,cvar)-1, dset )
-	         ENDIF
- 310	      CONTINUE
-
-* make a plausible name for the new grid (e.g. GPCDZ1)
-	      gname = 'G' // cvar_name_code(cvar)
-     .			  // TM_FMT( REAL(dset), 4, 4, slen )
-
-* make sure name is unique
-	      CALL TM_NEW_GRID_NAME( gname, gname )
-
-* save it or use an identical one that already exists
-	      CALL TM_GET_LIKE_GRID( mgrid_buff, gname,
-     .				     cvar_grid(cvar,dset), status )
-	      IF ( status .NE. ferr_ok ) GOTO 5000
- 320	   CONTINUE
-	ENDIF
-
-* successful completion
-	status = ferr_ok
- 	RETURN
-
-* error exit
- 5000	RETURN
-	END
diff --git a/fer/ino/var_ss_lims.F b/fer/ino/var_ss_lims.F
index b469c52..92325c2 100644
--- a/fer/ino/var_ss_lims.F
+++ b/fer/ino/var_ss_lims.F
@@ -48,6 +48,7 @@
 *	      there are uncertainties whether special circumstances in FERRET
 *	      may lead to problem behavior
 *       *acm* 3/12 cleanup old VMS ifdef
+* V698  3/16 *sh* added logic for cat_ef_time2d (ACTS_LIKE_FVAR)
 
 	include 'tmap_dims.parm'
 	include 'xdset_info.cmn_text'
@@ -64,7 +65,7 @@
 	INTEGER idim, cx, lo_ss, hi_ss
 
 * internal variable declarations
-	LOGICAL is_file_var
+	LOGICAL ACTS_LIKE_FVAR
 	INTEGER dset, cat, var, grid, line, status
 	INTEGER TM_GET_GRIDNUM		! 10/93
 
@@ -87,12 +88,21 @@
 	ENDIF
 * ... end of 10/93 additions
 
+        IF ( cat .EQ. cat_pystat_var ) THEN
+           IF ( (dset .EQ. unspecified_int4) .OR.
+     .          (line .EQ. mnormal) .OR.
+     .          cx_unstand_grid(cx) ) THEN
+              lo_ss = unspecified_int4
+              hi_ss = unspecified_int4
+           ELSE
+              lo_ss = pyvar_grid_start(idim, var)
+              hi_ss = pyvar_grid_end  (idim, var)
+           ENDIF
+           RETURN
+        ENDIF
+
 * cannot return answer under several conditions
-	is_file_var = cat .EQ. cat_file_var  .OR. 
-     .            cat .EQ. cat_agg_e_var .OR.
-     .            cat .EQ. cat_agg_f_var .OR.
-     .            cat .EQ. cat_pystat_var
-	IF ( (.NOT.is_file_var)
+	IF ( (.NOT.ACTS_LIKE_FVAR(cat) )
      .  .OR. dset .EQ. unspecified_int4
      .  .OR. line .EQ. mnormal
      .  .OR. cx_unstand_grid(cx)	 ) THEN
@@ -102,13 +112,8 @@
 	ENDIF
 
 * return subscript limits
-        IF ( cat .EQ. cat_pystat_var ) THEN
-           lo_ss = pyvar_grid_start(idim, var)
-           hi_ss = pyvar_grid_end  (idim, var)
-        ELSE
-           lo_ss = ds_grid_start(idim, var)
-           hi_ss = ds_grid_end  (idim, var)
-        ENDIF
+        lo_ss = ds_grid_start(idim, var)
+        hi_ss = ds_grid_end  (idim, var)
         RETURN
 
 	END
diff --git a/fer/link.ppc64.sh b/fer/link.ppc64.sh
deleted file mode 100755
index 4312277..0000000
--- a/fer/link.ppc64.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributed by support at BSC-CNS, Barcelona, Spain
-# for build using PPC processors and SLES 9  10/2008
-# They say this is the link option that I used, the 
-# default one didn't work in our system
-
-
-g++ -m32 -L/lib -L/usr/X11R6/lib -o ferretdods_gui \
-ccr/fermain_c.o ccr/gui_init.o \
-ccr/save_arg_pointers.o special/linux_routines.o dat/*.o ../fmt/src/x*.o ../ppl/plot/ppldata.o special/ferret_dispatch.o special/xmake_date_data.o special/fakes3.o special/ferret_query_f.o  special/xrevision_type_data.o special/xplatform_type_data.o \
-         \
-         \
-        /gpfs/apps/FERRET/SRC/6.13_beta/lib/libgui.a ../list-2.1/liblist.a \
-         \
-        ../ppl/tmapadds/*.o  \
-        ef_utility/*.o \
-         \
-        /gpfs/apps/FERRET/SRC/6.13_beta/lib/libxeq.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/libgnl.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/libferplt.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/librpn.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/libstk.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/libdoo.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/libocn.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/libctx.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/libfmt.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/libino.a /gpfs/apps/FERRET/SRC/6.13_beta [...]
-        /gpfs/apps/FERRET/SRC/6.13_beta/lib/libplt.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/libpll.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/libsym.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/libcmp.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/libour.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/libepi.a /gpfs/apps/FERRET/SRC/6.13_beta/lib/libusr.a  \
-         \
-        /gpfs/apps/FERRET/SRC/6.13_beta/lib/tmap_lib.a \
-        ../readline-4.1/libreadline.a  \
-        /usr/lib/libncurses.a \
-        -L/gpfs/apps/DAP/3.8.2/32/lib /gpfs/apps/NCDAP/3.7.2/32/lib/libnc-dap.a /gpfs/apps/DAP/3.8.2/32/lib/libdap.a /gpfs/apps/DAP/3.8.2/32/lib/libdapclient.a /gpfs/apps/NCDAP/3.7.2/32/lib/libnc-dap.a /gpfs/apps/DAP/3.8.2/32/lib/libdap.a /usr/lib/libxml2.a -L/gpfs/apps/DAP/3.8.2/32/lib -L/gpfs/apps/DAP/3.8.2/32/lib -lz -lpthread /gpfs/apps/CURL/7.19.0/32/lib/libcurl.a -L/usr/lib -lssl -lcrypto -ldl -lssl -lcrypto /usr/lib/libgssapi.so.1 -lcrypto -lresolv -ldl -lz -lz  -lpthread -lz /gpf [...]
-        -L/gpfs/apps/HDF4/32/lib/  -ldf -ljpeg /gpfs/apps/HDF4/32/lib/libz.a  \
-        ../xgks/src/lib/libxgks.a \
-        -L/usr/X11R6/lib -ldl /usr/X11R6/lib/libXpm.a  -lc /usr/X11R6/lib/libXm.a -lXt -lXext -lX11 -lXp /usr/X11R6/lib/libXmu.a -lSM       -lICE        -lc -lg2c -lstdc++ -L/opt/ibmcmp/xlf/10.1/lib/ -lxl -lrt -Wl,-relax
-
diff --git a/fer/mem/SOURCE_FILES b/fer/mem/SOURCE_FILES
index 7faaada..71965db 100644
--- a/fer/mem/SOURCE_FILES
+++ b/fer/mem/SOURCE_FILES
@@ -48,6 +48,7 @@ purge_dset.F\
 purge_file_var.F\
 purge_mr_axis.F\
 purge_mr_grid.F\
+purge_one_dset.F\
 purge_pystat_var.F\
 purge_pystat_dset_vars.F\
 purge_user_var.F\
diff --git a/fer/mem/create_full_range_context.F b/fer/mem/create_full_range_context.F
index c2ae558..9e03178 100644
--- a/fer/mem/create_full_range_context.F
+++ b/fer/mem/create_full_range_context.F
@@ -42,7 +42,8 @@
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
 *
-* V695+ 5/15 *sh* 
+* V695+ 5/15 *sh*
+* V698  3/16 *sh* - bug #2382: use CAXIS_LEN to get length of full axis
 
 	IMPLICIT NONE
 
@@ -55,7 +56,7 @@
 	INTEGER	source, dest, status
 
 * internal variable declarations
-	INTEGER CX_DIM_LEN_ZERO, idim, n
+	INTEGER CAXIS_LEN, idim, n
 
 * initialize
 	status = ferr_ok
@@ -65,7 +66,7 @@
 * expand context to full grid range
 	DO idim = 1, nferdims
 	   cx_trans(idim,dest) = trans_no_transform
-	   n = CX_DIM_LEN_ZERO(idim, dest)
+	   n = CAXIS_LEN(idim, dest)
 	   IF ( n .GT. 0 ) THEN
 	      cx_lo_ss(dest, idim) = 1
 	      cx_hi_ss(dest, idim) = n
diff --git a/fer/mem/deallo_uvar_grids.F b/fer/mem/deallo_uvar_grids.F
index 0c2078f..4d0a8a7 100644
--- a/fer/mem/deallo_uvar_grids.F
+++ b/fer/mem/deallo_uvar_grids.F
@@ -45,6 +45,7 @@
 * V510 *sh* 4/00 - deallocate any grid, not just dynamic ones
 * V533 *sh* 7/01 - set data type of grid/variable
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V699 *sh* 6/16 - variable uvar_grids replaced with LISTs in NCF_Util.c 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -57,29 +58,70 @@
 	INTEGER	uvar
 
 * local declarations
-	INTEGER i
+	INTEGER iset, idim, ngrids, nfound, 
+     .		saved_uvgrid, tmp_len
+	CHARACTER tmp_buff*256
+	INTEGER aux_cat(nferdims), aux_var(nferdims)  ! LIST diagnostics
 
+	nfound = 0
+	CALL GET_SAVED_UVAR_GRID_LIST_LEN(uvar, ngrids)
 
-* loop through all of the grids that may be associated with this
-* note: could be more efficient:  check to see if this is a data set
-*	dependent variable (or "EX#n") and delete only the single data set grid
+* OLD CODE - based upon XVARIABLES uvar_grid variable
+* The FUTURE CODE will replace all of the doubly-dimensioned
+* variables (max_uvar X max_gfdl_dsets) with calls to LISTs
 
-	DO 100 i = 0, max_gfdl_dsets
+* THIS LOOP WILL BE REPLACED WITH a loop over ngrids (see above)
+* using LIST controls that allow you to traverse the list from end-to-end:
+* list_front, list_mvnext
+	DO 100 iset = 0, max_gfdl_dsets
 
 * Remove the grid
 * (and possibly all memory resident variables that depend on it)
-	   IF ( uvar_grid(uvar,i) .GE. 1
-     .   .AND.  uvar_grid(uvar,i) .LE. max_dyn_grids ) THEN
-	      CALL DEALLO_DYN_GRID(uvar_grid(uvar,i))
+	   IF ( uvar_grid(uvar,iset) .GE. 1
+     .   .AND.  uvar_grid(uvar,iset) .LE. max_dyn_grids ) THEN
+
+* test the new LIST code
+	      nfound = nfound + 1
+	      CALL GET_SAVED_UVAR_GRID(uvar, iset, saved_uvgrid)
+	      IF (saved_uvgrid .NE. uvar_grid(uvar,iset)) THEN
+	         CALL GET_SHORT_DSET_NAME( iset, tmp_buff, tmp_len)
+	         CALL WARN("UVGRIDERR: deallo_uvar_grids")
+	         CALL WARN("dset="//tmp_buff(:tmp_len))
+	         WRITE(6,*) 'UVGRIDERR: deallo_uvar_grids'
+	         WRITE(6,*)'dset='//tmp_buff(:tmp_len)
+	      ENDIF
+
+	      CALL GET_SAVED_UVAR_AUX_INFO(uvar, iset,
+     .				           aux_cat, aux_var)
+	      DO idim = 1, nferdims
+	        IF (aux_cat(idim) .NE. uvar_aux_cat(uvar,idim,iset)
+     .         .OR. aux_var(idim) .NE. uvar_aux_var(uvar,idim,iset))
+     .							THEN
+	           WRITE(6,3000) aux_cat(idim), uvar_aux_cat(uvar,idim,iset),
+     .				 aux_var(idim), uvar_aux_var(uvar,idim,iset)
+ 3000		   FORMAT(' UVAUXERR: deallo_uvar_grids', 4I8)
+	        ENDIF
+	      ENDDO
+
+	      CALL DEALLO_DYN_GRID(uvar_grid(uvar,iset))
 	   ENDIF
 
 * set the grid pointer to its initialized state
-	uvar_grid( uvar, i ) = unspecified_int4
+	uvar_grid( uvar, iset ) = unspecified_int4
 
 * set the data type of the grid/variable
-	uvar_data_type( uvar, i ) = unspecified_int4
+	uvar_data_type( uvar, iset ) = unspecified_int4
 
  100	CONTINUE
 
+
+* free the LIST of grids associated with this uvar
+	IF (nfound .NE. ngrids) THEN
+	   CALL WARN("UVGRIDERR: deallo_uvar_grids nfound")
+	   WRITE(6,*) 'UVGRIDERR: deallo_uvar_grids nfound'
+	   WRITE(6,*)'uvar=', uvar
+	ENDIF
+	CALL FREE_UVAR_GRIDS(uvar)
+
 	RETURN
 	END
diff --git a/fer/mem/delete_old_expr.F b/fer/mem/delete_old_expr.F
index eda5557..3a811ab 100644
--- a/fer/mem/delete_old_expr.F
+++ b/fer/mem/delete_old_expr.F
@@ -51,6 +51,9 @@
 * V540:  11/01 - initialize last_cmnd_buff
 *	         (formerly local array in get_prot_cmnd_data)
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure. Extra
+*                  argument to DELETE_USER_VAR
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -60,7 +63,7 @@
 	include 'xprog_state.cmn'
 
 * internal variable declarations:
-	INTEGER	uvar, j, num_indices, result_array(max_uvar)
+	INTEGER	uvar, j, num_indices, result_array(max_uvar), dset
 
 * eliminate all user variables created by the last expression given
 *	DO 100 uvar = 1, max_uvar
@@ -68,10 +71,11 @@
         CALL deleted_list_get_undel(uvar_num_items_head,
      .                              result_array(1),
      .                              max_uvar, num_indices )
+        dset = pdset_uvars
         DO 100 j = 1, num_indices
            uvar = result_array(j)        
 	   IF ( uvar_name_code(uvar)(:3) .EQ. 'EX#' )
-     .					CALL DELETE_USER_VAR( uvar )
+     .					CALL DELETE_USER_VAR( uvar, dset )
  100	CONTINUE
 
 * remove memory of previous expressions
diff --git a/fer/mem/delete_user_var.F b/fer/mem/delete_user_var.F
index 4614f56..8026ead 100644
--- a/fer/mem/delete_user_var.F
+++ b/fer/mem/delete_user_var.F
@@ -1,4 +1,4 @@
-	SUBROUTINE DELETE_USER_VAR ( uvar )
+	SUBROUTINE DELETE_USER_VAR ( uvar, iset )
 
 *
 *
@@ -44,6 +44,10 @@
 * V450 7/97 - guts of routine moved to DELETE_USER_VAR_SUB
 * V510 *sh* 1/00 - bug fixes to support nested GC variables
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure. Extra
+*                  argument to DELETE_USER_VAR
+* V699 6/16 *sh* quick exit if already deleted
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -51,10 +55,16 @@
 	include 'xvariables.cmn'
 
 * calling argument declarations:
-	INTEGER	uvar
+	INTEGER	uvar, iset
 
 * internal variable declarations:
-	INTEGER	i, uv, uvar_ancestor, num_indices, result_array(max_uvar)
+	INTEGER	i, uv, uvar_ancestor, num_indices, 
+     .          result_array(max_uvar), dset
+
+* fall-back check to forgive sloppy bookkeeping elsewhere
+* as of 6/16 uvar grids are stored in LIST structures and a double deletion
+* can corrupt them
+	IF (uvar_num_items(uvar) .EQ. uvar_deleted) RETURN
 
 * delete child vars
 *	DO 200 uv = 1, max_uvar
@@ -68,11 +78,15 @@
 *	uvar_name_code for child vars is "(Cnnn,Vmmm)" -- the "mmm" is the ancestor
 	   IF (uvar_name_code(uv)(1:2) .NE. '(C' ) GOTO 200
 	   READ (uvar_name_code(uv)(8:10),'(I3)',ERR=200) uvar_ancestor
-	   IF (uvar_ancestor.EQ.uvar) CALL DELETE_USER_VAR_SUB(uv)
+	   dset = pdset_uvars
+	   IF (uvar_ancestor.EQ.uvar) CALL DELETE_USER_VAR_SUB(uv, dset)
  200	CONTINUE
 
 * now delete the variable itself
-        CALL DELETE_USER_VAR_SUB(uvar)
+	dset = iset
+	IF (dset.EQ.unspecified_int4 .OR. 
+     .      dset.EQ.pdset_irrelevant) dset = pdset_uvars
+        CALL DELETE_USER_VAR_SUB(uvar, dset)
 	      
 	RETURN
 	END
diff --git a/fer/mem/delete_user_var_sub.F b/fer/mem/delete_user_var_sub.F
index 2ca0401..82fbb71 100644
--- a/fer/mem/delete_user_var_sub.F
+++ b/fer/mem/delete_user_var_sub.F
@@ -1,4 +1,4 @@
-	SUBROUTINE DELETE_USER_VAR_SUB ( uvar )
+	SUBROUTINE DELETE_USER_VAR_SUB ( uvar, dset )
 
 *
 *
@@ -47,6 +47,15 @@
 * if DELETE_USER_VAR is called to delete TEST1 it must also eliminate all stored
 * grids of TEST2 and TEST3
 
+* ==> ***NOTE** The process of locating dependencies is a crude, inefficient
+* hunt based upon scanning the text of uvar definitions to locate dependent
+* variables.  Leveraging on the uvarGrid LIST structures that each ncvar has
+* (see NCF_Util.h), a "descendent" list could be managed for each variable
+* -- e.g. in IS_UVAR_GRID -- as the grid of a variable is being determined, it
+* can add itself to a list maintained by each of children (because the child's
+* grid must already exist fore the current (parent) grid to be determined
+
+
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 *
@@ -67,6 +76,9 @@
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V695+ 5/15 *sh* - free cached c array, if any
 * V695  7/15 *acm - reinitialize value of uvar_aux_stat to zero
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure.
+* V699 6/16 *sh* treat EX# variables just like other variables
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -79,12 +91,12 @@
 	include 'xrisc.cmn'
 
 * calling argument declarations:
-	INTEGER	uvar
+	INTEGER	uvar, dset
 
 * internal variable declarations:
-	INTEGER		STR_UPCASE, TM_LENSTR, TM_LENSTR1,
-     .			du_list( max_uvar ), ndu, kdu, uv, vax_code,
-     .			ind, i, j, num_indices, dset_uvars, slen, flen
+	INTEGER		STR_UPCASE, TM_LENSTR, TM_LENSTR1,du_list(max_uvar), 
+     .			ndu, kdu, uv, vax_code,ind, i, j, num_indices, iset, 
+     .			varid, slen, flen, status
 	CHARACTER*24	check_name
 
       PARAMETER (flen=128)      ! size of variable name string
@@ -159,16 +171,22 @@
         CALL deleted_list_modify(uvar_num_items_head,uvar,uvar_deleted)
 
 * Remove from linked-list structure, the user-variables dataset
-* No need to check EX# expressions
-
-        slen = TM_LENSTR( uvar_name_code(uvar)  )
-        IF (slen .GT. 0 .AND. uvar_name_code(uvar)(1:3) .NE. 'EX#') THEN
-           slen = TM_LENSTR1( uvar_name_code(uvar)  )
-           CALL TM_FTOC_STRNG( uvar_name_code(uvar)(1:slen), fhol, flen )
-
-           dset_uvars = pdset_uvars
-           CALL NCF_DELETE_VAR (dset_uvars, fhol )
-        ENDIF
+!        slen = TM_LENSTR( uvar_name_code(uvar)  )
+!        IF (slen .GT. 0 .AND. uvar_name_code(uvar)(1:3) .NE. 'EX#') THEN
+* 6/16 -- treat 'EX#' just like other variables
+	   iset = dset
+	   CALL CD_GET_VAR_ID (iset, uvar_name_code(uvar), varid, status)
+	   IF (status .NE. ferr_ok) THEN
+	      iset = uvar_dset(uvar)
+	      CALL CD_GET_VAR_ID (iset, uvar_name_code(uvar), varid, status)
+	   ENDIF
+! ?? *sh* what is the state of things here if status .NE. ferr_ok ??
+	   IF (status .EQ. ferr_ok) THEN
+              slen = TM_LENSTR1( uvar_name_code(uvar)  )
+              CALL TM_FTOC_STRNG( uvar_name_code(uvar)(1:slen), fhol, flen )
+              CALL NCF_DELETE_VAR (iset, fhol )
+           ENDIF
+!	ENDIF
 
 *	uvar_name_code( uvar ) = " "
         CALL string_array_modify(uvar_name_code_head, uvar, " ", 1 )
diff --git a/fer/mem/erase_dset.F b/fer/mem/erase_dset.F
index 044ede8..1d144b7 100644
--- a/fer/mem/erase_dset.F
+++ b/fer/mem/erase_dset.F
@@ -50,6 +50,9 @@
 *               list attribute structure.
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V695+ *sh* 5/15 - free any c-cached arrays owned by the dataset
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure. Extra
+*                  argument to DELETE_USER_VAR
 
         include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -86,19 +89,20 @@
 *	   IF (uvar_dset(ii) .EQ. dset) uvar_num_items(ii) =
 *     .					uvar_deleted
 	   IF (uvar_dset(ii) .EQ. dset) THEN
-	      CALL DELETE_USER_VAR(ii)
+	      CALL DELETE_USER_VAR(ii, dset)
               CALL deleted_list_modify(uvar_num_items_head, ii,
      .	            uvar_deleted)
 
-* Remove variable from linked-list structure, the user-variables dataset
-
-              slen = TM_LENSTR( uvar_name_code(ii)  )
-              IF (slen .GT. 0 .AND. uvar_name_code(ii)(1:3) .NE. 'EX#') THEN
-                 CALL TM_FTOC_STRNG( uvar_name_code(ii)(1:slen), fhol, flen )
-
-                 dset_uvars = pdset_uvars
-                 CALL NCF_DELETE_VAR (dset_uvars, fhol )
-              ENDIF
+* 6/16: This logic is now handled inside of DELETE_USER_VAR
+!* Remove variable from linked-list structure, the user-variables dataset
+!
+!              slen = TM_LENSTR( uvar_name_code(ii)  )
+!              IF (slen .GT. 0 .AND. uvar_name_code(ii)(1:3) .NE. 'EX#') THEN
+!                 CALL TM_FTOC_STRNG( uvar_name_code(ii)(1:slen), fhol, flen )
+!
+!                 dset_uvars = pdset_uvars
+!                 CALL NCF_DELETE_VAR (dset_uvars, fhol )
+!              ENDIF
 
            ENDIF
 
diff --git a/fer/mem/find_mem_var_incl_c_cache.F b/fer/mem/find_mem_var_incl_c_cache.F
index 158c0a4..479494f 100644
--- a/fer/mem/find_mem_var_incl_c_cache.F
+++ b/fer/mem/find_mem_var_incl_c_cache.F
@@ -42,6 +42,7 @@
 * written for VAX computer under VMS operating system
 *
 * V695+ 5/15 *sh*
+* V698  1/16 *sh* -- continue on to check cache whenever mr=0 from FIND_MEM_VAR
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -66,7 +67,7 @@
 
 * first try a normal cache search
 	CALL FIND_MEM_VAR( cx, mr, search_by_value, valid_search )
-	IF (.NOT.valid_search .OR. mr.NE.mr_nonexist) RETURN
+	IF (mr.NE.mr_nonexist) RETURN   ! 1/16 ignore valid_search
 
 * initialize
 	var = cx_variable(cx)
diff --git a/fer/mem/find_var_name.F b/fer/mem/find_var_name.F
index 9c3b54c..5a6d59e 100644
--- a/fer/mem/find_var_name.F
+++ b/fer/mem/find_var_name.F
@@ -75,7 +75,9 @@
 *      *sh*  12/14 Allow _SQ_ as an acceptable equivalent to single quotes
 *      *acm*  2/15 Prevent run-time errors in string length for _SQ_ handling
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
-*   
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
+
         IMPLICIT NONE
         include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -84,9 +86,7 @@
 	external xdset_info_data
 	include 'xcontext.cmn'
 	include 'xvariables.cmn'
-	include 'xcalc_vars.cmn'
 	include	'xalgebra.cmn'
-	include	'xdset_parms.cmn'
         include 'xcontrol.cmn'
         include 'xpyvar_info.cmn'
 
@@ -401,24 +401,6 @@
 	      RETURN
  250	      CONTINUE
 
-* check table of calculatable variables (padded to 8 characters)
-*   but only if this is a Philander-Seigle model output
-	IF ( dset.GE.1 .AND. dset.LE.maxdsets ) THEN
-	   IF (dp_phil_sieg(dset).OR.dp_cox(dset)) THEN
-	      DO 300 ivar = 1, num_calc_vars
-                 len_mchars = TM_LENSTR(cvar_name_code(ivar))
-	         IF (MATCH_QUOTED_NAME(test_name,len_test,
-     .               cvar_name_code(ivar)//'    ',len_mchars))
-     .        	   THEN
-	            category = cat_calc_var
-	            variable = ivar
-                    test_name = buff
-	            RETURN
-	         ENDIF
- 300	      CONTINUE
-	   ENDIF
-	ENDIF
-
 * not found
 	variable = munknown_var_name
         test_name = buff
diff --git a/fer/mem/get_memory.F b/fer/mem/get_memory.F
index ad7d223..efa1c40 100644
--- a/fer/mem/get_memory.F
+++ b/fer/mem/get_memory.F
@@ -61,6 +61,8 @@
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V685 *acm*  6/13 Increase nominal length of abstract axis
 * V69+ *acm*  9/14 Ticket 1758. Memory request uses number of blocks not words
+* V697 *acm*  1/16 Ticket 2354. Never adjusted for double-precision Ferret. Also
+*                  round up the integer value of needed Mwords shown.
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -143,7 +145,7 @@
 	RETURN
  5200	CONTINUE
         rgrid_blocks = FLOAT(mem_blk_size)* FLOAT(grid_blocks)/ 1.e6
-	num_str = LEFINT(INT(rgrid_blocks),num_slen)
+	num_str = LEFINT(CEILING(2.*rgrid_blocks),num_slen)
 
 	CALL ERRMSG( ferr_insuff_memory,status,
      .	  num_str(:num_slen)//' Mwords were requested. ', *5130)
diff --git a/fer/mem/purge_dset.F b/fer/mem/purge_dset.F
index 5fcfb8f..ddf2001 100644
--- a/fer/mem/purge_dset.F
+++ b/fer/mem/purge_dset.F
@@ -1,4 +1,4 @@
-	SUBROUTINE PURGE_DSET ( dset )
+	RECURSIVE SUBROUTINE PURGE_DSET ( dset )
 
 *
 *
@@ -36,31 +36,36 @@
 *
 *
 * delete all memory variables with data from a particular data set
+* AND from all aggregations that may depend upon it
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V200: 10/25/89 - extracted from ERASE_DSET
-*	12/18/89 - eliminated the possibility of multiple data set variables
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V698: *sh* previous code renamed to PURGE_ONE_DSET
 
         IMPLICIT NONE
-        include 'tmap_dims.parm'
 	include	'ferret.parm'
-	include 'xvariables.cmn'
+	include	'errmsg.parm'
 
 * calling argument declarations:
 	INTEGER	dset
 
 * local variable declarations:
-	INTEGER mr
+	LOGICAL IS_AGG_MEMBER, more
+	INTEGER parent, kparent
+
+* initialize
+	kparent = 0
+	more = .TRUE.
 
-* eliminate memory variables depending on this data set
-	DO 100 mr = 1,max_mrs
-	   IF ( mr_protected( mr ) .EQ. mr_deleted ) GOTO 100
-	   IF ( dset .EQ. mr_data_set(mr) ) CALL DELETE_VARIABLE( mr )
- 100	CONTINUE
+* purge any parent datasets
+	DO WHILE (more)
+	   kparent = kparent + 1
+	   IF ( IS_AGG_MEMBER(dset, kparent, parent, more) ) THEN
+	      CALL PURGE_DSET(parent)
+	   ENDIF
+	ENDDO
+
+* purge the specified dataset
+	CALL PURGE_ONE_DSET(dset)
 
 	RETURN
+
 	END
diff --git a/fer/mem/purge_mr_grid.F b/fer/mem/purge_mr_grid.F
index 6c6cb7f..2e18ff5 100644
--- a/fer/mem/purge_mr_grid.F
+++ b/fer/mem/purge_mr_grid.F
@@ -53,6 +53,8 @@
 * v604 *acm* 7/07 increase length of ds_name
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V695+ *sh 3/15 - bug fix.  Grid name was not displayed with warnings
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -66,7 +68,6 @@
 	external xgt_grid_data
 	include	'xfr_grid.cmn'
 	include 'xvariables.cmn'
-	include 'xcalc_vars.cmn'
         include 'xpyvar_info.cmn'
 
 * calling argument declaration:
@@ -99,14 +100,6 @@
 	   ENDIF
  10	CONTINUE
 
-* make sure it is not implicitly used by a cvar that depends on file variables
-* NOTE: cvars are irrelevant as of V500 ...
-!	DO 25 dset = 1, maxdsets
-!	   IF ( ds_name(dset) .EQ. char_init1024) GOTO 25
-!	   DO 20 cvar = 1, num_calc_vars
-! 20	   IF ( cvar_grid(cvar,dset) .EQ. grid ) GOTO 5100
-! 25	CONTINUE
-
 * make sure grid is not used by any pystat variables
         DO 30 ivar = 1, maxpyvars
            IF ( pyvar_ndarray_obj(ivar) .EQ. 0 ) GOTO 30
@@ -136,10 +129,6 @@
 
 * error exit
  5000	RETURN
-! 5100	glen = TM_LENSTR1( grid_name( grid ) )
-!	CALL ERRMSG( ferr_grid_definition, status,
-!     .		'grid '//grid_name(grid)(:glen)//' used by data set '
-!     .		//ds_name(dset), *5000 )
  5200	CALL ERRMSG( ferr_grid_definition, status,
      .		'protected grid: '//grid_name(grid), *5000 )
 	END
diff --git a/fer/mem/purge_dset.F b/fer/mem/purge_one_dset.F
similarity index 97%
copy from fer/mem/purge_dset.F
copy to fer/mem/purge_one_dset.F
index 5fcfb8f..bdd0db7 100644
--- a/fer/mem/purge_dset.F
+++ b/fer/mem/purge_one_dset.F
@@ -1,4 +1,4 @@
-	SUBROUTINE PURGE_DSET ( dset )
+	SUBROUTINE PURGE_ONE_DSET ( dset )
 
 *
 *
@@ -44,6 +44,7 @@
 * V200: 10/25/89 - extracted from ERASE_DSET
 *	12/18/89 - eliminated the possibility of multiple data set variables
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V698: *sh* 2/2016 - renamed from PURGE_DSET
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
diff --git a/fer/mem/var_code.F b/fer/mem/var_code.F
index 80fc345..a24d4eb 100644
--- a/fer/mem/var_code.F
+++ b/fer/mem/var_code.F
@@ -55,6 +55,9 @@
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * V694 5/15 *acm* when evaluating attributes, show the code attr
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
+* V698  3/16 *sh* bug fix #2382 - logic for cat_ef_time2d (ACTS_LIKE_FVAR)
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -62,7 +65,6 @@
 	include	'xdset_info.cmn_text'
 	external xdset_info_data
 	include	'xvariables.cmn'
-	include	'xcalc_vars.cmn'
 	include	'xalgebra.cmn'
 	include	'xpyvar_info.cmn'
 
@@ -70,12 +72,10 @@
 	INTEGER category, variable
 
 * internal variable declarations
-	INTEGER 	uvar, item, start, end
+	LOGICAL ACTS_LIKE_FVAR
+	INTEGER uvar, item, start, end
 
-	IF     ( category .EQ. cat_file_var 
-     . .OR.	 category .EQ. cat_file_rev 
-     . .OR.	 category .EQ. cat_agg_e_var
-     . .OR.	 category .EQ. cat_agg_f_var ) THEN
+	IF     ( ACTS_LIKE_FVAR(category) ) THEN
 
 	   VAR_CODE = ds_var_code( variable )
 
@@ -83,10 +83,6 @@
 
            VAR_CODE = pyvar_code( variable )
 
-	ELSEIF ( category .EQ. cat_calc_var ) THEN
-
-	   VAR_CODE = cvar_name_code( variable )
-
 	ELSEIF ( category .EQ. cat_user_var ) THEN
 
 	   VAR_CODE = uvar_name_code(variable)
diff --git a/fer/ocn/LIB_NAME b/fer/ocn/LIB_NAME
deleted file mode 100644
index cd354b4..0000000
--- a/fer/ocn/LIB_NAME
+++ /dev/null
@@ -1 +0,0 @@
-LIB = ../../lib/libocn.a 
diff --git a/fer/ocn/Makefile b/fer/ocn/Makefile
deleted file mode 100644
index c9dedd8..0000000
--- a/fer/ocn/Makefile
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# Site-specific defines
-#
-include ../../site_specific.mk
-
-#
-# include platform specific definitions of:
-#       CC, FC, RANLIB, CFLAGS, FFLAGS, PPLUS_FFLAGS
-#
-include ../../platform_specific.mk.$(BUILDTYPE)
-
-include ./SOURCE_FILES
-include ./LIB_NAME
-
-#
-# Macros
-#
-
-OBJS = $(SRCS_C:.c=.o) $(SRCS_F:.F=.o)
-
-
-#
-# Targets
-#
-
-all:	$(LIB)
-
-$(LIB): $(OBJS)
-	$(AR) $(ARFLAGS) $@ $(OBJS)
-	$(RANLIB) $@
-
-clean:
-	rm -f *.o $(LIB)
-
-#
-# End of Makefile
-#
diff --git a/fer/ocn/SOURCE_FILES b/fer/ocn/SOURCE_FILES
deleted file mode 100644
index 47c9078..0000000
--- a/fer/ocn/SOURCE_FILES
+++ /dev/null
@@ -1,34 +0,0 @@
-SRCS_F = \
-air_temp.F\
-calc_cvar.F\
-cmesh.F\
-conv_adj_mask.F\
-cvar_context.F\
-ew_hadvec.F\
-expl_coriolis.F\
-fuw.F\
-fvn.F\
-gfdl_terms.F\
-grad_p_clinic.F\
-hflux.F\
-hourly_data.F\
-hradiation.F\
-knudsen.F\
-mesh.F\
-prof.F\
-sn_hadvec.F\
-state.F\
-u_from_psi.F\
-vel_adv_ew.F\
-vel_adv_ns.F\
-vel_adv_z.F\
-vel_by_grad_p.F\
-vel_by_wind.F\
-vel_dif_xy.F\
-vel_dif_z.F\
-w_on_ts.F\
-w_on_uv.F\
-wind_stress.F\
-xy_hdiffus.F\
-z_hadvec.F\
-z_hdiffus.F 
diff --git a/fer/ocn/air_temp.F b/fer/ocn/air_temp.F
deleted file mode 100644
index d959687..0000000
--- a/fer/ocn/air_temp.F
+++ /dev/null
@@ -1,132 +0,0 @@
-      SUBROUTINE AIR_TEMP ( sst, msst, cair, mcair, air, mair )
-
-*
-*
-*  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. 
-*
-*
-* compute air temperature: either climatological field (unmodified)
-*			   or SST-const south of j=91 and climatol. to the north
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 4/12/88
-* revision 0.1 - 7/2/88  - allow multiple air temp climatologies
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations
-
-#ifdef unix
-	include 'ferret.parm'
-	include 'tmap_dims.parm'
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xdset_parms.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'TMAP_FORMAT:TMAP_DIMS.PARM'
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XDSET_PARMS.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	mair, msst, mcair
-	REAL     sst( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		cair( m2lox:m2hix,m2loy:m2hiy,            m2lot:m2hit ),
-     .		 air( m3lox:m3hix,m3loy:m3hiy,            m3lot:m3hit )
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, l, dset
-	REAL	bad_cair, bad_air, bad_sst, dairt
-
-* --- end of introductory code ---
-* initialize
-	dset    = mr_data_set( mair )
-
-* limits for calculation
-	i_lo = mr_lo_s1(mair)
-	i_hi = mr_hi_s1(mair)
-	j_lo = mr_lo_s2(mair)
-	j_hi = mr_hi_s2(mair)
-
-* flag for bad/missing data
-	bad_cair  = mr_bad_data( mcair )
-	bad_air   = mr_bad_data( mair )
-	bad_sst   = mr_bad_data( msst )
-
-* constant air/sst temperature difference
-	dairt = dp_delta_air_sst( dset )
-
-
-	IF ( .NOT.dp_const_air_sst(dset) ) THEN
-
-* climatological air temp
-	   DO 100 l = mr_lo_s4(mair), mr_hi_s4(mair)
-	   DO 100 j = j_lo, j_hi
-	   DO 100 i = i_lo, i_hi
-
-	      IF ( cair(i,j,l) .EQ. bad_cair ) THEN
-	         air(i,j,l) = bad_air
-	      ELSE
-	         air(i,j,l) = cair(i,j,l)
-	      ENDIF
-
- 100	   CONTINUE
-
-	ELSE
-* constant air-sst difference in south, climatology in north
-	   DO 200 l = mr_lo_s4(mair), mr_hi_s4(mair)
-	   DO 200 j = j_lo, j_hi
-	   DO 200 i = i_lo, i_hi
-
-	      IF ( j .LT. 91 ) THEN
-	         IF ( sst(i,j,1,l) .EQ. bad_sst ) THEN
-	            air(i,j,l) = bad_air
-	         ELSE
-	            air(i,j,l) = sst(i,j,1,l) - dairt
-	         ENDIF
-	      ELSE
-	         IF ( cair(i,j,l) .EQ. bad_cair ) THEN
-	            air(i,j,l) = bad_air
-	         ELSE
-	            air(i,j,l) = cair(i,j,l)
-	         ENDIF
-	      ENDIF
-
- 200	   CONTINUE
-
-	ENDIF
-	RETURN
-	END
diff --git a/fer/ocn/calc_cvar.F b/fer/ocn/calc_cvar.F
deleted file mode 100644
index 63b4fe8..0000000
--- a/fer/ocn/calc_cvar.F
+++ /dev/null
@@ -1,740 +0,0 @@
-	SUBROUTINE CALC_CVAR( memory, cx, mrl, mres, 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. 
-*
-*
-* calculate one or more variables based on the components supplied
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V200:  7/24/89 - based on CALC_XYGRID
-*	10/16/89 - adjustable array dimensioning via NON_ARRAY_SUBSC
-*	 2/27/90 - added v2.0 CAIR
-*		 - and made it able to handle unspecified result region limits
-*	 3/13/90 - fixed subsc. err. in QAD (et.al.) with unspec lims
-*	 5/15/90 - special unknown subscript checks for AIR components
-* V312: 5/94 - array "memory" as a calling argument
-* V320: 12/29/94 - use SPLIT_LIST to redirect tty output for GUI
-* V685 *acm*  6/13 Increase nominal length of abstract axis
-* V69+ *acm*  9/14 Ticket 1758. Memory request uses number of blocks not words
-
-* calling arguments:
-* inp	cx	- "context" of the desired result (variable,data set and region)
-* inp	mrl	- list of memory variable numbers for the 
-*			  component variables of the calculation
-* out	mres	- memory variable number of requested result
-
-	include 'tmap_dims.parm'
-	include	'ferret.parm'
-	include	'errmsg.parm'
-	include	'instance_table.parm'
-	include	'gfdl.parm'
-	include	'xvariables.cmn'
-	include	'xcalc_vars.cmn'
-	include	'xprog_state.cmn'
-	include	'xcontext.cmn'
-
-	INTEGER		max_components
-	PARAMETER     ( max_components = 20 )
-
-* calling argument declarations:
-	INTEGER		cx, mrl( max_components ), mres, status
-	REAL	memory( mem_blk_size, max_mem_blks )
-
-* internal variable declarations:
-	LOGICAL		HOURLY_DATA, chg(4), unk(4), reg, two_results
-	INTEGER		CGRID_SIZE, MGRID_SIZE, CGRID_AXIS, MR_DIM_LEN,
-     .			nmr, mxtra, cx_xtra, cx_lrg, grid_size, temp_grid_size,
-     .			var, ncomp, icomp, iend, k, i, idim, mr, fp, grid,
-     .			temp_start_blk, temp_nblks, dlo, dhi, grid_blocks,
-     .			loest_ss, hiest_ss, res_ss_lo(4), res_ss_hi(4)
-	REAL		dt
-	REAL*8		TM_WORLD
-
-* for diagnostic output:
-	CHARACTER*4	VAR_CODE
-	CHARACTER*132	diag_buff
-	DATA		diag_buff(1:9) / '-->using:' /
-
-* remove special codes from variable to compute
-	var = cx_variable( cx )
-	IF ( var .GT. pcv_spec_flg ) var = var - pcv_spec_flg
-	cx_variable( cx ) = var
-
-* initialize some stuff
-	two_results = cvar_num_results( var ) .GT. 1	! only 2 or 1 allowed
-	ncomp  = cvar_frame_length( var )
-	grid   = cx_grid( cx )
-	DO 1 idim = 1, 4
-	res_ss_lo(idim) = 0
-	res_ss_hi(idim) = 9999999
-	unk( idim ) = .FALSE.
- 1	chg( idim ) = .FALSE.
-
-* diagnostic output ?
-	IF ( mode_diagnostic ) THEN
-	   diag_buff = '--> '//VAR_CODE( cat_calc_var, var )//' from: '
-	   iend = 15
-	   DO 2 icomp = 1, cvar_frame_length( var )
-	      iend = iend + 5
-	      mr = mrl( icomp )
-	      WRITE ( diag_buff( iend-4:iend ), '(1X,A)' )
-     .			VAR_CODE(  mr_category(mr),mr_variable(mr) )
- 2	   CONTINUE
-	   CALL SPLIT_LIST( pttmode_ops, ttout_lun, diag_buff, iend )
-	ENDIF
-
-* shrink requested dimensions to match smallest available component
-	fp = cvar_frame_start (var)		! frame pointer
-	DO 6 icomp = 1, ncomp
-	   fp = fp + 1
-	   mr = mrl( icomp )
-	   IF ( mr .EQ. dummy_mr ) GOTO 6
-	   DO 4 idim = 1, 4
-	      IF ( CGRID_AXIS( idim, cx ) .EQ. mnormal ) GOTO 4
-	      IF ( mr_lo_ss( mr, idim ) .EQ. unspecified_int4 ) GOTO 4
-	      CALL GRID_SUBSCRIPT_EXTREMES ( loest_ss, hiest_ss, grid, idim )
-	      dlo = cv_lo_ds(fp,idim)
-	      dhi = cv_hi_ds(fp,idim)
-	      IF ( idim.EQ.T_dim .AND. dlo.GT.pcv_hourly_flg ) THEN
-	         dlo = 0
-	         dhi = 0
-	         IF ( HOURLY_DATA( grid ) ) dlo = -1
-	      ENDIF
-* ... 5/90: air temp is special because it sometimes uses regridded CAIR
-* ... if it gets here with t_dim unspecified in the SST component
-* ... it must be a non-regridded case (note: mr(cair)-->dummy in this case)
-	      IF ( var .EQ. pair ) THEN
-	         IF ( idim .EQ. t_dim ) THEN
-	            IF ( cx_lo_ss(cx,idim) .EQ. unspecified_int4 ) THEN
-	               res_ss_lo(idim) = mr_lo_ss(mr,idim)
-	               res_ss_hi(idim) = mr_hi_ss(mr,idim)
-	               chg( idim ) = .TRUE.
-	               unk( idim ) = .TRUE.
-	               GOTO 4
-	            ENDIF
-	         ENDIF
-	      ENDIF
-* ... fill in unspecified limits (2/90) - fixed QAD error 3/90
-	      IF ( cx_lo_ss(cx,idim) .EQ. unspecified_int4 ) THEN
-	         res_ss_lo(idim) = MAX( res_ss_lo(idim),
-     .					mr_lo_ss(mr,idim) - dlo )
-	         res_ss_hi(idim) = MIN( res_ss_hi(idim),
-     .					mr_hi_ss(mr,idim) - dhi )
-	         chg( idim ) = .TRUE.
-	         unk( idim ) = .TRUE.
-	         GOTO 4
-	      ENDIF
-* ... trim limits to available source data
-	      IF ( cx_lo_ss(cx,idim) .NE. loest_ss
-     .	     .AND. cx_lo_ss(cx,idim)+dlo .LT. mr_lo_ss(mr,idim) ) THEN
-	         cx_lo_ss(cx,idim) = mr_lo_ss(mr,idim) - dlo
-	         chg( idim ) = .TRUE.
-	      ENDIF
-	      IF ( cx_hi_ss(cx,idim) .NE. hiest_ss
-     .	     .AND. cx_hi_ss(cx,idim)+dhi .GT. mr_hi_ss(mr,idim) ) THEN
-	         cx_hi_ss(cx,idim) = mr_hi_ss(mr,idim) - dhi
-	         chg( idim ) = .TRUE.
-	      ENDIF
- 4	   CONTINUE
- 6	CONTINUE
-	DO 8 idim = 1, 4
-	   IF ( unk(idim) ) THEN
-* ... fill unspecified result limits with the amount of component available
-	      cx_lo_ss(cx,idim) = res_ss_lo(idim)
-	      cx_hi_ss(cx,idim) = res_ss_hi(idim)
-	   ENDIF
-	   IF ( chg(idim) ) THEN
-	      cx_by_ss(idim,cx) = .TRUE.
-	      CALL CONFINE_AXIS( idim, cx, status )
-	      IF ( status .NE. ferr_ok ) RETURN
-	      CALL FLESH_OUT_AXIS( idim, cx, status )	
-	      IF ( status .NE. ferr_ok ) GOTO 5000
-	   ENDIF
- 8	CONTINUE
-
-* create another context in case result must be larger that requested size
-* (for example baroclinic pressure must always be computed from Z=0 even if
-*  it is requested only at depth)
-	CALL STACK_PTR_UP( cx_stack_ptr, max_context, status )
-	IF ( status .NE. ferr_ok ) RETURN
-	cx_lrg = cx_stack_ptr
-	CALL TRANSFER_CONTEXT( cx, cx_lrg )
-
-* Z range to start at K=1 for components of baroclinic pres. and W
-	IF ( var.EQ.pdpdx  .OR. var.EQ.pdpdy
-     .	.OR. var.EQ.pw_u   .OR. var.EQ.pw_t  ) THEN
-	   DO 9 icomp = 1, ncomp
-	      mr = mrl( icomp )
-	      IF ( mr_lo_ss( mr, z_dim ) .EQ. unspecified_int4 ) GOTO 9
-	      IF ( mr_lo_ss( mr, z_dim ) .NE. 1 ) CALL ERRMSG
-     .		( ferr_out_of_range, status,
-     .		'baroclinic pressure requires surface data', *5000 )
- 9	   CONTINUE
-* ... result will go to k=1, also
-	   cx_lo_ss( cx_lrg, z_dim ) = 1
-	   cx_lo_ww(z_dim, cx_lrg) = TM_WORLD( 1, cx_grid(cx_lrg),
-     .					       z_dim, box_lo_lim )
-	ENDIF
-	grid_size = CGRID_SIZE( cx_lrg )
-
-* reserve memory space for result
-	CALL CREATE_MEM_VAR( cx_lrg, mres, status )
-	IF ( status .NE. ferr_ok ) RETURN
-	nmr = ncomp + 1
-	IF ( isp+nmr .GT. max_intrp ) CALL ERRMSG
-     .				( ferr_stack_ovfl, status, ' ',*5200 )
-	mrl(nmr) = mres	! put it in the list fot NON_ARRAY_SUBSC
-
-* create another context in case 2 results are computed at once
-	IF ( two_results ) THEN
-	   CALL STACK_PTR_UP( cx_stack_ptr, max_context, status )
-	   IF ( status .NE. ferr_ok ) RETURN
-	   cx_xtra = cx_stack_ptr
-	   CALL TRANSFER_CONTEXT( cx_lrg, cx_xtra )
-	   CALL CREATE_MEM_VAR( cx_xtra, mxtra, status )
-	   IF ( status .NE. ferr_ok ) RETURN
-	   nmr = nmr + 1
-	   IF ( isp+nmr .GT. max_intrp ) CALL ERRMSG
-     .				( ferr_stack_ovfl, status, ' ',*5100 )
-	   mrl(nmr) = mxtra	! put it in the list fot NON_ARRAY_SUBSC
-	ENDIF
-
-* extract all the necessary dimensions to unsubscripted variables
-	CALL NON_ARRAY_SUBSC( mrl, nmr )
-
-* see BLOCK DATA XVARIABLES_DATA for lists of components in each calculation
-	GOTO (	 10, 20, 30, 40, 50, 60, 70, 80, 90,100,
-     .		110,120,130,140,150,160,170,180,190,200,
-     .		210,220,230,240,250,260,270,280,290,300,
-     .		310,320,330,340,350,360,370,380,390,400,
-     .		410,420,430,440,450,460,470,480,490,500,
-     .		510,520,530,540,550,560,570,580,590		 ) var
-
-* QCDZ - vertical heat diffussion coefficient
-* ... also computes and stores PCDZ ...
- 10	cx_variable( cx_xtra ) = ppcdz
-	cx_grid( cx_xtra ) = cvar_grid( ppcdz, cx_data_set(cx) )
-	CALL RE_ASSIGN_VARIABLE( mxtra, cx_xtra )
-	CALL PROF (
-     .		km					, ! k max
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! u
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! v
-     .		memory( 1, mr_blk1( mrl(3) ) ), mrl(3)	, ! rho0
-     .		memory( 1, mr_blk1( mxtra  ) ), mxtra	, ! pcdz
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! qcdz
-	GOTO 1900
-
-* PCDZ - vertical momentum diffussion coefficient
-* ... also computes and stores QCDZ ...
- 20	cx_variable( cx_xtra ) = pqcdz
-	cx_grid( cx_xtra ) = cvar_grid( pqcdz, cx_data_set(cx) )
-	CALL RE_ASSIGN_VARIABLE( mxtra, cx_xtra )
-	CALL PROF (
-     .		km					, ! k max
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! u
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! v
-     .		memory( 1, mr_blk1( mrl(3) ) ), mrl(3)	, ! rho0
-     .		memory( 1, mr_blk1( mres   ) ), mres	, ! pcdz
-     .		memory( 1, mr_blk1( mxtra  ) ), mxtra	) ! qcdz
-	GOTO 1900
-
-* RHO0 - density referenced to surface ( compression effects neglected )
- 30	CALL STATED (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	,	  ! temp
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, 	  ! salt
-     .		memory( 1, mr_blk1( mres   ) )	, mres		) ! rho0
-	GOTO 2000
-
-* QDFZ - vertical heat diffussion
- 40	CALL Z_HDIFFUS (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! temp
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! qvdc
-     .		memory( 1, mr_blk1( mrl(3) ) ), mrl(3)	, ! qflx
-     .		memory( 1, mr_blk1( mres   ) )	, mres	) ! qdfz
-	GOTO 2000
-
-* QDFH - horizontal heat diffussion
- 50	CALL XY_HDIFFUS (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! temp
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! qdfh
-	GOTO 2000
-
-* QADX - zonal heat advection
- 60	CALL EW_HADVEC (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! temp
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! u   
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! qadx
-	GOTO 2000
-
-* QADY - meridianal heat advection
- 70	CALL SN_HADVEC (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! temp
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! v   
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! qady
-	GOTO 2000
-
-* QADZ - vertical heat advection
- 80	CALL Z_HADVEC (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! temp
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! w   
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! qadz
-	GOTO 2000
-
-* QAD  - total heat advection
- 90	CALL COPY_GRID(
-     .	  memory( 1, mr_blk1(mrl(1)) ) , mrl(1),		! qadx
-     .	  memory( 1, mr_blk1( mres   )), mres	)		! qad
-	CALL ADD_2_GRIDS(
-     .	  memory( 1, mr_blk1(mrl(2)) ) , mrl(2),		! qady
-     .	  memory( 1, mr_blk1( mres   )), mres	 )		! qad
-	CALL ADD_2_GRIDS(
-     .	  memory( 1, mr_blk1(mrl(3)) ) , mrl(3),		! qadz
-     .	  memory( 1, mr_blk1( mres   )), mres 	 )		! qad
-	GOTO 2000	
-
-* QDF  - total heat diffussion
- 100	CALL COPY_GRID(
-     .	  memory( 1, mr_blk1(mrl(1)) ) , mrl(1),		! qdfh
-     .	  memory( 1, mr_blk1( mres   )), mres 	 )		! qdf
-	CALL ADD_2_GRIDS(
-     .	  memory( 1, mr_blk1(mrl(2)) ),  mrl(2),		! qdfz
-     .	  memory( 1, mr_blk1( mres   )), mres	 )		! qdf
-	GOTO 2000
-
-* QEVA - surface evaporative cooling
-* ... also computes and stores QSEN ...
- 110	cx_variable( cx_xtra ) = pqsen
-	CALL RE_ASSIGN_VARIABLE( mxtra, cx_xtra )
-	CALL HFLUX (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! tau
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! sst
-     .		memory( 1, mr_blk1( mrl(3) ) ), mrl(3)	, ! air
-     .		memory( 1, mr_blk1( mxtra  ) ), mxtra	, ! qsen
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! qeva
-* ... convert units ...
-	CALL MULT_GRID( grid_size, memory(1,mr_blk1( mxtra  )), q2wattm2 )
-	CALL MULT_GRID( grid_size, memory(1,mr_blk1( mres   )), q2wattm2 )
-	GOTO 1900
-
-* TAU  - wind stress magnitude
- 120	CALL WIND_STRESS (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	,	! taux
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	,	! tauy
-     .		memory( 1, mr_blk1( mres   ) ), mres	)	! tau
-	GOTO 2000
-
-* QSEN - surface sensible heat
-* ... also computes and stores QEVA ...
- 130	cx_variable( cx_xtra ) = pqeva
-	CALL RE_ASSIGN_VARIABLE( mxtra, cx_xtra )
-	CALL HFLUX (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! tau
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! sst
-     .		memory( 1, mr_blk1( mrl(3) ) ), mrl(3)	, ! air
-     .		memory( 1, mr_blk1( mres   ) ), mres	, ! qsen
-     .		memory( 1, mr_blk1( mxtra  ) ), mxtra	) ! qeva
-* ... convert units ...
-	CALL MULT_GRID( grid_size, memory(1,mr_blk1( mxtra  )), q2wattm2 )
-	CALL MULT_GRID( grid_size, memory(1,mr_blk1( mres   )), q2wattm2 )
-	GOTO 1900
-
-* QRAD - surface radiative heat
- 140	CALL HRADIATION( 
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	,	! sst
-     .		memory( 1, mr_blk1( mres   ) ), mres	)	! qrad
-*    ... convert units
-	CALL MULT_GRID( grid_size, memory(1, mr_blk1( mres   )), q2wattm2 )
-	GOTO 2000
-
-* QFLX  - total heat flux
- 150	CALL COPY_GRID(
-     .	  memory( 1, mr_blk1(mrl(1)) )  , mrl(1) , 			! qeva
-     .	  memory( 1, mr_blk1( mres   ) ), mres	  )			! qflx
-	CALL ADD_2_GRIDS(
-     .	  memory( 1, mr_blk1(mrl(2)) )  , mrl(2) , 			! qsen
-     .	  memory( 1, mr_blk1( mres   ) ), mres	  )			! qflx
-	CALL ADD_2_GRIDS(
-     .	  memory( 1, mr_blk1(mrl(3)) )  , mrl(3) , 			! qrad
-     .	  memory( 1, mr_blk1( mres   ) ), mres	  )			! qflx
-	GOTO 2000
-
-* RHO - true density
- 160	CALL STATE (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	,		! temp
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	,		! salt
-     .		memory( 1, mr_blk1( mres   ) ), mres		)	! rho
-	GOTO 2000
-
-* DPDX - x derivative of baroclinic pressure
-* ... also computes and stores DPDY ...
- 170	cx_variable( cx_xtra ) = pdpdy
-	CALL RE_ASSIGN_VARIABLE( mxtra, cx_xtra )
-	CALL GRAD_P_CLINIC (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! rho 
-     .		memory( 1, mr_blk1( mres   ) ), mres	, ! dpdx
-     .		memory( 1, mr_blk1( mxtra  ) ), mxtra	) ! dpdy
-	GOTO 1900
-
-* DPDY - y derivative of baroclinic pressure
-* ... also computes and stores DPDX ...
- 180	cx_variable( cx_xtra ) = pdpdx
-	CALL RE_ASSIGN_VARIABLE( mxtra, cx_xtra )
-	CALL GRAD_P_CLINIC (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! rho 
-     .		memory( 1, mr_blk1( mxtra  ) ), mxtra	, ! dpdx
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! dpdy
-	GOTO 1900
-
-* W_U - vertical velocity computed on the uv grid (still on w grid vertically)
- 190	CALL W_ON_UV (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! fuw
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! fvn
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! w_u
-	GOTO 2000
-
-* UAVZ - vertically averaged zonal velocity calculated from PSI
-* ... also computes and stores VAVZ ...
- 200	cx_variable( cx_xtra ) = pvavz
-	CALL RE_ASSIGN_VARIABLE( mxtra, cx_xtra )
-	CALL U_FROM_PSI (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! psi
-     .		memory( 1, mr_blk1( mres   ) ), mres	, ! uavz
-     .		memory( 1, mr_blk1( mxtra  ) ), mxtra	) ! vavz
-	GOTO 1900
-
-* VAVZ - vertically averaged meridional velocity calculated from PSI
-* ... also computes and stores UAVZ ...
- 210	cx_variable( cx_xtra ) = puavz
-	CALL RE_ASSIGN_VARIABLE( mxtra, cx_xtra )
-	CALL U_FROM_PSI (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! psi
-     .		memory( 1, mr_blk1( mxtra  ) ), mxtra	, ! uavz
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! vavz
-	GOTO 1900
-
-* FUW - zonal advection coefficient ( internal variable for W_U and *ADX )
- 220	CALL FUW (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! psi
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! uavz
-     .		memory( 1, mr_blk1( mrl(3) ) ), mrl(3)	, ! u
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! fuw
-	GOTO 2000
-
-* FVN - meridional advection coefficient ( internal variable for W_U and *ADY )
- 230	CALL FVN (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! psi
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! vavz
-     .		memory( 1, mr_blk1( mrl(3) ) ), mrl(3)	, ! v
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! fvn
-	GOTO 2000
-
-* UADX - EW advection of U
- 240	CALL VEL_ADV_EW (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! fuw
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! u
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! uadx
-	GOTO 2000
-
-* UADY - NS advection of U
- 250	CALL VEL_ADV_NS (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! fvn
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! u
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! uady
-	GOTO 2000
-
-* UADZ - vertical advection of U
- 260	CALL VEL_ADV_Z(
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! u
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! w
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! uadz
-	GOTO 2000
-
-* VADX - EW advection of V
-* ... calculation is identical to UADX but with different components
- 270	GOTO 240
-
-* VADY - NS advection of V
-* ... calculation is identical to UADY but with different components
- 280	GOTO 250
-
-* VADZ - vertical advection of V
-* ... calculation is identical to UADZ but with different components
- 290	GOTO 260
-
-* UDFH - horizontal diffusion of U
- 300	CALL VEL_DIF_XY(
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! u
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! v
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! udfh
-	GOTO 2000
-
-* UDFZ - vertical diffusion of U
- 310	CALL VEL_DIF_Z(
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! pcdz
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! u
-     .		memory( 1, mr_blk1( mrl(3) ) ), mrl(3)	, ! ubwi
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! udfz
-	GOTO 2000
-
-* VDFH - horizontal advection of V
-* ... calculation is identical to UDFH but with different components
- 320	GOTO 300
-
-* VDFZ - vertical advection of V
-* ... calculation is identical to UDFZ but with different components
- 330	GOTO 310
-
-* UCOI - implicit calculation of Coriolis effect on U
- 340	CALL ERRMSG(ferr_unknown_variable,status,
-     .				'UCOI no longer implemented',*5000)
-* VCOI - implicit calculation of Coriolis effect on V
- 350	CALL ERRMSG(ferr_unknown_variable,status,
-     .					'UCOI no longer implemented',*5000)
-
-* UBPI - Grad( Baroclinic pressure ) effect on U
- 360	CALL VEL_BY_GRAD_P (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! dpdx
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! ubpi
-	GOTO 2000
-
-* VBPI - Grad( Baroclinic pressure ) effect on V
-* ... calculation is identical to UBPI but with different components
- 370	GOTO 360
-
-* UBWI - wind stress effect on U
- 380	CALL VEL_BY_WIND (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! taux
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! ubwi
-	GOTO 2000
-
-* VBWI - wind stress effect on V
-* ... calculation is identical to UBWI but with different components
- 390	GOTO 380
-
-* UCOE - explicit calculation of Coriolis effect on U
-* ... also computes and stores VCOE ...
- 400	cx_variable( cx_xtra ) = pvcoe
-	CALL RE_ASSIGN_VARIABLE( mxtra, cx_xtra )
-	temp_grid_size = MGRID_SIZE( mrl(1) )	! working space for "AIR"
-
-* COMPUTE # BLOCKS NEEDED
-	grid_blocks = ( temp_grid_size + mem_blk_size - 1 ) / mem_blk_size
-	CALL GET_MEMORY( temp_grid_size, grid_blocks,temp_start_blk,temp_nblks,status )
-	IF ( status .NE. ferr_ok ) GOTO 5100
-	CALL EXPL_CORIOLIS( 
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! u
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! v
-     .		memory( 1, mr_blk1( mres   ) ), mres	, ! ucoe
-     .		memory( 1, mr_blk1( mxtra  ) ), mxtra	) ! vcoe
-	CALL FREE_MEMORY( temp_start_blk, temp_nblks )
-	GOTO 1900
-
-* VCOE - explicit calculation of Coriolis effect on V
-* ... also computes and stores UCOE ...
- 410	cx_variable( cx_xtra ) = pucoe
-	CALL RE_ASSIGN_VARIABLE( mxtra, cx_xtra )
-	temp_grid_size = MGRID_SIZE( mrl(1) )	! working space for "AIR"
-	grid_blocks = ( temp_grid_size + mem_blk_size - 1 ) / mem_blk_size
-	CALL GET_MEMORY( temp_grid_size, grid_blocks,temp_start_blk,temp_nblks,status )
-	IF ( status .NE. ferr_ok ) GOTO 5100
-	CALL EXPL_CORIOLIS( 
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! u
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! v
-     .		memory( 1, mr_blk1( mxtra  ) ), mxtra	, ! ucoe
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! vcoe
-	CALL FREE_MEMORY( temp_start_blk, temp_nblks )
-	GOTO 1900
-
-* UAD - total advection of zonal velocity
-* ... uses identical code to QAD ...
- 420	GOTO 90
-
-* VAD - total advection of merional velocity
-* ... uses identical code to QAD ...
- 430	GOTO 90
-
-* UDF - total diffusion of zonal velocity
-* ... uses identical code to QDF ...
- 440	GOTO 100
-
-* VDF - total diffusion of merional velocity
-* ... uses identical code to QDF ...
- 450	GOTO 100
-
-* DUDT - centered time derivative of U
- 460	IF ( MR_DIM_LEN(t_dim, mrl(1)).LE.2 ) CALL ERRMSG
-     .	( ferr_limits, status, 'insufficient T axis data for '
-     .				//VAR_CODE(cat_calc_var,var), *5200 )
-	CALL T_DERIV( 
-     .	  memory( 1, mr_blk1(mrl(1)) ) , mrl(1),		! u
-     .	  memory( 1, mr_blk1( mres   )), mres  ,		! difference
-     .    dt, reg )
-* ... convert per hour to per month
-	CALL MULT_GRID( grid_size, memory(1, mr_blk1(mres)), 730. )
-* ... store information about accuracy of calculation
-	IF ( reg ) THEN
-	   mr_trans_arg( t_dim, mres ) = dt / 2.
-	ELSE
-	   mr_trans_arg( t_dim, mres ) = bad_val4
-	ENDIF
-	GOTO 2000	
-
-* DVDT - time derivative of V
-* ... uses identical code to DUDT ...
- 470	GOTO 460
-
-* DWDT - time derivative of W
-* ... uses identical code to DUDT ...
- 480	GOTO 460
-
-* DTDT - time derivative of TEMP
-* ... uses identical code to DUDT ...
- 490	GOTO 460
-
-* UBPS - monthly dU due to surface pressure effects
-* ... UBPS = DUDT - ( UDF + UAD + UCOE + UBPI )
-* ... we will use a kludge to get around 3D components to a 2D result
- 500    mr_lo_ss( mres, z_dim ) = 1	! kludge - make it appear 3D
-	mr_hi_ss( mres, z_dim ) = 1	! kludge
-	CALL COPY_GRID(
-     .	  memory( 1, mr_blk1(mrl(1)) ) , mrl(1) , 		! udf
-     .	  memory( 1, mr_blk1( mres   )), mres	  )		! udf
-	CALL ADD_2_GRIDS(
-     .	  memory( 1, mr_blk1(mrl(2)) ) , mrl(2) , 		! uad
-     .	  memory( 1, mr_blk1( mres   )), mres	  )		! udf+uad
-	CALL ADD_2_GRIDS(
-     .	  memory( 1, mr_blk1(mrl(3)) ) , mrl(3),		! ucoe
-     .	  memory( 1, mr_blk1( mres   )), mres 	 )		! udf+uad+ucoe
-	CALL ADD_2_GRIDS(
-     .	  memory( 1, mr_blk1(mrl(4)) ) , mrl(4),		! ubpi
-     .	  memory( 1, mr_blk1( mres   )), mres 	 )		! udf+uad+u...
-	CALL SUB_2_GRIDS(
-     .	  memory( 1, mr_blk1(mrl(5)) ) , mrl(5),		! dudt 
-     .	  memory( 1, mr_blk1( mres   )), mres	,		! udf+uad+u...
-     .	  memory( 1, mr_blk1( mres   )), mres	 )		! ubps
-	mr_lo_ss( mres, z_dim ) = unspecified_int4	! kludge - back to 2D
-	mr_hi_ss( mres, z_dim ) = unspecified_int4	! kludge
-* ... store information about accuracy of derivative in calculation
-	mr_trans_arg( t_dim, mres ) = 	mr_trans_arg( t_dim, mrl(5) )
-	GOTO 2000	
-
-* VBPS - monthly dV due to surface pressure effects
-* ... uses identical code to UBPS ...
- 510	GOTO 500
-
-* SALI - salinity in parts per thousand
-* ... from "SALT" in (PPT-35)/1000
- 520	CALL COPY_GRID(
-     .	  memory( 1, mr_blk1(mrl(1)) ) , mrl(1),		! salt
-     .	  memory( 1, mr_blk1( mres   )), mres  )
-	CALL MULT_GRID   ( grid_size, memory(1, mr_blk1( mres )), 1000. )
-	CALL ADD_C_2_GRID( grid_size, memory(1, mr_blk1( mres )), 35. )
-	GOTO 2000
-
-* DENS - density in gm-cm**3
-* ... from "RHO" which is "normalized"
- 530	CALL KNUDSEN(
-     .	  memory( 1, mr_blk1(mrl(1)) ) , mrl(1),		! temp
-     .	  memory( 1, mr_blk1(mrl(2)) ) , mrl(2),		! salt
-     .	  memory( 1, mr_blk1( mres   )), mres	 )		! dens
-
-	GOTO 2000
-
-* UBP  - U change caused by baroclinic and barotropic pressure
-* ... special routine used to replicate 2D UBPS into 3D result
- 540	CALL COPY_2D_TO_3D(
-     .	  memory( 1, mr_blk1(mrl(2)) ) , mrl(2),		! ubps
-     .	  memory( 1, mr_blk1( mres   )), mres	 )		! ubp
-	CALL ADD_2_GRIDS(
-     .	  memory( 1, mr_blk1(mrl(1)) ) , mrl(1),		! ubpi
-     .	  memory( 1, mr_blk1( mres   )), mres	 )		! ubp
-	GOTO 2000
-
-* VBP  - V change caused by baroclinic and barotropic pressure
-* ... uses identical code to UBP ...
- 550	GOTO 540
-
-* CMSK - convective adjustment mask
- 560	CALL CONV_ADJ_MASK (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! temp
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! salt
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! w_u
-	GOTO 2000
-
-* W_T - vertical velocity computed on the ts grid (still on w grid vertically)
- 570	CALL W_ON_TS (
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! u
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! v
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! w_u
-	GOTO 2000
-
-* CAIR - climatological air temperature regridded from monthly data
- 580	CALL COPY_GRID(
-     .	  memory( 1, mr_blk1(mrl(1)) ) , mrl(1),	! regridded airt
-     .	  memory( 1, mr_blk1( mres   )), mres	)	! cair
-	GOTO 2000
-
-* AIR - air temperature taylored to data set
- 590	CALL AIR_TEMP( 
-     .		memory( 1, mr_blk1( mrl(1) ) ), mrl(1)	, ! sst
-     .		memory( 1, mr_blk1( mrl(2) ) ), mrl(2)	, ! cair
-     .		memory( 1, mr_blk1( mres   ) ), mres	) ! air
-	GOTO 2000
-
-* ----------------------------------------------------------------------
-* 2 results were computed.  Catalog the extra one
- 1900	mr_protected( mxtra ) = mr_not_protected
-	CALL MR_NOT_IN_USE( mxtra )
-	cx_stack_ptr = cx_stack_ptr - 1
-
-* free cx_lrg and cx_xtra space
- 2000	cx_stack_ptr = cx_stack_ptr - 1
-
-* flag that the components are no longer in use
-	DO 2010 icomp = 1, ncomp
- 2010	CALL MR_NOT_IN_USE( mrl(icomp) )
-
-* success
-	RETURN
-
-* error exit
- 5000	RETURN 
- 5100	CALL DELETE_VARIABLE( mxtra )
- 5200	CALL DELETE_VARIABLE( mres )
-	RETURN
-	END
diff --git a/fer/ocn/conv_adj_mask.F b/fer/ocn/conv_adj_mask.F
deleted file mode 100644
index ce89063..0000000
--- a/fer/ocn/conv_adj_mask.F
+++ /dev/null
@@ -1,160 +0,0 @@
-	SUBROUTINE  CONV_ADJ_mask( t    , mt,
-     .				   s    , ms,
-     .				   cmask, mcmask )
-
-*
-*
-*  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. 
-*
-*
-* compute a mask with bad data flags indicating regions of convective adjustment
-* and 1's indicating regions without it
-* note: at K=1 this algorithm fails to detect a pass #1 convective adjustment
-*	that gets wiped out by pass #2 - ie k=1 is mixed with  k=2 on pass one,
-*	then k=2 is mixed with k=3 on pass #2 --> K=1 and K=2 are unequal at the
-*	end
-*	At K=km it will succeed or fail depending on whether km is odd or even
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 -7/22/87
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-
-* calling argument declarations:
-	INTEGER	mt, ms, mcmask
-
-* subscript ranges from memory variable table ...
-	REAL        t( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		    s( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		cmask( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit )
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, k, l
-	REAL	bad_t, bad_cmask
-
-****************   205 model code   ******************************************
-******************************************************************************
-* 3199 C   FIND DENSITY FOR STABILITY DETERMINATION
-* 3200 C
-* 3201       DO 965 KS=1,2
-* 3202       CALL STATEC(TA,TA(1,1,2),RHON,TDIF,TDIF(1,1,2),KS)
-* 3203 C
-* 3204 C   CONVECTIVELY ADJUST ADJACENT PAIRS OF BOXES IF GRAVITATIONALLY UNSTA
-* 3205 C
-* 3206       DO 960 M=1,NT1
-* 3207       TEMP(1,1;IMT*KM)=0.5*C2DZ2D(1,1;IMT*KM)*TA(1,1,M;IMT*KM)
-* 3208       LN=(2*((KMM1-KS)/2)+1)*IMT
-* 3209       WHERE (KALTBV(1,KS,KS;LN).AND.RHON(1,KS;LN).GT.RHON(1,KS+1;LN))
-* 3210         TA(1,KS,M;LN)=(TEMP(1,KS;LN)+TEMP(1,KS+1;LN))
-* 3211      *                 *DZZ2R2D(1,KS+1;LN)
-* 3212         TA(1,KS+1,M;LN)=TA(1,KS,M;LN)
-* 3213       ENDWHERE
-* 3214  960  CONTINUE
-* 3215  965  CONTINUE
-*****************************************************************************
-* --- end of introductory code ---
-
-* limits for calculation
-	i_lo = mr_lo_s1(mcmask)
-	i_hi = mr_hi_s1(mcmask)
-	j_lo = mr_lo_s2(mcmask)
-	j_hi = mr_hi_s2(mcmask)
-
-* flag for bad/missing data
-	bad_t    = mr_bad_data( mt )
-	bad_cmask = bad_val4
-
-	DO 2000 l = mr_lo_s4(mcmask), mr_hi_s4(mcmask)
-	DO 2000 k = mr_lo_s3(mcmask), mr_hi_s3(mcmask)
-
-* preset entire mask to a value of 1.0
-	DO 10 j = j_lo, j_hi
-	DO 10 i = i_lo, i_hi
- 10	cmask(i,j,k,l) = 1.0
-
-* since convective adjustment is computed in 2 passes we presume a point has
-* been convectively adjusted in this time step if its density is identical to
-* the density immediately above or below
-
-	IF ( k .GT. 1 ) THEN
-* ... check against plane above
-	   DO 200 j = j_lo, j_hi
-	      DO 100 i = i_lo, i_hi
-
-* ... only check temp for bad data - assume salt is bad at the same points
-	         IF ( t(i,j,k-1,l) .EQ. bad_t
-     .	         .OR. t(i,j,k  ,l) .EQ. bad_t ) THEN
-	            cmask(i,j,k,l) = bad_cmask
-
-	         ELSEIF (t(i,j,k,l) .EQ. t(i,j,k-1,l)
-     .	          .AND.  s(i,j,k,l) .EQ. s(i,j,k-1,l) ) THEN
-	            cmask(i,j,k,l) = bad_cmask
-
-	         ENDIF
- 100	      CONTINUE
- 200	   CONTINUE	
-	ENDIF
-
-	IF ( k .LT. km ) THEN
-* ... check against plane below
-	   DO 400 j = j_lo, j_hi
-	      DO 300 i = i_lo, i_hi
-
-* ... only check temp for bad data - assume salt is bad at the same points
-	         IF ( t(i,j,k+1,l) .EQ. bad_t
-     .	         .OR. t(i,j,k  ,l) .EQ. bad_t ) THEN
-	            cmask(i,j,k,l) = bad_cmask
-
-	         ELSEIF (t(i,j,k,l) .EQ. t(i,j,k+1,l)
-     .	          .AND.  s(i,j,k,l) .EQ. s(i,j,k+1,l) ) THEN
-	            cmask(i,j,k,l) = bad_cmask
-
-	         ENDIF
- 300	      CONTINUE
- 400	   CONTINUE	
-	ENDIF
-
- 2000	CONTINUE
-	RETURN
-	END
diff --git a/fer/ocn/cvar_context.F b/fer/ocn/cvar_context.F
deleted file mode 100644
index ae0f26a..0000000
--- a/fer/ocn/cvar_context.F
+++ /dev/null
@@ -1,243 +0,0 @@
-	SUBROUTINE CVAR_CONTEXT( def_cx, cx, com, k_eq1, 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. 
-*
-*
-* create a new variable context by combining the information pointed to by the
-* cvar table component pointer, com, with the default context, def_cx
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-
-* V200:  7/25/89 - based on INST_IJKL_CONTEXT
-* 	 2/27/90 - incorporate CAIR as a regrid on the main stack
-* 		 - and allow unspecified limits to pass through
-*Linux Port 1/97 *kob* - Added a preprocessor include for tmap_dset.parm
-*			  because it needed a preprocessor.
-#ifdef unix
-	include	'tmap_dims.parm'
-#	include	"tmap_dset.parm"
-	include	'ferret.parm'
-	include	'errmsg.parm'
-	include	'interp_stack.parm'
-	include	'instance_table.parm'
-	include	'xcontext.cmn'
-	include	'xvariables.cmn'
-	include	'xcalc_vars.cmn'
-	include	'xtext_info.cmn'
-	include	'xdset_parms.cmn'
-#else
-	INCLUDE	'TMAP_FORMAT:TMAP_DIMS.PARM'
-	INCLUDE	'TMAP_FORMAT:TMAP_DSET.PARM'
-	INCLUDE	'FERRET_CMN:FERRET.PARM'
-	INCLUDE	'FERRET_CMN:ERRMSG.PARM'
-	INCLUDE	'FERRET_CMN:INTERP_STACK.PARM'
-	INCLUDE	'FERRET_CMN:INSTANCE_TABLE.PARM'
-	INCLUDE	'FERRET_CMN:XCONTEXT.CMN'
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XCALC_VARS.CMN'
-	INCLUDE	'FERRET_CMN:XTEXT_INFO.CMN'
-	INCLUDE	'FERRET_CMN:XDSET_PARMS.CMN'
-#endif
-
-* calling argument declarations:
-	LOGICAL k_eq1
-	INTEGER	def_cx, cx, com, status
-
-* internal variable declarations:
-	LOGICAL	HOURLY_DATA, special_var, re_flesh
-	INTEGER KNOWN_GRID, CGRID_AXIS, FVAR_NUMBER, ISUBSCRIPT,
-     .		l_step, var, l_lo, idim, def_ax, com_ax,
-     .		grid, dset, cat, fvar, cairt, cairt_dset
-	REAL*8	TM_WORLD, tptinc, t, hours, tmod, t0cairt,
-     .          tclim0, tfrombc
-	CHARACTER*20	date
-
-* internal parameters:
-	REAL*8		secsperhr, hrsperyr
-	PARAMETER     ( secsperhr = 3600.D0,
-     .			hrsperyr  = 365.D0*24.D0 )
-
-* initialize with context of variable to be computed
-	CALL TRANSFER_CONTEXT( def_cx, cx )
-
-* unravel the variable internal number coding
-* (this is the fixed var # - 1=TEMP, 2=SALT, etc.)
-	var = cv_variable( com )
-	special_var = var .GT. pcv_spec_flg
-	IF ( special_var ) var = var - pcv_spec_flg
-
-* determine the data set
-	IF ( special_var .AND. var .EQ. pairt ) THEN
-	   dset = cx_data_set( def_cx )
-	   cairt      = dp_clim_air_sst( dset )		! cairt needed for calcs
-	   cairt_dset = dp_airt_dset( cairt )		! dset containing cairt
-	   IF ( cairt_dset .EQ. unspecified_int4 ) THEN
-	      GOTO 5100					! needed dset not SET
-	   ELSE
-	      dset = cairt_dset
-	   ENDIF
-	ELSE
-	   dset = cx_data_set( cx )
-	ENDIF
-	cx_data_set( cx ) = dset
-
-* find the variable number as stored in the data set, if relevant
-	IF ( cv_category( com ) .EQ. cat_calc_var ) THEN
-	   fvar = var
-	ELSE
-	   fvar = FVAR_NUMBER( dset, fvar_name_code(var) )
-	   IF ( fvar .EQ. var_name_nonexist ) GOTO 5100
-	ENDIF
-	cx_variable( cx ) = fvar
-
-* determine the variable category and defining grid for the data
-	cat = cv_category( com )
-	cx_category( cx ) = cat
-	grid = KNOWN_GRID( dset, cat, fvar )
-	cx_grid( cx ) = grid
-
-* SPACIAL AXES: X,Y,Z
-* component may be wider (or narrower) than result
-	DO 100 idim = 1, 3
-	   def_ax = CGRID_AXIS(idim,def_cx)
-	   com_ax = CGRID_AXIS(idim,cx)
-	   re_flesh = def_ax .NE. com_ax
-	   IF ( def_ax.EQ.mnormal .OR. com_ax.EQ.mnormal ) THEN
-	      IF ( def_ax .EQ. com_ax ) GOTO 100
-	      re_flesh = .TRUE.
-	      IF ( def_ax .EQ. mnormal ) THEN
-* ... 3D component of 2D var: e.g. TEMP as comp. of QEVA ... needs SST
-	         cx_lo_ss(cx,idim) = 1
-	         cx_hi_ss(cx,idim) = 1
-	      ENDIF
-* ... for 2D component of 3D var FLESH_OUT_AXIS will set limits unspecified
-* ... e.g. QFLX as comp. of QDFZ
-	   ELSEIF ( cx_lo_ss(cx,idim) .EQ. unspecified_int4 ) THEN
-* ... allow unspecified regions to pass through still unspecified 2/90
-	      re_flesh = .FALSE.
-	   ELSE
-	      IF ( cv_lo_ds( com,idim ) .NE. 0 ) THEN
-	         cx_lo_ss(cx,idim) = cx_lo_ss(cx,idim) + cv_lo_ds( com,idim )
-	         re_flesh = .TRUE.
-	      ENDIF
-	      IF ( cv_hi_ds( com,idim ) .NE. 0 ) THEN
-	         cx_hi_ss(cx,idim) = cx_hi_ss(cx,idim) + cv_hi_ds( com,idim )
-	         re_flesh = .TRUE.
-	      ENDIF
-	      IF ( idim.EQ.3 .AND. k_eq1 ) THEN
-	         IF ( cx_lo_ss(cx,idim) .NE. 1 ) THEN
-	            cx_lo_ss(cx,idim) = 1
-	            re_flesh = .TRUE.
-	         ENDIF
-	      ENDIF
-	   ENDIF
-	   IF ( re_flesh ) THEN
-	      cx_by_ss( idim,cx ) = .TRUE.
-	      CALL CONFINE_AXIS( idim, cx, status )
-	      IF ( status .NE. ferr_ok ) RETURN
-	      CALL FLESH_OUT_AXIS( idim, cx, status )
-	      IF ( status .NE. ferr_ok ) RETURN
-	   ENDIF
- 100	CONTINUE
-
-* TIME AXIS:
-* remark on "hourly_needed" below:
-* the time axes of the data sets are not in general the same as the underlying
-* time axis of the model (model integration is typically hourly, whereas data
-* sets will normally be 24 hour or 73 hour snapshots).  Some calculations, such
-* as d/dt(U) simply use the best data available - whatever is in the data set.
-* Other calculations require the exact 1 hour data to be exact.  If that data
-* is not available then the current time step (dt=0) is used as the best est.
-
-* get subscript for time step
-	re_flesh = .FALSE.
-	IF ( special_var .AND. var .EQ. pairt ) THEN
-* ... climatological air temp is just a variable in another file that
-*     needs to be regridded from its monthly axis to the time axis of this
-*     data set ( MOD(1 yr) )
-	   cx_grid(cx) = cvar_grid( pcair, cx_data_set(def_cx) )
-	   cx_unstand_grid(cx) = .TRUE.
-	   cx_regrid_trans( x_dim, cx ) = prgrd_exact
-	   cx_regrid_trans( y_dim, cx ) = prgrd_exact
-	   cx_regrid_trans( z_dim, cx ) = prgrd_exact
-	   cx_regrid_trans( t_dim, cx ) = prgrd_linear_interp
-
-* ... subscript on same axis as calling variable for all below
-	ELSEIF ( cv_lo_d4(com) .GT. pcv_hourly_flg ) THEN
-* ... special treatment of "hourly_needed" diagnostic data
-	   IF ( HOURLY_DATA( grid ) ) THEN
-* ... use 1 hr earlier for exact match of Philander/Cox code
-	      cx_lo_ss(cx,t_dim) = cx_lo_ss(cx,t_dim) - 1
-	      re_flesh = .TRUE.
-	   ENDIF
-	ELSEIF ( cx_lo_ss(cx,idim) .EQ. unspecified_int4 ) THEN
-* ... allow unspecified regions to pass through still unspecified 2/90
-	   re_flesh = .FALSE.
-	ELSE
-	   IF ( cv_lo_ds( com,t_dim ) .NE. 0 ) THEN
-	      cx_lo_ss(cx,t_dim) = cx_lo_ss(cx,t_dim) + cv_lo_d4( com )
-	      re_flesh = .TRUE.
-	   ENDIF
-	   IF ( cv_hi_ds( com,t_dim ) .NE. 0 ) THEN
-	      cx_hi_ss(cx,t_dim) = cx_hi_ss(cx,t_dim) + cv_hi_d4( com )
-	      re_flesh = .TRUE.
-	   ENDIF
-	ENDIF
-* finalize the time axis
-	IF ( re_flesh ) THEN
-	   cx_by_ss( t_dim, cx ) = .TRUE.
-	   CALL CONFINE_AXIS( t_dim, cx, status )
-	   IF ( status .NE. ferr_ok ) RETURN
-	   CALL FLESH_OUT_AXIS( t_dim, cx, status )
-	   IF ( status .NE. ferr_ok ) RETURN
-	ENDIF
-
-* success
-	status = ferr_ok
-	RETURN
-
-* error exit
- 5000	RETURN
- 5100	IF ( special_var .AND. var .EQ. pairt ) THEN
-	   CALL ERRMSG( ferr_var_not_in_set, status,
-     .			'need to SET DATA CLIM_AIRT_'//dp_airt_name(cairt),
-     .			*5000 )
-	ELSE
-	   CALL ERRMSG( ferr_var_not_in_set, status,
-     .						 fvar_name_code(var), *5000 )
-	ENDIF
-	END
diff --git a/fer/ocn/ew_hadvec.F b/fer/ocn/ew_hadvec.F
deleted file mode 100644
index 59844f7..0000000
--- a/fer/ocn/ew_hadvec.F
+++ /dev/null
@@ -1,140 +0,0 @@
-	SUBROUTINE EW_HADVEC ( tk, mtk, uk, muk, advec, madvec )
-
-*
-*
-*  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. 
-*
-*
-* compute east-west component of heat advection
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 3/17/86	extracted from SUBROUTINE HDIFFUS
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - array declarations using XMEM_SUBSC.CMN (reordered args)
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	muk, mtk, madvec
-* subscript ranges from memory variable table ...
-	REAL       tk( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		   uk( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		advec( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit )
-	REAL fuw(2:imtp1)
-
-* internal variable declarations:
-	INTEGER	i, j, k, l
-	REAL	bad_tk, bad_uk, bad_qadvec, fact1, dutdxm, tdudx
-
-* --- end of introductory code ---
-* flag for bad/missing data
-	bad_tk     = mr_bad_data( mtk )
-	bad_uk     = mr_bad_data( muk )
-	bad_qadvec = mr_bad_data( madvec )
-
-* south to north loop through east-west lines
-	DO 2000 l = mr_lo_s4(madvec), mr_hi_s4(madvec)
-	DO 2000 k = mr_lo_s3(madvec), mr_hi_s3(madvec)
-	DO 1000 j = mr_lo_s2(madvec), mr_hi_s2(madvec)
-
-	IF ( j .EQ. 1 ) THEN
-	   DO 100 i = mr_lo_s1(madvec), mr_hi_s1(madvec)
- 100	   advec( i,j,k,l ) = bad_qadvec
-	   GOTO 1000
-	ENDIF
-
-C   FIND ADVECTIVE COEFFICIENTS FOR WEST AND EAST FACES OF T,S BOXES	! 2967
-
-      FACT1=CSTR(j)*DYTR(j)	    				! 2969 mod
-      DO 690 i = MAX(2,mr_lo_s1(madvec)), mr_hi_s1(madvec)+1	! 2972 mod
-	IF ( uk( i-1,j  ,k,l ) .EQ. bad_uk
-     .  .OR. uk( i-1,j-1,k,l ) .EQ. bad_uk ) THEN
-	   fuw(i) = bad_val4
-	ELSE
-           FUW(I)=( Uk(i-1,j,k,l)  *DYU(j)
-     .		 +  Uk(I-1,j-1,k,l)*DYU(j-1) )*FACT1	! 2973 mod
-	ENDIF
- 690  CONTINUE	    							! 2976
-
-* calculate minus east-west advection component of total advection in flux form
-      DO 820 i = mr_lo_s1(madvec), mr_hi_s1(madvec)		! 3066 mod
-
-	IF ( i .EQ. 1  .OR. i .EQ. im ) THEN
-	   advec( i,j,k,l ) = bad_qadvec
-	   GOTO 820
-	ENDIF
-	IF ( fuw( i   )    .EQ. bad_val4
-     .	.OR. fuw( i+1 )    .EQ. bad_val4
-     .	.OR. tk( i  ,j  ,k,l ) .EQ. bad_tk
-     .	.OR. tk( i-1,j  ,k,l ) .EQ. bad_tk
-     .	.OR. tk( i  ,j-1,k,l ) .EQ. bad_tk
-     .	.OR. tk( i-1,j-1,k,l ) .EQ. bad_tk ) THEN
-	   advec( i,j,k,l ) = bad_qadvec
-	   GOTO 820
-	ENDIF
-
-	dutdxm =  (
-     *          (-FUW(I+1)*(tk(i+1,j,k,l) + tk(i  ,j,k,l))    	      ! 3067 mod
-     *           +FUW(I  )*(tk(i  ,j,k,l) + tk(i-1,j,k,l)))*DXT4R(I) )! 3068 mod
-
-* calculate individual advection component by subtracting the vector t*dU/dX 
-	tdudx = tk(i,j,k,l) * (fuw(i+1) - fuw (i))*dxt4r(i)*2.0
-	advec(i,j,k,l) = (dutdxm + tdudx ) * cmonthly
-
- 820  CONTINUE	    							! 3072
-
- 1000	CONTINUE
- 2000	CONTINUE
-
-	RETURN
-	END
diff --git a/fer/ocn/expl_coriolis.F b/fer/ocn/expl_coriolis.F
deleted file mode 100644
index e46aa34..0000000
--- a/fer/ocn/expl_coriolis.F
+++ /dev/null
@@ -1,163 +0,0 @@
-	SUBROUTINE EXPL_CORIOLIS( u   , mu   , v   , mv   ,
-     .				  ucoe, mucoe, vcoe, mvcoe    )
-
-*
-*
-*  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. 
-*
-*
-* compute the explicit Coriolis effect based on velocity
-* components from the preceeding time step
-*			correction based on an implicit scheme
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 -1/27/87 extracted from SUBROUTINE CLINIC
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	 mu, mv, mucoe, mvcoe
-
-* subscript ranges from memory variable table ...
-	REAL       u( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		   v( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		ucoe( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit ),
-     .		vcoe( m4lox:m4hix,m4loy:m4hiy,m4loz:m4hiz,m4lot:m4hit )
-
-* internal variable declarations:
-	LOGICAL	HOURLY_DATA
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, k, l, dl
-	REAL	bad_u, factor
-
-* --- end of introductory code ---
-
-* ***************************************************************
-* ORIGINAL GFDL 205 CODE UPON WHICH CALCULATION IS BASED
-*
-* 388 C   ADD IN CORIOLIS FORCE
-* 389 C
-* 390       FACTOR=2.0*OMEGA*SINE(J)
-* 391       IF(ACOR.EQ.0) GO TO 358
-* 392       DO 357 K=1,KM
-* 393       DO 357 I=1,IMT
-* 394       UA(I,K)=UA(I,K)+FACTOR*VB(I,K)
-* 395       VA(I,K)=VA(I,K)-FACTOR*UB(I,K)
-* 396  357  CONTINUE
-* 397       GO TO 3590
-* 398  358  CONTINUE
-* 399       DO 359 K=1,KM
-* 400       DO 359 I=1,IMT
-* 401       UA(I,K)=UA(I,K)+FACTOR*V(I,K)
-* 402       VA(I,K)=VA(I,K)-FACTOR*U(I,K)
-* 403  359  CONTINUE
-* 404  3590 CONTINUE
-
-*************************************************************************
-* compute the explicit Coriolis increment implied by the past velocity
-
-* use 1 hour separation for exact results on hourly data
-	IF ( HOURLY_DATA(mr_grid(mucoe)) ) THEN
-	   dl = 1
-	ELSE
-	   dl = 0
-	ENDIF
-
-* limits for calculation
-	i_lo = mr_lo_s1(mucoe)
-	i_hi = mr_hi_s1(mucoe)
-	j_lo = mr_lo_s2(mucoe)
-	j_hi = mr_hi_s2(mucoe)
-
-* flag for bad/missing data
-	bad_u = mr_bad_data( mu )
-
-* compute:
-	DO 200 j = j_lo, j_hi
-
-	   factor = 2.0*omega*sine(j) * cmonthly
-*	   IF ( acor.EQ.0 ) GOTO 358
-
-	   DO 200 l = mr_lo_s4(mucoe), mr_hi_s4(mucoe)
-	   DO 200 k = mr_lo_s3(mucoe), mr_hi_s3(mucoe)
-
-* based on velocity at time n-1:
-	   DO 100 i = i_lo, i_hi 
-	      IF ( u(i,j,k,l) .EQ. bad_u ) THEN
-	         ucoe(i,j,k,l) = bad_val4
-	         vcoe(i,j,k,l) = bad_val4
-	      ELSE
-	         ucoe(i,j,k,l) =  factor * v(i,j,k,l)
-	         vcoe(i,j,k,l) = -factor * u(i,j,k,l)
-	      ENDIF
- 100	   CONTINUE
-	   GOTO 200
-
-* based on velocity at time n:
-! 358 	   CONTINUE
-!	   STOP 'Coriolis based on single time step not implemented'
-*	   DO 110 i = i_lo, i_hi 
-*	      IF ( u(i,j,k,l+dl) .EQ. bad_u ) THEN
-*	         ucoe(i,j,k,l) = bad_val4
-*	         vcoe(i,j,k,l) = bad_val4
-*	      ELSE
-*	         ucoe(i,j,k,l) =  factor * v(i,j,k,l+dl)
-*	         vcoe(i,j,k,l) = -factor * v(i,j,k,l+dl)
-*	      ENDIF
-* 110	   CONTINUE
-
- 200	CONTINUE
-	RETURN
-
-	END
diff --git a/fer/ocn/fuw.F b/fer/ocn/fuw.F
deleted file mode 100644
index 73de1e2..0000000
--- a/fer/ocn/fuw.F
+++ /dev/null
@@ -1,150 +0,0 @@
-	SUBROUTINE  FUW( psi , mpsi ,
-     .			 uavz, muavz,
-     .			 u   , mu,
-     .			 ufuw, mufuw )
-
-*
-*
-*  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. 
-*
-*
-* compute zonal flux term on the uv grid needed in the calculation of
-* both W_U ( W on uv grid columns ) and horizontal momentum advection
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 -1/21/87 extracted from SUBROUTINE CLINIC
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	mpsi, muavz, mu, mufuw
-
-* subscript ranges from memory variable table ...
-	REAL     psi( m1lox:m1hix,m1loy:m1hiy,            m1lot:m1hit ),
-     .		uavz( m2lox:m2hix,m2loy:m2hiy,            m2lot:m2hit ),
-     .		   u( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit ),
-     .		ufuw( m4lox:m4hix,m4loy:m4hiy,m4loz:m4hiz,m4lot:m4hit )
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, k, l
-	REAL	bad_psi, bad_u, bad_uavz,
-     .		ufuw_1, sfu_1
-
-* --- end of introductory code ---
-
-* limits for calculation
-	i_lo = mr_lo_s1(mufuw)
-	i_hi = mr_hi_s1(mufuw)
-	j_lo = mr_lo_s2(mufuw)
-	j_hi = mr_hi_s2(mufuw)
-
-* flag for bad/missing data
-	bad_psi  = mr_bad_data( mpsi  )
-	bad_uavz = mr_bad_data( muavz )
-	bad_u    = mr_bad_data( mu    )
-
-* ***************************************************************
-* ORIGINAL GFDL 205 CODE UPON WHICH CALCULATION IS BASED
-*
-*  90  C   FIND ADVECTIVE COEFFICIENT 'FUW' FOR WEST FACE OF U,V BOX
-*  91  C
-*  92        DATA TAPLEN/5./
-*  93        DO 100 I=2,IMT
-*  94        SFU(I)=-(P(I,J+1)-P(I,J))*DYUR(J)*AMIN1(HR(I-1,J),HR(I,J))
-*  95   100  CONTINUE
-*  96        DO 110 K=1,KM
-*  97        DO 110 I=1,IMT
-*  98        FUW(I,K)=(UCLIN(I,K)+UCLIN(I-1,K))*0.5
-*  99   110  CONTINUE
-* 100        DO 115 K=1,KM
-* 101        DO 115 I=1,IMT
-* 102        FUW(I,K)=(FUW(I,K)+SFU(I))*CSR(J)
-* 103   115  CONTINUE
-*************************************************************************
-	DO 2000 l = mr_lo_s4(mufuw), mr_hi_s4(mufuw)
-	DO 2000 k = mr_lo_s3(mufuw), mr_hi_s3(mufuw)
-
-C   FIND ADVECTIVE COEFFICIENT 'FUW' FOR WEST FACE OF U,V BOX
-	DO 100 j = j_lo, j_hi
-	DO 100 i = i_lo, i_hi
-* ... cant compute derivatives at fringes of full grid
-	   IF ( i .EQ. 1 .OR. j .EQ. jm ) THEN
-	      ufuw(i,j,k,l) = bad_val4
-	      GOTO 100
-	   ENDIF
-
-	   IF (  psi(i  ,j    ,l) .EQ. bad_psi
-     .	    .OR. psi(i  ,j+1  ,l) .EQ. bad_psi
-     .	    .OR.   u(i  ,j  ,k,l) .EQ. bad_u
-     .	    .OR.   u(i-1,j  ,k,l) .EQ. bad_u
-     .	    .OR.uavz(i  ,j    ,l) .EQ. bad_uavz
-     .	    .OR.uavz(i-1,j    ,l) .EQ. bad_uavz ) THEN
-
-	      ufuw(i,j,k,l) = bad_val4
-
-	   ELSE
-
-	      sfu_1  = -( psi(i,j+1,l)-psi(i,j,l) ) * dyur(j) * hr
-	      ufuw_1 =  ( (u(i  ,j,k,l)-uavz(i  ,j,l))
-     .			+ (u(i-1,j,k,l)-uavz(i-1,j,l)) ) * 0.5
-	      ufuw(i,j,k,l)=( ufuw_1 + sfu_1 ) * csr(j)
-
-	   ENDIF
-
- 100	CONTINUE
- 2000	CONTINUE
-
-	RETURN
-	END
diff --git a/fer/ocn/fvn.F b/fer/ocn/fvn.F
deleted file mode 100644
index 8a6545a..0000000
--- a/fer/ocn/fvn.F
+++ /dev/null
@@ -1,152 +0,0 @@
-
-	SUBROUTINE FVN( 	psi , mpsi ,
-     .				vavz, mvavz,
-     .				v   , mv,
-     .				vfvn, mvfvn )
-
-*
-*
-*  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. 
-*
-*
-* compute meridional flux terms on the uv grid needed in the calculation of
-* both W_U ( W on uv grid columns ) and horizontal momentum advection
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 -1/21/87 extracted from SUBROUTINE CLINIC
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	mpsi, mvavz, mv, mvfvn
-
-* subscript ranges from memory variable table ...
-	REAL     psi( m1lox:m1hix,m1loy:m1hiy,            m1lot:m1hit ),
-     .		vavz( m2lox:m2hix,m2loy:m2hiy,            m2lot:m2hit ),
-     .		   v( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit ),
-     .		vfvn( m4lox:m4hix,m4loy:m4hiy,m4loz:m4hiz,m4lot:m4hit )
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, k, l
-	REAL	bad_psi, bad_v, bad_vavz, factor, sfv_1, vfvn_1
-
-* --- end of introductory code ---
-
-* limits for calculation
-	i_lo = mr_lo_s1(mvfvn)
-	i_hi = mr_hi_s1(mvfvn)
-	j_lo = mr_lo_s2(mvfvn)
-	j_hi = mr_hi_s2(mvfvn)
-
-* flag for bad/missing data
-	bad_psi  = mr_bad_data( mpsi  )
-	bad_vavz = mr_bad_data( mvavz )
-	bad_v    = mr_bad_data( mv    )
-
-* ***************************************************************
-* ORIGINAL GFDL 205 CODE UPON WHICH CALCULATION IS BASED
-*
-* 105  C   FIND ADVECTIVE COEFFICIENT 'FVN' FOR NORTH FACE OF U,V BOX
-* 106  C
-* 107        DO 120 I=1,IMT
-* 108        SFV(I)=(P(I+1,J+1)-P(I,J+1))*DXUR(I)*CSTR(J+1)*AMIN1(HR(I,J+1),
-* 109       1 HR(I,J))
-* 110   120  CONTINUE
-* 111        FACTOR=DYU2R(J)*CSR(J)*CST(J+1)
-* 112        DO 130 K=1,KM
-* 113        DO 130 I=1,IMT
-* 114        FVN(I,K)=(VP(I,K)+VCLIN(I,K))*0.5
-* 115   130  CONTINUE
-* 116        DO 135 K=1,KM
-* 117        DO 135 I=1,IMT
-* 118        FVN(I,K)=(FVN(I,K)+SFV(I))*FACTOR
-* 119   135  CONTINUE
-********************************************************************
-	DO 2000 l = mr_lo_s4(mvfvn), mr_hi_s4(mvfvn)
-	DO 2000 k = mr_lo_s3(mvfvn), mr_hi_s3(mvfvn)
-
-C   FIND ADVECTIVE COEFFICIENT 'FUW' FOR WEST FACE OF U,V BOX
-	DO 100 j = j_lo, j_hi
-	   IF ( j .LT. jm ) factor = dyu2r(j) * csr(j) * cst(j+1)
-	DO 100 i = i_lo, i_hi
-* ... cant compute derivatives at fringes of full grid
-	   IF ( i .EQ. 1 .OR. j .EQ. jm ) THEN
-	      vfvn(i,j,k,l) = bad_val4
-	      GOTO 100
-	   ENDIF
-
-	   IF (  psi(i  ,j+1  ,l) .EQ. bad_psi
-     .	    .OR. psi(i+1,j+1  ,l) .EQ. bad_psi
-     .	    .OR.   v(i  ,j  ,k,l) .EQ. bad_v
-     .	    .OR.   v(i  ,j+1,k,l) .EQ. bad_v
-     .	    .OR.vavz(i  ,j    ,l) .EQ. bad_vavz
-     .	    .OR.vavz(i  ,j+1  ,l) .EQ. bad_vavz ) THEN
-
-	      vfvn(i,j,k,l) = bad_val4
-
-	   ELSE
-
-	      sfv_1  = (psi(i+1,j+1,l)-psi(i,j+1,l)) * dxur(i) * cstr(j+1) * hr
-	      vfvn_1 = ( ( v(i,j+1,k,l) - vavz(i,j+1,l) )
-     .		     +   ( v(i,j,k,l  ) - vavz(i,j,l  ) ) ) * 0.5
-	      vfvn(i,j,k,l)=( vfvn_1 + sfv_1 ) * factor
-
-	   ENDIF
-
- 100	CONTINUE
- 2000	CONTINUE
-
-	RETURN
-	END
diff --git a/fer/ocn/gfdl_terms.F b/fer/ocn/gfdl_terms.F
deleted file mode 100644
index ba99bde..0000000
--- a/fer/ocn/gfdl_terms.F
+++ /dev/null
@@ -1,233 +0,0 @@
-	SUBROUTINE GFDL_TERMS
-
-*
-*
-*  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. 
-*
-*
-* compute geometrical and other constants as defined in GFDL code
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 3/7/86	extracted from SUBROUTINE HDIFFUS
-* revision 0.1 - 1/16/87 - added terms needed for momentum eqn
-* revision 0.2 - 7/18/88 - Am entered from data sets - not computed here
-
-#ifdef unix
-	include 'gfdl.parm'
-	include 'xonedim.cmn'
-#else
-	INCLUDE 'FERRET_CMN:GFDL.PARM'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'
-#endif
-
-* internal variable declarations:
-	INTEGER	i,j,k
-	REAL	ph1deg, radius, radian, sumdy, dym
-
-* begin executable code:
-* initialize - compute basic grid coordinates ( dxt and dyt in degrees )
-	CALL MESH( dxt, dyt )
-
-* for COMMON/XEDDY
-!	am = 2.E7
-	ah = 2.E7
-	fkpm = .0134
-	fkph = .00134
-	dtuv = 3600.	! 1 hour
-        c2dtuv=2.0*dtuv	! 2028
-	nts30 = 365.25*86400. / (12.*dtuv) + .1
-	dtts = 3600.
-	C2DTTS = 2.0*DTTS	! seconds to 2 hour timestep leapfrogs	! 2027
-	cmonthly = c2dtts * (730./2.)	! convert seconds to months
-
-C									!  937
-       PH1DEG=-30.0+dyt(1)					! 1019 mod
-C									! 1022
-C   DEFINE PHYSICAL CONSTANTS						! 1023
-C									! 1024
-       OMEGA=3.1415927/43082.						! 1025
-       RADIUS=6370.E5							! 1026
-       RADIAN=57.29578							! 1027
-       GRAV=980.6							! 1028
-
-      BAH=FKPH								! 1045
-      BAM=FKPM								! 1046
-
-*   --- Z axis definitions ---
-      DO 100 K=1,KM							! 1059
-      C2DZ(K)=2.0*DZ(K)							! 1060
-      DZ2R(K)=1.0/C2DZ(K)						! 1061
- 100  CONTINUE								! 1062
-      DZZ(1)=0.5*DZ(1)							! 1063
-      ZDZ(1)=DZ(1)							! 1064
-      DO 110 K=2,km							! 1065
-      DZZ(K)=0.5*(DZ(K-1)+DZ(K))					! 1066
-      ZDZ(K)=ZDZ(K-1)+DZ(K)						! 1067
- 110  CONTINUE								! 1068
-      DZZ(KM+1)=0.5*DZ(KM)						! 1069
-!      DZZ2R(KMP1)=.5/DZZ(KMP1)						! 1070
-      ZDZZ(1)=DZZ(1)							! 1071
-      DO 120 K=1,km							! 1072
-!      DZZ2R(K)=.5/DZZ(K)						! 1073
-      ZDZZ(K+1)=ZDZZ(K)+DZZ(K+1)					! 1074
-      EEH(K)=1./(DZ(K)*DZZ(K))						! 1075
-      FFH(K)=1./(DZ(K)*DZZ(K+1))					! 1076
-      EEM(K)=1./(DZ(K)*DZZ(K))						! 1077
-      FFM(K)=1./(DZ(K)*DZZ(K+1))					! 1078
-!      KAR(K)=K								! 1079
- 120  CONTINUE								! 1080
-
-* convert dxt,dyt from degrees to cm
-!      DXT=DXT*RADIUS/RADIAN						! 1090
-!      DYT=DYT*RADIUS/RADIAN						! 1091
-	DO 124 i = 1,imt
- 124	DXT(i) = dxt(i) * radius/radian
-	DO 125 j = 1,jmt
- 125	DYT(j) = dyt(j) * radius/radian
-
-*   --- Y axis definitions ---
-       PHI(1)=PH1DEG/RADIAN						! 1092
-      PHIT(1)=PHI(1)-.5*DYT(1)/RADIUS					! 1093
-      SUMDY=PHI(1)							! 1094
-      DYU(JMT)=DYT(JMT)							! 1095
-      DO 130 J=1,JMT							! 1096
-      IF(J.NE.JMT) DYU(J)=.5*(DYT(J)+DYT(J+1))				! 1097
-      DYTR(J)=1./DYT(J)							! 1098
-!      DYT2R(J)=.5/DYT(J)						! 1099
-!      DYT4R(J)=.25/DYT(J)						! 1100
-      DYUR(J)=1./DYU(J)							! 1101
-      DYU2R(J)=.5/DYU(J)						! 1102
-      DYU4R(J)=.25/DYU(J)						! 1103
-      IF(J.NE.JMT) SUMDY=SUMDY+DYT(J+1)/RADIUS				! 1104
-      IF(J.NE.JMT) PHI(J+1)=SUMDY					! 1105
-      IF(J.NE.1) PHIT(J)=.5*(PHI(J-1)+PHI(J))				! 1106
-      CST(J)=COS(PHIT(J))						! 1107
-      CS (J)=COS(PHI (J))						! 1108
-      SINE(J)=SIN(PHI(J))						! 1109
-      CSTR(J)=1.0/CST(J)						! 1110
-      CSR(J)=1.0/CS(J)							! 1111
-      TNG(J)=SINE(J)/CS(J)						! 1112
- 130  CONTINUE								! 1113
-
-*   --- X axis definitions ---
-      DXU(IMT)=DXT(IMT)					! 1114 mod
-!      IF(LCYC.EQ.1) DXU(IMT)=.5*(DXT(2)+DXT(3))		! 1115 mod
-      DXU(IMT)=.5*(DXT(2)+DXT(3))		! 1115 mod 2/93
-      DO 140  I=1,IMT							! 1116
-      IF(I.NE.IMT) DXU(I)=.5*(DXT(I)+DXT(I+1))		! 1117 mod
-      DXTR(I)=1./DXT(I)					! 1118 mod
-!      DXT2R(I)=.5/DXT(I)					! 1119 mod
-      DXT4R(I)=.25/DXT(I)					! 1120 mod
-      DXUR(I)=1./DXU(I)							! 1121
-      DXU2R(I)=.5/DXU(I)						! 1122
-!      DXU4R(I)=.25/DXU(I)						! 1123
-  140 CONTINUE								! 1124
-
-* compute actual coordinate positions for x and y in degrees
-* **** NOTE: the yv coordinates computed here DO NOT agree with the NMC
-* (and other) wind point coordinates, although the errors are small.  According
-* to the COX documentation the t,s grid points should lie at the midpoints of
-* the u,v points.  This was reversed in the SUBROUTINE GRIDS (by Ron Pacanowski)
-* which generated the NMC wind coordinates.  It has been corrected here.
-	xv(1) = 131.0				! from NMCWIN.DAT file
-	xt(1) = 130.5
-	DO 150 i = 2, imt
-	   xv(i) = xv( i-1 ) + 0.5 * ( dxu(i-1) + dxu(i) ) * radian/radius
-	   xt(i) = xt( i-1 ) + 0.5 * ( dxt(i-1) + dxt(i) ) * radian/radius
- 150	CONTINUE
-	DO 160 j = 1, jmt
-	   yv(j) = phi (j) * radian
-	   yt(j) = phit(j) * radian
- 160	CONTINUE
-
-C									! 1137
-C   PRINT SOME THINGS							! 1138
-C									! 1139
-!      PRINT 9701							! 1140
-! 9701 FORMAT(50H0 GRID BOX THICKNESS  'DZ'                        )	! 1141
-!      PRINT 970, DZ							! 1142
-!      PRINT 9702							! 1143
-! 9702 FORMAT(50H0 GRID POINT SEPARATION  'DZZ'                    )	! 1144
-!      PRINT 970, DZZ							! 1145
-!      PRINT 9703							! 1146
-! 9703 FORMAT(50H0 DEPTH OF BOX BOTTOM  'ZDZ'                      )	! 1147
-!      PRINT 970, ZDZ							! 1148
-!      PRINT 9704							! 1149
-! 9704 FORMAT(50H0 DEPTH OF GRID POINT  'ZDZZ'                     )	! 1150
-!      PRINT 970, ZDZZ							! 1151
-!      PRINT 9705							! 1152
-! 9705 FORMAT(50H0 LATITUDE OF T,S POINTS (RADIANS)  'PHIT'        )	! 1153
-!      PRINT 970, PHIT							! 1154
-!      PRINT 9706							! 1155
-! 9706 FORMAT(50H0 LATITUDE OF U,V POINTS (RADIANS)  'PHI'         )	! 1156
-!      PRINT 970, PHI							! 1157
-!      PRINT 9707							! 1158
-! 9707 FORMAT(50H0 COSINE OF T,S LATITUDE  'CST'                   )	! 1159
-!      PRINT 970, CST							! 1160
-!      PRINT 9708							! 1161
-! 9708 FORMAT(50H0 COSINE OF U,V LATITUDE  'CS'                    )	! 1162
-!      PRINT 970, CS							! 1163
-!      PRINT 9709							! 1164
-! 9709 FORMAT(50H0 SINE OF U,V LATITUDE  'SINE'                    )	! 1165
-!      PRINT 970, SINE							! 1166
- 970  FORMAT(1X,10E13.5)						! 1167
-!C									! 1168
-!C  NEWTONIAN DAMPING COEFFICIENTS POLEWARD OF 30 DEGREES NORTH &	! 1169
-!C  20 DEGREES SOUTH.							! 1170
-!C									! 1171
-!      RGAMMA=1./(GAMMA*86400.)						! 1172
-!      DO 1200 J=1,NPS							! 1173
-! 1200 RGS(J)=RGAMMA*.5*(1.+COS(3.14159*(J-2.)/(NPS-1.)))		! 1174
-!      DO 1201 J=1,NPN							! 1175
-! 1201 RGN(J)=RGAMMA*.5*(1.+COS(3.14159*(J-2.)/(NPN-1.)))		! 1176
-!C									! 1177
-!C     VARIABLE HORIZONTAL DIFFUSION FACTORS...ALLOW UP TO 25.*AM	! 1178
-!C     AND 25.*AH FOR THE COARSE REGIONS				! 1179
-!C									! 1180
-!      XIV(*)=1.							! 1181
-!      XIT(*)=1.							! 1182
-	DO 1205 i = 1,imt
-	xiv(i) = 1.0
- 1205	xit(i) = 1.0
-      DYM=1./DYT(50)							! 1183
-      DO 1210 J=1,JMT							! 1184
-1210  XJT(J)=3.166*DYT(J)*DYM-2.166					! 1185
-      XJV(JMT)=XJT(JMT)							! 1186
-      DO 1211 J=1,JMTM1							! 1187
-1211  XJV(J)=.5*(XJT(J)+XJT(J+1))					! 1188
-
-	RETURN
-	END
diff --git a/fer/ocn/grad_p_clinic.F b/fer/ocn/grad_p_clinic.F
deleted file mode 100644
index 7375ab0..0000000
--- a/fer/ocn/grad_p_clinic.F
+++ /dev/null
@@ -1,215 +0,0 @@
-	SUBROUTINE GRAD_P_CLINIC   (	rhok   , mrhok   , 
-     .					dpdx   , mdpdx   , 
-     .					dpdy   , mdpdy 		)
-
-*
-*
-*  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. 
-*
-*
-* compute horizontal components of grad p assuming constant surface pressure
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 1/14/87 extracted from SUBROUTINE CLINIC
-*			 with major modifications to convert i-k oriented
-*			 calculations to i-j oriented calculations
-* revision 0.1 - 4/3/87  corrected j offset error
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-* V420 - 2/96 - fix bug in bounds checking on j loop
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	mrhok, mdpdx, mdpdy
-
-* subscript ranges from memory variable table ...
-	REAL    rhok( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		dpdx( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		dpdy( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit )
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, k, l
-	REAL	bad_rhok, bad_dpdx, bad_dpdy,
-     .		fact1, fact2, udif(im), vdif(im), udif1, vdif1, dpdx1, dpdy1
-
-* --- end of introductory code ---
-
-* limits for calculation
-	i_lo = mr_lo_s1(mdpdx)
-	i_hi = mr_hi_s1(mdpdx)
-	j_lo = mr_lo_s2(mdpdx)
-	j_hi = mr_hi_s2(mdpdx)
-
-* flag for bad/missing data
-	bad_rhok = mr_bad_data( mrhok )
-	bad_dpdx = mr_bad_data( mdpdx )
-	bad_dpdy = mr_bad_data( mdpdy )
-
-* ***************************************************************
-* ORIGINAL GFDL 205 CODE UPON WHICH CALCULATION IS BASED
-*
-*  226 C   FIND HYDROSTATIC PRESSURE GRADIENT AT FIRST LEVEL
-*  227 C
-*  228       FACT1=GRAV*DZZ(1)*CSR(J)
-*  229       FACT2=DYU2R(J)*GRAV*DZZ(1)
-*  230       DO 260 I=1,IMT
-*  231       UDIF(I,1)=RHON(I+1,1)-RHOS(I,1)
-*  232       VDIF(I,1)=RHON(I,1)-RHOS(I+1,1)
-*  233       DPDX(I,1)=(FACT1*(UDIF(I,1)-VDIF(I,1)))*DXU2R(I)
-*  234       DPDY(I,1)=(UDIF(I,1)+VDIF(I,1))*FACT2
-*  235  260  CONTINUE
-*  236 C
-*  237 C   FIND HYDROSTATIC PRESSURE GRADIENT AT OTHER LEVELS
-*  238 C
-*  239       FACT1=0.5*CSR(J)*GRAV
-*  240       FACT2=DYU4R(J)*GRAV
-*  241       DO 270 K=2,KM
-*  242       DO 270 I=1,IMT
-*  243       DPDX(I,K)=RHON(I,K-1)+RHON(I,K)
-*  244       DPDY(I,K)=RHOS(I,K-1)+RHOS(I,K)
-*  245  270  CONTINUE
-*  246       DO 273 K=2,KM
-*  247       DO 273 I=1,IMT
-*  248       UDIF(I,K)=DPDX(I+1,K)-DPDY(I  ,K)
-*  249       VDIF(I,K)=DPDX(I  ,K)-DPDY(I+1,K)
-*  250       DPDX(I,K)=(FACT1*(UDIF(I,K)-VDIF(I,K)))*DZZ2D(I,K)*DXU2R2D(I,K)
-*  251       DPDY(I,K)=(FACT2*(UDIF(I,K)+VDIF(I,K)))*DZZ2D(I,K)
-*  252  273  CONTINUE
-*  253       DO 275 K=1,KMM1
-*  254       DO 275 I=1,IMT
-*  255       DPDX(I,K+1)=DPDX(I,K)+DPDX(I,K+1)
-*  256       DPDY(I,K+1)=DPDY(I,K)+DPDY(I,K+1)
-*  257  275  CONTINUE
-
-* ******************************************************************
-
-	DO 2000 l = mr_lo_s4(mdpdx), mr_hi_s4(mdpdx)
-	DO 2000 k = mr_lo_s3(mdpdx), mr_hi_s3(mdpdx)
-
-* top level doesn't require recursive computation - deeper levels do
-	IF ( k .GT. 1 ) GOTO 500
-
-c find hydrostatic pressure gradient at first level
-	DO 260 j = j_lo, j_hi
-	   fact1 = grav * dzz(1) * csr(j)
-	   fact2 = dyu2r(j) * grav * dzz(1)
-	DO 260 i = i_lo, i_hi
-* ... cant compute derivatives at fringes of full grid
-! pre 2/96	   IF ( i .EQ. im .OR. j .EQ. 1 ) THEN
-	   IF ( i .EQ. im .OR. j .EQ. jm ) THEN
-	      dpdx(i,j,k,l) = bad_dpdx
-	      dpdy(i,j,k,l) = bad_dpdy
-	      GOTO 260
-	   ENDIF
-
-	   IF ( rhok(i  ,j+1,k,l) .EQ. bad_rhok
-     .	    .OR.rhok(i+1,j+1,k,l) .EQ. bad_rhok
-     .	    .OR.rhok(i+1,j  ,k,l) .EQ. bad_rhok
-     .	    .OR.rhok(i  ,j  ,k,l) .EQ. bad_rhok ) THEN
-	      dpdx(i,j,k,l) = bad_dpdx
-	      dpdy(i,j,k,l) = bad_dpdy
-	   ELSE
-	      udif1 = rhok(i+1,j+1,k,l) - rhok(i  ,j  ,k,l)
-	      vdif1 = rhok(i  ,j+1,k,l) - rhok(i+1,j  ,k,l)
-	      dpdx(i,j,k,l) = ( fact1*(udif1-vdif1) ) * dxu2r(i)
-	      dpdy(i,j,k,l) = ( udif1+vdif1 ) * fact2
-	   ENDIF
- 260	CONTINUE
-	GOTO 2000
-
-**************************************************************************
-* find hydrostatic pressure gradient at deeper levels
- 500	CONTINUE
-
-	DO 270 j = j_lo, j_hi
-	   fact1 = 0.5 * csr(j) * grav
-	   fact2 = dyu4r(j) * grav
-
-	DO 270 i = i_lo, i_hi
-* ... cant compute derivatives at fringes of full grid
-! pre 2/96	   IF ( i .EQ. im .OR. j .EQ. 1 ) THEN
-	   IF ( i .EQ. im .OR. j .EQ. jm ) THEN
-	      dpdx(i,j,k,l) = bad_dpdx
-	      dpdy(i,j,k,l) = bad_dpdy
-	      GOTO 270
-	   ENDIF
-
-	   IF ( rhok(i  ,j+1,k-1,l) .EQ. bad_rhok
-     .	   .OR. rhok(i  ,j+1,k  ,l) .EQ. bad_rhok
-     .	   .OR. rhok(i  ,j  ,k-1,l) .EQ. bad_rhok
-     .	   .OR. rhok(i  ,j  ,k  ,l) .EQ. bad_rhok
-     .	   .OR. rhok(i+1,j+1,k-1,l) .EQ. bad_rhok
-     .	   .OR. rhok(i+1,j+1,k  ,l) .EQ. bad_rhok
-     .	   .OR. rhok(i+1,j  ,k-1,l) .EQ. bad_rhok
-     .	   .OR. rhok(i+1,j  ,k  ,l) .EQ. bad_rhok ) THEN
-	      dpdx(i,j,k,l) = bad_dpdx
-	      dpdy(i,j,k,l) = bad_dpdy
-	      GOTO 270
-	   ENDIF
-
-* ... compute increment to grad P for this level
-* ... combining 2 adjacent rho planes - else results would be on w planes
-	   udif1 = ( rhok(i+1,j+1,k-1,l) + rhok(i+1,j+1,k,l) )
-     .		 - ( rhok(i  ,j  ,k-1,l) + rhok(i  ,j  ,k,l) )
-	   vdif1 = ( rhok(i  ,j+1,k-1,l) + rhok(i  ,j+1,k,l) )
-     .		 - ( rhok(i+1,j  ,k-1,l) + rhok(i+1,j  ,k,l) )
-	   dpdx1 = ( fact1*( udif1-vdif1 ) ) * dzz(k) * dxu2r(i)
-	   dpdy1 = ( fact2*( udif1+vdif1 ) ) * dzz(k)
-
-* ... combine with results from next shallower level
-	   dpdx(i,j,k,l) = dpdx(i,j,k-1,l) + dpdx1
-	   dpdy(i,j,k,l) = dpdy(i,j,k-1,l) + dpdy1
- 270	CONTINUE
-
- 2000	CONTINUE
-	RETURN
-	END
diff --git a/fer/ocn/hflux.F b/fer/ocn/hflux.F
deleted file mode 100644
index 7d07581..0000000
--- a/fer/ocn/hflux.F
+++ /dev/null
@@ -1,176 +0,0 @@
-      SUBROUTINE HFLUX ( vel, mvel, sst, msst, air, mair,
-     .			 sens, msens,  evap, mevap )
-
-*
-*
-*  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. 
-*
-*
-* compute heat flux into sea surface
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 2.0 - 3/7/86	major modifications from GFDLCONT Rev 5.4 to convert
-*			i-k oriented calculations to i-j oriented calculations
-* revision 2.1 -4/4/88 - air temp is pre-computed for various parameterizations
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - array declarations using XMEM_SUBSC.CMN (reordered args)
-
-* capitalized code is lifted from the GFDL model
-*
-* equations used:
-*	Q = SW - LW - QS - QE
-* where
-*	Q is heat flux
-*	SW-LW (C5) is short wave down less long wave up
-*	QS is sensible heating: = ro*Cd*Cp*V*(Tsst-Tair)
-*	QE is evaporative cooling: = ro*L*Cd*V*(qradi(Tsst) - R*qradi(Tair) )
-*	where
-*		qs(T) = 0.622es(T)/PA and
-*		qe(T) = 6.11*exp[L/Rv * (1/273 - 1/T) ]
-
-* note: in the original GFDL version of this subroutine the surface Q flux was
-*	imbedded in the array TDIF with suitable constants so that the surface
-*	flux appeared to be diffusing from level k=0 of the ocean.  Several of
-*	the variables went under non-explicit EQUIVALENCE names so that the
-*	effective calculation (where "qflux" is the surface heat flux) became:
-* 		tdif(i,1)= sst + dzz(1)/bvdc(i) * qflux(i)	- in HFLUX
-*		delta_T  = bvdc(i)*eeh(1) * (tdif(i,1)-sst(1))	- in TRACER 3106
-*	where	eeh(1)   = 1/(dz(1)*dzz(1))
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-	include 'xdset_parms.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'
-	INCLUDE 'TMAP_FORMAT:TMAP_DIMS.PARM'
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-	INCLUDE 'FERRET_CMN:XDSET_PARMS.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	mair, mvel, msst, msens, mevap
-	REAL	 vel( m1lox:m1hix,m1loy:m1hiy,            m1lot:m1hit ),
-     .		 sst( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		 air( m3lox:m3hix,m3loy:m3hiy,            m3lot:m3hit ),
-     .		sens( m4lox:m4hix,m4loy:m4hiy,            m4lot:m4hit ),
-     .		evap( m5lox:m5hix,m5loy:m5hiy,            m5lot:m5hit )
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, l, dset
-	REAL	bad_air, bad_sst, bad_vel, bad_sens, bad_evap, vel1,
-     .		d1, d2, windmin
-	REAL	R, RO, EL, CD, PA, CP, C1, C2, rap
-
-* --- end of introductory code ---
-* initialize
-	dset    = mr_data_set( msens )
-	windmin = dp_min_wind( dset )
-
-* limits for calculation
-	i_lo = mr_lo_s1(msens)
-	i_hi = mr_hi_s1(msens)
-	j_lo = mr_lo_s2(msens)
-	j_hi = mr_hi_s2(msens)
-
-* flag for bad/missing data
-	bad_air  = mr_bad_data( mair )
-	bad_vel  = mr_bad_data( mvel )
-	bad_sst  = mr_bad_data( msst )
-	bad_sens = mr_bad_data( msens )
-	bad_evap = mr_bad_data( mevap )
-
-C     SET CONSTANTS							!  769
-C									!  770
-      R=.8
-      RO=1.2E-3			! (of air) gm/cm**3
-      EL=595.			! cal/gm
-      CD=1.4E-3
-      PA=1013.25		! millibars
-      CP=.24			! cal/gm-deg
-      C1=RO*CD*EL*.662/PA
-      C2=RO*CD*CP
-	rap = 1. / (ro * cd)	! translated from RAP assignment below
-
-	DO 2000 l = mr_lo_s4(msens), mr_hi_s4(msens)
-
-	DO 300 j = j_lo, j_hi
-	DO 300 i = i_lo, i_hi
-
-* check air, SST and wind stress
-	IF ( air(i,j  ,l) .EQ. bad_air
-     .	.OR. sst(i,j,1,l) .EQ. bad_sst
-     .	.OR. vel(i,j  ,l) .EQ. bad_vel ) GOTO 290
-
-C     CALC WIND MAGNITUDE FROM STRESS					!  803
-C(     DON'T ALLOW WIND MAGNITUDE < 488 CM/SEC (.40DYNES/CM**2)		!  811)
-C   don't allow wind magnitude < windmin
-C     TO APPROX HIGH FREQ DISTURBANCES IN ITCZ				!  812
-      vel1=RAP*VEL(i,j,l)					!  808 mod
-      vel1=SQRT(vel1)						!  809 mod
-      IF (vel1.LT.windmin) vel1=windmin				!  815 mod
-50    CONTINUE							!  816
-C								!  817
-C     SATURATION VAPOR PRESSURES ... LATENT HEATING		!  818
-C								!  819
-      d1   =9.4051-2353./( air(i,j  ,l) + 273.16 )		!  820 mod
-      d2   =9.4051-2353./( SST(i,j,1,l) + 273.16 )		!  821 mod
-      d2   =10.**d2						!  822 mod
-      d1   =10.**d1						!  823 mod
-      d1   =d2-R*d1						!  824 mod
-      d1   =C1*d1						!  825 mod
-	sens(i,j,l) =-c2 * vel1 * (sst(i,j,1,l)-air(i,j,l))     ! sensible heat
-	evap(i,j,l) =-d1 * vel1				! evaporative heat
-	GOTO 300
-	
-* cannot do calculation at this point
- 290	      sens(i,j,l) = bad_sens
-	      evap(i,j,l) = bad_evap
-
- 300	continue
-
- 2000	CONTINUE
-
-	RETURN
-	END
diff --git a/fer/ocn/hradiation.F b/fer/ocn/hradiation.F
deleted file mode 100644
index 1561b0f..0000000
--- a/fer/ocn/hradiation.F
+++ /dev/null
@@ -1,162 +0,0 @@
-      SUBROUTINE HRADIATION ( sst, msst, rad, mrad )
-
-*
-*
-*  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. 
-*
-*
-* compute radiative heat flux into sea surface
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 4/30/86
-* revision 1.0 - 4/4/88  - added SST and heat ramp calculations
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-* capitalized code is lifted from the GFDL model
-*
-*	SW-LW (C5) is short wave down less long wave up
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xcontext.cmn'
-	include 'xonedim.cmn'
-	include 'xdset_parms.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'
-	INCLUDE 'TMAP_FORMAT:TMAP_DIMS.PARM'
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'
-	INCLUDE 'FERRET_CMN:XDSET_PARMS.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	msst, mrad
-	REAL    sst( m1lox:m1hix,m1loy:m1hiy,            m1lot:m1hit ),
-     .		rad( m2lox:m2hix,m2loy:m2hiy,            m2lot:m2hit )
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, l, dset
-	REAL	qswd, qlwu, rday, c5, angl, bad_rad, bad_sst, factor
-
-* --- end of introductory code ---
-
-* limits for calculation
-	i_lo = mr_lo_s1(mrad)
-	i_hi = mr_hi_s1(mrad)
-	j_lo = mr_lo_s2(mrad)
-	j_hi = mr_hi_s2(mrad)
-
-* flag for bad or missing values
-	bad_sst = mr_bad_data ( msst )
-	bad_rad = mr_bad_data ( mrad )
-
-* data set needed to determine which calculation to use
-	dset = mr_data_set( mrad)
-
-* ... PHILANDER/SIEGEL CODE ...
-      QSWD=500.			! cal/cm**2-day
-      QLWU=115.			!      "
-      RDAY=1./86400.		! 1 / seconds per day
-      C5=(QSWD-QLWU)*RDAY
-
-C									!  784
-C     APPROX ANNUAL SHORT WAVE DOWN - LONG WAVE UP			!  785
-C									!  786
-	DO 2000 l = mr_lo_s4(mrad), mr_hi_s4(mrad)
-
-      DO 30 i = i_lo, i_hi
-      DO 30 j = j_lo, j_hi					!  787 mod
-      ANGL=ACOS(CS(j))*57.29578		! degrees		!  788
-
-* select appropriate calculation for data set
-	IF ( dp_phil_qflux( dset ) ) THEN
-
-* ... Philander/Siegel heat flux (doesn't depend on SST)
-           rad(i,j,l)=(-ANGL*7.5+650.-QLWU)*RDAY		!  789
-           IF(ANGL.LT.20.) rad(i,j,l)=C5			!  790
-
-* ... calculations below depend on SST
-	ELSEIF( sst(i,j,l) .EQ. bad_sst ) THEN
-	   rad(i,j,l) = bad_rad
-
-	ELSEIF( dp_ramp1_qflux( dset ) ) THEN
-* ... single ramp heat flux - hot regions receive less radiation
-	   IF ( sst(i,j,l) .GT. 27. ) THEN
-	      factor = 1. - ( 82.65 * (sst(i,j,l)-27.) / (3.*500.) )
-	   ELSE
-	      factor = 1.
-	   ENDIF
-	   IF ( angl .GT. 20. ) THEN
-	      rad(i,j,l) = ( (-angl*7.5+650.)*factor - qlwu ) * rday
-	   ELSE
-	      rad(i,j,l) = (             qswd*factor - qlwu ) * rday
-	   ENDIF
-
-	ELSEIF( dp_ramp2_qflux( dset ) ) THEN
-* ... double ramp heat flux - hot regions receive less; cold regions, more
-	   IF ( sst(i,j,l) .LT. 26. ) THEN
-	      factor = 1. + ( 82.65 * (26.-sst(i,j,l)) / (2.*500.) )
-	   ELSEIF ( sst(i,j,l) .GT. 27. ) THEN
-	      factor = 1. - ( 82.65 * (sst(i,j,l)-27.) / (3.*500.) )
-	   ELSE
-	      factor = 1.
-	   ENDIF
-	   IF ( angl .GT. 20. ) THEN
-	      rad(i,j,l) = ( (-angl*7.5+650.)*factor - qlwu ) * rday
-	   ELSE
-	      rad(i,j,l) = (             qswd*factor - qlwu ) * rday
-	   ENDIF
-
-	ELSE
-* ... unknown heat flux parameterization
-	   rad(i,j,l) = bad_rad
-	ENDIF
-* compute increment
-
-
-30    CONTINUE								!  791
-
- 2000	CONTINUE
-
-      RETURN								!  833
-      END								!  834
diff --git a/fer/ocn/knudsen.F b/fer/ocn/knudsen.F
deleted file mode 100644
index 498a5d4..0000000
--- a/fer/ocn/knudsen.F
+++ /dev/null
@@ -1,162 +0,0 @@
-	SUBROUTINE KNUDSEN( temp, mtemp, salt, msalt, dens, mdens )
-
-*
-*
-*  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. 
-*
-*
-* lifted from COX routine KNUDSEN to compute the density of sea water via
-* the Knudsen formula 
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 12/15/87
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	   mtemp, msalt, mdens
-	REAL    temp( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		salt( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		dens( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit )
-
-* internal variable declarations:
-	REAL T3,S2,T2,S3,F1,F2,F3,FS,SIGMA,A,B1,B2,B,CO,ALPHA,ALPSTD
-	REAL S,T,DN,D
-	REAL POTEM
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, k, l
-	REAL	bad_temp, bad_salt, bad_dens
-
-* --- end of introductory code ---
-
-* limits for calculation
-	i_lo = mr_lo_s1(mdens)
-	i_hi = mr_hi_s1(mdens)
-	j_lo = mr_lo_s2(mdens)
-	j_hi = mr_hi_s2(mdens)
-
-* flag for bad/missing data
-	bad_temp = mr_bad_data( mtemp )
-	bad_salt = mr_bad_data( msalt )
-	bad_dens = mr_bad_data( mdens )
-
-	DO 2000 l = mr_lo_s4(mdens), mr_hi_s4(mdens)
-	DO 2000 k = mr_lo_s3(mdens), mr_hi_s3(mdens)
-
-* depth in meters
-	D = zdzz(k) / 100.
-
-* main loop - compute one horizontal grid
-	DO 100 j = j_lo, j_hi
-	DO 100 i = i_lo, i_hi
-
-	   IF ( temp(i,j,k,l).EQ.bad_temp .OR. salt(i,j,k,l).EQ.bad_salt ) THEN
-	      dens(i,j,k,l) = bad_dens
-	      GOTO 100
-	   ENDIF
-
-* true salinity(ppt) and potential temperature
-	   s = (salt(i,j,k,l)*1000.D0) + 35.
-	   t = POTEM( temp(i,j,k,l), s, d )
-
-* stolen KNUDSEN code
-      T2 = T*T
-      T3= T2* T
-      S2 = S*S
-      S3 = S2 * S
-      F1 = -(T-3.98)**2 * (T+283.)/(503.57*(T+67.26))
-      F2 = T3*1.0843E-6 - T2*9.8185E-5 + T*4.786E-3
-      F3 = T3*1.667E-8 - T2*8.164E-7 + T*1.803E-5
-      FS= S3*6.76786136D-6 - S2*4.8249614D-4 + S*8.14876577D-1
-      SIGMA= F1 + (FS+3.895414D-2)*(1.-F2+F3*(FS-.22584586D0))
-      A= D*1.0E-4*(105.5+ T*9.50 - T2*0.158 - D*T*1.5E-4)  -
-     1(227. + T*28.33 - T2*0.551 + T3* 0.004)
-      B1 = (FS-28.1324)/10.0
-      B2 = B1 * B1
-      B= -B1* (147.3-T*2.72 + T2*0.04 - D*1.0E-4*(32.4- 0.87*T+.02*T2))
-      B= B+ B2*(4.5-0.1*T - D*1.0E-4*(1.8-0.06*T))
-      CO = 4886./(1. + 1.83E-5*D)
-      ALPHA=     D*1.0E-6* (CO+A+B)
-      DN=(SIGMA+ALPHA)/(1.-1.E-3*ALPHA)
-
-	dens(i,j,k,l) = DN
- 100	CONTINUE
- 2000	CONTINUE
-
-      RETURN
-      END
-********************************************************************
-      REAL FUNCTION POTEM(T,S,P)
-C     POTENTIAL TEMPERATURE FUNCTION
-C     BASED ON FOFONOFF AND FROESE (1958) AS SHOWN IN "THE SEA" VOL. 1,
-C     PAGE 17, TABLE IV
-C     INPUT IS TEMPERATURE, SALINITY, PRESSURE (OR DEPTH)
-C     UNITS ARE DEG.C., PPT, DBARS (OR METERS)
-	REAL t, s, p
-	REAL s2, p2, t2, t3, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11
-      B1=-1.60E-5*P
-      B2=1.014E-5*P*T
-      T2=T*T
-      T3=T2*T
-      B3=-1.27E-7*P*T2
-      B4=2.7E-9*P*T3
-      B5=1.322E-6*P*S
-      B6=-2.62E-8*P*S*T
-      S2=S*S
-      P2=P*P
-      B7=4.1E-9*P*S2
-      B8=9.14E-9*P2
-      B9=-2.77E-10*P2*T
-      B10=9.5E-13*P2*T2
-      B11=-1.557E-13*P2*P
-      POTEM=B1+B2+B3+B4+B5+B6+B7+B8+B9+B10+B11
-      POTEM=T-POTEM
-      RETURN
-      END
diff --git a/fer/ocn/prof.F b/fer/ocn/prof.F
deleted file mode 100644
index c61845f..0000000
--- a/fer/ocn/prof.F
+++ /dev/null
@@ -1,175 +0,0 @@
-      SUBROUTINE PROF( KMIX,	UK,  muk,
-     .				VK,  mvk,
-     .				ROK, mrok,
-     .				RNUE,mrnue, HNUE,mhnue  )	! 1522 mod
-
-*
-*
-*  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. 
-*
-*
-* calculate vertical mixing coefficients
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 3/7/86	extracted from SUBROUTINE HDIFFUS
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* revision 0.1 - 5/7/87 - changes in IF tests to avoid under/over flow
-* V200:  7/25/89 - 4D symmetrical
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	KMIX, muk, mvk, mrok, mrnue, mhnue
-* subscript ranges from memory variable table ...
-	REAL      uk( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		  vk( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		 rok( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit ),
-     .		rnue( m4lox:m4hix,m4loy:m4hiy,m4loz:m4hiz,m4lot:m4hit ),
-     .		hnue( m5lox:m5hix,m5loy:m5hiy,m5loz:m5hiz,m5lot:m5hit )
-
-* internal variable declarations:
-	INTEGER	i, j, k, l
-	REAL	bad_uk, bad_vk, bad_ro, bad_rnue, bad_hnue,
-     .		fricmax, gr, di, windmix
-
-      DATA FRICMAX / 50./,GR/980./					! 1541
-
-* flag(s) for bad or missing values
-	bad_uk = mr_bad_data ( muk  )
-	bad_vk = mr_bad_data ( mvk  )
-	bad_ro = mr_bad_data ( mrok )
-	bad_rnue = mr_bad_data ( mrnue )   ! added 2/93
-	bad_hnue = mr_bad_data ( mhnue )   ! added 2/93
-
-	DO 1000 l = mr_lo_s4(mrnue), mr_hi_s4(mrnue)
-	DO 1000 k = mr_lo_s3(mrnue), mr_hi_s3(mrnue)
-
-	IF ( k .LT. kmix ) THEN 	! kmix may be generalized to im x jm
-
-	DO 50 j = mr_lo_s2(mrnue), mr_hi_s2(mrnue)
-	DO 50 i = mr_lo_s1(mrnue), mr_hi_s1(mrnue)
-
-	IF ( uk  (i,j,k,l) .EQ. bad_uk
-     .	.OR. vk  (i,j,k,l) .EQ. bad_vk
-     .	.OR. rok (i,j,k,l) .EQ. bad_ro ) THEN
-	   rnue(i,j,k,l) = bad_rnue
-	   hnue(i,j,k,l) = bad_hnue
-	   GOTO 50
-	ENDIF
-
-      HNUE(i,j,k,l)=((Uk(I,j,K+1,l)-Uk(i,j,k,l))**2
-     .		   + (Vk(I,j,k+1,l)-Vk(i,j,k,l))**2)	! 1545 mod
-C									! 1547
-C     COMPUTE RICHARDSON NUMBER						! 1548
-C									! 1549
-	di = dzz(k+1)		! ref.   1088   DI(I,K)=ZDZZ(K+1)-ZDZZ(K)
-	HNUE(i,j,k,l)= GR*DI*(ROk(I,j,k+1,l)-ROk(i,j,k,l))
-     .		     /(HNUE(i,j,k,l)+1.E-20)! 1552 mod
-
-C									! 1553
-C     NEG RICH NUMBERS WILL BE HANDLED BY CONVECTIVE ADJUSTMENT!	! 1554
-C									! 1555
-	hnue(i,j,k,l) = ABS( hnue(i,j,k,l) )			     ! 1556 mod
-
-* under/over flow fix
-	IF ( hnue(i,j,k,l) .GT. 1.E11 ) THEN
-	 rnue(i,j,k,l) = bam
-	 hnue(i,j,k,l) = bah
-	 GOTO 50
-	ENDIF
-
-      HNUE(i,j,k,l)=1.+5.*HNUE(i,j,k,l)					! 1559
-C									! 1561
-C     COMPUTE VERTICAL VISCOSITY					! 1562
-C									! 1563
-      RNUE(i,j,k,l) = FRICMAX / HNUE(i,j,k,l)**2		! 1566 mod
-C									! 1567
-C     COMPUTE VERTICAL DIFFUSIVITY					! 1568
-C									! 1569
-      HNUE(i,j,k,l)=RNUE(i,j,k,l)/HNUE(i,j,k,l)+BAH		! 1572 mod
-C									! 1573
-C     ADD IN BACKGROUND							! 1574
-C									! 1575
-      RNUE(i,j,k,l)=RNUE(i,j,k,l)+BAM				! 1578 mod
- 50	CONTINUE
-
-	ELSE
-
-C									! 1579
-C     SET BACKGROUND VALUES BELOW LEVEL KMIX				! 1580
-C									! 1581
-	DO 60 j = mr_lo_s2(mrnue), mr_hi_s2(mrnue)
-	DO 60 i = mr_lo_s1(mrnue), mr_hi_s1(mrnue)		! 1583 mod 
-      RNUE(i,j,k,l)=BAM							! 1584
-  60  HNUE(i,j,k,l)=BAH							! 1585
-
-	ENDIF
-C									! 1586
-C     APPROX HIGH FREQ WIND MIXING NEAR SURFACE				! 1587
-C									! 1588
-	IF ( k .EQ. 1 ) THEN
-      WINDMIX=10.							! 1589
-	DO 70 j = mr_lo_s2(mrnue), mr_hi_s2(mrnue)
-	DO 70 i = mr_lo_s1(mrnue), mr_hi_s1(mrnue)		! 1590 mod 
-      IF (   rnue(i,j,k,l) .NE. bad_rnue
-     . .AND. RNUE(i,j,k,l) .LT. WINDMIX ) RNUE(i,j,k,l)=WINDMIX	! 1591 mod
-      IF (   hnue(i,j,k,l) .NE. bad_hnue
-     . .AND. HNUE(i,j,k,l) .LT. WINDMIX ) HNUE(i,j,k,l)=WINDMIX	! 1592 mod
-70    CONTINUE								! 1593
-	ENDIF
-
- 1000	CONTINUE
-
-      RETURN								! 1594
-      END								! 1595
-
diff --git a/fer/ocn/sn_hadvec.F b/fer/ocn/sn_hadvec.F
deleted file mode 100644
index 97dd4dd..0000000
--- a/fer/ocn/sn_hadvec.F
+++ /dev/null
@@ -1,150 +0,0 @@
-	SUBROUTINE SN_HADVEC ( tk, mtk, vk, mvk, advec, madvec )
-
-*
-*
-*  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. 
-*
-*
-* compute south-north component of heat advection
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 3/17/86	extracted from SUBROUTINE HDIFFUS
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* revision 0.1 - 6/24/88 - added bad data check on vk(i,j-1)
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - array declarations using XMEM_SUBSC.CMN (reordered args)
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-* calling argument declarations:
-	INTEGER	mvk, mtk, madvec
-* subscript ranges from memory variable table ...
-	REAL       tk( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		   vk( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		advec( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit )
-	REAL	fvst(im),fvn(im)
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, k, l
-	REAl	bad_tk, bad_vk, bad_qadvec, fact1, fact2, fact3, dvtdym, tdvdy
-
-* --- end of introductory code ---
-
-* limits for calculation
-	i_lo = mr_lo_s1(madvec)
-	i_hi = mr_hi_s1(madvec)
-	j_lo = mr_lo_s2(madvec)
-	j_hi = mr_hi_s2(madvec)
-
-* flag for bad/missing data
-	bad_tk	   = mr_bad_data( mtk )
-	bad_vk	   = mr_bad_data( mvk )
-	bad_qadvec = mr_bad_data( madvec )
-
-* south to north loop through east-west lines
-	DO 2000 l = mr_lo_s4(madvec), mr_hi_s4(madvec)
-	DO 2000 k = mr_lo_s3(madvec), mr_hi_s3(madvec)
-
-	DO 1000 j = j_lo, j_hi
-
-	IF ( j .EQ. 1  .OR.  j .EQ. jm ) THEN
-	   DO 100 i = i_lo, i_hi
- 100	   advec( i,j,k,l ) = bad_qadvec
-	   GOTO 1000
-	ENDIF
-
-C   FIND ADVECTIVE COEFFICIENTS FOR SOUTH AND NORTH FACES OF T,S BOXES	! 2967
-
-      FACT1 = CSTR(j)*DYTR(j)	    				! 2969 mod
-      FACT2 = fact1 * CS(j)	 	   			! 2970 mod
-      fact3 = fact1 * cs(j-1)
-      DO 690 I= MAX(2,i_lo), i_hi				! 2972 mod
-	IF ( vk(i  ,j  ,k,l) .EQ. bad_vk
-     .  .OR. vk(i-1,j  ,k,l) .EQ. bad_vk
-     .  .OR. vk(i  ,j-1,k,l) .EQ. bad_vk
-     .	.OR. vk(i-1,j-1,k,l) .EQ. bad_vk ) THEN
-	   fvn(i) = bad_val4
-	ELSE
-	   FVN (I)=(Vk(i,j,k,l  )*DXU(I)+Vk(I-1,j  ,k,l)
-     .		   *DXU(I-1))*FACT2*DXT4R(I)			! 2975 mod
-	   FVST(I)=(Vk(i,j-1,k,l)*DXU(I)+Vk(I-1,j-1,k,l)
-     .		   *DXU(I-1))*FACT3*DXT4R(I)
-	ENDIF
- 690  CONTINUE	    							! 2976
-
-* calculate minus south-north component of total advection in flux form
-      DO 820 I= i_lo, i_hi					! 3066 mod
-
-	
-	IF ( i .EQ. 1
-     .	.OR. fvn(i    ) .EQ. bad_val4
-     .	.OR. tk (i,j  ,k,l) .EQ. bad_tk
-     .	.OR. tk (i,j-1,k,l) .EQ. bad_tk
-     .	.OR. tk (i,j+1,k,l) .EQ. bad_tk ) THEN
-	   advec( i,j,k,l ) = bad_qadvec
-	   GOTO 820
-	ENDIF
-
-        dvtdym =  (						! 3069 mod
-     *           -FVN (I)*(tk(i,j+1,k,l) + tk(i,j,  k,l))	! 3070 mod
-     *           +FVST(I)*(tk(i,j,k,l  ) + tk(i,j-1,k,l)))	! 3071 mod
-
-* calculate individual advection component by subtracting the vector t*dU/dX 
-	tdvdy = tk(i,j,k,l) * (fvn(i  ) - fvst(i))         *2.0
-	advec(i,j,k,l) = (dvtdym + tdvdy ) * cmonthly
-
- 820  CONTINUE	    							! 3072
-
- 1000	CONTINUE
- 2000	CONTINUE
-
-	RETURN
-	END
diff --git a/fer/ocn/state.F b/fer/ocn/state.F
deleted file mode 100644
index 37f2d69..0000000
--- a/fer/ocn/state.F
+++ /dev/null
@@ -1,238 +0,0 @@
-      SUBROUTINE STATE ( temp, mtemp, salt, msalt, rho, mrho )
-
-*
-*
-*  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. 
-*
-*
-* compute density "referenced to surface" from equation of state
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 3/10/86	extracted from SUBROUTINE HDIFFUS
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* revision 1.0 - 1/8/87 - STATED --> STATE with STATED added as ENTRY
-* V200:  7/25/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	mtemp, msalt, mrho
-* subscript ranges from memory variable table ...
-	REAL    temp( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		salt( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		 rho( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit )
-
-* internal variable declarations:
-	LOGICAL	use_k
-	INTEGER	n, i, j, k, l, m
-	REAL	bad_temp, bad_salt, bad_rho, tq, sq
-	REAL	TO(KMP1),SO(KMP1),C(KM,9)			! 2672 mod
-
-C     POLYNOMIAL COEFFS GO IN HERE					! 2674
-C									! 2675
-      DATA TO/13.4993058,13.4979166,13.4965263,13.4951349,13.4937423,	! 2676
-     *13.4923486,13.4909537,13.4895577,13.4881606,13.4867624,13.4851881,! 2677
-     *13.4832619,13.4809829,13.4783495,13.4751843,13.4713080,13.4663623,! 2678
-     * 8.4694918, 8.4614842, 8.4482321, 5.9391351, 4.4212668, 2.8993113,! 2679
-     * 2.8539693, 2.7957242, 2.7277752, 2.6540454,0./			! 2680
-      DATA SO/-.00225,-.00225,-.00225,-.00225,-.00225,-.00225,-.00225,	! 2681
-     *-.00225,-.00225,-.00225,-.00225,-.00225,-.00225,-.00225,-.00225,	! 2682
-     *-.00225,-.00225, .00015, .00015, .00015,-.00010,-.00010,-.00025,	! 2683
-     *-.00025,-.00020,-.00020,-.00020,0./				! 2684
-      DATA (C( 1,N),N=1,9)/						! 2685
-     1         -.2017283E-03, .7710055E+00,-.4918875E-05,-.2008622E-02,	! 2686
-     1          .4495770E+00, .3656158E-07, .4728884E-02, .3770116E-04,	! 2687
-     2          .6548569E+01/						! 2688
-      DATA (C( 2,N),N=1,9)/						! 2689
-     1         -.2019152E-03, .7709387E+00,-.4915766E-05,-.2007672E-02,	! 2690
-     1          .4496149E+00, .3652747E-07, .4725372E-02, .3768380E-04,	! 2691
-     2          .6548196E+01/						! 2692
-      DATA (C( 3,N),N=1,9)/						! 2693
-     1         -.2021021E-03, .7708719E+00,-.4912657E-05,-.2006722E-02,	! 2694
-     1          .4496524E+00, .3649331E-07, .4721864E-02, .3766645E-04,	! 2695
-     2          .6547823E+01/						! 2696
-      DATA (C( 4,N),N=1,9)/						! 2697
-     1         -.2022889E-03, .7708051E+00,-.4909550E-05,-.2005772E-02,	! 2698
-     1          .4496897E+00, .3645911E-07, .4718360E-02, .3764911E-04,	! 2699
-     2          .6547449E+01/						! 2700
-      DATA (C( 5,N),N=1,9)/						! 2701
-     1         -.2024757E-03, .7707383E+00,-.4906444E-05,-.2004821E-02,	! 2702
-     1          .4497267E+00, .3642486E-07, .4714860E-02, .3763177E-04,	! 2703
-     2          .6547076E+01/						! 2704
-      DATA (C( 6,N),N=1,9)/						! 2705
-     1         -.2026624E-03, .7706715E+00,-.4903338E-05,-.2003869E-02,	! 2706
-     1          .4497634E+00, .3639055E-07, .4711363E-02, .3761443E-04,	! 2707
-     2          .6546703E+01/						! 2708
-      DATA (C( 7,N),N=1,9)/						! 2709
-     1         -.2028490E-03, .7706047E+00,-.4900234E-05,-.2002918E-02,	! 2710
-     1          .4497997E+00, .3635621E-07, .4707871E-02, .3759710E-04,	! 2711
-     2          .6546329E+01/						! 2712
-      DATA (C( 8,N),N=1,9)/						! 2713
-     1         -.2030356E-03, .7705380E+00,-.4897130E-05,-.2001966E-02,	! 2714
-     1          .4498358E+00, .3632181E-07, .4704383E-02, .3757977E-04,	! 2715
-     2          .6545956E+01/						! 2716
-      DATA (C( 9,N),N=1,9)/						! 2717
-     1         -.2032221E-03, .7704712E+00,-.4894028E-05,-.2001014E-02,	! 2718
-     1          .4498716E+00, .3628736E-07, .4700898E-02, .3756245E-04,	! 2719
-     2          .6545583E+01/						! 2720
-      DATA (C(10,N),N=1,9)/						! 2721
-     1         -.2034085E-03, .7704045E+00,-.4890926E-05,-.2000061E-02,	! 2722
-     1          .4499071E+00, .3625287E-07, .4697418E-02, .3754514E-04,	! 2723
-     2          .6545209E+01/						! 2724
-      DATA (C(11,N),N=1,9)/						! 2725
-     1         -.2036182E-03, .7703294E+00,-.4887438E-05,-.1998989E-02,	! 2726
-     1          .4499466E+00, .3621401E-07, .4693507E-02, .3752566E-04,	! 2727
-     2          .6544789E+01/						! 2728
-      DATA (C(12,N),N=1,9)/						! 2729
-     1         -.2038743E-03, .7702377E+00,-.4883176E-05,-.1997678E-02,	! 2730
-     1          .4499945E+00, .3616642E-07, .4688734E-02, .3750187E-04,	! 2731
-     2          .6544276E+01/						! 2732
-      DATA (C(13,N),N=1,9)/						! 2733
-     1         -.2041769E-03, .7701293E+00,-.4878142E-05,-.1996128E-02,	! 2734
-     1          .4500503E+00, .3611007E-07, .4683103E-02, .3747376E-04,	! 2735
-     2          .6543669E+01/						! 2736
-      DATA (C(14,N),N=1,9)/						! 2737
-     1         -.2045258E-03, .7700043E+00,-.4872336E-05,-.1994338E-02,	! 2738
-     1          .4501137E+00, .3604489E-07, .4676619E-02, .3744135E-04,	! 2739
-     2          .6542968E+01/						! 2740
-      DATA (C(15,N),N=1,9)/						! 2741
-     1         -.2049441E-03, .7698544E+00,-.4865374E-05,-.1992189E-02,	! 2742
-     1          .4501885E+00, .3596645E-07, .4668857E-02, .3740247E-04,	! 2743
-     2          .6542128E+01/						! 2744
-      DATA (C(16,N),N=1,9)/						! 2745
-     1         -.2054550E-03, .7696712E+00,-.4856871E-05,-.1989560E-02,	! 2746
-     1          .4502778E+00, .3587025E-07, .4659397E-02, .3735500E-04,	! 2747
-     2          .6541100E+01/						! 2748
-      DATA (C(17,N),N=1,9)/						! 2749
-     1         -.2061045E-03, .7694382E+00,-.4846060E-05,-.1986211E-02,	! 2750
-     1          .4503884E+00, .3574728E-07, .4647401E-02, .3729463E-04,	! 2751
-     2          .6539793E+01/						! 2752
-      DATA (C(18,N),N=1,9)/						! 2753
-     1         -.1629093E-03, .7811063E+00,-.5282466E-05,-.2324422E-02,	! 2754
-     1          .7177684E+00, .4946791E-07, .5152206E-02, .3861644E-04,	! 2755
-     2          .6613048E+01/						! 2756
-      DATA (C(19,N),N=1,9)/						! 2757
-     1         -.1645366E-03, .7805728E+00,-.5255967E-05,-.2315935E-02,	! 2758
-     1          .7082405E+00, .4927405E-07, .5132079E-02, .3850946E-04,	! 2759
-     2          .6610456E+01/						! 2760
-      DATA (C(20,N),N=1,9)/						! 2761
-     1         -.1671881E-03, .7797018E+00,-.5212693E-05,-.2302030E-02,	! 2762
-     1          .6921882E+00, .4895038E-07, .5099609E-02, .3833500E-04,	! 2763
-     2          .6606212E+01/						! 2764
-      DATA (C(21,N),N=1,9)/						! 2765
-     1         -.1447954E-03, .7840290E+00,-.5507283E-05,-.2469817E-02,	! 2766
-     1          .5823823E+00, .5786840E-07, .6147739E-02, .3922164E-04,	! 2767
-     2          .6637359E+01/						! 2768
-      DATA (C(22,N),N=1,9)/						! 2769
-     1         -.1356332E-03, .7854813E+00,-.5641448E-05,-.2546893E-02,	! 2770
-     1          .3319438E+00, .6384623E-07, .6990543E-02, .3953988E-04,	! 2771
-     2          .6652626E+01/						! 2772
-      DATA (C(23,N),N=1,9)/						! 2773
-     1         -.1289633E-03, .7859899E+00,-.5750134E-05,-.2609364E-02,	! 2774
-     1         -.2227097E+00, .7043575E-07, .7961671E-02, .3998952E-04,	! 2775
-     2          .6664665E+01/						! 2776
-      DATA (C(24,N),N=1,9)/						! 2777
-     1         -.1422700E-03, .7819175E+00,-.5540261E-05,-.2539449E-02,	! 2778
-     1         -.1417770E+01, .6943923E-07, .7901023E-02, .3952927E-04,	! 2779
-     2          .6646847E+01/						! 2780
-      DATA (C(25,N),N=1,9)/						! 2781
-     1         -.1576122E-03, .7772468E+00,-.5293956E-05,-.2457059E-02,	! 2782
-     1         -.3896984E+01, .6802500E-07, .7840945E-02, .3896220E-04,	! 2783
-     2          .6626305E+01/						! 2784
-      DATA (C(26,N),N=1,9)/						! 2785
-     1         -.1734919E-03, .7722991E+00,-.5034400E-05,-.2370115E-02,	! 2786
-     1         -.5751618E+01, .6623761E-07, .7797404E-02, .3842858E-04,	! 2787
-     2          .6604176E+01/						! 2788
-      DATA (C(27,N),N=1,9)/						! 2789
-     1         -.1889668E-03, .7674361E+00,-.4777494E-05,-.2283773E-02,	! 2790
-     1         -.7821981E+01, .6415805E-07, .7773554E-02, .3792553E-04,	! 2791
-     2          .6582285E+01/						! 2792
-
-* for entry STATE include compression effects ( depth passed throuugh "m" )
-	use_k = .TRUE.
-	GOTO 100
-
-* for entry STATED REFERENCE DENSITY TO SURFACE ( depth m = 1 always )
-	ENTRY STATED ( temp, mtemp, salt, msalt, rho, mrho )
-	use_k = .FALSE.	
-	m=1								! 2811
-
-* flag for bad/missing data
- 100	bad_temp = mr_bad_data( mtemp )
-	bad_salt = mr_bad_data( msalt )
-	bad_rho  = mr_bad_data( mrho )
-
-	DO 1000 l = mr_lo_s4(mrho), mr_hi_s4(mrho)
-	DO 1000 k = mr_lo_s3(mrho), mr_hi_s3(mrho)
-	IF ( use_k ) m = k
-
-	DO 120 j = mr_lo_s2(mrho), mr_hi_s2(mrho)
-	DO 120 i = mr_lo_s1(mrho), mr_hi_s1(mrho)		! 2813 mod
-
-	IF ( temp(i,j,k,l) .EQ. bad_temp
-     .	.OR. salt(i,j,k,l) .EQ. bad_salt ) THEN
-	   rho(i,j,k,l) = bad_rho
-	   GOTO 120
-	ENDIF
-
-      TQ = temp(i,j,k,l) - TO(M)				! 2814 mod
-      SQ = salt(i,j,k,l) - SO(M)				! 2815 mod
-      RHO(i,j,k,l)=( C(M,1) + (C(M,4) + C(M,7)* SQ ) * SQ	! 2816 mod
-     1+( C(M,3) + C(M,8)*SQ + C(M,6)*TQ ) * TQ )		! 2817 mod
-     2*TQ + ( C(M,2) + (C(M,5) + C(M,9)				! 2818 mod
-     3*SQ)*SQ)*SQ						! 2819 mod
- 120  CONTINUE								! 2820
- 1000	CONTINUE
-
-      RETURN								! 2821
-	END
-
diff --git a/fer/ocn/u_from_psi.F b/fer/ocn/u_from_psi.F
deleted file mode 100644
index 92cb9e2..0000000
--- a/fer/ocn/u_from_psi.F
+++ /dev/null
@@ -1,133 +0,0 @@
-	SUBROUTINE U_FROM_PSI (	psi , mpsi ,
-     .				uavz, muavz,
-     .				vavz, mvavz )
-
-*
-*
-*  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. 
-*
-*
-* compute vertically averaged components of velocity from transport stream fcn
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 -1/20/87 extracted from SUBROUTINE CLINIC
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	mpsi, muavz, mvavz
-
-* subscript ranges from memory variable table ...
-	REAL     psi( m1lox:m1hix,m1loy:m1hiy,            m1lot:m1hit ),
-     .		uavz( m2lox:m2hix,m2loy:m2hiy,            m2lot:m2hit ),
-     .		vavz( m3lox:m3hix,m3loy:m3hiy,            m3lot:m3hit )
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, l
-	REAL	bad_psi, bad_uavz, bad_vavz,
-     .		diag1, diag2
-
-* --- end of introductory code ---
-
-* limits for calculation
-	i_lo = mr_lo_s1(muavz)
-	i_hi = mr_hi_s1(muavz)
-	j_lo = mr_lo_s2(muavz)
-	j_hi = mr_hi_s2(muavz)
-
-* flag for bad/missing data
-	bad_psi  = mr_bad_data( mpsi  )
-	bad_uavz = mr_bad_data( muavz )
-	bad_vavz = mr_bad_data( mvavz )
-
-* ***************************************************************
-* ORIGINAL GFDL 205 CODE UPON WHICH CALCULATION IS BASED
-*
-*  129       C   COMPUTE EXTERNAL MODE VELOCITIES FOR ROW J+1 AND TWO TIME LEVELS
-*  137             DO 155 I=1,IMTM1
-*  138             DIAG1=P (I+1,J+2)-P (I,J+1)
-*  139             DIAG2=P (I,J+2)-P (I+1,J+1)
-*  140             SFU (I)=-(DIAG1+DIAG2)*DYU2R(J+1)*HR(I,J+1)
-*  141             SFV(I)=(DIAG1-DIAG2)*DXU2R(I)*HR(I,J+1)*CSR(J+1)
-*  142        155  CONTINUE
-* ******************************************************************
-	DO 2000 l = mr_lo_s4(muavz), mr_hi_s4(muavz)
-
-	DO 155 j = j_lo, j_hi
-	DO 155 i = i_lo, i_hi
-* ... cant compute derivatives at fringes of full grid
-	   IF ( i .EQ. im .OR. j .EQ. jm ) THEN
-	      uavz(i,j,l) = bad_uavz
-	      vavz(i,j,l) = bad_vavz
-	      GOTO 155
-	   ENDIF
-
-	   IF ( psi(i  ,j  ,l) .EQ. bad_psi
-     .	    .OR.psi(i+1,j  ,l) .EQ. bad_psi
-     .	    .OR.psi(i+1,j+1,l) .EQ. bad_psi
-     .	    .OR.psi(i  ,j+1,l) .EQ. bad_psi) THEN
-	      uavz(i,j,l) = bad_uavz
-	      vavz(i,j,l) = bad_vavz
-	   ELSE
-	      diag1=psi(i+1,j+1,l) - psi(i  ,j,l)
-	      diag2=psi(i  ,j+1,l) - psi(i+1,j,l)
-	      uavz(i,j,l) = -(diag1+diag2) * dyu2r(j) * hr
-	      vavz(i,j,l) =  (diag1-diag2) * dxu2r(i) * hr * csr(j)
-	   ENDIF
- 155	CONTINUE
-
- 2000	CONTINUE
-	RETURN
-	END
diff --git a/fer/ocn/vel_adv_ew.F b/fer/ocn/vel_adv_ew.F
deleted file mode 100644
index 467ccab..0000000
--- a/fer/ocn/vel_adv_ew.F
+++ /dev/null
@@ -1,161 +0,0 @@
-	SUBROUTINE  VEL_ADV_EW ( fuw , mfuw,
-     .				 u   , mu  ,
-     .				 uadx, muadx )
-
-*
-*
-*  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. 
-*
-*
-* compute zonal advection of velocity components
-* note: the identical code applies to both U and V
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 -1/23/87 extracted from SUBROUTINE CLINIC
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* revision 0.1 - 4/14/87 - converted incorrect flux-form calculation to
-*			   true advection
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	mfuw, mu, muadx
-
-* subscript ranges from memory variable table ...
-	REAL     fuw( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		   u( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		uadx( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit )
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, k, l
-	REAL	bad_u, bad_fuw, dqudx, qdudx
-
-* --- end of introductory code ---
-
-* limits for calculation
-	i_lo = mr_lo_s1(muadx)
-	i_hi = mr_hi_s1(muadx)
-	j_lo = mr_lo_s2(muadx)
-	j_hi = mr_hi_s2(muadx)
-
-* flag for bad/missing data
-	bad_u   = mr_bad_data( mu )
-	bad_fuw = mr_bad_data( mfuw )
-
-* ***************************************************************
-* ORIGINAL GFDL 205 CODE UPON WHICH CALCULATION IS BASED
-*
-* 282 C   COMPUTE EFFECT OF HORIZONTAL ADVECTION IN MOMENTUM EQUATIONS
-* 283 C
-* 284       DO 300 K=1,KM
-* 285       DO 300 I=1,IMT
-* 286       TEMP2D(I,K)=FUW(I+1,K)*(U(I+1,K)+U(I,K))
-* 287  300  CONTINUE
-* 288       DO 303 K=1,KM
-* 289       DO 303 I=1,IMT
-* 290       UA(I,K)=(TEMP2D(I-1,K)-TEMP2D(I,K))*DXU2R2D(I,K)
-* 291  303  CONTINUE
-
-* 297       DO 310 K=1,KM
-* 298       DO 310 I=1,IMT
-* 299       TEMP2D(I,K)=FUW(I+1,K)*(V(I+1,K)+V(I,K))
-* 300  310  CONTINUE
-* 301       DO 313 K=1,KM
-* 302       DO 313 I=1,IMT
-* 303       VA(I,K)=(TEMP2D(I-1,K)-TEMP2D(I,K))*DXU2R2D(I,K)
-* 304  313  CONTINUE
-*************************************************************************
-	DO 2000 l = mr_lo_s4(muadx), mr_hi_s4(muadx)
-	DO 2000 k = mr_lo_s3(muadx), mr_hi_s3(muadx)
-
-	DO 300 j = j_lo, j_hi
-
-* to save half of the additions ...
-*	   IF ( i .NE. 1 ) tempim1 = fuw(i,j,k,l) * (u(i,j,k,l)+u(i-1,j,k,l))
-
-	DO 300 i = i_lo, i_hi
-
-	   IF ( i .EQ. 1 .OR. i .EQ. im ) THEN
-	      uadx(i,j,k,l) = bad_val4
-	      GOTO 300
-	   ENDIF
-
-	   IF ( u(i-1,j,k,l) .EQ. bad_u
-     .	    .OR.u(i  ,j,k,l) .EQ. bad_u
-     .	    .OR.u(i+1,j,k,l) .EQ. bad_u
-     .	    .OR.fuw(i  ,j,k,l) .EQ. bad_fuw
-     .	    .OR.fuw(i+1,j,k,l) .EQ. bad_fuw ) THEN
-  
-	      uadx(i,j,k,l) = bad_val4
-
-	   ELSE
-
-! temp - future performance:  tempi = fuw(i+1,j,k,l) * (u(i+1,j,k,l)+u(i,j,k,l))
-
-* flux-form calculation: compute +d/dx(QU) ( where "Q" may be "U" or "V" )
-	      dqudx = ( fuw(i+1,j,k,l) * (u(i+1,j,k,l)+u(i,j,k,l)) 
-     .		    -   fuw(i  ,j,k,l) * (u(i,j,k,l)+u(i-1,j,k,l)) ) * dxu2r(i)
-
-* compute +Q*d/dx(U)
-	      qdudx = u(i,j,k,l) * (fuw(i+1,j,k,l) - fuw(i,j,k,l)) * dxur(i)
-
-* compute -U*d/dx(Q) = Q*d/dx(U) - d/dx(QU)
-	      uadx(i,j,k,l) = ( qdudx - dqudx ) * cmonthly
-
-	   ENDIF
-
- 300	CONTINUE
- 2000	CONTINUE
-	RETURN
-	END
diff --git a/fer/ocn/vel_adv_ns.F b/fer/ocn/vel_adv_ns.F
deleted file mode 100644
index bb3179b..0000000
--- a/fer/ocn/vel_adv_ns.F
+++ /dev/null
@@ -1,153 +0,0 @@
-	SUBROUTINE  VEL_ADV_NS ( fvn , mfvn,
-     .				 v   , mv  ,
-     .				 vady, mvady )
-
-*
-*
-*  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. 
-*
-*
-* compute meridional advection of velocity components
-* note: the identical code applies to both U and V
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 -1/23/87 extracted from SUBROUTINE CLINIC
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* revision 0.1 - 4/14/87 - converted incorrect flux-form calculation to
-*			   true advection
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	mfvn, mv, mvady
-
-* subscript ranges from memory variable table ...
-	REAL     fvn( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		   v( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		vady( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit )
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, k, l
-	REAL	bad_v, bad_fvn, factor, dQVdy, QdVdy, fvst_ij
-
-* --- end of introductory code ---
-
-* limits for calculation
-	i_lo = mr_lo_s1(mvady)
-	i_hi = mr_hi_s1(mvady)
-	j_lo = mr_lo_s2(mvady)
-	j_hi = mr_hi_s2(mvady)
-
-* flag for bad/missing data
-	bad_v   = mr_bad_data( mv )
-	bad_fvn = mr_bad_data( mfvn )
-
-* ***************************************************************
-* ORIGINAL GFDL 205 CODE UPON WHICH CALCULATION IS BASED
-*
-* 282       C   COMPUTE EFFECT OF HORIZONTAL ADVECTION IN MOMENTUM EQUATIONS
-
-* 292       DO 305 K=1,KM
-* 293       DO 305 I=1,IMT
-* 294       UA(I,K)=UA(I,K)
-* 295      2 -FVN(I,K)*(UP(I,K)+U(I,K))+FVSU(I,K)*(U(I,K)+UM(I,K))
-* 296  305  CONTINUE
-
-* 305       DO 315 K=1,KM
-* 306       DO 315 I=1,IMT
-* 307       VA(I,K)=VA(I,K)
-* 308      2 -FVN(I,K)*(VP(I,K)+V(I,K))+FVSU(I,K)*(V(I,K)+VM(I,K))
-* 309  315  CONTINUE
-*************************************************************************
-
-	DO 305 j = j_lo, j_hi
-
-	   IF ( j .GT. 1 ) factor = cs(j-1) * dyu(j-1) * csr(j) * dyur(j)
-
-	DO 305 l = mr_lo_s4(mvady), mr_hi_s4(mvady)
-	DO 305 k = mr_lo_s3(mvady), mr_hi_s3(mvady)
-	DO 305 i = i_lo, i_hi
-
-	   IF ( j .EQ. 1 .OR. j .EQ. jm ) THEN
-	      vady(i,j,k,l) = bad_val4
-	      GOTO 305
-	   ENDIF
-
-	   IF ( v(i,j-1,k,l) .EQ. bad_v
-     .	    .OR.v(i,j  ,k,l) .EQ. bad_v
-     .	    .OR.v(i,j+1,k,l) .EQ. bad_v
-     .	    .OR.fvn(i,j  ,k,l) .EQ. bad_fvn
-     .	    .OR.fvn(i,j-1,k,l) .EQ. bad_fvn ) THEN
-  
-	      vady(i,j,k,l) = bad_val4
-
-	   ELSE
-
-* flux-form calculation ( note 1/dy imbedded in FVN )
-* "Q" may be "U" or "V"
-	      fvst_ij = fvn(i,j-1,k,l) * factor
-	      dQVdy   =( fvn(i,j,k,l) * (v(i,j+1,k,l)+v(i,j,k,l  ))
-     .		       - fvst_ij      * (v(i,j,k,l  )+v(i,j-1,k,l)) )
-
-* compute Q*d/dy(V)
-	      QdVdy = v(i,j,k,l) * ( fvn(i,j,k,l) - fvst_ij ) * 2.0
-
-* compute -Vd/dy(Q) = Qd/dy(V) - d/dy(QV)
-	      vady(i,j,k,l) = ( QdVdy - dQVdy ) * cmonthly
-
-	   ENDIF
-
- 305	CONTINUE
-	RETURN
-	END
diff --git a/fer/ocn/vel_adv_z.F b/fer/ocn/vel_adv_z.F
deleted file mode 100644
index 6e06c14..0000000
--- a/fer/ocn/vel_adv_z.F
+++ /dev/null
@@ -1,168 +0,0 @@
-	SUBROUTINE  VEL_ADV_Z (	uk  , muk  ,
-     .				wk  , mwk  ,
-     .				uadz, muadz )
-
-*
-*
-*  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. 
-*
-*
-* compute vertical advection of velocity components
-* note: the identical code applies to both U and V
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 -1/23/87 extracted from SUBROUTINE CLINIC
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* revision 0.1 - 4/13/87 - corrected dz(1) --> dz(k)
-*			   and corrected flux form to true z advection
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-* Linux Port 1/97 *kob* - Added a preprocessor include for xgfdl_masks.cmn
-*			  because it needed a preprocessor.
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-#	include "xgfdl_masks.cmn"
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XGFDL_MASKS.CMN'
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	muk, mwk, muadz
-
-* subscript ranges from memory variable table ...
-	REAL      uk( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		  wk( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		uadz( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit )
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, k, l
-	REAL	bad_u, bad_w, factor, up, down, dwudz, udwdz
-
-* --- end of introductory code ---
-
-* limits for calculation
-	i_lo = mr_lo_s1(muadz)
-	i_hi = mr_hi_s1(muadz)
-	j_lo = mr_lo_s2(muadz)
-	j_hi = mr_hi_s2(muadz)
-
-* flag for bad/missing data
-	bad_u = mr_bad_data( muk )
-	bad_w = mr_bad_data( mwk )
-
-* ***************************************************************
-* ORIGINAL GFDL 205 CODE UPON WHICH CALCULATION IS BASED
-*
-* 352 C   ADD IN VERTICAL ADVECTION AND VERTICAL DIFFUSION
-* 353 C
-* 354       DO 340 K=1,KMP1
-* 355       DO 340 I=1,IMT
-* 356       TEMP2D(I,K)=W(I,K)*(U(I,K-1)+U(I,K))
-* 357  340  CONTINUE
-* 358       DO 343 K=1,KM
-* 359       DO 343 I=1,IMT
-* 360       UA(I,K)=UA(I,K)+(TEMP2D(I,K+1)-TEMP2D(I,K))*DZ2R2D(I,K)
-* 361  343  CONTINUE
-
-* 371       DO 350 K=1,KMP1
-* 372       DO 350 I=1,IMT
-* 373       TEMP2D(I,K)=W(I,K)*(V(I,K-1)+V(I,K))
-* 374  350  CONTINUE
-* 375       DO 353 K=1,KM
-* 376       DO 353 I=1,IMT
-* 377  353  VA(I,K)=VA(I,K)+(TEMP2D(I,K+1)-TEMP2D(I,K))*DZ2R2D(I,K)
-*************************************************************************
-	DO 2000 l = mr_lo_s4(muadz), mr_hi_s4(muadz)
-	DO 2000 k = mr_lo_s3(muadz), mr_hi_s3(muadz)
-
-* note: k subscripting is offset by one in this code as compared to the 205 code
-*	because w(0) = 0. in this code whereas w(1)=0 in the 205 version
-
-	factor = (1. / dz(k)) * cmonthly
-
-	DO 340 j = j_lo, j_hi
-	DO 340 i = i_lo, i_hi
-
-	   IF ( uk(i,j,k,l) .EQ. bad_u
-     .	    .OR.wk(i,j,k,l) .EQ. bad_w ) THEN
-
-	      uadz(i,j,k,l) = bad_val4
-	      GOTO 340
-	   ENDIF
-
-* calculate flux form ( as in 205 code ): d/dz(WU)
-	   IF ( k .GT. 1 ) THEN
-	      up = wk(i,j,k-1,l) * ( uk(i,j,k-1,l) + uk(i,j,k,l) ) / 2
-	   ELSE
-	      up = 0.0
-	   ENDIF
-
-	   IF ( k .LT. kmu(i,j) ) THEN
-	      down = wk(i,j,k,l) * ( uk(i,j,k,l) + uk(i,j,k+1,l) ) / 2
-	   ELSE
-	      down = 0.0
-	   ENDIF
-
-	   dwudz = ( up - down ) * factor
-
-* calculate U*d/dz(W)
-	   IF ( k .EQ. 1 ) THEN
-	      udwdz = uk(i,j,k,l) * (     0.0       - wk(i,j,k,l) ) * factor
-	   ELSE
-	      udwdz = uk(i,j,k,l) * ( wk(i,j,k-1,l) - wk(i,j,k,l) ) * factor
-	   ENDIF
-
-* note: actually we need to calculate the negative: -W*d/dz(U)
-* subtract to get -W*d/dz(U) = U*d/dz(W) - d/dz(WU)
-	   uadz(i,j,k,l) = udwdz - dwudz
-
- 340	CONTINUE
- 2000	CONTINUE
-	RETURN
-	END
diff --git a/fer/ocn/vel_by_grad_p.F b/fer/ocn/vel_by_grad_p.F
deleted file mode 100644
index f02495b..0000000
--- a/fer/ocn/vel_by_grad_p.F
+++ /dev/null
@@ -1,115 +0,0 @@
-	SUBROUTINE  VEL_BY_GRAD_P( dpdx, mdpdx,
-     .				   ubp, mubp )
-
-*
-*
-*  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. 
-*
-*
-* compute contribution to velocity from GRAD(Pclinic)
-* essentially this routine performs only a change of units from sec-1 to month-1
-* note1: the same code applies to both X and Y components
-* note2: a value of rho=1 is assumed for dimensional correctness
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 -1/26/87 
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	mdpdx, mubp
-
-* subscript ranges from memory variable table ...
-	REAL    dpdx( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		 ubp( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit )
-
-* internal variable declarations:
-	INTEGER	MGRID_SIZE, grid_size
-	REAL	factor
-
-* --- end of introductory code ---
-
-* total words in result grid
-	grid_size = MGRID_SIZE( mubp )
-
-* ***************************************************************
-* ORIGINAL GFDL 205 CODE UPON WHICH CALCULATION IS BASED
-*
-* 406 C   ADD IN PRESSURE TERM AND ZERO OUT LAND
-
-* 417       DO 360 K=1,KM
-* 418       DO 360 I=1,IMT
-* 419       UA(I,K)=GM(I,K)*((UA(I,K)-DPDX(I,K)
-* 420      * +TEMP(I,K)*U(I,K)-
-* 421      *  TEMP2D(I,K)*DXU2R2D(I,K)*(V(I+1,K)-V(I-1,K))))
-* 422  360  CONTINUE
-* 423       DO 370 K=1,KM
-* 424       DO 370 I=1,IMT
-* 425       VA(I,K)=GM(I,K)*((VA(I,K)-DPDY(I,K)
-* 426      * +TEMP(I,K)*V(I,K)+
-* 427      *  TEMP2D(I,K)*DXU2R2D(I,K)*(U(I+1,K)-U(I-1,K))))
-* 428  370  CONTINUE
-*************************************************************************
-* in the 205 code the effectd of DPDX are simple subtracted from UA
-
-* change the sign from how it is used in the 205 code so that all of the
-* incremental pieces get added together to form the velocity increment
-	factor = -1. * cmonthly
-
-	CALL COPY_GRID( dpdx, mdpdx, ubp, mubp )
-
-	CALL MULT_GRID( grid_size, ubp, factor )
-
-	RETURN
-
-	END
diff --git a/fer/ocn/vel_by_wind.F b/fer/ocn/vel_by_wind.F
deleted file mode 100644
index 42d3676..0000000
--- a/fer/ocn/vel_by_wind.F
+++ /dev/null
@@ -1,140 +0,0 @@
-	SUBROUTINE  VEL_BY_WIND(  tau, mtau,
-     .				 ubwi, mubwi )
-
-*
-*
-*  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. 
-*
-*
-* compute contribution to velocity in surface layer due to wind stress
-* note1: the same code applies to both X and Y components
-* note2: a value of rho=1 is assumed for dimensional correctness
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 -1/23/87 extracted from SUBROUTINE CLINIC
-*			with major modifications to bypass th fudging of wind
-*			stress effects into the diffusion terms
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	mtau, mubwi
-
-* subscript ranges from memory variable table ...
-	REAL     tau( m1lox:m1hix,m1loy:m1hiy,            m1lot:m1hit ),
-     .		ubwi( m2lox:m2hix,m2loy:m2hiy,            m2lot:m2hit )
-
-* internal variable declarations:
-	INTEGER	MGRID_SIZE, grid_size
-	REAL	factor
-
-* --- end of introductory code ---
-
-* total words in result grid
-	grid_size = MGRID_SIZE( mubwi )
-
-* ***************************************************************
-* ORIGINAL GFDL 205 CODE UPON WHICH CALCULATION IS BASED
-*
-*259  C   SET VERTICAL VISCOUS BOUNDARY CONDITIONS
-*260  C
-*261        DO 280 K=1,KM
-*262        DO 280 I=1,IMT
-*263        UDIF(I,K)=UB(I,K)
-*264        VDIF(I,K)=VB(I,K)
-*265   280  CONTINUE
-*266        TAPER=1.
-*267        IF(ITT*DTUV.LE.TAPLEN*86400.) TAPER=0.5*(1.-COS(PI*
-*268       1(ITT*DTUV/(TAPLEN*86400.))))
-*269        TFAC1=(MOD(ITT-1,NTS30)+1.)/FLOAT(NTS30)
-*270        TFAC2=1.-TFAC1
-*271        DO 290 I=1,IMT
-*272        FACTOR=(DZZ(1)/BVVC(I))*TAPER
-*273        UOVER(I)=UB(I,1)+(WSX(I)*TFAC2+TX(I)*TFAC1)*FACTOR
-*274        VOVER(I)=VB(I,1)+(WSY(I)*TFAC2+TY(I)*TFAC1)*FACTOR
-*275   290  CONTINUE
-
-*362        DO 345 K=1,KMP1
-*363        DO 345 I=1,IMT
-*364        TEMP2D(I,K)=UDIF(I,K-1)-UDIF(I,K)
-*365   345  CONTINUE
-*366        DO 348 K=1,KM
-*367        DO 348 I=1,IMT
-*368        UA(I,K)=UA(I,K)+EEM2D(I,K)*VVC(I,K-1)*TEMP2D(I,K)-
-*369       * FFM2D(I,K)*VVC(I,K)*TEMP2D(I,K+1)
-*370   348  CONTINUE
-	
-*378        DO 355 K=1,KMP1
-*379        DO 355 I=1,IMT
-*380        TEMP2D(I,K)=VDIF(I,K-1)-VDIF(I,K)
-*381   355  CONTINUE
-*382        DO 356 K=1,KM
-*383        DO 356 I=1,IMT
-*384        VA(I,K)=VA(I,K)+EEM2D(I,K)*VVC(I,K-1)*TEMP2D(I,K)-
-*385       * FFM2D(I,K)*VVC(I,K)*TEMP2D(I,K+1)
-*386   356  CONTINUE
-*************************************************************************
-
-* when all the fudging is done the entire contribution of wind stress reduces
-* to TAUi / dz(1)
-* factor also converts to units of cm/sec per month (730 hours )
-
-	factor = ( 1. / dz(1) ) * cmonthly
-
-	CALL COPY_GRID( tau, mtau, ubwi, mubwi )
-
-	CALL MULT_GRID( grid_size, ubwi, factor )
-
-	RETURN
-
-	END
diff --git a/fer/ocn/vel_dif_xy.F b/fer/ocn/vel_dif_xy.F
deleted file mode 100644
index 99868fa..0000000
--- a/fer/ocn/vel_dif_xy.F
+++ /dev/null
@@ -1,236 +0,0 @@
-	SUBROUTINE  VEL_DIF_XY(	u     , mu     ,
-     .				v     , mv     ,
-     .				udfh  , mudfh	)
-
-*
-*
-*  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. 
-*
-*
-* compute horizontal diffusion of velocity components
-* note: the identical code applies to both U and V
-* ! temp - this is very inefficient code (as is XY_HDIFFUS) that could be
-*	greatly sped up by pre-computation of coefficients
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 1/26/87 - extracted from SUBROUTINE CLINIC
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* revision 0.1 7/2/88  - added Am_factor
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-	include 'xdset_parms.cmn'	! with am_factor
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-	INCLUDE 'TMAP_FORMAT:TMAP_DIMS.PARM'	! with maxdsets
-	INCLUDE 'FERRET_CMN:XDSET_PARMS.CMN'	! with Am_factor
-#endif
-
-* calling argument declarations:
-	INTEGER	mu, mv, mudfh
-
-* subscript ranges from memory variable table ...
-	REAL       u( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		   v( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		udfh( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit )
-
-* internal variable declarations:
-	LOGICAL	HOURLY_DATA
-	INTEGER	i_lo, i_hi, j_lo, j_hi, k_lo, k_hi, l_lo, l_hi,
-     .		i, j, k, l, dl, lb4
-	REAL	bad_u, ccuj, dduj, gguj, hhuj, ew, ns, rest
-
-	REAL	aauj(im), bbuj(im)
-	EQUIVALENCE ( aauj(1), aatj(1) ) ,
-     .		    ( bbuj(1), bbtj(1) )	! space saving
-
-* --- end of introductory code ---
-* use 1 hour separation for exact results on hourly data
-	IF ( HOURLY_DATA(mr_grid(mudfh)) ) THEN
-	   dl = -1
-	ELSE
-	   dl = 0
-	ENDIF
-
-* limits for calculation
-	i_lo = mr_lo_s1(mudfh)
-	i_hi = mr_hi_s1(mudfh)
-	j_lo = mr_lo_s2(mudfh)
-	j_hi = mr_hi_s2(mudfh)
-	k_lo = mr_lo_s3(mudfh)
-	k_hi = mr_hi_s3(mudfh)
-	l_lo = mr_lo_s4(mudfh)
-	l_hi = mr_hi_s4(mudfh)
-
-* flag for bad/missing data
-	bad_u = mr_bad_data( mu )
-
-* Am coefficient (scaled by 10**7)
-	Am = 1.E7 * dp_Am_factor( mr_data_set(mu) )
-
-* ***************************************************************
-* ORIGINAL GFDL 205 CODE UPON WHICH CALCULATION IS BASED
-*
-* 311 C   ADD IN HORIZONTAL VISCOUS EFFECTS
-* 312 C
-* 313 C     VARIABLE LATERAL FRICTION
-* 314 C
-* 315       CCUJ=AM*CST(J+1)*DYTR(J+1)*DYUR(J)*CSR(J)*XJT(J+1)
-* 316       DDUJ=AM*CST(J  )*DYTR(J  )*DYUR(J)*CSR(J)*XJT(J)
-* 317       DO 322 I=1,IMT
-* 318       AAUJ(I)=AM*DXUR(I)*DXTR(I+1)*CSR(J)*CSR(J)*XIT(I+1)*XJV(J)
-* 319       BBUJ(I)=AM*DXUR(I)*DXTR(I  )*CSR(J)*CSR(J)*XIT(I)*XJV(J)
-* 320       C(I)=CCUJ*XIV(I)
-* 321       D(I)=DDUJ*XIV(I)
-* 322   322 CONTINUE
-* 323 C
-* 324       DO 3222 K=1,KM
-* 325       DO 3222 I=1,IMT
-* 326       ATJ(I,K)=AAUJ(I)
-* 327       BTJ(I,K)=BBUJ(I)
-* 328       TEMP2D(I,K)=C(I)
-* 329 3222  TEMP(I,K)=D(I)
-* 330 C
-* 331       DO 320 K=1,KM
-* 332       DO 320 I=1,IMT
-* 333       UA(I,K)=UA(I,K)+ATJ(I,K)*(UB(I+1,K)-UB(I,K))-BTJ(I,K)*
-* 334      *(UB(I,K)-UB(I-1,K))
-* 335  320  CONTINUE
-* 336       DO 323 K=1,KM
-* 337       DO 323 I=1,IMT
-* 338       UA(I,K)=UA(I,K)+TEMP2D(I,K)*(UBP(I,K)-UB(I,K))-TEMP(I,K)*
-* 339      * (UB(I,K)-UBM(I,K))
-* 340  323  CONTINUE
-* 341       DO 330 K=1,KM
-* 342       DO 330 I=1,IMT
-* 343       VA(I,K)=VA(I,K)+ATJ(I,K)*(VB(I+1,K)-VB(I,K))-BTJ(I,K)*
-* 344      *(VB(I,K)-VB(I-1,K))
-* 345  330  CONTINUE
-* 346       DO 333 K=1,KM
-* 347       DO 333 I=1,IMT
-* 348       VA(I,K)=VA(I,K)+TEMP2D(I,K)*(VBP(I,K)-VB(I,K))-TEMP(I,K)*
-* 349      * (VB(I,K)-VBM(I,K))
-* 350  333  CONTINUE
-
-* 408 C     ALSO ADD IN REST OF VARIABLE HORIZONTAL DIFFUSION
-* 409 C
-* 410       GGUJ=AM*(1.0-TNG(J)*TNG(J))/(RADIUS*RADIUS)
-* 411       HHUJ=2.*AM*SINE(J)/(RADIUS*CS(J)*CS(J))
-* 412       DO 3591 K=1,KM
-* 413       DO 3591 I=1,IMT
-* 414       TEMP(I,K)=GGUJ*XIV(I)*XJV(J)
-* 415 3591  TEMP2D(I,K)=HHUJ*XIV(I)*XJV(J)
-* 416 C
-* 417       DO 360 K=1,KM
-* 418       DO 360 I=1,IMT
-* 419       UA(I,K)=GM(I,K)*((UA(I,K)-DPDX(I,K)
-* 420      * +TEMP(I,K)*U(I,K)-
-* 421      *  TEMP2D(I,K)*DXU2R2D(I,K)*(V(I+1,K)-V(I-1,K))))
-* 422  360  CONTINUE
-* 423       DO 370 K=1,KM
-* 424       DO 370 I=1,IMT
-* 425       VA(I,K)=GM(I,K)*((VA(I,K)-DPDY(I,K)
-* 426      * +TEMP(I,K)*V(I,K)+
-* 427      *  TEMP2D(I,K)*DXU2R2D(I,K)*(U(I+1,K)-U(I-1,K))))
-* 428  370  CONTINUE
-*************************************************************************
-
-	DO 320 j = j_lo, j_hi
-
-* pre-compute some coefficients
-	IF ( j .LT. jm ) THEN
-	   ccuj=Am*cst(j+1)*dytr(j+1)*dyur(j)*csr(j)*xjt(j+1)
-	   dduj=Am*cst(j  )*dytr(j  )*dyur(j)*csr(j)*xjt(j)
-	   gguj=Am*(1.0-tng(j)*tng(j))/(radius*radius)
-	   hhuj=2.*Am*sine(j)/(radius*cs(j)*cs(j))
-	ENDIF
-	DO 322 I = i_lo, MIN(i_hi,im-1)
-	   aauj(i)=Am*dxur(i)*dxtr(i+1)*csr(j)*csr(j)*xit(i+1)*xjv(j)
-	   bbuj(i)=Am*dxur(i)*dxtr(i  )*csr(j)*csr(j)*xit(i)*xjv(j)
- 322	CONTINUE
-
-	DO 320 l = l_lo, l_hi
-* ... some data may be needed from 1 integration step earlier
-	   lb4 = l + dl
-	DO 320 k = k_lo, k_hi
-	DO 320 i = i_lo, i_hi
-
-	   IF ( i .EQ. 1 .OR. i .EQ. im
-     .	  .OR.  j .EQ. 1 .OR. j .EQ. jm ) THEN
-	      udfh(i,j,k,l) = bad_val4
-	      GOTO 320
-	   ENDIF
-
-* V is assumed to have bad points exactly where U does ...
-	   IF ( u(i  ,j  ,k,lb4) .EQ. bad_u
-     .	   .OR. u(i-1,j  ,k,lb4) .EQ. bad_u
-     .	   .OR. u(i+1,j  ,k,lb4) .EQ. bad_u
-     .	   .OR. u(i  ,j-1,k,lb4) .EQ. bad_u
-     .	   .OR. u(i  ,j+1,k,lb4) .EQ. bad_u ) THEN
-	      udfh(i,j,k,l) = bad_val4
-	      GOTO 320
-
-	   ELSE
-	   ew = ( aauj(i)* (u(i+1,j,k,lb4)-u(i  ,j,k,lb4))
-     .		- bbuj(i)* (u(i  ,j,k,lb4)-u(i-1,j,k,lb4)) )
-	   ns = ( ccuj   * (u(i,j+1,k,lb4)-u(i,j  ,k,lb4))
-     .		- dduj   * (u(i,j  ,k,lb4)-u(i,j-1,k,lb4)) ) * xiv(i)
-	   rest = ( gguj*u(i,j,k,l)
-     .		- hhuj*dxu2r(i)*(v(i+1,j,k,l)-v(i-1,j,k,l)) )
-     .		* xiv(i) * xjv(j)
-
-	   udfh(i,j,k,l) = ( ew + ns + rest ) * cmonthly
-
-	   ENDIF
-
- 320	CONTINUE
-	RETURN
-
-	END
diff --git a/fer/ocn/vel_dif_z.F b/fer/ocn/vel_dif_z.F
deleted file mode 100644
index 571edc7..0000000
--- a/fer/ocn/vel_dif_z.F
+++ /dev/null
@@ -1,186 +0,0 @@
-	SUBROUTINE  VEL_DIF_Z (	cdz  , mcdz  ,
-     .				u    , mu    ,
-     .				ubwi , mubwi  ,
-     .				udfz , mudfz    )
-
-*
-*
-*  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. 
-*
-*
-* compute vertical diffusion of velocity components
-* add wind stress effects if at surface
-* note: the identical code applies to both U and V
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 -1/23/87 extracted from SUBROUTINE CLINIC
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* revision 0.1 - 6/25/87 - added wind stress contribution at surface
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-*	 3/13/90 - fixed bug at k.eq.km
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	mcdz, mu, mubwi, mudfz
-
-* subscript ranges from memory variable table ...
-	REAL     cdz( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		   u( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		ubwi( m3lox:m3hix,m3loy:m3hiy,            m3lot:m3hit ),
-     .		udfz( m4lox:m4hix,m4loy:m4hiy,m4loz:m4hiz,m4lot:m4hit )
-
-* internal variable declarations:
-	LOGICAL HOURLY_DATA, need_wind
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, k, l, dl, lp1
-	REAL	bad_u, bad_cdz, bad_ubwi, up, down
-
-* --- end of introductory code ---
-* use 1 hour separation for exact results on hourly data
-	IF ( HOURLY_DATA(mr_grid(mudfz)) ) THEN
-	   dl = 1
-	ELSE
-	   dl = 0
-	ENDIF
-
-* limits for calculation
-	i_lo = mr_lo_s1(mudfz)
-	i_hi = mr_hi_s1(mudfz)
-	j_lo = mr_lo_s2(mudfz)
-	j_hi = mr_hi_s2(mudfz)
-
-* flag for bad/missing data
-	bad_u    = mr_bad_data( mu )
-	bad_cdz  = mr_bad_data( mcdz )
-	bad_ubwi = mr_bad_data( mubwi )
-
-* ***************************************************************
-* ORIGINAL GFDL 205 CODE UPON WHICH CALCULATION IS BASED
-*
-* 261       DO 280 K=1,KM
-* 262       DO 280 I=1,IMT
-* 263       UDIF(I,K)=UB(I,K)
-* 264       VDIF(I,K)=VB(I,K)
-* 265  280  CONTINUE
-
-* 276       DO 295 I=1,IMT
-* 277       KZ=KMU(I)
-* 278       UDIF(I,KZ+1)=UB(I,KZ)
-* 279       VDIF(I,KZ+1)=VB(I,KZ)
-* 280  295  CONTINUE
-
-* 352 C   ADD IN VERTICAL ADVECTION AND VERTICAL DIFFUSION
-
-* 362       DO 345 K=1,KMP1
-* 363       DO 345 I=1,IMT
-* 364       TEMP2D(I,K)=UDIF(I,K-1)-UDIF(I,K)
-* 365  345  CONTINUE
-* 366       DO 348 K=1,KM
-* 367       DO 348 I=1,IMT
-* 368       UA(I,K)=UA(I,K)+EEM2D(I,K)*VVC(I,K-1)*TEMP2D(I,K)-
-* 369      * FFM2D(I,K)*VVC(I,K)*TEMP2D(I,K+1)
-* 370  348  CONTINUE
-
-* 378       DO 355 K=1,KMP1
-* 379       DO 355 I=1,IMT
-* 380       TEMP2D(I,K)=VDIF(I,K-1)-VDIF(I,K)
-* 381  355  CONTINUE
-* 382       DO 356 K=1,KM
-* 383       DO 356 I=1,IMT
-* 384       VA(I,K)=VA(I,K)+EEM2D(I,K)*VVC(I,K-1)*TEMP2D(I,K)-
-* 385      * FFM2D(I,K)*VVC(I,K)*TEMP2D(I,K+1)
-* 386  356  CONTINUE
-*************************************************************************
-	DO 2000 l = mr_lo_s4(mudfz)-dl, mr_hi_s4(mudfz)-dl
-	   lp1 = l + dl
-	DO 2000 k = mr_lo_s3(mudfz), mr_hi_s3(mudfz)
-
-* flag for surface wind effects
-	need_wind = k .EQ. 1
-
-	DO 345 j = j_lo, j_hi
-	DO 345 i = i_lo, i_hi
-
-	   IF (   u(i,j,k,l) .EQ. bad_u
-     .	    .OR.cdz(i,j,k,l) .EQ. bad_cdz ) THEN
-	       udfz(i,j,k,lp1) = bad_val4
-	      GOTO 345
-	   ENDIF
-
-	   IF ( k .GT. 1 ) THEN
-	      up = eem(k) * cdz(i,j,k-1,l) * ( u(i,j,k-1,l) - u(i,j,k,l) )
-	   ELSE
-	      up = 0.0
-	   ENDIF
-
-	   IF ( k .LT. km ) THEN
-	      down = ffm(k) * cdz(i,j,k,l) * ( u(i,j,k,l) - u(i,j,k+1,l) )
-	   ELSE
-	      down = 0.0
-	   ENDIF
-
-	   udfz(i,j,k,lp1) = ( up - down ) * cmonthly
-
-* add wind ?
-	   IF ( need_wind ) THEN
-	      IF ( ubwi(i,j,l) .EQ. bad_ubwi ) THEN
-	         udfz(i,j,1,lp1) = bad_val4
-	      ELSE
-	         udfz(i,j,1,lp1) = udfz(i,j,1,lp1) + ubwi(i,j,l)
-	      ENDIF
-	   ENDIF
-
- 345	CONTINUE
- 2000	CONTINUE
-	RETURN
-	END
diff --git a/fer/ocn/w_on_ts.F b/fer/ocn/w_on_ts.F
deleted file mode 100644
index 2c88de2..0000000
--- a/fer/ocn/w_on_ts.F
+++ /dev/null
@@ -1,216 +0,0 @@
-	SUBROUTINE  W_ON_TS( uk  , muk,
-     .			     vk  , mvk,
-     .			     w_t , mw_t )
-
-*
-*
-*  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. 
-*
-*
-* compute W ( vertical velocity ) on TEMP/SALT columns via zero divergence 
-* condition
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 7/22/87
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	muk, mvk, mw_t
-
-* subscript ranges from memory variable table ...
-	REAL     uk( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		 vk( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		w_t( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit )
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, k_lo, k_hi, l_lo, l_hi, i, j, k, l
-	REAL	bad_uk, bad_vk, bad_w_t, fact1, fact2, fact3, factor
-	REAL	fvn, fvst, fuw(2:imtp1)
-
-* --- end of introductory code ---
-
-* limits for calculation
-	i_lo = mr_lo_s1(mw_t)
-	i_hi = mr_hi_s1(mw_t)
-	j_lo = mr_lo_s2(mw_t)
-	j_hi = mr_hi_s2(mw_t)
-	k_lo = mr_lo_s3(mw_t)
-	k_hi = mr_hi_s3(mw_t)
-	l_lo = mr_lo_s4(mw_t)
-	l_hi = mr_hi_s4(mw_t)
-
-* flag for bad/missing data
-	bad_uk   = mr_bad_data( muk )
-	bad_vk	 = mr_bad_data( mvk )
-	bad_w_t  = mr_bad_data( mw_t )
-
-* ***************************************************************
-* ORIGINAL GFDL 205 CODE UPON WHICH CALCULATION IS BASED
-*
-* 2966 C
-* 2967 C   FIND ADVECTIVE COEFFICIENTS FOR WEST AND NORTH FACES OF T,S BOXES
-* 2968 C
-* 2969       FACT1=CSTR(J)*DYTR(J)
-* 2970       FACT2=DYTR(J)*CSTR(J)*CS(J)
-* 2971       DO 690 K=1,KM
-* 2972       DO 690 I=1,IMT
-* 2973       FUW(I,K)=(U(I-1,K)*DYU(J)+UM(I-1,K)*DYU(J-1))*FACT1
-* 2974       FVN(I,K)=(V(I,K)*DXU2D(I,K)+V(I-1,K)*DXU2D(I-1,K))
-* 2975      1 *FACT2*DXT4R2D(I,K)
-* 2976  690  CONTINUE
-* 2977       IF (NERGY.NE.0) W=0.
-* 2978 C
-* 2979 C   COMPUTE VERTICAL VELOCITY IN T,S COLUMNS
-* 2980 C
-* 2981       DO 700 I=1,IMT
-* 2982       W(I,1)=0.0
-* 2983  700  CONTINUE
-* 2984       DO 710 K=1,KM
-* 2985       DO 710 I=1,IMT
-* 2986       W(I,K+1)=C2DZ2D(I,K)*((FUW(I+1,K)-FUW(I,K))*DXT4R2D(I,K)+FVN(I,K)
-* 2987      1    -FVST(I,K))
-* 2988  710  CONTINUE
-* 2989       DO 712 K=1,KM
-* 2990       DO 712 I=1,IMT
-* 2991       W(I,K+1)=W(I,K)+W(I,K+1)
-* 2992  712  CONTINUE
-
-* 3250 C   SET ADVECTIVE COEFFICIENT FOR NEXT CALL
-* 3251 C
-* 3252       FACTOR=CST(J)*DYT(J)*CSTR(J+1)*DYTR(J+1)
-* 3253       DO 990 K=1,KM
-* 3254       DO 990 I=1,IMT
-* 3255       FVST(I,K)=FVN(I,K)*FACTOR
-* 3256  990  CONTINUE
-
-*******************************************************************
-C   COMPUTE VERTICAL VELOCITY IN TEMP/SALT COLUMNS
-* south to north loop through east-west lines
-	DO 1000 j = j_lo, j_hi
-
-	IF ( j .EQ. 1  .OR.  j .EQ. jm ) THEN
-	   DO 100 l = l_lo, l_hi
-	   DO 100 k = k_lo, k_hi
-	   DO 100 i = i_lo, i_hi
- 100	   w_t(i,j,k,l) = bad_w_t
-	   GOTO 1000
-	ENDIF
-
-C   FIND ADVECTIVE COEFFICIENTS FOR SOUTH AND NORTH FACES OF T,S BOXES	! 2967
-
-      FACT1 = CSTR(j)*DYTR(j)	    				! 2969 mod
-      FACT2 = fact1 * CS(j)	 	   			! 2970 mod
-      fact3 = fact1 * cs(j-1)
-
-      DO 900 l = l_lo, l_hi
-      DO 900 k = k_lo, k_hi
-
-      DO 690 I= MAX(2,i_lo), MIN(imt,i_hi)+1			! 2972 mod
-	IF ( uk(i-1,j  ,k,l) .EQ. bad_uk
-     .  .OR. uk(i-1,j-1,k,l) .EQ. bad_uk ) THEN
-	   fuw(i) = bad_val4
-	ELSE
-           FUW(I)=(Uk(i-1,j,k,l)*DYU(j)+Uk(I-1,j-1,k,l)*DYU(j-1))*FACT1	! 2973 mod
-	ENDIF
- 690  CONTINUE	    							! 2976
-
-
-C   COMPUTE VERTICAL increment to w VELOCITY IN T,S COLUMNS
-      DO 710 I = MAX(2,i_lo), MIN(imtm1,i_hi)
-	IF ( fuw(i  ) .EQ. bad_val4
-     .  .OR. fuw(i+1) .EQ. bad_val4 ) THEN
-	   w_t(i,j,k,l) = bad_w_t
-
-	ELSEIF ( vk(i  ,j  ,k,l) .EQ. bad_vk
-     .  .OR.     vk(i-1,j  ,k,l) .EQ. bad_vk
-     .	.OR.     vk(i-1,j-1,k,l) .EQ. bad_vk ) THEN
-	   w_t(i,j,k,l) = bad_w_t
-
-	ELSE
-	   FVN  = (Vk(I,j  ,k,l)*DXU(I)+Vk(I-1,j  ,k,l)
-     .				*DXU(I-1))*FACT2*DXT4R(I)		! 2975 
-	   FVST = (Vk(I,j-1,k,l)*DXU(I)+Vk(I-1,j-1,k,l)
-     .				*DXU(I-1))*FACT3*DXT4R(I)
-	   w_t(I,j,k,l)=C2DZ(K)*( (FUW(I+1)-FUW(I))*DXT4R(I) + FVN-FVST )
-	ENDIF
- 710  CONTINUE
-
-* mask out edges ?
-	IF ( i_lo .EQ. 1   ) w_t(1  ,j,k,l) = bad_w_t
-	IF ( i_hi .EQ. imt ) w_t(imt,j,k,l) = bad_w_t
-
- 900	CONTINUE
- 1000	CONTINUE
-
-
-* now add this dW to w's from above
-	DO 255 l = l_lo, l_hi
-	DO 255 k = 2   , k_hi
-	DO 255 j = j_lo, j_hi
-	DO 255 i = i_lo, i_hi
-
-	   IF ( w_t(i,j,k-1,l) .EQ. bad_w_t ) THEN
-
-	      w_t(i,j,k,l) = bad_val4
-
-	   ELSE
-
-	      w_t(i,j,k,l) = w_t(i,j,k-1,l) + w_t(i,j,k,l)
-
-	   ENDIF
-
- 255	CONTINUE
-
-	RETURN
-	END
diff --git a/fer/ocn/w_on_uv.F b/fer/ocn/w_on_uv.F
deleted file mode 100644
index ce5b28d..0000000
--- a/fer/ocn/w_on_uv.F
+++ /dev/null
@@ -1,170 +0,0 @@
-	SUBROUTINE  W_ON_UV( ufuw, mufuw,
-     .			     vfvn, mvfvn,
-     .			     w_u , mw_u )
-
-*
-*
-*  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. 
-*
-*
-* compute W ( vertical velocity ) on UV columns via zero divergence condition
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 -1/21/87 extracted from SUBROUTINE CLINIC
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	mufuw, mvfvn, mw_u
-
-* subscript ranges from memory variable table ...
-	REAL    ufuw( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		vfvn( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		 w_u( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit )
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, k, l
-	REAL	bad_ufuw, bad_vfvn, bad_w_u, factor
-
-* --- end of introductory code ---
-
-* limits for calculation
-	i_lo = mr_lo_s1(mw_u)
-	i_hi = mr_hi_s1(mw_u)
-	j_lo = mr_lo_s2(mw_u)
-	j_hi = mr_hi_s2(mw_u)
-
-* flag for bad/missing data
-	bad_ufuw = mr_bad_data( mufuw )
-	bad_vfvn = mr_bad_data( mvfvn )
-	bad_w_u  = mr_bad_data( mw_u )
-
-* ***************************************************************
-* ORIGINAL GFDL 205 CODE UPON WHICH CALCULATION IS BASED
-*
-* 700  C   TRANSFER THINGS IN PREPARATION FOR NEXT CALL
-* 701  C
-* 702        FACTOR=CS(J)*DYU(J)*CSR(J+1)*DYUR(J+1)
-* 703        DO 644 K=1,KM
-* 704        DO 644 I=1,IMT
-* 705        FVSU(I,K)=FVN(I,K)*FACTOR
-* 706   644  CONTINUE
-
-* 214  C   COMPUTE VERTICAL VELOCITY IN U,V COLUMNS
-* 215  C
-* 216        DO 250 K=1,KM
-* 217        DO 250 I=1,IMT
-* 218        W(I,K+1)=C2DZ2D(I,K)*((FUW(I+1,K)-FUW(I,K))*DXU2R2D(I,K)+FVN(I,K)
-* 219       1    -FVSU(I,K))
-* 220   250  CONTINUE
-* 221        DO 255 K=1,KM
-* 222        DO 255 I=1,IMT
-* 223        W(I,K+1)=W(I,K)+W(I,K+1)
-* 224   255  CONTINUE
-*************************************************************************
-	DO 2000 l = mr_lo_s4(mw_u), mr_hi_s4(mw_u)
-	DO 2000 k = mr_lo_s3(mw_u), mr_hi_s3(mw_u)
-
-C   COMPUTE VERTICAL VELOCITY IN U,V COLUMNS
-* first compute incremental dW for this layer
-	DO 250 j = j_lo, j_hi
-	   IF ( j .GT. 1 ) factor = cs(j-1) * dyu(j-1) * csr(j) * dyur(j)
-	DO 250 i = i_lo, i_hi
-
-	   IF ( j .EQ. 1 .OR. i .EQ. im ) THEN
-	      w_u(i,j,k,l) = bad_val4
-	      GOTO 250
-	   ENDIF
-
-	   IF ( ufuw(i  ,j  ,k,l) .EQ. bad_ufuw
-     .	    .OR.ufuw(i+1,j  ,k,l) .EQ. bad_ufuw
-     .	    .OR.vfvn(i  ,j  ,k,l) .EQ. bad_vfvn
-     .	    .OR.vfvn(i  ,j-1,k,l) .EQ. bad_vfvn ) THEN
-
-	      w_u(i,j,k,l) = bad_val4
-
-	   ELSE
-
-	      w_u(i,j,k,l) = c2dz(k)*
-     .			( (ufuw(i+1,j,k,l)-ufuw(i,j,k,l)) * dxu2r(i) 
-     .			 + vfvn(i,j,k,l) - (factor * vfvn(i,j-1,k,l)) )
-
-	   ENDIF
-
- 250	CONTINUE
-
-* now add this dW to w's from above
-	IF ( k .GT. 1 ) THEN
-	   DO 255 j = j_lo, j_hi
-	   DO 255 i = i_lo, i_hi
-
-	      IF ( w_u(i,j,k-1,l) .EQ. bad_w_u ) THEN
-
-	         w_u(i,j,k,l) = bad_val4
-
-	      ELSE
-
-	         w_u(i,j,k,l) = w_u(i,j,k-1,l) + w_u(i,j,k,l)
-
-	      ENDIF
-
- 255	   CONTINUE
-
-	ENDIF
-
- 2000	CONTINUE
-
-	RETURN
-	END
diff --git a/fer/ocn/wind_stress.F b/fer/ocn/wind_stress.F
deleted file mode 100644
index f31dc25..0000000
--- a/fer/ocn/wind_stress.F
+++ /dev/null
@@ -1,182 +0,0 @@
-	SUBROUTINE WIND_STRESS ( uwind,  muwind,
-     .				 vwind,	 mvwind,
-     .				 stress, mstress )
-
-*
-*
-*  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. 
-*
-*
-* compute wind stress magnitude on T-S grid from components on U-V grid
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 3/17/86	extracted from SUBROUTINE HDIFFUS
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* revision 0.1 - 1/27/89 - modified bad_flag error checking at j=2 in case of
-*			   improper GFDL model output
-*		note: bad flag checks are based on UWND, only for performance
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-* Unix/RISC port 8/91 *sh*: added dp_nts30_wind sensitivity
-*                         - also fixed bug at j=2 and j=jmtm1 by changing to
-*                           ELSEIF logic
-* V320: 12/29/94 - use SPLIT_LIST to redirect tty output for GUI
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xcontext.cmn'
-        include 'xdset_parms.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'
-        INCLUDE 'TMAP_FORMAT:TMAP_DIMS.PARM'
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-        INCLUDE 'FERRET_CMN:XDSET_PARMS.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	muwind, mvwind, mstress
-* subscript ranges from memory variable table ...
-	REAL     uwind( m1lox:m1hix,m1loy:m1hiy,            m1lot:m1hit ),
-     .		 vwind( m2lox:m2hix,m2loy:m2hiy,            m2lot:m2hit ),
-     .		stress( m3lox:m3hix,m3loy:m3hiy,            m3lot:m3hit )
-
-* internal variable declarations:
-        LOGICAL need_nts30
-	INTEGER	dset, grid, i_lo, i_hi, j_lo, j_hi, i, j, l,
-     .          itt, ittmod, slen
-	REAL	bad_wind, bad_stress, taux, tauy
-        REAL*8  TM_WORLD
-	CHARACTER LEFINT*6
-
-* local parameters
-        INTEGER nts30
-        PARAMETER ( nts30 = 730 )
-
-* --- end of introductory code ---
-
-* limits for calculation
-	i_lo = mr_lo_s1(mstress)
-	i_hi = mr_hi_s1(mstress)
-	j_lo = mr_lo_s2(mstress)
-	j_hi = mr_hi_s2(mstress)
-
-* flag(s) for bad or missing values
-	bad_wind   = mr_bad_data ( muwind )
-	bad_stress = mr_bad_data ( mstress )
-
-* data set needed to determine whether to do NST30 modification
-        dset = mr_data_set( muwind )
-        grid = mr_grid    ( muwind )
-
-C									! 3003
-C     SINCE STRESS & AIRT ARE DEFINED CORRECTLY ONLY FOR THE CURRENT	! 3007
-C     JROW DURING THE 2 TIME STEPS WHEN BC ARE BROUGHT IN AT THE	! 3008
-C     BEGINNING OF EACH MONTH...APPROXIMATE THEM ON JROW-1 BY USING	! 3009
-C     THE JROW VALUES							! 3010
-C									! 3011
-* note:	Ron Pacanowski agrees that this IF test is incorrect and...
-*      IF (MOD(ITT-1,NTS30).EQ.0.OR.MOD(ITT-1,NTS30).EQ.1) THEN		! 3012
-*	should be replaced by:
-!	if (j.eq.2) then
-****** this will slightly alter the results ******
-* note 8/91: this incorrect test remained in throughout the life of
-* the 205 model and critically effects the balances when attempting
-* an exact match using hourly data.
-* The descriptor parameter "NTS30 WIND STRESS MOD" was created to turn back on
-* this feature
-C									! 3013
-	DO 2000 l = mr_lo_s4(mstress), mr_hi_s4(mstress)
-
-* special correction at nts30 time steps ?
-* NOTE: nts30 logic is only partially tested - month starts, only tested
-*       also, there is a bug (8/91) in the heat flux calculation at present
-*       when using hourly data:  qflx is entirely calculated at T-1.  In
-*       fact sst should be at T-1 but tau should be at T.  If that bug is
-*       fixed the MOD logic above will need to be changed
-        IF ( dp_nts30_wind( dset ) ) THEN
-	   CALL SPLIT_LIST(pttmode_bull, 6,
-     .			'WIND_STRESS: Checking itt against nts30',0)
-           itt = INT( TM_WORLD( l, grid, t_dim, box_middle ) )
-           ittmod = MOD(itt+1,nts30)
-           need_nts30 = ittmod.EQ.0 .OR. ittmod.EQ.1
-           IF ( need_nts30 ) 	   CALL SPLIT_LIST(pttmode_bull, 6,
-     .			'Using NTS30 at '//LEFINT(l,slen)//
-     .			LEFINT(itt,slen),0)
-        ELSE
-           need_nts30 = .FALSE.
-        ENDIF
-
-* shift winds from u,v grid to T grid points
-* via 4-point interpolation where possible
-	DO 1720 j = j_lo, j_hi
-	DO 1720 I = i_lo, i_hi					! 3021 mod
-
-	   IF ( j .EQ. 1  .OR.  i .EQ. 1 ) THEN
-	      stress(i,j,l) = bad_stress
-
-	   ELSEIF (      uwind(i  ,j,l  ) .EQ. bad_wind
-     .		.OR. uwind(i-1,j,l  ) .EQ. bad_wind ) THEN
-	      stress(i,j,l) = bad_stress
-
-	   ELSEIF ( j.EQ.2 .OR. j.EQ.jmtm1 .OR. need_nts30 )  THEN ! 2 pt intrp
-	      TAUX = .5*( uwind(i,j,l) + uwind(i-1,j,l) )	! 3015 mod
-	      TAUY = .5*( vwind(i,j,l) + vwind(i-1,j,l) )	! 3017 mod
-	      stress(i,j,l) = SQRT ( taux**2 + tauy**2 )
-
-	   ELSEIF (  uwind(i  ,j-1,l) .EQ. bad_wind
-     .		.OR. uwind(i-1,j-1,l) .EQ. bad_wind ) THEN
-	      stress(i,j,l) = bad_stress
-
-           ELSE
-	      TAUX = .25* ( uwind (i,j  ,l) + uwind (i-1,j  ,l) +    ! 3022 mod
-     .			    uwind (i,j-1,l) + uwind (i-1,j-1,l) )    ! 3023 mod
-	      TAUY = .25* ( vwind (i,j  ,l) + vwind (i-1,j  ,l) +    ! 3024 mod
-     .			    vwind (i,j-1,l) + vwind (i-1,j-1,l) )    ! 3025 mod
-	      stress(i,j,l) = SQRT ( taux**2 + tauy**2 )
-	   ENDIF
-
- 1720	CONTINUE								! 3026
- 2000	CONTINUE								! 3026
-
-	RETURN
-	END
diff --git a/fer/ocn/xy_hdiffus.F b/fer/ocn/xy_hdiffus.F
deleted file mode 100644
index 2fc1c7c..0000000
--- a/fer/ocn/xy_hdiffus.F
+++ /dev/null
@@ -1,145 +0,0 @@
-	SUBROUTINE XY_HDIFFUS ( tk, mtk, xy_qdiffus, mxy_qdiffus )
-
-*
-*
-*  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. 
-*
-*
-* compute diffussion of heat in horizontal plane at the specified depth
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 3/7/86	extracted from SUBROUTINE qdiffus
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* V200:  7/26/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
-
-* calling argument declarations:
-	INTEGER	mtk, mxy_qdiffus
-* subscript ranges from memory variable table ...
-	REAL            tk( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		xy_qdiffus( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit )
-
-* internal variable declarations:
-	LOGICAL HOURLY_DATA
-	INTEGER	i, j, k, l, dl, lp1
-	REAL	bad_tk, bad_qdiffus, cctj, ddtj, ew_qdiffus, sn_qdiffus
-
-* --- end of introductory code ---
-* use 1 hour separation for exact results on hourly data
-	IF ( HOURLY_DATA(mr_grid(mxy_qdiffus)) ) THEN
-	   dl = 1
-	ELSE
-	   dl = 0
-	ENDIF
-
-* flag for bad/missing data
-	bad_tk      = mr_bad_data( mtk )
-	bad_qdiffus = mr_bad_data( mxy_qdiffus )
-
-	DO 2000 l = mr_lo_s4(mxy_qdiffus)-dl, mr_hi_s4(mxy_qdiffus)-dl
-	   lp1 = l + dl
-	DO 2000 k = mr_lo_s3(mxy_qdiffus), mr_hi_s3(mxy_qdiffus)
-
-	DO 1000 j = mr_lo_s2(mxy_qdiffus), mr_hi_s2(mxy_qdiffus)
-
-	IF ( j .EQ. 1  .OR.  j .EQ. jmt ) THEN
-	   DO 100 i = mr_lo_s1(mxy_qdiffus), mr_hi_s1(mxy_qdiffus)
- 100	   xy_qdiffus( i,j,k,lp1 ) = bad_qdiffus
-	   GOTO 1000
-	ENDIF
-
-C   FORM LATERAL DIFFUSION COEFFICIENTS					! 3045
-C     VARIABLE HORIZONTAL DIFFUSION					! 3047
-      CCTJ=AH*CS(j)*DYUR(j)*DYTR(j)*CSTR(j)*XJV(j)		! 3049 mod (j)
-      DDTJ=AH*CS(j-1)*DYUR(j-1)*DYTR(j)*CSTR(j)*XJV(j-1)	! 3050 mod (j)
-
-	DO 900 i = mr_lo_s1(mxy_qdiffus), mr_hi_s1(mxy_qdiffus)	! 3051 mod
-
-	IF ( i .EQ. 1  .OR.  i .EQ. imt ) THEN
-	   xy_qdiffus( i,j,k,lp1 ) = bad_qdiffus
-	   GOTO 900
-	ENDIF
-
-	IF (	tk( i  ,j   ,k,l ) .EQ. bad_tk
-     .	   .OR. tk( i+1,j   ,k,l ) .EQ. bad_tk
-     .	   .OR. tk( i-1,j   ,k,l ) .EQ. bad_tk
-     .	   .OR. tk( i  ,j+1 ,k,l ) .EQ. bad_tk
-     .	   .OR. tk( i  ,j-1 ,k,l ) .EQ. bad_tk ) THEN
-	   xy_qdiffus( i,j,k,lp1 ) = bad_qdiffus
-	   GOTO 900
-	ENDIF
-
-      AATJ(I)=AH*DXUR(I)*DXTR(I)*CSTR(j)*CSTR(j)*XIV(I)*XJT(j)	  ! 3052 mod (j)
-      BBTJ(I)=AH*DXUR(I-1)*DXTR(I)*CSTR(j)*CSTR(j)*XIV(I-1)*XJT(j)! 3053 mod (j)
-  731 CONTINUE								! 3056
-
-C   ADD IN DIFFUSION TERMS						! 3086
-C									! 3087
-* compute east-west diffussion
-	ew_qdiffus = cmonthly * (
-     * aatj(I)*(tk(I+1,j,k,l)-tk(i,j,k,l))			! 3092 mod
-     *+bbtj(I)*(tk(I-1,j,k,l)-tk(i,j,k,l)) )			! 3093 mod
-	xy_qdiffus(i,j,k,lp1) = ew_qdiffus
-
-* compute south-north diffussion
-	sn_qdiffus = cmonthly * (
-     * cctj*xit(i)*(tk(i,j+1,k,l)-tk(i,j,k,l))				! 3102 mod
-     *+ddtj*xit(i)*(tk(i,j-1,k,l)-tk(i,j,k,l))	)			! 3103 mod
-	 xy_qdiffus(i,j,k,lp1) = xy_qdiffus(i,j,k,lp1) + sn_qdiffus
-
- 900	CONTINUE
- 1000	CONTINUE
- 2000	CONTINUE
-
-	RETURN
-	END
diff --git a/fer/ocn/z_hadvec.F b/fer/ocn/z_hadvec.F
deleted file mode 100644
index ccdcb17..0000000
--- a/fer/ocn/z_hadvec.F
+++ /dev/null
@@ -1,178 +0,0 @@
-	SUBROUTINE Z_HADVEC ( tk, mtk,
-     .			      wk, mwk,
-     .			      advec, madvec   )
-
-*
-*
-*  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. 
-*
-*
-* compute vertical  component of heat advection
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 3/17/86	extracted from SUBROUTINE HDIFFUS
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* V200:  7/27/89 - 4D symmetrical version
-*	10/11/89 - array declarations using XMEM_SUBSC.CMN (reordered args)
-* Linux Port 1/97 *kob* - Added a preprocessor include for xgfdl_masks.cmn
-*			  because it needed a preprocessor.
-* V450 - 7/22/97 - minor reordering of "#includes" for Solaris compiler bug
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-
-! land/water masks
-#	include "xgfdl_masks.cmn"	
-
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-	INCLUDE 'FERRET_CMN:XGFDL_MASKS.CMN'	! land/water masks
-#endif
-
-* calling argument declarations:
-	INTEGER	mwk, mtk, madvec
-* subscript ranges from memory variable table ...
-	REAL       tk( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		   wk( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		advec( m3lox:m3hix,m3loy:m3hiy,m3loz:m3hiz,m3lot:m3hit )
-
-* internal variable declarations:
-	INTEGER	i_lo, i_hi, j_lo, j_hi, i, j, k, l
-	REAL	bad_wk, bad_tk, bad_advec, up_dwtdz, dn_dwtdz, dwtdz_neg,
-     .		tdwdz
-	LOGICAL	  bad_components
-
-* --- end of introductory code ---
-* limits for calculation
-	i_lo = mr_lo_s1(madvec)
-	i_hi = mr_hi_s1(madvec)
-	j_lo = mr_lo_s2(madvec)
-	j_hi = mr_hi_s2(madvec)
-
-* flag(s) for bad or missing values
-	bad_wk    = mr_bad_data ( mwk )
-	bad_tk    = mr_bad_data ( mtk )
-	bad_advec = mr_bad_data ( madvec )
-
-	DO 2000 l = mr_lo_s4(madvec), mr_hi_s4(madvec)
-	DO 2000 k = mr_lo_s3(madvec), mr_hi_s3(madvec)
-
-* south to north loop through east-west lines
-	DO 1000 j = j_lo, j_hi
-
-	   IF ( j .LE. 2  .OR.  j .GE. jmtm1 ) THEN
-	      DO 100 i = i_lo, i_hi
- 100	      advec( i,j,k,l ) = bad_advec
-	      GOTO 1000
-	   ENDIF
-
-* calculate minus vert advection component of total advection in flux form
-* note on sign: increasing k is decreasing z
-* note on k levels: The surface (w=0) is at k=1 in GFDL code but is
-*		    omitted from the GFDL output. In this code k=1 represents
-*		    the first level of non-zero data (GFDL k=2).
-*		    The k=1 level of the S-T and U-V grids is therefore ABOVE
-*		    the k=1 level of W in this code.  The "up" and "dn" prefixes
-*		    on the variable names should be thought of relative to the
-*		    T level which is experiencing advective heat flux.
-
-      DO 824 i = i_lo, i_hi
-
-* check that all of the required component fields are available at this point
-* depending on depth, some of the components may be dummies
-	IF     ( k .EQ. 1 )  THEN
-	   bad_components =	wk( i,j,k  ,l ) .EQ. bad_wk
-     .			   .OR. tk( i,j,k  ,l ) .EQ. bad_tk
-     .			   .OR. tk( i,j,k+1,l ) .EQ. bad_tk
-	ELSEIF ( k .EQ. KM ) THEN
-	   bad_components =	wk( i,j,k-1,l ) .EQ. bad_wk
-     .			   .OR. wk( i,j,k  ,l ) .EQ. bad_wk
-     .			   .OR. tk( i,j,k-1,l ) .EQ. bad_tk
-     .			   .OR. tk( i,j,k  ,l ) .EQ. bad_tk
-	ELSE
-	   bad_components =	wk( i,j,k-1,l ) .EQ. bad_wk
-     .			   .OR. wk( i,j,k  ,l ) .EQ. bad_wk
-     .			   .OR. tk( i,j,k-1,l ) .EQ. bad_tk
-     .			   .OR. tk( i,j,k  ,l ) .EQ. bad_tk
-     .			   .OR. tk( i,j,k+1,l ) .EQ. bad_tk
-	ENDIF
-	IF ( bad_components ) THEN
-	   advec( i,j,k,l ) = bad_advec
-	   GOTO 824
-	ENDIF
-
-	IF ( k .EQ. 1 ) THEN
-	   up_dwtdz = 0.0
-	ELSE
-	   up_dwtdz = -(wk(i,j,k-1,l) * (tk(i,j,k-1,l) + tk(i,j,k,l)) )
-     .		    * DZ2R(K)					    ! 3075 mod
-	ENDIF
-
-	IF ( k .GE. kmt(i,j) ) THEN
-	   dn_dwtdz = 0.0
-	ELSE
-	   dn_dwtdz = (wk(i,j,k,l)*(tk(i,j,k,l)+tk(i,j,k+1,l)))*DZ2R(K)! 3079 mod
-	ENDIF
-
-	dwtdz_neg = up_dwtdz + dn_dwtdz
-
-* calculate actual vert advection by subtracting t*dW/dZ ...
-	IF ( k .EQ. 1 ) THEN
-	   tdwdz = tk(i,j,k,l) * (              - wk(i,j,k,l)) * dz2r(k) * 2.0
-	ELSE
-	   tdwdz = tk(i,j,k,l) * (wk(i,j,k-1,l) - wk(i,j,k,l)) * dz2r(k) * 2.0
-	ENDIF
-	advec(i,j,k,l) = ( dwtdz_neg + tdwdz ) * cmonthly
-
- 824  CONTINUE	    							! 3080
-
- 1000	CONTINUE
- 2000	CONTINUE
-
-	RETURN
-	END
diff --git a/fer/ocn/z_hdiffus.F b/fer/ocn/z_hdiffus.F
deleted file mode 100644
index 6c0532c..0000000
--- a/fer/ocn/z_hdiffus.F
+++ /dev/null
@@ -1,174 +0,0 @@
-	SUBROUTINE Z_HDIFFUS (	tk,   mtk,
-     .				vdc,  mvdc,
-     .				qflx, mqflx,
-     .				qdif, mqdif )
-
-*
-*
-*  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. 
-*
-*
-* compute vertical component of heat diffussion using temperature at
-* 3 layers (tkm,tk,tkp) and vertical diffussion coefficient at 2 (vdcM,vdc)
-* and using surface boundary fluxes if at the surface
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 3/7/86	extracted from SUBROUTINE HDIFFUS
-*			with major modifications to convert i-k oriented
-*			calculations to i-j oriented calculations
-* revision 0.1 - 6/25/87 - modified to include surface heat flux when k=1
-* V200:  7/25/89 - 4D symmetrical version
-*	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
-*	10/18/89 - fixed bug: lb4-->l on setting qdif to bad_flag while adding
-*				      surface BC's
-* Linux Port 1/97 *kob* - Added a preprocessor include for xgfdl_masks.cmn
-*			  because it needed a preprocessor.
-* V450 - 7/22/97 - minor reordering of "#includes" for Solaris compiler bug
-
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'gfdl.parm'		! parameter definitions
-
-! land/water masks
-#	include "xgfdl_masks.cmn"	
-
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include 'xonedim.cmn'	! geometric constants
-	include 'xcontext.cmn'
-#else
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:GFDL.PARM'		! parameter definitions
-	INCLUDE	'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE	'FERRET_CMN:XMEM_SUBSC.CMN'
-	INCLUDE 'FERRET_CMN:XONEDIM.CMN'	! geometric constants
-	INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-	INCLUDE 'FERRET_CMN:XGFDL_MASKS.CMN'	! land/water masks
-#endif
-
-* calling argument declarations:
-	INTEGER	mtk, mvdc, mqflx, mqdif
-
-* subscript ranges from memory variable table ...
-	REAL      tk( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit ),
-     .		 vdc( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,m2lot:m2hit ),
-     .		qflx( m3lox:m3hix,m3loy:m3hiy,            m3lot:m3hit ),
-     .		qdif( m4lox:m4hix,m4loy:m4hiy,m4loz:m4hiz,m4lot:m4hit )
-
-* internal variable declarations:
-	LOGICAL HOURLY_DATA, need_qflux
-	INTEGER	i, j, k, l, dl, lb4
-	REAL	bad_vdc, bad_tk, bad_qdiffus, bad_qflx, up_qdif, dn_qdif
-
-* --- end of introductory code ---
-* use 1 hour separation for exact results on hourly data
-	IF ( HOURLY_DATA(mr_grid(mqdif)) ) THEN
-	   dl = -1
-	ELSE
-	   dl = 0
-	ENDIF
-
-* flag(s) for bad or missing values
-	bad_vdc      = mr_bad_data ( mvdc )
-	bad_tk       = mr_bad_data ( mtk  )
-	bad_qflx     = mr_bad_data ( mqflx )
-	bad_qdiffus  = mr_bad_data ( mqdif )
-
-* flag for surface heat flux
-	DO 1100 l = mr_lo_s4(mqdif), mr_hi_s4(mqdif)
-	DO 1100 k = mr_lo_s3(mqdif), mr_hi_s3(mqdif)
-
-* components from 1 hour before ?
-	lb4 = l + dl
-
-	need_qflux = k .EQ. 1
-
-	DO 1000 j = mr_lo_s2(mqdif), mr_hi_s2(mqdif)
-	DO 1000 i = mr_lo_s1(mqdif), mr_hi_s1(mqdif)
-
-* diffussion from above:
-	IF     ( k .EQ. 1        ) THEN
-	   up_qdif = 0.0			! top
-	ELSEIF ( k .GT. kmt(i,j) ) THEN
-	   up_qdif = 0.0			! bottom or below
-	ELSE	
-
-	   IF (vdc( i,j,k-1,lb4 ) .EQ. bad_vdc
-     .	   .OR.	tk( i,j,k-1,lb4 ) .EQ. bad_tk
-     .	   .OR. tk  ( i,j,k,lb4 ) .EQ. bad_tk ) THEN
-	      qdif( i,j,k,l ) = bad_qdiffus
-	      GOTO 1000
-	   ENDIF
-
-	   up_qdif = cmonthly * (
-     *		 vdc(i,j,k-1,lb4)*EEH(K)
-     .				*(tk(i,j,k-1,lb4) - tk(i,j,k,lb4)))! 3105 mod
-	ENDIF
-
-* diffussion to below:
-	IF ( k .GE. kmt(i,j) ) THEN
-	   dn_qdif = 0.0			! bottom or below
-	ELSE
-
-	   IF (	vdc( i,j,k,  lb4 ) .EQ. bad_vdc
-     .	   .OR. tk ( i,j,k+1,lb4 ) .EQ. bad_tk ) THEN
-	      qdif( i,j,k,l ) = bad_qdiffus
-	      GOTO 1000
-	   ENDIF
-
-	   dn_qdif = cmonthly * (
-     *		-VDC (i,j,k,lb4)*FFH(K)*(tk(i,j,k,lb4)-tk(i,j,k+1,lb4))) ! 3106 mod
-	ENDIF
-
-	qdif(i,j,k,l) = up_qdif + dn_qdif
-
-* add in surface boundary flux if at surface
-* (with units converted from cgs to deg/month over upper layer)
-	IF ( need_qflux ) THEN
-	   IF ( qflx(i,j,lb4) .EQ. bad_qflx ) THEN
-	      qdif(i,j,k,l) = bad_qdiffus
-	   ELSE
-	      qdif(i,j,k,l) = qdif(i,j,k,l)
-     .				 + 0.06265833*qflx(i,j,lb4)
-	   ENDIF
-	ENDIF
-
- 1000	CONTINUE
- 1100	CONTINUE
-
-	RETURN
-	END
diff --git a/fer/plt/SOURCE_FILES b/fer/plt/SOURCE_FILES
index 9ff8410..d2a9b9e 100644
--- a/fer/plt/SOURCE_FILES
+++ b/fer/plt/SOURCE_FILES
@@ -47,9 +47,11 @@ key_string.F\
 line_plot_labels.F\
 line_style.F\
 load_curvilinear.F\
+lon_lat_fmt.F\
 merged_whoi_date.F\
 parse_color_tuple.F\
 parse_pyfont_color.F\
+plot_along_data_set_up.F\
 plot_set_up.F\
 polygon_set_up.F\
 pos_lab.F\
diff --git a/fer/plt/axis_format.F b/fer/plt/axis_format.F
index b861784..6a5eadd 100644
--- a/fer/plt/axis_format.F
+++ b/fer/plt/axis_format.F
@@ -85,6 +85,10 @@
 * V695+ *sh*  3/15 Added argument "imposed_lab" to disambiguate F and T axes
 * V695  *acm* 9/15 Do not plot the labell TIME - on vertical axes with HH:MM
 *		   labeling; it interferes with the time/date labels
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
+
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -221,12 +225,19 @@
 	      ppl_buff = 
      .		x_or_y//'FOR,('//fmt(:TM_LENSTR1(fmt))//',''''LONE'''')' 
 	      CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
+
+	      CALL LON_LAT_FMT (idim, x_or_y)
+
 	   ELSEIF ( idim .EQ. y_dim  .AND. use_nice) THEN
 * latitude format for axis tic labling
 	      ppl_buff = 
      .		x_or_y//'FOR,('//fmt(:TM_LENSTR1(fmt))//',''''LAT'''')' 
 	      CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
+
+	      CALL LON_LAT_FMT (idim, x_or_y)
+
 	   ENDIF
+
 	ENDIF
 
 * lat/long or x/y axis label
diff --git a/fer/plt/box_label.F b/fer/plt/box_label.F
index 51fa9c0..d5663f2 100644
--- a/fer/plt/box_label.F
+++ b/fer/plt/box_label.F
@@ -57,6 +57,11 @@
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus.
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V6.95 *acm* 3/15 Changes for PyFerret fonts. 
+* v690 *sh* 3/16 - use a new list of potential break characters
+*                - lower the width threshold for deciding to break into 2
+*                - see "tuned up" comment.  Only search for "," if bad break
+*                - DP conversion bug fix:  "ht" was used instead of "rht" 
+* V7   *acm* 6/16 see ticket 2435. Tweak to split dataset labels after DATA SET:
 
         include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -72,12 +77,12 @@
 
 * internal variable declarations
         INTEGER lnbeg(250), lnend(250)
-	INTEGER	TM_LENSTR1, TM_LENSTR, slen, nfont, brk_pt, nex_brk_pt, 
-     .          las_brk_pt, nlines
-	REAL	ymid, width, ht, frac, frac_width, las_frac, xend,
-     .          htsave
+	INTEGER	TM_LENSTR1, TM_LENSTR, STR_SAME, slen, nfont, 
+     .          brk_pt, nex_brk_pt, las_brk_pt, nlines, ibr
+	REAL	ymid, width, frac, frac_width, las_frac, xend,
+     .          htsave, ht
         REAL*4  SYMWID, rht
-	CHARACTER*1 break_char
+	CHARACTER*1 break_char, break_chars(6)
 
 * initialize
 	ymid = ypos + ysize*0.5
@@ -92,23 +97,36 @@
 
 * Choose the break character. If there are commas use them. If there
 * are any slashes, use that.  Else use underscore or dash.
-
-	break_char = ','
-	brk_pt = INDEX( string(:slen), break_char )
-	IF (brk_pt .EQ. 0) THEN
-	   IF (INDEX( string(:slen), '/' ) .NE. 0) break_char = '/'
-	   brk_pt = INDEX( string(:slen), break_char )
-	ENDIF 
-	IF (brk_pt .EQ. 0) THEN
-	   IF (INDEX( string(:slen), '_' ) .NE. 0) break_char = '_'
+! 3/16 -- this logic could be tuned up.  Here we select the first occurrence 
+! of a particular break char, based priority ordering.  Below, if the
+! break is in the wrong place, we insist on keeping the same break char,
+! and we only look forward in the string.
+	break_chars(1) = ','
+	break_chars(2) = ' '
+	break_chars(3) = '['
+	break_chars(4) = ':'
+	break_chars(5) = '/'
+	break_chars(6) = '-'
+	DO ibr = 1, 5
+	   break_char = break_chars(ibr)
 	   brk_pt = INDEX( string(:slen), break_char )
-	ENDIF 
-	IF (brk_pt .EQ. 0) THEN
-	   IF (INDEX( string(:slen), '-' ) .NE. 0) break_char = '-'
-	   brk_pt = INDEX( string(:slen), break_char )
-	ENDIF 
+	   IF (brk_pt .GT. 0) EXIT
+	ENDDO
+	
+* Hack: Break DATA SET string after DATA SET: not between DATA and SET.
+	IF (slen.GT.8) THEN
+	IF (STR_SAME(string(1:8), 'DATA SET').EQ.0) THEN
+	   DO ibr = 1, 5
+	      break_char = break_chars(ibr)
+	      brk_pt = INDEX( string(6:slen), break_char )
+	      IF (brk_pt .GT. 0) EXIT
+	   ENDDO
+	   brk_pt = brk_pt + 5
+	ENDIF
+	ENDIF
 
-	brk_pt = INDEX( string(:slen), break_char )
+* ... brk_pt will = 0 here if nothing found
+	IF (break_char .EQ. '[') brk_pt = MAX(1,brk_pt-1) ! break before "[" 
 	risc_buff = string			! for RISC/FORTRAN
 
 * compute the width of the string in the font that it will be presented
@@ -172,8 +190,11 @@
 	ENDIF
 
 * should we write the label in a single line ?
+! 3/2016 *sh* -- there's a fudge factor here multiplying xsize
+! dunno what is wrong in the calcs that makes this the thing to do
+! Was 1.8.  Now 1.15
 	IF ( nlines .LT. 2
-     .	.OR. width .LE. xsize*1.8
+     .	.OR. width .LE. xsize*1.15
      .	.OR. brk_pt.EQ.0 .OR. brk_pt.EQ.slen ) GOTO 500
 
 * it's too big - we will try to write it as 2 lines
@@ -185,14 +206,16 @@
 	ELSEIF ( lab_type .EQ. ppl_title ) THEN
 	   rht = ht
 c	   frac_width = DBLE(SYMWID( ht, brk_pt+3, '@AC'//risc_buff(:brk_pt)  ))
-	   frac_width = DBLE(SYMWID( ht, brk_pt, risc_buff(:brk_pt)  ))
+	   frac_width = DBLE(SYMWID( rht, brk_pt, risc_buff(:brk_pt)  ))
 	ELSE
 	   rht = ht
 c	   frac_width = DBLE(SYMWID( ht, brk_pt+3, '@AS'//risc_buff(:brk_pt)  ))
-	   frac_width = DBLE(SYMWID( ht, brk_pt, risc_buff(:brk_pt)  ))
+	   frac_width = DBLE(SYMWID( rht, brk_pt, risc_buff(:brk_pt)  ))
 	ENDIF
 	frac = frac_width / width
-	IF ( ABS(0.5-frac) .LT. ABS(0.5-las_frac) ) THEN
+	IF ( frac.LT.0.2 .OR. frac .GT.0.8) THEN
+! insist on breaking off at least .2 of its length
+	   break_char = ','  ! 3/2016 -- only look for commas
 	   nex_brk_pt = INDEX( string(brk_pt+1:), break_char ) + brk_pt
 	   IF ( nex_brk_pt.EQ.brk_pt .OR. nex_brk_pt.EQ.slen ) GOTO 200
 	   las_frac   = frac
@@ -210,9 +233,14 @@ c	   frac_width = DBLE(SYMWID( ht, brk_pt+3, '@AS'//risc_buff(:brk_pt)  ))
 	IF ( frac.LT.0.2 .OR. frac.GT.0.8 ) GOTO 500
 
 * WRITE STRING AS 2 LINES
+* Adjusting height so we don't take more vertical space than expected
+
  200	width = MAX(frac, 1.-frac) * width
 	ht = MIN( ysize*0.4, ht*MIN(1.,xsize/width) )
 
+! 3/16 -- the labels are just a tad too tall -- colliding together
+	ht = 0.95*ht  ! 3/16
+
 * ... line 1<NL>line 2
 	CALL PUT_LABEL( lab_type, xend, ymid, justify, ht,
      .			string(:brk_pt)//'<NL>'//string(brk_pt+1:), 
diff --git a/fer/plt/choose_cx_ww.F b/fer/plt/choose_cx_ww.F
index 7d0838e..b4900aa 100644
--- a/fer/plt/choose_cx_ww.F
+++ b/fer/plt/choose_cx_ww.F
@@ -56,6 +56,7 @@
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction. The time 
 *                  dimension is now an arg to SECS_TO_TSTEP.
 * V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
+* V698  *acm* 5/16 Ticket 1845 fix; adjusting plot-axis ends for subspan modulo axes.
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -69,6 +70,8 @@
 	REAL*8	ww_lo, ww_hi
 
 * internal variable declarations:
+	LOGICAL TM_ITS_SUBSPAN_MODULO, is_subspan, void_at_start, void_at_end
+	INTEGER CGRID_AXIS, CAXIS_LEN, iaxis, lo_ss, hi_ss
 	INTEGER	imp_ndim, exp_ndim, imp_dim(4), exp_dim(4), grid,
      .		lo_edge, hi_edge
 	REAL*8	TM_WORLD, SECS_TO_TSTEP, ww_low, ww_hiw
@@ -83,18 +86,35 @@
 	   lo_edge =  box_lo_lim
 	   hi_edge =  box_hi_lim
 
+* Is the start or end in the subspan modulo void cell? If so bring in the region spec.
+	   iaxis = CGRID_AXIS(idim,imp_cx)
+	   lo_ss = cx_lo_ss(imp_cx,idim)
+	   hi_ss = cx_hi_ss(imp_cx,idim)
+	   is_subspan = TM_ITS_SUBSPAN_MODULO( iaxis  )
+	   void_at_start = is_subspan .AND. (lo_ss .EQ.0)
+	   void_at_end   = is_subspan .AND. (hi_ss .EQ. CAXIS_LEN(idim,imp_cx)+1 )
+
+	   IF (is_subspan) THEN
+              IF (void_at_start) THEN 
+	         lo_ss = lo_ss + 1
+	         ww_lo = TM_WORLD( lo_ss, grid, idim, box_lo_lim )
+              ENDIF
+              IF (void_at_end  )  THEN 
+	         hi_ss = hi_ss - 1
+	         ww_hi = TM_WORLD( hi_ss, grid, idim, box_hi_lim )
+              ENDIF
+	   ENDIF
+
 * 3/95 but for contour (and filled contour) plots we can only plot the edges
 * up to the actual location of the point
         IF ( cmnd_num .EQ. cmnd_contour ) THEN
            ww_lo = MAX( ww_lo,
-     .                  TM_WORLD(cx_lo_ss(imp_cx,idim),grid,idim,
-     .                           box_middle)                    )
+     .                  TM_WORLD(lo_ss,grid,idim,box_middle)                    )
            ww_hi = MIN( ww_hi,
-     .                  TM_WORLD(cx_hi_ss(imp_cx,idim),grid,idim,
-     .                           box_middle)                    )
+     .                  TM_WORLD(hi_ss,grid,idim,box_middle)                    )
         ENDIF
 
-* contour expression has its own limits imbedded ?
+* contour expression has its own limits embedded ?
 	IF ( uvar_given(idim,uvar) .LT. uvlim_needed ) RETURN
 
 * contour expression depends on command limits - use 'em
@@ -127,7 +147,7 @@
 	      ww_hi = MIN( ww_hiw, ww_hi )
 	   ENDIF
 	ENDIF
-	
+
 
 * For a one-point axis and contour plot, return the lo and hi ww requested
         IF (np .EQ. 1) THEN
diff --git a/fer/plt/disp_data_set_up.F b/fer/plt/disp_data_set_up.F
index 13bd2ed..b102ff2 100644
--- a/fer/plt/disp_data_set_up.F
+++ b/fer/plt/disp_data_set_up.F
@@ -88,6 +88,14 @@
 	CALL GET_PROT_CMND_DATA ( memory, cx_last, ptype_float, status )
 	IF ( status .NE. ferr_ok ) GOTO 5100
 
+* PLOT/ALONG -- reinterpret a multi-D data block as a collection of lines
+	IF (  cmnd_num .EQ. cmnd_plot
+     .	.AND. qual_given(slash_plot_along) .GT. 0
+     .	.AND. .NOT.plot_vs                       ) THEN
+	   CALL PLOT_ALONG_DATA_SET_UP(status)
+	   IF (status .NE. ferr_ok) GOTO 5010
+	ENDIF
+
 * PLOT/STEP needs double or triple the working storage
 *    double to make connected steps, triple for disconnected
 	factor = 1
diff --git a/fer/plt/disp_init.F b/fer/plt/disp_init.F
index 81fc72c..221b95d 100644
--- a/fer/plt/disp_init.F
+++ b/fer/plt/disp_init.F
@@ -89,6 +89,11 @@
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
 * V686 *acm* 12/13 set up the label symbols LABNUM_E and LABNUM_F
 * V695+ *sh*  3/15 remove movable label rotations (left behind by FMRC annotations)
+* V697 *acm* 12/15 Fixes for bug 2327 move call of PPL_AXES_RESTORE back to end of plot routines
+* V697  *acm*  1/16 Ticket 2344: if there was a time-plot underlay, use its
+*                   delta-t for time overlay plots. TAXUND restores the default.
+* V697  *acm*  1/16 Ticket 2344: if there was a time-plot underlay, use the underlay's 
+*                   time scaling for time overlay plots. TAXUND restores the default.
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -124,6 +129,7 @@
 * 1/99 *kob* comment out call for aline as this was moved to disp_prep instead
 *	CALL PPLCMD ( from, line, 0, 'ALINE ', 1, 1 )
 	CALL PPLCMD ( from, line, 0, 'TAXIS OFF', 1, 1 )
+	CALL PPLCMD ( from, line, 0, 'TAXUND 0', 1, 1 )
 	CALL PPLCMD ( from, line, 0, 'TITLE', 1, 1 )
 *	CALL PPLCMD ( from, line, 0, 'TICS .125', 1, 1 )    ! chg 12/93
 	CALL PPLCMD ( from, line, 0, 'WINDOW ON', 1, 1 )
@@ -131,13 +137,6 @@
 	CALL PPLCMD ( from, line, 0, 'XVALOFF 0', 1, 1 )
 	CALL PPLCMD ( from, line, 0, 'YVALOFF 0', 1, 1 )
 
-        IF (iaxset .EQ. 1) THEN   ! If /AXES was used on prev. plot call, reset defaults
-           CALL PPL_AXES_RESTORE
- 	   CALL PPLCMD ( from, line, 0, 'AXSET,1,1,1,1', 1, 1 )
-	   CALL PPLCMD ( from, line, 0, 'AXLABP -1,-1', 1, 1)
-           iaxset = 0
-        ENDIF
-
 * Label numbers for the Ferret logo (if drawn) for pyFerret text settings
 	
 	DO i = 1, 3
diff --git a/fer/plt/disp_labels.F b/fer/plt/disp_labels.F
index 07f3724..4fc9f75 100644
--- a/fer/plt/disp_labels.F
+++ b/fer/plt/disp_labels.F
@@ -74,6 +74,7 @@
 *                  since they are used as parameters, and prefixed with 
 *                  dflt_ those that need to be scaled by pplscale or textscale.
 * V6.95 *acm* 3/15 Changes for PyFerret fonts. 
+* V7   *acm* 6/16 see ticket 2435. Tweak to split dataset labels after DATA SET:
 
 	include 'tmap_dims.parm'
 	include 'xdset_info.cmn_text'
@@ -187,7 +188,7 @@
 	   CALL BOX_LABEL( ppl_movlab-ppl_dset, 
      .			   'DATA SET: '//line_buff(:lablen),
      .			   0.0, yoff,
-     .			   0.5*xlen, 1.5*dflt_letsize_label*textscale,
+     .			   0.45*xlen, 1.5*dflt_letsize_label*textscale,
      .			   ur_labht, ppl_right_just,
      .			   lab_loc_axlen_plus, lab_loc_axlen_plus )
 
diff --git a/fer/plt/disp_prep.F b/fer/plt/disp_prep.F
index d1b5f52..6657876 100644
--- a/fer/plt/disp_prep.F
+++ b/fer/plt/disp_prep.F
@@ -68,10 +68,14 @@
 * 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
-
+* 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
+* v698 *acm*  2/16 Allow for /LEV=h, histogram levels without specifying a number.
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -80,6 +84,7 @@
 	include 'slash.parm'
 	include 'plot_setup.parm'
 	include 'xplot_setup.cmn'
+	include 'xplot_state.cmn'
 	include 'xprog_state.cmn'
 	include 'parampl5_dat.decl'	! with inclen
 	include 'PARAMPL5.DAT'	! with inclen
@@ -119,7 +124,8 @@
 
 * initialize
 	centered  = .FALSE.
-	openlev = .FALSE.	
+	openlev = .FALSE.
+	use_hist = .FALSE.	
 	set_std = .FALSE.
 	set_mean = .FALSE.
 	set_min = .FALSE.
@@ -140,6 +146,11 @@
 * forget line specimen definitions that were used in previous plots
         CALL PPLCMD ( from, line, 0, 'ALINE ', 1, 1 )
 
+* if the colorkey was changed by a previous key=center, etc reset it.
+        IF (changed_key ) THEN
+           CALL PPLCMD (from, line, 0, 'S_KEY 0', 1, 1 )
+           changed_key = .FALSE.
+        ENDIF
 
 * what qualifiers will effect the initialization of PLOT+
 
@@ -308,7 +319,7 @@
                     IF (str_buff(str_len:str_len) .EQ. 'H') THEN  ! histogram
                        is_hist = .TRUE.
                        str_len = str_len - 1
-                       qual_end(lev_loc) = qual_end(lev_loc) - 1
+		       IF (str_len .NE. 0) qual_end(lev_loc) = qual_end(lev_loc) - 1
                     ENDIF 
 
                     str_1 = qual_start(lev_loc)
@@ -374,6 +385,11 @@
 		          nlev = val
 		          IF (val.LE.0. .OR. val.GT.250.) GOTO 5160
 		       ENDIF
+		       IF (str_len .EQ. 0) THEN
+		          lev_hist = nlev
+		          get_more = .FALSE.
+			  str_1 = 1
+		       ENDIF
 	            ELSEIF ( is_cv) THEN
 		       IF (val .NE. bad_val4) THEN
 		          nlev = val
diff --git a/fer/plt/disp_reset.F b/fer/plt/disp_reset.F
index d5a5104..ec59bc5 100644
--- a/fer/plt/disp_reset.F
+++ b/fer/plt/disp_reset.F
@@ -54,9 +54,10 @@
 * PyFr *kms*  7/13 reset to scaled lengths and sizes using SET_PPL_VALUES
 * v696  *acm* 6/15 PLOT/VS/GAPLOC to define seperate line segments on
 *                  PLOT/VS plots (LAS ticket 1597 and others)
+* V697  *acm*  1/16 Ticket 2344: if there was a time-plot underlay, use the underlay's 
+*                   time scaling for time overlay plots. TAXUND restores the default.
 
         IMPLICIT NONE
-
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
 	include 'plot_setup.parm'
@@ -102,6 +103,7 @@
 	CALL PPLCMD ( from, line, 0, 'AXNMTC 0,0', 1, 1 )
 c	CALL PPLCMD ( from, line, 0, 'TXNMTC 0', 1, 1 )
 	CALL PPLCMD ( from, line, 0, 'TXNMTC -1', 1, 1 )
+	CALL PPLCMD ( from, line, 0, 'TAXUND 0', 1, 1 )
 	CALL PPLCMD ( from, line, 0, 'TITLE', 1, 1 )
 	CALL PPLCMD ( from, line, 0, 'WINDOW ON', 1, 1 )
 	CALL PPLCMD ( from, line, 0, 'BOX OFF', 1, 1 )
diff --git a/fer/plt/disp_set_up.F b/fer/plt/disp_set_up.F
index 516c27e..2716911 100644
--- a/fer/plt/disp_set_up.F
+++ b/fer/plt/disp_set_up.F
@@ -160,6 +160,10 @@
 * V694  *acm*  1/15 Changes to allow two time axes on plot (F-T)
 * V695+ *sh*  3/15 if an FMRC dataset disambiguate T and F axes with labels
 * V695  *acm*  5/15 Ticket 2279: PyFerret don't redraw labels on an overlay
+* V697  *acm* 2/16 Fix ticket 2360: overlays on time plots
+* V697  *acm* 2/16 Fix ticket 2365: overlays with a single vector (or single-valued variable)
+*                  returned a status flag of 0 from COMPUTE_MNSTD. Set status to ferr_ok
+*                  after handling the condition.
 
 C replace includes with those from plot_set_up, 
 C plus those starting w/ xbox_bounds:
@@ -209,12 +213,13 @@ C plus those starting w/ xbox_bounds:
 
 * internal variable declarations:
 	CHARACTER*1020	COMPOUND_TITLE, COMPOUND_KEY, plot_title
-	CHARACTER	TM_FMT*16, LEFINT*8, LEFT_REAL*16,
+	CHARACTER	TM_FMT*16, LEFINT*8, LEFT_REAL*16, INTERNAL_WHOI_DATE*14, 
      .                  xstyle*3, ystyle*3, cmnd_name*8, year*4, buff*8,
      .			letter*1, buff1*16, buff2*16, buff30*30,
      .                  TM_GET_CALENDAR_NAME*32, cal_name_1*32, 
      .                  cal_name_2*32, err_string*128,
-     .			xtra_xlab*24, xtra_ylab*24
+     .			xtra_xlab*24, xtra_ylab*24, t1_date*14
+
         CHARACTER*1     axdir(6)
 
 	LOGICAL		NO_GRID_RANGE, GEOG_LABEL, TM_FPEQ, ITS_FMRC,
@@ -234,13 +239,13 @@ C plus those starting w/ xbox_bounds:
      .			phlim, pvlim, slen2, cal_id, tax,
      .			x_axtyp, y_axtyp, iscl, siz, nsiz, 
      .			TM_GET_CALENDAR_ID, mode_num, axis1, axis2,
-     .                  hblk1, mvh_temp, i
+     .                  hblk1, mvh_temp
 	REAL		s, w1_lo, w1_hi, w2_lo, w2_hi, valy1,
      .			d1_regrid, d2_regrid, bad_x, bad_y, rlo, rhi,
      .			xkeypos, ykeypos, xkeysize, ykeysize, lab_ht,
      .                  first, last, labelht
 	REAL*8		xaxlo, xaxhi, yaxlo, yaxhi, delta
-	REAL*4		rw1lo, rw2lo, rbad
+	REAL*4		rw1lo, rw2lo, rbad, dt_min
 
         DATA axdir / 'X', 'Y', 'Z', 'T', 'E', 'F' /
 
@@ -527,21 +532,48 @@ C   set up memory for the flag grid
  3105	FORMAT('PEN 1,',I3)
 
 * set up the axis formats (use exact limits, if given by /HLIMITS or /VLIMITS)
-	IF ( .NOT.overlay ) THEN
-           time_axis = GEOG_LABEL( dim1, grid )  .AND. 
+
+	time_axis = GEOG_LABEL( dim1, grid )  .AND. 
      .                 (dim1.EQ.t_dim .OR. dim1.EQ.f_dim) 
 
-	   has_time_axis = time_axis	! save for PLOT/VS/OVERLAY (6/99)
-           IF (time_axis) THEN
-              tax = grid_line(dim1, grid)
-              cal_id = TM_GET_CALENDAR_ID ( line_cal_name(tax) )
-	      IF(overlay .AND. cal_id .NE. saved_calendar_id) GO TO 5660
+	IF ( .NOT.overlay ) has_time_axis = time_axis	! save for PLOT/VS/OVERLAY (6/99)
+	IF (time_axis) THEN
+           tax = grid_line(dim1, grid)
+           cal_id = TM_GET_CALENDAR_ID ( line_cal_name(tax) )
+           IF(overlay .AND. cal_id .NE. saved_calendar_id) GO TO 5660
+           
+	   IF ( .NOT.overlay ) THEN
+	      saved_calendar_id = cal_id
 	      ppl_buff = ' '
-	      WRITE ( ppl_buff, 3004 ) line_cal_name(tax)
+              WRITE ( ppl_buff, 3004 ) line_cal_name(tax)
               CALL PPLCMD (from, line, 0, ppl_buff, 1, 1)
  3004         FORMAT ('CALENDAR ', A7)
-	      saved_calendar_id = cal_id
-           ENDIF
+	   ENDIF
+
+* Send the start time and time units for overlay to PPLUS
+	   IF (overlay) THEN
+	      t1_date =  INTERNAL_WHOI_DATE(grid, dim1, 1.0D0 )
+	      dt_min = line_tunit( grid_line(dim1,grid) ) / 60.
+	      CALL SET_T1_DATE (t1_date, dt_min)
+	   ENDIF
+        ELSE
+	
+* Time on the vertical axis?
+	   IF (GEOG_LABEL( dim2, grid )  .AND. 
+     .                  (dim2.EQ.t_dim .OR. dim2.EQ.f_dim)) THEN
+
+* Send the start time and time units for overlay to PPLUS
+	      IF (overlay) THEN
+	         t1_date =  INTERNAL_WHOI_DATE(grid, dim2, 1.0D0 )
+	         dt_min = line_tunit( grid_line(dim2,grid) ) / 60.
+	         CALL SET_T1_DATE (t1_date, dt_min)
+	      ENDIF
+	   ENDIF
+
+	ENDIF
+
+
+	IF ( .NOT.overlay ) THEN
 
 	   IF ( pxlim .GT. 0 ) THEN
 	      IF (.NOT.denig_xylim_msg_done) THEN
@@ -582,20 +614,6 @@ C   set up memory for the flag grid
 	   haxlo = xaxlo	! save limits so overlays
 	   haxhi = xaxhi	! will know them
 
-	   time_axis = GEOG_LABEL( dim1, grid )  .AND. 
-     .                  (dim1.EQ.t_dim .OR. dim1.EQ.f_dim) 
-
-	   has_time_axis = time_axis	! save for PLOT/VS/OVERLAY (6/99)
-           IF (time_axis) THEN
-              tax = grid_line(dim1, grid)
-              cal_id = TM_GET_CALENDAR_ID ( line_cal_name(tax) )
-	      IF(overlay .AND. cal_id .NE. saved_calendar_id) GO TO 5660
-	      ppl_buff = ' '
-	      WRITE ( ppl_buff, 3004 ) line_cal_name(tax)
-              CALL PPLCMD (from, line, 0, ppl_buff, 1, 1)
-	      saved_calendar_id = cal_id
-           ENDIF
-
 	   CALL AXIS_ENDS  ( 'X', dim1, grid, xaxlo, xaxhi, delta, is_logx,
      .			      x_axtyp, status )
 	   IF ( status .NE. ferr_ok ) THEN
@@ -686,7 +704,8 @@ C ACM added 8/2001 save cal id if vertical time axis
  3006         FORMAT ('axtype,', I2, ',', I2)
 	      CALL PPLCMD ( from, line, 0, buff2, 1, 1)
 	   ENDIF
-        ENDIF
+
+        ENDIF   ! .NOT.overlay
 
 * rotate vectors to make axis scale ratio correction ?
 	IF ( vector .AND. aspect.GT.0. ) CALL RE_ORIENT(
@@ -730,12 +749,13 @@ C ACM added 8/2001 save cal id if vertical time axis
 
        nsiz = size1* size2
        rbad = bad_val4
-       CALL compute_mnstd (memory(1, xblk1), bad_x, need_std, 
+       CALL COMPUTE_MNSTD (memory(1, xblk1), bad_x, need_std, 
      .    nsiz, rbad, status)
        IF (status .NE. ferr_ok) THEN
 * ... set up for automatic levels
-	   CALL PPLCMD ( from, line, 0, 'LEV,()', 1, 1 )
+	  CALL PPLCMD ( from, line, 0, 'LEV,()', 1, 1 )
           CALL USE_LINEAR_LEVELS
+	  status = ferr_ok
        ENDIF
 
 * If histogram-based levels are requested, compute the 
@@ -795,9 +815,9 @@ C ACM added 8/2001 save cal id if vertical time axis
 * do not re-draw the main label, logo, other labels from the underlay plot
 	   nlabs_on = 0  
 	   CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )	
-	   DO i = 1, 3
-	      logolab(i) = 0
-	   ENDDO
+	   logolab(1) = 0
+	   logolab(2) = 0
+	   logolab(3) = 0
 
 	   use_keys = .TRUE.
 	   IF ( .NOT.user_title ) THEN
diff --git a/fer/plt/line_style.F b/fer/plt/line_style.F
index f527b53..2140394 100644
--- a/fer/plt/line_style.F
+++ b/fer/plt/line_style.F
@@ -1,6 +1,6 @@
-	SUBROUTINE LINE_STYLE( symbol, sym_size, color, color1,
-     .			       use_line, do_dash, dashstyle,
-     .			       line_number, so_far )
+	SUBROUTINE LINE_STYLE( symbol, sym_size, skipsym, 
+     .			       color, color1, use_line, do_dash, 
+     .			       dashstyle, line_number, so_far )
 
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -66,6 +66,7 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * v683 *acm* 11/12 Put sym_so_far into common - previously SAVEd here, no longer working.
 * V6.85 *acm* 9/13 New PLOT/COLOR w/o argument for all-color line plot
+* V698  4/16 *acm* New PLOT/SKIP=
 
 	include 'tmap_dims.parm'
 	include	'slash.parm'
@@ -80,7 +81,7 @@
 
 * calling argument declarations
 	LOGICAL use_line
-	INTEGER symbol, color, color1, line_number, so_far, do_dash
+	INTEGER symbol, skipsym, color, color1, line_number, so_far, do_dash
 	REAL	sym_size, dashstyle(*)
 
 * internal variable declarations
@@ -186,9 +187,9 @@
 	ENDIF
 	CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
 	IF ( imrk .GT. 0 ) THEN
-* ... "MARKH 8 0.08" - symbol size 0.08 on line 8
-	   WRITE ( ppl_buff, 3300 ) line_number, sym_size
- 3300	   FORMAT ('MARKH ',I4,F8.3)
+* ... "MARKH 8 0.08 5" - symbol size 0.08 on line 8, decimate by 5
+	   WRITE ( ppl_buff, 3300 ) line_number, sym_size, skipsym
+ 3300	   FORMAT ('MARKH ',I4,F8.3, i4)
 	   CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
 	ENDIF
 
diff --git a/fer/mem/create_full_range_context.F b/fer/plt/lon_lat_fmt.F
similarity index 64%
copy from fer/mem/create_full_range_context.F
copy to fer/plt/lon_lat_fmt.F
index c2ae558..d7cf17a 100644
--- a/fer/mem/create_full_range_context.F
+++ b/fer/plt/lon_lat_fmt.F
@@ -1,5 +1,4 @@
-	SUBROUTINE CREATE_FULL_RANGE_CONTEXT ( source, dest, status )
-
+	SUBROUTINE LON_LAT_FMT (idim, x_or_y)
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -34,49 +33,45 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* transfer space/time/data_set/variable context from one context buffer to
-* another and then expand it to be the full grid range of that variable
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V695+ 5/15 *sh* 
 
-	IMPLICIT NONE
+* Set up PPLUS with info on longitude formatting with Deg-Min-Sec, and/or 
+* adjusting spacing on labels with E,W,N, or S.
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
-	include 'errmsg.parm'
-	include 'xcontext.cmn'
+	include 'plot_setup.parm'
+	include 'xplot_setup.cmn'
+	include 'xplot_state.cmn'
 
-* calling argument declarations
-	INTEGER	source, dest, status
+	INTEGER idim
+	CHARACTER*(*) x_or_y
 
-* internal variable declarations
-	INTEGER CX_DIM_LEN_ZERO, idim, n
+	INTEGER slen
+	REAL	val
+	CHARACTER TM_FMT*10, str*10
 
-* initialize
-	status = ferr_ok
+* longitude or latitude formatting
+	IF ( idim .EQ. x_dim .OR. idim .EQ. y_dim) THEN
 
-	CALL TRANSFER_CONTEXT(source, dest)
+	   ppl_buff = x_or_y//'FOR (dd)'
+	   IF (dms .NE. 0) THEN
+	      IF (dms .EQ. 1) ppl_buff = x_or_y//'FOR (dm)' 
+	      IF (dms .EQ. 2) ppl_buff = x_or_y//'FOR (dms)'
+	   ENDIF
+	   CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
 
-* expand context to full grid range
-	DO idim = 1, nferdims
-	   cx_trans(idim,dest) = trans_no_transform
-	   n = CX_DIM_LEN_ZERO(idim, dest)
-	   IF ( n .GT. 0 ) THEN
-	      cx_lo_ss(dest, idim) = 1
-	      cx_hi_ss(dest, idim) = n
-	      cx_by_ss(idim, dest) = .TRUE.
-	      CALL FLESH_OUT_AXIS(idim, dest, status )
-	      IF (status .NE. ferr_ok) GOTO 5000
+	   ppl_buff = x_or_y//'FOR (SPC0)'
+	   IF (lonlatspace .NE. 0) THEN
+	     val = lonlatspace
+	     str = TM_FMT(val, 4, 10, slen)
+	     ppl_buff = x_or_y//'FOR (SPC'//str(:slen)//')'
 	   ENDIF
-	ENDDO
+	   CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
+	ENDIF
 
 	RETURN
-
-* error exit
- 5000	RETURN
 	END
diff --git a/fer/plt/plot_along_data_set_up.F b/fer/plt/plot_along_data_set_up.F
new file mode 100644
index 0000000..49417e6
--- /dev/null
+++ b/fer/plt/plot_along_data_set_up.F
@@ -0,0 +1,224 @@
+	SUBROUTINE PLOT_ALONG_DATA_SET_UP( 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. 
+*
+*
+* modify the interpretation of the command data so it looks like
+* a collection of 1D lines in the "/ALONG" direction
+* this will be accomplished by generating a list of contexts, each for a
+* single line, each pointing to the same, shared memory-resident array
+
+* programmer - steve hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+*
+* V698 *sh* 3/16
+*      *sh* 4/16 - tweak decimation behavior
+
+	include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'errmsg.parm'
+	include 'slash.parm'
+	include 'command.parm'
+	include 'xvariables.cmn'
+	include 'xcontext.cmn'
+	include 'xprog_state.cmn'
+	include 'xplot_setup.cmn'
+	include 'xtext_info.cmn'
+	
+* calling argument declarations:
+	INTEGER	status
+
+* internal variable declarations:
+	LOGICAL has_keys
+	INTEGER	CX_DIM_LEN, iline, nlines, stride(nferdims),
+     .		ss(nferdims), ssmin(nferdims), ssmax(nferdims),
+     .		idim, along_dim, the_dim, ndim, dim(nferdims),
+     .		max_along_lines, cx0, the_cx, nreduce_axes, loc, slen
+	REAL	reduce_factor
+	CHARACTER*1 buff1, LEFINT*8, buff8*8
+
+* initialize
+	DO idim = 1, nferdims
+	   stride(idim) = 1
+	ENDDO
+
+* get the desired orientation   e.g. "/ALONG=T"
+	loc = qual_given( slash_plot_along )
+	CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .                     buff1, status )
+	IF (status .NE. ferr_ok) GOTO 5000
+	DO along_dim = 1, nferdims
+	   IF ( buff1 .EQ. ww_dim_name(along_dim) ) GOTO 100
+	ENDDO
+* ... unrecognized orientation	         
+	GOTO 5100
+
+* can only be a single argument in this form of the command
+ 100	IF (num_uvars_in_cmnd .GT.1) GOTO 5200
+
+* how many individual lines have been requested?
+	CALL TRANSFER_CONTEXT( is_cx(1), cx_buff )
+	CALL GET_CX_DIMS(cx_buff, ndim, dim)
+	nlines = 1
+	DO idim = 1, ndim
+	   the_dim = dim(idim)
+	   IF (the_dim .EQ. along_dim) CYCLE
+	   nlines = nlines * CX_DIM_LEN(the_dim, cx_buff)
+	ENDDO
+	IF (nlines .EQ. 1) RETURN   ! no action needed here
+
+* have plot keys been requested?
+	has_keys = qual_given(slash_plot_nokey) .EQ. 0
+     .       .AND. qual_given(slash_plot_title) .EQ. 0
+
+* how many individual lines are allowed
+* (max_key_entries smaller than max_line_on_plot)
+	max_along_lines = max_noframe_context - is_cx(1) + 1
+	IF (max_along_lines .GT. max_line_on_plot) max_along_lines =
+     .						   max_line_on_plot
+	IF (has_keys) THEN
+	   max_along_lines = max_key_entries
+	   IF (nlines .GT. max_key_entries) THEN
+	      buff8 = LEFINT( max_key_entries,  slen  )
+	      CALL WARN('Decimating PLOT/ALONG lines to /KEY limit of '
+     .			// buff8(:slen) )
+	   ENDIF
+	ELSEIF (nlines .GT. max_along_lines) THEN
+	   buff8 = LEFINT( max_along_lines,  slen  )
+	   CALL WARN('Decimating PLOT/ALONG lines to /NOKEY limit of '
+     .			// buff8(:slen) )
+	ENDIF
+
+* if this exceeds the max allowed, figure out how to stride the other axes
+	IF (nlines .GT. max_along_lines) THEN
+	   reduce_factor = FLOAT(nlines) / max_along_lines
+	   nreduce_axes = ndim - 1   ! no striding on the /ALONG axis
+* ... an axis with only 2 points cannot be strided
+	   DO idim = 1, ndim
+	      the_dim = dim(idim)
+	      IF (the_dim .EQ. along_dim) CYCLE
+	      IF (CX_DIM_LEN(the_dim,cx_buff).EQ.2) nreduce_axes =
+     .		nreduce_axes - 1	 
+	   ENDDO
+* ... all axes of len>2 get the same stride
+	   reduce_factor = reduce_factor ** (1./nreduce_axes)
+	   reduce_factor = INT(reduce_factor+0.9999)  ! round up
+	   DO idim = 1, ndim
+	      the_dim = dim(idim)
+	      IF (the_dim .EQ. along_dim) CYCLE
+	      IF (CX_DIM_LEN(the_dim,cx_buff).EQ.2) CYCLE
+	      stride(the_dim) = reduce_factor
+	   ENDDO
+* ... what is the resulting number of lines?
+	   nlines = 1
+	   DO idim = 1, ndim
+	      the_dim = dim(idim)
+	      IF (the_dim .EQ. along_dim) CYCLE
+	      nlines = nlines *
+     .		       INT(CX_DIM_LEN(the_dim,cx_buff)/stride(the_dim))
+	   ENDDO
+	   IF (nlines .GT. max_along_lines) GOTO 5300
+	ENDIF
+
+* initiailize the axis subscript counters
+	DO idim = 1, ndim
+	   the_dim = dim(idim)
+	   IF (the_dim .EQ. along_dim) CYCLE
+	   ssmin(the_dim) = cx_lo_ss(cx_buff,the_dim)
+	   ssmax(the_dim) = cx_hi_ss(cx_buff,the_dim)
+	   ss(the_dim)    = ssmin(the_dim)
+	ENDDO
+
+* populate the contexts
+	cx0 = is_cx(1) - 1
+	DO iline = 1, nlines
+
+	   is_mr(iline) = is_mr(1)  ! a single mr shared by all
+! removed cuz num_uvar_in_cmnd is reset to 1 at end of XEQ_PLOT. Have to reset
+! it because when same identical expression is found in NEXT command,
+! GET_PROT_CMND_DATA declines to re-parse it, so that EX#1 can remain in memory
+!	   CALL MR_IN_USE(is_mr(1))
+
+	   the_cx = cx0 + iline
+	   is_cx(iline) = the_cx
+	   CALL TRANSFER_CONTEXT( cx_buff, the_cx )
+
+* ... set the per-axis positions up
+	   DO idim = 1, ndim
+	      the_dim = dim(idim)
+	      IF (the_dim .EQ. along_dim) CYCLE
+	      cx_by_ss(the_dim, the_cx) = .TRUE.
+	      cx_lo_ss(the_cx,the_dim) = ss(the_dim)
+	      cx_hi_ss(the_cx,the_dim) = ss(the_dim)
+	      CALL FLESH_OUT_AXIS( the_dim, the_cx, status )
+	      IF (status .NE. ferr_ok) GOTO 5000
+	   ENDDO
+
+* ... prepare for the next context
+	   DO idim = 1, ndim
+	      the_dim = dim(idim)
+	      IF (the_dim .EQ. along_dim) CYCLE
+	      ss(the_dim) = ss(the_dim) + stride(the_dim)
+	      IF (ss(the_dim) .LE. ssmax(the_dim)) THEN
+	         EXIT
+	      ELSE
+	         ss(the_dim) = ssmin(the_dim)
+	         CONTINUE     ! continue to the next dimension
+	      ENDIF
+	   ENDDO
+	ENDDO
+
+* un-bump by one, for the original cx, which has been over-written
+! commented out along with CALL MR_IN_USE above
+!	CALL MR_NOT_IN_USE(is_mr(1))
+
+* make the rest of Ferret believe that all these lines were asked for
+	num_uvars_in_cmnd = nlines
+
+* successful completion
+	RETURN
+
+* error exit2
+ 5000	RETURN
+ 5100	CALL ERRMSG(ferr_invalid_command, status,
+     .          "PLOT/ALONG='axis', where axis = X,Y,Z,T,E or F", *5000)
+ 5200	CALL ERRMSG(ferr_invalid_command, status,
+     .          "Use just a single argument with PLOT/ALONG", *5000)
+ 5300	CALL ERRMSG(ferr_internal, status,
+     .		"plot_along_data_set_up strides ??!!", *5000)
+
+	END
+
+
+
+
diff --git a/fer/plt/plot_set_up.F b/fer/plt/plot_set_up.F
index eaee8c9..7017b1a 100644
--- a/fer/plt/plot_set_up.F
+++ b/fer/plt/plot_set_up.F
@@ -1,10 +1,10 @@
-      SUBROUTINE PLOT_SET_UP( memory,
+        SUBROUTINE PLOT_SET_UP( memory,
      .				overlay, transpz, versus, no_labels,
      .				symbol, sym_size, color, color1, use_line,
      .				step_inc, do_dash, dashstyle,
      .                          is_logx, is_logy, nokey, addgaps,
-     .				all_1_dep, only_val, mv_list, cx_list, 
-     .				nmv, indep_dat, dep_dat, status )
+     .				all_1_dep, only_val, skipsym, mv_list, 
+     .				cx_list, nmv, indep_dat, dep_dat, status )
 
 *
 *
@@ -164,6 +164,13 @@
 * V695  *acm* 9/15 Changes for HH:MM labeling when plotting short time range.
 *                  For these axes reset the start time by only a day.
 * V695  *acm* 9/15 Tweak to above - dont reset tref for overlay plots.
+* V697  *acm* 1/16 Further fix ticket Fix 2122. Make sure the dependent axis
+*                  data min and max are set.
+* V698 *sh* 3/16 - limit max number of plot keys generated
+* V698  4/16 *acm* New PLOT/SKIP=
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -188,7 +195,7 @@
 * calling argument declarations:
 	LOGICAL		overlay, transpz, versus, no_labels, use_line,
      .			is_logx, is_logy, nokey, all_1_dep, addgaps
-	INTEGER		symbol, color, color1, step_inc, do_dash,
+	INTEGER		symbol, color, color1, step_inc, do_dash, skipsym,
      .			nmv, mv_list( nmv ), cx_list( nmv ), status
 	REAL		memory( mem_blk_size, max_mem_blks ), sym_size,
      .                  dashstyle(*), only_val
@@ -200,7 +207,8 @@
      .                  flip, time_axis,
      .			all_1_ind, formatted,
      .			indep_is_log, dep_is_log, use_nice,
-     .                  this_no_range(50), set_axis, timeax_both
+     .                  this_no_range(max_line_on_plot), set_axis,
+     .                  timeax_both
 	CHARACTER*2040	FULL_VAR_TITLE,  KEY_STRING, plot_title
 	CHARACTER	INTERNAL_WHOI_DATE*14, VAR_UNITS*64,
      .			SECS_TO_DATE*20, LEFINT*8, MERGED_WHOI_DATE*14, 
@@ -216,7 +224,7 @@
      .			slen2, slen3, tax, plot_mem_used, nload, i,
      .			pxlim, pylim, phlim, pvlim,pindeplim, pdeplim,
      .			dep_axtyp, indep_axtyp, the_taxis, ribbon_var, 
-     .			gap_var, junits, iaxis, hblk1, mvh_temp
+     .			gap_var, junits, iaxis, hblk1, mvh_temp, nkey_entries
 
 	INTEGER         TM_GET_CALENDAR_ID, cal_id_1, cal_id_2,
      .			cal_id_old, cal_id_new
@@ -241,6 +249,9 @@
 	IF ( mode_diagnostic ) CALL SPLIT_LIST(pttmode_ops, ttout_lun,
      .				'setting up plot', 15)
 
+* limits error check
+        IF (nmv .GT. max_line_on_plot) GOTO 5050
+
 * initialize
 !	dep_max = arbitrary_small_val8
 !	dep_min = arbitrary_large_val8
@@ -264,6 +275,15 @@
 	mod_vs_y = .FALSE.
         cx_x = cx_list(1)
 	xtra_lab = ' '
+        nkey_entries = nmv
+
+* set limit on the number of plot keys
+        IF (.NOT.nokey  .AND.  nmv.GT.max_key_entries) THEN
+           buff1 = LEFINT( max_key_entries,  slen  )
+           CALL WARN('Too many lines to label. Labeling initial '
+     .                          //buff1(:slen) )
+           nkey_entries = max_key_entries
+        ENDIF
 
 * determine PLOT+ memory required
         plot_mem_used = 0
@@ -482,11 +502,14 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
                     IF (mod_vs_x) THEN
                        ppl_buff = 'XFOR,('//fmt(:TM_LENSTR1(fmt))//
      .                  ',''''LONE'''')'
+                       CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
+                       CALL LON_LAT_FMT (x_dim, 'X')
                     ELSE
                        ppl_buff = 'XFOR,('//fmt(:TM_LENSTR1(fmt))//
      .                  ',''''LAT'''')'
+                       CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
+                       CALL LON_LAT_FMT (y_dim, 'Y')
                     ENDIF
-                    CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
                  ENDIF
               ELSE	 
                  CALL PPLCMD ( from, line, 0, 'XFOR 0', 1, 1 )	 
@@ -499,11 +522,14 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
                     IF (mod_vs_y) THEN
                        ppl_buff = 'YFOR,('//fmt(:TM_LENSTR1(fmt))//
      .                  ',''''LONE'''')'
+                       CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
+                       CALL LON_LAT_FMT (x_dim, 'Y')
                     ELSE
                        ppl_buff = 'YFOR,('//fmt(:TM_LENSTR1(fmt))//
      .                  ',''''LAT'''')'
+                       CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
+                       CALL LON_LAT_FMT (y_dim, 'Y')
                     ENDIF
-                    CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
                  ENDIF
               ELSE	 
                  CALL PPLCMD ( from, line, 0, 'YFOR 0', 1, 1 )	 
@@ -832,7 +858,7 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	   nline_on     = nline_on     + 1
 	   nline_in_mem = nline_in_mem + 1
 * ... assign line style for the data plotting:
-	   CALL LINE_STYLE(symbol, sym_size, color, color1, use_line,
+	   CALL LINE_STYLE(symbol, sym_size, skipsym, color, color1, use_line,
      .			   do_dash, dashstyle, nline_in_mem, nline_on)
  200	CONTINUE
         nline_on = nline_on + color1 - 1
@@ -924,7 +950,13 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	         denig_xylim_msg_done = .TRUE.
 	      ENDIF
 *  Check for valid log axis before proceeding
+*  First make sure the min and max are set.
 	      IF (dep_is_log) THEN
+	      
+	         CALL MINMAX( dep_dat, npts, mr_bad_data(mv), lo, hi )
+	         dep_min = DBLE( lo )
+	         dep_max = DBLE( hi )
+	         
 	         CALL AXIS_ENDS( dep_ax, the_taxis, grid, dep_min, dep_max, 
      .                        delta, dep_is_log, dep_axtyp, status )
 	         IF ( status .NE. ferr_OK ) THEN
@@ -1001,7 +1033,7 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 *
 	hlen = xlen ! single-precision xlen from PPLUS common -> double prec. var
 	IF ( .NOT.no_labels ) 
-     .          CALL LINE_PLOT_LABELS (var1, nmv, ndv, cx_list, 
+     .          CALL LINE_PLOT_LABELS (var1, nkey_entries, ndv, cx_list, 
      .		this_no_range, overlay, versus, nokey, time_axis, 
      .		tstyle, cal_id_1, ribbon_var, indep_lab, dep_lab, 
      .		ind_min, dep_len, hlen)
@@ -1013,6 +1045,9 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 * error exit
  5000	CALL PPLCMD ( from, line, 0, 'NLINES', 1, 1 )	! wipe buffers clean
 	RETURN
+ 5050	buff1 = LEFINT( max_line_on_plot,  slen  )
+	CALL ERRMSG( ferr_invalid_command, status, 'cannot plot more than '
+     .                  //buff1(:slen)//' lines with a single PLOT', *5000)
  5100	CALL ERRMSG( ferr_invalid_command, status, 
      .		     cmnd_buff(:len_cmnd)//' : vs what ?', *5000 )
  5110	dep_ax = LEFINT( ndim, slen )
diff --git a/fer/plt/polygon_set_up.F b/fer/plt/polygon_set_up.F
index f95971a..0fe1a07 100644
--- a/fer/plt/polygon_set_up.F
+++ b/fer/plt/polygon_set_up.F
@@ -133,7 +133,11 @@
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
 * V691  *acm*  5/14 Clean up temp memory used for computing histogram levels
 * V695  *acm*  5/15 Ticket 2279: PyFerret don't redraw labels on an overlay
-* V695  *acm* 9/15 send REAL*4 rbad to compare with lev_max, lev_min inside compute_mnstd
+* V695  *acm*  9/15 send REAL*4 rbad to compare with lev_max, lev_min inside compute_mnstd
+* V698  *acm*  3/16 #2396: On a POLYGON/OVERLAY with no /TITLE given, if there is 
+*                   no 3rd argument (colors), make nominal title
+* V698  4/16 *acm* New PLOT/SKIP= means change in call sequence for LINE_STYLE
+
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -195,7 +199,7 @@
      .			cx_buff_x, cx_buff_y,
      .			phlim, pvlim, pxdenig, pydenig,
      .                  cal_id, tax, x_axtyp, y_axtyp, n,
-     .                  ss_x_save, ss_y_save, hblk1, mvh_temp, ier, nc
+     .                  ss_x_save, ss_y_save, hblk1, mvh_temp, ier, nc, skipsym
 
 	REAL		x_len, y_len, lo, hi, lox, hix, loy, hiy,
      .			xkeypos, ykeypos, xkeysize, ykeysize, lab_ht,
@@ -717,11 +721,12 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 * ... restore normal PPLOT+ operations (else segments get prematurely created)
 	   makep = ' '
 
-* NOW set the line style
+* NOW set the line style (skipsym used only on line plots, dummy value here)
         do_dash = 0
-	CALL LINE_STYLE( symbol, 0.08, line_type, line_type, use_line, 
+	skipsym = 1
+	CALL LINE_STYLE( symbol, 0.08, skipsym, line_type, line_type, use_line, 
      .                   do_dash, dashstyle, 1, 1 )
-
+     
 * release context stack buffers
 	cx_stack_ptr = cx_stack_ptr - 2
 	stack_up = .FALSE.
@@ -1128,17 +1133,18 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 * of its coordinate variable
 * The plot title is derived from the color value variable (unless over-ridden
 * by the /TITLE qualifier) and it is placed in a key for overlays or as a
-* title for a fresh plot.
+* title for a fresh plot.  If no 3rd argument, label with the word cnst as
+* we are using a nominal constant as the 3rd argument.
+
 	IF ( overlay ) THEN
 
 * do not re-draw the main label, logo, other labels from the underlay plot
-	   nlabs_on = 0  
-	   CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )	
+	   nlabs_on = 0 
+	   CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )
 	   DO i = 1, 3
 	      logolab(i) = 0
 	   ENDDO
 
-	   CALL OV_GRP_CX_DOC( cx_color, 1, cx_xtra_doc )
 	   IF ( user_title ) THEN
 	      CALL EQUAL_STR_LC(
      .			cmnd_buff(qual_start(ptitl):qual_end(ptitl)),
@@ -1146,7 +1152,14 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
               IF ( status .NE. ferr_ok ) GOTO 5000
 	      slen = TM_LENSTR1( plot_title )
 	   ELSE
-	      plot_title = KEY_STRING( cx_color, cx_xtra_doc, slen )
+	      IF (nmv .EQ. 3) THEN
+	         CALL OV_GRP_CX_DOC( cx_color, 1, cx_xtra_doc )
+	         plot_title = KEY_STRING( cx_color, cx_xtra_doc, slen )
+	      ENDIF
+	      IF (nmv .EQ. 2) THEN
+	         plot_title = 'cnst'
+	         slen = 4
+	      ENDIF
 	   ENDIF
            IF (no_range .AND. (only_val.EQ.mr_bad_data(mr_color)) ) THEN
               plot_title(slen+1:slen+14) = ' No Valid Data'
diff --git a/fer/plt/setup_keys.F b/fer/plt/setup_keys.F
index 6c4a97c..79a56fb 100644
--- a/fer/plt/setup_keys.F
+++ b/fer/plt/setup_keys.F
@@ -55,6 +55,8 @@
 *                  ul_xorigin, and ul_yorigin to plot_setup.parm,
 *                  since they are used as parameters, and prefixed with 
 *                  dflt_ those that need to be scaled by pplscale or textscale.
+* V698 *sh* 3/16 Limit the maximum number of keys.
+*                /NOKEY and /TITLE suppresses yadjust
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -72,18 +74,21 @@
 
 * local variable declarations:
 	LOGICAL	change_yorg, change_ysize, yadjust
-	INTEGER	nrow, idim
+	INTEGER	nrow, idim, nkey
 	REAL	ysqueeze, yspace_needed, yspace_avail
 
+* limit the number of labels
+	nkey = MIN(nvar, max_key_entries)
+
 * how many columns of keys can fit on the plot ?
 	key_ncolmn  = MAX( 1, INT( (xlen - dflt_key_xorigin*pplscale)
      .                            /(dflt_key_xspace0*pplscale) ) )
-	IF (key_ncolmn .GT. nvar) key_ncolmn = nvar	! 4/96
+	IF (key_ncolmn .GT. nkey) key_ncolmn = nkey	! 4/96
 	key_xspace  = MAX( xlen/5., (xlen - dflt_key_xorigin*pplscale)/key_ncolmn )
 	key_xsize   = MAX( xlen/6., key_xspace - dflt_key_xwhite_space*pplscale )
 
 * and how many rows do we need ?
-	nrow = ((nvar-1) / key_ncolmn) + 1
+	nrow = ((nkey-1) / key_ncolmn) + 1
 	yspace_needed = nrow*dflt_key_yspace0*pplscale
 
 * where was the y origin before we tampered with it ?
@@ -105,8 +110,10 @@
 *  1) the keys will fit using the default y origin and key label size
 *  2) the keys will fit but only by shrinking the label size
 *  3) the keys will fit only by shifting the y origin (y location of x axis)
-	yadjust = cmnd_num .EQ. cmnd_plot  ! added 9/01 *sh*
+	yadjust = cmnd_num .EQ. cmnd_plot
 	IF (yadjust) yadjust = qual_given(slash_plot_noyadjust).EQ.0
+	IF (yadjust) yadjust = qual_given(slash_plot_nokey).EQ.0
+	IF (yadjust) yadjust = qual_given(slash_plot_title).EQ.0
 	IF ( .NOT.yadjust ) THEN
 	   change_ysize = .FALSE.
 	   change_yorg  = .FALSE.
diff --git a/fer/plt/taxis_style.F b/fer/plt/taxis_style.F
index 102114f..7a36771 100644
--- a/fer/plt/taxis_style.F
+++ b/fer/plt/taxis_style.F
@@ -185,7 +185,7 @@
 
 * TXTYPE and TXLINT commands (time axis style)
  510	tstyle_long = tax_style( itax )
-	IF (hrs .LE. 12) tstyle_long = 'HR'
+	IF (hrs .LE. 36) tstyle_long = 'HR'
 	IF (hrs .LE.  2) tstyle_long = 'MIN'
 	tstyle = tstyle_long	! 3 character, only
 	CALL PPLCMD ( from, line, 0, 'TXTYPE '//tstyle_long, 1, 1 )
@@ -212,15 +212,6 @@
  3030	FORMAT ('TXLINT',2I6)
 	CALL PPLCMD ( from, line, 0, ppl_cmnd, 1, 1 )
 
-* eliminate small tics if they would be too dense (default is .125)
-!	IF ( itax .GE. 8 ) THEN
-!	   IF ( its_x ) THEN
-!	      CALL PPLCMD ( from, line, 0, 'TICS 0', 1, 1 )  	! 12/93
-!	   ELSE
-!	      CALL PPLCMD ( from, line, 0, 'TICS,,,0', 1, 1 )	! 11/95
-!	   ENDIF
-!	ENDIF
-
 * special "imposed" labels (used to disambiguate T and F axes)
 	IF (imposed_lab .NE. ' ') THEN
 	   slen = TM_LENSTR1(imposed_lab)
diff --git a/fer/pyf/SOURCE_FILES b/fer/pyf/SOURCE_FILES
index 2c6dbfd..9fa7775 100644
--- a/fer/pyf/SOURCE_FILES
+++ b/fer/pyf/SOURCE_FILES
@@ -13,4 +13,5 @@ get_data_array_params.F \
 get_data_array_time_coords.F \
 get_fer_last_error_info.F \
 get_ferret_params.F \
+get_str_data_array_params.F \
 get_time_axis_num.F
diff --git a/fer/pyf/get_str_data_array_params.F b/fer/pyf/get_str_data_array_params.F
new file mode 100644
index 0000000..fe0919e
--- /dev/null
+++ b/fer/pyf/get_str_data_array_params.F
@@ -0,0 +1,169 @@
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+*  hereafter referred to as NOAA/PMEL/TMAP.
+*
+*  Access and use of this software shall impose the following
+*  obligations and understandings on the user. The user is granted the
+*  right, without any fee or cost, to use, copy, modify, alter, enhance
+*  and distribute this software, and any derivative works thereof, and
+*  its supporting documentation for any purpose whatsoever, provided
+*  that this entire notice appears in all copies of the software,
+*  derivative works and supporting documentation.  Further, the user
+*  agrees to credit NOAA/PMEL/TMAP in any publications that result from
+*  the use of this software or in any product that includes this
+*  software. The names TMAP, NOAA and/or PMEL, however, may not be used
+*  in any advertising or publicity to endorse or promote any products
+*  or commercial entity unless specific written permission is obtained
+*  from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+*  is not obligated to provide the user with any support, consulting,
+*  training or assistance of any kind with regard to the use, operation
+*  and performance of this software nor to provide the user with any
+*  updates, revisions, new versions or "bug fixes".
+*
+*  THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+*  ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY
+*  SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+*  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+*  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+
+*
+* Return memory array parameters/indices for a string data array
+* described by datnam
+*
+* Input:
+*     datnam - description of the data array to retrieve
+*     lennam - actual length of datnam
+*     memory - ferret memory
+*
+* Output:
+*     start - offset into memory giving the start of the data array
+*     memlo, memhi - array dimensions
+*                    (memlo() = memhi() = -999 for invalid axes)
+*     steplo, stephi, incr - step values for the actual data requested
+*                    (steplo() = stephi() = -999 for invalid axes; incr always 1)
+*     axtyp - AXISTYPE parameter values describing the axes
+*     errmsg - error message if an error occurs
+*     lenerr - actual length of errmsg, will be zero if and only if no errors
+*
+      SUBROUTINE GET_STR_DATA_ARRAY_PARAMS(datnam, lennam, memory, 
+     .                          start, memlo, memhi, steplo, stephi, 
+     .                          incr, axtyp, errmsg, lenerr)
+      IMPLICIT NONE
+
+      INCLUDE 'tmap_dims.parm'
+      INCLUDE 'ferret.parm'
+      INCLUDE 'errmsg.parm'
+      INCLUDE 'xcontext.cmn'
+      INCLUDE 'xerrmsg_text.cmn'
+      INCLUDE 'xprog_state.cmn'
+      INCLUDE 'xtm_grid.cmn_text'
+      INCLUDE 'xvariables.cmn'
+      INCLUDE 'pyferret.parm'
+
+*     Passed arguments
+      CHARACTER*(*) datnam, errmsg
+      INTEGER       lennam, start, lenerr, 
+     .              memlo(nferdims), memhi(nferdims),
+     .              steplo(nferdims), stephi(nferdims),
+     .              incr(nferdims), axtyp(nferdims)
+      REAL          memory(*)
+
+*     Function declarations
+      INTEGER TM_LENSTR
+      LOGICAL GEOG_LABEL
+
+*     Local variables
+      INTEGER sts, mr, cx, k, cmnd_stack_level, grid, line
+
+*     Use GET_FER_COMMAND with a LOAD command to deal with parsing the data description
+      CALL GET_FER_COMMAND(memory, 'LOAD ' // datnam(1:lennam), sts, *1000)
+
+*     Get the data into memory
+      CALL GET_CMND_DATA(memory, cx_last, ptype_string, sts)
+      IF ( sts .NE. FERR_OK ) THEN
+           GOTO 1000
+      ENDIF
+
+      mr = is_mr(isp)
+      cx = is_cx(isp)
+
+*     Starting place in memory for this array
+      start = (mr_blk1(mr) - 1) * mem_blk_size
+
+*     Step values for this array.
+*     If the whole array was not requested, a new copy of the data
+*     has been made in memory with unit increments (or so it appears).
+      DO 20 k = 1,nferdims
+          memlo(k) = mr_lo_ss(mr,k)
+          memhi(k) = mr_hi_ss(mr,k)
+          steplo(k) = cx_lo_ss(cx,k)
+          stephi(k) = cx_hi_ss(cx,k)
+          incr(k) = 1
+   20 CONTINUE
+
+*     Axis types
+      grid = cx_grid(cx)
+      IF ( grid .EQ. unspecified_int4 ) THEN
+          errmsg = 'Unexpected error: no grid found'
+          lenerr = TM_LENSTR(errmsg)
+          RETURN
+      ENDIF
+      DO 30 k = 1,nferdims
+          IF ( GEOG_LABEL(k, grid) ) THEN
+*             In Ferret, if a special {longitude,latitude,level,time} axis,
+*             they have to be axis {1,2,3,4}.
+*             Do not do axtype(k) = k in case the parameter values change.
+              IF ( k .EQ. 1 ) THEN
+                  axtyp(k) = AXISTYPE_LONGITUDE
+              ELSE IF ( k .EQ. 2 ) THEN
+                  axtyp(k) = AXISTYPE_LATITUDE
+              ELSE IF ( k .EQ. 3 ) THEN
+                  axtyp(k) = AXISTYPE_LEVEL
+              ELSE IF ( k .EQ. 4 ) THEN
+                  axtyp(k) = AXISTYPE_TIME
+              ELSE
+                  errmsg = 'Unexpected error: unknown geographical axis'
+                  lenerr = TM_LENSTR(errmsg)
+                  RETURN
+              ENDIF
+          ELSE
+*             Either custom (has units), abstract (integers without units), or normal to this data
+              line = grid_line(k,grid)
+              IF ((line .EQ. mnormal) .OR. (line .EQ. munknown)) THEN
+                  axtyp(k) = AXISTYPE_NORMAL
+              ELSE IF ( line_unit_code(line) .NE. 0 ) THEN
+                  axtyp(k) = AXISTYPE_CUSTOM
+              ELSE IF ( line_units(line) .NE. ' ' ) THEN
+                  axtyp(k) = AXISTYPE_CUSTOM
+              ELSE
+                  axtyp(k) = AXISTYPE_ABSTRACT
+              ENDIF
+          ENDIF
+   30 CONTINUE
+
+*     Success
+      errmsg = ' '
+      lenerr = 0
+      RETURN
+
+*     Error return - get message from FER_LAST_ERROR
+ 1000 CONTINUE
+      CALL CLEANUP_LAST_CMND(cmnd_stack_level)
+      CALL GETSYM('FER_LAST_ERROR', errmsg, lenerr, sts)
+      IF ( (lenerr .EQ. 1) .AND. (errmsg(1:1) .EQ. ' ') ) THEN
+          lenerr = 0
+      ENDIF
+      IF ( lenerr .LE. 0 ) THEN
+          errmsg = 'Unable to load ' // datnam(1:lennam)
+          lenerr = TM_LENSTR(errmsg)
+      ENDIF
+      RETURN
+
+      END
+
diff --git a/fer/rpn/break_varattname.F b/fer/rpn/break_varattname.F
index 1c0814f..ca161fc 100644
--- a/fer/rpn/break_varattname.F
+++ b/fer/rpn/break_varattname.F
@@ -53,6 +53,8 @@
 * v6.7 1/11 *acm* Fix ticket 1768; do not write nulls when writing err msgs 
 *                 with attname.
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* v698 5/16  *acm* ticket 2413: New attribute keywords ncoordvars, coordnames
+*                  return info about coordinate-variables in datasets
 
         include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -153,6 +155,8 @@
              attok = .TRUE.
           ELSE IF (STR_SAME(attname, 'dimnames') .EQ. 0 ) THEN
              attok = .TRUE.
+          ELSE IF (STR_SAME(attname, 'coordnames') .EQ. 0 ) THEN
+             attok = .TRUE.
           ELSE IF (STR_SAME(attname, 'attnames') .EQ. 0 ) THEN
              attok = .TRUE.
           ELSE IF (STR_SAME(attname, 'ndims') .EQ. 0 ) THEN
@@ -161,6 +165,8 @@
              attok = .TRUE.
           ELSE IF (STR_SAME(attname, 'nvars') .EQ. 0 ) THEN
              attok = .TRUE. 
+          ELSE IF (STR_SAME(attname, 'ncoordvars') .EQ. 0 ) THEN
+             attok = .TRUE. 
 
 * Is the reference to a global attribute?
 
diff --git a/fer/rpn/break_varname.F b/fer/rpn/break_varname.F
index 63e5d14..eb44aad 100644
--- a/fer/rpn/break_varname.F
+++ b/fer/rpn/break_varname.F
@@ -49,6 +49,7 @@
 *                 occurred, but make the same change here.)
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V6.94 3/15 *acm* Fix ticket 2249: attribute handling for user-defined variables
+* V698 *acm* 1/16 change remaining dset=-1 to the parameter dset=pdset_uvars
 
         include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -72,7 +73,7 @@
 * Break text at dot: varname.attname
 
         dset = dset_in
-        IF (dset .EQ. unspecified_int4) dset = -1   ! try user variables.
+        IF (dset .EQ. unspecified_int4) dset = pdset_uvars   ! try user variables.
 
         risc_buff = text
         tlen = MIN( size_rbuff, TM_LENSTR(text) )
@@ -137,10 +138,10 @@
 * which just depends on that data set
 
         IF (status  .NE. ferr_ok) THEN
-           dset_try = -1
+           dset_try = pdset_uvars
            CALL CD_GET_VAR_ID (dset_try, varname, varid, status)
-           IF (status .EQ. ferr_ok) dset_in = -1
-           IF (status .EQ. ferr_ok) dset = -1
+           IF (status .EQ. ferr_ok) dset_in = pdset_uvars
+           IF (status .EQ. ferr_ok) dset = pdset_uvars
         ENDIF
 
 
diff --git a/fer/rpn/init_uvar.F b/fer/rpn/init_uvar.F
index 65ca93f..ec4bbea 100644
--- a/fer/rpn/init_uvar.F
+++ b/fer/rpn/init_uvar.F
@@ -95,6 +95,7 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V694  *acm* 1214 Fixing ticket 2220: a variablename.attname argument to a function
 *                  needs to be added as a child variable
+* V699 *sh* 6/16 bail out code at 5900 needs to clean up child LIST structures
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'	
@@ -339,15 +340,16 @@
 	DO 5910 uvar_child = uvar, max_uvar
 	   IF ( uvar_name_code(uvar_child)(7:10)
      .     .EQ. child_name(7:10) ) THEN
-*	      uvar_num_items( uvar_child ) = uvar_deleted
-              CALL deleted_list_modify(uvar_num_items_head, 
-     .                         uvar_child, uvar_deleted )
-
-*	      uvar_name_code( uvar_child ) = " "
-              CALL string_array_modify(uvar_name_code_head, uvar_child,
-     .                                  " ", 1)
-
-	      uvar_text     ( uvar_child ) = " "
+	      CALL DELETE_USER_VAR(uvar_child, dset)
+!*	      uvar_num_items( uvar_child ) = uvar_deleted
+!              CALL deleted_list_modify(uvar_num_items_head, 
+!     .                         uvar_child, uvar_deleted )
+!
+!*	      uvar_name_code( uvar_child ) = " "
+!              CALL string_array_modify(uvar_name_code_head, uvar_child,
+!     .                                  " ", 1)!
+!
+!	      uvar_text     ( uvar_child ) = " "
 	   ENDIF
  5910	CONTINUE
 	GOTO 5000
diff --git a/fer/rpn/init_uvar_sub.F b/fer/rpn/init_uvar_sub.F
index 6a7029d..69a8eb2 100644
--- a/fer/rpn/init_uvar_sub.F
+++ b/fer/rpn/init_uvar_sub.F
@@ -76,6 +76,15 @@
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V693+ *sh* 12/14 add support for _DQ_ and _SQ_ as qutation delimiters
 *      *acm*  2/15 Prevent run-time errors in string length for _DQ_ handling
+* V697 12/15 *acm* Ticket 2337 Increase length of cmnd buffer to 20480. If long
+*                  var definition, just truncate it in uvar_text(uvar)
+* V697  2/16 *acm* DO NOT Increase length of cmnd buffer to 20480
+*                  but keep the other changes at that time, handling long 
+*                  defintions
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure.
+* V699  5/16 *sh* pass uvar to CD_ADD_VAR encoded as negative for a LET/D uvar
+*                 include EX# and child vars in the LIST structures
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'	
@@ -94,11 +103,12 @@
 	REAL		bad
 
 * internal variable declarations:
-	LOGICAL inquote
+	LOGICAL		inquote, toolong
 	INTEGER	        TM_LENSTR1, TM_LENSTR, STR_SAME, i, idim,
      .                  natom_rpn, rpn_order(maxatoms), i2, quote_type,
      .                  dset_to_add, slen, iat, varid, type, coordvar
-	CHARACTER	err_string*255, c*1, attname*128
+	CHARACTER	buff*255, c*1
+! 6/16 -- declared but never used: CHARACTER attname*128
 
 * internal parameter declarations
 	INTEGER		p_single_quote, p_double_quote, p__DQ_, p__SQ_
@@ -117,20 +127,22 @@
 * initialize
 
 * algebraic expression too long ?
-	IF ( txend-txstart .GE. uvar_text_len ) CALL ERRMSG
-     .		( ferr_line_too_long, status, text(txend-14:txend), *5000 )
+	toolong =  ( txend-txstart .GE. uvar_text_len ) 
+	IF (toolong) txend = uvar_text_len - 3
 
 * convert to Reverse Polish (stack evaluation) order
 	CALL RPN( text,
      .		  at_type, at_id, at_start, at_end,
      .            natom, natom_rpn, rpn_order,
-     .            status, err_string)
+     .            status, buff)
 	IF ( status .NE. ferr_ok ) GOTO 5440
 * kob 12/97 - natom_rpn cannot be greater than max_uvar_items
 	IF (natom_rpn .GE. max_uvar_items) GOTO 5500
 
 * copy name code and text into slot and change as needed to upper case
 *	vax_code = STR_UPCASE( uvar_name_code( uvar ), name )
+cc        CALL string_array_modify_upcase(uvar_name_code_head, uvar, 
+cc     .                                  name, LEN(name))
         CALL string_array_modify_upcase(uvar_name_code_head, uvar, 
      .                                  name, LEN(name))
 
@@ -206,6 +218,8 @@
 #endif
 	   ENDIF
 	ENDDO
+	IF (toolong) uvar_text(uvar)(uvar_text_len-2:uvar_text_len) = '...'
+
 * (7/98) end of quote-sensitive case changing loop
 
 c* copy title, units, dset, and missing flag into buffers
@@ -219,22 +233,29 @@ c* copy title, units, dset, and missing flag into buffers
 * The variable type is not known at this time - will set it later when the
 * variable gets loaded. 
 
-* Do not add EX# expressions or child variables
+* 6/16 *sh* include EX# expressions and child variables in the LIST structures
 
        type = 0
        coordvar = 0
-       IF (name(1:3) .NE. 'EX#' .AND. .NOT.child) THEN
-          dset_to_add = pdset_uvars  ! user-variable dataset.
+! 6/16       IF (name(1:3) .NE. 'EX#' .AND. .NOT.child) THEN
+       varid = -1 * uvar   ! signals uvar (vs fvar) inside NCF_UTIL.c
+       IF (dset .GT. pdset_irrelevant) THEN
+	  dset_to_add = dset
+       ELSE
+	  dset_to_add = pdset_uvars  ! special dset for global uvars
+       ENDIF
 
-          err_string = title  ! save the value and restore below
-          IF (TM_LENSTR(title) .LT. 1) title = uvar_text(uvar)
+* if no title was provided, then use the LET definition as the title
+       IF (title .EQ. " ") THEN
+          buff =  uvar_text(uvar)
+       ELSE
+          buff = title
+       ENDIF
 
-          CALL CD_ADD_VAR( dset_to_add, varname, uvar, title, units, 
+       CALL CD_ADD_VAR( dset_to_add, varname, varid, buff, units, 
      .         type, coordvar, bad, status)
 
-          title = err_string
-          IF ( status .NE. ferr_ok ) GOTO 5600
-       ENDIF
+       IF ( status .NE. ferr_ok ) GOTO 5600
 
 * !!! All the rest of the uvar_*(uvar) properties could become attributes of this uvar !!!
 
@@ -304,7 +325,7 @@ c* copy title, units, dset, and missing flag into buffers
  5440	risc_buff = text(txstart:txend)
 	CALL ERRMSG( ferr_syntax, status,
      .                  risc_buff(:TM_LENSTR1(risc_buff))
-     .                  //pCR//err_string, *5000 )
+     .                  //pCR//buff, *5000 )
 * 12/97 *kob*
  5500   CALL ERRMSG( ferr_expr_too_complex, status,
      .                  text(txstart:txend), *5000 )
diff --git a/fer/special/.gitignore b/fer/special/.gitignore
new file mode 100644
index 0000000..1eb56c5
--- /dev/null
+++ b/fer/special/.gitignore
@@ -0,0 +1,3 @@
+/xmake_date_data.F
+/xplatform_type_data.F
+/xrevision_type_data.F
diff --git a/fer/special/ferret_dispatch.F b/fer/special/ferret_dispatch.F
index 1c95fd7..4144050 100644
--- a/fer/special/ferret_dispatch.F
+++ b/fer/special/ferret_dispatch.F
@@ -145,8 +145,6 @@
      .		XPROG_STATE_DATA,
      .		XTEXT_INFO_DATA,
      .		XVARIABLES_DATA,
-     .		XCALC_VARS_DATA,
-     .		XDSET_PARMS_DATA,
      .		XFR_GRID_DATA,
      .		XGKS_DEVICES_DATA,
      .		XGUI_DATA,
diff --git a/fer/stk/SOURCE_FILES b/fer/stk/SOURCE_FILES
index 060104d..2dfa09d 100644
--- a/fer/stk/SOURCE_FILES
+++ b/fer/stk/SOURCE_FILES
@@ -7,6 +7,7 @@ bad_edges.F\
 bad_edges_sub.F\
 bad_ptr_edges_sub.F\
 clean_stack.F\
+conformable_agg_grid.F\
 constant_context.F\
 const_var_context.F\
 crawl_dependencies.F\
@@ -32,7 +33,6 @@ is_aggregate_gather.F\
 is_aggregate_grid.F\
 is_algebra.F\
 is_auxvar_regrid.F\
-is_calc.F\
 is_attrib_val.F\
 is_constant.F\
 is_const_var.F\
@@ -40,6 +40,7 @@ is_counter_var.F\
 is_dependencies.F\
 is_do_gc_fcn.F\
 is_do_op.F\
+is_dummy.F\
 is_gather.F\
 is_grid_mode.F\
 is_modulo.F\
diff --git a/fer/fmt/aux_var_units.F b/fer/stk/conformable_agg_grid.F
similarity index 51%
copy from fer/fmt/aux_var_units.F
copy to fer/stk/conformable_agg_grid.F
index 5aac023..bbe9111 100644
--- a/fer/fmt/aux_var_units.F
+++ b/fer/stk/conformable_agg_grid.F
@@ -1,4 +1,7 @@
-	CHARACTER*(*) FUNCTION AUX_VAR_UNITS( cx, idim )
+	SUBROUTINE CONFORMABLE_AGG_GRID (agg_dim, vname, imemb,
+     .					 res_grid, res_cat, res_var,
+     .					 com_grid, com_cat, com_var,
+     .					 orig_grid, status )
 
 *
 *
@@ -35,71 +38,65 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* return units text string for an auxiliary variable
+* test that the grid of a member of an aggregation is conformable with the
+* grid of the aggregation result.
+* scalar axes in the result must correspond to scalar axes in the member
+* axes with ranges must be the very same axis ... and not compressed
+* success or failure is indicated by the return status
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V698+ *sh* 5/15 - derived from var_units.F
+* V698 3/16 *sh*
 
 	include	'tmap_dims.parm'
-	include	'xdset_info.cmn_text'
-	external xdset_info_data
-	include 'xtm_grid.cmn_text'
-	external xgt_grid_data
 	include	'ferret.parm'
 	include	'errmsg.parm'
-	include	'xtext_info.cmn'
+	include	'interp_stack.parm'
 	include	'xcontext.cmn'
-	include	'xcalc_vars.cmn'
 	include	'xvariables.cmn'
+	include	'xprog_state.cmn'
+	include	'xtext_info.cmn'
+	include 'xtm_grid.cmn_text'   ! for grid_line
 
-* calling argument declarations
-	INTEGER	cx, idim
+* calling argument declarations:
+	INTEGER res_grid, res_cat, res_var, agg_dim,
+     .		com_grid, com_cat, com_var, orig_grid, imemb, status
+	CHARACTER*(*) vname
 
 * internal variable declarations
-	LOGICAL UNIT_CHG_AX
-	INTEGER	category, variable, status
-
-* initialize
-	category = cx_aux_cat( idim, cx )
-	variable = cx_aux_var( idim, cx )
-
-	IF (variable .EQ. unspecified_int4) THEN
-	   AUX_VAR_UNITS = 'bad units'
-	   CALL ERRMSG( ferr_internal, status, 'aux var cx err', *5000 )
-	ENDIF
-
-* select units by category of variable
-	IF     ( category .EQ. cat_file_var .OR. 
-     .		 category .EQ. cat_agg_e_var .OR. 
-     .		 category .EQ. cat_agg_f_var) THEN
-
-	   AUX_VAR_UNITS = ds_var_units( variable )
-
-	ELSEIF ( category .EQ. cat_calc_var ) THEN
-
-	   AUX_VAR_UNITS = unit_text( cvar_unit_code(variable) )
-
-	ELSEIF ( category .EQ. cat_user_var ) THEN
-
-	   AUX_VAR_UNITS = uvar_units( variable )
-
-	ELSEIF ( category .EQ. cat_pseudo_var 
-     .	   .OR.  category .EQ. cat_constant
-     .	   .OR.  category .EQ. cat_string
-     .	   .OR.  category .EQ. cat_const_var
-     .	   .OR.  category .EQ. cat_counter_var
-     .	   .OR.  category .EQ. cat_attrib_val ) THEN
-
-	   AUX_VAR_UNITS = ' '
-
-	ELSE
-
-	   AUX_VAR_UNITS = 'unit_err'
-
-	ENDIF
-
+	LOGICAL SCALAR_GRID_LINE
+	INTEGER	TM_LENSTR1, idim, slen, vlen
+	CHARACTER LEFINT*6
+
+	DO idim = 1, nferdims
+	   IF (idim .EQ. agg_dim) THEN
+	      IF (.NOT.SCALAR_GRID_LINE(idim, com_grid, com_cat, com_var)) GOTO 5100
+	   ELSEIF (agg_dim.EQ.F_dim .AND. idim.EQ.T_dim) THEN
+	      IF (grid_line(idim,com_grid) .NE. grid_line(idim,orig_grid))
+     .						      GOTO 5100
+	   ELSEIF (SCALAR_GRID_LINE(idim, res_grid, res_cat, res_var)) THEN
+	      IF (SCALAR_GRID_LINE(idim, com_grid, com_cat, com_var)) THEN
+* ... single point component axis need not match result context
+*     e.g. Z=0:500 at ave on component may map to Z=250 single point result 
+	         CYCLE
+	      ELSE
+	         GOTO 5100
+	      ENDIF
+	   ELSE
+	      IF (grid_line(idim,com_grid) .NE. grid_line(idim,res_grid))
+     .							GOTO 5100
+* ... a LET/D compressed to a point may share axis but still be nonconformable
+	      IF (SCALAR_GRID_LINE(idim, com_grid, com_cat, com_var)) GOTO 5100
+	   ENDIF
+	ENDDO
+
+* success
+	status = ferr_ok
+	RETURN
+
+* error exit
  5000	RETURN
-	END
+ 5100	vlen = TM_LENSTR1(vname)
+	CALL ERRMSG(ferr_aggregate_error, status,
+     .		    'grid definition of '// vname(:vlen)//
+     .		    ' has changed on axis '//ww_dim_name(idim)//
+     .		    ' of agg member '//LEFINT(imemb,slen), *5000)
+	END	
diff --git a/fer/stk/get_axis_speed.F b/fer/stk/get_axis_speed.F
index 1f12cc6..40b71ab 100644
--- a/fer/stk/get_axis_speed.F
+++ b/fer/stk/get_axis_speed.F
@@ -54,6 +54,7 @@
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * V685 *acm*  3/13 For Ensemble aggregations, call the ds_type 'ENS'
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
+* V698 *acm* 1/16 Allow for Epic CDF files, ds_type = 'ECDF'
 
 * calling argument declarations:
 	INTEGER	dset
@@ -74,6 +75,7 @@
 
 * netCDF
 	IF( ds_type(dset) .EQ. 'CDF' .OR. 
+     .      ds_type(dset) .EQ. 'ECDF' .OR. 
      .      ds_type(dset) .EQ. 'ENS'.OR. 
      .      ds_type(dset) .EQ. 'FCT') THEN
 * ... "record" axis is slowest (stored in ds_time_axis)
diff --git a/fer/stk/get_prot_cmnd_data.F b/fer/stk/get_prot_cmnd_data.F
index 9ea3d44..1d0a769 100644
--- a/fer/stk/get_prot_cmnd_data.F
+++ b/fer/stk/get_prot_cmnd_data.F
@@ -93,6 +93,8 @@
 *	           aux vars returned on the ISP stack in frame above is_aux_ptr
 * V693+ *sh* 2/15  eliminate inconsistent treatment of surrounding quotes
 *                  as seen in err694_inconsistent_quotes.jnl
+* V698 *acm*  3/16 Ticket 2278: add an attribute with time range when
+*                  saving a modulo-regridded variable to netCDF
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -102,6 +104,8 @@
 	include 'xvariables.cmn'
 	include 'xprog_state.cmn'
 	include 'xfr_grid.cmn'
+        include 'xtra_compute_attr.cmn'
+        include 'netcdf.inc'
 
 * calling argument declarations
 	INTEGER	dflt_cx, dtype, status
@@ -109,9 +113,13 @@
 
 * local variable declarations
 	LOGICAL		auto_auxvar_changed
-	INTEGER		TM_LENSTR1, nu, cx_expr, idim
+	INTEGER		TM_LENSTR1, STR_SAME, nu, cx_expr, idim
 	CHARACTER	EXPR_NAME*8, VAR_CODE*128, buff*128
 
+	INTEGER		cat, var, dset, varid, attid, attype, attlen, attoutflag
+	REAL		dummy
+	CHARACTER SANITARY_VAR_CODE*128, varcode*128
+
 * initialize grid stack pointer (pushes down from top)
 	grd_stk_ptr = max_grids
 
@@ -162,10 +170,13 @@
 
 	DO 300 nu = 1, num_uvars_in_cmnd
 
+	   CALL RESET_CLIMAT_ATT
+
 * ... a context slot to hold a fresh command context for each sub-expression
 	   cx_stack_ptr = cx_stack_ptr + 1
 	   cx_expr = cx_stack_ptr
 
+
 * ... a frame of size nferdims to hold aux vars needed for plotting and listing
 	   max_usable_intrp = max_usable_intrp - nferdims
 	   max_context      = max_context      - nferdims
@@ -189,8 +200,59 @@
 * note that since aux vars may now be returned on the ISP stack, isp may be GT nu
 	   is_act(isp) = isact_var_ready
 
+* Ticket 2278
+* When defining an extra attribute based on the computation, e.g. dates that 
+* went intothe modulo calculation. Has an attribute name and value have been 
+* stored. natt_computed_var and the attribute name and string have been set 
+* e.g. in the modulo regridding routine. 
+
+	   IF (natt_computed_var .GT. 0) THEN
+
+	      IF (STR_SAME (attstr_computed_var(1:10), 'do not set') .NE. 0)  THEN
+     
+* get the variable - will put an attrib onto it
+	      cat = cx_category(cx_expr)
+	      var = cx_variable(cx_expr)
+	      dset = cx_data_set( cx_expr )
+	      varcode = SANITARY_VAR_CODE( cat, var )
+
+	      IF (dset .EQ. pdset_irrelevant) dset = pdset_uvars
+	      IF (cat .EQ. cat_user_var .AND. dset .LE. pdset_irrelevant)  dset = pdset_uvars
+	      CALL CD_GET_VAR_ID (dset, varcode, varid, status)
+	      IF (status .NE. ferr_ok) THEN
+	         IF (cat .EQ. cat_user_var .AND. dset.GE.pdset_irrelevant) THEN
+	            dset = pdset_uvars
+		    CALL CD_GET_VAR_ID (dset, varcode, varid, status)
+	         ENDIF
+	      ENDIF
+
+	      IF (status .EQ. ferr_ok) THEN
+                 CALL CD_GET_VAR_ATT_ID (dset, varid, attname_computed_var, 
+     .                attid, status) 
+                 IF (attid .GT. 0) THEN
+                    CALL CD_GET_VAR_ATT_INFO (dset, varid, attid, 
+     .                attname_computed_var, attype, attlen, attoutflag, status )
+                    attlen = TM_LENSTR1(attstr_computed_var)
+                    CALL CD_REPLACE_ATTR (dset, varid, attname_computed_var, 
+     .                attype, attlen, attstr_computed_var, dummy, status)
+                 ELSE
+                    attype = NCCHAR
+                    attoutflag = 1
+	            attlen = TM_LENSTR1(attstr_computed_var)
+                    CALL CD_PUT_NEW_ATTR (dset, varid, attname_computed_var, 
+     .                 attype, attlen, attoutflag, 
+     .                 attstr_computed_var, 1., status) 
+                    IF (status .NE. ferr_ok) status = ferr_ok  ! ignore
+	         ENDIF
+	      ENDIF
+
+	      CALL RESET_CLIMAT_ATT
+
+	   ENDIF
+	   ENDIF
+
 ! temp diagnostic
-	   IF ( cx_stack_ptr .NE. cx_cmnd+nu ) WRITE (6,*) 'get_cmnd_???'
+	   IF ( cx_stack_ptr .NE. cx_cmnd+nu ) CALL WARN( 'get_cmnd_???')
  300	CONTINUE
 
 * turn off oversizing flag for next command
diff --git a/fer/stk/get_uvar_grid.F b/fer/stk/get_uvar_grid.F
index 5ca6c10..fa1d41e 100644
--- a/fer/stk/get_uvar_grid.F
+++ b/fer/stk/get_uvar_grid.F
@@ -57,6 +57,8 @@
 * written for VAX computer under VMS operating system
 *
 * V200:  7/5/89  
+* V698 *sh* 1/16 - altered method of obtaining grids of LET/D uvars used in
+*                  E and F aggregations
 
 * calling argument declarations:
 	INTEGER		uvar, dset, status
@@ -92,18 +94,13 @@
 	IF ( status .NE. ferr_ok ) GOTO 5000
 	is_cx   ( isp ) = cx
 	is_uvar ( isp ) = uvar
-	is_act  ( isp ) = isact_get_grid	! temp diagnostic
+	is_act  ( isp ) = isact_get_grid	! vs isact_get_agg_grid
 
 * initialize the stacks - (repeated for each component)
 
  100	CALL IS_GRID_MODE( status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
-	IF (is_act( isp ) .EQ. isact_get_agg_grid) THEN
-	   CALL IS_AGGREGATE_GRID (uvar, dset, is_cx(isp), status)
-	   IF ( status .NE. ferr_ok ) GOTO 5000
-	ENDIF
-
 * evaluate the grid by merging component grids
 *  ... exit 100 is to evaluate the grid for a component uvar
 *  ... exit 300 means that a grid has been obtained
diff --git a/fer/stk/interp_stack.F b/fer/stk/interp_stack.F
index 50ae574..f35b63b 100644
--- a/fer/stk/interp_stack.F
+++ b/fer/stk/interp_stack.F
@@ -103,6 +103,11 @@
 * V695+ 5/15 *sh* FIND_MEM_VAR ==> FIND_MEM_VAR_INCL_C_CACHE
 *	          delay stripping gather until after stripping regrids
 * V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
+* V698 *sh* 12/15 implement dummy data sets in forecast aggregations
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
+* V680 *acm* 5/16  Fix ticket 2366, putting the subspan void point and modulo
+*                  replications before transformations.
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -126,7 +131,7 @@
 	INTEGER		UVAR_NUMBER, KNOWN_GRID, CGRID_AXIS, 
      .			CAXIS_MODLEN, TM_AXES_REVERSED, rev_axes(nferdims),
      .			cx, mr, idim, cat, act, uvar_pointer,
-     .			com_mr, var
+     .			com_mr, var, dset
 
 * external routines passed
 	EXTERNAL	DO_SHIFT, DO_SMTH_BOX, DO_FILL_AVE, DO_AVERAGE,
@@ -282,12 +287,16 @@
 ******************************************************************************
  10	is_act(isp)   = isact_request
 	cx = is_cx( isp )
-	cat = cx_category( cx )
-	var = cx_variable( cx )
+	cat  = cx_category( cx )
+	var  = cx_variable( cx )
+	dset = cx_data_set( cx )
 
 * constants and pseudo-variables and counter variables may be handled immediately
 * ... get user variable grids if unknown
-	IF     ( cat .EQ. cat_pseudo_var ) THEN
+	IF     ( dset .EQ. pdset_dummy ) THEN
+	   CALL IS_DUMMY ( memory, *2000, status )
+	   GOTO 5000
+	ELSEIF ( cat .EQ. cat_pseudo_var ) THEN
 	   CALL IS_PSEUDO ( memory, *2000, status )
 	   GOTO 5000
 	ELSEIF ( cat .EQ. cat_constant ) THEN
@@ -328,18 +337,29 @@
 * * * * * * * * STRIP AWAY TRANSFORMATIONS ONTO STACK * * * * * * * * * * * * 
 ******************************************************************************
 
-* ... strip off a transformation ?
-* ... reverse loop order ensures that X transformations are done BEFORE
-* ... the Y transformations. This is necessary for accuracy wrt. COS factors.
-* ... By stripping X last it will be done first.
-* 10/98 *jc* - need to ignore trans_reduce (see info in ctx/add_rdc_xform.F)
-	DO 200 idim = nferdims, 1, -1
-       IF ( cx_trans( idim, cx ) .NE. trans_no_transform
-     .          .AND. cx_trans( idim, cx ) .NE. trans_reduced ) THEN
-	      CALL IS_STRIP( isact_class_trans, idim, *10, status )
-	      GOTO 5000
-	   ENDIF
- 200	CONTINUE
+
+
+* ... strip off creation of virtual "void" point on subspan modulo axes
+
+	CALL GET_CX_MODULO_AXES(cx,modulo_axes)
+	DO 255 idim = 1, nferdims
+	   IF ( modulo_axes(idim)
+     .	  .AND. cx_lo_ss(cx,idim) .NE. unspecified_int4 ) THEN
+
+	      IF ( cat .EQ. cat_user_var ) THEN
+*    ... cannot modulo an average (or other compressed result)
+	         IF ( uvar_given(idim,var) .EQ. uvlim_gvn_xact
+     .		 .OR. uvar_given(idim,var) .EQ. uvlim_need_xact ) GOTO 255
+	      ENDIF
+
+	     IF (TM_ITS_SUBSPAN_MODULO(CGRID_AXIS(idim, cx))) THEN
+	      IF (cx_hi_ss(cx,idim) .EQ. CAXIS_MODLEN(idim, cx)) THEN
+	        CALL IS_STRIP(isact_class_subspan_fill,idim,*10,status)
+	        GOTO 5000
+	      ENDIF
+	    ENDIF
+	  ENDIF
+ 255	CONTINUE
 
 * ... strip off "modulo" replications
 *   ... but do not strip modulo at the topmost level
@@ -347,7 +367,6 @@
 	IF ( cat .EQ. cat_user_var ) THEN
 	   IF (uvar_name_code(var)(1:3) .EQ. 'EX#'    ) GOTO 260
 	ENDIF	   
-	CALL GET_CX_MODULO_AXES(cx,modulo_axes)
 	DO 250 idim = 1, nferdims
 	   IF ( modulo_axes(idim)
      .	  .AND. cx_lo_ss(cx,idim) .NE. unspecified_int4 ) THEN
@@ -379,34 +398,27 @@
 	      ENDIF
 	   ENDIF
  250	CONTINUE
+ 260	CONTINUE
 
-* ... strip off creation of virtual "void" point on subspan modulo axes
-	DO 255 idim = 1, nferdims
-	   IF ( modulo_axes(idim)
-     .	  .AND. cx_lo_ss(cx,idim) .NE. unspecified_int4 ) THEN
-
-	      IF ( cat .EQ. cat_user_var ) THEN
-*    ... cannot modulo an average (or other compressed result)
-	         IF ( uvar_given(idim,var) .EQ. uvlim_gvn_xact
-     .		 .OR. uvar_given(idim,var) .EQ. uvlim_need_xact ) GOTO 255
-	      ENDIF
-
-	     IF (TM_ITS_SUBSPAN_MODULO(CGRID_AXIS(idim, cx))) THEN
-	      IF (cx_hi_ss(cx,idim) .EQ. CAXIS_MODLEN(idim, cx)) THEN
-	        CALL IS_STRIP(isact_class_subspan_fill,idim,*10,status)
-	        GOTO 5000
-	      ENDIF
-	    ENDIF
-	  ENDIF
- 255	CONTINUE
+* ... strip off a transformation ?
+* ... reverse loop order ensures that X transformations are done BEFORE
+* ... the Y transformations. This is necessary for accuracy wrt. COS factors.
+* ... By stripping X last it will be done first.
+* 10/98 *jc* - need to ignore trans_reduce (see info in ctx/add_rdc_xform.F)
+	DO 200 idim = nferdims, 1, -1
+       IF ( cx_trans( idim, cx ) .NE. trans_no_transform
+     .          .AND. cx_trans( idim, cx ) .NE. trans_reduced ) THEN
+	      CALL IS_STRIP( isact_class_trans, idim, *10, status )
+	      GOTO 5000
+	   ENDIF
+ 200	CONTINUE
 
 * ... strip off need for regridding data ?
- 260	IF ( cx_unstand_grid( cx ) ) THEN
+	IF ( cx_unstand_grid( cx ) ) THEN
 	   CALL IS_STRIP( isact_class_regrid, no_dim, *10, status )
 	   GOTO 5000
 	ENDIF
 
-
 * ... strip off getting aux variables?
 *     note that regridding already stripped, so this is always for 3-arg plots
 	IF ( cx_naux(cx) .GT. 0 ) THEN
@@ -489,11 +501,6 @@
            CALL IS_PYSTAT_VAR(memory, *10, *2000, status)
            GOTO 5000
 
-* ... calculate from internal model-diagnostic code ?
-	ELSEIF ( cat .EQ. cat_calc_var	) THEN
-	   CALL IS_CALC   ( memory, *10, *2000, status )
-	   GOTO 5000
-
 * ... get a "constant variable" (say, "{1,3,5}")
 	ELSEIF ( cat .EQ. cat_const_var	) THEN
 	   CALL IS_CONST_VAR   ( memory, *10, *2000, status )
@@ -567,8 +574,6 @@ c	   GOTO 5000
 	      GOTO 10					! grid just obtained
 	   ELSEIF ( act .EQ. isact_reconcile		) THEN
 	      CALL IS_RECONCILE( memory, *10, *2500, status ) ! 11/95
-	   ELSEIF ( act .EQ. isact_calculate		) THEN
-	      CALL IS_CALC   ( memory, *10, *2500, status ) ! temp ?? needed ?
 	   ELSEIF ( act .EQ. isact_algebra		) THEN
 	      CALL IS_ALGEBRA( memory, *10, *2500, isp_base, status )
 	   ELSEIF ( act .EQ. isact_modulo		) THEN
diff --git a/fer/stk/is_aggregate_gather.F b/fer/stk/is_aggregate_gather.F
index 5181755..62398ba 100644
--- a/fer/stk/is_aggregate_gather.F
+++ b/fer/stk/is_aggregate_gather.F
@@ -35,8 +35,8 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* bring together a full data grid from an aggregate defined with DEFINE DATA/AGGREGATE 
-* by requesting the members one by one on the interpretation stack
+* bring the components of an aggregate defined with DEFINE DATA/AGGREGATE 
+* together by requesting the members one by one on the interpretation stack
 
 * programmer - Ansley Manke
 * NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
@@ -44,6 +44,11 @@
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * V69+ 5/14 *acm* Fixes for ticket 2177: datasets with _FillValue, no missing_value
 * V695 2/15 *acm* 6D add aggregation in forecast direction
+* V698 1/16 *sh* fix to bug #2347 (res var no instead of com var on stack)
+*		altered logic as described in header of INIT_EF_AGGREGATE_DSET
+*      3/16 *acm*always mark aggregation components unused after using them,
+*      3/16 *sh* delete agg component after using if nothig else has a claim
+*      4/16 *sh* Allow that SET VAR/NAME= has altered the agg varname
 
 	include	'tmap_dims.parm'
 	include	'ferret.parm'
@@ -52,6 +57,7 @@
 	include	'xcontext.cmn'
 	include	'xvariables.cmn'
 	include	'xprog_state.cmn'
+	include 'xtm_grid.cmn_text'   ! for grid_line
 
 * calling argument declarations:
 	INTEGER	status
@@ -66,14 +72,19 @@
 *	 isp	<--	current stack level (for gathering )
 
 * internal variable declarations:
-	LOGICAL	NC_GET_ATTRIB, NC_GET_ATTRIB_STRING, attoutflag, got_it
-	INTEGER NCF_GET_ATTR_FROM_ID, TM_LENSTR1, STR_SAME,
-     .		com_mr, res_mr, com_cx, res_cx,	dflt_cx, com_isp, res_isp,
-     .		frag, agg_dim, top, imemb, memb_dset, len, igrid, iline,
-     .		varid, attlen, maxlen, fer_uvar, nv, is_phas_keep, agg_dset
-
-	REAL	vbad, cx_bad_pre
-	CHARACTER*128 VAR_CODE, vname, buff
+	LOGICAL	NC_GET_ATTRIB, NC_GET_ATTRIB_STRING, TM_SAME_GRID_DEF,
+     .		SCALAR_GRID_LINE,
+     .		attoutflag, got_it, itsa_dummy
+	INTEGER NCF_GET_ATTR_FROM_ID, TM_LENSTR1, STR_SAME, KNOWN_GRID,
+     .		com_mr, res_mr, com_cx, res_cx, com_isp, res_isp,
+     .		res_grid, res_cat, res_var,
+     .		agg_dim, top, imemb, memb_dset, iline, idim,
+     .		varid, attlen, maxlen, agg_dset, slen, agg_vlen, memb_vlen,
+     .		orig_cat, orig_var, orig_grid,
+     .		 com_cat,  com_var,  com_grid
+
+	CHARACTER*128 VAR_CODE, agg_vname, memb_vname, buff
+	CHARACTER LEFINT*6
 
 * --- end of introductory code ---
 
@@ -84,160 +95,154 @@
 	com_mr     = is_mr( com_isp )
 	res_cx     = is_cx( res_isp )
 	com_cx     = is_cx( com_isp )
-	dflt_cx	   = is_big_cx( res_isp )
 	agg_dim    = is_axis( res_isp )
-	frag	   = is_sum ( res_isp )
-	cx_bad_pre = cx_bad_data(com_cx)
+        agg_dset   = cx_data_set(res_cx)
+	res_grid   = cx_grid(res_cx)
+	res_cat    = cx_category(res_cx)
+	res_var    = cx_variable(res_cx)
 
 * diagnostic mode output: " doing aggregate gather VAR_NAME[x=lo:hi at TRN:n,D=#]"
 * Put in the agg- index value just for this output
 
 	IF ( mode_diagnostic ) THEN
-	   cx_lo_ss( com_cx,agg_dim ) = is_phase(isp)
-	   cx_hi_ss( com_cx,agg_dim ) = is_phase(isp)
+	   cx_lo_ss( com_cx,agg_dim ) = is_phase(isp)  ! hack to make
+	   cx_hi_ss( com_cx,agg_dim ) = is_phase(isp)  ! diagnostic informative
 	   CALL DIAG_OP
-     .				( 'doing',isact_class_aggregate_gather, com_cx, agg_dim )
+     .	    ( 'doing',isact_class_aggregate_gather, com_cx, agg_dim )
 	   cx_lo_ss( com_cx,agg_dim ) = unspecified_int4
 	   cx_hi_ss( com_cx,agg_dim ) = unspecified_int4
 	ENDIF
 
-* create context and mem. res. space if this is the first component recieved
+* create mem. result from result cx if this is the first component received
 	IF ( res_mr .EQ. unspecified_int4 ) THEN
-* ... use gathering axis, category, grid and dataset from dflt_cx (aggregate
-* ... variable, datset and grid), and everything else from component
-* ... (since all else may be altered during evaluation if its a user var)
-	   CALL TRANSFER_CONTEXT( com_cx, res_cx )
-
-	   CALL TRANSFER_AXIS( agg_dim, dflt_cx, res_cx )
-	   cx_grid(res_cx) = cx_grid(dflt_cx)
-	   cx_data_set(res_cx) = cx_data_set(dflt_cx)
-	   cx_bad_data(res_cx) = cx_bad_data(dflt_cx)
-	   cx_category(res_cx) = cx_category(dflt_cx)
-
 	   CALL CREATE_MEM_VAR( res_cx, res_mr, status )
 	   IF ( status .NE. ferr_ok ) GOTO 5000
 	   is_mr( res_isp ) = res_mr
 	ENDIF
 
 * copy data just received into the result
-	is_phas_keep = is_phase(isp)
+* bad data flag differences are resolved during this COPY operation
 	CALL COPY_AGG_INTO( memory(1,mr_blk1(com_mr)), com_mr, com_cx, agg_dim,
      .			memory(1,mr_blk1(res_mr)), res_mr, is_phase(isp) )
 
 * ... remove the component protection that signaled we needed it here
-	CALL MR_NOT_IN_USE( com_mr )
+	IF (cx_data_set(com_cx) .NE. pdset_dummy) THEN
+	   CALL MR_NOT_IN_USE( com_mr )
+* ... delete it altogether (avoid memory clogging) unless its in use elsewhere
+	   IF (mr_protected(com_mr) .EQ. mr_not_protected) 
+     .					CALL DELETE_VARIABLE( com_mr )
+	ELSE
+	   CALL DELETE_VARIABLE( com_mr )   ! delete dummy (missing vals) 
+	ENDIF
 
 * are we done ?
 	IF ( is_phase(isp) .EQ. is_sum(isp) ) THEN
-* ... yes - pop com_cx and dflt_cx from context stack
-
-	   IF ( dflt_cx .NE. cx_stack_ptr ) STOP 'AGG_GATH_STK_ERR'	! temp
-
-	   cx_stack_ptr = cx_stack_ptr - 2
+* ... yes - pop com_cx from context stack
+	   cx_stack_ptr = cx_stack_ptr - 1
 	   RETURN 2
 	ENDIF
 
-* no - set up com_cx to get the next aggregate member
+**************************************
+* NOT DONE -- set up com_cx to get the next aggregate member
 	is_phase(res_isp) = is_phase(res_isp) + 1
-	CALL TRANSFER_CONTEXT( dflt_cx, com_cx )
-* Set limits on agg-direction to be unspecified
- 
-	cx_lo_ss( com_cx,agg_dim ) = unspecified_int4
-	cx_hi_ss( com_cx,agg_dim ) = unspecified_int4
-	cx_by_ss( agg_dim,com_cx) = .TRUE.
 
-* Set the grid to the grid of the next aggregate component...
+! *sh* as seen in earlier version ...
+! these parts of the component context were already set in IS_STRIP
+!	CALL TRANSFER_CONTEXT( big_cx, com_cx )
 
 	imemb = is_phase(res_isp)
 
-	vname = VAR_CODE (cat_file_var, cx_variable(com_cx))
-        agg_dset = cx_data_set(com_cx)
-	CALL CD_GET_AGG_VAR_INFO (agg_dset, vname, imemb, 
-     .      fer_uvar, memb_dset, igrid, iline, nv, status)
-     
-* Is it the 2D Time variable for a Forecast-aggregation?  If so then
-* the information is contained only in the grids not variables of member sets.
-
-	IF (memb_dset .EQ. 0) THEN   ! pseudo-variable, not in member datasets.
-	   CALL CD_GET_VAR_ID (agg_dset, vname, varid, status)
-
-	   maxlen = 128
-	   got_it = NC_GET_ATTRIB_STRING ( agg_dset, varid, '_CoordinateAxisType',
-     .                                   .FALSE., vname, maxlen,
-     .                                   attlen, attoutflag, buff)
-	   IF (got_it .AND. STR_SAME(buff, 'Time') .EQ. 0) THEN
-
-	      cx_category(com_cx) = cat_pseudo_var 
-	      cx_variable(com_cx) = 10  ! (hack) will load t[gt=var] coordinates
-	      cx_variable(res_cx) = nv  ! (un-hack)
-
-	      cx_grid( com_cx ) = igrid
-
-	      CALL CD_GET_AGG_DSET_MEMBER (agg_dset, imemb, memb_dset, status)
-	      cx_data_set(com_cx) = memb_dset
-	      cx_data_set(res_cx) = agg_dset
-
-	      maxlen = 1
-	      got_it = NC_GET_ATTRIB( agg_dset, varid, 'missing_value',
-     .                .FALSE., vname, maxlen, attlen,
-     .                attoutflag, buff, vbad )
-
-	      cx_bad_data(com_cx) = vbad
-	   ENDIF
-	ELSE
+	agg_vname = VAR_CODE (res_cat, res_var)   ! *sh* 1/16
+	agg_vlen = TM_LENSTR1(agg_vname)
+	CALL CD_GET_AGG_VAR_INFO (agg_dset, agg_vname, imemb, 
+     .      orig_cat, memb_dset, orig_grid, iline, orig_var, status)
 
-* Grid wasnt stored for this variable if its a LET/D variable in member dset
-* Let it be the agg grid ?? (or could set the grid to a number less than 
-* unspecified_int4 to call get_uvar_grid for this LET/D member var)
-
-	IF (igrid .EQ. unspecified_int4) THEN 
-	   cx_data_set(com_cx) = memb_dset
-	   cx_category(com_cx) = cat_user_var
-	   cx_variable(com_cx) = nv
-	ELSE
+* for special case (hack) of an E-aggregation of FMRCs, the 2dtime array comes
+* from one particular member.  We have just completed that, so we're done
+	IF (orig_cat .EQ. cat_ef_time2d) THEN
+* ... pop com_cx from context stack
+	   cx_stack_ptr = cx_stack_ptr - 1
+	   RETURN 2
+	ENDIF
 
-	   CALL CD_GET_VAR_ID (memb_dset, vname, varid, status)
-	   maxlen = 1
-	   got_it = NC_GET_ATTRIB( memb_dset, varid, 'missing_value',
-     .                .FALSE., vname, maxlen, attlen,
-     .                attoutflag, buff, vbad )
-           IF (.NOT.got_it) THEN
-	      
-	      got_it = NC_GET_ATTRIB( memb_dset, varid, '_FillValue',
-     .                .FALSE., vname, maxlen, attlen,
-     .                attoutflag, buff, vbad )
-              IF (.NOT.got_it)  vbad = bad_val4
-	   ENDIF
+* Is it the 2D Time variable for a Forecast-aggregation?  If so then
+* there has been a cache hit failure (FIND_MEM_VAR_INCL_C_CACHE)
+* ... should never happen
+	IF (memb_dset .EQ. pagg_promotion_indicator_dset)
+     .		CALL ERRMSG(ferr_internal, status,
+     .		'aggregation failure in is_aggregate_gather', *5000)
+
+	itsa_dummy = memb_dset .EQ. pdset_dummy
+	IF (itsa_dummy) THEN
+* ... for a dummy (missing-filled) dset, borrow context info of the 1st member
+	   CALL CD_GET_AGG_VAR_INFO (agg_dset, agg_vname, 1, 
+     .         orig_cat, memb_dset, orig_grid, iline, orig_var, status)
+	ENDIF
 
-	   cx_grid( com_cx ) = igrid
-	   cx_data_set(com_cx) = memb_dset
+* a couple of 'delayed mode' use cases to beware -- actions the user may have
+* taken **SINCE** the aggregation was defined:
+*  1) user may have issued a SET VAR/NAME= (rename) of the aggregated variable
+*  2) user may have issued a LET/D on a member variable
+* If 1, then agg_vname will differ from memb_vname 
+* If 2, then cat# and var# associated with member name may have changed
+* Do a fresh "find" for the original member variable name
+	memb_vname = VAR_CODE(orig_cat, orig_var)
+	memb_vlen = TM_LENSTR1(memb_vname)
+	CALL FIND_VAR_NAME (memb_dset,memb_vname, com_cat, com_var )
+	IF (com_var .EQ. munknown_var_name) CALL ERRMSG(
+     .		ferr_aggregate_error, status, 'variable '//
+     .		memb_vname(:MEMB_vlen)//' no longer found in agg member '//
+     .		LEFINT(imemb,slen), *5000)
+
+* grid must not have changed since DEFINE DATA/AGG
+	com_grid = KNOWN_GRID(memb_dset, com_cat, com_var)
+	IF (com_grid .EQ. unspecified_int4) THEN   ! can only be a uvar
+* ... GET_UVAR_GRID uses the interp_stack, so bump isp
+	   isp = com_isp
+	   CALL GET_UVAR_GRID( com_var, memb_dset, status )
+	   isp = res_isp  ! restore to value at start of routine
+           IF ( status .NE. ferr_ok ) GOTO 5000
+	   com_grid = KNOWN_GRID(memb_dset, com_cat, com_var)
+	ENDIF
 
-	   IF (fer_uvar .EQ. 3) THEN
-	      cx_category(com_cx) = cat_user_var  
-	      cx_bad_data(com_cx) = cx_bad_data(dflt_cx)
-	   ELSE
-	      cx_category(com_cx) = cat_file_var 
-	      cx_bad_data(com_cx) = vbad
+* check that component grid is conformable with aggregation
+* (grid may have changed due to new LET/D definition)
+	CALL CONFORMABLE_AGG_GRID(agg_dim, memb_vname, imemb,
+     .                            res_grid, res_cat, res_var,
+     .                            com_grid, com_cat, com_var,
+     .                            orig_grid, status )
+	IF (status .NE. ferr_ok) GOTO 5000
+
+* scalar axes of components need not match the agg result
+	DO idim = 1, nferdims
+! 4/16	   IF ( idim.NE.agg_dim  .AND.    ! would not allow E-agg of E-aggs
+	   IF (SCALAR_GRID_LINE(idim, com_grid, com_cat, com_var) ) THEN
+	      CALL DEL_CX_DIM(idim, com_cx) 
 	   ENDIF
+	ENDDO
+
+* the T axis of an F-aggregation has a single set of indices but the time
+* values differ for each axis.  So re-interpret the time range from the indices
+* (Indices are retained throughout from result cx)
+	IF (agg_dim .EQ. f_dim) THEN
+	   cx_by_ss(t_dim, com_cx) = .TRUE.
+	   CALL FLESH_OUT_AXIS(t_dim, com_cx, status )
+	   IF (status .NE. ferr_ok) GOTO 5000
+	ENDIF
 
-
-	   CALL FLESH_OUT_AXIS( agg_dim, com_cx, status )
-	   IF ( status .NE. ferr_ok ) GOTO 5000
-
-* updated value for bad? If so update the data in the result
-* taking that bad-value into account
-
-           IF (vbad .NE. cx_bad_pre) THEN
-	      cx_bad_data(res_cx) = cx_bad_data(dflt_cx)
-     	      CALL COPY_AGG_INTO( memory(1,mr_blk1(com_mr)), com_mr, com_cx,
-     .          agg_dim, memory(1,mr_blk1(res_mr)), res_mr, is_phas_keep )
-     
-           ENDIF
-
-	ENDIF  ! or end this above flesh_out??
-	is_uvar(com_isp) = cx_variable(com_cx)
+* set up the member variable
+	cx_data_set(com_cx) = memb_dset
+	cx_category(com_cx) = com_cat
+	cx_variable(com_cx) = com_var
+	cx_grid    (com_cx) = com_grid
+	CALL GET_CONTEXT_BAD_FLAG(com_cx)
 	
-	ENDIF  ! pseudo-variable, not in member datasets.
+	IF (itsa_dummy) THEN
+* dummy dataset triggers a missing data fill operation in INTERP_STACK
+	   cx_data_set(com_cx) = pdset_dummy
+	ENDIF
+
+	is_uvar(com_isp) = com_var ! relevant if component 1 is LET/D
 
 * push the interpretation stack and go get it
 	isp = com_isp
diff --git a/fer/stk/is_aggregate_grid.F b/fer/stk/is_aggregate_grid.F
index 28a7a0a..5af7f43 100644
--- a/fer/stk/is_aggregate_grid.F
+++ b/fer/stk/is_aggregate_grid.F
@@ -48,6 +48,8 @@
 
 * V685  4/13 *acm* Better grid handling.
 * V685 10/13 *acm* Fix ticket 1098, error defining ensemble when LET/D variables are present.
+* V698  3/16 *acm* Remove unneeded xdset_parms.cmn
+* V699  6/16 *sh*  replace variable uvar_grid with calls to c LIST structures
 
 * calling argument declarations:
 * uvar and dset point to the variable in the aggregate dataset
@@ -77,7 +79,6 @@
 	include	'xvariables.cmn'
 	include	'xprog_state.cmn'
 	include	'xfr_grid.cmn'
-	include	'xdset_parms.cmn'
 	include 'xdset_info.cmn_text'
 	external xdset_info_data
 	include 'xdset_info.cd_equiv'
@@ -224,13 +225,14 @@
 * set context for aggregate grid
 	cx_grid(agg_cx) = gnum
 	uvar_grid( uvar, dset ) = gnum 
+	CALL SAVE_UVAR_GRID(uvar, gnum, ptype_float, dset)
 
 	cx_grid(agg_cx) = gnum
 	cx_data_set(agg_cx) = agg_dset
 	IF (agg_dim .EQ. e_dim) cx_category(agg_cx) = cat_agg_e_var
 	IF (agg_dim .EQ. f_dim) cx_category(agg_cx) = cat_agg_f_var
 
-	uvar_grid( uvar, dset ) = gnum 
+!	uvar_grid( uvar, dset ) = gnum   ! deleteMe duplicate line
 	uvar_dset( uvar ) = dset
 	uvar_need_dset( uvar ) = .TRUE.
 
diff --git a/fer/stk/is_algebra.F b/fer/stk/is_algebra.F
index e6dc77a..4240980 100644
--- a/fer/stk/is_algebra.F
+++ b/fer/stk/is_algebra.F
@@ -100,6 +100,11 @@
 *                  ..dimnames, now list of all dimensions in the dataset.
 * V694  5/15 *acm* Fix ticket 2291. When merging, handle variables from attribute
 *                  as temp variables.
+* V694 5/14  *acm* Ticket 2234. return-type error on string operations
+* V697  3/16 *acm* Ticket 2367. Return-type error for user variable when expr
+*                  uses a function having numeric and string versions.
+* v698 5/16  *acm* ticket 2413: New attribute keywords ncoordvars, coordnames
+*                  return info about coordinate-variables in datasets
 
 	include 'tmap_dims.parm'
 #include "netcdf.inc"
@@ -115,7 +120,8 @@
 
 * calling argument declarations:
 	INTEGER	isp_base, status
-	REAL	memory( mem_blk_size, max_mem_blks )
+!	REAL	memory( mem_blk_size, max_mem_blks )  ! old
+	REAL	memory( mem_blk_size, * )             ! experimental change
 * normal return is for error conditions
 * exit #1 is to request another grid ( stack has been pushed )
 * exit #2 is to signal completion of the activity at this stack level
@@ -657,7 +663,7 @@
                     cx_type(hi_cx) = ptype_string
                     IF (reset_ss) THEN
                        cx_lo_ss(hi_cx, x_dim) = 1
-                       cx_hi_ss(hi_cx, x_dim) = nv
+                       cx_hi_ss(hi_cx, x_dim) = MAX(1, nv)
                     ELSE
                        cx_lo_ss(hi_cx, x_dim) = MAX(1, cx_lo_ss(hi_cx, x_dim))
                        cx_hi_ss(hi_cx, x_dim) = MIN(nv, cx_hi_ss(hi_cx, x_dim))
@@ -668,7 +674,7 @@
                     cx_type(hi_cx) = ptype_string
                     IF (reset_ss) THEN
                        cx_lo_ss(hi_cx, x_dim) = 1
-                       cx_hi_ss(hi_cx, x_dim) = ngatts
+                       cx_hi_ss(hi_cx, x_dim) = MAX(1, ngatts)
                     ELSE
                        cx_lo_ss(hi_cx, x_dim) = MAX(1, cx_lo_ss(hi_cx, x_dim))
                        cx_hi_ss(hi_cx, x_dim) = MIN(ngatts, cx_hi_ss(hi_cx, x_dim))
@@ -684,11 +690,21 @@
                  ELSE IF (STR_SAME(attname, 'dimnames') .EQ. 0 ) THEN
                     cx_type(hi_cx) = ptype_string
 
-		    nv = ndims
+                    IF (reset_ss) THEN
+                       cx_lo_ss(hi_cx, x_dim) = 1
+                       cx_hi_ss(hi_cx, x_dim) = MAX(1, ndims)
+                    ELSE
+                       cx_lo_ss(hi_cx, x_dim) = MAX(1, cx_lo_ss(hi_cx, x_dim))
+                       cx_hi_ss(hi_cx, x_dim) = MIN(ndims, cx_hi_ss(hi_cx, x_dim))
+                    ENDIF
+   
+* coordinate-variable names
+                 ELSE IF (STR_SAME(attname, 'coordnames') .EQ. 0 ) THEN
+                    cx_type(hi_cx) = ptype_string
 
                     IF (reset_ss) THEN
                        cx_lo_ss(hi_cx, x_dim) = 1
-                       cx_hi_ss(hi_cx, x_dim) = nv
+                       cx_hi_ss(hi_cx, x_dim) = MAX(1, nvars-nv)
                     ELSE
                        cx_lo_ss(hi_cx, x_dim) = MAX(1, cx_lo_ss(hi_cx, x_dim))
                        cx_hi_ss(hi_cx, x_dim) = MIN(ndims, cx_hi_ss(hi_cx, x_dim))
@@ -700,6 +716,13 @@
                     cx_lo_ss(hi_cx, x_dim) = 1
                     cx_hi_ss(hi_cx, x_dim) = 1
 
+* # coordinate variables (dimensions that ALSO have a coord. var)
+               
+                 ELSE IF (STR_SAME(attname, 'ncoordvars') .EQ. 0 ) THEN
+                    cx_type(hi_cx) = ptype_float
+                    cx_lo_ss(hi_cx, x_dim) = 1
+                    cx_hi_ss(hi_cx, x_dim) = 1
+
 * # of global attributes
                  ELSE IF (STR_SAME(attname, 'nattrs') .EQ. 0 ) THEN
                     cx_type(hi_cx) = ptype_float
@@ -880,6 +903,10 @@ c Tentative fix for ticket 2234
 	ELSEIF ( EXPLICIT_UVAR(uvar) ) THEN
 * ... result of a simple definition like DEFINE VARIABLE UAVE=U[K=@AVE]
 *	or DEFINE VARIABLE NEW=X
+*       as above get the return type
+
+	   cx_type(big_cx) = cx_type(hi_cx)  ! for 2367
+
 	   CALL CREATE_MEM_VAR( big_cx, new_mr, status )
 	   IF ( status .NE. ferr_ok ) GOTO 5000
 	   is_mr( lo_isp ) = new_mr
diff --git a/fer/stk/is_attrib_val.F b/fer/stk/is_attrib_val.F
index 83c85ae..c1c7215 100644
--- a/fer/stk/is_attrib_val.F
+++ b/fer/stk/is_attrib_val.F
@@ -49,7 +49,10 @@
 * V694  1/15 *acm* as part of changes for ticket 2227 (handling of dimensions
 *                  that are not also 1-D coordinate variables), when returning 
 *                  ..dimnames, now list of all dimensions in the dataset.
- 
+* V698 *acm* 1/16 Allow for Epic CDF files, ds_type = 'ECDF'
+* v698 5/16  *acm* ticket 2413: New attribute keywords ncoordvars, coordnames
+*                  return info about coordinate-variables in datasets
+
         include 'tmap_dims.parm'
 #       include "tmap_dset.parm"
         include 'xdset_info.cmn_text'
@@ -156,6 +159,32 @@
                  ENDIF
  120          CONTINUE
               got_it = .TRUE.
+	      
+	     
+* dimension names that are also coordinate variables
+           ELSE IF (STR_SAME(attname, 'coordnames') .EQ. 0 ) THEN
+
+              n = i2 - i1 + 1
+              CALL INIT_C_STRING_ARRAY( n,
+     .				     memory(1,mr_blk1(mr)),
+     .				     mr_c_pointer(mr)    )
+              n = 0
+              nv = 0
+              DO 130 i = 1, nvars
+                 name = ' '
+                 CALL CD_GET_VAR_INFO (dset, i, name, vartype,
+     .                nvdims, vdims, nvatts, coordvar, all_outflag, 
+     .                status)
+                 IF (coordvar) THEN
+                    nv = nv + 1
+                    IF (nv .GE. i1 .AND. nv .LE. i2) THEN
+                       slen = TM_LENSTR1(name)
+                       CALL STORE_STRING(name(1:slen), mr, n, status)
+                       n = n + 1
+                    ENDIF
+                 ENDIF
+ 130          CONTINUE
+              got_it = .TRUE.
  
            ELSE IF (STR_SAME(attname, 'dimnames') .EQ. 0 ) THEN
 	   
@@ -166,7 +195,7 @@
 	      CALL INIT_C_STRING_ARRAY( n,
      .				     memory(1,mr_blk1(mr)),
      .				     mr_c_pointer(mr)    )
-                IF (ds_type(dset) .NE. 'CDF') GOTO 5200
+                IF (ds_type(dset).NE.'CDF' .AND. ds_type(dset).NE.'ECDF') GOTO 5200
 
 * All the dimensions from the dataset
 
@@ -185,7 +214,7 @@
 		 ENDIF
  220          CONTINUE
               got_it = .TRUE.
-
+ 
            ELSE IF (STR_SAME(attname, 'attnames') .EQ. 0 ) THEN
               IF (ngatts .GT. 0) THEN
                  CALL CD_GET_VAR_ID (dset, '.', varid, status)
@@ -205,7 +234,7 @@
               got_it = .TRUE.
 
            ELSE IF (STR_SAME(attname, 'ndims') .EQ. 0 ) THEN
-              IF (ds_type(dset) .NE. 'CDF') GOTO 5200
+              IF (ds_type(dset).NE.'CDF' .AND. ds_type(dset).NE.'ECDF') GOTO 5200
 
               memory( 1, mr_blk1(mr)) = ndims
               got_it = .TRUE.
@@ -214,7 +243,8 @@
               memory( 1, mr_blk1(mr)) = ngatts
               got_it = .TRUE.
 
-           ELSE IF (STR_SAME(attname, 'nvars') .EQ. 0 ) THEN
+           ELSE IF (STR_SAME(attname, 'nvars') .EQ. 0 .OR.
+     .              STR_SAME(attname, 'ncoordvars') .EQ. 0) THEN
 
 * Count number of non-coordinate variables.
               n = 0
@@ -224,6 +254,7 @@
      .                status)
                  IF (.NOT. coordvar) n = n + 1
  400          CONTINUE
+              IF (STR_SAME(attname, 'ncoordvars') .EQ. 0) n = nvars-n
               memory( 1, mr_blk1(mr)) = n
               got_it = .TRUE.
            ENDIF
@@ -319,7 +350,7 @@
 	           CALL INIT_C_STRING_ARRAY( nvdims,
      .				     memory(1,mr_blk1(mr)),
      .				     mr_c_pointer(mr)    )
-                IF (ds_type(dset) .NE. 'CDF') GOTO 5200
+                IF (ds_type(dset).NE.'CDF' .AND. ds_type(dset).NE.'ECDF') GOTO 5200
 
                    n = 0
                    DO 700 idim = i1, i2
@@ -333,7 +364,7 @@
                 got_it = .TRUE.
 
              ELSE IF (STR_SAME(attname, 'ndims') .EQ. 0 ) THEN
-                IF (ds_type(dset) .NE. 'CDF') GOTO 5200
+                IF (ds_type(dset).NE.'CDF' .AND. ds_type(dset).NE.'ECDF') GOTO 5200
 
                 memory( 1, mr_blk1(mr)) = nvdims
                 got_it = .TRUE.
diff --git a/fer/stk/is_auxvar_regrid.F b/fer/stk/is_auxvar_regrid.F
index ad60fa2..04e7652 100644
--- a/fer/stk/is_auxvar_regrid.F
+++ b/fer/stk/is_auxvar_regrid.F
@@ -51,6 +51,7 @@
 * revision 0.0 - 9/2013 based upon IS_REGRID
 * for Ferret v685+
 * v695+ *sh* 3/15 - support for TF (FMRC) regridding added
+* V698 *sh* 1/16 - bug fix: cx_regrid_trans were getting clobbered in dst_cx
 
 	IMPLICIT NONE
 
@@ -299,8 +300,8 @@
 
 * Make the destination context like the source data context on all except
 * the regrid axis.  That one keeps the user-requested size.
-* (Other axes may have been modified by information embedded within a
-* user-variable definition. 
+* (other axes may have been modified by information embedded within a
+* user-variable definition.) 
 
 * (*sh* untested, simpler(?) alternative is to create the mr from dst_cx just
 * as it is, pre-fill with missing, and create cx_valid based on available
@@ -332,21 +333,23 @@
 	   ENDDO
 
 	   CALL TRANSFER_CONTEXT( src_cx, cx_buff )
-	   DO 300 i = 1, naxis 
-	      idim = axis_list(i)
-	      CALL TRANSFER_AXIS( idim, dst_cx, cx_buff )
-	      cx_regrid_trans( idim, cx_buff ) = cx_regrid_trans( idim, dst_cx )
-	      cx_delta(idim,cx_buff) = unspecified_val8
- 300	   CONTINUE
 	   cx_unstand_grid( cx_buff ) = cx_unstand_grid( dst_cx )
 	   cx_grid        ( cx_buff ) = cx_grid        ( dst_cx )
 	   cx_impl_grid   ( cx_buff ) = cx_impl_grid   ( dst_cx )
 	   cx_naux        ( cx_buff ) = cx_naux        ( dst_cx )
-           DO 310 idim = 1, nferdims
+           DO idim = 1, nferdims
               cx_aux_var (idim, cx_buff) = cx_aux_var (idim, dst_cx)
               cx_aux_cat (idim, cx_buff) = cx_aux_cat (idim, dst_cx)
               cx_aux_stat(idim, cx_buff) = cx_aux_stat(idim, dst_cx)
- 310       CONTINUE
+	      cx_regrid_trans(idim,cx_buff ) = cx_regrid_trans(idim, dst_cx)
+	      cx_delta(idim,cx_buff) = unspecified_val8
+	   ENDDO
+	   DO i = 1, naxis 
+	      idim = axis_list(i)
+	      CALL TRANSFER_AXIS( idim, dst_cx, cx_buff )
+	      cx_regrid_trans(idim, cx_buff) = cx_regrid_trans(idim, dst_cx)
+	      cx_delta(idim,cx_buff) = unspecified_val8
+	   ENDDO
 	   CALL TRANSFER_CONTEXT( cx_buff, dst_cx )  ! (nervous. is it ok to clobber this?)
 
 * create a space for the new result possibly with the edges flagged as bad
diff --git a/fer/stk/is_calc.F b/fer/stk/is_calc.F
deleted file mode 100644
index bcc2d36..0000000
--- a/fer/stk/is_calc.F
+++ /dev/null
@@ -1,191 +0,0 @@
-	SUBROUTINE IS_CALC ( memory, *, *, 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 a grid of "calculated" data - ie. a variable which does not exist on
-* disk but which can be computed from disk data by model-diagnostic code
-* ( eg computing heat advection from temperature and velocity fields )
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 2/17/87
-* V200:  7/24/89 - 4D symmetric version based on ISP stack
-
-* calling argument declarations:
-	INTEGER	status
-	REAL	memory(*)
-* normal exit is for error conditions
-* exit #1 is to request another grid ( stack has been pushed )
-* exit #2 is to signal completion of the activity at this stack level
-* V312: 5/94 - array "memory" as a calling argument
-*       *acm* 3/12 cleanup ifdefs and unnecessary include files
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
-
-* internal variable declarations:
-	LOGICAL	dummy_next, special_var, k_eq1
-	INTEGER hi_cx, lo_cx, lo_isp, cvar, nitem, item0, item, comp,
-     .		next_var, dset
-
-	include	'tmap_dims.parm'
-	include	'ferret.parm'
-	include	'errmsg.parm'
-	include	'instance_table.parm'
-	include	'interp_stack.parm'
-	include	'xcontext.cmn'
-	include	'xvariables.cmn'
-	include	'xcalc_vars.cmn'
-	include	'xprog_state.cmn'
-	include	'xdset_parms.cmn'
-
-*        ... interpretation stack setup at the time this is called ...
-*	stack level		stack contents
-*	isp+1	<--	level of next activity ( component to get )
-*	 isp	<--	... ( current stack level )
-*	isp-1		...
-*	isp-2	<--	...	components of this cvar on stack
-*	isp-n		...
-*	lo_isp	<--	level controlling evaluation of cvar
-
-* --- end of introductory code ---
-
-* test to see if first time called - designate stack activity as algebra
-	IF ( is_act(isp) .EQ. isact_request ) THEN
-	   lo_isp = isp
-	   is_phase( lo_isp ) = 0
-	   is_act  ( lo_isp ) = isact_calculate
-	ELSE
-	   isp = isp + 1			! point to component just got
-	   lo_isp = is_obj( isp )
-	   hi_cx  = is_cx( isp )
-	ENDIF
-
-* convenience values
-	lo_cx  = is_cx( lo_isp )
-	cvar   = cx_variable( lo_cx )
-	dset   = cx_data_set( lo_cx )
-	nitem  = cvar_frame_length( cvar )
-	item0  = cvar_frame_start( cvar )
-
-* special needs for components of some variables
-	IF (cvar .GT. pcv_spec_flg) cvar = cvar - pcv_spec_flg
-* ... variables always requiring k=1 as lower Z limit
-	k_eq1 = cvar.EQ.pdpdx  .OR. cvar.EQ.pdpdy
-     .	   .OR. cvar.EQ.pw_u   .OR. cvar.EQ.pw_t
-
-* initialize stacks
-	IF ( is_phase( lo_isp ) .EQ. 0 ) THEN
-	   IF ( mode_diagnostic )
-     .			CALL DIAGNOSTIC_OUT( 'compute', lo_cx, point_to_cx )
-	   CALL STACK_PTR_UP( cx_stack_ptr, max_context, status )
-	   IF ( status .NE. ferr_ok ) RETURN
-	   hi_cx = cx_stack_ptr
-	ENDIF
-
-* set up to get next component
- 100	is_phase(lo_isp) = is_phase(lo_isp) + 1
-	item = is_phase(lo_isp)			! points into cvar table
-	IF ( item .GT. nitem ) GOTO 1000
-	comp = item + item0
-
-* unravel the variable coding of the next component
-	next_var = cv_variable( comp )
-	special_var = next_var .GT. pcv_spec_flg
-	IF ( special_var ) next_var = next_var - pcv_spec_flg
-
-* the next component may be a dummy place holder
-	IF ( special_var ) THEN
-* this component was flagged for data-set-dependent special consideration
-* ... different action depending on what variable needs this component
-	   IF ( cvar .EQ. pqrad ) THEN
-	      dummy_next = dp_phil_qflux( dset )	! need SST ?
-	   ELSEIF ( cvar .EQ. pair ) THEN
-	      dummy_next = dp_const_air_sst( dset )	! need CAIR ?
-     .			.AND. cx_hi_ss(lo_cx,y_dim) .LT. 91
-	   ELSEIF ( cvar .EQ. pcair ) THEN
-	      dummy_next = .FALSE.
-	   ELSE
-	      CALL ERRMSG
-     .			( ferr_internal, status, 'cv_spec_flg', *5000 )
-	   ENDIF
-	ELSEIF ( cv_lo_d3(comp) .GT. pcv_keq1_flg ) THEN
-* component needed only at surface calculations
-* ... are we at the surface ?
-	   dummy_next = cx_lo_ss( lo_cx,z_dim ) .NE. 1
-	ELSE
-	   dummy_next = .FALSE.
-	ENDIF
-
-* process dummy place holder
-	IF ( dummy_next ) THEN
-	   isp = isp + 1
-	   is_mr(isp) = dummy_mr
-	   is_obj( isp ) = lo_isp	! claimed by this cvar calculation
-	   GOTO 100
-	ENDIF
-
-* create context for the next component needed
-	CALL CVAR_CONTEXT( lo_cx, hi_cx, comp, k_eq1, status )
-	IF ( status .NE. ferr_ok ) RETURN
-
-* request this variable on the interpretation stack ( via RETURN 1 )
-	CALL PUSH_INTERP_STACK( isp, status )
-	IF ( status .NE. ferr_ok ) RETURN
-	is_cx ( isp ) = hi_cx
-	is_obj( isp ) = lo_isp		! claimed by this cvar calculation
-	IF ( cx_category(hi_cx) .EQ. cat_user_var ) THEN
-* ... special action if this component variable is user-defined (uvar)
-	   is_uvar( isp ) = cx_variable( hi_cx )
-	ENDIF
-	RETURN 1
-
-* all components are ready - do the calculation
- 1000	CALL CALC_CVAR( memory,
-     .		        lo_cx, is_mr(lo_isp+1), is_mr(lo_isp), status )
-	IF ( status .NE. ferr_ok ) GOTO 5000
-
-* pop off the stack space used by the components
-	isp = isp - nitem
-
-* pop off context used for components
-	IF ( hi_cx .NE. cx_stack_ptr ) WRITE (6, *) 'is_calc_stk' ! temp diag
-	cx_stack_ptr = cx_stack_ptr - 1
-	RETURN 2
-
-* error exit
- 5000	RETURN
-	END	
diff --git a/fer/ocn/hourly_data.F b/fer/stk/is_dummy.F
similarity index 71%
copy from fer/ocn/hourly_data.F
copy to fer/stk/is_dummy.F
index b08cd45..edd6362 100644
--- a/fer/ocn/hourly_data.F
+++ b/fer/stk/is_dummy.F
@@ -1,4 +1,4 @@
-	LOGICAL FUNCTION HOURLY_DATA( grid )
+	SUBROUTINE IS_DUMMY( memory, *, status )
 
 *
 *
@@ -35,44 +35,47 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* determine whether a particular grid has a regular hourly time axis
+* create a "dummy" result -- all missing values
+* for use with forecast aggregations, in cases of a missing forecast
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-
-* V200:  7/27/89
-
-#ifdef unix
+*
+* V698  12/15 - *sh*
+ 
 	include 'tmap_dims.parm'
-	include 'xtm_grid.cmn_text'
-	external xgt_grid_data
-	include 'ferret.parm'
-#else
-	INCLUDE 'TMAP_FORMAT:TMAP_DIMS.PARM'
-	INCLUDE 'TMAP_FORMAT:XTM_GRID.CMN'
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-#endif
+	include	'ferret.parm'
+	include	'errmsg.parm'
+	include	'interp_stack.parm'
+	include	'xvariables.cmn'
+	include	'xcontext.cmn'
+	include	'xprog_state.cmn'
 
 * calling argument declarations:
-	INTEGER	grid
+	INTEGER	status
+	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
-	INTEGER	taxis
+	INTEGER	mr, cx
+
+* --- end of introductory code ---
+* initialize
+	cx = is_cx( isp )
+
+* reserve and catalog space for the result
+	CALL CREATE_TEMP_MEM_VAR( cx, mr, status )
+	IF ( status .NE. ferr_ok ) GOTO 5000
+	is_mr( isp ) = mr
 
-	taxis = grid_line( t_dim, grid )
+* diagnostic output
+	IF (mode_diagnostic) CALL DIAGNOSTIC_OUT('dummy',mr,point_to_mr)
 
-	IF ( taxis .EQ. munknown .OR. taxis.EQ.mnormal ) THEN
-	   HOURLY_DATA = .FALSE.
-	   RETURN
-	ENDIF
+* insert a block of missing value flags
+	CALL FILL_MEMORY( memory, mr_blk1(mr),
+     .			  mr_nblks(mr), mr_bad_data(mr) )
 
-	HOURLY_DATA =
-     .		 line_regular  ( taxis )
-     .	   .AND. line_delta    ( taxis ) .EQ. 1.
-     .	   .AND. line_tunit    ( taxis ) .EQ. 3600.
-     .	   .AND. line_dim      ( taxis ) .GT. 1
-     .	   .AND. line_direction( taxis ) .EQ. 'TI'
+	RETURN 1
 
-	RETURN
-	END
+* error exit
+ 5000	RETURN
+	END	
diff --git a/fer/stk/is_regrid.F b/fer/stk/is_regrid.F
index f979b4b..ce6b589 100644
--- a/fer/stk/is_regrid.F
+++ b/fer/stk/is_regrid.F
@@ -86,6 +86,8 @@
 * V68+ 4/12  *acm*   Fix ticket 1931: the work space for XY linear regridding
 *                    was computed incorrectly.
 * V696 *acm* 11/15 Added @BIN and @NBIN regridding transforms
+* V698 *acm*  3/16 Ticket 2278: add an attribute with time range when
+*                  saving a modulo-regridded variable to netCDF
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -96,7 +98,6 @@
 	include	'xvariables.cmn'
 	include	'xalgebra.cmn'   ! with alg_regrid_code
 
-
 * calling argument declarations:
 	INTEGER	status
 	REAL	memory( mem_blk_size, max_mem_blks )
@@ -104,7 +105,7 @@
 * exit #1 is to signal completion of the activity at this stack level
 
 * internal variable declarations:
-	LOGICAL	TM_ITS_CDF,
+	LOGICAL	TM_ITS_CDF, 
      .		xy_regrid, valid, valid_y, has_impl_save, done_by_strides,
      .		itsa_string
 	INTEGER hi_isp, lo_isp, axis, cx_valid, idim,
@@ -361,6 +362,10 @@ c     .    .AND. cx_has_impl_grid(dst_cx)
      .			memory(1,mr_blk1(nbd_mr)), nbd_mr,
      .			memory(1,mr_blk1(ave_mr)), ave_mr )
 
+* ... For modulo regrid in time, add an attribute listing the source dates
+
+	   IF (axis .EQ. t_dim) CALL DEFINE_CLIMAT_ATT (src_cx)
+
 * ... delete temporary variables
 	   CALL DELETE_VARIABLE( ngd_mr )
 	   CALL DELETE_VARIABLE( nbd_mr )
diff --git a/fer/stk/is_strip.F b/fer/stk/is_strip.F
index 7f50aec..36d2628 100644
--- a/fer/stk/is_strip.F
+++ b/fer/stk/is_strip.F
@@ -72,6 +72,9 @@
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * V690+ 11/13 *sh* support for auxiliary var regridding: temp[gz(depth)=zax]
+* V698 1/16 *sh* fix to bug #2347 (agg res var no instead of com var on stack)
+*		 alter agg setup to detect LET/D vars at eval time
+*      4/16 *sh* Allow that SET VAR/NAME= has altered the agg varname
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -90,25 +93,27 @@
 
 * internal variable declarations:
 	LOGICAL	ITSA_MODULO_REGRID, TM_ITS_SUBSPAN_MODULO, NC_GET_ATTRIB,
-     .		NC_GET_ATTRIB_STRING, ITSA_MODULO_AXIS,
+     .		NC_GET_ATTRIB_STRING, ITSA_MODULO_AXIS, TM_SAME_GRID_DEF,
+     .		SCALAR_GRID_LINE, 
      .		itsa_uvar, modulo_dest_regrid, allatonce, attoutflag, 
      .		got_it
 	INTEGER	CGRID_SIZE_MAX, CAXIS_LEN, CAXIS_MODLEN, CX_DIM_LEN, 
      .		AUX_AXIS_FROM_ARG, CGRID_AXIS, POTENT_SIZE, 
      .		ISUBSCR_CX, TM_AXES_REVERSED, CGRID_SIZE, MODULO_PARITY,
-     .		STR_SAME, TM_LENSTR1,
+     .		STR_SAME, TM_LENSTR1, KNOWN_GRID,
      .		nrev, reversed(nferdims), idel,
      .		trans, grid, dset, lo_off, hi_off, aclass,
      .		lo_cx, hi_cx, big_cx, lo_isp, i, axis,
      .		cxsize, split_ax, split_ax_len, frag, var, ss, lo_ss,
      .		hi_ss, nmod, nmodhi, npts, xlate, dup_cx, i4d,
-     .          line, imemb, imemb_dset, grids_dset, len, 
-     .		igrid, iline, varid, attlen, maxlen, fer_uvar, nv, memb_dset
-	REAL	ax_frac, vbad
+     .          line, imemb, imemb_dset, grids_dset, len,
+     .		orig_grid, iline, attlen, maxlen, orig_cat, orig_var,
+     .		memb_dset, hi_cat, hi_var, hi_grid, agg_vlen, memb_vlen, slen
+	REAL	ax_frac
 	REAL*8	TM_WORLD, ww_given, ww_nrst
-	CHARACTER*128 VAR_CODE, vname
+	CHARACTER*128 VAR_CODE, agg_vname, memb_vname
 	CHARACTER*128 buff
-
+	CHARACTER LEFINT*6
 
 * --- end of introductory code ---
 * initiailize - ! temp:always called at bottom of stack frame for transform
@@ -132,111 +137,106 @@
 
  100	IF (aclass .EQ. isact_class_aggregate_gather) THEN
 
-* Set up to gather the components of an aggregate variable
+* SET UP TO GATHER THE COMPONENTS OF AN AGGREGATE VARIABLE
+* ***==> SEE DOCUMENTATION of agg handling in header of INIT_EF_AGGREGATE_DSET
 	   is_act( lo_isp ) = isact_aggregate_gather
 
-* Save the default context so it can be re-used for each aggregate member.
-	   CALL CREATE_NEW_CONTEXT(lo_cx, big_cx, status )  ! pushes stack
- 	   IF ( status .NE. ferr_ok ) GOTO 5000
-	   is_big_cx( lo_isp ) = big_cx
-
-* cancel result pointer to indicate no result yet
+* set result pointer to indicate no memory result has been created yet
 	   is_mr( lo_isp ) = unspecified_int4
 
 * Set up context (hi_cx) to get the first requested aggregate member
-
+* Start with bookkeeping to prepare to request component
 	   is_sum( lo_isp ) = cx_hi_ss(lo_cx, idim)
 	   is_phase( lo_isp ) = cx_lo_ss(lo_cx, idim)
+	   CALL TRANSFER_CONTEXT( lo_cx, hi_cx )
 
-	   CALL TRANSFER_CONTEXT( big_cx, hi_cx )
-
-* Set the grid to the grid of the first aggregate component...
 	   imemb = is_phase( lo_isp )
+* ... there is no E-axis in an E-agg of FMRCs on the 2dtime var TF_TIMES 
+	   IF (imemb .EQ. unspecified_int4) imemb = 1  ! presume TF_TIMES E-agg
+	   agg_vname = VAR_CODE (cat_file_var, cx_variable(hi_cx))
+	   agg_vlen = TM_LENSTR1(agg_vname)
+	   CALL CD_GET_AGG_VAR_INFO (dset, agg_vname, imemb, orig_cat, 
+     .                memb_dset, orig_grid, iline, orig_var, status)
 
-	   vname = VAR_CODE (cat_file_var, cx_variable(hi_cx))
-	   CALL CD_GET_AGG_VAR_INFO (dset, vname, imemb, fer_uvar, 
-     .                memb_dset, igrid, iline, nv, status)
+* Is it the 2D Time variable for a Forecast-aggregation?  If so then
+* the field was cached and retrieved by FIND_MEM_VAR_INCL_C_CACHE
+	   IF (memb_dset .EQ. pagg_promotion_indicator_dset)
+     .		CALL ERRMSG(ferr_internal, status,
+     .		'aggregation cache failure in is_strip', *5000)
+
+* for special case (hack) of an E-aggregation of FMRCs, the 2dtime array comes
+* from one particular member
+	   IF (orig_cat .EQ. cat_ef_time2d) THEN
+	      hi_cat = cat_file_var
+	      hi_var = orig_var
+	      hi_grid = orig_grid
+	   ELSE
 
-	   IF (status .NE. ferr_ok) THEN
-	      CALL CD_GET_VAR_ID (dset, vname, varid, status)
-	      IF (status .NE. ferr_ok) 
-     .		CALL ERRMSG(ferr_aggregate_error, status, 'variable '//
-     .		  vname(:TM_LENSTR1(vname))//' not found in aggregate dataset', *5000)
-	   ENDIF
+* a couple of 'delayed mode' use cases to beware -- actions the user may have
+* taken **SINCE** the aggregation was defined:
+*  1) user may have issued a SET VAR/NAME= (rename) of the aggregated variable
+*  2) user may have issued a LET/D on a member variable
+* If 1, then agg_vname will differ from memb_vname 
+* If 2, then cat# and var# associated with member name may have changed
+* Do a fresh "find" for the original member variable name
+	      memb_vname = VAR_CODE(orig_cat, orig_var)
+	      memb_vlen = TM_LENSTR1(memb_vname)
+	      CALL FIND_VAR_NAME (memb_dset,memb_vname, hi_cat, hi_var )
+	      IF (hi_var .EQ. munknown_var_name) CALL ERRMSG(
+     .		  ferr_aggregate_error, status, 'variable '//
+     .		  memb_vname(:memb_vlen)//' no longer found in agg member '//
+     .		  LEFINT(imemb,slen), *5000)
+
+* confirm grid has not changed since stored during DEFINE DATA/AGG
+	      hi_grid = KNOWN_GRID(memb_dset, hi_cat, hi_var)
+	      IF (hi_grid .EQ. unspecified_int4) THEN   ! can only be a uvar
+* ... GET_UVAR_GRID uses the interp_stack, so bump isp
+	         isp = lo_isp + 1
+	         CALL GET_UVAR_GRID( hi_var, memb_dset, status )
+	         isp = lo_isp  ! restore to value at start of routine
+                 IF ( status .NE. ferr_ok ) GOTO 5000
+	         hi_grid = KNOWN_GRID(memb_dset, hi_cat, hi_var)
+	      ENDIF
 
-* Is it the 2D Time variable for a Forecast-aggregation?  If so then
-* the information is contained only in the grids not variables of member sets.
-
-	   IF (memb_dset .EQ. 0) THEN
-	      CALL CD_GET_VAR_ID (dset, vname, varid, status)
-
-	      maxlen = 128
-	      got_it = NC_GET_ATTRIB_STRING ( dset, varid, '_CoordinateAxisType',
-     .                                   .FALSE., vname, maxlen,
-     .                                   attlen, attoutflag, buff)
-	      IF (got_it .AND. STR_SAME(buff, 'Time') .EQ. 0) THEN
-
-	         cx_category(hi_cx) = cat_pseudo_var 
-		 cx_variable(hi_cx) = 10  ! (hack) will load t[gt=var] coordinates
-
-	         cx_grid( hi_cx ) = igrid
-	         cx_data_set(hi_cx) = dset
-
-* since it is a pseudo-variable, all dimensions are normal except its axis
-	         DO i = 1, nferdims
-	            IF (i .EQ. t_dim) CYCLE
-	            cx_lo_ss( hi_cx,i ) = unspecified_int4
-	            cx_hi_ss( hi_cx,i ) = unspecified_int4
-	            cx_by_ss( i,hi_cx ) = .TRUE.
-	            cx_lo_ww( i,hi_cx ) = unspecified_val8
-	            cx_hi_ww( i,hi_cx ) = unspecified_val8
-	         ENDDO
-
-	         maxlen = 1
-	         got_it = NC_GET_ATTRIB( dset, varid, 'missing_value',
-     .                .FALSE., vname, maxlen, attlen,
-     .                attoutflag, buff, vbad )
-
-	         cx_bad_data(hi_cx) = vbad
+* check that component grid is conformable with aggregation
+* (grid may have changed due to new LET/D definition)
+	      CALL CONFORMABLE_AGG_GRID(idim, memb_vname, imemb,
+     .                                  grid, cat_file_var, var,
+     .                                  hi_grid, hi_cat, hi_var,
+     .                                  orig_grid, status )
+	      IF (status .NE. ferr_ok) GOTO 5000
+
+* scalar axes of components need not match the agg result
+	      DO i = 1, nferdims
+	         IF ( i .NE. idim
+     .	        .AND. SCALAR_GRID_LINE(i, hi_grid, hi_cat, hi_var))
+     .						CALL DEL_CX_DIM(idim, hi_cx) 
+	      ENDDO
+
+* the T axis of an F-aggregation has a single set of indices but the time
+* values differ for each axis.  Indices are inherited from the lo_cx
+	      IF (idim .EQ. f_dim) THEN
+	         cx_by_ss(t_dim, hi_cx) = .TRUE.
+	         CALL FLESH_OUT_AXIS(t_dim, hi_cx, status )
+	         IF (status .NE. ferr_ok) GOTO 5000
 	      ENDIF
-	   ELSE
+	   ENDIF
 
 * Set limits on agg-direction to be unspecified
- 
-	      cx_lo_ss( hi_cx,idim ) = unspecified_int4
-	      cx_hi_ss( hi_cx,idim ) = unspecified_int4
-	      cx_by_ss( idim,hi_cx) = .TRUE.
-
-* Grid wasnt stored for this variable if its a LET/D variable in member dset
-* Let it be the agg grid ?? (or could set the grid to a number less than 
-* unspecified_int4 to call get_uvar_grid for this LET/D member var)
-
-	      IF (igrid .EQ. unspecified_int4) THEN 
-	         cx_data_set(hi_cx) = memb_dset
-	         cx_category(hi_cx) = cat_user_var
-	         cx_variable(hi_cx) = nv
-	     ELSE
+	   CALL DEL_CX_DIM(idim, hi_cx)
+	   cx_by_ss(idim,hi_cx) = .TRUE.
 
-	         CALL CD_GET_VAR_ID (memb_dset, vname, varid, status)
-	         maxlen = 1
-	         got_it = NC_GET_ATTRIB( memb_dset, varid, 'missing_value',
-     .                .FALSE., vname, maxlen, attlen,
-     .                attoutflag, buff, vbad )
-     
-	         cx_grid( hi_cx ) = igrid
-	         cx_data_set(hi_cx) = memb_dset
-
-	         IF (fer_uvar .EQ. 3) THEN
-	            cx_category(hi_cx) = cat_user_var 
-	         ELSE
-	            cx_category(hi_cx) = cat_file_var 
-	            cx_bad_data(hi_cx) = vbad
-	         ENDIF
-	      ENDIF
-	      is_uvar(lo_isp) = cx_variable(hi_cx)
+* set up the member variable
+	   cx_data_set(hi_cx) = memb_dset
+	   cx_category(hi_cx) = hi_cat
+	   cx_variable(hi_cx) = hi_var
+	   cx_grid    (hi_cx) = hi_grid
+	   CALL GET_CONTEXT_BAD_FLAG(hi_cx)
+
+	   is_uvar(lo_isp) = hi_var ! relevant if component 1 is LET/D
 
-	   ENDIF  ! member datset
 
+**************
 	ELSEIF ( aclass .EQ. isact_class_trans) THEN
 
 * SET UP FOR A TRANSFORMATION
diff --git a/fer/stk/is_uvar_grid.F b/fer/stk/is_uvar_grid.F
index 8d59366..3b2a533 100644
--- a/fer/stk/is_uvar_grid.F
+++ b/fer/stk/is_uvar_grid.F
@@ -108,6 +108,14 @@
 * V690 9/13-2/14 *sh*   support for auxiliary var regridding: temp[gz(depth)=zax]
 * V694  *acm* 1214 Fixing ticket 2220
 * V694 *acm*  5/15 Fix ticket 2213 
+* V698 *sh* 1/16   tweaks to aggregates to ensure all LET/D grids found
+* V698 *acm* 1/16  change remaining dset=-1 to the parameter dset=pdset_uvars
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
+* V698  3/16 *acm* Remove unneeded xdset_parms.cmn
+* v698 5/16  *acm* ticket 2413: New attribute keywords ncoordvars, coordnames
+*                  return info about coordinate-variables in datasets
+* V699  5/16 *sh*  replace variable uvar_grid with calls to c LIST structures
 
 * calling argument declarations:
 	INTEGER	status
@@ -115,9 +123,23 @@
 * exit #1 is to request grid for a component ( stack has been pushed )
 * exit #2 is to signal that the grid has been obtained and stored in uvar_grid
 
+#include "netcdf.inc"
+	include	'tmap_errors.parm'
+	include 'tmap_dims.parm'
+	include	'xtm_grid.cmn_text'
+	external xgt_grid_data
+	include	'ferret.parm'
+	include	'errmsg.parm'
+	include	'interp_stack.parm'
+	include	'xcontext.cmn'
+	include	'xvariables.cmn'
+	include	'xprog_state.cmn'
+	include	'xfr_grid.cmn'
+
 * internal variable declarations:
-	LOGICAL	ITSA_GCVAR, ITSA_CONST_VAR, its_dynamic, its_gc, need_another_pass,
-     .		saved_ifthen_type, do_err, agg_has_uvar, ok_remote,
+	LOGICAL	ITSA_GCVAR, ITSA_CONST_VAR,
+     .		its_dynamic, its_gc, need_another_pass,
+     .		saved_ifthen_type, do_err, ok_remote,
      .		getting_aux_var, its_const_var
 	INTEGER KNOWN_GRID, STR_SAME,
      .		TM_LENSTR1, GCF_PARENT_UVAR, GCF_PARENT_CHAR, 
@@ -128,25 +150,13 @@
      .		ifthen_data_type, varid, alen, attype, attlen,
      .          attoutflag, attid, bracket, dot, dsloc, endbracket,
      .          status_deallo, agg_grid, agg_line, agg_len, agg_dset,
-     .		imemb, fer_uvar, memb_dset, memb_grid, iline, nv
+     .		imemb, memb_cat, memb_dset, memb_grid, iline, nv,
+     .		hi_cat, hi_var, vlen, slen, dummy_aux(nferdims)
 
-	CHARACTER VAR_CODE*4, name*512, buff*2048, varname*512, 
+	CHARACTER VAR_CODE*128, LEFINT*6,
+     .		  name*512, buff*2048, varname*512, 
      .            attname*128, aname*128, newname*512
 
-#include "netcdf.inc"
-	include	'tmap_errors.parm'
-	include 'tmap_dims.parm'
-	include	'xtm_grid.cmn_text'
-	external xgt_grid_data
-	include	'ferret.parm'
-	include	'errmsg.parm'
-	include	'interp_stack.parm'
-	include	'xcontext.cmn'
-	include	'xvariables.cmn'
-	include	'xprog_state.cmn'
-	include	'xfr_grid.cmn'
-	include	'xdset_parms.cmn'
-
 *        ... interpretation stack setup at the time this is called ...
 *	stack level		stack contents
 *	isp+1	<--	level to get grids for components
@@ -172,6 +182,10 @@
 	cx_save = cx_stack_ptr		! restored on pass #2 (2/99)
 	saved_ifthen_type = .FALSE.
 	getting_aux_var = .FALSE.
+* when auxiliary grid information is irrelevant ... 
+	DO idim = 1, nferdims
+	   dummy_aux(idim) = -12345   ! visible in debugging
+	ENDDO
 
 * process the next item in the expression from the uvar buffer (last to first)
  100	is_phase(isp) = is_phase(isp) + 1
@@ -265,10 +279,60 @@
 	   CALL DEALLO_UNFORMED_GRID (status_deallo)
 	   GOTO 5000
 	ENDIF
+
 ***
 * A digression from the usual grid-getting:
+* if this variable belongs to an aggregated dataset there may be LET/D uvars
+* included in the definition of that dataset. The user may have changed
+* those LET/D defnitions since defining the aggregation.  We need to ensure
+* that the grids of any new LET/D uvars are known.
+	IF ( cx_category(hi_cx).EQ.cat_agg_e_var .OR. 
+     .       cx_category(hi_cx).EQ.cat_agg_f_var ) THEN
+	   agg_dset = cx_data_set( hi_cx )
+	   status = NCF_GET_AGG_COUNT (agg_dset, agg_len)
+* loop over the member vars of the aggregation
+	   DO imemb = 1, agg_len
+* ... first get the information that was true at the time of DEFINE DATA/AGG
+	      varname = VAR_CODE(cx_category(hi_cx), cx_variable(hi_cx))
+	      CALL CD_GET_AGG_VAR_INFO (agg_dset, varname, imemb, 
+     .            memb_cat, memb_dset, memb_grid, iline, nv, status)
+* ... ignore dummy datasets and synthetic 2D coordinate variable, tf_times
+	      IF (memb_dset .EQ. pagg_promotion_indicator_dset
+     .	      .OR.memb_dset .EQ. pdset_dummy                   ) CYCLE
+* ... now get info of the variable currently associated with this name
+	      varname = VAR_CODE( memb_cat, nv )
+	      vlen = TM_LENSTR1(varname)
+	      CALL FIND_VAR_NAME (memb_dset,varname, hi_cat, hi_var )
+	      IF (hi_var .EQ. munknown_var_name) CALL ERRMSG
+     .			(ferr_aggregate_error, status,"variable "//
+     .			 varname(:vlen)//" not found in member "//
+     .			 LEFINT(imemb, slen), *5000)
+	      uv_grd = KNOWN_GRID(memb_dset, hi_cat, hi_var)
+	      IF (uv_grd .EQ. unspecified_int4) THEN
+	         IF (hi_cat .NE. cat_user_var) GOTO 9000  ! internal error
+* ... we have found a LET/D valiable with unknown grid
+* ... set up the context to describe that variable
+*     (the current hi_cx may include regridding and all sorts of stuff)
+	         CALL INIT_EMPTY_CONTEXT(hi_cx)
+	         cx_data_set(hi_cx) = memb_dset
+	         cx_variable(hi_cx) = hi_var
+	         cx_category(hi_cx) = cat_user_var
+!	         CALL GET_AGG_MEMB_UVAR_CONTEXT(memb_dset, hi_var, hi_cx)
+* ... when the grid has been determined we want to come back to this aggregated
+*     variable and check for other new LET/D vars that may lack grids
+*     so we set the "phase" back to where it was when we started this pass
+	         is_phase(isp) = is_phase(isp) - 1
+* ... create a new ISP stack level to get the grid of that user variable
+	         GOTO 900
+	      ENDIF
+	   ENDDO
+	ENDIF
+***
+
+***
+* Another digression from the usual grid-getting:
 * When regridding using auxiliary variable(s) has been requested, we have to
-* ensure that the grids of the aux variables are known as a part of the get-grid phase.
+* ensure that the grids of the aux variables are known
 * (Note that aux var grids do not get merged into the parent grid)
 	IF  ( cx_unstand_grid(hi_cx)
      .	.AND. cx_naux(hi_cx) .GT. 0 ) THEN
@@ -292,6 +356,7 @@
 * handle variable regridded to a uvar which has unknown grid (8/99) 
 	IF ( cx_unstand_grid(hi_cx)
      . .AND. cx_grid(hi_cx) .LT. unspecified_int4 ) GOTO 800
+
 * do we know the defining grid for the component ?
 * (not necessarily the same as the returned grid --> there may be a regrid )
 	IF ( cx_category(hi_cx) .EQ. cat_user_var ) THEN
@@ -308,41 +373,8 @@
 	      GOTO 500	! uvar grid known --> merge it
 	   ENDIF
 
-C What other cx info do we have here? Is the dataset the agg_dataset? Should be able to get the
-C lo and hi of the ensemble axis if so, and get all the grids.
-
-	ELSEIF ( cx_category(hi_cx).EQ.cat_agg_e_var .OR. 
-     .           cx_category(hi_cx).EQ.cat_agg_e_var ) THEN
-
-	   agg_dset = dset
-	   status = NCF_GET_AGG_COUNT (agg_dset, agg_len)
-
-	   var = cx_variable(hi_cx)
-
-	   uv_grd = KNOWN_GRID( agg_dset, cx_category(hi_cx), var )
-	   IF ( uv_grd .NE. unspecified_int4 ) THEN
-	      uvar_dset(uvar) = 0  ! now its a datset variable not user var
-	      GOTO 500	! uvar grid known --> merge it
-	   ENDIF
-
-	   DO 355 imemb = 1, agg_len
-	      CALL CD_GET_AGG_VAR_INFO (agg_dset, name, imemb, 
-     .            fer_uvar, memb_dset, memb_grid, iline, nv, status)
-	      IF (fer_uvar .EQ. cat_user_var) agg_has_uvar = .TRUE.
- 355	   CONTINUE
-
-	   IF (agg_has_uvar) GOTO 990
-
-	   IF ( cx_grid(hi_cx) .NE. unspecified_int4 ) THEN
-	      GOTO 500	! know grid --> merge it
-	   ELSE
-	      GOTO 9000	! err: grid for non-user agg vars should always be known
-	   ENDIF
-
 	ELSEIF ( cx_grid(hi_cx) .NE. unspecified_int4 ) THEN
 	   GOTO 500	! know grid --> merge it
-	ELSEIF ( cx_category(hi_cx) .EQ. cat_calc_var ) THEN
-	   GOTO 9100	! err: grid for cvar may not be knowable
 	ELSE
 	   GOTO 9000	! err: grid for non-user vars should always be known
 	ENDIF
@@ -391,7 +423,7 @@ C lo and hi of the ensemble axis if so, and get all the grids.
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
         dset = cx_data_set(hi_cx)
-        IF (dset .EQ. pdset_irrelevant) dset = -1
+        IF (dset .EQ. pdset_irrelevant) dset = pdset_uvars
         do_err = .TRUE.
         varname = ' '
         attname = ' '
@@ -406,23 +438,27 @@ C lo and hi of the ensemble axis if so, and get all the grids.
         attype = NCFLOAT
 
         IF (STR_SAME(attname, 'attnames') .EQ. 0  .OR. 
-     .       STR_SAME(attname, 'dimnames') .EQ. 0 ) THEN
+     .       STR_SAME(attname, 'dimnames') .EQ. 0 .OR. 
+     .       STR_SAME(attname, 'coordnames') .EQ. 0 ) THEN
            attype = NCCHAR
         ELSE IF (STR_SAME(attname, 'ndims') .EQ. 0  .OR.
      .      STR_SAME(attname, 'type') .EQ. 0  .OR.
      .      STR_SAME(attname, 'nvars') .EQ. 0  .OR.
+     .      STR_SAME(attname, 'ncoordvars') .EQ. 0  .OR.
      .      STR_SAME(attname, 'nattrs') .EQ. 0 ) THEN
            attype = NCFLOAT
 
         ELSE IF (STR_SAME (varname, '.') .EQ. 0) THEN
            IF (STR_SAME(attname, 'varnames') .EQ. 0   .OR.
-     .         STR_SAME(attname, 'dimnames') .EQ. 0 ) THEN
+     .         STR_SAME(attname, 'dimnames') .EQ. 0 .OR.
+     .         STR_SAME(attname, 'coordnames') .EQ. 0 ) THEN
               attype = NCCHAR
 
            ELSE IF (STR_SAME(attname, 'attnames') .EQ. 0   .OR.
-     .           STR_SAME(attname, 'ndims') .EQ. 0  .OR.
+     .           STR_SAME(attname, 'ndims')  .EQ. 0  .OR.
      .           STR_SAME(attname, 'nattrs') .EQ. 0  .OR.
-     .           STR_SAME(attname, 'nvars') .EQ. 0 ) THEN
+     .           STR_SAME(attname, 'nvars')  .EQ. 0  .OR.
+     .           STR_SAME(attname, 'ncoordvars') .EQ. 0 ) THEN
               attype = NCFLOAT
            ENDIF
 
@@ -442,11 +478,11 @@ C lo and hi of the ensemble axis if so, and get all the grids.
 	ENDIF
 
 * The attribute handling needed to know if this was a dataset variable (dset > 0) 
-* or a user-defined variable that depends on a dataset (dset=-1). Now reset the
+* or a user-defined variable that depends on a dataset (dset=pdset_uvars). Now reset the
 * dataset to the value from cx_data_set
 
         dset = cx_data_set(hi_cx)
-        IF (dset .EQ. pdset_irrelevant) dset = -1
+        IF (dset .EQ. pdset_irrelevant) dset = pdset_uvars
         
 * set the X axis limits equal to the length of the array
 c	cx_lo_ss(hi_cx, x_dim) = 1
@@ -627,20 +663,19 @@ c	cx_hi_ss(hi_cx, x_dim) = attlen !!
 	is_act  ( isp ) = isact_get_grid	! temp diagnostic
 	RETURN 1
 
-* grid for this aggregate dataset is not known.  Back to get_uvar_grid and call
-* is_aggregate_grid to get it
-* ... repeat this phase again when we get back
- 990	is_phase(isp) = is_phase(isp) - 1
-* load the new variable info onto the IS stack
-	CALL PUSH_INTERP_STACK( isp, status )
-	IF ( status .NE. ferr_ok ) RETURN
-c	is_sum( isp ) = isalg_merge_n
-
-	is_cx   ( isp ) = hi_cx
-	is_uvar ( isp ) = cx_variable( hi_cx )
-	is_act  ( isp ) = isact_get_agg_grid	! get aggregate grid on return.
-
-	RETURN 1
+!* grid for at least 1 member variable of this aggregated dataset is not known.
+!* Go back to get_uvar_grid and call is_aggregate_grid to get it
+!* ... repeat this phase again when we get back
+! 990	is_phase(isp) = is_phase(isp) - 1
+!* load the new variable info onto the IS stack
+!	CALL PUSH_INTERP_STACK( isp, status )
+!	IF ( status .NE. ferr_ok ) RETURN
+!
+!	is_cx   ( isp ) = hi_cx
+!	is_uvar ( isp ) = cx_variable( hi_cx )
+!	is_act  ( isp ) = isact_get_agg_grid	! get aggregate grid on return.
+!
+!	RETURN 1
 	
 ***  DONE - clean up
  1000	CONTINUE
@@ -660,15 +695,40 @@ c	is_sum( isp ) = isalg_merge_n
 	      uvar_need_dset(uvar) = .FALSE.
 	      uvar_grid(uvar, pdset_irrelevant) = mgrid_abstract
 	      uvar_data_type(uvar, pdset_irrelevant) = ptype_float
+	      CALL SAVE_UVAR_GRID(uvar, mgrid_abstract, ptype_float,
+     .				  pdset_irrelevant)
+* ... 6/26 init aux info just for house-keeping
+	      DO idim = 1, nferdims
+	         uvar_aux_cat(uvar,idim,pdset_irrelevant) = dummy_aux(idim)
+	         uvar_aux_var(uvar,idim,pdset_irrelevant) = dummy_aux(idim)
+	      ENDDO
+	      CALL SAVE_UVAR_AUX_INFO(uvar,
+     .                         dummy_aux, dummy_aux, pdset_irrelevant)
 	   ELSE		! defined with LET/D
 !	      uvar_need_dset(uvar) = .TRUE.	! always TRUE anyway
 * *kob* 4/99 bug fix - check to see if let/d is dataset independent
 	      IF (dset .EQ. unspecified_int4) THEN
 		 uvar_grid(uvar, pdset_irrelevant) = mgrid_abstract
 	         uvar_data_type(uvar, pdset_irrelevant) = ptype_float
+	         CALL SAVE_UVAR_GRID(uvar, mgrid_abstract, ptype_float,
+     .				     pdset_irrelevant)
+* ... 6/16 init aux info just for house-keeping
+	         DO idim = 1, nferdims
+	            uvar_aux_cat(uvar,idim,pdset_irrelevant) = dummy_aux(idim)
+	            uvar_aux_var(uvar,idim,pdset_irrelevant) = dummy_aux(idim)
+	         ENDDO
+	         CALL SAVE_UVAR_AUX_INFO(uvar,
+     .                         dummy_aux, dummy_aux, pdset_irrelevant)
               ELSE
                  uvar_grid(uvar, dset) = mgrid_abstract
 	         uvar_data_type(uvar, dset) = ptype_float
+	         CALL SAVE_UVAR_GRID(uvar, mgrid_abstract, ptype_float, dset)
+* ... 6/16 init aux info just for house-keeping
+	         DO idim = 1, nferdims
+	            uvar_aux_cat(uvar,idim,dset) = dummy_aux(idim)
+	            uvar_aux_var(uvar,idim,dset) = dummy_aux(idim)
+	         ENDDO
+	         CALL SAVE_UVAR_AUX_INFO(uvar, dummy_aux, dummy_aux, dset)
 	      ENDIF
 	   ENDIF
 	   gnum = mgrid_abstract
@@ -714,14 +774,17 @@ c        ENDIF
 	   this_dset = pdset_irrelevant
 	ENDIF
 
-* store the importenat stuff!
+* store the important stuff!
 	uvar_grid( uvar, this_dset ) = gnum
 	uvar_data_type(uvar, this_dset) = cx_type(big_cx)
+	CALL SAVE_UVAR_GRID(uvar, gnum, cx_type(big_cx), this_dset)
 	DO  i = 1, nferdims
-	   uvar_aux_var (uvar, i, this_dset) = cx_aux_var (i, big_cx)
-	   uvar_aux_cat (uvar, i, this_dset) = cx_aux_cat (i, big_cx)
+           uvar_aux_var (uvar, i, this_dset) = cx_aux_var (i, big_cx)
+           uvar_aux_cat (uvar, i, this_dset) = cx_aux_cat (i, big_cx)
 	   uvar_aux_stat(uvar, i           ) = cx_aux_stat(i, big_cx)
 	ENDDO
+	CALL SAVE_UVAR_AUX_INFO(uvar,
+     .       cx_aux_cat(1,big_cx), cx_aux_var(1,big_cx), this_dset)
 
 * * * SECOND PASS CHECK * * *
 * need a second pass to include pseudo_vars in calculation ?
@@ -732,6 +795,21 @@ c        ENDIF
  1110	   uvar_given(i,uvar) = uvlim_irrelevant
 	   uvar_grid( uvar, this_dset ) = unspecified_int4 ! 10/00
 	   uvar_data_type(uvar, this_dset) =  unspecified_int4 ! housekeeping
+* 6/16 comment as we switch to LIST-based management of uvar grids:
+* ... the following commented-out SAVE_UVAR_GRID call was initially inserted
+*     for consistency with the pre-LIST code. Studying the comments we see
+*     that the storage of this unspecified_int grid value was introduced to
+*     fix a bug (10/00) and actually contradicts the explicit comment that 
+*     "are NOT initialized" just above. Because 'this_dset' reflects context
+*     left by previous commands, it is not reliably correct for the current
+*     grid determination.  The result is that on occasion an unspecified_int4
+*     value gets falsely stored under an irrelevant dataset, and not removed,
+*     thereby mildly corrupting the uvar grid LISTs.  I see no value in storing
+*     it so I've commented it out. But the possibility exists of an unforseen
+*     interaction.  There must be some reason that the previous code set
+*     these unspecified values, right?
+!	   CALL SAVE_UVAR_GRID(uvar, unspecified_int4, unspecified_int4,
+!     .			       this_dset)
 	   is_phase( isp ) = 0
 	   is_sum( isp ) = isalg_transfer
 	   cx_stack_ptr = cx_save
@@ -791,16 +869,5 @@ c	      rvar_on_server(uvar) = .FALSE.
  5000	CALL DEALLO_ALL_GRIDS
 	RETURN
  9000	CALL ERRMSG( ferr_internal, status, 'is_uvar_grid', *5000 )
- 9100   IF ( dset .LE. 0 ) GOTO 9000
-        CALL GET_SHORT_DSET_NAME( dset, name, i )
-        IF ( .NOT. (dp_phil_sieg(dset).OR.dp_cox(dset)) ) THEN
-           CALL WARN( name(:i)//' is not a GFDL model data set' ) 
-        ELSE
-           GOTO 9000
-        ENDIF
- 	CALL ERRMSG( ferr_invalid_command, status,
-     .               'no grid for GFDL diagnostic variable '
-     .               //VAR_CODE(cat_calc_var, cx_variable(hi_cx)),
-     .               *5000 )
 
 	END	
diff --git a/fer/stk/known_grid.F b/fer/stk/known_grid.F
index 62b0b23..0f7e31f 100644
--- a/fer/stk/known_grid.F
+++ b/fer/stk/known_grid.F
@@ -46,6 +46,7 @@
 * V230:  7/21/92 - check for unspecified data set on calc_var
 * v554: 1/04 *acm* Counter variables for REPEAT/RANGE=/NAME=
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V698  3/16 *sh* added logic for cat_ef_time2d (ACTS_LIKE_FVAR)
 
 	include	'tmap_dims.parm'
 #       include "tmap_dset.parm"
@@ -53,7 +54,6 @@
 	external xdset_info_data
 	include	'ferret.parm'
 	include	'xvariables.cmn'
-	include	'xcalc_vars.cmn'
         include 'xfr_grid.cmn'
         INCLUDE 'xpyvar_info.cmn'
 
@@ -61,14 +61,11 @@
 	INTEGER	data_set, category, variable
 
 * internal variable declarations:
+	LOGICAL ACTS_LIKE_FVAR
 	INTEGER	dset
 
 * different procedure for determining grid from each category
-	IF     ( category .EQ. cat_file_var ) THEN
-
-	   KNOWN_GRID = ds_grid_number( variable )
-
-	ELSEIF ( category.EQ.cat_agg_e_var .OR. category.EQ.cat_agg_f_var ) THEN
+	IF     ( ACTS_LIKE_FVAR(category) ) THEN
 
 	   KNOWN_GRID = ds_grid_number( variable )
 	   IF (ds_grid_number( variable ) .EQ. int4_init) 
@@ -78,15 +75,6 @@
 
            KNOWN_GRID = pyvar_grid_number( variable )
 
-	ELSEIF ( category .EQ. cat_calc_var ) THEN
-
-           IF ( data_set .EQ. unspecified_int4 ) THEN
-              KNOWN_GRID = unspecified_int4
-           ELSE
-	      KNOWN_GRID = cvar_grid( variable, data_set )
-           ENDIF
-
-
 	ELSEIF ( category .EQ. cat_user_var ) THEN
 
 * ... allow "abstract" expressions that don't depend on data set
diff --git a/fer/utl/SOURCE_FILES b/fer/utl/SOURCE_FILES
index 74f1412..48e5fe8 100644
--- a/fer/utl/SOURCE_FILES
+++ b/fer/utl/SOURCE_FILES
@@ -1,4 +1,5 @@
 SRCS_F = \
+acts_like_fvar.F\
 add_2_grids.F\
 add_2_grids_sub.F\
 add_c_2_grid.F\
@@ -46,11 +47,13 @@ deallo_all_grids.F\
 deallo_grid.F\
 deallo_unformed_grid.F\
 decrement_plot_grid.F\
+define_climat_att.F\
 dense_contig_region.F\
 depend_stat_var.F\
 depend_stat_var_sub.F\
 display_dependency.F\
 display_dependency_sub.F\
+ensemble_member_dset.F\
 extract_dp_line.F\
 extract_dp_line2.F\
 extract_line.F\
@@ -60,6 +63,7 @@ extract_line_sub.F\
 extract_z_line.F\
 field_minmax.F\
 field_minmax_sub.F\
+free_uvar_grids.F\
 full_scan_indices.F\
 gcf_arg_type.F\
 gcf_child_var_name.F\
@@ -82,7 +86,11 @@ get_ave_lims.F\
 get_dependency_status.F\
 get_max_string_len.F\
 get_max_string_len_sub.F\
+get_saved_uvar_aux_info.F\
+get_saved_uvar_grid.F\
+get_saved_uvar_grid_list_len.F\
 get_string_element.F\
+get_string_element_1d_x.F\
 get_unique_dset_name.F\
 get_window_lims.F\
 getunit.F\
@@ -137,9 +145,12 @@ region_number.F\
 regularly_spaced.F\
 report_aux_dependency.F\
 report_dependency.F\
+reset_climat_att.F\
 reset_secs_from_bc.F\
 reverse_grid_axis.F\
 reverse_grid_axis_sub.F\
+save_uvar_aux_info.F\
+save_uvar_grid.F\
 secs_from_bc.F\
 secs_to_date.F\
 secs_to_date_c.F\
@@ -157,6 +168,8 @@ store_sys_strings.F\
 str_match.F\
 sub_2_grids.F\
 sub_2_grids_sub.F\
+t0_adjust.F\
+t0_adjust_init.F\
 t_deriv.F\
 tdest_world.F\
 tdest_world_init.F\
diff --git a/ppl/tmapadds/its_gksm.c b/fer/utl/acts_like_fvar.F
similarity index 79%
copy from ppl/tmapadds/its_gksm.c
copy to fer/utl/acts_like_fvar.F
index 6f1b555..2e30fae 100644
--- a/ppl/tmapadds/its_gksm.c
+++ b/fer/utl/acts_like_fvar.F
@@ -1,4 +1,4 @@
-/*
+      LOGICAL FUNCTION ACTS_LIKE_FVAR (category)
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -30,19 +30,23 @@
 *  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
 *  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.  
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*/
 
+* return TRUE for any variable category that stores its info in XDSET_INFO
 
+* V698 3/16 *sh* to accommodate added logic of cat_ef_time2d
 
-/* 
- * boolean function returns 1 or 0 to tell if the given
- * GKS workstation is a GKSM metafile workstation
- */
 
-int its_gksm_(int *wkid)
-{
-    return 0;
-}
+      include 'ferret.parm'
 
+* calling argument declarations
+        INTEGER category
+
+	ACTS_LIKE_FVAR = category.EQ.cat_file_var
+     .              .OR. category.EQ.cat_agg_e_var
+     .              .OR. category.EQ.cat_agg_f_var
+     .              .OR. category.EQ.cat_ef_time2d
+
+      RETURN
+      END
diff --git a/fer/utl/axis_intervals.F b/fer/utl/axis_intervals.F
index 3f07247..ac50d27 100644
--- a/fer/utl/axis_intervals.F
+++ b/fer/utl/axis_intervals.F
@@ -72,6 +72,8 @@
 * V68    4/11  Allow shade, vector plots of degenerate regions - world region 
 *              within a grid cell
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V698  *acm* 5/16 Ticket 1845, 2404 fix; adjusting plot-axis ends for subspan 
+*		   modulo axes (as in axis_intervals.F for 2D plots).
 
         include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -143,33 +145,23 @@
 		   d_regrid = MIN( d_regrid, axis(i+1)-axis(i) )
 		   regrid = .TRUE.
 
-*     If irregularity is found only because of the void point on the axis,
-*     set regrid flag back to false
-
-                   IF (is_subspan .AND. void_at_start .AND. i.EQ.lo_cx+1)
-     .                regrid = .FALSE.
-                   IF (is_subspan .AND. void_at_end .AND. i.EQ.hi_cx-1)
-     .                regrid = .FALSE.
-                   IF (is_subspan .AND. (i.EQ.-1 .OR. i.EQ.0) )
-     .                regrid = .FALSE.
-
 	      ENDIF
  200	   CONTINUE
 	ENDIF
 
 * regridding parameters
-	lo_world = axis(lo_cx)
-	hi_world = axis(hi_cx)
+       lo_world = axis(lo_cx)
+       hi_world = axis(hi_cx)
 
 * If the start or end point is the modulo subspan void point, return
 * the actual first or last axis point instead.
-
-        IF (is_subspan) THEN
+ 
+         IF (is_subspan) THEN
            IF (void_at_start) lo_world = axis(lo_cx+1)
            IF (void_at_end  ) hi_world = axis(hi_cx-1)
-        ENDIF
-
-	n_regrid = INT( (hi_world - lo_world) / d_regrid ) + 1
+         ENDIF
+ 
+        n_regrid = INT( 0.5+((hi_world - lo_world) / d_regrid) ) + 1
 
 * plot vertical z axes upside down ?
 
diff --git a/fer/utl/cal_factr.F b/fer/utl/cal_factr.F
index 31b6581..06ec01a 100644
--- a/fer/utl/cal_factr.F
+++ b/fer/utl/cal_factr.F
@@ -62,7 +62,8 @@
 	cal_id_greg = 1		! Default gregorian calendar
 	CAL_FACTR = sec_per_year(cal_id_greg) / sec_per_year(cal_id)
 
-
+c CAL_ID
+c
 c     1	'GREGORIAN',
 c     2  'NOLEAP',
 c     3  'JULIAN',
@@ -71,27 +72,13 @@ c     5  'ALL_LEAP'
 
 c from xunits_data.F:
 c
-c	DATA	un_convert( -1)	/ 1.0		/,
-c     .		un_convert( -2)	/ 60.		/,
-c     .		un_convert( -3)	/ 3600.		/, ! sec per hour
-c     .		un_convert( -4)	/ 86400.	/, ! sec per day
-c     .		un_convert( -5)	/ 2629746.	/, ! 1/12 of 365.2425 year
-c
-cc     .		un_convert( -6)	/ 31536000.	/, ! sec per 365 day year (OLD default)
-c     .		un_convert( -6)	/ 31556952.	/  ! sec per 365.2425 year
+c	DATA	...
 c
-c     .		un_convert( -7)	/ 44712.	/, ! sec per M2 cycle
 c     .		un_convert( -8)	/ 31622400.	/, ! sec per 366 day year
 c     .		un_convert( -9)	/ 31104000.	/, ! sec per 360 day year
-c     .		un_convert(-10)	/ 31556952.	/  ! sec per 365.2425 year
-c
-c     .		un_convert(-11)	/ 31536000.	/ ! sec per 365.0 day year
-c     .		un_convert(-12)	/ 31557600.	/ ! sec per 365.25 day year
-c
-c     .		un_convert(-13)	/ 2628000.	/ ! 1/12 of sec per 365 day year
-c     .		un_convert(-14)	/ 2592000.	/ ! 1/12 of sec per 360 day year
-c     .		un_convert(-15)	/ 2629800.	/ ! 1/12 of sec per 365.25 day year
-c     .		un_convert(-16)	/ 2635200.	/ ! 1/12 of sec per 366 day year
+c     .		un_convert(-10)	/ 31556952.	/, ! sec per 365.2425 year
+c     .		un_convert(-11)	/ 31536000.	/, ! sec per 365.0 day year
+c     .		un_convert(-12)	/ 31557600.	/, ! sec per 365.25 day year
 
 	RETURN
 	END
diff --git a/fer/utl/copy_agg_into.F b/fer/utl/copy_agg_into.F
index db392ea..f237023 100644
--- a/fer/utl/copy_agg_into.F
+++ b/fer/utl/copy_agg_into.F
@@ -44,6 +44,7 @@
 *
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * V695 2/15 *acm* 6D add aggregation in forecast direction
+* V698 3/16 *sh* make any scalar axis of member conformable with result
 *
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -55,16 +56,33 @@
 	REAL    src( * ), dst( * )
 
 * internal variable declarations
+	LOGICAL SCALAR_GRID_LINE
 	INTEGER idim, soffset, doffset, mdel,
+     .		dgrid, dcat, dvar,
      .		smlo(nferdims), smhi(nferdims),
      .		dmlo(nferdims), dmhi(nferdims),
      .		cxlo(nferdims), cxhi(nferdims)
 
+* initialize
+	dgrid = mr_grid(mdst)
+	dcat  = mr_category(mdst)
+	dvar  = mr_variable(mdst)
+ 
 * set-up modified limits wherever delta is significant
 * cuz the FORTRAN dimensioned size can only have delta of 1 
 
 	DO idim = 1,nferdims
-	  IF (mr_delta(idim,msrc) .NE. unspecified_val8) THEN
+	  IF (idim.NE.agg_dim
+     .  .AND. SCALAR_GRID_LINE(idim,dgrid,dcat,dvar)) THEN
+* ... any scalar-length axis of source is conformable with dest
+*     (if dst is scalar, then we know src will be too)
+	     cxlo(idim) = 1
+	     cxhi(idim) = 1
+	     dmlo(idim) = 1
+	     dmhi(idim) = 1
+	     smlo(idim) = 1
+	     smhi(idim) = 1
+	  ELSEIF (mr_delta(idim,msrc) .NE. unspecified_val8) THEN
             mdel = NINT(mr_delta(idim,msrc))
 
 	    IF (mr_delta(idim,msrc).NE.mr_delta(idim,mdst)
diff --git a/fer/utl/make_step_axis.F b/fer/utl/define_climat_att.F
similarity index 57%
copy from fer/utl/make_step_axis.F
copy to fer/utl/define_climat_att.F
index e025c03..8d08aa8 100644
--- a/fer/utl/make_step_axis.F
+++ b/fer/utl/define_climat_att.F
@@ -1,7 +1,5 @@
-	SUBROUTINE MAKE_STEP_AXIS( grid, idim, inc, lo_ss, hi_ss, axis )
+	SUBROUTINE DEFINE_CLIMAT_ATT (src_cx)
 
-*
-*
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
 *  Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -34,51 +32,57 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* create a REAL*4 array of world coordinates over a range of subscripts along
-* axis IDIM of grid GRID.  Begin the axis at subscript 1 of AXIS.
-* If argument "inc" is 2 then output lo/hi limits for each point
-* If "inc" is 3 then do lo/hi limits and duplicate upper limit
+* Ansley Manke March 2016
+* V698 *acm*  3/16 Ticket 2278: add an attribute with time range when
+*                  saving a modulo-regridded variable to netCDF
 
-* programmer - steve hankin
-* V530 *sh* 1/01 
-*       *acm* 3/12 cleanup ifdefs and unnecessary include files
+        include 'tmap_dims.parm'
+        include 'ferret.parm'
+	include 'xcontext.cmn'
+	include 'xtra_compute_attr.cmn'
 
-	include 'ferret.parm'
 
 * calling argument declarations:
-	INTEGER	grid, idim, inc, lo_ss, hi_ss
-	REAL    axis(*)
+	INTEGER src_cx
 
 * internal variable declarations:
-	INTEGER	ito, i
-	REAL*8	TM_WORLD
+	LOGICAL ssame
+        INTEGER TM_LENSTR1, STR_SAME, grid, loss, hiss, slen, iprec
+	CHARACTER*128 str1, str2
+	REAL*8 TM_WORLD, loww, hiww, wwnext
+
+	grid = cx_grid(src_cx)
+	loss = cx_lo_ss(src_cx, t_dim)
+	hiss = cx_hi_ss(src_cx, t_dim)
+
+* Show month-year using the grid midpoints of the date range
+
+	loww = TM_WORLD (loss, grid, t_dim, box_middle)
+	hiww = TM_WORLD (hiss, grid, t_dim, box_middle)
+
+	iprec = 2
 
-	ito = 0
+	CALL TSTEP_TO_DATE ( grid, t_dim, loww, iprec, str1 )
+      
+	slen = TM_LENSTR1(str1)
+	CALL TSTEP_TO_DATE ( grid, t_dim, hiww, iprec, str2 )
 
-	IF (inc .EQ. 1) THEN
-* make a simple axis - 1 output point per axis point
-	   DO i = lo_ss, hi_ss
-	      ito = ito + 1
-	      axis(ito) = TM_WORLD( i, grid, idim, box_middle )
-	   END DO
+	str1 = str1(:slen)//':'//str2
+	
 
-	ELSEIF (inc .EQ. 2) THEN
-* make a 2-point "step" axis - output lo and hi points at each axis point
-	   DO i = lo_ss, hi_ss
-	      axis(ito+1) = TM_WORLD( i, grid, idim, box_lo_lim )
-	      axis(ito+2) = TM_WORLD( i, grid, idim, box_hi_lim )
-	      ito = ito + 2
-	   END DO
+* First check that this isn't already set.  If it is, and if the 
+* new value of the string is different, we will not set the attrib.
 
+	IF (natt_computed_var.GT.0) THEN  
+	   slen = STR_SAME (attstr_computed_var, str1)
+	   IF (STR_SAME (attname_computed_var, 'climatology_time_range') .NE. 0) 
+     .                attstr_computed_var = 'do not set. another extra attribute already defined'
+	   IF ( STR_SAME (attstr_computed_var, str1) .NE. 0) 
+     .                attstr_computed_var = 'Multiple time ranges used'
 	ELSE
-* make a 3-point "step" axis - lo then hi twice
-	   DO i = lo_ss, hi_ss
-	      axis(ito+1) = TM_WORLD( i, grid, idim, box_lo_lim )
-	      axis(ito+2) = TM_WORLD( i, grid, idim, box_hi_lim )
-	      axis(ito+3) = axis(ito+2)
-	      ito = ito + 3
-	   END DO
+	   natt_computed_var = 1
+	   attname_computed_var = 'climatology_time_range'
+	   attstr_computed_var = str1
 	ENDIF
 
 	RETURN
diff --git a/fer/utl/display_dependency_sub.F b/fer/utl/display_dependency_sub.F
index 457b383..f2fa642 100644
--- a/fer/utl/display_dependency_sub.F
+++ b/fer/utl/display_dependency_sub.F
@@ -44,6 +44,7 @@
 * V690  *sh* 11/13 - minor adjustments to support aux regridding variables 
 * V693+ *sh* 12/14 - display regridding dependency on a separate line
 *            01/15 - each regrid target gets separate line
+* V698  3/16 *sh* added logic for cat_ef_time2d
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -247,7 +248,8 @@
 	            llen = llen + dnamlen
 	         ENDIF
 	         line_buff(llen+1:) = '   (aggregate variable)'
-	      ELSEIF (cat .EQ. cat_file_var ) THEN
+	      ELSEIF (cat .EQ. cat_file_var 
+     .           .OR. cat .EQ. cat_ef_time2d ) THEN
 	         IF (.NOT.dependency_tree_show_fvars) GOTO 500
 	         line_buff(blanks+1:) = VAR_CODE(cat, var)
 	         llen = TM_LENSTR1(line_buff)
diff --git a/fer/mem/create_full_range_context.F b/fer/utl/ensemble_member_dset.F
similarity index 59%
copy from fer/mem/create_full_range_context.F
copy to fer/utl/ensemble_member_dset.F
index c2ae558..676f83d 100644
--- a/fer/mem/create_full_range_context.F
+++ b/fer/utl/ensemble_member_dset.F
@@ -1,4 +1,4 @@
-	SUBROUTINE CREATE_FULL_RANGE_CONTEXT ( source, dest, status )
+	INTEGER FUNCTION ENSEMBLE_MEMBER_DSET ( agg_dset, imemb )
 
 *
 *
@@ -35,48 +35,56 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* transfer space/time/data_set/variable context from one context buffer to
-* another and then expand it to be the full grid range of that variable
+* return the dset number of ensemble member imemb
+* note:  as currently implemented an aggregated dataset knows who its member
+*        variable are, and each member variable knows who its member datasets
+*        are.  So the only way to learn the dataset number of a member is to
+*        access it through a member variable.  This routine follows that path.
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
 *
-* V695+ 5/15 *sh* 
 
-	IMPLICIT NONE
+* calling arguments
+*  agg_dset -- dataset number of the aggregation
+*  imemb    -- member number 1, 2, 3, ...
+
+
+* V690 *sh*
 
 	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'errmsg.parm'
+	include	'ferret.parm'
 	include 'xcontext.cmn'
+	include 'xtext_info.cmn'
+	include 'xdset_info.cmn_text'
+	include 'xtm_grid.cmn_text'
 
 * calling argument declarations
-	INTEGER	source, dest, status
-
-* internal variable declarations
-	INTEGER CX_DIM_LEN_ZERO, idim, n
+	INTEGER agg_dset, imemb	
 
-* initialize
-	status = ferr_ok
+* local variable declarations:
+	INTEGER TM_LENSTR1
+	INTEGER ivar, grid, vlen, memb_dset
+	INTEGER orig_cat, orig_grid, iline, orig_var, status
 
-	CALL TRANSFER_CONTEXT(source, dest)
 
-* expand context to full grid range
-	DO idim = 1, nferdims
-	   cx_trans(idim,dest) = trans_no_transform
-	   n = CX_DIM_LEN_ZERO(idim, dest)
-	   IF ( n .GT. 0 ) THEN
-	      cx_lo_ss(dest, idim) = 1
-	      cx_hi_ss(dest, idim) = n
-	      cx_by_ss(idim, dest) = .TRUE.
-	      CALL FLESH_OUT_AXIS(idim, dest, status )
-	      IF (status .NE. ferr_ok) GOTO 5000
+* find a variable that belongs to this dataset and has an E axis
+! very inefficient loop:  needs to be fixed
+	DO ivar = 1, maxvars
+	   IF (ds_var_setnum(ivar).EQ.agg_dset) THEN
+	      grid = ds_grid_number(ivar)
+	      IF (grid_line(e_dim,grid) .NE. mnormal) GOTO 100
 	   ENDIF
 	ENDDO
+* ... no variable found (should never happen)
+	ENSEMBLE_MEMBER_DSET = pdset_irrelevant ! may avoid a crash sometime?
+	RETURN 
 
+* get the dataset number associated with this variable
+ 100	vlen = TM_LENSTR1( ds_var_code(ivar) )
+	CALL CD_GET_AGG_VAR_INFO (agg_dset, ds_var_code(ivar)(:vlen), imemb, 
+     .        orig_cat, memb_dset, orig_grid, iline, orig_var, status)
+	ENSEMBLE_MEMBER_DSET = memb_dset
 	RETURN
-
-* error exit
- 5000	RETURN
 	END
+
diff --git a/fer/ocn/mesh.F b/fer/utl/free_uvar_grids.F
similarity index 71%
rename from fer/ocn/mesh.F
rename to fer/utl/free_uvar_grids.F
index 7636d78..b700882 100644
--- a/fer/ocn/mesh.F
+++ b/fer/utl/free_uvar_grids.F
@@ -1,4 +1,4 @@
-*
+      SUBROUTINE FREE_UVAR_GRIDS(uvar)
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -32,33 +32,32 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-*DECK MESH
-      SUBROUTINE MESH (DX,DY)
-      INTEGER  IM, JM, NX, NY
-      PARAMETER (IM=160,JM=100,NX= 1,NY=3)
-	INTEGER l, m, n
-      REAL DX(IM),DY(JM)
-      REAL XMAX(NX),XMIN(NX),XWID(NX)
-      REAL YMAX(NY),YMIN(NY),YWID(NY)
-	INTEGER	ID(NX), JD(NY)
-      DATA XMAX/1.0/
-      DATA XMIN/1.0/
-      DATA XWID/160.0/
-      DATA YMAX/2.3333334,.3333334,2.8666667/
-      DATA YMIN/3*.3333334/
-      DATA YWID/20.,20.,40./
-      DATA ID/1/
-      DATA JD/-1,2*1/
-      M=1
-      DO 5 L=1,NX
-      CALL CMESH (DX(M),XMAX(L),XMIN(L),XWID(L),N,ID(L))
-      M=M+N
-    5 CONTINUE
-      M=1
-      DO 8 L=1,NY
-      CALL CMESH (DY(M),YMAX(L),YMIN(L),YWID(L),N,JD(L))
-      M=M+N
-    8 CONTINUE
+
+* forget any grids that have been determined for this user variable
+
+* V699 6/16 *sh*
+
+      include 'ferret.parm'
+      include 'tmap_dims.parm'
+      include 'xvariables.cmn'
+
+* calling argument declarations
+      INTEGER uvar
+
+* internal variable declarations
+      INTEGER c_list_dset
+
+* determine the dataset id for this uvar in the c LIST structures
+      IF ( uvar_dset(uvar) .GT. pdset_irrelevant) THEN
+* ... LET/D= variable
+        c_list_dset   = uvar_dset(uvar) ! the dset that owns this LET/D
+      ELSE
+* ... global LET variable
+        c_list_dset   = pdset_uvars  ! fake dataset that holds global uvars
+      ENDIF
+
+* remove all of the grids associated with this uvar
+      CALL NCF_FREE_UVAR_GRID_LIST( c_list_dset, uvar)
+
       RETURN
       END
diff --git a/fer/utl/gcf_impose_axes.F b/fer/utl/gcf_impose_axes.F
index a20b1fe..d5c0503 100644
--- a/fer/utl/gcf_impose_axes.F
+++ b/fer/utl/gcf_impose_axes.F
@@ -47,6 +47,8 @@
 * V533: *sh* 7/01 - improve caching of some functions -- like SPAWN that
 *	            should have uvlim_hidden behavior equivalent to FFTA
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V697  12/15 *acm* Changes to add details on SHOW GRID uvar to indicate 
+*                   compressed or subset of axes
 
 	include 'tmap_dims.parm'
 	include	'xtm_grid.cmn_text'
@@ -126,7 +128,13 @@
 * averaging) a cache hit requires an exact match on all relevant limits
 * (Note: this is over-kill for some functions, but has
 * impacts only on cache efficiency)
+
+c For SHOW GRID with details e.g. compressed axes or subsets these settings
+c wind up returning result of COMPRESSED for axes unaffected by the function.
+c add logic to change uvar_given only when the gcf changes the axis. 
+
            IF ( gcfcn .GT. gfcn_num_internal ) THEN
+	      IF (axis_source(idim) .EQ. pgc_impose_axis) THEN
                  uvg = uvar_given(idim,uvar)
                  IF (    uvg.GE.uvlim_gvn_gnl    .AND.
      .                uvg.LE.uvlim_gvn_xact) THEN
@@ -135,6 +143,7 @@
      .                   uvg.LE.uvlim_need_xact) THEN
                     uvar_given(idim,uvar) = uvlim_need_xact
                  ENDIF
+	      ENDIF
            ENDIF
 
  500	CONTINUE
diff --git a/fer/mem/create_full_range_context.F b/fer/utl/get_saved_uvar_aux_info.F
similarity index 55%
copy from fer/mem/create_full_range_context.F
copy to fer/utl/get_saved_uvar_aux_info.F
index c2ae558..bf6a6b8 100644
--- a/fer/mem/create_full_range_context.F
+++ b/fer/utl/get_saved_uvar_aux_info.F
@@ -1,6 +1,4 @@
-	SUBROUTINE CREATE_FULL_RANGE_CONTEXT ( source, dest, status )
-
-*
+      SUBROUTINE GET_SAVED_UVAR_AUX_INFO( uvar, dset, aux_cat, aux_var)
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -34,49 +32,50 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* transfer space/time/data_set/variable context from one context buffer to
-* another and then expand it to be the full grid range of that variable
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V695+ 5/15 *sh* 
+* get the auxiliary variable info that has been associated with a saved
+* uvar grid/dset pair.
+
+* V699 5/16 *sh* new routine created to avoid the 2d uvar_grid array
 
-	IMPLICIT NONE
+* arguments:
+*     uvar - the Ferret user variable number (input)
+*     aux_cat - array of nferdims category's for auxiliary regrid variables
+*     aux_var - array of nferdims variables for auxiliary regridding
+*     dset    - the dset in which this uvar is being evaluated (see below)
 
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'errmsg.parm'
-	include 'xcontext.cmn'
+        include 'ferret.parm'
+        include 'errmsg.parm'
+        include 'tmap_dims.parm'
+        include 'xvariables.cmn'
 
 * calling argument declarations
-	INTEGER	source, dest, status
+        INTEGER uvar, aux_cat(nferdims), aux_var(nferdims), dset
 
 * internal variable declarations
-	INTEGER CX_DIM_LEN_ZERO, idim, n
+        INTEGER NCF_GET_UVAR_AUX_INFO, c_list_dset, context_dset,
+     .          status
 
-* initialize
-	status = ferr_ok
+* c_list_dset  - dset value relevant in C LIST structures of NCF_Util.c
+* context_dset - dset for which grid of this uvar has been determined
 
-	CALL TRANSFER_CONTEXT(source, dest)
+        IF ( uvar_dset(uvar) .GT. pdset_irrelevant) THEN
+* ... LET/D= variable
+          c_list_dset  = uvar_dset(uvar) ! the dset that owns this LET/D
+          context_dset = uvar_dset(uvar) ! only one dset is possible
+        ELSE
+* ... global LET variable
+          c_list_dset  = pdset_uvars  ! fake dataset of global uvars
+          context_dset = dset
+        ENDIF
 
-* expand context to full grid range
-	DO idim = 1, nferdims
-	   cx_trans(idim,dest) = trans_no_transform
-	   n = CX_DIM_LEN_ZERO(idim, dest)
-	   IF ( n .GT. 0 ) THEN
-	      cx_lo_ss(dest, idim) = 1
-	      cx_hi_ss(dest, idim) = n
-	      cx_by_ss(idim, dest) = .TRUE.
-	      CALL FLESH_OUT_AXIS(idim, dest, status )
-	      IF (status .NE. ferr_ok) GOTO 5000
-	   ENDIF
-	ENDDO
+* store the grid
+        status = NCF_GET_UVAR_AUX_INFO( c_list_dset, uvar,
+     .                          context_dset, aux_cat, aux_var )
 
-	RETURN
+* check that we were successful
+        IF (status .NE. ferr_ok) CALL WARN(
+     .                  'corruption getting uvar aux info')
 
-* error exit
- 5000	RETURN
-	END
+        RETURN
+        END
diff --git a/fer/gnl/isit_another_dset.F b/fer/utl/get_saved_uvar_grid.F
similarity index 61%
rename from fer/gnl/isit_another_dset.F
rename to fer/utl/get_saved_uvar_grid.F
index 3a3f76f..61911df 100644
--- a/fer/gnl/isit_another_dset.F
+++ b/fer/utl/get_saved_uvar_grid.F
@@ -1,5 +1,5 @@
-      SUBROUTINE ISIT_ANOTHER_DSET (expression, dset, varname, status)
-
+      SUBROUTINE GET_SAVED_UVAR_GRID( uvar, dset, uvgrid )
+*
 *  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,43 +32,43 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-* Look for [d=n] within an expression, and reset dset to match the dataset number
-* or name. varname is returned without the [d=] expression.
 
-* V600 6/05 *acm* Attribute control.
+* return the grid that has been saved for this
+* uvar (a LET expression), when evaluated in the given dset
 
-	INCLUDE	'ferret.parm'
-	INCLUDE 'errmsg.parm'
+* V699 5/16 *sh* new routine created to avoid the 2d uvar_grid array
 
-* calling argument declarations
 
-      INTEGER dset, status
-      CHARACTER*(*) expression, varname
+        include 'ferret.parm'
+        include 'tmap_dims.parm'
+        include 'xvariables.cmn'
 
-* local variable declarations
-      INTEGER TM_LENSTR1, slen, elen, llen, ivar, mods_cx, category
+* calling argument declarations
+        INTEGER uvar, dset, uvgrid
 
-      llen = TM_LENSTR1(expression)
-      varname = expression
+* internal variable declarations
+        INTEGER NCF_GET_UVAR_GRID, status,
+     .          c_list_dset, context_dset
 
-      IF ( INDEX(expression,'[') .GT. 0 ) THEN
+* c_list_dset  - dset value relevant in C LIST structures of NCF_Util.c
+* context_dset - dset for which grid of this uvar has been determined
 
-         dset = pdset_irrelevant	! default (not used ...)
-         CALL PARSE_NAM_DSET(expression, cx_last, dset, category, 
-     .                       ivar, mods_cx, status)
-         IF (status .NE. ferr_ok) GOTO 5010
-         slen = INDEX(expression,'[') 
-         elen = INDEX(expression,']')
-         varname = expression(1:slen-1)
-         IF (llen .GT. elen) 
-     .      varname = expression(1:slen-1)//expression(elen+1:llen)
- 
-      ENDIF
+        IF ( uvar_dset(uvar) .GT. pdset_irrelevant) THEN
+* ... LET/D= variable
+          c_list_dset  = uvar_dset(uvar) ! the dset that owns this LET/D
+          context_dset = uvar_dset(uvar) ! only one dset is possible
+        ELSE
+* ... global LET variable
+          c_list_dset  = pdset_uvars  ! fake dataset of global uvars
+          context_dset = dset
+        ENDIF
 
-5000  RETURN
+* store the grid
+        status = NCF_GET_UVAR_GRID( c_list_dset, uvar,
+     .                              context_dset, uvgrid)
 
-5010  IF (dset .EQ. pdset_irrelevant .OR. 
-     .       dset .EQ. unspecified_int4) status = ferr_syntax
+* error return?
+        IF (status .EQ. atom_not_found) uvgrid = unspecified_int4
 
-      RETURN
-      END
+        RETURN
+        END
diff --git a/fer/mem/create_full_range_context.F b/fer/utl/get_saved_uvar_grid_list_len.F
similarity index 66%
copy from fer/mem/create_full_range_context.F
copy to fer/utl/get_saved_uvar_grid_list_len.F
index c2ae558..8ccb5c7 100644
--- a/fer/mem/create_full_range_context.F
+++ b/fer/utl/get_saved_uvar_grid_list_len.F
@@ -1,6 +1,4 @@
-	SUBROUTINE CREATE_FULL_RANGE_CONTEXT ( source, dest, status )
-
-*
+      SUBROUTINE GET_SAVED_UVAR_GRID_LIST_LEN( uvar, ngrids )
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -34,49 +32,39 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* transfer space/time/data_set/variable context from one context buffer to
-* another and then expand it to be the full grid range of that variable
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V695+ 5/15 *sh* 
+* return the number of grids that have been saved for this uvar 
+* (one per associated dataset)
+
+* V699 5/16 *sh* new routine created to avoid the 2d uvar_grid array
 
-	IMPLICIT NONE
 
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'errmsg.parm'
-	include 'xcontext.cmn'
+        include 'ferret.parm'
+        include 'tmap_dims.parm'
+        include 'xvariables.cmn'
 
 * calling argument declarations
-	INTEGER	source, dest, status
+        INTEGER uvar, ngrids
 
 * internal variable declarations
-	INTEGER CX_DIM_LEN_ZERO, idim, n
+        INTEGER NCF_GET_UVAR_GRID_LIST_LEN, status, c_list_dset
 
-* initialize
-	status = ferr_ok
+* c_list_dset  - dset value relevant in C LIST structures of NCF_Util.c
+* context_dset - dset for which grid of this uvar has been determined
 
-	CALL TRANSFER_CONTEXT(source, dest)
+        IF ( uvar_dset(uvar) .GT. pdset_irrelevant) THEN
+* ... LET/D= variable
+          c_list_dset  = uvar_dset(uvar) ! the dset that owns this LET/D
+        ELSE
+* ... global LET variable
+          c_list_dset  = pdset_uvars  ! fake dataset of global uvars
+        ENDIF
 
-* expand context to full grid range
-	DO idim = 1, nferdims
-	   cx_trans(idim,dest) = trans_no_transform
-	   n = CX_DIM_LEN_ZERO(idim, dest)
-	   IF ( n .GT. 0 ) THEN
-	      cx_lo_ss(dest, idim) = 1
-	      cx_hi_ss(dest, idim) = n
-	      cx_by_ss(idim, dest) = .TRUE.
-	      CALL FLESH_OUT_AXIS(idim, dest, status )
-	      IF (status .NE. ferr_ok) GOTO 5000
-	   ENDIF
-	ENDDO
+* store the grid
+        status = NCF_GET_UVAR_GRID_LIST_LEN( c_list_dset, uvar, ngrids)
 
-	RETURN
+* check status
+        IF (status.EQ.atom_not_found) ngrids = 0
 
-* error exit
- 5000	RETURN
-	END
+        RETURN
+        END
diff --git a/fer/mem/purge_dset.F b/fer/utl/get_string_element_1d_x.F
similarity index 70%
copy from fer/mem/purge_dset.F
copy to fer/utl/get_string_element_1d_x.F
index 5fcfb8f..359603d 100644
--- a/fer/mem/purge_dset.F
+++ b/fer/utl/get_string_element_1d_x.F
@@ -1,7 +1,8 @@
-	SUBROUTINE PURGE_DSET ( dset )
+	CHARACTER*(*) FUNCTION GET_STRING_ELEMENT_1D_X(
+     .			hix,
+     .			ptr_array, i, 
+     .			maxlen, slen)
 
-*
-*
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
 *  Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -34,33 +35,32 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* delete all memory variables with data from a particular data set
+* This routine is a shorthand for calling GET_STRING_ELEMENT for the special
+* case of a 1D array of strings on the X axis
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V200: 10/25/89 - extracted from ERASE_DSET
-*	12/18/89 - eliminated the possibility of multiple data set variables
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V698:12/15 *sh*
 
         IMPLICIT NONE
-        include 'tmap_dims.parm'
-	include	'ferret.parm'
-	include 'xvariables.cmn'
+	include	'tmap_dims.parm'
+	include 'ferret.parm'
+	include 'EF_Util.parm'
+
+* calling argument declarations
+	INTEGER  hix, i, maxlen, slen
+	REAL*8	 ptr_array(*)
 
-* calling argument declarations:
-	INTEGER	dset
+* internal declarations
+	CHARACTER GET_STRING_ELEMENT*512
 
-* local variable declarations:
-	INTEGER mr
+* note: the "512" is an arbitrary assignment ... presumably tells the compiler
+* the length of intermediate buffer to provide (??)
 
-* eliminate memory variables depending on this data set
-	DO 100 mr = 1,max_mrs
-	   IF ( mr_protected( mr ) .EQ. mr_deleted ) GOTO 100
-	   IF ( dset .EQ. mr_data_set(mr) ) CALL DELETE_VARIABLE( mr )
- 100	CONTINUE
+	GET_STRING_ELEMENT_1D_X = GET_STRING_ELEMENT(
+     .			1,hix,
+     .                  1,1, 1,1, 1,1, 1,1, 1,1,
+     .                  ptr_array,i,1,1,1,1,1,
+     .			maxlen,slen )
 
 	RETURN
 	END
+ 
diff --git a/fer/utl/igrid.F b/fer/utl/igrid.F
index 8a650e1..b827c6c 100644
--- a/fer/utl/igrid.F
+++ b/fer/utl/igrid.F
@@ -51,6 +51,8 @@
 * V510:  8/99 *sh* - bug uncovered allowing DEFINE GRID/LIKE=user_var
 *		     if GET_UVAR_GRID is called the dset returned may be 0
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
 
 	include	'tmap_dims.parm'
 	include	'ferret.parm'
@@ -79,11 +81,7 @@
 	IF ( IGRID .NE. unspecified_int4 ) RETURN
 
 * grid unknown
-	IF ( category .EQ. cat_calc_var ) THEN
-	   CALL ERRMSG( ferr_invalid_command, status,
-     .		'unknown data set for GFDL diagnostic variable',
-     .          *5000 )
-	ELSEIF ( category .NE. cat_user_var ) THEN
+	IF ( category .NE. cat_user_var ) THEN
 	   CALL ERRMSG( ferr_internal, status, 'IGRID', *5000 )
 	ENDIF
 
diff --git a/fer/utl/inherit_attrs.F b/fer/utl/inherit_attrs.F
index a06b9e1..8ab2865 100644
--- a/fer/utl/inherit_attrs.F
+++ b/fer/utl/inherit_attrs.F
@@ -39,6 +39,8 @@
 * V600  4/06 *acm* - additional declarations found by Solaris compiler
 * V670  2/11 *acm*   Fixes for inheriting attributes.
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure.
 
       INCLUDE 'tmap_dims.parm'
       INCLUDE 'ferret.parm'
@@ -113,13 +115,16 @@
       IF (dset2 .EQ. pdset_irrelevant) dset2 = cx_data_set(cx_last) 
 
       cat = cx_category(cx)
-      IF (cat .EQ. cat_user_var) dset2 = pdset_uvars
 
 * Get varid for each variable.
       CALL CD_GET_VAR_ID (dset1, varname1, varid1, status)
       IF (status .NE. ferr_ok) GOTO 5050
       CALL CD_GET_VAR_ID (dset2, varname2, varid2, status)
-      IF (status .NE. ferr_ok) GOTO 5060
+      IF (status .NE. ferr_ok) THEN
+         IF (cat .EQ. cat_user_var) dset2 = pdset_uvars 
+	 CALL CD_GET_VAR_ID (dset2, varname2, varid2, status)
+      ENDIF
+      IF (status .NE. ferr_ok) GOTO 5050
 
 * Get number of attributes for variables
 
@@ -150,11 +155,13 @@
          IF (status .NE. ferr_ok) GOTO 5040
          CALL CD_GET_VAR_ATT_NAME (dset1, varid1, iatt, attname, status)
 	 CALL CD_SET_ATT_FLAG (dset2, varid2, attname, iflag, status)
+         IF (status .NE. ferr_ok) GOTO 5040
  200  CONTINUE
 
 * Update attribute information used by plotting etc (ds_units, ...)
 
-        CALL UPDATE_ATTRIBUTES (dset2, varid2)
+        CALL UPDATE_ATTRIBUTES (dset2, varname2, varid2, status)
+        IF (status .NE. ferr_ok) GOTO 5040
 
  5000 RETURN
 
diff --git a/fer/utl/make_step_axis.F b/fer/utl/make_step_axis.F
index e025c03..e62d336 100644
--- a/fer/utl/make_step_axis.F
+++ b/fer/utl/make_step_axis.F
@@ -43,18 +43,28 @@
 * programmer - steve hankin
 * V530 *sh* 1/01 
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V698  *acm* 5/16 Ticket 1845, 2404 fix; adjusting plot-axis ends for subspan 
+*		   modulo axes.
 
 	include 'ferret.parm'
+	include 'tmap_dims.parm'
+        include 'xtm_grid.cmn_text'
 
 * calling argument declarations:
 	INTEGER	grid, idim, inc, lo_ss, hi_ss
 	REAL    axis(*)
 
 * internal variable declarations:
-	INTEGER	ito, i
+	LOGICAL TM_ITS_SUBSPAN_MODULO, is_subspan, void_at_start, void_at_end
+	INTEGER	ito, i, iaxis
 	REAL*8	TM_WORLD
 
 	ito = 0
+	iaxis = grid_line(idim,grid) 
+	
+        is_subspan = TM_ITS_SUBSPAN_MODULO( iaxis  )
+        void_at_start = is_subspan .AND. (lo_ss.EQ.0)
+        void_at_end  = is_subspan .AND. (hi_ss.EQ.line_dim(iaxis)+1 )
 
 	IF (inc .EQ. 1) THEN
 * make a simple axis - 1 output point per axis point
@@ -62,6 +72,10 @@
 	      ito = ito + 1
 	      axis(ito) = TM_WORLD( i, grid, idim, box_middle )
 	   END DO
+	   IF (is_subspan) THEN
+	      IF (void_at_start) axis(1) = TM_WORLD( lo_ss, grid, idim, box_hi_lim )
+	      IF (void_at_end) axis(ito) = TM_WORLD( hi_ss, grid, idim, box_lo_lim )
+	   ENDIF
 
 	ELSEIF (inc .EQ. 2) THEN
 * make a 2-point "step" axis - output lo and hi points at each axis point
@@ -70,7 +84,10 @@
 	      axis(ito+2) = TM_WORLD( i, grid, idim, box_hi_lim )
 	      ito = ito + 2
 	   END DO
-
+	   IF (is_subspan) THEN
+	      IF (void_at_start) axis(1) = TM_WORLD( lo_ss, grid, idim, box_hi_lim )
+	      IF (void_at_end) axis(ito) = TM_WORLD( hi_ss, grid, idim, box_lo_lim )
+	   ENDIF
 	ELSE
 * make a 3-point "step" axis - lo then hi twice
 	   DO i = lo_ss, hi_ss
@@ -79,6 +96,11 @@
 	      axis(ito+3) = axis(ito+2)
 	      ito = ito + 3
 	   END DO
+	   IF (is_subspan) THEN
+	      IF (void_at_start) axis(1) = TM_WORLD( lo_ss, grid, idim, box_hi_lim )
+	      IF (void_at_end) axis(ito) = TM_WORLD( hi_ss, grid, idim, box_lo_lim )
+	      IF (void_at_end) axis(ito-1) = axis(ito+hi_ss*3)
+	   ENDIF
 	ENDIF
 
 	RETURN
diff --git a/fer/utl/report_dependency.F b/fer/utl/report_dependency.F
index bf96edd..a115210 100644
--- a/fer/utl/report_dependency.F
+++ b/fer/utl/report_dependency.F
@@ -42,7 +42,8 @@
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
 
-* V685+  *sh* 9/13 
+* V685+  *sh* 9/13
+* V698  3/16 *sh* added logic for cat_ef_time2d (ACTS_LIKE_FVAR)
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -58,7 +59,7 @@
 	INTEGER	work(dependency_max_recs, dependency_nfields)
 
 * internal variable declarations:
-	LOGICAL initialize, tell_dset, its_aux
+	LOGICAL ACTS_LIKE_FVAR, initialize, tell_dset, its_aux
 	INTEGER TM_LENSTR1, llen, cat, var, dset, blanks, 
      .		istart, iend, len2, dnamlen
 	CHARACTER*1024 GET_UNIQUE_DSET_NAME, VAR_CODE, VAR_TITLE, line_buff,
@@ -139,15 +140,21 @@
 	      llen = llen + dnamlen
 	   ENDIF
 	   line_buff(llen+1:) = ' = ' //uvar_text(var)
-	ELSEIF (cat .EQ. cat_file_var
-     .	   .OR. cat .EQ. cat_agg_e_var 
-     .	   .OR. cat .EQ. cat_agg_f_var ) THEN
+	ELSEIF ( ACTS_LIKE_FVAR(cat) ) THEN
 	   line_buff(blanks+1:) = VAR_CODE(cat, var)
 	   llen = TM_LENSTR1(line_buff)
 	   IF (tell_dset) THEN
 	      line_buff(llen+1:) = dsetname
 	      llen = llen + dnamlen
 	   ENDIF
+        ELSEIF ( cat .EQ. cat_pystat_var ) THEN
+           line_buff(blanks+1:) = VAR_CODE(cat, var)
+           llen = TM_LENSTR1(line_buff)
+           IF (tell_dset) THEN
+              line_buff(llen+1:) = dsetname
+              llen = llen + dnamlen
+           ENDIF
+           line_buff(llen+1:) = ' = ' //VAR_TITLE( cat )
 	ELSE
 * ... does this ever happen?
 	   line_buff(blanks+1:) = VAR_CODE(cat, var)
diff --git a/ppl/tmapadds/its_gksm.c b/fer/utl/reset_climat_att.F
similarity index 81%
copy from ppl/tmapadds/its_gksm.c
copy to fer/utl/reset_climat_att.F
index 6f1b555..fbd7831 100644
--- a/ppl/tmapadds/its_gksm.c
+++ b/fer/utl/reset_climat_att.F
@@ -1,4 +1,5 @@
-/*
+	SUBROUTINE RESET_CLIMAT_ATT 
+*
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -30,19 +31,23 @@
 *  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
 *  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.  
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*/
-
+*
+* Reset the count, attribute name and attribute value for an extra attribute
+* to be written for a computed variable. Could be extended for more such
+* attributes but should perhaps be done more directly.
 
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA - TMAP
+*
+* V698: 3/16 *acm* 
 
-/* 
- * boolean function returns 1 or 0 to tell if the given
- * GKS workstation is a GKSM metafile workstation
- */
+        include 'xtra_compute_attr.cmn'
 
-int its_gksm_(int *wkid)
-{
-    return 0;
-}
+	natt_computed_var = 0
+	attname_computed_var = ' '
+	attstr_computed_var = ' '
 
+	RETURN
+	END
diff --git a/fer/mem/create_full_range_context.F b/fer/utl/save_uvar_aux_info.F
similarity index 55%
copy from fer/mem/create_full_range_context.F
copy to fer/utl/save_uvar_aux_info.F
index c2ae558..5dd70fb 100644
--- a/fer/mem/create_full_range_context.F
+++ b/fer/utl/save_uvar_aux_info.F
@@ -1,6 +1,4 @@
-	SUBROUTINE CREATE_FULL_RANGE_CONTEXT ( source, dest, status )
-
-*
+      SUBROUTINE SAVE_UVAR_AUX_INFO( uvar, aux_cat, aux_var, dset )
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -34,49 +32,50 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* transfer space/time/data_set/variable context from one context buffer to
-* another and then expand it to be the full grid range of that variable
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V695+ 5/15 *sh* 
+* store the auxiliary variable info that is associated with a saved
+* uvar grid/dset pair.
+
+* V699 5/16 *sh* new routine created to avoid the 2d uvar_grid array
 
-	IMPLICIT NONE
+* arguments:
+*     uvar - the Ferret user variable number (input)
+*     aux_cat - array of nferdims category's for auxiliary regrid variables
+*     aux_var - array of nferdims variables for auxiliary regridding
+*     dset    - the dset in which this uvar is being evaluated (see below)
 
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'errmsg.parm'
-	include 'xcontext.cmn'
+        include 'ferret.parm'
+        include 'errmsg.parm'
+        include 'tmap_dims.parm'
+        include 'xvariables.cmn'
 
 * calling argument declarations
-	INTEGER	source, dest, status
+        INTEGER uvar, aux_cat(nferdims), aux_var(nferdims), dset
 
 * internal variable declarations
-	INTEGER CX_DIM_LEN_ZERO, idim, n
+        INTEGER NCF_SET_UVAR_AUX_INFO, c_list_dset, context_dset,
+     .          status
 
-* initialize
-	status = ferr_ok
+* c_list_dset  - dset value relevant in C LIST structures of NCF_Util.c
+* context_dset - dset for which grid of this uvar has been determined
 
-	CALL TRANSFER_CONTEXT(source, dest)
+        IF ( uvar_dset(uvar) .GT. pdset_irrelevant) THEN
+* ... LET/D= variable
+          c_list_dset  = uvar_dset(uvar) ! the dset that owns this LET/D
+          context_dset = uvar_dset(uvar) ! only one dset is possible
+        ELSE
+* ... global LET variable
+          c_list_dset  = pdset_uvars  ! fake dataset of global uvars
+          context_dset = dset
+        ENDIF
 
-* expand context to full grid range
-	DO idim = 1, nferdims
-	   cx_trans(idim,dest) = trans_no_transform
-	   n = CX_DIM_LEN_ZERO(idim, dest)
-	   IF ( n .GT. 0 ) THEN
-	      cx_lo_ss(dest, idim) = 1
-	      cx_hi_ss(dest, idim) = n
-	      cx_by_ss(idim, dest) = .TRUE.
-	      CALL FLESH_OUT_AXIS(idim, dest, status )
-	      IF (status .NE. ferr_ok) GOTO 5000
-	   ENDIF
-	ENDDO
+* store the grid
+        status = NCF_SET_UVAR_AUX_INFO( c_list_dset, uvar,
+     .                              aux_cat, aux_var, context_dset )
 
-	RETURN
+* check that we were successful
+        IF (status .NE. ferr_ok) CALL WARN(
+     .                  'corruption setting uvar aux info')
 
-* error exit
- 5000	RETURN
-	END
+        RETURN
+        END
diff --git a/fmt/src/cd_isit_another_dset.F b/fer/utl/save_uvar_grid.F
similarity index 60%
rename from fmt/src/cd_isit_another_dset.F
rename to fer/utl/save_uvar_grid.F
index a4396c6..8d8b540 100644
--- a/fmt/src/cd_isit_another_dset.F
+++ b/fer/utl/save_uvar_grid.F
@@ -1,5 +1,5 @@
-      SUBROUTINE CD_ISIT_ANOTHER_DSET (expression, dset, varname,status)
-
+      SUBROUTINE SAVE_UVAR_GRID( uvar, uvgrid, uvdtype, dset )
+*
 *  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,47 +32,43 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-* Look for [d=n] within an expression, and reset dset to match the dataset number
-* or name. varname is returned without the [d=] expression.
 
-* V600 6/05 *acm* Attribute control.
+* store the grid that has been determined to be correct for this
+* uvar (a LET expression), when evaluated in the given dset
 
-	INCLUDE	'ferret.parm'
-	INCLUDE 'errmsg.parm'
+* V699 5/16 *sh* new routine created to avoid the 2d uvar_grid array
 
-* calling argument declarations
 
-      INTEGER dset, status
-      CHARACTER*(*) expression, varname
+        include 'ferret.parm'
+        include 'tmap_dims.parm'
+        include 'xvariables.cmn'
 
-* local variable declarations
-      INTEGER TM_LENSTR1, slen, elen, llen, ivar, mods_cx, category
+* calling argument declarations
+        INTEGER uvar, uvgrid, uvdtype, dset
 
-      llen = TM_LENSTR1(expression)
-      varname = expression
+* internal variable declarations
+        INTEGER NCF_SET_UVAR_GRID, status,
+     .          c_list_dset, context_dset
 
-      IF ( INDEX(expression,'[') .GT. 0 ) THEN
+* c_list_dset  - dset value relevant in C LIST structures of NCF_Util.c
+* context_dset - dset for which grid of this uvar has been determined
 
-         CALL PARSE_NAM_DSET(expression, cx_last, dset, category, 
-     .                       ivar, mods_cx, status)
-         IF (status .NE. ferr_ok) THEN
-            dset = pdset_irrelevant	! default (not used ...)
-            CALL PARSE_NAM_DSET(expression, cx_last, dset, category, 
-     .                       ivar, mods_cx, status)
-         ENDIF
-         IF (status .NE. ferr_ok) GOTO 5010
-         slen = INDEX(expression,'[') 
-         elen = INDEX(expression,']')
-         varname = expression(1:slen-1)
-         IF (llen .GT. elen) 
-     .      varname = expression(1:slen-1)//expression(elen+1:llen)
- 
-      ENDIF
+        IF ( uvar_dset(uvar) .GT. pdset_irrelevant) THEN
+* ... LET/D= variable
+          c_list_dset  = uvar_dset(uvar) ! the dset that owns this LET/D
+          context_dset = uvar_dset(uvar) ! only one dset is possible
+        ELSE
+* ... global LET variable
+          c_list_dset  = pdset_uvars  ! fake dataset of global uvars
+          context_dset = dset
+        ENDIF
 
-5000  RETURN
+* store the grid
+        status = NCF_SET_UVAR_GRID( c_list_dset, uvar,
+     .                              uvgrid, uvdtype, context_dset )
 
-5010  IF (dset .EQ. pdset_irrelevant .OR. 
-     .       dset .EQ. unspecified_int4) status = ferr_syntax
+* Note that an ATOM_NOT_FOUND error is not trapped
+* We should really trap it and call ERRMSG(ferr_internal)
 
-      RETURN
-      END
+        RETURN
+        END
diff --git a/fer/utl/secs_to_date_out.F b/fer/utl/secs_to_date_out.F
index 074345a..b8c9100 100644
--- a/fer/utl/secs_to_date_out.F
+++ b/fer/utl/secs_to_date_out.F
@@ -48,27 +48,30 @@
 * V530: *acm* 12/00 add calendar types; cal_id
 * V610: *acm*  2/08 Fix bug 762: if the axis is not modulo, always list the
 *                   year (previously never listed year 0 or year 1)
+* V698  *acm* 5/16 Ticket 2405: MODE CALENDAR:auto
 
 * Calling argument declarations:
 	REAL*8		num_secs
 	INTEGER		cal_id, prec
+        LOGICAL         modulo
 
 * internal variable declarations
-        LOGICAL         modulo
 	INTEGER		year, month, day, hour, minute, second, status
 	CHARACTER	TM_SECS_TO_DATE*20, temp_str*20
         CHARACTER*3     month_names(12)
         DATA month_names/
-     .	'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN',
-     .    'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'/
+     .		'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN',
+     .		'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'/
 
 * convert to date string always including year
 	temp_str = TM_SECS_TO_DATE( num_secs, cal_id )
         CALL TM_BREAK_DATE (temp_str, cal_id, year, month, day,
      .		             hour, minute, second, status)
 
-* Select the requested precision and form the string.  If year = 0000 
-* or 0001 and the axis is modulo, do not write the year
+* Select the requested precision and form the string. 
+* Auto-determine prec, unless the user set it explicitly. 
+* If year = 0000 or 0001 and the axis is modulo, do not write the year
+* If monthly time axis write only month-year-day
 
 	IF ( prec .GE. 6 ) THEN		! full precision
 
@@ -103,7 +106,6 @@
            ELSE
               WRITE (temp_str,1050,ERR=5000) day, month_names(month), 
      .               hour
-
            ENDIF
 1040       FORMAT(I2.2,'-',A3,'-',I4.4,' ',I2.2)
 1050	   FORMAT(I2.2,'-',A3,' ',I2.2)
@@ -146,4 +148,3 @@
 * internal error
  5000	STOP 'SECS_TO_DATE'
 	END
-
diff --git a/fer/ocn/hourly_data.F b/fer/utl/t0_adjust.F
similarity index 67%
copy from fer/ocn/hourly_data.F
copy to fer/utl/t0_adjust.F
index b08cd45..f19e032 100644
--- a/fer/ocn/hourly_data.F
+++ b/fer/utl/t0_adjust.F
@@ -1,4 +1,4 @@
-	LOGICAL FUNCTION HOURLY_DATA( grid )
+	DOUBLE PRECISION FUNCTION T0_ADJUST ( T_orig )
 
 *
 *
@@ -35,44 +35,47 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* determine whether a particular grid has a regular hourly time axis
+* convert a time word from its native units to destination units
+* based upon source/destination initialization that has been previously
+* specified with a call to T0_ADJUST_INIT.
+
+* based upon code from TDEST_WORLD
+
+* The conversion process is simply based on the fact that each time axis is
+* a slope (units) and an intercept (T0)
+* Let
+*	A - absolute time (seconds since BC)
+*	U - units (slope)
+*	T - axis-relative time
+* so that
+*	AT0src - is the absolute time of T0 on the source axis
+*	AT0dst - equivalently on the destination axis
+* Then
+*	Tsrc = (A-AT0src) / Usrc
+*	Tdst = (A-AT0dst) / Udst
+* from which
+*	Tdst = Tsrc*(Usrc/Udst) + (AT0src-AT0dst)/Udst 
+* or in terms of the COMMON variables
+*	Tdst = Tscr*tcnvrt_slope + tcnvrt_intercept
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
 
-* V200:  7/27/89
+* V695+ *sh* 11/2015
 
-#ifdef unix
-	include 'tmap_dims.parm'
-	include 'xtm_grid.cmn_text'
-	external xgt_grid_data
 	include 'ferret.parm'
-#else
-	INCLUDE 'TMAP_FORMAT:TMAP_DIMS.PARM'
-	INCLUDE 'TMAP_FORMAT:XTM_GRID.CMN'
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-#endif
+	include 'errmsg.parm'
+	include 'xregrid.cmn'
 
 * calling argument declarations:
-	INTEGER	grid
-
-* internal variable declarations:
-	INTEGER	taxis
+	REAL T_orig
 
-	taxis = grid_line( t_dim, grid )
-
-	IF ( taxis .EQ. munknown .OR. taxis.EQ.mnormal ) THEN
-	   HOURLY_DATA = .FALSE.
-	   RETURN
+* slope/intercept transformatio of calendar time
+        IF ( tcnvrt_ok  ) THEN
+	   T0_ADJUST = T_orig * tcnvrt_slope + tcnvrt_intercept
+	ELSE
+	   T0_ADJUST = T_orig
 	ENDIF
 
-	HOURLY_DATA =
-     .		 line_regular  ( taxis )
-     .	   .AND. line_delta    ( taxis ) .EQ. 1.
-     .	   .AND. line_tunit    ( taxis ) .EQ. 3600.
-     .	   .AND. line_dim      ( taxis ) .GT. 1
-     .	   .AND. line_direction( taxis ) .EQ. 'TI'
-
 	RETURN
 	END
diff --git a/fer/ocn/hourly_data.F b/fer/utl/t0_adjust_init.F
similarity index 56%
rename from fer/ocn/hourly_data.F
rename to fer/utl/t0_adjust_init.F
index b08cd45..6b3f62b 100644
--- a/fer/ocn/hourly_data.F
+++ b/fer/utl/t0_adjust_init.F
@@ -1,4 +1,6 @@
-	LOGICAL FUNCTION HOURLY_DATA( grid )
+	SUBROUTINE T0_ADJUST_INIT ( cal_id,
+     .				    tunit_id_src, t0_src,
+     .				    tunit_id_dst, t0_dst, status )
 
 *
 *
@@ -35,44 +37,71 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* determine whether a particular grid has a regular hourly time axis
+* This routine exists to optimize performance in converting between time axes
+* Initialize COMMON in preparation for time coordinate conversion calls to
+* T0_ADJUST (see detailed docs in T0_ADJUST.F)
+
+* based upon code from routine TDEST_WORLD_INIT.F
+* in this routine, however, no syntax error checking of units and T0 is done
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
 
-* V200:  7/27/89
+* V695+ *sh* 11/15 
 
-#ifdef unix
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+	include 'xunits.cmn_text'
+	external xunits_data
 	include 'ferret.parm'
-#else
-	INCLUDE 'TMAP_FORMAT:TMAP_DIMS.PARM'
-	INCLUDE 'TMAP_FORMAT:XTM_GRID.CMN'
-	INCLUDE 'FERRET_CMN:FERRET.PARM'
-#endif
+	include 'errmsg.parm'
+	include 'xregrid.cmn'
+
+* calling arguments
+*   cal_id       (input) - calendar id for both src and dst axes (must match)
+*   tunit_id_src (input) - time unit id on source axis
+*   t0_src       (input) - time origin string on source axis
+*   tunit_id_dst (input) - time unit id on destination axis
+*   t0_dst       (input) - time origin string on destination axis
+*   status       (output) - return status
 
 * calling argument declarations:
-	INTEGER	grid
+	INTEGER cal_id, tunit_id_src, tunit_id_dst, status
+	CHARACTER*(*)	t0_src, t0_dst
 
 * internal variable declarations:
-	INTEGER	taxis
+	LOGICAL TM_DATE_OK
+	INTEGER	TM_GET_CALENDAR_ID ,
+     .          src_line, dst_line, src_cal_id, dst_cal_id
+	REAL	CAL_FACTR
+	REAL*8  SECS_FROM_BC, at0src, at0dst, usrc, udst, factor
+
+* initialize
+	cnvrt_src_grid = unspecified_int4
 
-	taxis = grid_line( t_dim, grid )
+* determine the units and absolute T0 for the two axes
+	usrc = un_convert( tunit_id_src )
+	udst = un_convert( tunit_id_dst )
 
-	IF ( taxis .EQ. munknown .OR. taxis.EQ.mnormal ) THEN
-	   HOURLY_DATA = .FALSE.
-	   RETURN
-	ENDIF
+	at0src = SECS_FROM_BC( t0_src, cal_id, status )
+	IF ( status .NE. ferr_ok ) GOTO 5000
+	at0dst = SECS_FROM_BC( t0_dst, cal_id, status )
+	IF ( status .NE. ferr_ok ) GOTO 5000
 
-	HOURLY_DATA =
-     .		 line_regular  ( taxis )
-     .	   .AND. line_delta    ( taxis ) .EQ. 1.
-     .	   .AND. line_tunit    ( taxis ) .EQ. 3600.
-     .	   .AND. line_dim      ( taxis ) .GT. 1
-     .	   .AND. line_direction( taxis ) .EQ. 'TI'
+* determine the slope and intercept to be used in TDST_WORLD regridding
+	tcnvrt_slope = usrc/udst
+	tcnvrt_intercept = (at0src-at0dst) / udst
+
+* success
+	tcnvrt_ok = .TRUE.
+	RETURN
 
+* error exit
+ 5000	tcnvrt_ok = .FALSE.
 	RETURN
 	END
+
+
+
+
diff --git a/fer/utl/transfer_axis.F b/fer/utl/transfer_axis.F
index 88f6e19..87c863d 100644
--- a/fer/utl/transfer_axis.F
+++ b/fer/utl/transfer_axis.F
@@ -43,7 +43,6 @@
 * written for VAX computer under VMS operating system
 *
 * V200:  5/31/89 - extracted from TRANSFER_CONTEXT
-* $Id: transfer_axis.F 19203 2015-02-20 19:56:38Z ksmith $ 
 *       - *kob* need to now copy cx_calender as well
 * v580 *acm* 11/04 transfer cx_cal_id, the calendar ID used when  
 *                  computing world coordinates
diff --git a/fer/utl/transfer_cx_axis_to_uv.F b/fer/utl/transfer_cx_axis_to_uv.F
index 1e09e62..5fd6db6 100644
--- a/fer/utl/transfer_cx_axis_to_uv.F
+++ b/fer/utl/transfer_cx_axis_to_uv.F
@@ -39,7 +39,6 @@
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 
 * V510 *sh*
-* $Id: transfer_cx_axis_to_uv.F 14336 2012-07-10 23:31:50Z ksmith $ 
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 
 	include 'tmap_dims.parm'
diff --git a/fer/utl/transfer_uv_axis_to_uv.F b/fer/utl/transfer_uv_axis_to_uv.F
index e4aa2f2..c1dbbe2 100644
--- a/fer/utl/transfer_uv_axis_to_uv.F
+++ b/fer/utl/transfer_uv_axis_to_uv.F
@@ -39,7 +39,6 @@
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 
 * V510 *sh*
-* $Id: transfer_uv_axis_to_uv.F 14336 2012-07-10 23:31:50Z ksmith $ 
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 
 	include 'tmap_dims.parm'
diff --git a/fer/utl/tstep_to_date.F b/fer/utl/tstep_to_date.F
index 8d8b859..a5e7125 100644
--- a/fer/utl/tstep_to_date.F
+++ b/fer/utl/tstep_to_date.F
@@ -53,6 +53,7 @@
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 *       *acm* 3/12 6D Ferret: Add E and F dimensions 
 *                  A time axis may be a T axis or F axis.
+* V698  *acm* 5/16 Ticket 2405: MODE CALENDAR:auto
 
 * Arguments:
 *	grid	 - grid containing a time axis
@@ -76,9 +77,9 @@
 * Local definitions
         LOGICAL         modulo
 	CHARACTER*20	SECS_TO_DATE_OUT, buff, dms
-	INTEGER		axis, status, prec,
-     .                  TM_GET_CALENDAR_ID, cal_id
-	REAL*8		start_secs, offset_secs, this_secs
+	INTEGER		TM_GET_CALENDAR_ID, DATE_PREC, axis, status, prec, 
+     .                  cal_id
+	REAL*8		start_secs, offset_secs, this_secs, delta
 	REAL*8		SECS_FROM_BC
 
 !	REAL*8		start_secs, offset_secs, this_secs, prec_fact(6)
@@ -110,7 +111,7 @@
 	   RETURN
 	ENDIF
 #endif
-        modulo = line_modulo(axis)
+
 
 * get the calendar type
 
@@ -129,6 +130,12 @@
 * ( people don't normally view dates this way )
 !	this_secs = ( DNINT(this_secs/prec_fact(prec)) + 0.5 ) * prec_fact(prec)
 
+*** Do all this higher up for plots, as is done for listings, where date_prec is
+*** called in row_coord_fmt.
+
+* Will write only month-day in labels for monthly climatology
+        modulo = line_modulo(axis)
+
 * Convert to date
 	date = SECS_TO_DATE_OUT(this_secs, cal_id, modulo, prec)
 
diff --git a/fer/utl/update_attributes.F b/fer/utl/update_attributes.F
index aaeede4..2d54934 100644
--- a/fer/utl/update_attributes.F
+++ b/fer/utl/update_attributes.F
@@ -1,4 +1,4 @@
-      SUBROUTINE UPDATE_ATTRIBUTES (dset, uvar)
+      SUBROUTINE UPDATE_ATTRIBUTES (dset, vname, uvar, status)
 
 
 *  This software was developed by the Thermal Modeling and Analysis
@@ -38,6 +38,8 @@
 
 * V600 6/05 *acm* Attribute control.
 * V670  2/11 *acm*   Fixes for inheriting attributes.
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure.
 
 * Get the attribute information from the linked-list structure that is needed 
 * to do a plot.
@@ -60,30 +62,35 @@
 * Argument declarations
 
       INTEGER uvar, dset
+      CHARACTER*(*) vname
 
 * Local variable declarations
-      LOGICAL NC_GET_ATTRIB, coordvar, got_it, do_warn
+      LOGICAL NC_GET_ATTRIB, coordvar, got_it, do_warn, uvflag
       INTEGER TM_LENSTR1, varid, vartyp, nvdim, vdims(8),
      .        nvatts, attlen, attoutflag, status, vlen, maxlen, 
      .        all_outflag
       REAL tmp
-      CHARACTER*128 vname, buff
+      CHARACTER*128 buff
 
-      varid = cd_varid(uvar)
-      IF (dset .EQ. pdset_uvars) varid = uvar
+      vlen = TM_LENSTR1(vname)
+       CALL CD_GET_VAR_ID (dset, vname, varid, status)
+       IF (status .NE. ferr_ok) GOTO 1100
 
 * get the vital statistics for this variable
 
       CALL CD_GET_VAR_INFO(dset, varid, vname, vartyp, 
      .      nvdim, vdims, nvatts, coordvar, all_outflag, status)
-      vlen = TM_LENSTR1(vname)
+      IF (status .NE. ferr_ok) GOTO 1200
+      CALL CD_GET_VAR_UVFLAG (dset, varid, uvflag, status)
+      IF (status .NE. ferr_ok) GOTO 1200
 
       do_warn = .TRUE.
 
 * Get long_name, units, missing_value
 
       IF (dset .EQ. unspecified_int4) RETURN
-      IF (dset .GE. 1) THEN
+      IF (dset .GT. pdset_irrelevant) THEN
+
          maxlen = 128
          got_it = NC_GET_ATTRIB( dset, varid, 'long_name',
      .                     .NOT.do_warn, vname(:vlen), maxlen, attlen, 
@@ -104,9 +111,10 @@
      .                do_warn, vname(:vlen), maxlen, attlen,
      .                attoutflag, buff, ds_bad_flag(uvar) )
 
+       ENDIF
 * For user variable update these in uvar_title, etc.
 
-       ELSE IF (dset .EQ. pdset_uvars) THEN
+       IF (dset.EQ.pdset_uvars .OR. uvflag) THEN
          maxlen = 128
          got_it = NC_GET_ATTRIB( dset, varid, 'long_name',
      .                     .NOT.do_warn, vname(:vlen), maxlen, attlen, 
@@ -126,5 +134,9 @@
 
 * successful completion - variable attributes updated
  1000 status = ferr_ok
-      RETURN
+ 5000 RETURN
+ 1100 CALL ERRMSG
+     .       ( ferr_unknown_variable, status, vname, *5000 )
+ 1200 CALL ERRMSG
+     .       ( ferr_internal, status, 'varinfo: '//vname(:vlen), *5000 )
       END
diff --git a/fer/xeq/xeq_annotate.F b/fer/xeq/xeq_annotate.F
index 0e3d2f9..a2049e0 100644
--- a/fer/xeq/xeq_annotate.F
+++ b/fer/xeq/xeq_annotate.F
@@ -41,6 +41,8 @@
 * NOAA/PMEL, Seattle, WA - TMAP/SDIG 
 *
 * revision 0.0 - 4/6/2015
+* V697 12/15 *acm* Fix ticket 2350: handling annotation label text 
+*                  that's numeric
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -56,7 +58,7 @@
 * local variable declarations:
 	LOGICAL user, norm, nouser
 	INTEGER	TM_LENSTR1,
-     .		rlen, item, nchar, status
+     .		rlen, nchar, status
 	REAL	xloc, yloc, halign, angle, size
 
 	CHARACTER TM_FMT*16, buff*20, labtxt*2048
@@ -65,10 +67,14 @@
 
 	size = 0.2
 
-* Get the text
-	IF (num_items .NE. 1) GOTO 5500
-	item = 1
-	labtxt = cmnd_buff(item_start(item):item_end(item))
+* Get the text, treating the text as the label string (even if say, 
+* it's a comma-separated list).
+
+	IF (num_items .LT. 1) THEN
+	   GOTO 5500
+	ELSE 
+	   labtxt = cmnd_buff(item_start(1):item_end(num_items))
+	ENDIF
 
 * Get settings
 
@@ -102,7 +108,7 @@
 	ppl_buff = ppl_buff(:rlen)//','//TM_FMT(size, 12, 16, nchar)
 	rlen = TM_LENSTR1(ppl_buff)
 
-	ppl_buff = ppl_buff(:rlen)//', '//labtxt
+	ppl_buff = ppl_buff(:rlen)//', "'//labtxt//'"'
 	rlen = TM_LENSTR1(ppl_buff)
 
 * ... pass a the command to PPLUS
diff --git a/fer/xeq/xeq_cancel.F b/fer/xeq/xeq_cancel.F
index ad0d242..b98f0cd 100644
--- a/fer/xeq/xeq_cancel.F
+++ b/fer/xeq/xeq_cancel.F
@@ -146,6 +146,11 @@
 * V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
 * V695 *acm* 4/15 Changes for PyFerret fonts. Add CANCEL TEXT
 * V695 *acm*  9/15 Fix #2317: length of name sent to FIND_DSET_NUMBER
+* V698 *sh*  1/16 aggregation logic moved inside of CANCEL_DATA_SET
+* V698 *acm* 1/16 change remaining dset=-1 to the parameter dset=pdset_uvars
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure.
+* V698  4/16 *acm* For ticket 2399: Apply MODE CALENDAR settings to F axes too
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -377,7 +382,10 @@
 	         ENDIF
 	      ENDIF
 
- 705	      CALL CANCEL_DATA_SET( iset, slash_all, status )
+*  ... this may also cancel parent aggregations that use this dataset
+*      and if an aggregation, hidden agg members 
+ 705	      CALL CANCEL_DATA_SET( iset, status )  
+
  710	   CONTINUE
 * ... if only one set remains then point to it
 	   iset = unspecified_int4
@@ -392,17 +400,14 @@
 	   cx_data_set( cx_last ) = iset
 
 	ELSEIF ( slash_all ) THEN
-* First cancel any ensemble sets
-	   DO 718 iset = 1, maxdsets
-	      IF ( ds_name(iset) .EQ. char_init1024) GOTO 718
-	      IF ( ds_type(iset) .EQ. 'ENS' .OR. ds_type(iset) .EQ. 'FCT') 
-     .		CALL CANCEL_DATA_SET( iset, slash_all, status )
- 718	   CONTINUE
-* Now any others. 
-	   DO 720 iset = 1, maxdsets
-	      IF ( ds_name(iset) .EQ. char_init1024) GOTO 720
-	      CALL CANCEL_DATA_SET( iset, slash_all, status )
- 720	   CONTINUE
+* all user variables are invalidated by closing the datasets
+	   CALL PURGE_ALL_UVARS
+! an earlier version of this code prioritized the canceling of aggregations
+! before other datasets.  Might be learning the hard way why this was so ...
+	   DO iset = 1, maxdsets
+	      IF ( ds_name(iset) .EQ. char_init1024) CYCLE
+	      CALL CANCEL_ONE_DATA_SET( iset, status )
+	   ENDDO
 
 	ELSE
 	   GOTO 5010
@@ -428,6 +433,8 @@
 	         DO 806 i = mode_stack_size, 2, -1
 	            mode_state(mode,i) = mode_state(mode,i-1) 
 		    mode_arg  (mode,i) = mode_arg  (mode,i-1)
+		    IF (mode .EQ. pmode_time_lab) 
+     .		      mode_state(pmode_f_lab,i-1) = mode_state(pmode_time_lab,i)
  806	         CONTINUE
 		 mode_state( mode,1 ) = .FALSE.
 * ... WAIT requires a string to communicate with PPLUS
@@ -495,6 +502,11 @@
                  ELSEIF ( mode .EQ. pmode_shrink_ylab ) THEN
 	            CALL PPLCMD ( from, line, 0, 'SHRINKY 0', 1, 1 )
 
+* ... Changes to mode calendar apply to F-direction as well as T.
+                 ELSEIF ( mode .EQ. pmode_time_lab ) THEN
+	           ax_dec_pt(f_dim) = ax_dec_pt(t_dim) 
+	           ax_fmt(f_dim) = ax_fmt(t_dim) 
+
 * ... mode pplgui - close reply pipe
                  ELSEIF ( mode .EQ. pmode_gui ) THEN
 	            alt_messages = .FALSE.
@@ -570,7 +582,7 @@
 	      IF ( status .NE. ferr_ok ) RETURN
 	      IF ( variable .EQ. munknown_var_name ) GOTO 5110
 * ... not sure ... how are LET/D vars found?
-	      IF (category .EQ. cat_user_var) dset = -1  ! signals a uvar ??
+	      IF (category .EQ. cat_user_var) dset = pdset_uvars
 	      CALL CD_GET_VAR_ID (dset, buff, varid, status)
               CALL CD_DELETE_ATTRIBUTE (dset, varid, patnam_layerz, status )
 	      CALL PURGE_ALL_UVARS
@@ -587,7 +599,7 @@
 	   CALL PURGE_ALL_UVARS
 	   DO 1110 ivar = 1, max_uvar
 	   IF (iset.EQ.unspecified_int4 .OR. iset.EQ.uvar_dset(ivar))
-     .				CALL DELETE_USER_VAR(ivar)     ! 7/97
+     .				CALL DELETE_USER_VAR(ivar, iset)     ! 7/97
  1110	   CONTINUE
 	   num_uvars_in_cmnd = cmnd_uvars_not_given  ! renders EX#n deleted 
 	ELSE
@@ -610,11 +622,21 @@
 * ... note: calling PURGE_ALL_UVARS for each individual deleted uvar is
 *		inefficient ... but cautious. (minimum labor implementation)
 	                  CALL PURGE_ALL_UVARS
-			  CALL DELETE_USER_VAR(ivar)         ! 7/97
+			  CALL DELETE_USER_VAR(ivar, iset)         ! 7/97
 	               ENDIF
 	            ENDIF
 1115	         CONTINUE
 	      ELSE
+* If /D was not given, look first in the global user-vars, then at LET/D vars
+* in the default datset.
+	         IF (iset .EQ. unspecified_int4) THEN  
+		    iset = pdset_uvars
+		    CALL PARSE_NAM_DSET( buff, cx_last, iset,
+     .			     category, variable, mod_cx, status )
+		    IF ( status.NE.ferr_ok .OR. variable.EQ.munknown_var_name) 
+     .			     iset = unspecified_int4
+		 ENDIF
+
 	         CALL PARSE_NAM_DSET( buff, cx_last, iset,
      .			     category, variable, mod_cx, status )
 	         IF ( status .NE. ferr_ok ) RETURN
@@ -626,7 +648,7 @@
      .			 category .NE. cat_user_var ) GOTO 1120
 		 ENDIF
 	         CALL PURGE_ALL_UVARS
-		 CALL DELETE_USER_VAR(variable)         ! 7/97
+		 CALL DELETE_USER_VAR(variable, iset)         ! 7/97
 	      ENDIF
  1120	   CONTINUE
 	ENDIF
@@ -916,7 +938,7 @@ c	ENDIF
 
         IF (dset .EQ. pdset_irrelevant .OR. dset .EQ. unspecified_int4)
      .        dset = cx_data_set(cx_cmnd) 
-        IF (dset .EQ. unspecified_int4) dset = -1
+        IF (dset .EQ. unspecified_int4) dset = pdset_uvars
 
 * Check that the variable exists in the dataset
 
diff --git a/fer/xeq/xeq_contour.F b/fer/xeq/xeq_contour.F
index f53aee1..d481aa9 100644
--- a/fer/xeq/xeq_contour.F
+++ b/fer/xeq/xeq_contour.F
@@ -123,6 +123,12 @@
 * V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
 * v695  *acm* 5/16 When running PyFerret do not draw axes on an overlay unless they
 *                  ask for it with /AXES or a ppl axis command
+* V697 *acm* 12/15 Fixes for bug 2327 move call of PPL_AXES_RESTORE back to end of plot routines
+* v697 *acm* 12/15 Ticket 2331, add flag changed_key to common, to restore the color key
+*                  style after a color plot and also after SHADE/SET; SHADE.
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -148,8 +154,7 @@
 	LOGICAL	TM_HAS_STRING, 
      .            no_range, overlay, transpz, no_labels, fill, usa_line,
      .            do_key, spectrum, set_up, noaxes, axes, pattern, 
-     .		  no_data, is_logh, is_logv, inc_grid, 
-     .		  changed_key
+     .		  no_data, is_logh, is_logv, inc_grid
 	INTEGER	  TM_LENSTR, TM_LENSTR1, status, slen, sp, ipen, icolor, 
      .		  ax1_blks, ax1_start, loc, sigdig,
      .		  ax2_blks, ax2_start, patt, i, nparm, num_it, 
@@ -198,6 +203,9 @@
         spectrum  = sp .GT. 0 .AND. fill
         is_shade  = .FALSE.
         use_cell  = .FALSE.
+	
+	is_logh   = .FALSE.	  ! Not valid quals
+	is_logv   = .FALSE.	  ! for contour
 
         patt     = qual_given( slash_cont_pattern  )
         pattern  = patt .GT. 0 .AND. fill
@@ -323,6 +331,28 @@
 
         CALL set_graticules(loch, locv, status)
 
+* ... /DEGMINSEC[=1 or 2] Request deg/min or deg/min/sec axis labels
+	loc = qual_given( slash_cont_dms )
+        dms = 0
+	IF ( loc .GT. 0) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      vbuf, status )
+           dms = 1
+           IF (vbuf .GT. 0) THEN
+	      dms = vbuf
+	      IF (dms .GT. 2) GOTO 5470
+	   ENDIF
+	ENDIF
+
+* ... /HALFSPACE Request deg/min or deg/min/sec axis labels
+	loc = qual_given( slash_cont_halfsp )
+	IF ( loc .GT. 0) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      vbuf, status )
+           lonlatspace = 1
+           IF (vbuf .GE. 0) lonlatspace = vbuf
+	ENDIF
+
 * set contour label details (3/00)
 * fix bug 
 	WRITE ( ppl_buff, 3100 ) lab_size, sigdig, lab_spacing
@@ -396,6 +426,7 @@ c           nlev = 1
 * ... /KEY[=continuous,horizontal,centerlabel ?
 
               loc = qual_given( slash_shad_key )
+	      changed_key = .FALSE.
 
               IF ( loc .GT. 0) THEN
 		 CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
@@ -599,7 +630,7 @@ c done in disp_set_up. If mode_nodata_lab is false then leave this off.
 
 * restore axes? (5/29/97  revised 3/2002 
 
-c        IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
+        IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
 
 * restore default key style?
         IF (changed_key ) CALL PPLCMD (from, line, 0, 'S_KEY 0', 1, 1 )
@@ -639,6 +670,9 @@ c        IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
  5460	CALL ERRMSG( ferr_syntax, status, 
      .		cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
      .		'Unrecognized argument to KEY command', *1000 )
+ 5470	CALL ERRMSG( ferr_syntax, status, 
+     .		cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
+     .		'Argument to DegMinSec qualifier must be 1 or 2', *1000 )
  5500   CALL ERRMSG( ferr_out_of_range, status,
      .          cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
      .          'Value from 0 to 100 must be given', *1000 )
diff --git a/fer/xeq/xeq_define.F b/fer/xeq/xeq_define.F
index 86a21b7..4d2c301 100644
--- a/fer/xeq/xeq_define.F
+++ b/fer/xeq/xeq_define.F
@@ -232,6 +232,26 @@
 * V695  *acm* 6/15 Change the error message when coordinates are decreasing.
 * V695  *acm* 6/16 New subcommand DEFINE ANNOTATION
 * V695 *acm*  9/15 Fix #2317: length of name sent to FIND_DSET_NUMBER
+* V695 *sh*  10/15 add DEFINE DATA/AGG/T
+*                  rename routine INIT_AGGREGATE_DSET to INIT_EF_AGGREGATE_DSET
+* V697 12/15 *acm* Fix ticket 2336: consistent application of CAN MODE UPCASE
+* V698 1/16 *sh*   Allow DEFINE DATA/AGG w/out a name -- auto-name from script
+* V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
+*                  using original upper/lowercase spelling
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure.
+*       3/16 *sh*  bug fix use GO_FILE rather than LAST_GO_FILE as AGG name
+* V698  4/16 *acm* Fix ticket 2380: use /T0 to indicate a T axis, only if 
+*                  direction is otherwise undefined.
+* V698  4/16 *acm* Allow DEFINE VAR/BAD=nan
+* V698  4/16 *acm* Fix ticket 2400: DEFINE AXIS/EDGES had bugs in testing for
+*                  regular axis, and in setting the axis start when regular.
+* V698  5/16 *acm* for ticket 1432, could write a note when axis definition is a 
+*                  supbspan modolo axis with length almost the modulo length.
+*                  (commented out for now.)
+* V698  5/16 *acm* Ticket 2416 allow all output types for DEFINE ATT.
+* V7    5/16 *acm* See ticket 2352. For LET/D variables look for info under that dataset
+
 
 	include	'tmap_errors.parm'
 #	include	"tmap_dset.parm"
@@ -296,6 +316,7 @@
      .              slash_def_aggregate,
      .              slash_def_agg_title,
      .              slash_def_agg_quiet,
+     .              slash_def_agg_t,
      .              slash_def_agg_e,
      .              slash_def_agg_f,
      .              slash_def_agg_hide,
@@ -336,6 +357,7 @@
      .              slash_def_att_quiet   = 1 + 3,
      .              slash_pyfunc_name = 1,
      .              slash_def_aggregate = 1 + 0,
+     .              slash_def_agg_t     = 1 + 4,
      .              slash_def_agg_e     = 1 + 5,
      .              slash_def_agg_f     = 1 + 6,
      .              slash_def_agg_title = 1 + 7,
@@ -348,18 +370,20 @@
 	REAL	memory( mem_blk_size, max_mem_blks )
 
 * local variable declarations:
+
 	LOGICAL	  TM_DIGIT, TM_LEGAL_NAME, TM_LINE_MATCH, TM_GRID_MATCH,
      .		  TM_FPEQ, TM_DFPEQ, TM_CHECK_BNDS, MATCH_NAME,
-     .            NC_GET_ATTRIB, TM_LENSTR, TM_LEGAL_NAME_OP, TM_HAS_STRING,
-     .            ITSA_1LINEIF, MATCH4,
+     .            NC_GET_ATTRIB, TM_LEGAL_NAME_OP, TM_HAS_STRING,
+     .            ITSA_1LINEIF, MATCH4, GO_FILE_INPUT, IS_AGG_MEMBER,
+     .            TM_ITS_SUBSPAN_MODULO,
      .            dup_name, delta_given, create, irreg, its_reg, its_edges, 
      .            its_calendar, its_modulo, has_repeated, has_bounds,
      .            new_att, new_att_modulo, got_it, orient_t, agg_quiet,
      .            letdset, its_remote, agg_hide, def_att_quiet, purge_all,
-     .            user, norm, nouser
+     .            user, norm, nouser, t_regular, use_strict, have_expr, original
 	INTEGER   REGION_NUMBER, GRID_FROM_NAME, VIEWPORT_NUMBER, STR_UPCASE,
      .		  CX_DIM_LEN, ALIAS_ID, EFCN_SCAN,
-     .		  TM_GET_LINENUM, TM_LENSTR1,
+     .		  TM_GET_LINENUM, TM_LENSTR1, 
      .		  TM_GET_GRIDNUM, TM_UNIT_ID,
      .		  ALLO_MANAGED_AXIS, ALLO_MANAGED_GRID, FIND_DSET_NUMBER,
      .            TM_GET_CALENDAR_ID, STR_SAME,
@@ -375,7 +399,7 @@
      .            prev_cal_id, j, num_indices, varid, attype_spec,
      .            attoutflag, attlen, coordvar, 
      .            dset_to_add, dir, type, attype, attid, ibuff, i0,  
-     .            agg_dim, ivar, item,nlab
+     .            agg_dim, nagfiles, ivar, item, nlab, ierr, nlen, llen
 
 	REAL	  rbuff, bad_flag, yeardays, 
      .            val, dummy, val_buf, xloc, yloc, halign, angle, size
@@ -386,14 +410,15 @@
      .		  bc_to_t0, start, new_ww, delta, end, secs2start,
      .            micro_adj, axwwlen, rmod_len, secsperyear, small, 
      .            new_att_modulo_len, madj
-	CHARACTER TM_FMT*16, 
+	CHARACTER TM_FMT*16, TM_CLEAN_FILENAME*512,
      .            reg_name*24, buff1*128, buff2*512, buff3*512, 
      .            buffsym*120, cal_name*32, buff*512,
      .            basic_orients(nferdims)*2, err_string*2048, replmsg*24,
      .		  mon_names(12)*3, varname*512, attname*128, t2*2,
      .            new_att_units*128, new_att_calendar*128,
      .            new_att_t0*128, dcode*2, axdir*1, t0string*128, 
-     .            ustring*128, reserved_flow_name(3)*4
+     .            ustring*128, reserved_flow_name(3)*4, is_nan*3,
+     .            buff4*16, buff5*16
 
         CHARACTER*1 tab
 #ifdef NO_INTRINSIC_IN_PARAMETER
@@ -664,9 +689,22 @@
 
 * bad flag given ?
 	iqual = qual_given( slash_let_bad )
+
+* acm 4/16 - allow /bad=NaN
 	IF ( iqual .GT. 0 ) THEN
-	   CALL EQUAL_VAL( cmnd_buff(qual_start(iqual):qual_end(iqual)),
+
+           CALL EQUAL_STRING (cmnd_buff(qual_start(iqual):qual_end(iqual)),
+     .                         is_nan, status)
+           IF ( status .NE. ferr_ok ) RETURN     ! *sh* 1/14 added status check
+           IF (is_nan .EQ. ' ') GOTO 5400
+           IF (TM_HAS_STRING(is_nan, 'NaN')) THEN
+              CALL SET_NAN(bad_flag)
+           ELSE
+              CALL EQUAL_VAL(  cmnd_buff(qual_start(iqual):qual_end(iqual)),
      .                     bad_flag, status )
+              IF ( status .NE. ferr_ok ) RETURN
+           ENDIF
+
 	   IF ( status .NE. ferr_ok ) RETURN
 	ELSE
 	   bad_flag = bad_val4
@@ -693,22 +731,29 @@
 
 * cannot use [d= in the remote var-- the expression is evaluated on the
 * remote server; same dsets not open there.
-	IF (its_remote.AND. TM_HAS_STRING(cmnd_buff(pos:len_cmnd), 'd=') ) GOTO 5490
+	IF (its_remote.AND. TM_HAS_STRING(cmnd_buff(pos:len_cmnd), 'd=') )
+     .                                                         GOTO 5490
 
 	CALL ALG_ID( cmnd_buff(pos:len_cmnd), natom, at_start, at_end,
      .		     at_type, at_id, status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
 * if this definition replaces a variable of the same name in this data set
-* then purge cached calculations (8/95)
 	IF ( dset .GT. pdset_irrelevant ) THEN
 	   CALL FIND_VAR_NAME ( dset, buff1, cat, var )
+* ... purge cached calculations (8/95)
 	   IF ( ( (cat .EQ. cat_file_var) .OR.
      .            (cat .EQ. cat_pystat_var) ) .AND.
      .          (var .NE. munknown_var_name) ) CALL PURGE_ALL_UVARS
+* ... purge any aggregations that utilize this dataset as a member
+*     Note: this is a little stricter than need be, as there is a
+*     chance that the specific variable may not be a member of the agg, even
+*     though the dataset is.  But this will be a rare situation ...
+*     ... arguments i and got_it are ignored
+           IF (IS_AGG_MEMBER(dset, 1, i, got_it)) CALL PURGE_DSET(dset)
 	ENDIF
 
-* if this is a global forground definition that replaces any variable
+* if this is a global foreground definition that replaces any variable
 * then purge cached calculations (8/95)
 	IF ( dset .EQ. unspecified_int4 ) THEN
 	   CALL FIND_VAR_NAME ( dset, buff1, cat, var )
@@ -733,7 +778,7 @@
               IF ( uvar_num_items(i1) .EQ. uvar_deleted ) GOTO 410
 * ... delete only if same name in same data set
 	      IF ( uvar_dset(i1) .EQ. dset ) THEN
-	         CALL DELETE_USER_VAR(i1)
+	         CALL DELETE_USER_VAR(i1, dset)
 	      ENDIF
 * ... reuse of name  makes all stored uvars possibly invalid
 *     Also invalidates any memory-cached results that used aux of this name
@@ -755,7 +800,8 @@
         ENDIF
 
 * purge user variables and aux var dependencies if needed
-        IF (purge_all) CALL PURGE_ALL_UVARS !not done above for pdset_irrelevant
+        IF (purge_all) CALL PURGE_ALL_UVARS !not done above for pdset_irrelevan
+
 
 * now file the expression in the user-defined variable area
 	CALL INIT_UVAR ( buff1, cmnd_buff(pos:len_cmnd), buff3, buff2, dset,
@@ -872,8 +918,10 @@ c	IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
 	      orient = idim
 	   ENDIF
  510	CONTINUE
-	IF ( irreg ) THEN
+
+	IF ( irreg  .AND. orient.EQ.unspecified_int4) THEN
 * ... orientation may be inferred from clues if irregular coord syntax is used
+*     (Tkt 2380: only if direction undefined - may already know its a T or F axis)
 	    IF ( qual_given(slash_depth) .GT. 0 ) orient = z_dim
 	    IF ( qual_given(slash_T0)    .GT. 0 ) orient = t_dim
 	ENDIF
@@ -1000,7 +1048,8 @@ C /units=months  is 1/12 of the length of the year
  3540         FORMAT 
      .        ('/UNIT=MONTHS  ... using 1/12 of ',F6.2,' days')
  3544         FORMAT 
-     .        ('/UNIT=MONTHS is ambiguous ... using 1/12 of ',F8.4,' days')
+     .        ('/UNIT=MONTHS is ambiguous ... using 1/12 of '
+     .                                                  ,F8.4,' days')
 	         CALL WARN (err_string) 
 	   ELSE
 * ... Issue warning for inappropriate units like HOURS on X ax
@@ -1161,10 +1210,14 @@ C /units=months  is 1/12 of the length of the year
 	      DO 528 i1 = frst_pt+1, frst_pt+n
 	         line_mem(i1-1) = (line_mem(i1+n-1)+line_mem(i1+n)) * 0.5
  528	      CONTINUE
+
+* Fix ticket 2400: Def of start was pointing to the lower grid cell edge not the
+* lower coordinate. The loop start and stop were one off, so most axes detected
+* as irregular as the last comparison took us beyond the upper edge of the axis.
 	      its_reg = .TRUE.	! until proven otherwise
-	      start = line_mem(frst_pt+n)
-              delta = line_mem(frst_pt+n+1) - start
-              DO 530 i1 = frst_pt+n+2,frst_pt+n+n+1
+	      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))) )
@@ -1540,6 +1593,9 @@ C /units=months  is 1/12 of the length of the year
            ENDIF
 	ENDIF
 
+* Write a note when subspan modulo axis length within a grid cell of modulo length
+c	CALL TM_WARN_SUBSPAN (iline)
+
 * check for redefinitions
 	IF ( dup_name ) THEN
 	   IF ( TM_LINE_MATCH( old_line, iline ) ) THEN
@@ -1548,9 +1604,12 @@ C /units=months  is 1/12 of the length of the year
 * ... redefinition makes all past assumptions incorrect
 
 * Dont write message if DEF AX/QUIET
-            IF (qual_given( slash_def_ax_quiet ) .EQ. 0 )
-     .	      CALL SPLIT_LIST(pttmode_ops, err_lun,
-     .			replmsg//'axis '//line_name( old_line ), 0)
+	      IF (qual_given( slash_def_ax_quiet ) .EQ. 0 ) THEN
+	         original = .TRUE.
+	         CALL CHOOSE_LINE_NAME(old_line, original, buff)
+	         CALL SPLIT_LIST(pttmode_ops, err_lun,
+     .			replmsg//'axis '//buff, 0)
+	      ENDIF
 
 * ... Check the attribute structure for this axis name and change 
 *     attribute values as needed.  
@@ -1568,16 +1627,17 @@ C /units=months  is 1/12 of the length of the year
 
         ELSE
 
-* add newly defined axis to the user-variable dset of the linked-list strucure
+* Add newly defined axis to the user-variable dset of the linked-list structure.
+* Save the original upper-or lower-case spelling
            
            dset_to_add = pdset_coordvars  ! user-defined coordinate variable dataset.
 
-           err_string = buff3
+           err_string = varname
            type = NCDOUBLE
            coordvar = 1
-           varid = 0        ! Will be returned with variable ID
+           varid = 0		 ! Will be returned with variable ID
            bad_flag = bad_val4   ! coord vars dont have missing, but set to something
-           CALL CD_ADD_COORD_VAR( dset_to_add, buff3, varid,  
+           CALL CD_ADD_COORD_VAR( dset_to_add, varname, varid,  
      .         line_units(iline), type, coordvar, bad_flag, status)
            IF ( status .NE. ferr_ok ) GOTO 5600
          
@@ -1982,17 +2042,25 @@ C /units=months  is 1/12 of the length of the year
 	ENDIF
 
 *...DEF ATT/TYPE=string or float  get attribute type if present 
-*   (??? or other types on output?)
+*   5/16 allow other types on output.
 	iqual = qual_given( slash_def_att_type) 
         attype_spec = ptype_unknown
         IF ( iqual .GT. 0 ) THEN
 	   CALL EQUAL_STRING( cmnd_buff(qual_start(iqual):qual_end(iqual)),
      .			      buff2, status )  
 	   IF ( status .NE. ferr_ok ) RETURN
-	   IF ( STR_SAME (buff2, 'string') .EQ. 0) THEN
-	      attype_spec = ptype_string
-           ELSE IF (STR_SAME (buff2, 'float') .EQ. 0) THEN
-              attype_spec = ptype_float
+	   IF ( STR_SAME (buff2(1:3), 'str') .EQ. 0) THEN
+	      attype_spec =  2   ! NCCHAR
+           ELSE IF (STR_SAME (buff2(1:3), 'flo') .EQ. 0) THEN
+              attype_spec = 5   ! NCFLOAT
+           ELSE IF (STR_SAME (buff2(1:3), 'byt') .EQ. 0) THEN
+              attype_spec = 1   ! NCBYTE
+           ELSE IF (STR_SAME (buff2(1:3), 'sho') .EQ. 0) THEN
+              attype_spec = 3   ! NCSHORT
+           ELSE IF (STR_SAME (buff2(1:3), 'int') .EQ. 0) THEN
+              attype_spec = 4   ! NCLONG, or in c, NC_INT (4-byte integer)
+           ELSE IF (STR_SAME (buff2(1:3), 'dou') .EQ. 0) THEN
+              attype_spec = 6   ! NCDOUBLE
            ELSE 
               GO TO 5940
 	   ENDIF
@@ -2065,6 +2133,15 @@ C /units=months  is 1/12 of the length of the year
            IF (  var .NE. munknown_var_name .AND.
      .           cat .EQ. cat_user_var) THEN
               dset = pdset_uvars
+
+* Check whether its a LET/D variable
+              CALL CD_GET_VAR_ID (dset, varname, varid, status)
+              IF (dset.EQ.pdset_uvars .AND. status.NE.ferr_ok) THEN
+                 dset = cx_data_set(cx_cmnd)
+                 CALL CD_GET_VAR_ID (dset, varname, varid, status)
+		 IF (status.NE.ferr_ok) dset = pdset_uvars
+              ENDIF
+              
            ELSE
               dset = cx_data_set(cx_cmnd) 
            ENDIF
@@ -2078,11 +2155,13 @@ C /units=months  is 1/12 of the length of the year
 
         CALL ADD_ATTRIBUTE(  memory(1, mr_blk1(mr)), mr, 
      .         buff1, dset, attype_spec, attoutflag, new_att, status )
+        IF (status .NE. ferr_ok) GOTO 6500
 
 * Change attribute value
         IF (.NOT. new_att) THEN
            CALL EDIT_ATTRIBUTE(  memory(1, mr_blk1(mr)), mr, 
      .               buff1, dset, attype_spec, def_att_quiet, status )
+           IF (status .NE. ferr_ok) GOTO 6500
         ENDIF
 
 
@@ -2119,6 +2198,7 @@ C /units=months  is 1/12 of the length of the year
               ustring = 'units'
               CALL CD_REPLACE_ATTR (dset, varid, ustring, NCCHAR, 
      .            attlen, buff3, val_buf, status)
+              IF (status .NE. ferr_ok) GOTO 6500
            ENDIF
 
 * If the units were changed on a time axis, add "since time origin"
@@ -2151,6 +2231,7 @@ C /units=months  is 1/12 of the length of the year
    
                  CALL CD_REPLACE_ATTR (dset, varid, attname, NCCHAR, 
      .               attlen, buff3, val_buf, status)
+                 IF (status .NE. ferr_ok) GOTO 6500
            ENDIF
         ENDIF
         ENDIF ! (axis .NE. unspecified_int4)
@@ -2160,9 +2241,8 @@ C /units=months  is 1/12 of the length of the year
             IF ( (cat .EQ. cat_user_var) .OR.
      .           (cat .EQ. cat_file_var) .OR.
      .           (cat .EQ. cat_pystat_var) )
-     .           CALL UPDATE_ATTRIBUTES (dset, uvar)
-
-
+     .           CALL UPDATE_ATTRIBUTES (dset, varname, uvar, status)
+            IF (status .NE. ferr_ok) GOTO 6500
 	RETURN
 
 **************************************************************************
@@ -2209,7 +2289,7 @@ C /units=months  is 1/12 of the length of the year
 * where D1,D2 can be already-open Ferret dataset numbers, or dataset specs
 * that would allow Ferret to open the datset.
 
-1100	IF ( num_args .LT. 1 ) GOTO 5300
+1100	IF ( num_args .NE. 1 ) GOTO 5350
 
 
 * define data valid only with /AGGREGATE
@@ -2230,29 +2310,139 @@ C /units=months  is 1/12 of the length of the year
 	   IF ( status .NE. ferr_ok ) RETURN
 	ENDIF
 
+* Is there a /T ?
+	agg_dim = unspecified_int4
+	IF (qual_given( slash_def_agg_t ) .GT. 0) agg_dim = t_dim
+
 * Is there a /E ?
-	agg_dim = e_dim
-	IF (qual_given( slash_def_agg_e ) .GT. 0) agg_dim = e_dim
+	IF (qual_given( slash_def_agg_e ) .GT. 0) THEN
+           IF (agg_dim .EQ. unspecified_int4) THEN
+              agg_dim = e_dim
+           ELSE
+              GOTO 5510
+           ENDIF
+        ENDIF
 
 * Is there a /F 
-	IF (qual_given( slash_def_agg_f ) .GT. 0) agg_dim = f_dim
+	IF (qual_given( slash_def_agg_f ) .GT. 0) THEN
+           IF (agg_dim .EQ. unspecified_int4) THEN
+              agg_dim = f_dim
+           ELSE
+              GOTO 5510
+           ENDIF
+        ENDIF
 
-* define data/hide
+* default aggregation orientation
+	IF (agg_dim .EQ. unspecified_int4) agg_dim = t_dim
 
+* define data/hide
 	agg_hide = qual_given( slash_def_agg_hide ) .GT. 0
 
 * Get the name of the dataset we are creating
-	CALL NAME_EQUAL_STRING( buff1, pos, status )
-
+* get it case-sensitive, cuz other dataset names are (they are filenames)
+!!!! ******** *sh* NOTE:  CODE SHOULD BE IMPROVED HERE *******
+! The DEFINE DATA command has introduced a new and ambiguous set of parsing
+! rules, because the argument to the right of the equals may be either a list
+! of names (optionally quoted) intermixed with numbers **OR** an expression
+! that evaluates to a 1D array of text strings.  A crude heuristic is used a
+! few lines below (see have_expr) to determine which of these.  We should
+! instead write a new parser to do this task reliebly
+! ************************************************************
+	CALL NAME_EQUAL_STRING_LC( buff1, pos, status )
 	IF ( status .NE. ferr_ok )  GOTO 5000
-	IF ( pos .EQ. 0 ) GOTO 5400
-	IF ( .NOT.TM_LEGAL_NAME(buff1) ) GOTO 5410
-	IF ( .NOT.TM_LEGAL_NAME_OP(buff1) ) GOTO 5430
-        IF ( TM_LENSTR1(buff1) .GT. 128 ) GOTO 5410
+! hack: do not accept name unless it was followed by an equals sign
+! to do so results in a corrupted item list ... could be fixed if important
+        IF (pos .GT. 0) THEN
+           i = INDEX(cmnd_buff(:pos), "=")
+           IF (i.eq.0) pos = 0
+        ENDIF
+
+* was a name given?  Or implied through its absence?
+	IF ( pos .EQ. 0 ) THEN
+* ... "name =" was not supplied
+           pos = arg_start(1)    ! point to start of argument list
+           IF ( GO_FILE_INPUT() ) THEN
+*     ... take name of the GO file exectuting this command
+              buffsym = 'GO_FILE'
+              CALL GETSYM( buffsym, buff3, slen, ierr )  ! get .agg file path
+	         IF (slen.EQ.0 .OR. ierr.EQ.1) CALL ERRMSG
+     .                  ( ferr_internal, status, 'xeq_define_go_file', *5000)
+              buff1 = TM_CLEAN_FILENAME(buff3 )     ! get dname from dpath
+           ELSE
+*     ... assign a default name
+              IF (agg_dim.EQ.t_dim) THEN
+                 buff1 = 'TSERIES'
+              ELSEIF (agg_dim.EQ.e_dim) THEN
+                 buff1 = 'ENSEMBLE'
+              ELSE                   
+                 buff1 = 'FMRC'
+              ENDIF
+              buff3 = buff1    ! use dname as dpath, too
+           ENDIF
+        ELSE
+* ... "name =" was supplied
+	   IF ( .NOT.TM_LEGAL_NAME(buff1) ) GOTO 5410
+	   IF ( .NOT.TM_LEGAL_NAME_OP(buff1) ) GOTO 5430
+           IF ( TM_LENSTR1(buff1) .GT. 128 ) GOTO 5410
+! *sh* 11/15 - As-is the parsing of the "name=item1, item2, ..."
+* The routine NAME_EQUAL_STRING parses out the "name" as the first item of
+* a list and returns the start position of the next item in the list
+           item_start(1) = pos
+           buff3 = buff1    ! use dname as dpath, too
+        ENDIF
 
-	CALL INIT_AGGREGATE_DSET (buff1, buff2, dset, agg_quiet, agg_hide, 
-     .    agg_dim, status)
+* which syntax has been used?
+*      DEFINE DATA/AGG agname = data1, data2, data3, ...
+*  or
+*      DEFINE DATA/AGG agname = <string_array_expression>
+* we will determine this through heuristics
+        have_expr = INDEX(cmnd_buff(pos:),"{") .GT. 0
+     .         .OR. INDEX(cmnd_buff(pos:),"(") .GT. 0
+        IF (.NOT.have_expr) THEN
+           IF ( num_items .EQ. 1
+     .     .AND.INDEX(cmnd_buff(item_start(1):item_end(1)),'.').EQ.0
+     .     .AND.INDEX(cmnd_buff(item_start(1):item_end(1)),'/').EQ.0
+     .                                                            ) THEN 
+              CALL FIND_VAR_NAME(pdset_irrelevant,
+     .                           cmnd_buff(item_start(1):item_end(1)),
+     .                           cat, var)      
+              have_expr = var .NE. munknown_var_name
+           ENDIF
+        ENDIF
+
+        IF (have_expr ) THEN
+* ... get array of string names from a memory variable
+           CALL ALL_1_ARG
+	   num_args = 1	 ! used by GET_CMND_DATA
+	   arg_start(1) = pos ! skip over "name ="
+	   CALL GET_CMND_DATA ( memory, cx_last, ptype_string, status )
+	   IF ( status .NE. ferr_ok ) RETURN
+           IF ( num_uvars_in_cmnd .NE. 1 ) GOTO 6400
+           cx = is_cx(1)
+* ... make sure it's an line (not a point,plane,etc.) of data
+	   CALL GET_CX_DIMS( cx, ndim, dim )
+	   IF ( ndim .GT. 1 ) GOTO 6400
+	   idim = dim(1)
+	   nagfiles = CX_DIM_LEN( idim, cx )
+           mr = is_mr(1)
+        ELSE
+           nagfiles = num_items
+           mr = dummy_mr
+        ENDIF
 
+*   buff1=dname, buff2=dtitle, buff3=dpath
+        IF (agg_dim .EQ. t_dim) THEN
+           t_regular  = .FALSE.   ! ToDo /REGULART -- not yet implemented
+           use_strict = .FALSE.   ! ToDo ?? T coordinate micro-adjustment ??
+           CALL INIT_T_AGGREGATE_DSET(memory(1, mr_blk1(mr)),
+     .                  nagfiles, have_expr, buff1, buff3, buff2, 
+     .                  t_regular, use_strict, dset, status)
+        ELSE
+	   CALL INIT_EF_AGGREGATE_DSET (memory(1, mr_blk1(mr)),
+     .                  nagfiles, have_expr, buff1, buff3, buff2, dset,
+     .                  agg_quiet, agg_hide, agg_dim, status)
+
+        ENDIF
 	IF (status .NE. ferr_ok) GOTO 5000
 
 * Make this the current dataset
@@ -2310,6 +2500,8 @@ c ?? if nlab=0, use next avail slot?
      .          'cannot alias IF, ELIF, ELSE and ENDIF',*5000 )
  5300	CALL ERRMSG( ferr_invalid_command, status,
      .		'DEFINE what name?', *5000 )
+ 5350	CALL ERRMSG( ferr_syntax, status,
+     .		'Should be "NAME = dset1, dset2, dset3, ..."', *5000 )
  5305	CALL ERRMSG( ferr_TMAP_error, status, ' ', *5000 )
  5310	CALL ERRMSG( ferr_grid_definition, status,
      .		'name already in use:'//buff3(:TM_LENSTR1(buff3)), *5000 )
@@ -2467,5 +2659,12 @@ c ?? if nlab=0, use next avail slot?
 
  6300	CALL ERRMSG( ferr_invalid_command, status,
      .		'/NLAB missing or invalid value', *5000 )
+ 6400   CALL ERRMSG( ferr_grid_definition, status,
+     .	    '"DEFINE DATA/AGGREGATE agname =" requires a list of names',
+     .          *5000 )
+
+ 6500  slen = TM_LENSTR1(varname)
+       CALL ERRMSG (ferr_internal, status,
+     . 'Error defining attribute on variable '//varname(:slen), *5000)
 
 	END
diff --git a/fer/xeq/xeq_go.F b/fer/xeq/xeq_go.F
index 8b1b881..eb0bd88 100644
--- a/fer/xeq/xeq_go.F
+++ b/fer/xeq/xeq_go.F
@@ -66,6 +66,7 @@
 * V66   *kms* 5/10 LIB_GET_LUN is a subroutine, not a function
 * V687  *ACM* 3/14 for ticket 2044 write note !Enter_GO with script and arguments, only 
 *                  if SET REDIRECT is turned on.
+* V698 *sh* 3/16 - define GO_FILE always
 
 ! Note: A known "bug" of the 12/94 GO_FILE symbol is that the PLOT+ symbol
 !	GO_FILE gets defined only **after** PLOT+ has already placed a window
@@ -83,6 +84,7 @@
 	include 'xprog_state.cmn'
 	include 'xplot_state.cmn'		! 12/94
 	include 'xcontrol.cmn'
+	include 'xcontrol.equiv'
 	include 'xrisc.cmn'
 
 * internal variable declarations:
@@ -173,18 +175,20 @@
 	   CALL SPLIT_LIST(pttmode_explct, ttout_lun, risc_buff, slen)
 	ENDIF
 
-* define the PLOT+ symbol 'GO_FILE' if PLOT+ is running and the GO command
-* was given at the keyboard
-* (Note: we check for csp.eq.1 instead of 0 because csp was just pushed)
-	IF ( pplus_started .AND. csp.EQ.1 ) CALL PPLCMD
-     .		( from, line, 0, 'SET GO_FILE '//cbuff, 1, 1 )
-
-* define the symbol 'LAST_GO_FILE' no matter what...
-
 	ier = 0
 	ist = 0
 	len_string = TM_LENSTR1( cbuff )
 
+* define the symbol 'GO_FILE' -- it will always refer to the GO file currently
+* in control.  Resets when the current script ends.
+	cs_go_filename( csp) = cbuff   ! save the name to pop back later
+	CALL SETSYM ('GO_FILE '//cbuff, 8+len_string, 
+     .                 ier, ist)
+
+* define the symbol 'LAST_GO_FILE' no matter what... -- it will refer to the
+* last GO file that has been initiated.  When a GO file is initiated from
+* within another and then comes to an end, LAST_GO_FILE will no longer be the
+* one that is currently in control
 	CALL SETSYM ('LAST_GO_FILE '//cbuff, 13+len_string, 
      .                 ier, ist)
 
diff --git a/fer/xeq/xeq_plot.F b/fer/xeq/xeq_plot.F
index 483cbca..a30f2df 100644
--- a/fer/xeq/xeq_plot.F
+++ b/fer/xeq/xeq_plot.F
@@ -110,6 +110,13 @@
 * v696 *acm*  6/15 PLOT/VS/GAPLOC to define seperate line segments on
 *                  PLOT/VS/RIBBON plots (LAS ticket 1597 and others). Could implement
 *                  this later for other PLOT/VS plots.
+* v697 *acm* 12/15 Ticket 2331, add flag changed_key to common, to restore the color key
+*                  style after a color plot and also after SHADE/SET; SHADE.
+* v698 *sh* 3/16   added PLOT/ALONG=axis
+* V698  4/16 *acm* New PLOT/SKIP=
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -143,7 +150,7 @@
      .			overlay, transpz, versus,
      .			no_labels, set_up, noaxes, axes, use_line,
      .			is_logh, is_logv, nokey, no_data, no_range,
-     .			changed_key, do_key, spectrum, addgaps
+     .			do_key, spectrum, addgaps, along
 	INTEGER		TM_LENSTR1, TM_LENSTR, STR_UPCASE, STR_SAME,
      .                  symbol, icolor, ipen, icolor1, ipen1, status,
      .			loc, limit, slen, thick, step_inc,
@@ -151,7 +158,7 @@
      .			ax2_blks, ax2_start,
      .			do_dash, s1, s2, it_start(4), it_end(4),
      .			nparm, dot_sym, num_it, i, iax(4), i1,
-     .                  loch, locv, nvs
+     .                  loch, locv, nvs, skipsym
 	REAL		val, sym_size, dashstyle(4), only_val
         REAL*4          thickness, opacity
 	CHARACTER	LEFINT*4, buff*128
@@ -192,6 +199,12 @@ CC       => Set values here instead.
 	set_up	  = qual_given( slash_plot_set_up    ).GT.0
 	noaxes    = qual_given( slash_noaxes         ).GT.0
 	axes      = qual_given( slash_plot_axes      ).GT.0
+	along     = qual_given( slash_plot_along     ).GT.0
+
+	IF (along .AND. versus) THEN
+	   CALL WARN("/ALONG ignored.  Incompatible with PLOT/VS") 
+	   along = .FALSE.
+	ENDIF
 
         IF (overlay) THEN
 	   noaxes = .FALSE.
@@ -340,6 +353,17 @@ CC       => Set values here instead.
      .							symbol = qual_off
 	ENDIF
 
+* ... PLOT/SKIP=n
+
+	skipsym = 1
+	loc = qual_given( slash_plot_skip )
+	IF ( loc .GT. 0) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      val, status )	! syntax check
+	   IF ( status .NE. ferr_ok ) GOTO 5000
+	   IF ( val .NE. unspecified_val4 ) skipsym = NINT( val )
+	ENDIF 
+
 * ... /KEY[=title]  for control over labeling the multi-line legend
 
 	loc = qual_given( slash_plot_key )
@@ -353,6 +377,29 @@ CC       => Set values here instead.
 	   ENDIF
 	ENDIF
 	
+
+* ... /DEGMINSEC[=1 or 2] Request deg/min or deg/min/sec axis labels
+	loc = qual_given( slash_plot_dms )
+        dms = 0
+	IF ( loc .GT. 0) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      val, status )
+           dms = 1
+           IF (val .GT. 0) THEN
+	      dms = val
+	      IF (dms .GT. 2) GOTO 5530
+	   ENDIF
+	ENDIF
+
+* ... /SPACELAB Request deg/min or deg/min/sec axis labels
+	loc = qual_given( slash_plot_halfsp )
+	IF ( loc .GT. 0) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      val, status )
+           lonlatspace = 1
+           IF (val .GE. 0) lonlatspace = val
+	ENDIF
+
 * PLOT/RIBBON for multi-colored "ribbon" line
 	ribbon_plot = qual_given(slash_plot_ribbon) .GT. 0
 
@@ -473,17 +520,19 @@ CC       => Set values here instead.
            ENDIF
 
 
-* default key
+* default color key
 	   do_key =  (qual_given(slash_plot_key)  .GT. 0)
      .		.OR. ( (qual_given(slash_plot_key) .EQ. 0)
      .           .AND. .NOT.overlay
      .           .AND. .NOT.no_data )
-	   IF (qual_given(slash_plot_nokey) .gt. 0) do_key = .FALSE.
+	   IF (qual_given(slash_plot_nokey) .gt. 0 ) do_key = .FALSE.
            IF ( do_key ) THEN
               CALL PPLCMD ( from, line, 0, 'SHAKEY 1,1', 1, 1 )
 * ... /KEY[=continuous,horizontal,centerlabel] ?
 *     /KEY=title is a legal option, but ignored for ribbon plot.
               loc = qual_given( slash_plot_key )
+	      changed_key = .FALSE.
+
               IF ( loc .GT. 0) THEN
                  CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
      .                        buff, status )
@@ -547,7 +596,7 @@ CC       => Set values here instead.
  100       ENDDO
 
 	   IF ( buff .NE. ' ' ) THEN
-* Check for optional parentheses
+* Check for optional pareskipeses
 
               slen = TM_LENSTR1(buff)
               s1 = 1
@@ -593,11 +642,13 @@ CC       => Set values here instead.
            locv = qual_given(slash_plot_grat)
         ENDIF
 
-        CALL set_graticules(loch, locv, status)
+        CALL SET_GRATICULES(loch, locv, status)
 
-* ... PLOT/NOKEY  (default is key on)
+* ... PLOT/NOKEY (default is key on)
+* Note: "/KEY" refers to the legend on PLOT and to the color bar on SHADE
 
 	nokey = qual_given(slash_plot_nokey) .GT. 0
+     .     .OR. (qual_given(slash_plot_title) .GT. 0 .AND. .NOT.overlay)
 
 * set up the axes and title and load the data into PPLUS
 
@@ -620,6 +671,7 @@ CC       => Set values here instead.
      .				addgaps,
      .				no_range,
      .				only_val,
+     .				skipsym,
      .				is_mr,
      .				is_cx,
      .				num_uvars_in_cmnd,
@@ -665,7 +717,7 @@ c done in plot_set_up.
               ENDIF
 
               nparm = 4
-              CALL parse_comma_list ( buff, s1, s2, nparm, 
+              CALL PARSE_COMMA_LIST ( buff, s1, s2, nparm, 
      .             num_it, it_start, it_end, status)
               IF (status .EQ. ferr_ok .AND. it_start(1) .GT. it_end(1)) THEN	! /AXES=()
                  DO 500 i = 1, 4
@@ -715,7 +767,7 @@ c done in plot_set_up.
         CALL SET_OVERRIDE_OPACITY(opacity)
 
 * restore axes? (5/29/97  revised 3/2002
-c        IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
+        IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
 
 * restore default color key style?
         IF (changed_key ) CALL PPLCMD (from, line, 0, 'S_KEY 0', 1, 1 )
@@ -751,7 +803,10 @@ c        IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
 
 
 * release the memory used for axis buffers
- 1000	CALL FREE_MEMORY( ax2_start, ax2_blks )
+! PLOT/ALONG does a hack to num_uvars_in_cmnd that can lead to a problem
+! in GET_PROT_CMND_DATA if the same argument string is re-used in the next cmnd
+ 1000	IF (along) num_uvars_in_cmnd = 1
+	CALL FREE_MEMORY( ax2_start, ax2_blks )
  	CALL FREE_MEMORY( ax1_start, ax2_blks )
 	CALL UNPROTECT_CMND_DATA			! 1/94
  5100	RETURN
@@ -820,4 +875,9 @@ c        IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
  5520	CALL ERRMSG( ferr_syntax, status, 
      .		cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
      .		'Unrecognized argument to KEY command', *1000 )
+
+ 5530	CALL ERRMSG( ferr_syntax, status, 
+     .		cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
+     .		'Argument to DegMinSec qualifier must be 1 or 2', *1000 )
+
 	END
diff --git a/fer/xeq/xeq_polygon.F b/fer/xeq/xeq_polygon.F
index 0fecfd2..d06682b 100644
--- a/fer/xeq/xeq_polygon.F
+++ b/fer/xeq/xeq_polygon.F
@@ -75,6 +75,9 @@
 * V695  *acm*  5/15 Ticket 2279: PyFerret don't redraw lines
 *                   Do not draw axes on an overlay unless they
 *                   ask for it with /AXES or a ppl axis command
+* V697 *acm* 12/15 Fixes for bug 1237 move call of PPL_AXES_RESTORE back to end of plot routines
+* v697 *acm* 12/15 Ticket 2331, add flag changed_key to common, to restore the color key
+*                  style after a color plot and also after SHADE/SET; SHADE.
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -108,9 +111,8 @@
 	LOGICAL     TM_HAS_STRING, no_range, do_key, spectrum, pattern,
      .			use_line, overlay, transpz, no_labels, set_up, 
      .			noaxes, axes, line_it, fill_it, is_logh, is_logv, 
-     .			no_data, is_modx, do_mod_minus, do_mod_plus, 
-     .			changed_key
-	INTEGER     sp, patt, TM_LENSTR1, TM_LENSTR, STR_UPCASE
+     .			no_data, is_modx, do_mod_minus, do_mod_plus
+	INTEGER         sp, patt, TM_LENSTR1, TM_LENSTR, STR_UPCASE
 	INTEGER		symbol, icolor, ipen, status,
      .			loc, limit, slen, coord_ax,
      .			ax1_blks, ax1_start,
@@ -300,12 +302,13 @@ CC       => Set values here instead.
 * ... /KEY[=continuous,horizontal,centerlabel ?
 	      
 	      loc = qual_given(slash_polygon_key )
+	      changed_key = .FALSE.
+
               IF ( loc .GT. 0) THEN
 		 CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
      .                        buff, status )
                  IF ( status .NE. ferr_ok ) GOTO 5000
 		 IF (TM_LENSTR(buff) .GT. 0) THEN
-	         changed_key = .FALSE.
 	         IF ( TM_HAS_STRING(buff, 'CON') ) THEN
                     changed_key = .TRUE.
                     CALL PPLCMD (from, line, 0, 'S_KEY 1', 1, 1 )
@@ -519,7 +522,7 @@ C Reset pplus lines
         CALL SET_OVERRIDE_OPACITY(opacity)
 
 * restore axes? (5/29/97) revised 3/02
-c	IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
+	IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
 
 * restore default (non-continuous) key style?
         IF (continuous_key ) CALL PPLCMD (from, line, 0, 'S_KEY 0', 1, 1 )
diff --git a/fer/xeq/xeq_pplus.F b/fer/xeq/xeq_pplus.F
index d13340c..00433ca 100644
--- a/fer/xeq/xeq_pplus.F
+++ b/fer/xeq/xeq_pplus.F
@@ -183,11 +183,25 @@
 	i = STR_UPCASE( vbuff, cmnd_buff(arg_start(1):arg_end(1)))
 	IF (( INDEX(vbuff,'SHADE')   .GT. 0 ) .OR.
      .      ( INDEX(vbuff,'CONTOUR') .GT. 0 ) .OR.
-     .      ( INDEX(vbuff,'FILL')    .GT. 0 ).OR.
-     .      ( INDEX(vbuff,'WIRE')    .GT. 0 )    ) THEN
+     .      ( INDEX(vbuff,'FILL')    .GT. 0 ) .OR.
+     .      ( INDEX(vbuff,'WIRE')    .GT. 0 )    ) THEN 
 	   CALL DECREMENT_PLOT_GRID  ! see ticket 883
 	ENDIF
 
+	IF (( INDEX(vbuff,'SHADE')   .GT. 0 ) .OR.
+     .      ( INDEX(vbuff,'CONTOUR') .GT. 0 ) .OR.
+     .      ( INDEX(vbuff,'FILL')    .GT. 0 ) .OR.
+     .      ( INDEX(vbuff,'PLOT')    .GT. 0 ) .OR.
+     .      ( INDEX(vbuff,'POLY')    .GT. 0 ) .OR.
+     .      ( INDEX(vbuff,'WIRE')    .GT. 0 )    ) THEN 
+	   IF (iaxset .EQ. 1) THEN   ! If /AXES was used on prev. plot call, reset defaults
+	      CALL PPL_AXES_RESTORE
+	      CALL PPLCMD ( from, line, 0, 'AXSET,1,1,1,1', 1, 1 )
+	      CALL PPLCMD ( from, line, 0, 'AXLABP -1,-1', 1, 1)
+	      iaxset = 0
+	   ENDIF
+	ENDIF
+
 * check to see if ylen or yorg has been changed
 * if so, parameters saved prior to distorting yaxis are invalidated
         IF ( ylen .NE. temp_ylen ) ppl_saved_yaxlen = ylen
diff --git a/fer/xeq/xeq_set.F b/fer/xeq/xeq_set.F
index 705bdf1..2455b74 100644
--- a/fer/xeq/xeq_set.F
+++ b/fer/xeq/xeq_set.F
@@ -187,6 +187,13 @@
 * V694 11/14 *acm* Ticket 2217: permuted ASCII reading in 6D (fix to an error message)
 * V694 *acm*  2/15 ticket 2050: preserve case on var names for SET ATT/LIKE=var1 var2
 * V6.95 *acm* 3/15 Changes for PyFerret fonts. New SET TEXT/
+* V698+ *sh*  11/15 to support TSERIES
+*	      ok_re_use_existing into TM_INIT_DSET call
+*	      SET DATA tseries_cmnds.agg gets passed to the GO command (a hack)
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure.
+* V698  4/16 *acm* For ticket 2399: Apply MODE CALENDAR settings to F axes too
+* V7    5/16 *acm* See ticket 2352. For LET/D variables look for info under that dataset
 
 	include 'tmap_dims.parm'
 	include 'tmap_errors.parm'
@@ -247,8 +254,7 @@
      .                  offset, attid, attype, attoutflag, attlen, i1, 
      .                  dset, istat, cache_size, cache_nelems, 
      .                  cache_preemption, numpts, redir_file_lun, 
-     .                  iline, iset, s1, s2, nparm, num_it,
-     .                  it_start(3), it_end(3), igrp
+     .                  iline, iset, n, igrp
         REAL*8          TM_WW_AXLEN, axwwlen, new_att_modulo_len
         REAL*8          delta, dlo, dhi, firstval, lastval
 	REAL		val_buf, cache_size_mb, v1
@@ -273,6 +279,8 @@
 * local parameter declarations:
 	INTEGER		slash_set_last
 	PARAMETER     ( slash_set_last = 1 )
+	LOGICAL		ok_re_use_existing
+	PARAMETER     ( ok_re_use_existing = .TRUE.)
 
 * functions
 	LOGICAL is_secure
@@ -431,6 +439,24 @@ c *kob* 4/97
            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
+*   ... make sure that only a single .agg file is specified
+           n = 0  ! number of arguments with .agg extension
+	   DO item = 1, num_items
+	      IF ((item_end(item)-item_start(item)) .GT. 3) THEN
+	         IF (cmnd_buff(item_end(item)-3:item_end(item))
+     .			.EQ. '.agg')  n = n + 1
+	      ENDIF
+	   ENDDO
+	ENDIF
+	IF (n .GT. 0) THEN		! at least 1 ".agg" file was given
+	   IF (n.GT.1 .OR. num_items.GT.1) GOTO 5130
+	   CALL XEQ_GO
+	   RETURN
+	ENDIF
+
 * initialize an EZ data set
 * ... EZ may be implicit in /FORMAT="unformatted" or "(f77 format)"
         loc = qual_given(slash_set_data_form )
@@ -457,9 +483,7 @@ c *kob* 4/97
      .				 dset_num, status )
 	      IF ( status .NE. ferr_ok ) RETURN
 * ... dummy calls to make EZ sets act like other sets
-	      CALL GET_DSET_PARMS( dset_num, status )
 	      CALL GET_AXIS_SPEED( dset_num )
-	      CALL MAKE_CVAR_GRIDS( dset_num, status )
  710	     CONTINUE
 	   ENDIF
 * ... make this data set current
@@ -546,6 +570,7 @@ c *kob* 4/97
 
 * initialize a TMAP-supported data set
  	   CALL TM_INIT_DSET( cmnd_buff( item_start(item):item_end(item) ),
+     .			      ok_re_use_existing,
      .			      perm, dset_num, tregular, use_strict, tmap_status )
 	   IF ( tmap_status .EQ. merr_no_action ) THEN
 	      GOTO 745					! already init'ed
@@ -553,20 +578,12 @@ c *kob* 4/97
 	      GOTO 5090					! error in .DES file
 	   ENDIF
 
-* interpret special parameters in the descriptor
-	   CALL GET_DSET_PARMS( dset_num, status )
-	   IF ( status .NE. ferr_ok ) GOTO 790
-
 * determine relative access speeds along each axis
 	   CALL GET_AXIS_SPEED( dset_num )
 
 * check for negative time step values (warning, only)
 ! 3/00	   CALL CHECK_NEG_TAXIS( dset_num )
 
-* build completed ( with time axis ) grids for computable variables
-	   CALL MAKE_CVAR_GRIDS( dset_num, status )
-	   IF ( status .NE. ferr_ok ) GOTO 790
-
 * make this data set current
  745	   cx_data_set( cx_last )	=  dset_num
 
@@ -633,12 +650,17 @@ c *kob* 4/97
 	         DO 804 i = 2, mode_stack_size
 	            mode_state(mode,i-1) = mode_state(mode,i) 
 		    mode_arg  (mode,i-1) = mode_arg  (mode,i)
+		    IF (mode .EQ. pmode_time_lab) 
+     .		      mode_state(pmode_f_lab,i-1) = mode_state(pmode_time_lab,i)
  804	         CONTINUE
+
 	      ELSE
 * ... push the mode stack adding on a TRUE (because it is SET)
 	         DO 806 i = mode_stack_size, 2, -1
 	            mode_state(mode,i) = mode_state(mode,i-1) 
 		    mode_arg  (mode,i) = mode_arg  (mode,i-1)
+		    IF (mode .EQ. pmode_time_lab) 
+     .		      mode_state(pmode_f_lab,i-1) = mode_state(pmode_time_lab,i)
  806	         CONTINUE
 	         mode_state( mode, 1 ) = .TRUE.
 	         IF ( iarg .NE. unspecified_int4 ) 
@@ -723,6 +745,11 @@ c *kob* 4/97
               ELSEIF ( mode .EQ. pmode_shrink_ylab ) THEN
 	         CALL PPLCMD ( from, line, 0, 'SHRINKY 1', 1, 1 )
 
+* ... Changes to mode calendar apply to F-direction as well as T.
+              ELSEIF ( mode .EQ. pmode_time_lab ) THEN
+	         ax_dec_pt(f_dim) = ax_dec_pt(t_dim)  
+	         ax_fmt(f_dim) = ax_fmt(t_dim) 
+
 	      ENDIF
 	      GOTO 820
 	   ENDIF
@@ -1527,6 +1554,10 @@ c *kob* 4/97
            IF (  ivar .NE. munknown_var_name .AND.
      .           cat .EQ. cat_user_var) THEN
               dset_num = pdset_uvars
+
+* It may be a let/d variable
+              CALL CD_GET_VAR_ID (dset_num, varname, varid, status)
+              IF (status.NE.ferr_ok) dset_num = unspecified_int4
            ENDIF
     
            IF (dset_num .EQ. pdset_irrelevant .OR. 
@@ -1671,6 +1702,7 @@ c *kob* 4/97
                   ustring = 'units'
                   CALL CD_REPLACE_ATTR (dset_num, varid, ustring, 
      .               NCCHAR, attlen, buff3, val_buf, status)
+                  IF (status .NE. ferr_ok) GOTO 5000
                ENDIF
 
 * If the units were changed on a time axis, add "since time origin"
@@ -1703,6 +1735,7 @@ c *kob* 4/97
    
                     CALL CD_REPLACE_ATTR (dset_num, varid, attname, 
      .                  NCCHAR, attlen, buff3, val_buf, status)
+                    IF (status .NE. ferr_ok) GOTO 5000
                   ENDIF
                ENDIF
             ENDIF ! (axis .NE. unspecified_int4)
@@ -1712,7 +1745,8 @@ c *kob* 4/97
             IF ( (cat .EQ. cat_user_var) .OR.
      .           (cat .EQ. cat_file_var) .OR.
      .           (cat .EQ. cat_pystat_var) )
-     .           CALL UPDATE_ATTRIBUTES (dset_num, uvar)
+     .           CALL UPDATE_ATTRIBUTES (dset_num, varname, uvar, status)
+            IF (status .NE. ferr_ok) GOTO 5940
 
         ENDIF
 	RETURN
@@ -2008,6 +2042,9 @@ c *kob* 4/97
      .			cmnd_buff( item_start(item):item_end(item) ), *5000 )
  5120	CALL ERRMSG( ferr_unknown_grid, status, 
      .			'nothing saved from past commands', *5000 )
+ 5130	CALL ERRMSG( ferr_syntax, status,
+     .		     'Only a single .agg file can be opened in a command'
+     .		     //pCR//cmnd_buff(:len_cmnd), *5000 )
  5200	CALL ERRMSG( ferr_syntax, status,
      .		     'To set CACHE CHUNK size use SET CCACHE/SIZE=megabytes'
      .		     //pCR//cmnd_buff(:len_cmnd), *5000 )
@@ -2113,21 +2150,21 @@ c *kob* 4/97
      .		'SET what name.attribute?', *5000 )
  5910 slen = TM_LENSTR(buff1)
       CALL ERRMSG( ferr_invalid_command, status,
-     .   'variable, axis, or attribute does not exist'//
+     .   'variable, axis, or attribute does not exist '//
      .    buff1(:slen), *5000 )
  5920 slen = TM_LENSTR(buff1)
       CALL ERRMSG( ferr_invalid_command, status,
-     .   'attribute name missing. SET ATT varname.attname'//
+     .   'attribute name missing. SET ATT varname.attname '//
      .    buff1(:slen), *5000 )
  5930 slen = TM_LENSTR(buff1)
       CALL ERRMSG( ferr_invalid_command, status,
      .   'SET ATT/OUT=[all or none] varname should NOT '//
      .   'include attribute. '//
      .    buff1(:slen), *5000 )
- 5940 slen = TM_LENSTR(buff1)
+ 5940 slen = TM_LENSTR(varname)
       CALL ERRMSG( ferr_invalid_command, status,
-     .   'error editing attribute'//
-     .    buff1(:slen), *5000 )
+     .   'error editing attribute for'//
+     .    varname(:slen), *5000 )
  5950 slen = TM_LENSTR(buff1)
       CALL ERRMSG( ferr_invalid_command, status,
      .   'cannot set T0 unless Units are also set'//
diff --git a/fer/xeq/xeq_shade.F b/fer/xeq/xeq_shade.F
index f6d7691..6dbaae5 100644
--- a/fer/xeq/xeq_shade.F
+++ b/fer/xeq/xeq_shade.F
@@ -108,6 +108,12 @@
 * V695  *acm*  5/15 Ticket 2279: PyFerret don't redraw lines
 *                   Do not draw axes on an overlay unless they
 *                   ask for it with /AXES or a ppl axis command
+* V697 *acm* 12/15 Fixes for bug 2327 move call of PPL_AXES_RESTORE back to end of plot routines
+* v697 *acm* 12/15 Ticket 2331, add flag changed_key to common, to restore the color key
+*                  style after a color plot and also after SHADE/SET; SHADE.
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -132,15 +138,14 @@
 	LOGICAL	  TM_HAS_STRING, 
      .            no_range, overlay, transpz, no_labels, do_key,
      .            spectrum, set_up, noaxes, axes, pattern, no_data,
-     .		  is_logh, is_logv, is_shade, use_cell, inc_grid, 
-     .		  changed_key
+     .		  is_logh, is_logv, is_shade, use_cell, inc_grid
 
 	INTEGER	  TM_LENSTR1, TM_LENSTR, STR_UPCASE, status, slen, sp, patt,
      .		  ax1_blks, ax1_start,
      .		  ax2_blks, ax2_start, i, nparm, num_it, 
      .		  loc, s1, s2, it_start(4), it_end(4), iax(4),
      .            density, i1, loch, locv, grid, mvx
-	REAL	  only_val, aspect, vbuf
+	REAL	  only_val, aspect, val, vbuf
         REAL*4    opacity
 	PARAMETER ( aspect = 0.0)			!kob 12/96
 
@@ -172,8 +177,8 @@
 	   axes = .FALSE.
 	ENDIF
 
-	is_logh   = .FALSE.
-	is_logv   = .FALSE.
+	is_logh   = .FALSE.	  ! Not valid quals
+	is_logv   = .FALSE.	  ! for shade
         spectrum  = sp .GT. 0 
         patt      = qual_given( slash_shad_pattern   )
         pattern   = patt .GT. 0
@@ -222,6 +227,27 @@
            CALL SET_OVERRIDE_OPACITY(opacity)
         ENDIF
 
+* ... /DEGMINSEC[=1 or 2] Request deg/min or deg/min/sec axis labels
+	loc = qual_given( slash_shad_dms )
+        dms = 0
+	IF ( loc .GT. 0) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      val, status )
+           dms = 1
+           IF (val .GT. 0) THEN
+	      dms = val
+	      IF (dms .GT. 2) GOTO 5470
+	   ENDIF
+	ENDIF
+
+* ... /HALFSPACE Request deg/min or deg/min/sec axis labels
+	loc = qual_given( slash_shad_halfsp )
+	IF ( loc .GT. 0) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .			      val, status )
+           lonlatspace = 1
+           IF (val .GE. 0) lonlatspace = val
+	ENDIF
 
 * set up the axes and title and load the data into PPLUS
 	inc_grid = set_up
@@ -285,6 +311,7 @@ c              nlev = 1
 * ... /KEY[=continuous,horizontal,centerlabel ?
 
               loc = qual_given( slash_shad_key )
+	      changed_key = .FALSE.
 
               IF ( loc .GT. 0) THEN
 		 CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
@@ -471,7 +498,7 @@ c done in disp_set_up. If mode_nodata_lab is false then leave this off.
 
 * restore axes? (5/29/97  revised 3/2002
 
-c        IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
+        IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
 
 * restore default key style?
         IF (changed_key ) CALL PPLCMD (from, line, 0, 'S_KEY 0', 1, 1 )
@@ -509,6 +536,9 @@ c        IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
  5460	CALL ERRMSG( ferr_syntax, status, 
      .		cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
      .		'Unrecognized argument to KEY command', *1000 )
+ 5470	CALL ERRMSG( ferr_syntax, status, 
+     .		cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
+     .		'Argument to DegMinSec qualifier must be 1 or 2', *1000 )
  5500   CALL ERRMSG( ferr_out_of_range, status,
      .          cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
      .          'Value from 0 to 100 must be given', *1000 )
diff --git a/fer/xeq/xeq_show.F b/fer/xeq/xeq_show.F
index c9ce966..f89459a 100644
--- a/fer/xeq/xeq_show.F
+++ b/fer/xeq/xeq_show.F
@@ -192,6 +192,19 @@
 * V6.95 *acm* 3/15 Changes for PyFerret fonts. New SHOW TEXT
 * V6796 11/15 *acm* Ticket 2322: report dataset name or number in error msg, 
 *                   on SHOW DATA when datset not open
+* V697  12/15 *acm* Changes to add details on SHOW GRID uvar to indicate 
+*                   compressed or subset of axes
+* V697  12/15 *acm* Fix call to routine SHOW_GRID
+* V698 *sh* 1/16 Removed "Ferret-defined" annotation
+* V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
+*                  added to that dataset in the attribute structure.
+*           2/16 replaced char_init with char_init16 (untested) 
+*                (this is the *only* place in all the code using char_init)
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
+*                  variables, pre-defined axes and grids, cat_calc_var.
+* V698  3/16 *acm* Changes for ticket 2078: improved SHOW COMMANDS
+* V698  4/16 *acm* For ticket 2399: Apply MODE CALENDAR settings to F axes too
+* V7    5/16 *acm* See ticket 2352. For LET/D variables look for info under that dataset
 
         IMPLICIT NONE
 
@@ -278,10 +291,10 @@
      .		nothing, sdetail, only_1, done_1, sfull, svars, sfile, 
      .		sbrief, first, sxml, clobber, append, firstxml, got_it, 
      .		coordvar, sattr, do_err, sho_out, sh_att_dset,
-     .		lineok, sho_tree
+     .		lineok, sho_tree, uvgrid, showsub, sub_matched
 	INTEGER TM_LENSTR1, TM_LENSTR, UVAR_NUMBER, STR_UPCASE,
      .		REGION_NUMBER, GRID_FROM_NAME, FIND_DSET_NUMBER,
-     .		EFCN_MATCH_TEMPLATE, TM_GET_LINENUM, STR_SAME,
+     .		EFCN_MATCH_TEMPLATE, TM_GET_LINENUM, STR_SAME, TM_GET_GRIDNUM,
      .		category, mods_cx, v1_blk1, v1_nblks, grid, cx,
      .		status, iqual, mode, iset, i, icmnd, isub, n,
      .		len, len0, iuvar, ivar, dset, line, ivp, i1, i2,
@@ -294,7 +307,7 @@
      .          cache_size, cache_nelems, cache_preemption,
      .          sho_file, idim, ndims, nvars, ngatts, recdim, npts,
      .          vartype, outflag, num_clim_1, num_clim_n,
-     .          base_cx, base_isp, grid_blocks
+     .          base_cx, base_isp, grid_blocks, lensub, len_msubs
         INTEGER saved_num_indices, saved_index_list(max_uvar),
      .                             arr_buff(max_uvar)
 	REAL	xtemp, ytemp, attvals(100), cache_mb, cache_n, cache_p, rsize,
@@ -303,8 +316,8 @@
      .		default*10, show_str*2048, arg*128, name*128, argsym*120
 	CHARACTER	varatt*641, varname*512, attname*128,
      .			efname*40, upname*40, aname*128, outstring*2048,
-     .                  dname*128, actstr*1, aastr*3, qualstr*6, 
-     .                  dispstr*3
+     .                  actstr*1, aastr*3, qualstr*6, dispstr*3,
+     .                  dname*128, sub4*4
 
 * 10/01 *kob* had to change decl of axesOrCorner for picky f95
         CHARACTER*6 axesOrCorner(2)
@@ -720,6 +733,8 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
 	   ENDIF
 	   IF ( mode .EQ. pmode_time_lab ) THEN
 	      show_str(36:) = date_labels( ABS(ax_dec_pt(t_dim)) )
+	   ELSEIF ( mode .EQ. pmode_f_lab ) THEN
+	      show_str(36:) = date_labels( ABS(ax_dec_pt(f_dim)) )
 	   ELSEIF ( mode .EQ. pmode_verify ) THEN
 	      show_str(36:) = verify_modes(mode_arg(mode,1))
 	   ELSEIF ( mode .EQ. pmode_journal ) THEN
@@ -827,14 +842,21 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
                     GOTO 5100    ! unknown variable
                  ENDIF
 * get the variable ID in the linked list  (user vars stored under dset=pdset_uvars?)
-	         IF (cat .EQ. cat_user_var) THEN
+                 IF (cat .EQ. cat_user_var) THEN 
                     rqst_dset = pdset_uvars  
+
+* See if it's a LET/D variable, info stored with its dataset not pdset_uvars
+                    CALL CD_GET_VAR_ID (rqst_dset, varname, varid, status)
+                    IF (rqst_dset.EQ.pdset_uvars .AND. status.NE.ferr_ok) THEN
+                       rqst_dset = dset
+                       CALL CD_GET_VAR_ID (rqst_dset, varname, varid, status)
+                    ENDIF
+                    IF (status.NE.ferr_ok) GOTO 5100
                  ELSE
                     rqst_dset = dset
+		    CALL CD_GET_VAR_ID (rqst_dset, varname, varid, status)
                  ENDIF
-* NOTE: if dset=pdset_uvars signals uvar, it would seem that we'll see a bug if
-*       the same varname is used for LET/D definitions in two datasets
-	         CALL CD_GET_VAR_ID (rqst_dset, varname, varid, status)!status?
+
                  arr_buff(i1) = varid
                  saved_index_list(i1) = rqst_dset
               ENDDO
@@ -927,7 +949,7 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
 
 	   CALL GET_MEMORY( INT(rsize), grid_blocks, v1_blk1, v1_nblks, status )
 	   IF ( status .NE. ferr_ok ) GOTO 5000
-	   CALL SHOW_DIAG_VARS( arg, memory(1,v1_blk1) )
+c	   CALL SHOW_DIAG_VARS( arg, memory(1,v1_blk1) )
 	   CALL FREE_MEMORY( v1_blk1, v1_nblks )
 	ENDIF
 
@@ -1245,8 +1267,12 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
 
 	IF ( limited_show ) RETURN
 
-* SHOW COMMAND [name]
+* SHOW COMMAND/ALL /BRIEF [name] [subcommand]
  1100	only_1 = num_args .GT. 0
+ 
+* /BRIEF or full list of subcommands and qualifiers?
+ 	sbrief  = qual_given( slash_brief ) .GT. 0 
+
 	done_1 = .FALSE.
 	IF ( .NOT.only_1 ) THEN
            show_str = TM_FMT(revision_level, 5, 12, dlen)
@@ -1260,23 +1286,49 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
 	ENDIF
 * ... loop through commands
         len_test = TM_LENSTR(cmnd_buff(arg_start(1):arg_end(1)))
+
+* ... did they give a subcommand?
+	sub_matched = .FALSE.
+	showsub = (num_args .GE. 2)
+	IF (showsub) THEN
+	   sub4 = cmnd_buff(arg_start(2):arg_end(2))
+	   IF ( INDEX(sub4,'/') .GT. 0) sub4 = sub4(:INDEX(sub4,'/')-1) 
+           lensub = TM_LENSTR(sub4)
+	ENDIF
+
 	DO 1130 icmnd = 1, total_num_commands
 	   IF ( commands(icmnd)(:4) .EQ. '****' ) GOTO 1130
+	   IF (done_1) GOTO 1130
 	   IF ( interrupted ) CALL ERRMSG
      .			( ferr_interrupt, status, ' ', *5000 )
 * ... if  only 1 command is of interest is this it ?
            len_mchars = TM_LENSTR(commands(icmnd)(:4))
 	   IF ( only_1 .AND. .NOT.MATCH4(cmnd_buff(arg_start(1):arg_end(1)),
      .		len_test,commands(icmnd),len_mchars) ) GOTO 1130
-	   done_1 = .TRUE.
+	   IF (only_1) done_1 = .TRUE.
 	   len0 = TM_LENSTR1( commands(icmnd) )
+
 * ... and for each command, its subcommands
+
 	   DO 1120 isub = subcommand_pointer(icmnd),
      .			  subcommand_pointer(icmnd)+num_subcommands(icmnd)-1
+              
 	      IF ( subcommands(isub)(:4) .EQ. '****' ) GOTO 1120
+	      IF (showsub) THEN 
+	         len_msubs = TM_LENSTR(subcommands(isub)(:4)) 
+	         IF (MATCH4(sub4,lensub, subcommands(isub),len_msubs)) THEN
+                    IF (sub_matched) GOTO 1120  
+		    sub_matched = .TRUE. ! return the first match, which is what Ferret will use
+	         ELSE
+		    GOTO 1120
+	         ENDIF
+	      ENDIF
+
 	      show_str = commands(icmnd)(:len0) // ' ' // subcommands(isub)
 	      len = TM_LENSTR1( show_str )
-* ... and for each subcommand, its qualifiers
+
+* ... and for each subcommand, its qualifiers (except on /BRIEF listing)
+              IF (sbrief) GOTO 1115
 	      DO 1110 iqual =   qualifier_pointer(isub),
      .				qualifier_pointer(isub)+num_qualifs(isub)-1
 	         IF ( qualifiers(iqual)(:4) .EQ. '****' ) GOTO 1110
@@ -1291,6 +1343,9 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
  1110	      CONTINUE
  1115	      IF ( show_str .NE. ' ' ) CALL SPLIT_LIST
      .			(pttmode_explct, show_lun, ' '//show_str, len+1)
+
+*  ... brief listing, show only the command names (if all commands)
+	   IF (sbrief .AND. .NOT.only_1) GOTO 1130
  1120	   CONTINUE
  1130	CONTINUE
 	IF ( only_1 .AND. .NOT.done_1 ) THEN
@@ -1415,15 +1470,19 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
 		    ENDIF
 	            CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
 
+* If this was a 'show grid grid_name' do not list the grid-line context information
+		    i1 = TM_GET_GRIDNUM( arg )
+		    uvgrid = (i1 .EQ. unspecified_int4 )
+
 	            risc_buff = ' '
-	            CALL SHOW_GRID( grid, mods_cx, status )
+	            CALL SHOW_GRID( grid, mods_cx, uvgrid, status )
 		    IF (status .NE. ferr_ok) GOTO 5000
 	         ENDIF
 	      ENDIF
  1350	   CONTINUE
  4210	   FORMAT ( 4X,'GRID ',A)
- 4211	   FORMAT ( 4X,'GRID ',A, '  Ferret-defined Ensemble Grid')
- 4212	   FORMAT ( 4X,'GRID ',A, '  Ferret-defined FMRC Grid')
+ 4211	   FORMAT ( 4X,'GRID ',A, '  Ensemble Aggregetion Grid')
+ 4212	   FORMAT ( 4X,'GRID ',A, '  Forecast Aggregation Grid')
 
 	ELSEIF( qual_given(slash_grid_dyn) .GT. 0 ) THEN
 	   CALL SHOW_DYN_GRIDS(mods_cx)
@@ -1471,7 +1530,8 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
 	   CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
 	   risc_buff = ' '
  4200	   FORMAT (' Last successful data access was on grid ',A)
-	   CALL SHOW_GRID( grid, mods_cx, status )
+	   uvgrid = (grid_name(grid) .NE. char_init16) ! show context for last command
+	   CALL SHOW_GRID( grid, mods_cx, uvgrid, status )
 	   IF (status .NE. ferr_ok) GOTO 5000
 	ENDIF
 
@@ -1772,7 +1832,15 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
               IF (dset .EQ. pdset_irrelevant .OR. 
      .            dset .EQ. unspecified_int4) GO TO 5072
 
+* Check for the attribute info in "dset" found above, 
+* or in the default datset indicated by cx_data_set(cx_last)
+
               CALL CD_GET_VAR_ID (dset, varname, varid, status)
+              IF (status .NE. ferr_ok) THEN
+	         iset = cx_data_set(cx_last)
+		 CALL CD_GET_VAR_ID (iset, varname, varid, status)
+		 IF (status .EQ. ferr_ok) dset = iset
+	      ENDIF
               IF (status .NE. ferr_ok .OR. dset .EQ. unspecified_int4 .OR.
      .           (varid .EQ. 0 .AND.
      .           .NOT.TM_HAS_STRING(varname, '.')) ) GOTO 5200
@@ -2131,8 +2199,8 @@ c* ... Font
      .          varname(:TM_LENSTR1(varname)), *5000 )
  5100   CALL ERRMSG( ferr_unknown_variable, status, arg, *5000)
  5150   CALL ERRMSG( ferr_unknown_qualifier, status,
-     .          'SHOW VAR/TREE= may take arguments ALL, FILE, and USER (default)',
-     .          *5000)
+     .          'SHOW VAR/TREE= may take arguments ALL, FILE, '//
+     .          'and USER (default)', *5000)
  5200	CALL ERRMSG( ferr_unknown_variable, status, varname, *5000 )
  5300   CALL ERRMSG( ferr_invalid_command, status, 'grid for '//
      .              cmnd_buff(item_start(ivar):item_end(ivar))
@@ -2152,7 +2220,7 @@ c* ... Font
      .			, *5000 )
  5920	llen = TM_LENSTR(show_str)
 	CALL ERRMSG( ferr_invalid_command, status,
-     .   'variable, axis, or attribute does not exist'//
+     .   'variable, axis, or attribute does not exist '//
      .    show_str(:llen), *5000 )
 
 
diff --git a/fer/xeq/xeq_vector.F b/fer/xeq/xeq_vector.F
index 186d94c..72a003d 100644
--- a/fer/xeq/xeq_vector.F
+++ b/fer/xeq/xeq_vector.F
@@ -111,6 +111,7 @@
 * V695  *acm*  5/15 Ticket 2279: PyFerret don't redraw lines
 *                   Do not draw axes on an overlay unless they
 *                   ask for it with /AXES or a ppl axis command
+* V697 *acm* 12/15 Fixes for bug 1237 move call of PPL_AXES_RESTORE back to end of plot routines
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -545,7 +546,7 @@ C   Save the skip values in a symbol PPL_VEC_XSKIP, PPL_VEC_YSKIP
         ENDIF
 
 * restore axes? (5/29/97  revised 3/2002
-c        IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
+        IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
 
 * clear the overriding opacity
         opacity = -1.0
diff --git a/fmt/cmn/NCF_Util.h b/fmt/cmn/NCF_Util.h
index bc501a1..a64e020 100644
--- a/fmt/cmn/NCF_Util.h
+++ b/fmt/cmn/NCF_Util.h
@@ -42,7 +42,11 @@
  * This is the header file to be included by routines which
  * are part of the Ferret NetCDF attribute handling library.
  * V683 10/10*acm* New NC_INTERRUPT for user-interrupt reading netCDF/OPeNDAP data
- *
+ * V698 12/15 *sh* added aggSeqNo, the sequence number (FORTRAN index) of each dset w/in the agg 
+ * V698  2/16 *acm Additions for ticket 2352: LET/D variables and attributes. User-variables
+ *                 defined with LET/D=n are stored with dataset n. A flag in the ncvar 
+ *                 structure tells that the variable is a user-var. 
+ * V699 5/16 *sh* added grid management for uvars: gridList and uvarGrid
  */
 
 /* .................... Defines ..................... */
@@ -57,7 +61,8 @@
 
 #define ATOM_NOT_FOUND 0  /* This should match the atom_not_found parameter in ferret.parm. */
 #define FERR_OK 3  /* This should match the ferr_ok parameter in errmsg.parm. */
-#define NC_GLOBAL -1  /* This should match the NC_GLOBAL parameter in netcdf.h */
+#define NC_GLOBAL -1    /* This should match the NC_GLOBAL parameter in netcdf.h */
+#define PDSET_UVARS -1  /* This should match pdset_uvars ferret.parm */
 
 /* Ferret-defined "netcdf error status" when a read was interrupted by Crtl-C */
 /* match nc_interrupt with nf_interrupt in tmap_errors.parm */
@@ -112,6 +117,8 @@ typedef struct  {          /* variable */
 	int dims[MAX_VAR_DIMS];
 	int natts;
 	int varid;
+        int uvarid;            /* the value of uvar as Ferret knows it, 0 if fvar */
+                               /* note that uvflag no longer needed with this */
 	int is_axis;           /* coordinate variable */
 	int axis_dir;          /* coordinate direction 1,2,3,4, for X,Y,Z,T, etc*/
 	int has_fillval;
@@ -123,6 +130,7 @@ typedef struct  {          /* variable */
 	int attrs_list_initialized;
 	LIST *varagglist;      /* if an aggregate dataset, for each var,
 	                          list the members of the aggregate components. */
+        LIST *uvarGridList;    /* if a uvar, keep track of its grid(s) */
 	int agg_list_initialized;
 	int nmemb;
 } ncvar;
@@ -139,19 +147,28 @@ typedef struct {			/* attribute */
 	double *vals;       /* for numeric attributes of all types */
 } ncatt;
 
-typedef struct {			/* aggregate member-dataset */
-	int dsetnum;			/* Ferret dataset number */
+typedef struct {	    /* aggregate member-dataset */
+	int dsetnum;	    /* Ferret dataset number */
+	int aggSeqNo;	    /* sequence number of dset within agg */
 } ncagg;
 
-typedef struct {			/* for var in aggregate member-dataset: */
-	int imemb;		        /* for members of the aggregate, member sequence number */
-	int vtype;		        /* for members of the aggregate, type: user-var or file-var */
-	int datid;		        /* for members of the aggregate, Ferret dataset id */
-	int gnum;               /* Ferret grid numbers */
-	int iline;              /* Ferret line number for the aggregate dimension */
-	int nv;                 /* Ferret sequence # in ds_var_code or uvar_name_code */
+typedef struct {	    /* for var in aggregate member-dataset: */
+	int imemb;	    /* for members of the aggregate, member sequence number */
+	int vtype;	    /* for members of the aggregate, type: user-var or file-var */
+	int datid;	    /* for members of the aggregate, Ferret dataset id */
+	int gnum;           /* Ferret grid numbers */
+	int iline;          /* Ferret line number for the aggregate dimension */
+	int nv;             /* Ferret sequence # in ds_var_code or uvar_name_code */
 } ncagg_var_descr;
 
+typedef struct {     /* for uvars: grid/dataset pairs*/
+	int grid;
+	int dset;
+	int dtype;
+        int auxCat[NFERDIMS];
+        int auxVar[NFERDIMS];
+} uvarGrid;
+
 #ifdef NO_ENTRY_NAME_UNDERSCORES
 #define FORTRAN(a) a
 #else
diff --git a/fmt/cmn/gt_lib.parm b/fmt/cmn/gt_lib.parm
index c01b291..fc188d9 100644
--- a/fmt/cmn/gt_lib.parm
+++ b/fmt/cmn/gt_lib.parm
@@ -16,6 +16,10 @@
 * V602 *acm* 11/06 - Change unspecified_int4 to -999. Fixes bug 1463 where
 *                    where an index value of -111 was confused with this flag
 * V685 *acm* 3/13 - add climatological axes to the pre-defined axes.
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables, 
+* pre-defined axes and grids.
+* V698  3/16 *acm* Define monthly climatology for Julian axis.
+
 
 * Function return codes
 	INTEGER*4	str_match, atom_not_found
@@ -42,38 +46,20 @@
 * pre-defined grids:.....
 * define "lines" (1 dimensional components of which grids are assembled)
 * parameter definitions are pointers to the lines
-*			("m" indicates parameter, "ps"=Philander/Seigal)
+*			("m" indicates parameter)
 
-	INTEGER		mpsunkn, mpsnorm, mpsxt, mpsxu, mpsyt, mpsyu,
-     .			mpszt, mpszw, clmirr, clmreg, clseas, clmgrg,
-     .			clmnol, clm360, clmall
+	INTEGER		mpsunkn, mpsnorm, clmirr, clmreg, clseas, clmgrg,
+     .			clmnol, clm360, clmall, clmjul
 	PARAMETER (	mpsunkn	= -1,		! must match FERRET munknown
      .			mpsnorm	=  0,		! must match FERRET mnormal
-     .			mpsxt	=  1,
-     .			mpsxu	=  2,
-     .			mpsyt	=  3,
-     .			mpsyu	=  4,
-     .			mpszt	=  5,
-     .			mpszw	=  6,
-     .			clmirr	=  7,	! month irregular
-     .			clmreg	=  8,	! month regular
-     .			clseas	=  9,	! seasonal
-     .			clmgrg	= 10,	! month Gregorian
-     .			clmnol	= 11,	! month noleap
-     .			clm360	= 12,	! month 360-day
-     .			clmall	= 13)	! month all-leap
-
-* define grids, themselves...
-* grids are formed of "outer products" (rectangular arrays) or "inner products"
-*	(ordered tuples) of lines.  (To use inner products the lines must be of
-*	the same length.)
-
-	INTEGER		mps2dt, mps2du, mps3dt, mps3du, mps3dw
-	PARAMETER (	mps2dt	= 1,	! 2D temp(erature) grid
-     .			mps2du	= 2,	! 2D taux,tauy grid
-     .			mps3dt	= 3,	! 3D temp/salt grid
-     .			mps3du	= 4,	! 3d u/v grid
-     .			mps3dw	= 5 )	! 3D w grid
+     .			clmirr	=  1,	! month irregular
+     .			clmreg	=  2,	! month regular
+     .			clseas	=  3,	! seasonal
+     .			clmgrg	=  4,	! month Gregorian
+     .			clmnol	=  5,	! month noleap
+     .			clm360	=  6,	! month 360-day
+     .			clmall	=  7,	! month all-leap
+     .			clmjul	=  8)	! month Julian
 
 * codes for special grid features...
 * flag values stored in parameters
diff --git a/fmt/cmn/tmap_dims.parm b/fmt/cmn/tmap_dims.parm
index dcc6799..42fd13e 100644
--- a/fmt/cmn/tmap_dims.parm
+++ b/fmt/cmn/tmap_dims.parm
@@ -24,6 +24,9 @@
 * v5.50 *acm*9/02 - up maxdsets from 30 to 100 
 *       *acm*12/02  up maxstepfiles from 500 to 1000
 * v552  *acm* 3/03  increase maxstepfiles to 5000)
+* v698  *sh* 12/15  creating hidden dataset space above maxdsets
+*             3/16  increase maxdsets to accommodate EF aggs
+*             3/16  increase num_dyn_grids to accommodate EF aggs
 
 * for TMAP formatted files:
 	INTEGER	nrec_codes,ngrid_prenamed,nvari_prenamed,maxdsets,
@@ -32,13 +35,18 @@
      .		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
+     .		tmp_line_hook, tmp_grid_hook, nferdims, maxvar2,
+     .		pdsetalloc, pdsets_addl, pdset_dummy, pdset_global
 
 * parameters used for dimensioning arrays
 	PARAMETER (nrec_codes = 11)	! # of different record codes
 	PARAMETER (ngrid_prenamed=11)	! # of pre-defined grids
 	PARAMETER (nvari_prenamed=7)	! # of pre-named variables
-	PARAMETER (maxdsets = 100)	! maximum # of data sets simultaneously
+	PARAMETER (maxdsets = 400)	! maximum # of data sets simultaneously
+	PARAMETER (pdsets_addl = 2)	! addl dsets hidden above maxdsets
+	PARAMETER (pdsetalloc = maxdsets + pdsets_addl)
+	PARAMETER (pdset_dummy  = maxdsets + 1)	! dummy  (missing) dataset
+	PARAMETER (pdset_global = maxdsets + 2)	! global (phantom) dataset
 	PARAMETER (maxstepfiles = 5000)	! # of files with time step data (up from 500 12/02)
 	PARAMETER (maxvars = 2000)	! max # of ALL vars *parmchg: now
 	PARAMETER (maxvar2 = 2*maxvars)	! max # *2, for dimension equivalenced to real*8 arrays
@@ -49,8 +57,9 @@
 !	PARAMETER (max_grids = 500)	! max # of **static** grids: pre 7/99
 !	PARAMETER (max_grids = 1000)	! max # of **static** grids: pre 3/00
 	PARAMETER (max_grids = 500)	! max # of **static** grids
-!	PARAMETER (num_dyn_grids = 100)! max # of "implicit" grids: pre 5/00
-	PARAMETER (num_dyn_grids = 500)! max # of "implicit" grids
+!	PARAMETER (num_dyn_grids = 100) ! max # of "implicit" grids: pre 5/00
+!	PARAMETER (num_dyn_grids = 500) ! max # of "implicit" grids: pre 3/2016
+	PARAMETER (num_dyn_grids = 5000)! max # of "implicit" grids
 	PARAMETER (max_dyn_grids = max_grids + num_dyn_grids)
 	PARAMETER (tmp_grid_hook = max_dyn_grids + 1)
 	PARAMETER (grid_ceiling  = tmp_grid_hook )
diff --git a/fmt/cmn/tmap_errors.parm b/fmt/cmn/tmap_errors.parm
index a67991a..a953e00 100644
--- a/fmt/cmn/tmap_errors.parm
+++ b/fmt/cmn/tmap_errors.parm
@@ -19,6 +19,10 @@
 * V604 6/07 *acm* New merr_remote_open for errors opening remote datasets
 * V683 10/10*acm* New merr_read_interrupt for user-interrupt reading netCDF/OPeNDAP data
 * V692 10/14*acm* New merr_time_string for errors in tm_secs_to_date
+* V697 12/15*acm* New merr_axis_att reporting errors in axis attributes, 
+*                 e.g. calendars (For ticket 2332)
+* V698 1/16 *sh* added pcd_ferr_ok in order to put status warnings into cd_*
+*                LIST processing routines that are not status checked
 
 * internally used PARAMETERS:
 	INTEGER		num_special,num_regular,pspecial,pregular,
@@ -26,7 +30,7 @@
      .	                pcdferr, pcdferrmax, nf_interrupt
 	CHARACTER*1	no_errstring
 	PARAMETER      (num_special	= 3,
-     .			num_regular	= 48,
+     .			num_regular	= 49,
      .			pspecial	= 2,	! avoid 0,1 as too special
      .			pregular	= 200,
      .			pcdferr		= 1000,
@@ -39,11 +43,13 @@
      .			nf_interrupt	= 900)  ! match this with NC_INTERRUPT in NCF_Util.h
 
 * special errors
-	INTEGER		 merr_ok,  merr_erreq,  merr_interrupt, merr_no_action
+	INTEGER		 merr_ok,  merr_erreq,  merr_interrupt,
+     .			merr_no_action, pcd_ferr_ok
 	PARAMETER      (merr_ok		= 1 + pspecial,
      .			merr_erreq	= 1 + merr_ok,
      .			merr_interrupt	= 1 + merr_erreq,
-     .			merr_no_action	= 1 + merr_interrupt )
+     .			merr_no_action	= 1 + merr_interrupt,
+     .			pcd_ferr_ok     = 3  		) ! match ferr_ok
 
 * regular errors
 	INTEGER		merr_notsupport, merr_filpos, merr_tstep,
@@ -62,7 +68,7 @@
      .			merr_dsetnf, merr_stepnf, merr_badcolmn,
      .                  merr_attalready, merr_badfileatt, merr_nc_open,
      .                  merr_remote_open, merr_chunk_spec, merr_read_interrupt,
-     .                  merr_time_string
+     .                  merr_time_string, merr_axis_att
 	PARAMETER      (merr_notsupport	= 1 + pregular,
      .			merr_filpos	= 1 + merr_notsupport,
      .			merr_tstep	= 1 + merr_filpos,
@@ -111,4 +117,5 @@
      .                  merr_remote_open = 1 + merr_nc_open,
      .                  merr_chunk_spec  = 1 + merr_remote_open,
      .                  merr_read_interrupt = 1 + merr_chunk_spec,
-     .                  merr_time_string = 1 + merr_read_interrupt)
+     .                  merr_time_string = 1 + merr_read_interrupt,
+     .                  merr_axis_att = 1 + merr_time_string)
diff --git a/fmt/cmn/xdset_info.cmn_text b/fmt/cmn/xdset_info.cmn_text
index b808de3..d543117 100644
--- a/fmt/cmn/xdset_info.cmn_text
+++ b/fmt/cmn/xdset_info.cmn_text
@@ -26,28 +26,29 @@
 *                 need tmap_dims.param with the definition of nferdims.
 * V695+ 4/15 *sh* added ds_its_aux_coord for auxiliary coordinate support
 * V695+ 5/15 *sh* added ds_var_c_cache_ptr - ptr to cached var (typ aux var)
+* V698+ 12/15 *sh* declare larger dset arrays: maxdsets ==> pdsetalloc
 
 	COMMON/XDSET_INFO/
-     .		ds_1step(maxdsets),ds_lastep(maxdsets),
-     .		ds_delstep(maxdsets),
-     .		ds_file_info_ptr(maxdsets),
+     .		ds_1step(pdsetalloc),ds_lastep(pdsetalloc),
+     .		ds_delstep(pdsetalloc),
+     .		ds_file_info_ptr(pdsetalloc),
      .		ds_var_c_cache_ptr(maxvars),
-     .		ds_type(maxdsets),ds_format(maxdsets),
-     .		ds_source_class(maxdsets),ds_source(maxdsets),
-     .		ds_subsource(maxdsets),ds_prog_rev(maxdsets),
+     .		ds_type(pdsetalloc),ds_format(pdsetalloc),
+     .		ds_source_class(pdsetalloc),ds_source(pdsetalloc),
+     .		ds_subsource(pdsetalloc),ds_prog_rev(pdsetalloc),
 **************************************************************************
-     .		ds_expnum(maxdsets),ds_modnum(maxdsets),
-     .		ds_title(maxdsets),ds_mod_title(maxdsets),
-     .		ds_forcing_set(maxdsets),ds_t0time(maxdsets),
-     .		ds_time_unit(maxdsets),ds_time_modulo(maxdsets),
-     .		ds_ntegrate_tstep(maxdsets),ds_ntuple(maxdsets),
-     .		ds_time_run(maxdsets),ds_aux_modnum(num_aux,maxdsets),
-     .		ds_parm_name(num_parm,maxdsets),
-     .		ds_parm_text(num_parm,maxdsets),
-     .		ds_cal_name(maxdsets),
+     .		ds_expnum(pdsetalloc),ds_modnum(pdsetalloc),
+     .		ds_title(pdsetalloc),ds_mod_title(pdsetalloc),
+     .		ds_forcing_set(pdsetalloc),ds_t0time(pdsetalloc),
+     .		ds_time_unit(pdsetalloc),ds_time_modulo(pdsetalloc),
+     .		ds_ntegrate_tstep(pdsetalloc),ds_ntuple(pdsetalloc),
+     .		ds_time_run(pdsetalloc),ds_aux_modnum(num_aux,pdsetalloc),
+     .		ds_parm_name(num_parm,pdsetalloc),
+     .		ds_parm_text(num_parm,pdsetalloc),
+     .		ds_cal_name(pdsetalloc),
 **************************************************************************
-     .		ds_alert_on_open(maxdsets),ds_alert_on_output(maxdsets),
-     .		ds_message(maxdsets),
+     .		ds_alert_on_open(pdsetalloc),ds_alert_on_output(pdsetalloc),
+     .		ds_message(pdsetalloc),
 **************************************************************************
      .
      .          ds_var_code_head,
@@ -68,12 +69,12 @@
 **************************************************************************
      .		min_ds_tstart,max_ds_tend,ds_tdelta,
 **************************************************************************
-     .		ds_des_name(maxdsets),ds_name(maxdsets),
-     .		ds_open(maxdsets),
-     .		ds_accepts_remote(maxdsets), 
-     .		ds_hide(maxdsets), 
-     .		ds_regsteps(maxdsets), ds_basic_axes(6,maxdsets),
-     .		ds_time_axis(maxdsets),
+     .		ds_des_name(pdsetalloc),ds_name(pdsetalloc),
+     .		ds_open(pdsetalloc),
+     .		ds_accepts_remote(pdsetalloc), 
+     .		ds_hide(pdsetalloc), 
+     .		ds_regsteps(pdsetalloc), ds_basic_axes(6,pdsetalloc),
+     .		ds_time_axis(pdsetalloc),
 **************************************************************************
      .		ds_ndataperrec(maxvars),ds_nrecpervar(maxvar2),
      .		ds_nrecb4var(maxvar2),ds_var_setnum(maxvars),
diff --git a/fmt/cmn/xrisc_buff.cmn b/fmt/cmn/xrisc_buff.cmn
index 64c00c0..834bbb4 100644
--- a/fmt/cmn/xrisc_buff.cmn
+++ b/fmt/cmn/xrisc_buff.cmn
@@ -4,6 +4,8 @@
 * this common declares a buffer with a fixed length string in which to copy
 * the CHAR*(*) string
 * 1/2015 Increase size of rbuff
+* V697 12/15 - increase to 25000 for ticket 2337: Longer Ferret cmnd-line buffer.
+* V697  2/16 *acm* DO NOT Increase length of cmnd buffer to 20480
 
 * ***  Note that there is also a risc_buff defined in fer/common/xrisc.cmn ***
 
diff --git a/fmt/cmn/xunits.cmn_text b/fmt/cmn/xunits.cmn_text
index 3deb7b3..ddf00b1 100644
--- a/fmt/cmn/xunits.cmn_text
+++ b/fmt/cmn/xunits.cmn_text
@@ -10,6 +10,7 @@
 * 3/5/01 acm  add  more units for alternative calendar types:
 *             secs per 365.25 days (change xunits_data.F too)
 *             also add all types of months: 1/12 of seconds/year 
+* 4/2016 *sh* added unit names for ensemble and forecast axes
 
 	INTEGER		pun_1st_time,
      .			pun_last_time,
@@ -46,3 +47,9 @@
      .			un_convert,		! conversion factors
      .			un_name,		! unit names
      .			un_alt_name		! alternative unit names
+
+* units for E and F axes
+	CHARACTER	plag_ax_units_e*12, plag_ax_units_f*10
+	PARAMETER     ( plag_ax_units_e = 'realization',
+     .			plag_ax_units_f = 'run no.'    )
+
diff --git a/fmt/src/NCF_Util.c b/fmt/src/NCF_Util.c
index b47545b..bdcb2d4 100644
--- a/fmt/src/NCF_Util.c
+++ b/fmt/src/NCF_Util.c
@@ -1,5 +1,3 @@
-
-
 /*
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -80,7 +78,7 @@
 * *acm*  1/12      - Ferret 6.8 ifdef double_p for double-precision ferret, see the
 *                    definition of macro DFTYPE in ferretmacros.h.
 * *acm*  5/12 V6.8 - Additions for creating aggregate datasets
-* *acm*  8/13	      Fix bug 2089. Mark the scale_factor and add_offset attributes  
+* *acm*  8/13        Fix bug 2089. Mark the scale_factor and add_offset attributes  
 *                    to-be-output when writing variables.
 * *acm*  8/13        Fix bug 2091. If a string variable has the same name as a dimension,
 *                    DO NOT mark it as an axis.
@@ -88,6 +86,16 @@
 *                    1-D coordinate var, don't write the axis Ferret creates. Do report
 *                    in dimnames outputs the dimension names as used by Ferret e.g. a
 *                    renamed axis TIME -> TIME1
+* *sh*  12/15        Bug fix: ncf_get_agg_member is called with the sequence number of the
+*                    desired dataset. So store that in order to locate the right member 
+* *acm*  2/16        Additions for ticket 2352: LET/D variables and attributes. User-variables
+*                    defined with LET/D=n are stored with dataset n. A flag in the ncvar 
+*                    structure tells that the variable is a user-var. A new subroutine call,
+*                    ncf_get_var_uvflag returns this flag, so that SHOW DATA/ATTRIBUTES can 
+*                    list these variables. When user variables are canceled, the varids for 
+*                    user-variables remaining in the dataset are adjusted.
+* *sh*  5/16         added grid management for uvars -- dset/grid paris stored in a LIST
+*                    replaced uvflag with uvarid
 */
 
 #include <Python.h> /* make sure Python.h is first */
@@ -149,6 +157,7 @@ int  FORTRAN(ncf_get_attr_from_id) (int *, int *, int * , int *, double* );
 
 int  FORTRAN(ncf_get_var_outflag) (int *, int *, int *);
 int  FORTRAN(ncf_get_var_outtype) (int *, int *,  int *);
+int  FORTRAN(ncf_get_var_uvflag) (int *, int *, int *);
 
 int  FORTRAN(ncf_init_uvar_dset)( int *);
 int  FORTRAN(ncf_init_uax_dset)( int *);
@@ -177,12 +186,21 @@ int  FORTRAN(ncf_set_axdir)(int *, int *, int *);
 int  FORTRAN(ncf_transfer_att)(int *, int *, int *, int *, int *);
  
 int  FORTRAN(ncf_init_agg_dset)( int *, char *);
-int  FORTRAN(ncf_add_agg_member)( int *, int *);
+int  FORTRAN(ncf_add_agg_member)( int *, int *, int *);
 int  FORTRAN(ncf_get_agg_count)( int *, int *);
 int  FORTRAN(ncf_get_agg_member)( int *, int *, int *);
 int  FORTRAN(ncf_get_agg_var_info)( int *, int *, int *, int *, int *, int *, int *, int *);
 int  FORTRAN(ncf_put_agg_memb_grid)( int *, int *, int *, int *);
 
+/* uvar grid management functions */
+int  FORTRAN(ncf_free_uvar_grid_list)( int *, int *);
+int  FORTRAN(ncf_set_uvar_grid)( int *, int *, int *, int *, int *);
+int  FORTRAN(ncf_get_uvar_grid)( int *, int *, int *, int *);
+int  FORTRAN(ncf_set_uvar_aux_info)( int *, int *, int *, int *, int *);
+int  FORTRAN(ncf_get_uvar_aux_info)( int *, int *, int *, int *, int *);
+int  FORTRAN(ncf_get_uvar_grid_list_len)( int *, int *, int *);
+int  FORTRAN(ncf_delete_uvar_grid)( int *, int *, int *);
+
 /* .... Functions called internally .... */
 
 ncdset *ncf_ptr_from_dset(int *);
@@ -197,12 +215,14 @@ int NCF_ListTraverse_FoundDsetID( char *, char * );
 int NCF_ListTraverse_FoundVarName( char *, char * );
 int NCF_ListTraverse_FoundVarNameCase( char *, char * );
 int NCF_ListTraverse_FoundVarID( char *, char * );
+int NCF_ListTraverse_FoundUvarID( char *, char * );
 int NCF_ListTraverse_FoundVarAttName( char *, char * );
 int NCF_ListTraverse_FoundVarAttNameCase( char *, char * );
 int NCF_ListTraverse_FoundVarAttID( char *, char * );
 int NCF_ListTraverse_FoundVariMemb( char *, char * );
 int NCF_ListTraverse_FoundDsMemb( char *, char * );
 int NCF_ListTraverse_FoundDsMemb( char *, char * );
+int NCF_ListTraverse_FoundGridDset( char *, char * );
 
 /*
  * Find a dataset based on its integer ID and return the scalar information:
@@ -639,6 +659,47 @@ int FORTRAN(ncf_get_dim_id)( int *dset, char dname[])
 }
 
 /* ----
+ * Find a variable in a dataset based on the dataset integer ID and 
+ * variable ID. Return the return the flag indicating file 
+*  variable vs user-variable
+ */
+ int FORTRAN(ncf_get_var_uvflag) (int *dset, int *varid, int *uvflag)
+
+{
+  ncdset *nc_ptr=NULL;
+  ncvar *var_ptr=NULL;
+  int i;
+  int status=LIST_OK;
+  int return_val;
+  LIST *varlist;
+  int flag;
+
+  return_val = 0;  
+  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL )return return_val;
+
+   /*
+   * Get the list of variables and the variable based on its id
+   */
+  varlist = ncf_get_ds_varlist(dset);
+  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+  if ( status != LIST_OK ) {
+    return_val = ATOM_NOT_FOUND;
+    return return_val;
+  }
+  
+  var_ptr=(ncvar *)list_curr(varlist); 
+  if (var_ptr->uvarid == 0)
+    flag = 0;
+  else
+    flag = 1;
+
+  *uvflag = flag;
+
+  return FERR_OK;
+}
+
+
+/* ----
  * Find a variable attribute based on the dataset ID and variable ID and attribute name
  * Return the attribute ID
  */
@@ -1186,6 +1247,7 @@ int FORTRAN(ncf_add_dset)(int *ncid, int *setnum, char name[], char path[])
 			var.all_outflag = 1;
 			var.is_axis = FALSE;
 			var.axis_dir = 0;
+			var.uvarid = 0;
 			
 			var.attrs_list_initialized = FALSE;
 			for (i = 0; i < nc.ngatts; i++)
@@ -1273,13 +1335,14 @@ int FORTRAN(ncf_add_dset)(int *ncid, int *setnum, char name[], char path[])
 		for (iv = 0; iv < nc.nvars; iv++)
 			{
 				nc_status = nc_inq_var(*ncid, iv, var.name, &var.type, &var.ndims,
-															 var.dims, &var.natts);
+									     var.dims, &var.natts);
 				if (nc_status != NC_NOERR) return nc_status;
 				
 				var.varid = iv+1;  
 				var.outtype = NC_FLOAT;
 				if (var.type == NC_CHAR) var.outtype = NC_CHAR;
 				var.outtype = var.type;  /* ?? */
+				var.uvarid = 0;
 				
 				/* Is this a coordinate variable? If not a string, set the flag.
 				/* A multi-dimensional variable that shares a dimension name is not a coord. var.
@@ -1837,7 +1900,9 @@ int FORTRAN(ncf_delete_dset)(int *dset)
   }
 
 /* ----
- * Add a new variable to the pseudo (user-variable) dataset.
+ * Add a new variable to a dataset.
+ * If varid is < 0, set it to nvars+1 for this dataset, return varid
+ * and store -1*varid as the user variable ID (uvarid)
  */
 int  FORTRAN(ncf_add_var)( int *dset, int *varid, int *type, int *coordvar, char *varname, char title[], char units[], double *bad)
 
@@ -1890,8 +1955,28 @@ int  FORTRAN(ncf_add_var)( int *dset, int *varid, int *type, int *coordvar, char
   var.type = *type;
   var.outtype = *type;
   var.ndims = 6;
-  var.natts = 0;  
-  var.varid = *varid;
+  var.natts = 0;
+     
+  if (*varid < 0)
+    {
+      /* user variable (aka "LET") */
+      var.uvarid = -1* *varid;  /* value of uvar as found in Ferret */
+      if (*dset == PDSET_UVARS)
+        /* for global uvars,  varid always matches uvarid */
+        /* which means that gaps may occur in the varid sequence */
+         var.varid = var.uvarid;
+      else
+        /* for LET/D uvars, varid is the var count */
+        /* ==> gaps in varid must be compacted when LET/D vars are deleted */
+        var.varid = nc_ptr->nvars;
+    }
+  else
+    /* file variable */
+    {
+      var.varid = nc_ptr->nvars;
+      var.uvarid = 0;   /* 0 signals a file var */ 
+    }
+
   var.is_axis = *coordvar;
   var.axis_dir = 0;
   var.has_fillval = FALSE;
@@ -1959,7 +2044,7 @@ int  FORTRAN(ncf_add_var)( int *dset, int *varid, int *type, int *coordvar, char
 /*    if (*type != NC_CHAR)
     { */
 		var.natts = var.natts+1;
-        var.fillval = *bad;
+                var.fillval = *bad;
 
 		att.attid = var.natts;
 		strcpy(att.name,"missing_value");
@@ -2001,6 +2086,17 @@ int  FORTRAN(ncf_add_var)( int *dset, int *varid, int *type, int *coordvar, char
          vdescr.gnum = 0;
          list_insert_after(var.varagglist, (char *) &vdescr, sizeof(ncatt));
 
+/* if it's a uvar, then initialize a grid LIST for it */ 
+  if (var.uvarid == 0) 
+    var.uvarGridList = 0;
+  else
+    {
+      if ( (var.uvarGridList = list_init()) == NULL ) {
+	fprintf(stderr, "ERROR: ncf_add_var: Unable to initialize uvar grid list.\n");
+	return_val = -1;
+	return return_val; 
+      }
+    }
 /*Save variable in linked list of variables for this dataset */
 
   list_insert_after(nc_ptr->dsetvarlist, (char *) &var, sizeof(ncvar));
@@ -2984,6 +3080,7 @@ int  FORTRAN(ncf_set_var_outtype)( int *dset, int *varid, int *outtype)
   return return_val;
 }
 
+
 /* ---- 
  * Find variable based on its variable ID and dataset ID
  * Check that its a coordinate variable and set the axis direction.
@@ -3135,8 +3232,12 @@ int  FORTRAN(ncf_delete_var)( int *dset, char *varname)
   ncatt *att_ptr=NULL;
   int status=LIST_OK;
   int return_val;
+  int ivar;
+  int i;
   LIST *varlist;
-	LIST_ELEMENT *lp;
+  LIST *uvgridList;
+  LIST *dummy;
+  LIST_ELEMENT *lp;
 
  /* Find the dataset based on its integer ID 
  */
@@ -3153,20 +3254,45 @@ int  FORTRAN(ncf_delete_var)( int *dset, char *varname)
     return return_val;
   }
   
-  /* Deallocate the list of attributes, and remove the 
-   * variable from the dataset list */
+  /* Deallocate the list of attributes */
 	lp = varlist->curr;
 	var_ptr = (ncvar*)lp->data;
+	ivar = var_ptr->varid;
 	/* Free the attributes for this var (list data). */
 	ncf_free_attlist(var_ptr);
-	/* Free the list. */
+	/* Free the attributes list. */
 	list_free(var_ptr->varattlist, LIST_DEALLOC);
 
+  /* Free the list of uvarGrids */
+	if (var_ptr->uvarid != 0) 
+	  {
+	    uvgridList = var_ptr->uvarGridList;
+	    while (!list_empty(uvgridList))
+	      {
+		list_remove_front(uvgridList);
+	      }
+	    list_free(uvgridList, LIST_DEALLOC);
+	  }
+  /* remove the variable from the dataset list */
 	list_remove_curr(varlist);
-  free(var_ptr);
-   /* Decrement number of variables in the dataset.  
+	free(var_ptr);
+
+   /* Reset the varids for variables added to external datasets with LET/D
+    * For the virtual user-variable datset, leave varids alone.
     */
 
+   if (*dset > PDSET_UVARS)
+   {
+	   for (i=ivar; i <nc_ptr->nvars ;i++ )
+	   {
+		   var_ptr=(ncvar *)list_curr(varlist);  /* Point to next variable */
+		   var_ptr->varid = var_ptr->varid - 1;
+		   dummy = list_mvnext(varlist);
+	   }
+   }
+
+   /* Decrement number of variables in the dataset. 
+    */
   nc_ptr->nvars = nc_ptr->nvars - 1;
 
   return_val = FERR_OK;
@@ -3294,7 +3420,7 @@ int FORTRAN(ncf_init_agg_dset)(int *setnum, char name[])
 /* ----
  * Add a new aggregate member to an aggregate dataset.
  */
-int  FORTRAN(ncf_add_agg_member)( int *dset, int *member_dset)
+int  FORTRAN(ncf_add_agg_member)( int *dset, int *sequence_number, int *member_dset)
 
 {
   ncdset *nc_ptr=NULL;
@@ -3317,6 +3443,7 @@ int  FORTRAN(ncf_add_agg_member)( int *dset, int *member_dset)
    */
   elist = ncf_get_ds_agglist(dset);
   agg_ptr.dsetnum = *member_dset;
+  agg_ptr.aggSeqNo = *sequence_number;  // added 12/15 //
 
   list_insert_after(nc_ptr->agg_dsetlist, (char *) &agg_ptr, sizeof(agg_ptr));
 
@@ -3594,6 +3721,367 @@ static int initialize_output_flag (char *attname, int is_axis)
 
 }
 
+
+/* *******************************
+ *  uvar grid management routines
+ * *******************************
+ */
+
+
+/* ---- 
+ * Find variable based on its variable ID and LIST_dset ID
+ * Free ("purge" in Ferret-speak) the entire list of uvar grids
+ */
+int  FORTRAN(ncf_free_uvar_grid_list)( int *LIST_dset, int *uvarid)
+
+{
+  ncvar *var_ptr=NULL;
+  int status=LIST_OK;
+  LIST *varlist;
+  LIST *uvgridList;
+
+   /*
+    * Get the list of variables, find pointer to variable varid.
+    */
+  varlist = ncf_get_ds_varlist(LIST_dset);
+
+    /* find the relevant LET var (i.e. uvar) */
+  status = list_traverse(varlist, (char *) uvarid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+
+  var_ptr=(ncvar *)list_curr(varlist); 
+
+  /* remove all elements from the uvar grid list */
+  uvgridList = var_ptr->uvarGridList;
+  while (!list_empty(uvgridList))
+    {
+      list_remove_front(uvgridList);
+    }
+
+  return FERR_OK;
+}
+
+
+/* ---- 
+ * Find variable based on its variable ID and LIST_dset ID
+ * Store a grid/context_dset pair for the variable 
+
+ * The dual dataset arguments arise because Ferret's global uvars are managed
+ * in the c LIST structures as a special dataset -- PDSET_UVARS
+ * By contrast LET/D uvars are managed in the c LIST structure of the parent dataset
+ * So we refer to the dataset that owns (parents) the uvar as LIST_dset 
+ * and we refer to the dataset in which Ferret is evaluating the uvar is as context_dset
+ */
+int  FORTRAN(ncf_set_uvar_grid)( int *LIST_dset, int *varid, int *grid, int *datatype, int *context_dset)
+
+{
+  ncvar *var_ptr=NULL;
+  int status=LIST_OK;
+  int return_val;
+  LIST *varlist;
+  LIST *uvgridlist;
+  uvarGrid uvgrid;
+  int i;
+
+   /*
+    * Get the list of variables, find pointer to variable varid.
+    */
+  varlist = ncf_get_ds_varlist(LIST_dset);
+
+  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+
+  var_ptr=(ncvar *)list_curr(varlist); 
+
+   /*  
+    * if a grid already exists for this context dataset
+    * remove it before continuing
+    */
+   /* I dunno why other routines are calling internal routines such
+       as ncf_get_ds_var_attlist to get the LIST pointers they need.
+       am I missing something? *sh* */
+  uvgridlist = var_ptr->uvarGridList;
+  status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+  if ( status == LIST_OK)
+    {
+      list_remove_curr(uvgridlist);
+    }
+
+   /*
+    * Fill the uvarGrid structure
+    */
+  /*  not needed: uvgrid = (uvarGrid *) malloc(sizeof(uvarGrid)); */
+  uvgrid.grid  = *grid;
+  uvgrid.dset  = *context_dset;
+  uvgrid.dtype = *datatype;
+
+   /*
+    * Set the auxiliary variables as unspecified at this point
+    */
+  for (i=0; i<NFERDIMS ;i++ )
+    {
+      uvgrid.auxCat[i] = 0;
+      uvgrid.auxVar[i] = 0;
+    }
+
+   /*
+    * Save it in the grid list of this uvar
+    */
+  list_insert_after(uvgridlist, (char *) &uvgrid, sizeof(uvarGrid));
+
+  return_val = FERR_OK;
+  return return_val;
+}
+
+/* ---- 
+ * Find variable based on its variable ID and LIST_dset ID
+ * Return the grid that corresponds to the context_dset pair 
+
+ * The dual dataset arguments arise because Ferret's global uvars are managed
+ * in the c LIST structures as a special dataset -- PDSET_UVARS
+ * By contrast LET/D uvars are managed in the c LIST structure of the parent dataset
+ * So we refer to the dataset that owns (parents) the uvar as LIST_dset 
+ * and we refer to the dataset in which Ferret is evaluating the uvar is as context_dset
+ */
+int  FORTRAN(ncf_get_uvar_grid)( int *LIST_dset, int *uvarid, int *context_dset, int *uvgrid)
+
+{
+  ncvar *var_ptr=NULL;
+  int status=LIST_OK;
+  LIST *varlist;
+  LIST *uvgridlist;
+  uvarGrid *uvgrid_ptr=NULL;
+
+   /*
+    * Get the list of variables, find pointer to variable varid.
+    */
+  varlist = ncf_get_ds_varlist(LIST_dset);
+
+    /* find the relevant LET var (i.e. uvar) */
+  status = list_traverse(varlist, (char *) uvarid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+
+  var_ptr=(ncvar *)list_curr(varlist); 
+
+    /* find the relevant grid/dataset pair owned by this uvar */
+    /* I dunno why other routines are calling internal routines such
+     * as ncf_get_ds_var_attlist to get the LIST pointers they need.
+     * am I missing something? *sh*
+     */
+  uvgridlist = var_ptr->uvarGridList;
+  if (list_empty(uvgridlist)) return ATOM_NOT_FOUND;
+
+  status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+
+  uvgrid_ptr=(uvarGrid *)list_curr(uvgridlist); 
+
+  *uvgrid = uvgrid_ptr->grid;
+  
+  return FERR_OK;
+}
+
+/* ---- 
+ * Find variable based on its variable ID and LIST_dset ID
+ * Store a grid/context_dset pair for the variable 
+
+ * The dual dataset arguments arise because Ferret's global uvars are managed
+ * in the c LIST structures as a special dataset -- PDSET_UVARS
+ * By contrast LET/D uvars are managed in the c LIST structure of the parent dataset
+ * So we refer to the dataset that owns (parents) the uvar as LIST_dset 
+ * and we refer to the dataset in which Ferret is evaluating the uvar is as context_dset
+ */
+int  FORTRAN(ncf_set_uvar_aux_info)( int *LIST_dset, int *varid, int aux_cat[], int aux_var[], int *context_dset)
+
+{
+  ncvar *var_ptr=NULL;
+  int status=LIST_OK;
+  int return_val;
+  LIST *varlist;
+  LIST *uvgridlist;
+  uvarGrid *uvgrid;
+  int i;
+
+   /*
+    * Get the list of variables, find pointer to variable varid.
+    */
+  varlist = ncf_get_ds_varlist(LIST_dset);
+
+  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+
+  var_ptr=(ncvar *)list_curr(varlist); 
+
+   /*  
+    * a grid must already exists for this context dataset
+    */
+  uvgridlist = var_ptr->uvarGridList;
+  status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+  if ( status != LIST_OK)
+    {
+      return_val = ATOM_NOT_FOUND;
+      return return_val;
+    }
+
+  uvgrid=(uvarGrid *)list_curr(uvgridlist); 
+
+   /*
+    * Fill the uvar aux arrays
+    */
+  for (i=0; i<NFERDIMS ;i++ )
+    {
+      uvgrid->auxCat[i] = aux_cat[i];
+      uvgrid->auxVar[i] = aux_var[i];
+    }
+
+  return_val = FERR_OK;
+  return return_val;
+}
+
+/* ---- 
+ * Find variable based on its variable ID and LIST_dset ID
+ * Store a grid/context_dset pair for the variable 
+
+ * The dual dataset arguments arise because Ferret's global uvars are managed
+ * in the c LIST structures as a special dataset -- PDSET_UVARS
+ * By contrast LET/D uvars are managed in the c LIST structure of the parent dataset
+ * So we refer to the dataset that owns (parents) the uvar as LIST_dset 
+ * and we refer to the dataset in which Ferret is evaluating the uvar is as context_dset
+ */
+int  FORTRAN(ncf_get_uvar_aux_info)( int *LIST_dset, int *varid, int *context_dset,
+                                     int aux_cat[], int aux_var[])
+
+{
+  ncvar *var_ptr=NULL;
+  int status=LIST_OK;
+  int return_val;
+  LIST *varlist;
+  LIST *uvgridlist;
+  uvarGrid *uvgrid;
+  int i;
+
+   /*
+    * Get the list of variables, find pointer to variable varid.
+    */
+  varlist = ncf_get_ds_varlist(LIST_dset);
+
+  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+
+  var_ptr=(ncvar *)list_curr(varlist); 
+
+   /*  
+    * a grid must already exists for this context dataset
+    */
+  uvgridlist = var_ptr->uvarGridList;
+  status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+  if ( status != LIST_OK)
+    {
+      return_val = ATOM_NOT_FOUND;
+      return return_val;
+    }
+
+  uvgrid=(uvarGrid *)list_curr(uvgridlist); 
+
+   /*
+    * Return the uvar aux arrays
+    */
+  for (i=0; i<NFERDIMS ;i++ )
+    {
+      aux_cat[i] = uvgrid->auxCat[i];
+      aux_var[i] = uvgrid->auxVar[i];
+    }
+
+  return_val = FERR_OK;
+  return return_val;
+}
+
+/* ---- 
+ * Find variable based on its variable ID and LIST_dset ID
+ * Return the length of the LIST of saved grids
+
+ * The dual dataset arguments arise because Ferret's global uvars are managed
+ * in the c LIST structures as a special dataset -- PDSET_UVARS
+ * By contrast LET/D uvars are managed in the c LIST structure of the parent dataset
+ * So we refer to the dataset that owns (parents) the uvar as LIST_dset 
+ * and we refer to the dataset in which Ferret is evaluating the uvar is as context_dset
+ */
+int  FORTRAN(ncf_get_uvar_grid_list_len)( int *LIST_dset, int *uvarid, int *uvgrid_list_len)
+
+{
+  ncvar *var_ptr=NULL;
+  int status=LIST_OK;
+  LIST *varlist;
+  LIST *uvgridlist;
+  uvarGrid *uvgrid_ptr=NULL;
+
+   /*
+    * Get the list of variables, find pointer to variable varid.
+    */
+  varlist = ncf_get_ds_varlist(LIST_dset);
+
+    /* find the relevant LET var (i.e. uvar) */
+  status = list_traverse(varlist, (char *) uvarid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+
+  var_ptr=(ncvar *)list_curr(varlist); 
+
+  uvgridlist = var_ptr->uvarGridList;
+  *uvgrid_list_len = (int)list_size(uvgridlist);
+  
+  return FERR_OK;
+}
+
+
+/* ---- 
+ * Find variable based on its variable ID and LIST_dset ID
+ * Delete the grid that corresponds to the context_dset
+ * from the uvarGridList
+ */
+int  FORTRAN(ncf_delete_uvar_grid)( int *LIST_dset, int *uvarid, int *context_dset)
+
+{
+  ncvar *var_ptr=NULL;
+  int status=LIST_OK;
+  LIST *varlist;
+  LIST *uvgridlist;
+  int return_val;
+
+   /*
+    * Get the list of variables, find pointer to variable varid.
+    */
+  varlist = ncf_get_ds_varlist(LIST_dset);
+
+    /* find the relevant LET var (i.e. uvar) */
+  status = list_traverse(varlist, (char *) uvarid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+
+  var_ptr=(ncvar *)list_curr(varlist); 
+
+    /* find the relevant grid/dataset pair owned by this uvar */
+    /* I dunno why other routines are calling internal routines such
+     * as ncf_get_ds_var_attlist to get the LIST pointers they need.
+     * am I missing something? *sh*
+     */
+  uvgridlist = var_ptr->uvarGridList;
+  if (list_empty(uvgridlist)) return ATOM_NOT_FOUND;
+
+  status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+
+	/* Remove this grid from uvaGridList list */
+  list_remove_curr(uvgridlist);
+
+  return_val = FERR_OK;
+  return return_val;
+}
+
+
+/* ***********************************
+ *  search routines for LIST traversal
+ * ***********************************
+ */
+
 /* ---- 
  * See if the name in data matches the ferret dset name in 
  * curr. Ferret always capitalizes everything so be case INsensitive.
@@ -3666,6 +4154,20 @@ int NCF_ListTraverse_FoundVarID( char *data, char *curr )
 }
 
 /* ---- 
+ * See if the ID in data matches the uvar ID in curr. 
+ */
+int NCF_ListTraverse_FoundUvarID( char *data, char *curr )
+{
+  ncvar *var_ptr=(ncvar*)curr; 
+  int ID=*((int *)data);
+
+   if ( ID == var_ptr->uvarid)  {
+    return FALSE; /* found match */
+  } else
+    return TRUE;
+}
+
+/* ---- 
  * See if the name in data matches the attribute name in curr.
  */
 int NCF_ListTraverse_FoundVarAttName( char *data, char *curr )
@@ -3721,7 +4223,7 @@ int NCF_ListTraverse_FoundVariMemb( char *data, char *curr )
 
 
 /* ---- 
- * See if there is an ID in data matches the dset-member id.
+ * See if there is a match on the dset sequence number.
  */
 int NCF_ListTraverse_FoundDsMemb( char *data, char *curr )
 {
@@ -3729,8 +4231,24 @@ int NCF_ListTraverse_FoundDsMemb( char *data, char *curr )
   ncagg *agg_ptr=(ncagg *)curr;
   int ID=*((int *)data);
 
-  if ( ID== agg_ptr->dsetnum)  {
-    return FALSE; /* found match */
+  /* 12/15 -- search is successful if sequence number (FORTRAN index) matches */
+  if ( ID== agg_ptr->aggSeqNo)  {
+    return FALSE;
   } else
-    return TRUE;
+    return TRUE; /* found match */
+}
+
+/* ---- 
+ * See if there is a match on the context dset
+ */
+int NCF_ListTraverse_FoundGridDset( char *data, char *curr )
+{
+
+  uvarGrid *uvgrid_ptr=(uvarGrid *)curr;
+  int ID=*((int *)data);
+
+  if ( ID== uvgrid_ptr->dset)  {
+    return FALSE;
+  } else
+    return TRUE;  /* found match  (are the other comments like this wrong?)*/
 }
diff --git a/fmt/src/SOURCE_FILES b/fmt/src/SOURCE_FILES
index 198892e..c1957c6 100644
--- a/fmt/src/SOURCE_FILES
+++ b/fmt/src/SOURCE_FILES
@@ -39,6 +39,7 @@ cd_get_generic_grids.F\
 cd_get_line_direction.F\
 cd_get_missing_flag.F\
 cd_get_parent_grids.F\
+cd_get_t0.F\
 cd_get_time_axis.F\
 cd_get_tmap_parms.F\
 cd_get_var_att_id.F\
@@ -48,9 +49,9 @@ cd_get_var_id.F\
 cd_get_var_info.F\
 cd_get_var_outflag.F\
 cd_get_var_outtype.F\
+cd_get_var_uvflag.F\
 cd_init_dset.F\
 cd_init_agg_dset.F\
-cd_isit_another_dset.F\
 cd_isit_epic.F\
 cd_isit_recdim.F\
 cd_load_dset_attrs.F\
@@ -67,6 +68,7 @@ cd_open_out.F\
 cd_put_agg_memb_grid.F\
 cd_put_new_attr.F\
 cd_put_new_attr_dp.F\
+cd_quik_ncopen.F\
 cd_rd_ep_1.F\
 cd_rd_ep_arr.F\
 cd_rd_r8_1.F\
@@ -148,11 +150,13 @@ tm_break_str.F\
 tm_check_box_loc.F\
 tm_check_bnds.F\
 tm_check_bnds_attrib.F\
+tm_check_fmrc_bnds_attrib.F\
 tm_check_bnds_centered.F\
 tm_check_edges_attrib.F\
 tm_choose_read.F\
 tm_clean_filename.F\
 tm_close_set.F\
+tm_close_set_cond_deallo.F\
 tm_close_step.F\
 tm_cmprss.F\
 tm_conv_to_r4.F\
@@ -192,6 +196,7 @@ tm_firm_axis_orient.F\
 tm_fmt.F\
 tm_fmt_sngl_digits.F\
 tm_fmt_sngl.F\
+tm_fmt_user.F\
 tm_fp_convert.F\
 tm_fpeq_eps.F\
 tm_fpeq.F\
@@ -226,6 +231,7 @@ tm_int2_swap.F\
 tm_int4_swap.F\
 tm_irregax_mid.F\
 tm_its_cdf.F\
+tm_its_index_axis.F\
 tm_its_subspan_modulo.F\
 tm_itsa_model_run.F\
 tm_lefint.F\
@@ -242,6 +248,7 @@ tm_make_4d_grids.F\
 tm_make_basic_axis.F\
 tm_make_dyn_line.F\
 tm_make_fmt_date.F\
+tm_bad_epic.F\
 tm_mod.F\
 tm_modulo_axlen.F\
 tm_modulo_line_dim.F\
@@ -265,6 +272,8 @@ tm_re_allo_tmp_line.F\
 tm_read.F\
 tm_read_gridfile.F\
 tm_rename.F\
+tm_rm_tmp_grid.F\
+tm_rm_tmp_line.F\
 tm_same_grid_def.F\
 tm_same_line_def.F\
 tm_scale.F\
@@ -282,6 +291,7 @@ tm_translate_lat_long.F\
 tm_unit_id.F\
 tm_use_dyn_grid.F\
 tm_use_line.F\
+tm_warn_subspan.F\
 tm_world.F\
 tm_world_ax.F\
 tm_ww_ax_1_n.F\
diff --git a/fmt/src/cd_1d_line_from_2d.F b/fmt/src/cd_1d_line_from_2d.F
index 2544d79..02dd30d 100644
--- a/fmt/src/cd_1d_line_from_2d.F
+++ b/fmt/src/cd_1d_line_from_2d.F
@@ -1,5 +1,5 @@
 	SUBROUTINE CD_1D_LINE_FROM_2D (dset, cdfid, varid, vname,
-     .			axcalt, axlagf, status)
+     .			axcalt, axlagf, axlagt, status)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -37,8 +37,12 @@
 * this routine gets the 2D FMRC time array into memory and calls
 * CD_MAKE_FMRC_AXES to synthesize the T calendar time and F lead time
 * axes that are needed to support FMRC visualization and analysis
+* it also modifies the time axis (native_tax) of the dataset -- which TDS
+* provides only as a undocumented dimension, making a lag time axis (axlagt)
 
 * 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
 
 * include files
         include 'netcdf.inc'
@@ -47,21 +51,32 @@
 	include 'tmap_dims.parm'
 #include "tmap_dset.parm"
 
+	include 'xio.cmn_text'
 	include 'xtm_grid.cmn_text'
+	include 'xunits.cmn_text'
 	external xgt_grid_data
 
 
 * calling argument declarations
-	INTEGER dset, cdfid, varid, axcalt, axlagf, status
+	INTEGER dset, cdfid, varid, axcalt, axlagf, axlagt, status
 	CHARACTER*(*) vname
 
 * internal variable declarations
-	LOGICAL coordvar, has_edges
-	INTEGER cdfstat, i, outflag, nvatts, vartype,
+	LOGICAL NC_GET_ATTRIB_STRING, coordvar, has_edges, do_warn, got_it
+	INTEGER TM_LENSTR1, cdfstat, i, outflag, nvatts, vartype,
      .		start(nferdims),count(nferdims), zero(nferdims),
-     .		npts, nT, nF, npts_cdf, vdims(8), nvdim
+     .		npts, nT, nF, npts_cdf, vdims(8), nvdim,
+     .		vlen, blen, bndid, attid, attype, attlen, attoutflag
+	REAL*8  TM_WORLD_AX, avg_lag
 	CHARACTER  TM_STRING*13, buff*256
+	CHARACTER bname*48, attname*48
 
+	INTEGER max_slen
+	PARAMETER (max_slen = 48)
+
+* initialize
+	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, 
@@ -86,12 +101,88 @@
      .			 line_mem(next_line_mem_pos), 0, 0, cdfstat)
 	IF ( cdfstat .NE. NF_NOERR ) GOTO 5000
 
+************* start bounds reading
+	has_edges = .FALSE.   ! assume failure
+* if a 2d time_bounds array exists, read the bounds from it
+* ... first look for a "bounds" attribute on the 2d time array
+	CALL CD_GET_VAR_ATT_ID (dset, varid, 'bounds', attid, status)
+	IF (status.EQ.atom_not_found) GOTO 1000
+
+* ... get the name of the variable pointed to by the bounds array
+        CALL CD_GET_VAR_ATT_INFO (dset, varid, attid, 
+     .                attname, attype, attlen, attoutflag, status )
+	IF (status.EQ.atom_not_found) GOTO 999
+	IF (attype .NE. NCCHAR) GOTO 999
+	got_it = NC_GET_ATTRIB_STRING (dset, varid, attname, 
+     .                                do_warn, vname(:vlen), max_slen, 
+     .                                attlen, attoutflag, bname)
+	IF (.NOT.got_it) GOTO 999
+
+        CALL TM_CHECK_FMRC_BNDS_ATTRIB (dset, nT, nF, vname, vlen, 
+     .                                  bname, bndid, status)
+        IF (status .NE. merr_ok) GOTO 999
+	blen = TM_LENSTR1(bname)
+
+* ... set up limits for reading the lower bounds
+	nvdim = 3
+	start(1) = 1  ! lower bounds
+	count(1) = 1
+	zero (1) = 0
+	start(2) = 1
+	count(2) = nT
+	zero (2) = 0
+	start(3) = 1
+	count(3) = nF
+	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)
+	IF ( cdfstat .NE. NF_NOERR ) GOTO 999
+
+* ... alter limits for reading the single upper bound of the top point
+	start(1) = 2  ! upper bound
+	count(1) = 1
+	zero (1) = 0
+	start(2) = nT
+	count(2) = 1
+	zero (2) = 0
+	start(3) = nF
+	count(3) = 1
+	zero (3) = 0
+
+* ... 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)
+	IF ( cdfstat .NE. NF_NOERR ) GOTO 999
+
+* ... success!
+	has_edges = .TRUE.
+	GOTO 1000
+
+* ... report corruption in bounds linkage
+ 999	CALL TM_NOTE('2D bounds attribute corruption', lunit_errors)
+************* end bounds reading
+
 * make the axes needed by the FMRC dataset
-	has_edges = .FALSE.
-	CALL CD_MAKE_FMRC_AXES (dset, has_edges, varid, vname, vartype,
+ 1000	CALL CD_MAKE_FMRC_AXES (dset, has_edges, varid, vname, vartype,
      .			    npts, nT, nF, axcalt, axlagf, status)
 	IF (status .NE. merr_ok) GOTO 5000
 
+* 3/16 - correct the lag-time axis of the FMRC (created by Unidata TDS)
+*    from a simplistic 1, ..Nt axis to a true delta (lag) time
+	line_unit_code(axlagt) = line_unit_code(axcalt)
+	line_units(axlagt) = un_name(line_unit_code(axlagt))
+	line_direction(axlagt) = 'TT'
+	line_dattype  (axlagt) = nf_double
+	line_dim_only (axlagt) = .FALSE.  ! no longer netCDF dim w/o coord var
+
+	avg_lag = ( TM_WORLD_AX(nT, axcalt, box_middle )
+     .	          - TM_WORLD_AX(1,  axcalt, box_middle ) ) / (nT-1)
+	line_start(axlagt)     = avg_lag/2.  ! box 1 starts at 0.0
+	line_delta(axlagt)     = avg_lag
+
 * successful completion
         status = merr_ok
 	RETURN
diff --git a/fmt/src/cd_add_var.F b/fmt/src/cd_add_var.F
index 1e4fc25..ead71ba 100644
--- a/fmt/src/cd_add_var.F
+++ b/fmt/src/cd_add_var.F
@@ -42,11 +42,13 @@
 * NOAA/PMEL, Seattle, WA - TMAP
 *
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V698 *sh* 1/16 -- added status check/warning, since not checked by callers
 *
 * include files
 
       INCLUDE "tmap_dtypes.parm"
       INCLUDE "netcdf.inc"
+      INCLUDE 'tmap_errors.parm'
 
 * Argument declarations
       LOGICAL coordvar
@@ -94,5 +96,7 @@
       status = NCF_ADD_VAR( dset_num, varid, type, coordvar,
      .                      vhol, thol, uhol, badd)
 
+      IF (status .NE. pcd_ferr_ok) CALL WARN('ERROR in CD_ADD_VAR')
+
       RETURN
       END
diff --git a/fmt/src/cd_axis_name.F b/fmt/src/cd_axis_name.F
index c5e669d..df7945d 100644
--- a/fmt/src/cd_axis_name.F
+++ b/fmt/src/cd_axis_name.F
@@ -47,6 +47,7 @@
 *                 axis name in the attribute structure differ because Ferret
 *                 needed to rename an axis on file initialization for uniqueness;
 *                 we use the Ferret name throughout, restoring it only on output.
+* V697 12/15 *acm* Fix ticket 2336: consistent application of CAN MODE UPCASE
 
 * argument definitions:
 *     dset    - dset (if netcdf file, for getting name and attribute 
@@ -79,24 +80,24 @@
       iaxis = grid_line(idim, grid)
 
 * basic name straight from the grid
-      CD_AXIS_NAME = line_name(iaxis)
-      nlen = TM_LENSTR1( CD_AXIS_NAME )
+      buff = line_name(iaxis)
+      nlen = TM_LENSTR1( buff )
 
 * Get information, if it exists, from linked-list structure, including
 * original upper/lowercase form of axis name. Also restore the original
 * name if the axis name was changed on inupt. (If name matched an existing 
 * line name, then Ferret appends a digit to the name.)
 
-      CALL CD_GET_VAR_ID (dset, CD_AXIS_NAME, varid, status)  ! is it in the linked-list for dset
+      CALL CD_GET_VAR_ID (dset, buff, varid, status)  ! is it in the linked-list for dset
 
       IF (status .NE. merr_ok) THEN
-         nlen = TM_LENSTR1( CD_AXIS_NAME )
+         nlen = TM_LENSTR1( buff )
 
       ELSE
 
 * Get axis name into original upper/lowercase form.
 
-         CALL CD_GET_VAR_INFO (dset, varid, CD_AXIS_NAME, vartype, 
+         CALL CD_GET_VAR_INFO (dset, varid, buff, vartype, 
      .       nvdims, vdims, nvatts, coordvar, all_outflag,status) 
 
       ENDIF
@@ -105,17 +106,18 @@
 
 * if it's an abstract axis make a special name
       IF ( TM_ABSTRACT_AXIS( iaxis ) ) THEN
-         CD_AXIS_NAME = ww_dim_name(idim)//'AX'
+         buff = ww_dim_name(idim)//'AX'
          nlen = 3
 
 * if it's a dynamic axis remove the parentheses
       ELSEIF ( line_name(iaxis)(1:1) .EQ. '(' ) THEN
 	 IF ( nlen .LE. 2) nlen = 3			! should never happen
-         CD_AXIS_NAME = line_name(iaxis)(2:nlen-1)
+         buff = line_name(iaxis)(2:nlen-1)
 	 nlen = nlen - 2
       ENDIF
 
-      nlen = TM_LENSTR1( CD_AXIS_NAME )
+      nlen = TM_LENSTR1( buff )
+      CD_AXIS_NAME = buff(:nlen)
 
       RETURN
       END
diff --git a/fmt/src/cd_clean_grids.F b/fmt/src/cd_clean_grids.F
index 40920dd..f416139 100644
--- a/fmt/src/cd_clean_grids.F
+++ b/fmt/src/cd_clean_grids.F
@@ -1,4 +1,5 @@
-	SUBROUTINE CD_CLEAN_GRIDS ( dset, cdfid, temp_axnams, status )
+	SUBROUTINE CD_CLEAN_GRIDS ( dset, cdfid, temp_axnams,
+     .				    ok_share_taxis, native_tax, status )
 
 
 *  This software was developed by the Thermal Modeling and Analysis
@@ -67,12 +68,14 @@
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
 * v694 1/15 *acm* for ticket 2227: if a dimension from a nc file is not also a 
 *                 1-D coordinate var, don't write the axis Ferret creates
+* V698 11/15 *sh* new args control whether sharing of T axis is allowed
 
 * argument definitions:
 *       dset    - pointer to TMAP data set
 *	cdfid	- netCDF id number for already opened CDF file
 *       temp_axnams - temporary storage of axis names to construct grids
-*       temp_grid_ptr - points from temporary name storage to actual grid
+*       ok_share_taxis - (input) is it ok to reuse T axis of another dataset
+*       native_tax - (input) the native time axis of this dataset
 *	status	- return status
 
 * include files
@@ -87,7 +90,8 @@
 
 
 * argument declarations
-	INTEGER	 dset, cdfid, status
+	LOGICAL ok_share_taxis
+	INTEGER	 dset, cdfid, native_tax, status
 *4/99 *kob*
         CHARACTER*128 temp_axnams(nferdims,max_temp_grid)
 
@@ -117,8 +121,16 @@
 	iaxis = 0	! to get start of linked list
  100	CALL TM_NEXT_TMP_LINE( iaxis, *110)
 	  reused(iaxis) = TM_GET_LINEMATCH( iaxis, dup_name, dup_guts )
+* ... hack: multi-file T-aggregated dset must not share any existing taxis at
+*     this stage, because more time steps will be appended to it
+	  IF (   .NOT.ok_share_taxis
+     .	   .AND. iaxis.EQ.native_tax
+     .     .AND. reused(iaxis).NE.unspecified_int4 ) THEN
+	      reused(iaxis) = unspecified_int4
+	      dup_guts = .FALSE.
+	  ENDIF 
 	  IF ( dup_name .AND. .NOT.dup_guts ) THEN
-	     line_fixname(iaxis) = .TRUE.	  ! new definition reuses old name
+	     line_fixname(iaxis) = .TRUE.  ! new definition reuses old name
 	  ELSE
 	     line_fixname(iaxis) = .FALSE.
 	  ENDIF
diff --git a/fmt/src/cd_consistent_axis_orient.F b/fmt/src/cd_consistent_axis_orient.F
index b63c8f0..8195370 100644
--- a/fmt/src/cd_consistent_axis_orient.F
+++ b/fmt/src/cd_consistent_axis_orient.F
@@ -35,6 +35,7 @@
 *
 *
 * Checks that axis orientation is the same for all grids in the dataset
+! it looks like the routine does more than this ...
 
 * Programmer Ansley Manke
 * NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
@@ -44,6 +45,7 @@
 *                 in all  grids of a dataset.
 * V672 8/11 *acm* When reordering axes, dont wipe out an existing axis that is not being moved.
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
+* V698 3/16 *sh*  changed an array declaration to match grid_ceiling change
 
 * argument definitions:
 *      dset        - TMAP data set pointer
@@ -68,7 +70,8 @@
       include 'xdset_info.cd_equiv'
 
 * argument declarations
-      LOGICAL  reversed(max_lines:line_ceiling), already_noted(max_lines:line_ceiling)
+      LOGICAL  reversed(max_lines:line_ceiling),
+     .         already_noted(max_lines:line_ceiling)
       INTEGER dset, perm(*), status
 
 * local variable declarations:
@@ -86,11 +89,22 @@
       INTEGER grid_ndims (max_grids:grid_ceiling), 
      .        line_use_dir(0:3000)
 
-      INTEGER copy_of_grids (nferdims, 1001)
+
+! *sh* 3/2016 It looks as if experimental changes were made
+!    in this routine that became permanent parts of it:
+! 1. it contains explicit integer values 100, 1001, 3000, 500, 501
+!    that do not automatically adjust when the corresponding parameter values
+!    are adjusted
+! 2. it makes a copy of every grid -- the majority of which have nothing to do
+!    with this dataset ==> significant scalablity issue
+
+!      INTEGER copy_of_grids (nferdims, 1001)
+      INTEGER copy_of_grids (nferdims,grid_ceiling)   !!!! TEMPORARY  !!!! 
 
       iter = 0
       reordered = 0
 
+! why are we copying grids that are not used by this dataset?
       DO igrid = 501, grid_ceiling
       DO idim = 1, nferdims
          copy_of_grids(idim, igrid-500) = grid_line(idim, igrid)
diff --git a/fmt/src/cd_get_1_axis.F b/fmt/src/cd_get_1_axis.F
index cd2dec5..5ffd57a 100644
--- a/fmt/src/cd_get_1_axis.F
+++ b/fmt/src/cd_get_1_axis.F
@@ -183,6 +183,11 @@
 * so it is treated as not modulo.
 * V694  5/15 *acm* Match precision for bounds checks (as is done for coords).
 * V695+  5/15 *sh* allow "units='none'" as ignorable units string (for Andrew)
+* V695+ 10/15 *sh* pass axis length instead of iaxis to TM_CHECK_BNDS_ATTRIB
+* V698   4/16 *sh* recognize special E and F non-convertible axis units
+* V698  5/16 *acm* for ticket 1432, could write a note when encountering a 
+*                  supbspan modolo axis with length almost the modulo length.
+*                  (commented out for now.)
 
 * argument definitions:
 *       cdfid    - netCDF id number for already opened CDF file  (to go away with new attr. hanling)
@@ -228,7 +233,7 @@
       LOGICAL NC_GET_ATTRIB, CD_GET_ATTVAL, TM_CHECK_BOX_LOC,
      .        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_FPEQ, TM_DFPEQ_TOL, NC_GET_ATTRIB_DP, TM_ITS_SUBSPAN_MODULO,
      .        got_it, got_torg, do_warn,
      .        epic_time, west_lon, yyyymmdd_time, 
      .        got_mod, mod_tf, setmodfalse, ok_cal, ok,
@@ -255,7 +260,7 @@
      .        dscale, doffset,  micro_adj, madj
       CHARACTER*12 TM_LEFINT
       CHARACTER vname*128, ename*128, vupcase*128, words(8)*24,
-     .        spacing_attr*14, bname*128
+     .        spacing_attr*14, bname*128, TM_FMT*32
       CHARACTER*13 TM_STRING
       CHARACTER*1 axis_dir
       CHARACTER*3 dbuf
@@ -560,7 +565,10 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
       ENDIF
 
       line_unit_code(iaxis) = units
-      IF  ( units.EQ.0 .AND. line_units(iaxis) .NE. ' ' ) THEN
+      IF  (   units.EQ.0
+     .  .AND. line_units(iaxis) .NE. ' '
+     .  .AND. line_units(iaxis) .NE. plag_ax_units_e
+     .  .AND. line_units(iaxis) .NE. plag_ax_units_f ) THEN
          CALL TM_NOTE('Units on axis "'//vname(:vlen)//
      .                '" are not recognized: '//line_units(iaxis), tt)
          CALL TM_NOTE('They will not be convertible:', tt)
@@ -1111,8 +1119,8 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
         IF ( .NOT.got_bnds ) GOTO 600
 
 * Check the bounds variable, issue any warnings.
-        CALL TM_CHECK_BNDS_ATTRIB (dset, iaxis, vname, vlen, bname,
-     .                             bndid, status)
+        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.
@@ -1302,6 +1310,9 @@ c             line_modulo_len(iaxis) = 0.0D0
            ENDIF
         ENDIF
 
+* Write a note when subspan modulo axis length within a grid cell of modulo length
+c	CALL TM_WARN_SUBSPAN (iaxis)
+
 * Save the line direction in the linked-list structure for the coordinate variable
 
          dir = 0
diff --git a/fmt/src/cd_get_1_dep_var.F b/fmt/src/cd_get_1_dep_var.F
index 5e5d4c8..15d974b 100644
--- a/fmt/src/cd_get_1_dep_var.F
+++ b/fmt/src/cd_get_1_dep_var.F
@@ -101,7 +101,7 @@
       LOGICAL NC_GET_ATTRIB_FLOAT, NC_GET_ATTRIB_STRING, 
      .        NC_GET_ATTRIB, CD_GET_BOUNDS,
      .        got_it, got_bad, got_missing, tf2,
-     .        do_warn, coordvar
+     .        do_warn, coordvar, its_epic
       PARAMETER (do_warn = .TRUE. )
       INTEGER TM_LENSTR1, TM_FERRET_VARTYPE, 
      .        cdfstat, idim,
@@ -131,6 +131,8 @@
 
       EQUIVALENCE ( ds_precision, cd_data_type )
 
+           its_epic = ds_type(dset) .EQ. 'ECDF'
+
 * get the vital statistics for this variable
 
            CALL CD_GET_VAR_INFO(dset, ivcd, vname, vartyp, 
@@ -315,7 +317,7 @@ c        ENDIF
      .           ds_bad_flag(ivtm) =  ds_missing_flag(ivtm)
 	        
 * if neither missing flag nor _FillValue was defined, use NaN.
-             IF ( .NOT.got_missing .AND. .NOT.got_bad) THEN
+             IF ( .NOT.got_missing .AND. .NOT.got_bad .AND. .NOT.its_epic) THEN
                 CALL SET_NAN (ds_missing_flag(ivtm))
 		CALL SWITCH_NAN(ds_bad_flag(ivtm), ds_missing_flag(ivtm), bad_r4)
 		IF (do_warn .AND. tmap_diag_on) CALL WARN(
diff --git a/fmt/src/cd_get_agg_var_info.F b/fmt/src/cd_get_agg_var_info.F
index 280d189..91b7e64 100644
--- a/fmt/src/cd_get_agg_var_info.F
+++ b/fmt/src/cd_get_agg_var_info.F
@@ -37,6 +37,7 @@
 * NOAA/PMEL, Seattle, WA - TMAP 
 *
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V698 *sh* 1/16 -- added status check/warning, since not checked by callers
 *
 * Given aggregate datset, variable name in the set, aggregate sequence number,
 * return the Ferret datset id, grid number and variable type for the variable 
@@ -50,6 +51,9 @@
 *   mdset    Ferret dataset number
 *   nv       sequence number in ds_var_code or uvar_name_code
 
+      INCLUDE 'tmap_errors.parm'
+
+
 * Argument declarations
 
 	CHARACTER*(*) vname
@@ -62,5 +66,6 @@
 	status = NCF_GET_AGG_VAR_INFO( agg_dset, varid, imemb, vtype, 
      .		mdset, igrid, iline, nv)
 
+	IF (status .NE. pcd_ferr_ok) CALL WARN('ERROR in CD_GET_AGG_VAR_INFO')
 	RETURN
 	END
diff --git a/fmt/src/cd_get_calendar_name.F b/fmt/src/cd_get_calendar_name.F
old mode 100755
new mode 100644
diff --git a/fmt/src/cd_get_generic_bounds.F b/fmt/src/cd_get_generic_bounds.F
index ccd70c7..d931fc6 100644
--- a/fmt/src/cd_get_generic_bounds.F
+++ b/fmt/src/cd_get_generic_bounds.F
@@ -60,6 +60,9 @@
 * V686 4/13 *acm* Fix ticket 2064: use single-precision comparisons
 * v694 1/15 *acm* for ticket 2227: if a dimension from a nc file is not also a 
 *                 1-D coordinate var, don't write the axis Ferret creates
+* V698  4/16 *acm* Fix ticket 2241: If file has dimension but not a coordinate 
+*                  variable, do not write the coordinate variable, ONLY IF writing 
+*                  the full-span in that direction.
 
 * argument definitions:
 *	cdfid   - id of currently open CDF file
@@ -146,9 +149,11 @@
 #endif
 	      alen = TM_LENSTR1( axnam )
 
-* If the dimension is not also a 1-D coord var, we are not writing coords, 
-* so dont check them.
-	      IF (line_dim_only(grid_line(idim,grid)) ) THEN
+* If the dimension is not also a 1-D coord var, and if we're writing the full 
+* span, then we are not writing coords, so dont check them.
+              
+	      IF (line_dim_only(grid_line(idim,grid)) .AND.
+     .            line_dim(grid_line(idim,grid)) .EQ. npts) THEN
 	          cdflo(idim) = 1
 	          cdfhi(idim) = npts
 	          GOTO 100
diff --git a/fmt/src/cd_get_generic_grids.F b/fmt/src/cd_get_generic_grids.F
index 9207ecd..19ae5d4 100644
--- a/fmt/src/cd_get_generic_grids.F
+++ b/fmt/src/cd_get_generic_grids.F
@@ -1,5 +1,5 @@
 	SUBROUTINE CD_GET_GENERIC_GRIDS (dset,cdfid,temp_axnams,reversed,
-     .					 perm, status)
+     .					 perm, native_tax, status)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -70,6 +70,9 @@
 *                 a cf_role attribute, assign its axis to the E direction. (If the
 *                 file has coordinate variables with assigned axes, keep the 
 *                 direction assigned in the file.)
+* V697 11/15 *sh* return the line number of the native time axis of this dset
+* V697 12/15 *am* Fix the logic around checking the calendar attributes when 
+*                 grid has both T and F axes
 
 * argument definitions:
 *       dset        - TMAP data set pointer
@@ -77,6 +80,7 @@
 *       temp_axnams - nferdims axis names per grid: temp until grids are assembled
 *       reversed    - logical array to record which axes have reversed coords
 *       perm        - user-specified permutation (e.g. "YXZT"=2,1,3,4)
+*	native_tax  - (output) line no of time axis of this dataset
 *	status	    - return status
 
 * include files
@@ -96,7 +100,7 @@
 
 * argument declarations
 	LOGICAL  reversed(max_lines:line_ceiling)
-	INTEGER	 dset, cdfid, perm(nferdims), status
+	INTEGER	 dset, cdfid, perm(nferdims), native_tax, status
 	CHARACTER*128 temp_axnams(nferdims,max_temp_grid)
 
 * local parameter definitions:
@@ -106,7 +110,7 @@
 * local variable declarations:
 * *kob* explicit definitions not allowed on decl line in linux...
 *       moved them to parameter line 10/96
-      LOGICAL NC_GET_ATTRIB,
+      LOGICAL NC_GET_ATTRIB, CD_GET_ATTRIB,
      .        got_it, do_warn, centers, coordvar
       PARAMETER (do_warn = .TRUE. )
       PARAMETER (centers = .TRUE. )
@@ -115,14 +119,17 @@
      .        ivar, vartyp, nvdims, vdims(8), nvatts, vlen, idim2,
      .        tmvar, tmpgrid, npts, dim, tmplines(nferdims), ndim,
      .	      grid_dims(nferdims), trans(nferdims), indices(nferdims),
-     .        i, maxlen, attlen,attoutflag, all_outflag, axid, iaxis5,
-     .        attid, eax, cfrole_dim
+     .        i, maxlen, attlen,attoutflag, all_outflag, axid, iaxis6,
+     .        attid, eax, cfrole_dim, blen
       REAL    tmp
-      CHARACTER name*128, vname*128, linunits*16
+      CHARACTER name*128, vname*128, linunits*24, cal_str*24, cal_t*24, cal_f*24
 
       INTEGER tt  ! nice short name
       EQUIVALENCE (tt,lunit_errors)
 
+* initialize
+	native_tax = mpsnorm
+
 * initialize temporary grid name pointer
 	num_tmp_grids = 0
 	DO 5 i = max_grids, grid_ceiling
@@ -185,7 +192,7 @@
            ivar = cd_varid(tmvar)
 
 * does it point explicitly to a parent grid ?
-          maxlen = 16   !linenamlen
+          maxlen = 24   !linenamlen
           got_it = NC_GET_ATTRIB( dset, ivar, 'parent_grid',
      .                       .NOT.do_warn, ' ', maxlen, attlen, 
      .                       attoutflag, name, tmp )
@@ -218,6 +225,8 @@
  10        CONTINUE
 
 * find the axis names from the CDF file
+	   cal_t = ' '
+	   cal_f = ' '
            DO 200 idim = 1, nvdims
 
 * ... get name of dimension
@@ -246,7 +255,7 @@
 
 * axis ID
 	      CALL CD_GET_VAR_ID (dset, name, axid, status)
-	      linunits = char_init16
+	      linunits = char_init24
 	      IF (idim .EQ. cfrole_dim) THEN
 	         line_direction(iaxis) = 'EE'
 		 cfrole_dim = 0  ! reset. Just one axis will have this role.
@@ -259,6 +268,13 @@
 * save a pointer to the axis just found
  150          IF (idim.LE.nferdims) tmplines(idim) = iaxis
 
+              CALL CD_GET_VAR_ID (dset, name, axid, status)
+	      blen = 24
+              got_it = CD_GET_ATTRIB( cdfid, axid, 'calendar',
+     .                  do_warn, vname(:vlen), cal_str, attlen, blen )
+	      IF (got_it .AND. line_direction(iaxis)(1:1).EQ.'T') cal_t = cal_str
+	      IF (got_it .AND. line_direction(iaxis)(1:1).EQ.'F') cal_f = cal_str
+
  200       CONTINUE
 
 * reorder the axes into the most likely order if not explicitly given
@@ -306,20 +322,39 @@
 	      idim2 = grid_dims(idim)
               temp_axnams(idim2,tmpgrid) = line_name(iaxis)
               ds_grid_end(idim2,tmvar)   = line_dim(iaxis)
+* ... arbitrarily, the native taxis taken from the first grid with a time axis
+	      IF (idim2.EQ.t_dim .AND. native_tax.EQ.mpsnorm)
+     .						native_tax = iaxis
 * ... flag reverse-ordered coordinate axis of variable (2/95)
 	      IF ( reversed(iaxis) ) ds_ordering(idim,tmvar)
      .			      = -1 * ds_ordering(idim,tmvar)
  250       CONTINUE
 
 * ... If there is a T and an F axis, check for matching calendars
-           idim = 5
-	   iaxis5 = tmplines(indices(idim))
-	   IF (iaxis5 .NE. unspecified_int4) THEN
-	     IF (STR_SAME(line_cal_name(iaxis), line_cal_name(iaxis5)) .NE. 0) 
-     .        CALL TM_ERRMSG
-     .        ( istat+pcdferr,status,'CD_GET_GENERIC_GRIDS',cdfid,ivar,
-     .        vname(:vlen), 'Calendar definitions on T and F axes must match', *5900 )
+
+	   iaxis = 0
+	   iaxis6 = 0
+           DO 260 idim = 1, ndim
+	      IF (trans(idim) .EQ. T_DIM) iaxis  = tmplines(idim)
+	      IF (trans(idim) .EQ. F_DIM) iaxis6 = tmplines(idim)
+ 260       CONTINUE
+
+*     When there is a calendar attrib on the the F or T axis but not both, 
+*     use the specified calendar for the both time dimensions
+
+	   IF (iaxis.GT.0 .AND. iaxis6.GT.0) THEN
+	      IF ( (STR_SAME(cal_f, ' ') .EQ. 0) )
+     .           line_cal_name(iaxis6) = line_cal_name(iaxis)
+	      IF ( (STR_SAME(cal_t, ' ') .EQ. 0) )
+     .           line_cal_name(iaxis) = line_cal_name(iaxis6)
+
+              IF (STR_SAME(line_cal_name(iaxis), line_cal_name(iaxis6)) .NE. 0) 		
+     .		CALL TM_ERRMSG (merr_axis_att, status, 'CD_GET_GENERIC_GRIDS',
+     .            no_descfile, 1,
+     .		  'Calendar definitions on T and F axes must match',
+     .            no_errstring, *5900 )
 	   ENDIF
+
 * is the temporary grid we just created unique ?
 	   igrid = 0
  300	   CALL TM_NEXT_TMP_GRID( igrid, *320)
diff --git a/fmt/src/cd_get_t0.F b/fmt/src/cd_get_t0.F
new file mode 100644
index 0000000..d14176d
--- /dev/null
+++ b/fmt/src/cd_get_t0.F
@@ -0,0 +1,181 @@
+        SUBROUTINE CD_GET_T0(filename, units_string, calendar_string,
+     .                  agg_cal_id, unit_code, t0_string, 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. 
+*
+*
+* Given the a CF time units string of the form "<time units> since <T0>"
+* (or a historical bevvy of alternative formats from per cd_get_1_axis)
+* extract the units and T0 string and convert T0 into a standard Vax format of
+* dd-mon-yyyy:hh:mm:ss, where "mon" is a 3-letter month name
+
+* Programmer Steve Hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+
+* V695+  10/15 *sh* new routine extracted from code in cd_get_1_axis
+
+* argument definitions:
+*       filename (input)
+*               - name of file being processed
+*       units_string (input)
+*               - string associated with the units attribute in a CF file
+*       calendar_string (input)
+*               - string associated with the calendar attribute in a CF file
+*       agg_cal_id (input) - id calendar used by file1 of the aggregation
+*       unit_code(output)  - time units of this file
+*       t0_string (output) - T0 string in standard Vax form
+*       status    (output) - return status
+
+* include files
+        include 'tmap_errors.parm'
+#include "gt_lib.parm"
+        include 'calendar.decl'
+        include 'errmsg.parm'
+        include 'xio.cmn_text'
+
+* argument declarations
+        INTEGER  status, unit_code, agg_cal_id
+        CHARACTER*(*) filename, units_string, calendar_string, t0_string
+
+* local variable declarations:
+        LOGICAL ok_cal, yyyymmdd_time
+        INTEGER TM_LENSTR1, TM_UNIT_ID, TM_GET_CALENDAR_ID, STR_UPCASE,
+     .           flen, clen, slen, istat, since_T0
+        CHARACTER cal_name*32, tunits*32, dbuf*3, buff*128
+        REAL*8 TM_SECS_FROM_BC, 
+     .         days_neg4713, days_1901_may68, secs_to_1901, secs_to_1968 
+
+        INTEGER tt  ! nice short name
+        EQUIVALENCE (tt,lunit_errors)
+
+* parameter declarations
+        REAL*8          psecs_per_day
+        PARAMETER     ( psecs_per_day = 60.*60.*24. )
+
+* initialize
+        flen = TM_LENSTR1(filename)
+        clen = TM_LENSTR1(calendar_string)
+        t0_string = ' '
+
+* check that the calendar of this file is consistent with the given agg_cal_id
+* warning only if it is not
+        IF (calendar_string .EQ. ' ') THEN
+           cal_name= 'GREGORIAN'   ! default
+        ELSE
+           cal_name = calendar_string
+        ENDIF
+        CALL CD_GET_CALENDAR_NAME(cal_name, ok_cal)
+        IF (ok_cal) ok_cal= agg_cal_id.EQ.TM_GET_CALENDAR_ID (cal_name)
+        IF (.NOT.ok_cal) CALL TM_NOTE("calendar attribute "//
+     .       calendar_string(:clen)//" in file "//filename(:flen)//
+     .       " is inconsistent with file 1 of aggregation. Ignored", tt)
+
+* units_string typ will contain "tunits since T0_date"
+        buff = units_string
+        since_T0 = MAX( INDEX(buff,'since'), INDEX(buff,'SINCE') )
+        yyyymmdd_time = buff(1:15) .EQ. 'yyyymmddhhmmss'
+
+        IF ( since_T0 .GT. 2 ) THEN
+           tunits = buff(:since_T0-1)  ! just the "units" name
+           istat = STR_UPCASE( dbuf, buff(1:3) )
+           slen = TM_LENSTR1(buff)
+           IF ( slen .GT. since_T0 + 5) THEN
+              IF (buff(since_T0+6:since_T0+10) .EQ. '-4713' .AND.
+     .            dbuf .EQ. 'DAY')  THEN
+
+c  This is the simple conversion; but we will reset the origin to 1901.
+c               buff = 'DAYS since 1968-05-23 00:00:00'
+c               days_neg4713 = 2440000.D0
+
+                 buff = 'DAYS since 1901-01-15 00:00:00'
+                 secs_to_1901 = TM_SECS_FROM_BC 
+     .                        (GREGORIAN, 1901,1,15,0,0,0,status)
+                 secs_to_1968 = TM_SECS_FROM_BC 
+     .                        (GREGORIAN, 1968,5,23,0,0,0,status)
+                 days_1901_may68 = (secs_to_1968 - secs_to_1901)/
+     .                             psecs_per_day
+                 days_neg4713 = 2440000.D0 - days_1901_may68
+              ENDIF
+              CALL TM_DATE_REFORMAT(buff(since_T0+6:),pdate_numslashnum,
+     .                            agg_cal_id, t0_string,
+     .                            pdate_vax, .FALSE., status )
+
+c fix for bug 1394
+c If the part after since is not a date/time, just keep the whole
+c string as the units.  i.e., "days_since_event".
+              IF ( status .NE. merr_ok ) THEN   
+                 tunits = buff(:slen)
+                 t0_string = ' '
+                 status = merr_ok
+              ENDIF
+           ELSE
+              T0_string = ' '        ! no T0 is present
+           ENDIF
+        ELSEIF ( yyyymmdd_time ) THEN
+           tunits = 'days'
+           t0_string  = 'yyyymmdd' ! relevant?  untested code as of 11/2015
+        ELSE
+           tunits = buff
+           t0_string = ' '
+        ENDIF
+
+* decode the units
+        unit_code = TM_UNIT_ID( tunits )
+        IF ( unit_code.EQ.0 .AND. tunits .NE. ' ' ) GOTO 5100
+
+* Named calendar with unit=year gets length of year in that calendar.
+      IF (unit_code .EQ. -6 .OR. unit_code .EQ. -10) THEN
+         IF (agg_cal_id .EQ. d360) unit_code = -9
+         IF (agg_cal_id .EQ. julian) unit_code = -12
+	 IF (agg_cal_id .EQ. noleap) unit_code = -11
+	 IF (agg_cal_id .EQ. all_leap) unit_code = -8
+      ENDIF
+
+* Named calendar with unit=month gets length of month in that calendar.
+      IF (unit_code .EQ. -5) THEN
+         IF (agg_cal_id .EQ. d360) unit_code = -14
+         IF (agg_cal_id .EQ. julian) unit_code = -15
+	 IF (agg_cal_id .EQ. noleap) unit_code = -13
+      ENDIF
+
+* successful completion
+        status = merr_ok
+        RETURN
+
+* error exits
+ 5000   RETURN
+ 5100   CALL TM_ERRMSG (merr_badlinedef, status, 'CD_GET_T0',
+     .                  no_descfile, filename(:flen),
+     .                  'unintelligible units '//units_string,
+     .                  no_errstring, *5000)
+        END
diff --git a/fmt/src/cd_get_var_att_id.F b/fmt/src/cd_get_var_att_id.F
index 2735c0f..6e02115 100644
--- a/fmt/src/cd_get_var_att_id.F
+++ b/fmt/src/cd_get_var_att_id.F
@@ -44,6 +44,8 @@
 *      6/06 *acm* missing declarations of ncf functions
 * V602  2/07 *acm* Fix bug 1492, changing attributes of coordinate variables 
 * V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
+* v698 5/16  *acm* ticket 2413: New attribute keywords ncoordvars, coordnames
+*                  return info about coordinate-variables in datasets
 
 * include files
 #include "gt_lib.parm"
@@ -85,17 +87,22 @@
 * If the name is a pseudo-name for describing attributes then return attid=0.
 * If a file contains one of these names as an attribute, it can be accessed
 * by putting it in quotes.
+* coordnames are coordinate variables (dimensions that are also coordinate variables).
 
       IF (STR_SAME(abuff(:slen), 'varnames') .EQ. 0 ) THEN
          RETURN
       ELSE IF (STR_SAME(abuff(:slen), 'nvars') .EQ. 0 ) THEN
          RETURN
+      ELSE IF (STR_SAME(abuff(:slen), 'ncoordvars') .EQ. 0 ) THEN
+         RETURN
       ELSE IF (STR_SAME(abuff(:slen), 'attnames') .EQ. 0 ) THEN 
          RETURN
       ELSE IF (STR_SAME(abuff(:slen), 'nattrs') .EQ. 0 ) THEN
          RETURN
       ELSE IF (STR_SAME(abuff(:slen), 'dimnames') .EQ. 0 ) THEN
          RETURN
+      ELSE IF (STR_SAME(abuff(:slen), 'coordnames') .EQ. 0 ) THEN
+         RETURN
       ELSE IF (STR_SAME(abuff(:slen), 'ndims') .EQ. 0 ) THEN
          RETURN
       ELSE IF (STR_SAME(abuff(:slen), 'nctype') .EQ. 0 ) THEN
diff --git a/fmt/src/cd_get_var_id.F b/fmt/src/cd_get_var_id.F
index 1f39df5..2bea40a 100644
--- a/fmt/src/cd_get_var_id.F
+++ b/fmt/src/cd_get_var_id.F
@@ -47,6 +47,14 @@
 * V611  5/08 *acm* Fix bug 1578, dataset specifier on the variable var[d=1].attr
 * V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
 * V6.94 3/15 *acm* Fix ticket 2249: attribute handling for user-defined variables
+* V698 *sh* 1/16 -- added status check/warning, since not checked by callers
+* V699 *sh* 6/16 - bug fix:  this routine falsely identified Ferret child
+*                  variables, which have names of the form "(Cnnn,Vmmm)" as
+*                  coordinate variables.  It then returned a status indicating
+*                  failure that was regarded as acceptable, presumably because
+*                  a user may mis-type a coordinate variable name
+*                  The result is that child variables did not get deleted.
+* V7   *acm* 6/16 -The above fix needs to first check for string length.
 
 * include files
 #include "gt_lib.parm"
@@ -64,7 +72,8 @@
       CHARACTER*512 buff
       LOGICAL coordvar
       INTEGER TM_LENSTR1, NCF_GET_VAR_ID, NCF_GET_VAR_ID_CASE,
-     .        NCF_GET_VAR_AXFLAG, slen, flen, dir, dset_num, bkt1, bkt2
+     .        NCF_GET_VAR_AXFLAG, FIND_DSET_NUMBER, STR_UPCASE,
+     .        slen, flen, dir, dset_num, bkt1, bkt2, istrt, iend, iset
       PARAMETER (flen=512)      ! size of variable name string
 
 #ifdef sun
@@ -79,7 +88,20 @@
       dset_num = dset
       IF (dset_num .LT. -2) dset_num = -2
 
-      buff = vname
+      istrt = STR_UPCASE(buff,vname)
+
+* 6/16 *sh* **HACK!!!**
+* ==> Detect Ferret child-variable name of the form "(C011,V007)"
+* so they are not mis-identified as coordinate variable names
+* (IMHO a low level routine such as this one should not be doing parsing)
+      slen = TM_LENSTR1(vname)
+      IF (slen .GE. 11) THEN
+         IF  ( vname(1:1)   .EQ. '('
+     .    .AND.vname(2:2)   .EQ. 'C'
+     .    .AND.vname(6:6)   .EQ. ','
+     .    .AND.vname(7:7)   .EQ. 'V'
+     .    .AND.vname(11:11) .EQ. ')'  ) GOTO 500
+      ENDIF
 
 * Deal with coordinate variable names inside parenthese
 
@@ -95,7 +117,10 @@
          IF (status.NE.merr_ok .AND.
      .       INDEX(vname,'[') .GT. 0) GOTO 4000
          status = NCF_GET_VAR_AXFLAG (dset, varid, coordvar, dir)
-         IF (.NOT. coordvar) GOTO 5000
+         IF (.NOT. coordvar) THEN
+	    status = atom_not_found 
+	    GOTO 5000
+	 ENDIF
 
 * If theres also a dataset spec (xax)[d=1] on the orig variable name, 
 * add that
@@ -108,27 +133,37 @@
          ENDIF
 
       ENDIF 
-       
-* If there is a dataset spec, see if the variable is in that dataset.
 
-      IF ( INDEX(buff,'[') .GT. 0 ) THEN
-         CALL CD_ISIT_ANOTHER_DSET (buff, dset_num, buff, status)
-         IF (status .NE. merr_ok) THEN 
-      
-            IF ( INDEX(vname,'[') .GT. 0 ) THEN
-               bkt1 = INDEX(vname, '[')
-               bkt2 = INDEX(vname, ']')
-               buff = buff//vname(bkt1:bkt2)
-               CALL CD_ISIT_ANOTHER_DSET (buff, dset_num, buff, status)
-            ENDIF
-         ENDIF
-         IF (status .NE. merr_ok) GOTO 5000
+* If there is a dataset spec, see if the variable is in that dataset.
+* Look only at the d=n or d=dset_name. 
+* Otherwise ignore what is in the brackets; this allows us to get
+* attributes for LAS variables with region info.
+
+      IF ( INDEX(buff,'[').GT.0) THEN
+         
+         istrt = STR_UPCASE(buff,buff)
+	 istrt = INDEX(buff,'D=')
+	 IF (istrt .GT. 0) THEN
+	    istrt = INDEX(buff,'D=') + 2
+	    iend = INDEX(buff(istrt:),',') - 1
+	    IF (iend .LE. 0) THEN
+	       iend = INDEX(buff,']') - 1
+	    ELSE
+	       iend = istrt+iend-1
+	    ENDIF
+	    iset = FIND_DSET_NUMBER(buff(istrt:iend))
+	    IF (iset .NE. unspecified_int4) dset_num = iset
+	 ENDIF
+	 
+	 istrt = INDEX(buff,'[') - 1
+	 buff = buff(:istrt)
+	 slen = TM_LENSTR1(buff)
       ENDIF
 
-* If the name is in quotes, remove them and do a case-sensive search
+* If the name is in quotes, remove them and do a case-sensitive search
 * for the name.
 
-      slen = TM_LENSTR1( buff )
+ 500  slen = TM_LENSTR1( buff )
       IF (buff(1:1) .EQ. "'" .AND. buff(slen:slen) .EQ. "'" ) THEN
          buff = buff(2:slen-1)
          buff(slen-1:slen) = ""
@@ -149,6 +184,12 @@
          varid = 0
 	 status = merr_ok
       ENDIF
+      RETURN
 
- 5000 RETURN
+* error exit
+ 5000 IF (status .NE. atom_not_found) THEN
+	slen = TM_LENSTR1(buff)
+	CALL WARN('Error status from CD_GET_VAR_ID: '//buff(1:slen))
+      ENDIF
+      RETURN
       END
diff --git a/fmt/src/cd_get_var_info.F b/fmt/src/cd_get_var_info.F
index 211222e..7359f6d 100644
--- a/fmt/src/cd_get_var_info.F
+++ b/fmt/src/cd_get_var_info.F
@@ -45,6 +45,7 @@
 * V602  2/07 *acm* Fix bug 1492, changing attributes of coordinate variables 
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V698 *sh* 1/16 -- added status check/warning, since not checked by callers
 
 * Argument declarations
 
@@ -57,6 +58,7 @@
 
 #include "gt_lib.parm"
       INCLUDE 'netcdf.inc'
+      INCLUDE 'tmap_errors.parm'
 
       INTEGER TM_LENSTR1, NCF_INQ_VAR, slen, flen, rev(8), i, ndx, istat
       PARAMETER (flen=512)      ! size of variable name string
@@ -78,6 +80,7 @@
       dset_num = dset
       cdfstat = NCF_INQ_VAR(dset_num, ivar, fhol, slen, vartype, 
      .            nvdims, nvatts, coordvar, outflag, rev)
+        IF (cdfstat .NE. pcd_ferr_ok) CALL WARN('ERROR in CD_GET_VAR_INFO')
       slen = MIN(slen, flen)
 
 * Return vname in original upper/lower case
diff --git a/fer/ocn/cmesh.F b/fmt/src/cd_get_var_uvflag.F
similarity index 74%
rename from fer/ocn/cmesh.F
rename to fmt/src/cd_get_var_uvflag.F
index bf9787a..1d9919d 100644
--- a/fer/ocn/cmesh.F
+++ b/fmt/src/cd_get_var_uvflag.F
@@ -1,5 +1,5 @@
-*
-*
+      SUBROUTINE CD_GET_VAR_UVFLAG (dset, varid, uvflag, 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),
@@ -33,28 +33,32 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-*DECK CMESH
-      SUBROUTINE CMESH (DX,APB,AMB,WID,N,NDIR)
-C
-C  COSINE MESH
-C  APB=A+B = COARSE RESOLUTION
-C  AMB=A-B=FINE RESOLUTION
-C  WID = WIDTH BETWEEN COARSE & FINE RESOLUTION
-C  N = NUMBER OF VARIABLE SPACES CALCULATED TO SPAN WID
-C  NDIR = (1,-1) = SPACING (INCREASES,DECREASES) WITH INCREASING INDEX
-C
-      REAL DX(160)	! changed 100 to 160 : sh 6-13-85
-	REAL	apb, amb, wid, a, b, c, pi, rn
-	INTEGER	n, ndir, i, ii
-      DATA PI/3.14159/
-      A=.5*(APB+AMB)
-      B=.5*(APB-AMB)
-      C=WID/A
-      N=C+.1
-      RN=1./FLOAT(N)
-      DO 20 II=1,N
-      IF (NDIR.EQ.1) I=N+1-II
-      IF (NDIR.EQ.-1)  I=II
-   20 DX(I)=A+B*COS(PI*RN*(II-.5))
-      RETURN
+* Read the linked list structure for netcdf variable information: 
+* given dset and variable id return the flag indicating file 
+* variable vs user-variable
+
+* Programmer Ansley Manke
+* NOAA/PMEL, Seattle, WA - TMAP
+
+* V698 2/16 *acm* 
+
+* include files
+#include "gt_lib.parm"
+      INCLUDE "tmap_errors.parm"
+
+* Argument declarations
+
+      INTEGER dset, varid, uvflag
+
+* Internal declarations
+
+      INCLUDE 'netcdf.inc'
+
+      INTEGER NCF_GET_VAR_UVFLAG, dset_num, status
+
+      dset_num = dset
+      IF (dset_num .LT. -2) dset_num = -2
+      status = NCF_GET_VAR_UVFLAG(dset_num, varid, uvflag)
+
+ 5000 RETURN
       END
diff --git a/fmt/src/cd_init_dset.F b/fmt/src/cd_init_dset.F
index 5f170e0..f014d3d 100644
--- a/fmt/src/cd_init_dset.F
+++ b/fmt/src/cd_init_dset.F
@@ -1,4 +1,5 @@
-	SUBROUTINE CD_INIT_DSET ( dset, perm, tregular, use_strict, status )
+	SUBROUTINE CD_INIT_DSET ( dset, perm, tregular, use_strict,
+     .				  ok_share_taxis, status )
 
 *
 *
@@ -44,9 +45,14 @@
 * 2/95 - added support for reverse-ordered coordinate axes
 * *sh* 11/12/96 - changes to accomodate caching of DODS data 
 * Linux Port - 6/97 *kob*  - use a cpp include for tmap_dset.parm
+
 * argument definitions:
-*    dset   - pointer to TMAP data set
-*    status - return status
+*    dset(input)   - pointer to TMAP data set
+*    perm(input)   - array describing the permutation of axes in the dataset
+*    tregular(input) - if true dont read full time axis - just 1st and last pts
+*    use_strict(input) - if true do not allow micro-adjustment for monotonicity
+*    status (output) - return status
+
 * 11/97 *kob* - added a close on the cdfid for the netcdf file for
 *               mc datasets only.  
 * 4/98 *kob* - need to explicitely declare istat
@@ -68,6 +74,9 @@
 * V68  *acm* 1/12  added use_strict argument for ticket 1910: micro-adjusting
 *                  on repeated coordinates in netCDF/OPeDNAP datasets
 * V695+ *sh* 4/15  scan the dataset for auxiliary coordinate connections
+* V698+ *sh* 11/15 add arg ok_share_taxis so DEFINE DATA/AGG/T can safely 
+*		   modify T axis gleaned from first file in time series
+* V698  *sh*  3/16 pass native_tax to CD_SCAN_AUX_VARS as lag_T ax of the FMRC
 
 * include files
 #include "gt_lib.parm"
@@ -82,7 +91,7 @@
         include 'xdset_info.cd_equiv'
 
 * argument declarations:
-	LOGICAL tregular, use_strict
+	LOGICAL tregular, use_strict, ok_share_taxis
 	INTEGER	dset, perm(*), status
 
 ! Declare netcdf function names. 
@@ -92,7 +101,7 @@
 
 
 * local variable declarations:
-      INTEGER STR_SAME, cdfid, remote_dods_id,istat
+      INTEGER STR_SAME, cdfid, remote_dods_id,istat, native_tax
 * 4/99 *kob* increase temp_axnams
       CHARACTER*128 temp_axnams(nferdims,max_temp_grid)
       LOGICAL reversed(max_lines:line_ceiling), shifted
@@ -122,7 +131,7 @@
 
 * build grids for variables w/out parent grids and associate with variables
       CALL CD_GET_GENERIC_GRIDS (dset,cdfid,temp_axnams,reversed,
-     .				 perm, status)
+     .				 perm, native_tax, status)
       IF ( status .NE. merr_ok ) GOTO 5900
 
 * build grids for variables with parent grids
@@ -134,15 +143,15 @@
       IF ( status .NE. merr_ok ) GOTO 5900
 
 * replace name linkages between axes and grids with pointers.  Delete dups
-
-      CALL CD_CLEAN_GRIDS ( dset, cdfid, temp_axnams, status )
+      CALL CD_CLEAN_GRIDS ( dset, cdfid, temp_axnams,
+     .			    ok_share_taxis, native_tax, status )
       IF ( status .NE. merr_ok ) GOTO 5900
 
       CALL CD_CONSISTENT_AXIS_ORIENT (dset, reversed, perm, status)
       IF ( status .NE. merr_ok ) GOTO 5900
 
 * identify and set up auxiliary coordinate linkages
-      CALL CD_SCAN_AUX_COORDS( dset, cdfid, status )
+      CALL CD_SCAN_AUX_COORDS( dset, cdfid, native_tax, status )
       IF ( status .NE. merr_ok ) GOTO 5900
 
 * set use counts and clean up temporary grids and axes
@@ -150,12 +159,12 @@
 
 * summarize the special axes in the data set
       CALL CD_GET_TIME_AXIS( dset, t_dim, status )
-      IF ( status .NE. merr_ok ) GOTO 5900
+      IF ( status .NE. merr_ok ) GOTO 5900  ! *sh* ok after TM_GARB_COL_GRIDS?
 
 * if using a DODS cache then create the illusion of remote access
       IF (remote_dods_id .NE. -1) THEN
          CALL CD_DODS_CONTROL( dset, cdfid, remote_dods_id, status )
-         IF ( status .NE. merr_ok ) GOTO 5900
+         IF ( status .NE. merr_ok ) GOTO 5900! *sh* ok after TM_GARB_COL_GRIDS?
       ENDIF
 
 ! for multiple files ... maybe
diff --git a/fmt/src/cd_isit_recdim.F b/fmt/src/cd_isit_recdim.F
index e360fba..e0e2b06 100644
--- a/fmt/src/cd_isit_recdim.F
+++ b/fmt/src/cd_isit_recdim.F
@@ -55,6 +55,7 @@
 * V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
 * V687 3/14 *acm* Fix ticket 1750. Write Ferret-internal axis names to cdf files, unless
 *                 the user has said /KEEP_AXISNAMES
+* V697 12/15 *acm* Fix ticket 2336: consistent application of CAN MODE UPCASE
 
 * argument definitions:
 *       dset    - dset (if netcdf file, for getting name and attribute 
@@ -86,7 +87,8 @@
 
 * get the axis name
          name = CD_AXIS_NAME( dset, grid, idim, nlen )
-         IF (keepax_flag .EQ. 1)  name = CD_AXIS_OUTNAME( dset, grid, idim, nlen )
+         IF (keepax_flag.EQ.1 .OR. .NOT.(mode_upcase_output)) 
+     .       name = CD_AXIS_OUTNAME( dset, grid, idim, nlen )
 
 * If mode upcase_output is set, then the axis name
 * has been written to the file upcased.
diff --git a/fmt/src/cd_load_dset_attrs.F b/fmt/src/cd_load_dset_attrs.F
index d3cda03..d7db04c 100644
--- a/fmt/src/cd_load_dset_attrs.F
+++ b/fmt/src/cd_load_dset_attrs.F
@@ -45,6 +45,8 @@
 * V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
 * V6.83 11/12 *acm* If there are multiple global atts including a 
 *                   message attribute, issue the message just once.
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables, 
+* pre-defined axes and grids.
 
 * argument definitions:
 *       dset    - pointer to TMAP data set
@@ -105,14 +107,6 @@
 	ds_alert_on_output(dset)= .FALSE.
 	ds_message(dset)	= ' '
 
-* initialize incidental variables
-        ds_basic_axes(1,dset) = mpsxt
-        ds_basic_axes(2,dset) = mpsxu
-        ds_basic_axes(3,dset) = mpsyt
-        ds_basic_axes(4,dset) = mpsyu
-        ds_basic_axes(5,dset) = mpszt
-        ds_basic_axes(6,dset) = mpszw
-
 * save the "record" axis
 
         CALL NCF_INQ_DS (dset, ndims, nvars, ngatts, recdim )
diff --git a/fmt/src/cd_make_fmrc_axes.F b/fmt/src/cd_make_fmrc_axes.F
index 1ae5a9d..b705f1b 100644
--- a/fmt/src/cd_make_fmrc_axes.F
+++ b/fmt/src/cd_make_fmrc_axes.F
@@ -40,6 +40,8 @@
 * time edge positions stored just behind it
 
 * 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) 
 
 * include files
         include 'netcdf.inc'
@@ -338,8 +340,9 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 * time cell on the F axis
         nleadtimes = (nT-1)/nlag + 1
 
-	CALL TM_NEW_LINE_NAME ( 'tf_lag_f', buff )
-	CALL TM_MAKE_BASIC_AXIS( buff, 0.0D0, avg_lag,
+	CALL TM_NEW_LINE_NAME ( 'TF_LAG_F', buff )
+! pre 3/16	CALL TM_MAKE_BASIC_AXIS( buff, 0.0D0, avg_lag,
+	CALL TM_MAKE_BASIC_AXIS( buff, avg_lag/2., avg_lag,
      .			nleadtimes, axlagf, status )
 
 * inherit time units from the calendar time axis just created
@@ -349,18 +352,33 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 	line_dattype(axlagf)   = nf_double
 	line_dim_only(axlagf)  = .FALSE.    ! ?? why ??
 
+********************
+* We've gone to a lot of trouble creating this axis.  But if it is an exact
+* duplicate of a pre-existing axis, then we should use that instead.
+* (Shared axes are needed in order to E-aggregate multiple FMRCs)
+ 	pre_exist = TM_FIND_LIKE_DYN_LINE( axcalt )
+ 	IF (pre_exist .NE. unspecified_int4) THEN
+ 	   CALL TM_DEALLO_DYN_LINE(axcalt)
+ 	   axcalt = pre_exist
+ 	ENDIF
+	pre_exist = TM_FIND_LIKE_DYN_LINE( axlagf )
+	IF (pre_exist .NE. unspecified_int4) THEN
+	   CALL TM_DEALLO_DYN_LINE(axlagf)
+	   axlagf = pre_exist
+	ENDIF
+
 * successful completion
         status = merr_ok
 
  5000	RETURN
 
 
- 5300	CALL TM_ERRMSG (merr_linstorlim, status, 'CD_1D_LINE_FROM_2D',
+ 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_1D_LINE_FROM_2D',
+ 5400	CALL TM_ERRMSG (merr_notimeinfo, status, 'CD_MAKE_FMRC_AXES',
      .                  no_descfile, no_stepfile,
      .                  'unrecognizable time encoding',
      .                  no_errstring, *5000)
diff --git a/fmt/src/cd_make_fmrc_fcal_axis.F b/fmt/src/cd_make_fmrc_fcal_axis.F
index 28cb90a..2461cdc 100644
--- a/fmt/src/cd_make_fmrc_fcal_axis.F
+++ b/fmt/src/cd_make_fmrc_fcal_axis.F
@@ -132,7 +132,7 @@
 
 * 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.   
-	CALL TM_NEW_LINE_NAME ( 'tf_cal_f', buff )
+	CALL TM_NEW_LINE_NAME ( 'TF_CAL_F', buff )
 	line_dattype(ens_ax) = nf_double
 	line_name_orig(ens_ax) = buff
 	i = STR_UPCASE( line_name(ens_ax), line_name_orig(ens_ax))
@@ -143,7 +143,7 @@
  5000	RETURN
 
 
- 5300	CALL TM_ERRMSG (merr_linstorlim, status, 'CD_1D_LINE_FROM_2D',
+ 5300	CALL TM_ERRMSG (merr_linstorlim, status, 'CD_MAKE_FMRC_FCAL_AXIS',
      .                  no_descfile, no_stepfile,
      .                  'MAX='//TM_STRING(DBLE(maxlinestore)),
      .                  no_errstring, *5000)
diff --git a/fmt/src/cd_make_var.F b/fmt/src/cd_make_var.F
index 9707e3a..e74bacb 100644
--- a/fmt/src/cd_make_var.F
+++ b/fmt/src/cd_make_var.F
@@ -89,6 +89,10 @@
 *                 the user has said /KEEP_AXISNAMES
 * V69+ 4/14 *acm* After the above fix, need a tweak to be able to append to files having 
 *                 dimensions that are not coordinate variables
+* V697 2/16 *acm* Remove unused variables from the call to CD_SET_COMPRESS
+* V698  4/16 *acm* Fix ticket 2241: If file has dimension but not a coordinate 
+*                  variable, do not write the coordinate variable, ONLY IF writing 
+*                  the full-span in that direction.
 
 * argument definitions:
 *     cdfid   - netCDF id number for already opened CDF file
@@ -333,10 +337,10 @@
             ENDIF
          ENDIF
 	 
-	 IF (dim_only(idim)) THEN 
-	    buff = CD_AXIS_OUTNAME(dset, grid, idim, nlen)
-            lname = buff
-         ENDIF
+c	 IF (dim_only(idim)) THEN 
+c	    buff = CD_AXIS_OUTNAME(dset, grid, idim, nlen)
+c            lname = buff
+c         ENDIF
 
          IF ( iaxis .EQ. mpsnorm
      .   .OR. lo(idim) .EQ. unspecified_int4 ) GOTO 300
@@ -424,8 +428,8 @@
 C     Turn on deflate_lev and chunking
 
       IF (netcdf4_type .EQ. 4) THEN
-         IF (deflate_lev .GT. 0) CALL CD_SET_COMPRESS (cdfid, varid, vname,
-     .         dimid, deflate_lev, chunks, shuffle_flag, endian_code, status)
+         IF (deflate_lev .GT. 0) CALL CD_SET_COMPRESS (cdfid, varid,
+     .         deflate_lev, chunks, shuffle_flag, endian_code, status)
       ENDIF ! netcdf4
 
 * if the "unlimited" record dimension is in use place no limits on that axis
diff --git a/fmt/src/cd_ncclose.F b/fmt/src/cd_ncclose.F
index 230133b..be05880 100644
--- a/fmt/src/cd_ncclose.F
+++ b/fmt/src/cd_ncclose.F
@@ -41,19 +41,37 @@
 * programmer - Ansley Manke
 * NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
 * 2/2013  Ferret v6.85
+
+* v695+ *sh* 11/15 - bug fix: sf_lunit(dset) does not necessarily contain
+*	                      the currently open netcdf file ID
 *
 * arguments:
 *	dset	- data set number 
 
 
 	include 'tmap_dims.parm'
+#  include "tmap_dset.parm"
 	include 'xstep_files.cmn_text'
+	include 'xdset_info.cmn_text'
 	external xstep_files_data
 
 * Argument variable declarations
 	INTEGER   dset, status
 
-	CALL CD_CLOSE_SET( sf_lunit(dset), status )
+* Internal variable declarations
+	INTEGER	istep
+
+* 11/15
+* sf_lunit(dset) does not reliably point to the currently open netCDF ID for
+* this daatset beacuse a single dset can own many stepfiles -- for example
+* in an MC aggregation.  Consult the variable ds_open(dset) to find the
+* currently open stepfile number
+
+	istep = ds_open(dset)
+	CALL CD_CLOSE_SET( sf_lunit(istep), status )
+
+* set flag indicating the file is no longer open
+	sf_lunit(istep) = file_not_open
 	
 	RETURN
 	END
diff --git a/fmt/src/cd_quik_ncopen.F b/fmt/src/cd_quik_ncopen.F
new file mode 100644
index 0000000..62756a0
--- /dev/null
+++ b/fmt/src/cd_quik_ncopen.F
@@ -0,0 +1,204 @@
+	SUBROUTINE CD_QUIK_NCOPEN (dset, filename, vname,
+     .	    cdfid, vid, bounds_id, units_str, cal_str, n, 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. 
+*
+*
+* open a netcdf file; get the netCDF variable id and 1d array length
+* of the given var name
+* if that variable has a 'bounds' attribute, get its vid, too
+
+* programmer - Steve Hankin
+* NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
+
+* V695+ 10/15 *sh*
+
+*
+* arguments:
+*	dset		- (input) Ferret dataset number
+*	filename	- (input) name of file to be opened
+*       vname		- (input) name of variable to look for (case-sensitive)
+*	cdfid		- (output) netCDF id of the open dataset
+*	vid		- (output) netCDF id of the requested variable
+*	bounds_id	- (output) netCDF id of the bounds variable
+*	units_str	- (output) string value of the units attribute
+*	cal_str		- (output) string value of the calendar attribute
+*	n		- (output) length of the named variable
+*	status		- (output) TMAP status code
+
+        include 'netcdf.inc'
+        include 'tmap_errors.parm'
+	include 'tmap_dims.parm'
+#include "gt_lib.parm"
+	include 'xdset_info.cmn_text'
+	include 'xstep_files.cmn_text'
+
+* Argument variable declarations
+	CHARACTER*(*) filename, vname, units_str, cal_str
+	INTEGER   dset, cdfid, vid, bounds_id, n, status
+
+* Local variable declarations
+	LOGICAL	coordvar, got_it
+	INTEGER	TM_LENSTR1, CD_GET_ATTRIB,
+     .		vlen, vartyp, nvdim, vdims(8), nvatts, all_outflag,
+     .		maxlen, attlen, tmap_status, cdfstat, blen, dlen, elen
+	CHARACTER*2048   TM_INQ_PATH
+	CHARACTER	varname*128, buff*128, errmsg*80
+	REAL vals  ! potential numerical attributes
+
+
+* local parameter definitions:
+	LOGICAL	    do_warn
+	PARAMETER ( do_warn = .TRUE. )
+
+*initialize
+	vlen = TM_LENSTR1(vname)
+	maxlen = 128
+
+* locate the file
+	ds_des_name(dset) =
+     .		TM_INQ_PATH(filename, 'FER_DATA', ' ',.FALSE., status)
+        IF (status .NE. merr_ok)  THEN
+	   tmap_status = merr_notmounted
+	   GOTO 5050
+	ENDIF
+	dlen = TM_LENSTR1(ds_des_name(dset))
+
+* open the file
+#ifdef usingDODSf2cUnderscore 
+	cdfstat = NF_OPEN_(ds_des_name(dset), NF_NOWRITE, cdfid) 
+#else
+	cdfstat = NF_OPEN(ds_des_name(dset), NF_NOWRITE, cdfid) 
+#endif
+	IF ( cdfstat .NE. NF_NOERR ) THEN
+	   tmap_status = merr_nc_open
+	   errmsg = 'unable to open file'
+	   GOTO 5100
+	ENDIF
+
+* get the netCDF id of the named time axis variable
+#ifdef usingDODSf2cUnderscore
+        cdfstat = NF_INQ_VARID_(cdfid, vname(:vlen), vid)
+#else
+        cdfstat = NF_INQ_VARID(cdfid, vname(:vlen), vid)
+#endif
+	IF (cdfstat.NE.NF_NOERR) THEN
+	   tmap_status = merr_unkvar
+	   errmsg = 'time axis variable is missing: '//vname
+	   GOTO 5100
+	ENDIF
+
+* inquire after the netCDF metadata for this variable
+#ifdef usingDODSf2cUnderscore
+        cdfstat = NF_INQ_VAR_(cdfid, vid, varname, vartyp, nvdim, 
+     .              vdims, nvatts)
+#else
+        cdfstat = NF_INQ_VAR(cdfid, vid, varname, vartyp, nvdim, 
+     .              vdims, nvatts)
+#endif
+	IF (cdfstat.NE.NF_NOERR) THEN
+	   tmap_status = merr_badfileatt
+	   errmsg = 'unable to read attributes of '//vname
+	   GOTO 5100
+	ENDIF
+
+* sanity check the 1d axis variable
+	IF (nvdim .NE. 1) THEN
+	   tmap_status = merr_badtimedef
+	   errmsg = 'time axis variable not 1D: '//vname
+	   GOTO 5100
+	ENDIF
+
+* get the axis length
+#ifdef usingDODSf2cUnderscore
+	cdfstat = NF_INQ_DIM_( cdfid, vdims(1), varname, n )
+#else
+	cdfstat = NF_INQ_DIM( cdfid, vdims(1), varname, n )
+#endif
+	IF ( cdfstat .NE. NF_NOERR ) THEN
+	   tmap_status = merr_badtimedef
+	   errmsg = 'unable to read time ax dim length '//vname
+	   GOTO 5100
+	ENDIF
+
+* does this 1d var have a bounds attribute?
+	blen = LEN(buff)  ! character array length
+	got_it = CD_GET_ATTRIB( cdfid, vid, 'bounds',
+     .                     do_warn, vname(:vlen), buff, attlen, blen )
+	IF (.NOT.got_it) THEN
+	   bounds_id = unspecified_int4
+	ELSE
+!	   blen = TM_LENSTR1(buff)
+* ... check the bounds variable, issue any warnings.
+!           CALL TM_CHECK_BNDS_ATTRIB (dset, n, vname, vlen, buff(:blen),
+          CALL TM_CHECK_BNDS_ATTRIB (dset, n, vname, vlen, buff(:attlen),
+     .                             bounds_id, tmap_status)
+           IF (tmap_status .EQ. pcdferr) GO TO 5200
+           IF (tmap_status .NE. merr_ok) THEN
+	      bounds_id = unspecified_int4    ! invalidate the bounds variable
+	   ENDIF
+	ENDIF
+
+* get the units attribute if it exists
+	blen = LEN(units_str)  ! character array length
+	got_it = CD_GET_ATTRIB( cdfid, vid, 'units',
+     .                  do_warn, vname(:vlen), units_str, attlen, blen )
+	IF (.NOT.got_it) units_str = ' '
+
+* get the calendar attribute if it exists
+	blen = LEN(cal_str)  ! character array length
+	got_it = CD_GET_ATTRIB( cdfid, vid, 'calendar',
+     .                  do_warn, vname(:vlen), cal_str, attlen, blen )
+	IF (.NOT.got_it) cal_str = ' '
+
+* successful completion
+ 1000	status = merr_ok
+ 5000	RETURN
+
+* error exits
+ 5050	CALL TM_ERRMSG
+     .     ( tmap_status, status, 'CD_QUIK_NCOPEN',
+     .       no_descfile, no_stepfile,
+     .       filename, no_errstring,  *5000 )
+ 5100	elen = TM_LENSTR1(errmsg)
+	CALL TM_ERRMSG
+     .     ( tmap_status, status, 'CD_QUIK_NCOPEN',
+     .       no_descfile, no_stepfile,
+     .	    'in file '//ds_des_name(dset)(:dlen)//' '//errmsg,
+     .	     no_errstring,  *5000 )
+ 5200   CALL TM_ERRMSG
+     .     ( tmap_status+pcdferr, status, 'CD_QUIK_NCOPEN', cdfid, vid,
+     .       no_errstring, no_errstring, *5000 )
+
+	END
diff --git a/fmt/src/cd_rd_r8_as_r4.c b/fmt/src/cd_rd_r8_as_r4.c
index b52c5e8..3da2753 100644
--- a/fmt/src/cd_rd_r8_as_r4.c
+++ b/fmt/src/cd_rd_r8_as_r4.c
@@ -51,6 +51,7 @@
 */
 
 #include <Python.h> /* make sure Python.h is first */
+
 #include <stddef.h>  /* size_t, ptrdiff_t  gfortran on linux rh5*/
 #include <netcdf.h>      /* usually in /usr/local/include */
 /* Suns need to include stdio.h to get definition for NULL */
diff --git a/fmt/src/cd_read.F b/fmt/src/cd_read.F
index f373c8d..ce93cd8 100644
--- a/fmt/src/cd_read.F
+++ b/fmt/src/cd_read.F
@@ -375,6 +375,13 @@
      .       ds_var_scale(ivar), ds_var_off(ivar), var, totsize,
      .       ds_bad_flag(ivar), ds_missing_flag(ivar) )
 
+* If its an Epic file, the missing-flag is not in the file, and
+* precision conversion means they won't match. Fill the missing data
+* with the right double precision values.
+        IF (ds_type(dset) .EQ. 'ECDF') THEN 
+           CALL TM_BAD_EPIC(var, totsize, ds_bad_flag(ivar) )
+        ENDIF
+
 * successful completion
 	status = merr_ok
 	RETURN
diff --git a/fmt/src/cd_scan_aux_coords.F b/fmt/src/cd_scan_aux_coords.F
index e3952fb..796f653 100644
--- a/fmt/src/cd_scan_aux_coords.F
+++ b/fmt/src/cd_scan_aux_coords.F
@@ -1,4 +1,4 @@
-	SUBROUTINE CD_SCAN_AUX_COORDS (dset, cdfid, status)
+	SUBROUTINE CD_SCAN_AUX_COORDS (dset, cdfid, native_tax, status)
 
 
 *  This software was developed by the Thermal Modeling and Analysis
@@ -41,10 +41,12 @@
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 
 * revision 0.0 - 4/15
+* V698 *sh* 3/2016 - pass native_tax to CD_1D_LINE_FROM_2D
 
 * argument definitions:
 *       dset        - TMAP data set pointer
 *	cdfid       - netCDF open ID (should no longer be needed!!)
+*	native_tax  - the official time axis of the dataset
 *	status	    - return status
 
 * include files
@@ -61,7 +63,7 @@
 	        include 'xdset_info.cd_equiv'
 
 * argument declarations
-	INTEGER	 dset, cdfid, status
+	INTEGER	 dset, cdfid, native_tax, status
 
 
 * local parameter definitions:
@@ -154,8 +156,9 @@
               IF ( got_it
      .       .AND. STR_CASE_BLIND_COMPARE(name, 'Time').EQ.str_eq ) THEN
 * ... Synthesize a 1D time axis and forecast lead time for the colection
-	         CALL CD_1D_LINE_FROM_2D (dset, cdfid,
-     .					  ivar, vname, axcalt, axlagf, status)
+*     Also modify the native time axis to become a true delta (lag) time
+	         CALL CD_1D_LINE_FROM_2D (dset, cdfid, ivar, vname,
+     .					  axcalt, axlagf, native_tax, status)
 	      ENDIF
 	   ENDIF
 	ENDDO
diff --git a/fmt/src/cd_set_compress.F b/fmt/src/cd_set_compress.F
index 99cb4fd..5de3274 100644
--- a/fmt/src/cd_set_compress.F
+++ b/fmt/src/cd_set_compress.F
@@ -1,5 +1,5 @@
-      SUBROUTINE CD_SET_COMPRESS (cdfid, varid, vname, dimid, deflate,
-     .                            chunks, shuffle, endian_code, status)
+      SUBROUTINE CD_SET_COMPRESS (cdfid, varid, deflate,chunks, shuffle,
+     .                            endian_code, status)
 
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -42,21 +42,20 @@
 * Netcdf-4 with HDF chunking and compression
 * revision 0.0 - 12/09
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
+* V698 2/16 *acm* for ticket 2363, don't call NF_DEF_VAR_FLETCHER32.
 
 * argument definitions:
 *   cdfid   - returned pointer to open CDF file
 *   varid   - variable id
-*   dimid   - id of dimensions
 *   deflate - deflate level (level 1 is recommended)
-*   chunks  - chunking corrresponding to dimid (if all 0 then no set chunking)
+*   chunks  - chunking corrresponding to each dimension (if all 0 then no set chunking)
 *   shuffle - 0 or 1 to turn on shuffle in NF_DEF_VAR_DEFLATE
 *   endian_code - native=0, little=1, big=0 Values match nf_endian_*
 *   status  - return status
 
 * argument declarations:
-	INTEGER cdfid, varid, dimid(*), deflate, chunks(*), 
+	INTEGER cdfid, varid, deflate, chunks(*), 
      .          shuffle, endian_code, status
-	CHARACTER*(*) vname
 
 * include files
         include 'netcdf.inc'
@@ -72,7 +71,7 @@
 * local variable declarations:
 
       INTEGER cdfstat, idim, vlen
-      INTEGER do_deflate, do_chunk, cdfformat
+      INTEGER do_deflate, do_chunk, cdfformat, contiguous
 
       CHARACTER*1     ww_dim_nam(nferdims)
       DATA ww_dim_nam/'X', 'Y', 'Z', 'T', 'E', 'F'/
@@ -100,8 +99,9 @@
          do_chunk = MAX(do_chunk, chunks(idim) ) 
   100 CONTINUE
 
+      contiguous = NF_CHUNKED
       IF (do_chunk .GT. 0) THEN
-         cdfstat = NF_DEF_VAR_CHUNKING(cdfid, varid, NF_CHUNKED, chunks)
+         cdfstat = NF_DEF_VAR_CHUNKING(cdfid, varid, contiguous, chunks)
          IF (cdfstat .NE. NF_NOERR) GOTO 5100
       ENDIF
 
@@ -114,11 +114,6 @@
      .          deflate, do_deflate)
       IF (cdfstat .NE. NF_NOERR) GOTO 5100
 
-* Turn on fletcher32 checksum for the var
-      cdfstat = NF_DEF_VAR_FLETCHER32(cdfid, varid, NF_FLETCHER32)
-      IF (cdfstat .NE. NF_NOERR) GOTO 5100
-
-
 * successful completion
       status = merr_ok
       RETURN
diff --git a/fmt/src/cd_write_attrib.F b/fmt/src/cd_write_attrib.F
index 22ad13a..8befc9d 100644
--- a/fmt/src/cd_write_attrib.F
+++ b/fmt/src/cd_write_attrib.F
@@ -53,6 +53,8 @@
 * V65  *acm* 1/10  Add #ifdef usingDODSf2cUnderscore, for 32-bit linux build
 *                  linked with OPeNDAP library.
 * V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
+* V697 12/15 *acm* Increased length of command-line string and risc_buff buffer
+* V697  2/16 *acm* DO NOT increase length of command-line string and risc_buff buffer
 
 * argument definitions:
 *     cdfid   - netCDF id number for already opened CDF file
@@ -87,6 +89,7 @@
       INTEGER TM_LENSTR1, 
      .        vlen, alen, slen, tlen, cdfstat, varid, attype, attlen, 
      .        len_app, bufflen
+     
       CHARACTER buff*10240
 
       INTEGER tt  ! nice short name
@@ -166,7 +169,7 @@
 #ifdef usingDODSf2cUnderscore
          IF (len_app .GT. 0) THEN
             cdfstat = NF_PUT_ATT_TEXT_(cdfid, varid, att(:alen),
-     .             attlen+slen, buff(:attlen)//risc_buff(1:len_app))
+     .             attlen+slen, buff(:attlen)//risc_buff(1:slen))
          ELSE
             cdfstat = NF_PUT_ATT_TEXT_(cdfid, varid, att(:alen),
      .             attlen+slen, buff(:attlen))
@@ -174,7 +177,7 @@
 #else
          IF (len_app .GT. 0) THEN
             cdfstat = NF_PUT_ATT_TEXT (cdfid, varid, att(:alen),
-     .             attlen+slen, buff(:attlen)//risc_buff(1:len_app))
+     .             attlen+slen, buff(:attlen)//risc_buff(1:slen))
          ELSE
             cdfstat = NF_PUT_ATT_TEXT (cdfid, varid, att(:alen),
      .             attlen+slen, buff(:attlen))
diff --git a/fmt/src/cd_write_axis.F b/fmt/src/cd_write_axis.F
index 0b42b3c..ac847b9 100644
--- a/fmt/src/cd_write_axis.F
+++ b/fmt/src/cd_write_axis.F
@@ -109,7 +109,16 @@
 *                 if the variable wasn't associated with the dataset where that axis lives.
 * v694 1/15 *acm* for ticket 2227: if a dimension from a nc file is not also a 
 *                 1-D coordinate var, don't write the axis Ferret creates
-
+* V697 12/15 *acm* Fix ticket 2336: consistent application of CAN MODE UPCASE
+* V698  2/16 *acm* Check status of queries before continuing
+*                  variable, do notwrite the coordinate variable, ONLY IF writing 
+*                  the full-span in that direction.
+* V698  4/16 *acm* Fix ticket 2241: If file has dimension but not a coordinate 
+*                  variable, do not write the coordinate variable, ONLY IF writing 
+*                  the full-span in that direction.
+*  V698  4/16 *acm* When checking for dimension-only, this applies to file axes only.
+*  V698  5/16 *acm* Fix ticket 2415: write attributes using the requested data type
+*                   Routine CD_WRITE_ATTVAL_DP converts to the specified type.
 
 * argument definitions:
 *     dset    - dset (if netcdf file, for getting name and attribute 
@@ -187,6 +196,8 @@
       dset_num = dset
       dim_only = .FALSE.
 
+      IF (.NOT.mode_upcase_output) keepax_flag = 1
+
       name = CD_AXIS_NAME( dset_num, grid, idim, nlen )
       IF (keepax_flag .EQ. 1) name = CD_AXIS_OUTNAME( dset_num, grid, idim, nlen )
       name_in = name
@@ -262,6 +273,8 @@
          name = buff
          GOTO 1000  
       ENDIF
+      CALL CD_DIM_ONLY (cdfid, name, llen, dim_only)
+      IF (dim_only .AND. ax_type.EQ.pcdf_full_span) GOTO 1000
 
 #ifdef usingDODSf2cUnderscore
       cdfstat = NF_INQ_DIMID_( cdfid, name(:nlen), dimid)
@@ -340,7 +353,7 @@
       outtype = line_dattype(iaxis)
 
       CALL CD_GET_VAR_ID (dset_num, line_name(iaxis), varid, status)
-      CALL CD_GET_VAR_INFO (dset_num, varid, buff, vartype, 
+      IF (varid .GT. 0) CALL CD_GET_VAR_INFO (dset_num, varid, buff, vartype, 
      .            nvdims, vdims, nvatts, coordvar, all_outflag, status)
 
       IF (outtype.LT.NF_BYTE .OR.  outtype.GT.NF_DOUBLE) THEN
@@ -356,15 +369,17 @@
 * write it as double and add a note.
 
       axis_packed = 0
-      attname = 'add_offset'
-      CALL CD_GET_VAR_ATT_ID (dset_num, varid, attname, attid, status)
-      IF (attid .GT. 0) axis_packed = 1
-      attname = 'scale_factor'
-      CALL CD_GET_VAR_ATT_ID (dset, varid, attname, attid, status)
-      IF (attid .GT. 0) axis_packed = 1
-
-      IF (axis_packed .EQ. 1) THEN	    
-         outtype = NF_DOUBLE
+      IF (varid .GT. 0) THEN
+         attname = 'add_offset'
+         CALL CD_GET_VAR_ATT_ID (dset_num, varid, attname, attid, status)
+         IF (attid .GT. 0) axis_packed = 1
+         attname = 'scale_factor'
+         CALL CD_GET_VAR_ATT_ID (dset, varid, attname, attid, status)
+         IF (attid .GT. 0) axis_packed = 1
+
+         IF (axis_packed .EQ. 1) THEN	    
+            outtype = NF_DOUBLE
+         ENDIF
       ENDIF
 
       npts = line_dim(iaxis)
@@ -395,9 +410,13 @@
 
 * If the dimension was a dimension only (not a 1-D coordinate variable) in the 
 * source datset, just create the dimension in the output file. Don't write out
-* the basic axis that Ferret defined.
+* the basic axis that Ferret defined. (If Ferret synthesized the variable, do write
+* the axis.)
+
+** ticket 2241: if it's a subspan axis, write it out...
 
-      IF (line_dim_only(iaxis)) GOTO 1000
+      IF (line_dim_only(iaxis) .AND. dset.GT.0 .AND.
+     .    ax_type.EQ.pcdf_full_span) GOTO 1000
 
 * create the coordinate variable (12/92 -> double precision)
 #ifdef usingDODSf2cUnderscore
@@ -519,7 +538,7 @@
                   CALL CD_WRITE_ATTRIB (cdfid, name(:nlen), attname,
      .                               buff(:llen), .FALSE., status )
                ELSE IF (attoutflag .EQ. 1) THEN
-                  CALL CD_WRITE_ATTVAL(cdfid, name(:nlen), attname,
+                  CALL CD_WRITE_ATTVAL_DP(cdfid, name(:nlen), attname,
      .                                 vals, attlen, attype, status )
                ENDIF
             ENDIF
@@ -725,7 +744,7 @@
                CALL CD_WRITE_ATTRIB(cdfid, name(:nlen), attname,
      .                               'false', .FALSE., status )
             ELSE IF (attoutflag .EQ. 1) THEN
-               CALL CD_WRITE_ATTVAL(cdfid, name(:nlen), attname,
+               CALL CD_WRITE_ATTVAL_DP(cdfid, name(:nlen), attname,
      .                              vals, attlen, attype, status )
             ENDIF
 
diff --git a/fmt/src/deleted_list_clear.c b/fmt/src/deleted_list_clear.c
index 0941dbd..110996a 100644
--- a/fmt/src/deleted_list_clear.c
+++ b/fmt/src/deleted_list_clear.c
@@ -38,8 +38,9 @@
                  for better performance. This function is for cleaning up
                  the data structure.
  */
+
 #include <Python.h> /* make sure Python.h is first */
-#include <stdio.h>
+#include <stdlib.h>
 #include "deleted_list.h"
 
 void deleted_list_clear_(void * deleted_list_header)
diff --git a/fmt/src/deleted_list_get_del.c b/fmt/src/deleted_list_get_del.c
index 872646d..b8993df 100644
--- a/fmt/src/deleted_list_get_del.c
+++ b/fmt/src/deleted_list_get_del.c
@@ -38,6 +38,7 @@
                  for better performance. This function is to get the deleted
                  list
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 #include "deleted_list.h"
diff --git a/fmt/src/deleted_list_get_undel.c b/fmt/src/deleted_list_get_undel.c
index f36bed1..b5d8237 100644
--- a/fmt/src/deleted_list_get_undel.c
+++ b/fmt/src/deleted_list_get_undel.c
@@ -38,6 +38,7 @@
                  for better performance. This function is to get the undeleted
                  list.
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 #include "deleted_list.h"
diff --git a/fmt/src/deleted_list_init.c b/fmt/src/deleted_list_init.c
index 0bfaf3a..2874d33 100644
--- a/fmt/src/deleted_list_init.c
+++ b/fmt/src/deleted_list_init.c
@@ -39,6 +39,7 @@
                  data structure.
  */
 /* *acm   9/06 v600 - add stdlib.h wherever there is stdio.h for altix build*/ 
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stddef.h>  /* size_t, ptrdiff_t; gfortran on linux rh5*/
 #include <stdio.h>
diff --git a/fmt/src/deleted_list_modify.c b/fmt/src/deleted_list_modify.c
index f4b58cc..81cb4bc 100644
--- a/fmt/src/deleted_list_modify.c
+++ b/fmt/src/deleted_list_modify.c
@@ -38,6 +38,7 @@
                  for better performance. This function is to modify a variable
                  in an array and keep the two lists updated.
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 #include "deleted_list.h"
diff --git a/fmt/src/ez_delimited_read.c b/fmt/src/ez_delimited_read.c
index 0db91ec..4876b12 100644
--- a/fmt/src/ez_delimited_read.c
+++ b/fmt/src/ez_delimited_read.c
@@ -65,7 +65,6 @@
   nexstrtok - breaks input into successive fields
  */
 
-
 #include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
 #include <string.h>
diff --git a/fmt/src/fbits.h b/fmt/src/fbits.h
index d860064..df47bd3 100644
--- a/fmt/src/fbits.h
+++ b/fmt/src/fbits.h
@@ -2,7 +2,6 @@
  *   Copyright 1995, University Corporation for Atmospheric Research
  *   See top level COPYRIGHT file for copying and redistribution conditions.
  */
-/* $Id: fbits.h 9399 2006-04-25 19:48:34Z ansley $ */
 
 #ifndef _FBITS_H_
 #define _FBITS_H_
diff --git a/fmt/src/mc_init_dset.F b/fmt/src/mc_init_dset.F
index 0856ca9..00c6ba2 100644
--- a/fmt/src/mc_init_dset.F
+++ b/fmt/src/mc_init_dset.F
@@ -71,6 +71,9 @@
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 * V682 *acm* 9/12  Fix ticket 1969: stepfiles may have 3- or 4-digit extensions 
 *                  when listed under S_NUM_OF_FILES
+* V698+ *sh* 11/15 new arg in call to CD_INIT_DSET ... not relevant here
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables, 
+* pre-defined axes and grids.
 
 * arguments:
 *	dset_num	- number assigned to this data set (output)
@@ -127,6 +130,14 @@
 	REAL*8		last_delta, file_trange, steps_in_file
 	LOGICAL		TM_FPEQ
 
+* local parameter definitions
+* NOTE (11/15) - this parameter exists to avoid the chance that DEF DATA/AGG/T 
+* may inadvertently modify the time axis of a previously inited dataset.
+* It is remotely possible that the same risk (never detected) exists with
+* MC datasets.  If so, then just set this to .FALSE. to fix it.
+* in the MC dataset code -- that like
+	LOGICAL ok_share_taxis
+	PARAMETER (ok_share_taxis = .TRUE.)
 
 * record 3 - required message 
 *
@@ -161,17 +172,7 @@
 	READ (lunit, NML=EXTRA_RECORD, END=5000, ERR=5100)
 *	ds_extra_des_info(dset_num) = d_extra_des_info
 
-* initialize incidental variables
-	ds_basic_axes(1,dset_num) = mpsxt
-	ds_basic_axes(2,dset_num) = mpsxu
-	ds_basic_axes(3,dset_num) = mpsyt
-	ds_basic_axes(4,dset_num) = mpsyu
-	ds_basic_axes(5,dset_num) = mpszt
-	ds_basic_axes(6,dset_num) = mpszw
-
-
 * step records - one for each step file stored
- 
 
 	stp_pos = 1
 	min_file = maxstepfiles
@@ -358,7 +359,8 @@ c	     sf_ndxe(stp_cnt) = steps_in_file + sf_ndxs(stp_cnt) - 1
 	status = merr_ok
 	
 
-	CALL CD_INIT_DSET( dset_num, perm, tregular, use_strict, status)
+	CALL CD_INIT_DSET( dset_num, perm, tregular, use_strict,
+     .			   ok_share_taxis, status)
 
 	GOTO 9990
 
diff --git a/fmt/src/mc_read.F b/fmt/src/mc_read.F
index ab3019a..d8e078f 100644
--- a/fmt/src/mc_read.F
+++ b/fmt/src/mc_read.F
@@ -189,7 +189,7 @@
 
            vlen = TM_LENSTR1(vname)
 
-           got_scale = CD_GET_ATTVAL( cdfid, cd_varid(ivar), 'scale_factor',
+           got_scale = CD_GET_ATTVAL(cdfid,cd_varid(ivar),'scale_factor',
      .             do_warn,vname(:vlen),cd_scale_factor(ivar),1,status )
            got_off = CD_GET_ATTVAL( cdfid, cd_varid(ivar), 'add_offset',
      .             do_warn,vname(:vlen),cd_add_offset(ivar),1,status )
@@ -217,6 +217,7 @@
 	ELSE
 * find correct file
            prev_steps = 0
+! extremely inefficient loop: should use List structure to link stepfiles
  20	   DO 30 sfcnt = 1,maxstepfiles
 	      IF (sf_setnum(sfcnt) .NE. dset) GOTO 30 ! right dataset?
 
diff --git a/fmt/src/nc.h b/fmt/src/nc.h
index c71de8e..d82c128 100644
--- a/fmt/src/nc.h
+++ b/fmt/src/nc.h
@@ -2,6 +2,5 @@
  *	Copyright 1996, University Corporation for Atmospheric Research
  *      See netcdf/COPYRIGHT file for copying and redistribution conditions.
  */
-/* $Id: nc.h 14336 2012-07-10 23:31:50Z ksmith $ */
 
 /* this include is not needed with current netCDF libraries. */
diff --git a/fmt/src/nc_get_attrib.F b/fmt/src/nc_get_attrib.F
index 447db41..0872603 100644
--- a/fmt/src/nc_get_attrib.F
+++ b/fmt/src/nc_get_attrib.F
@@ -62,6 +62,8 @@
 *                  of maxlen (from show_data_set_attrs); added check for
 *                  this in the future.
 * V694 4/15  *acm* Increase length of error buffer; use length definition when assigning.
+* V697 12/15 *acm* Increased length of command-line string and risc_buff buffer
+* V697  2/16 *acm* DO NOT increase length of command-line string and risc_buff buffer
 
 * argument definitions:
 *	dset	 - dataset number
@@ -102,7 +104,7 @@
       EQUIVALENCE (tt,lunit_errors)
 
       INTEGER slen, flen
-      PARAMETER (flen=10240)        ! size of attribute string
+      PARAMETER (flen=10240)        ! size of attribute string, match size_rbuff
 #ifdef sun
       BYTE      fhol(flen), ghol(flen)      ! c-type Hollerith string buffer
 #else
diff --git a/fmt/src/nc_get_attrib_string.F b/fmt/src/nc_get_attrib_string.F
index 48f8551..341d4ed 100644
--- a/fmt/src/nc_get_attrib_string.F
+++ b/fmt/src/nc_get_attrib_string.F
@@ -56,6 +56,8 @@
 *                              whats in netcdf.inc from netcdf4.
 * V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
 * V6.85 2/13 *acm* Fix ticket 2038: making warning message for too-long string
+* V697 12/15 *acm* Increased length of command-line string and risc_buff buffer
+* V697  2/16 *acm* DO NOT increase length of command-line string and risc_buff buffer
 
 * argument definitions:
 *	dset	 - dataset number
@@ -92,7 +94,7 @@
       EQUIVALENCE (tt,lunit_errors)
 
       INTEGER slen, flen
-      PARAMETER (flen=10240)        ! size of attribute string
+      PARAMETER (flen=10240)        ! size of attribute string, match size_rbuff
 #ifdef sun
       BYTE      fhol(flen), ghol(flen)      ! c-type Hollerith string buffer
 #else
diff --git a/fmt/src/ncconfig.h b/fmt/src/ncconfig.h
index c92246d..6e25748 100644
--- a/fmt/src/ncconfig.h
+++ b/fmt/src/ncconfig.h
@@ -1,6 +1,5 @@
 /* libsrc/ncconfig.h.  Generated automatically by configure.  */
 /* libsrc/ncconfig.in.  Generated automatically from configure.in by autoheader.  */
-/* $Id: ncconfig.h 14336 2012-07-10 23:31:50Z ksmith $ */
 
 
 /* this include is not needed with current netCDF libraries. */
diff --git a/fmt/src/ncio.h b/fmt/src/ncio.h
index 57174fe..4dfe6cb 100644
--- a/fmt/src/ncio.h
+++ b/fmt/src/ncio.h
@@ -2,6 +2,5 @@
  *	Copyright 1996, University Corporation for Atmospheric Research
  *	See netcdf/COPYRIGHT file for copying and redistribution conditions.
  */
-/* $Id: ncio.h 14336 2012-07-10 23:31:50Z ksmith $ */
 
-/* this include is not needed with current netCDF libraries. */
\ No newline at end of file
+/* this include is not needed with current netCDF libraries. */
diff --git a/fmt/src/str_case_blind_compare_sub.c b/fmt/src/str_case_blind_compare_sub.c
index 2d760a7..c6746ab 100644
--- a/fmt/src/str_case_blind_compare_sub.c
+++ b/fmt/src/str_case_blind_compare_sub.c
@@ -34,6 +34,7 @@
 *
 *  ywei: 05/04 created to speed up uppercase string matching
 */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 
diff --git a/fmt/src/str_dncase_sub.c b/fmt/src/str_dncase_sub.c
index 450424b..195ed82 100644
--- a/fmt/src/str_dncase_sub.c
+++ b/fmt/src/str_dncase_sub.c
@@ -36,6 +36,7 @@
 /*
  12/11 *acm* Created for str_dncase
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <ctype.h>
 #include <stdio.h>
diff --git a/fmt/src/str_upcase_sub.c b/fmt/src/str_upcase_sub.c
index 6d7d30e..458eca1 100644
--- a/fmt/src/str_upcase_sub.c
+++ b/fmt/src/str_upcase_sub.c
@@ -36,6 +36,7 @@
 /*
  06/04 *ywei* Created to speed up str_upcase
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 
diff --git a/fmt/src/string_array_clear.c b/fmt/src/string_array_clear.c
index 7f54aa9..e7aae75 100644
--- a/fmt/src/string_array_clear.c
+++ b/fmt/src/string_array_clear.c
@@ -38,6 +38,7 @@
                  functiions
     4/06 *kob*  change type of argument to double, for 64-bit build
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 #include "string_array.h"
diff --git a/fmt/src/string_array_find.c b/fmt/src/string_array_find.c
index f8da88f..a637d31 100644
--- a/fmt/src/string_array_find.c
+++ b/fmt/src/string_array_find.c
@@ -40,6 +40,7 @@
                  upper or lower cased
     4/06 *kob*  change type of 1st argument to double, for 64-bit build
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 #include "string_array.h"
diff --git a/fmt/src/string_array_find_caseblind.c b/fmt/src/string_array_find_caseblind.c
index 4b2818c..cc8f576 100644
--- a/fmt/src/string_array_find_caseblind.c
+++ b/fmt/src/string_array_find_caseblind.c
@@ -38,6 +38,7 @@
                 The matching method is case blind.
     4/06 *kob*  change type of 1st argument to double, for 64-bit build
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 #include "string_array.h"
diff --git a/fmt/src/string_array_find_exact.c b/fmt/src/string_array_find_exact.c
index 303f1f9..4101310 100644
--- a/fmt/src/string_array_find_exact.c
+++ b/fmt/src/string_array_find_exact.c
@@ -38,6 +38,7 @@
                The matching method is exactly equal.
     4/06 *kob*  change type of 1st argument to double, for 64-bit build
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 #include "string_array.h"
diff --git a/fmt/src/string_array_find_quoted.c b/fmt/src/string_array_find_quoted.c
index e2415c1..0b5be7f 100644
--- a/fmt/src/string_array_find_quoted.c
+++ b/fmt/src/string_array_find_quoted.c
@@ -42,6 +42,7 @@
     4/06 *kob*  change type of 1st argument to double, for 64-bit build
    12/14 *sh*   added support for "_SD_" as a single quote indicator
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 #include "string_array.h"
diff --git a/fmt/src/string_array_get_strlen.c b/fmt/src/string_array_get_strlen.c
index 1af09a2..7b7b039 100644
--- a/fmt/src/string_array_get_strlen.c
+++ b/fmt/src/string_array_get_strlen.c
@@ -38,6 +38,7 @@
                 The function is the same as TM_LENSTR.
     4/06 *kob*  change type of 1st argument to double, for 64-bit build
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 #include "string_array.h"
diff --git a/fmt/src/string_array_get_strlen1.c b/fmt/src/string_array_get_strlen1.c
index 82f7f02..5b09549 100644
--- a/fmt/src/string_array_get_strlen1.c
+++ b/fmt/src/string_array_get_strlen1.c
@@ -38,6 +38,7 @@
                 The function is the same as TM_LENSTR1.
     4/06 *kob*  change type of 1st argument to double, for 64-bit build
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 #include "string_array.h"
diff --git a/fmt/src/string_array_hash.c b/fmt/src/string_array_hash.c
index 0eb1928..12e795d 100644
--- a/fmt/src/string_array_hash.c
+++ b/fmt/src/string_array_hash.c
@@ -36,6 +36,7 @@
 /*
   06/04 *ywei* -Created to calculate the hash value for a string.
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 #include "string_array.h"
diff --git a/fmt/src/string_array_init.c b/fmt/src/string_array_init.c
index 7aa81c4..b463420 100644
--- a/fmt/src/string_array_init.c
+++ b/fmt/src/string_array_init.c
@@ -39,6 +39,7 @@
     4/06 *kob*  change type of 1st argument to double, for 64-bit build
  */
 /* *acm   9/06 v600 - add stdlib.h wherever there is stdio.h for altix build*/ 
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stddef.h>  /* size_t, ptrdiff_t; gfortran on linux rh5*/
 #include <stdio.h>
diff --git a/fmt/src/string_array_modify.c b/fmt/src/string_array_modify.c
index c1a27cd..b090d0b 100644
--- a/fmt/src/string_array_modify.c
+++ b/fmt/src/string_array_modify.c
@@ -39,6 +39,7 @@
                  up to date.
     4/06 *kob*  change type of 1st argument to double, for 64-bit build
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 #include "string_array.h"
diff --git a/fmt/src/string_array_modify_upcase.c b/fmt/src/string_array_modify_upcase.c
index 9b3f588..017b03b 100644
--- a/fmt/src/string_array_modify_upcase.c
+++ b/fmt/src/string_array_modify_upcase.c
@@ -39,6 +39,7 @@
                  This functiion should be used to keep hashtable updated
     4/06 *kob*  change type of 1st argument to double, for 64-bit build
  */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 #include "string_array.h"
diff --git a/fmt/src/tm_allo_tmp_line.F b/fmt/src/tm_allo_tmp_line.F
index 2adee33..01c0347 100644
--- a/fmt/src/tm_allo_tmp_line.F
+++ b/fmt/src/tm_allo_tmp_line.F
@@ -40,8 +40,7 @@
 
 * V510 *sh* 3/00 - guts of routine in  TM_ALLO_DYN_LINE_SUB
 * V581*acm*  6/05 For fix to bug 1271, add flag line_shift_origin
-* v694 1/15 *acm* for ticket 2227: if a dimension from a nc file is not also a 
-*                 1-D coordinate var, don't write the axis Ferret creates
+* v694 1/15 *acm* (see ticket 2227) handle the line_dim_only flag
 
 * Include files
 	include 'tmap_dims.parm'
diff --git a/fmt/src/cd_ncclose.F b/fmt/src/tm_bad_epic.F
similarity index 76%
copy from fmt/src/cd_ncclose.F
copy to fmt/src/tm_bad_epic.F
index 230133b..270e2a9 100644
--- a/fmt/src/cd_ncclose.F
+++ b/fmt/src/tm_bad_epic.F
@@ -1,4 +1,5 @@
-	SUBROUTINE CD_NCCLOSE ( dset, status )
+	SUBROUTINE TM_BAD_EPIC( array, n, bad )
+
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -34,26 +35,30 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* Just do an nc_close on the ncid for the dataset. We're going to 
-* re-open it with F-TDS variable definitions, so leave all the
-* dataset initialization information in place.
-*
-* programmer - Ansley Manke
-* NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
-* 2/2013  Ferret v6.85
-*
-* arguments:
-*	dset	- data set number 
+* Make sure bad data matches bad flag for EPIC data.
+* The data will come in as single-precision float, the bad-flag
+* is stored as double precision, so the vales don't match.
+
+* NOAA/PMEL, Seattle, WA - TMAP
+
+* from tm_scale.F  4/2016
+
+
+* calling argument declarations:
+      INTEGER n
+      REAL array(n), bad
 
+* internal variable declarations:	
+      LOGICAL TM_FPEQ_SNGL
+      INTEGER i
+      REAL*4 a, b
 
-	include 'tmap_dims.parm'
-	include 'xstep_files.cmn_text'
-	external xstep_files_data
+      b = SNGL(bad)
 
-* Argument variable declarations
-	INTEGER   dset, status
+      DO  i = 1, n
+         a = SNGL(array(i))
+	 IF ( TM_FPEQ_SNGL(a, b) ) array(i) = bad
+      ENDDO
 
-	CALL CD_CLOSE_SET( sf_lunit(dset), status )
-	
-	RETURN
-	END
+      RETURN
+      END
diff --git a/fmt/src/tm_blockify_ferret_strings.c b/fmt/src/tm_blockify_ferret_strings.c
index cbb93b6..7ff15e1 100644
--- a/fmt/src/tm_blockify_ferret_strings.c
+++ b/fmt/src/tm_blockify_ferret_strings.c
@@ -45,6 +45,8 @@
     This function copies the strings from mr_blk1 to pblock.
 */
 
+#include <Python.h> /* make sure Python.h is first */
+
 void tm_blockify_ferret_strings(char **mr_blk1, char *pblock,
 				int bufsiz, int outstrlen)
 {
diff --git a/fmt/src/tm_check_bnds_attrib.F b/fmt/src/tm_check_bnds_attrib.F
index ade4df4..70167a2 100644
--- a/fmt/src/tm_check_bnds_attrib.F
+++ b/fmt/src/tm_check_bnds_attrib.F
@@ -1,4 +1,4 @@
-        SUBROUTINE TM_CHECK_BNDS_ATTRIB (dset, iaxis, vname, vlen, 
+        SUBROUTINE TM_CHECK_BNDS_ATTRIB (dset, axis_len, vname, vlen, 
      .                                   bname, bndid, status)
 
 *  This software was developed by the Thermal Modeling and Analysis
@@ -41,7 +41,8 @@
 *             Replace NCVID with CD_GET_VAR_ID
 *             Replace NCVINQ for variables, with CD_GET_VAR_INFO
 *             Replace NCDINQ with CD_GET_DS_DIMS
-
+* V695+ *sh* 10/15 - pass axis_len instead of iaxis so this routine can be
+*             reused for processing bounds attributes of T-aggregated files 
 
 	INCLUDE 'tmap_dims.parm'
         INCLUDE 'xtm_grid.cmn_text'
@@ -51,7 +52,7 @@
 
 * argument declarations
 
-      INTEGER dset, iaxis, vlen, bndid, status
+      INTEGER dset, axis_len, vlen, bndid, status
       CHARACTER*(*) bname, vname
 
 * Local variable declarations
@@ -94,7 +95,7 @@
         IF (status.NE.ferr_ok) GOTO 5100   ! should never happen
 
 * check for error conditions: 2nd dimension of bounds is N
-        IF ( npts .NE. line_dim(iaxis) ) THEN
+        IF ( npts .NE. axis_len ) THEN
            soft_err = 23
            GOTO 6000
         ENDIF
diff --git a/fmt/src/tm_check_bnds_attrib.F b/fmt/src/tm_check_fmrc_bnds_attrib.F
similarity index 80%
copy from fmt/src/tm_check_bnds_attrib.F
copy to fmt/src/tm_check_fmrc_bnds_attrib.F
index ade4df4..daa44c3 100644
--- a/fmt/src/tm_check_bnds_attrib.F
+++ b/fmt/src/tm_check_fmrc_bnds_attrib.F
@@ -1,4 +1,4 @@
-        SUBROUTINE TM_CHECK_BNDS_ATTRIB (dset, iaxis, vname, vlen, 
+        SUBROUTINE TM_CHECK_FMRC_BNDS_ATTRIB (dset, nT, nF, vname, vlen, 
      .                                   bname, bndid, status)
 
 *  This software was developed by the Thermal Modeling and Analysis
@@ -33,15 +33,10 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-* V570 5/2004 *acm*
-* Check the bounds attribute, issue any warnings
-* V600 *acm* 10/05 should not have npts as an argument; npts from cd_get_1_axis
-*                  was being reset  as npts bounds or edges, which is npts+1
-* V600 *ACM* attribute control. 
-*             Replace NCVID with CD_GET_VAR_ID
-*             Replace NCVINQ for variables, with CD_GET_VAR_INFO
-*             Replace NCDINQ with CD_GET_DS_DIMS
 
+* CHECK OUT THE VALIDITY OF THE 2D time_bounds VARIABLE NAMED IN NETCDF FILE
+
+* V698+ *sh* patterned closely after TM_CHECK_BNDS_ATTRIB
 
 	INCLUDE 'tmap_dims.parm'
         INCLUDE 'xtm_grid.cmn_text'
@@ -51,7 +46,7 @@
 
 * argument declarations
 
-      INTEGER dset, iaxis, vlen, bndid, status
+      INTEGER dset, nT, nF, vlen, bndid, status
       CHARACTER*(*) bname, vname
 
 * Local variable declarations
@@ -75,26 +70,31 @@
         CALL CD_GET_VAR_INFO (dset, bndid, bname, vartype, 
      .            nvdims, vdims, nvatts, coordvar, all_outflag, status)
 
-        IF ( nvdims .NE. 2 ) THEN
+        IF ( nvdims .NE. 3 ) THEN
            soft_err = 22
            GOTO 6000
         ENDIF
-
-* get axis length: 
-        
+         
+* check for error conditions: bounds is 2 by nF by nT
         CALL CD_GET_DS_DIMS (dset, vdims(1), buff, npts, status)
         IF (status.NE.ferr_ok) GOTO 5100   ! should never happen
-
-* check for error conditions: bounds is 2 by N
         IF ( npts .NE. 2 ) THEN
            soft_err = 23
            GOTO 6000
         ENDIF
+
+* check for error conditions: 2nd dimension of bounds is nT
         CALL CD_GET_DS_DIMS (dset, vdims(2), buff, npts, status)
         IF (status.NE.ferr_ok) GOTO 5100   ! should never happen
+        IF ( npts .NE. nT ) THEN
+           soft_err = 23
+           GOTO 6000
+        ENDIF
 
-* check for error conditions: 2nd dimension of bounds is N
-        IF ( npts .NE. line_dim(iaxis) ) THEN
+* check for error conditions: 3nd dimension of bounds is nF
+        CALL CD_GET_DS_DIMS (dset, vdims(3), buff, npts, status)
+        IF (status.NE.ferr_ok) GOTO 5100   ! should never happen
+        IF ( npts .NE. nF ) THEN
            soft_err = 23
            GOTO 6000
         ENDIF
@@ -104,7 +104,7 @@
 
 * error messages
 
- 6000   CALL TM_NOTE( 'netCDF bounds variable definition error', lunit_errors )
+ 6000   CALL TM_NOTE( 'netCDF FMRC bounds defn err', lunit_errors )
         buff = bname
         vbuff = vname
         IF ( soft_err .EQ. 21 ) THEN
@@ -112,10 +112,11 @@
      .                   '" points to no existing axis', lunit_errors )
         ELSEIF ( soft_err .EQ. 22 ) THEN
            CALL TM_NOTE('Bounds definition "'//buff(:blen)//
-     .                   '" is not 2D', lunit_errors )
+     .                   '" is not 3D', lunit_errors )
         ELSEIF ( soft_err .EQ. 23 ) THEN
            CALL TM_NOTE('Bounds "'//buff(:blen)//
-     .          '" must be 2x dimension of '//vbuff(:vlen), lunit_errors )
+     .          '" must be 2 by dimensions of '
+     .          //vbuff(:vlen), lunit_errors )
         ENDIF
         CALL TM_NOTE( 'Ignoring BOUNDS attribute', lunit_errors )
 
diff --git a/fmt/src/tm_close_set.F b/fmt/src/tm_close_set.F
index 328d10c..b130c61 100644
--- a/fmt/src/tm_close_set.F
+++ b/fmt/src/tm_close_set.F
@@ -34,204 +34,16 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-*
-* Reclaim a data set by re-initializing all associated common variables.
-* Initialize all the variables with the set up values, except for:
-*	ds_var_setnum		= set_not_open
-*	ds_alert_on_open	= .FALSE.
-*	ds_alert_on_output	= .FALSE.
-*	ds_regsteps		= .TRUE.
-*	sf_setnum		= set_not_open
-*	sf_valid		= .FALSE.
-*	sf_lunit		= file_not_open	
-*	sf_regvars		= .TRUE.
-*	sf_regtimes		= .TRUE.
-*
-* programmer - mark verschell
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.00 - 09/11/86 - based on TM_ONLY1_STEP
-* revision 1.00 - 03/19/87 - based on TM_CLOSE_SET by S. HANKIN
-* revision 1.10 - 05/07/87 - added clean up of grid, and integration_tstep
-* revision 1.11 - 07/07/87 - removed ds_revision
-* revision 1.12 - 10/30/87 - removed ds_make_dscrip_rev
-* revision 1.13 - 07/09/88 - aux_parm becomes parm_name and parm_text, and
-*			     aux_modnum, aux_parm(s) now initialized in do loop
-* revision 1.14 - 10/31/88 - added ds_var_modline
-* revision 1.15 - 11/21/88 - changed re-initialization to specific char_initXX
-* revision 1.16 - 02/08/89 - removed ds_var_modline
-* revision 1.20 - 02/15/89 - Renamed TM_CLOSE_SET - added var_file variables -
-*			     changed GT_CLOSE_STEP to TM_CLOSE_STEP, removed
-*			     ds_open
-* revision 1.21 - 04/24/91 - increased size of sf_name, ds_name and ds_des_name
-* netCDF support *sh* 6/92
-* EPIC netCDF *sh* 3/93
-* v500 - *kob* 3/99 -  initialize ds_var_code, ds_var_units, ds_var_title
-*                      and ds_var_titl_mod w/ char_inits of proper new value
-* v500 - *kob* 4/99 - increase size of sf_name and ds_des_name for lengthly
-*	              DODS filenames
-* V510 *sh* 4/00 - deallocate grids and axes used by variables in this data set
-* v540 *acm* 10/01 increase length of ds_name
-* v540 *acm* 10/01 remove VMS include statements
-* v552 *acm*  3/03 bug fix: If maxstepfiles > maxvarfiles, got error on closing dataset.
-* V552 *acm*  5/03 increase size of ds_var_code from 64 to 128 chars
-* V581 *acm*/3/05 - increase length of strings for dataset title to 1024 
-* V600 *acm* 6/05 - Attribute control.
-* V600 *acm* 2/06 - restore default values of ds_var_scale, ds_var_off, ds_var_scaleit
-* v604 *acm* 7/07 increase length of ds_name, ds_des_name
-* V608 *acm* 10/07 Fixes for memory leak; call NCF_DELETE_DSET as a function
-* V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
 
-* arguments:
-*	ds_num	- data set number (see COMMON /XSTEP_FILES/)
+* 2/2016 *sh*
+* all of the guts of this routine were moved to TM_CLOSE_SET_COND_DEALLO
+* allowing the de-allocation of grids to become a conditional matter
 
-	include 'tmap_errors.parm'	! error code parameter defs
-#include "tmap_dset.parm"
-	include 'tmap_dims.parm'
-	include 'xstep_files.cmn_text'
-	external xstep_files_data
-	include 'xdset_info.cmn_text'
-	external xdset_info_data
-
-* argument declarations
+* calling argument declarations
 	INTEGER ds_num, status
+	
 
-* internal variable declarations
-        LOGICAL   its_cdf
-	INTEGER   NCF_DELETE_DSET, 
-     .            f_num,ivar, iparm, iaux, idim
-
-* initialize: do we have an open set?
-	IF (ds_name(ds_num) .EQ. char_init1024) GOTO 9000
-
-* save the data format
-        its_cdf = ds_type(ds_num) .EQ. 'CDF'
-     .     .OR.   ds_type(ds_num) .EQ. 'ENS'
-     .     .OR.   ds_type(ds_num) .EQ. 'ECDF' 
-
-* First clear variables associated only with data set number
-	ds_type(ds_num)			=	char_init04
-	ds_format(ds_num)		=	char_init04
-	ds_source_class(ds_num)		=	char_init16
-	ds_source(ds_num)		=	char_init16
-	ds_subsource(ds_num)		=	char_init16
-	ds_prog_rev(ds_num)		=	char_init04
-********************************************************************************
-	ds_expnum(ds_num)		=	char_init04
-	ds_modnum(ds_num)		=	char_init04
-	ds_title(ds_num)		=	char_init1024
-	ds_mod_title(ds_num)		=	char_init1024
-	ds_forcing_set(ds_num)		=	char_init16
-	ds_t0time(ds_num)		=	char_init20
-	ds_time_unit(ds_num)		=	real4_init
-	ds_ntegrate_tstep(ds_num)	=	real4_init
-	ds_ntuple(ds_num)		=	int4_init
-	ds_time_run(ds_num)		=	char_init20
-	DO 100 iaux = 1,num_aux
-	  ds_aux_modnum(iaux,ds_num)	=	char_init04
-  100	CONTINUE
-	DO 110 iparm = 1,num_parm
-	  ds_parm_name(iparm,ds_num)	=	char_init20
-	  ds_parm_text(iparm,ds_num)	=	char_init80
-  110	CONTINUE
-********************************************************************************
-	ds_alert_on_open(ds_num)	= 	.FALSE.
-	ds_alert_on_output(ds_num)	= 	.FALSE.
-	ds_message(ds_num)		=	char_init80
-********************************************************************************
-* Note that ds_basic_axes relate to the TMAP model output
-
-	ds_des_name(ds_num)		=	char_init1024
-	ds_name(ds_num)			=	char_init1024
-	ds_1step(ds_num)		=	real8_init
-	ds_lastep(ds_num)		=	real8_init
-	ds_delstep(ds_num)		=	real8_init
-	ds_regsteps(ds_num)		=	.TRUE.
-	ds_basic_axes(1,ds_num)		=	int4_init
-	ds_basic_axes(2,ds_num)		=	int4_init
-	ds_basic_axes(3,ds_num)		=	int4_init
-	ds_basic_axes(4,ds_num)		=	int4_init
-	ds_basic_axes(5,ds_num)		=	int4_init
-	ds_basic_axes(6,ds_num)		=	int4_init
-	ds_time_axis(ds_num)		=	int4_init
-	ds_accepts_remote(ds_num)	= 	.FALSE.
-
-* Next clear variables associated with variable in that data set.
-	DO 130 ivar = 1,maxvars
-	  IF (ds_var_setnum(ivar) .NE. ds_num) GOTO 130
-* ... deallocate grids and axes used by the dat aset
-	  CALL TM_DEALLO_DYN_GRID( ds_grid_number(ivar))
-*	  ds_var_code(ivar)		=	char_init128
-          CALL string_array_modify(ds_var_code_head, ivar,
-     .                             char_init128,
-     .                             LEN(char_init128))
-	  ds_var_title(ivar)		=	char_init1024
-	  ds_var_titl_mod(ivar)		=	char_init1024
-	  ds_var_units(ivar)		=	char_init64
-	  ds_grid_number(ivar)		=	int4_init
-	  ds_missing_flag(ivar)		=	real4_init
-	  ds_bad_flag(ivar)		=	real4_init
-	  DO 120 idim = 1, nferdims
-	     ds_ordering(idim,ivar)	=	int4_init
-	     ds_grid_start(idim,ivar)	=	int4_init
-	     ds_grid_end(idim,ivar)	=	int4_init
-  120	  CONTINUE
-	  ds_precision(ivar)		=	char_init01
-	  ds_aux_set_num(ivar)		=	int4_init
-********************************************************************************
-	  ds_ndataperrec(ivar)		=	int4_init
-	  ds_nrecpervar(ivar)		=	int4_init
-	  ds_nrecb4var(ivar)		=	int4_init
-	  ds_var_setnum(ivar) 		=	set_not_open
-	  ds_var_scaleit(ivar) 		=	.FALSE.
-	  ds_var_scale(ivar) 		=	1.0
-	  ds_var_off(ivar) 		=	0.0
-
-  130	CONTINUE
-
-* Now loop through stepfiles and initialize associated entries, closing files
-* if necessary
-
-	DO 140 f_num = 1, maxstepfiles
-	  IF (sf_setnum(f_num) .NE. ds_num) GOTO 140
-
-* close step file or CDF file ?
-	  IF ( sf_lunit (f_num) .NE. file_not_open) THEN	! open ?
-            IF ( its_cdf ) THEN
-               CALL CD_CLOSE_SET( sf_lunit(f_num), status )
-            ELSE
-	       CALL TM_CLOSE_STEP (f_num, status)
-            ENDIF
-	    IF (status .NE. merr_ok) GOTO 9900
-	  ENDIF
-
-* delete step file from tables
-	  sf_name(f_num)		=	char_init256    ! *kob* 4/99
-	  sf_setnum(f_num)		=	set_not_open
-	  sf_aux_set_num(f_num)		=	int4_init
-	  sf_nrecperstep(f_num)		=	int4_init
-	  sf_skip(f_num)		=	int4_init
-	  sf_1step(f_num)		=	real8_init
-	  sf_lastep(f_num)		=	real8_init
-	  sf_delta(f_num)		=	real8_init
-	  sf_reclen(f_num)		=	int4_init
-	  sf_valid(f_num)		=	.FALSE.
-	  sf_lunit(f_num)		=	file_not_open	
-	  sf_index(f_num)		=	char_init23
-	  sf_regvars(f_num)		=	.TRUE.
-	  sf_regtimes(f_num)		=	.TRUE.
-  140	CONTINUE
-
-        DO 150 f_num = 1, maxvarfiles
-	  vf_firstvar(f_num)		=	int4_init
-	  vf_lastvar(f_num)		=	int4_init
-  150   CONTINUE
-
-	status = NCF_DELETE_DSET(ds_num)
-        GOTO 9900
-
- 9000	status = merr_ok
+	CALL TM_CLOSE_SET_COND_DEALLO( ds_num, .TRUE., status)
 
- 9900	RETURN
+	RETURN
 	END
diff --git a/fmt/src/tm_close_set.F b/fmt/src/tm_close_set_cond_deallo.F
similarity index 90%
copy from fmt/src/tm_close_set.F
copy to fmt/src/tm_close_set_cond_deallo.F
index 328d10c..adaafb6 100644
--- a/fmt/src/tm_close_set.F
+++ b/fmt/src/tm_close_set_cond_deallo.F
@@ -1,4 +1,4 @@
-	SUBROUTINE TM_CLOSE_SET ( ds_num, status )
+	SUBROUTINE TM_CLOSE_SET_COND_DEALLO ( ds_num, deallo, status )
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -34,6 +34,13 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
+
+* 2/2016 *sh* identical to legacy TM_CLOSE_SET except deallocation of
+* the grids owned by the variables of the dataset is conditional
+* That allows this routine to be called during error conditions in defining
+* aggregate datasets.  At that time the line_use_cnt values have not yet 
+* been bumped by TM_GARB_COL to reflect the usage by these grids.  
+
 *
 * Reclaim a data set by re-initializing all associated common variables.
 * Initialize all the variables with the set up values, except for:
@@ -82,9 +89,12 @@
 * v604 *acm* 7/07 increase length of ds_name, ds_des_name
 * V608 *acm* 10/07 Fixes for memory leak; call NCF_DELETE_DSET as a function
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
+* V698 1/16 *sh* treat F aggregations ('FCT') like E-aggs
+*      2/16 *sh* create this routine from TM_CLOSE_SET
 
 * arguments:
-*	ds_num	- data set number (see COMMON /XSTEP_FILES/)
+*	ds_num	- (input) data set number (see COMMON /XSTEP_FILES/)
+*	deallo	- (input) flag whether to deallocate the grids
 
 	include 'tmap_errors.parm'	! error code parameter defs
 #include "tmap_dset.parm"
@@ -95,19 +105,21 @@
 	external xdset_info_data
 
 * argument declarations
+	LOGICAL deallo
 	INTEGER ds_num, status
 
 * internal variable declarations
         LOGICAL   its_cdf
 	INTEGER   NCF_DELETE_DSET, 
-     .            f_num,ivar, iparm, iaux, idim
+     .            f_num, ivar, iparm, iaux, idim
 
 * initialize: do we have an open set?
 	IF (ds_name(ds_num) .EQ. char_init1024) GOTO 9000
 
 * save the data format
-        its_cdf = ds_type(ds_num) .EQ. 'CDF'
-     .     .OR.   ds_type(ds_num) .EQ. 'ENS'
+	its_cdf = ds_type(ds_num) .EQ. 'ENS'
+     .     .OR.   ds_type(ds_num) .EQ. 'FCT'
+     .     .OR.   ds_type(ds_num) .EQ. 'CDF'
      .     .OR.   ds_type(ds_num) .EQ. 'ECDF' 
 
 * First clear variables associated only with data set number
@@ -156,12 +168,15 @@
 	ds_basic_axes(6,ds_num)		=	int4_init
 	ds_time_axis(ds_num)		=	int4_init
 	ds_accepts_remote(ds_num)	= 	.FALSE.
+	ds_hide(ds_num)			=	.FALSE.
 
 * Next clear variables associated with variable in that data set.
 	DO 130 ivar = 1,maxvars
 	  IF (ds_var_setnum(ivar) .NE. ds_num) GOTO 130
+
 * ... deallocate grids and axes used by the dat aset
-	  CALL TM_DEALLO_DYN_GRID( ds_grid_number(ivar))
+	  IF (deallo) CALL TM_DEALLO_DYN_GRID( ds_grid_number(ivar))
+
 *	  ds_var_code(ivar)		=	char_init128
           CALL string_array_modify(ds_var_code_head, ivar,
      .                             char_init128,
diff --git a/fmt/src/tm_copy_line.F b/fmt/src/tm_copy_line.F
index e02168e..380f403 100644
--- a/fmt/src/tm_copy_line.F
+++ b/fmt/src/tm_copy_line.F
@@ -44,6 +44,7 @@
 * V581 *acm* 6/05 - For fix to bug 1271, add flag line_shift_origin
 * V62  *acm* 3/09 - copy line_name_orig, used to keep original axis names 
 *                   for use with attribute structure, e.g. save/keep_axisname
+* v694 1/15 *acm* (see ticket 2227) handle the line_dim_only flag
 
 * Arguments
 	INTEGER*4	source, dest
@@ -71,6 +72,7 @@
 	line_shift_origin(dest) = line_shift_origin(source) 
 	line_tunit(dest)     = line_tunit(source) 
 	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
 * non-dynamic lines, only
diff --git a/fmt/src/tm_fmt_user.F b/fmt/src/tm_fmt_user.F
new file mode 100644
index 0000000..ae5cbca
--- /dev/null
+++ b/fmt/src/tm_fmt_user.F
@@ -0,0 +1,405 @@
+	CHARACTER*(*) FUNCTION TM_FMT_USER( val, digits, max_len, str_len )
+
+*
+*
+*  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. 
+*
+*
+* convert the value val to a formatted string, left justified, not exceeding
+* max_len in length and with the shortest possible format( unnecerssary zeros
+* eliminated )
+
+* Ansley Manke 5/25/2016
+*
+* Ferret v7. This is a version of tm_fmt for use in returning values in
+*            grave-accent expressions with precision set by the user.
+*            It applies the # of digits more strictly than TM_FMT, and 
+*            returns exponential results consistently.
+
+* calling arguments:
+* val		- REAL value to be converted
+* digits	- >0, number of significant digits desired
+* max_len	- longest allowable length for string to be returned
+* str_len	- (returned) actual length of the string generated
+
+* calling argument declarations:
+	INTEGER		digits, max_len, str_len
+	REAL		val
+
+* internal variable declarations:
+	LOGICAL		exp_fmt, negative, fixed_pt
+	INTEGER		slen, sig_left, sig_full, nleft, nright, full,
+     .			sig_max, full10, xtra, sig_needed, pow10,
+     .			chk10, chk10_save, waste, i, need_adjust, ind,
+     .			iloop, width, prec_digits, slenh, right, int_len, is
+	REAL		aval, l10
+	CHARACTER*10	fmt, dummy_fmt, outstring*25, str2*25
+
+* local parameters:
+	INTEGER		TM_CHECK_NAN, TM_CHECK_INF, TM_LENSTR1, 
+     .                  max_int_len, sig_min, added_pow10
+	REAL		eps, one_m_eps
+	PARAMETER     ( max_int_len = 8,
+     .			sig_min     = 1,		! minimum sig. digits
+     .			eps         = 0.6E-7,		! 1/95 - was 1.E-7
+     .			one_m_eps   = 1.0 - eps )
+
+* special treatment for exact zero
+	IF ( val .EQ. 0.0 ) GOTO 1000
+
+* initialize
+
+	negative = val .LT. 0.0
+	fixed_pt = digits .LE. 0
+	aval     = ABS( val )
+	outstring   = ' '
+	exp_fmt  = .FALSE.
+	added_pow10 = 0
+	need_adjust = 0
+
+* maximum length of output string (at least 1 character long)
+	slen = MIN( LEN(TM_FMT_USER), max_len )
+	slen = MIN( 18, max_len )
+	slen = MAX( 1, slen )
+
+* If the value is NaN, set the string here
+        IF ( TM_CHECK_NAN(aval) .EQ. 1   ) THEN
+           IF (slen .GE. 3) THEN
+              TM_FMT_USER  = 'NaN'
+              str_len = 3
+           ELSE
+              TM_FMT_USER = '*'
+              str_len = 1
+           ENDIF
+	   RETURN
+        ENDIF
+
+* If the value is NaN, or Inf, set the string here
+        IF ( TM_CHECK_INF(val)  .EQ. 1   ) THEN
+           IF (slen .GE. 3) THEN
+              outstring  = 'Inf'
+              str_len = 3
+           ELSE
+              outstring = '*'
+              str_len = 1
+           ENDIF
+	   RETURN
+        ENDIF
+
+* location of leftmost digit (.01-->-1, 0.1-->0, 1.0-->1, etc.)
+ 10	l10      = LOG10(aval)
+        IF (aval .EQ. 0.) l10 = 0.
+	IF ( l10 .GE. 0.0 ) THEN
+	   pow10 = INT(l10) + 1
+	ELSE
+	   pow10 = INT( l10 * one_m_eps )  ! eps for machine round-off problems
+	ENDIF
+	chk10_save = pow10
+
+* compute total significant digits requested
+ 50	IF ( fixed_pt ) THEN
+	   sig_max = pow10 + ABS(digits)
+	ELSE
+	   sig_max = digits
+	ENDIF
+
+* significant digits to left of the decimal point
+	sig_left = MAX( pow10, 0 )
+
+* actual characters to the left of the decimal point
+	nleft = MAX( sig_left, 1 )
+	IF ( negative ) nleft = nleft + 1	! minus sign
+
+* compute "wasted" space needed for minus signs, left zeros and decimal points
+	waste = nleft - sig_left			! sign and left zero
+	IF ( sig_max .GT. sig_left ) waste = waste + 1	! decimal point
+	IF ( pow10 .LT. 0 ) waste = waste + ABS(pow10)	! leading zeros
+
+* modify # significant digits: cannot request more digits than the integer
+* word size or the "unwasted" string length
+* but at least sig_min digits.
+
+* For double-precision Ferret the code below that puts the digits into a 
+* integer would fail because integers cant be that large. Keep track of
+* the extra length and add it back later.
+
+        sig_full = MAX( sig_min, MIN( sig_max, slen-waste ) )
+
+        IF (sig_full .GT. max_int_len) THEN
+	  need_adjust = sig_full - max_int_len
+	ENDIF
+        sig_full = MAX( sig_min, MIN( sig_max, max_int_len, slen-waste ) )
+
+* create an integer with all the possible digits
+* (1-eps factor is because VAX Fortran formats round 100.5-->100 whereas VAX 
+* NINT function rounds 100.5 -->101)
+* Note: On DEC/OSF f77 the integer calculation blows up when compiled with -g
+*       It was observed with sig_full=4, pow10=-6, aval=6.27833E-07
+* 	Kludge work-around is to use the floating point calculation for cases
+*	where sig_full+pow10 is too large (10 or larger crashes, expermentally)
+! pre-1/95	full = NINT( aval * 10.**(sig_full-pow10) * one_m_eps )
+! pre-3/95	full = NINT( aval * (10**(sig_full-pow10)) * one_m_eps )
+* 9/95 ... it turns out that for large values (e.g. 2.16E8) that pow10
+* can be larger than sig_full givin 10**(negative) --> zero (integer calc)
+* so the IF condition has had a check added for this
+! 12/95: The value 9.9995 displayed with 4 sig_full=4 generates (F5.3) and
+! blows up because 9.9995 rounds to 10.000 on OSF Fortran. This occurs because
+! full is computed to be 9999 when the one_m_eps factor is included. Since the
+! comments just above indicate that one_m_eps was included to fix a VAX bug
+! we have removed this logic to an ifdef: NINT_WRITE_UNMATCH
+
+# ifdef NINT_WRITE_UNMATCH
+	IF ( sig_full-pow10 .LT. 10
+     .	.AND. sig_full      .GT. pow10 ) THEN
+	   full = NINT( aval * (10**(sig_full-pow10)) * one_m_eps )
+	ELSE
+	   full = NINT( aval * 10.**(sig_full-pow10) * one_m_eps )
+	ENDIF
+# else
+	IF ( sig_full-pow10 .LT. 10
+     .	.AND. sig_full      .GT. pow10 ) THEN
+	   full = NINT( aval * (10**(sig_full-pow10))  )
+	ELSE
+	   full = NINT( aval * 10.**(sig_full-pow10)  )
+	ENDIF
+# endif
+
+* special check: eg. 99.9 --> 100.0 , changing leftmost digit
+	IF ( full .EQ. 10**sig_full ) THEN
+	   pow10 = pow10 + 1
+	   added_pow10 = added_pow10 + 1  ! 
+
+	   GOTO 50
+	ENDIF
+
+* get number of digits remaining after trimming off right hand zeros
+	full10 = 10 ** (sig_full-sig_min)
+	DO 100 sig_needed = sig_min, sig_full
+	   IF ( MOD(full, full10) .EQ. 0 ) GOTO 200
+	   full10 = full10 / 10
+ 100	CONTINUE
+	sig_needed = sig_full
+
+* * * * CREATE A FORMAT STRING AND WRITE THE RESULT * * *
+ 200	CONTINUE
+	slenh = MIN( 18, slen/2 )  ! try too with half the allowed lengths
+	slenh = MAX( 1, slenh )
+	int_len = max_int_len
+	int_len = MIN(digits+2, slen-2) 
+
+	xtra = 5 
+	IF ( negative ) xtra = 6
+	IF ( slenh .LE. xtra ) slenh = slen
+
+* EXACT ZERO - fixed point numbers that would be 0.000...
+ 	IF ( fixed_pt .AND. sig_min-pow10 .GT. slen-waste ) THEN
+	   GOTO 1000
+
+* EXPONENTIAL STRING
+* numbers too small for fixed point (eg. 0.0000025 represented as 0.0)
+* or too big for the string length  (eg. 150000 can't fit in 4 spaces)
+* or with integer parts big enuf to ovflow the integer size (eg.123456789.123)
+* must be written in exponential format
+	ELSEIF ( sig_min-pow10 .GT. slen-waste
+     .	.OR. nleft .GT. slen 
+     .	.OR. nleft .GT. int_len) THEN
+	   IF ( negative ) THEN
+	      xtra = 6
+	   ELSE
+	      xtra = 5
+	   ENDIF
+	   IF ( slen .LE. xtra ) THEN
+	      outstring  = '******'
+	      str_len = slen
+	   ELSE
+	      str_len = MIN( slen, sig_needed+xtra)
+* Correct for too-small number of slots when writing a number w neg exponent.
+              IF (pow10 .LT. 0) str_len = str_len + sig_max
+              IF (str_len .GT. slen) str_len = slen
+              IF (str_len-(xtra+1) .LT. 0) xtra = 1
+              right = MIN(str_len-(xtra+1), digits-1)
+              IF (right .LT. 0) right = str_len-(xtra+1)
+              WRITE ( fmt, 3000 ) str_len, right
+ 3000	      FORMAT( '(1PG',I2,'.',I2,')' )
+	      WRITE ( outstring, fmt ) val
+	   ENDIF
+
+c ...
+
+* EXPONENTIAL STRING
+* Using half the allowed lengths. Return exponential for small 
+* values and small number of digits
+	ELSEIF ( sig_min-pow10 .GT. slenh-waste
+     .	.OR. nleft .GT. slenh
+     .	.OR. nleft .GT. int_len) THEN
+	   
+	      str_len = MIN( slenh, sig_needed+xtra)
+* Correct for too-small number of slots when writing a number w neg exponent.
+              IF (pow10 .LT. 0) str_len = str_len + sig_max
+              IF (str_len .GT. slenh) str_len = slenh
+              IF (str_len-(xtra+1) .LT. 0) xtra = 1
+              right = MIN(str_len-(xtra+1), digits-1)
+              IF (right .LT. 0) right = str_len-(xtra+1)
+              WRITE ( fmt, 3000 ) str_len, right
+	      WRITE ( outstring, fmt ) val
+c ...
+
+* INTEGER STRING
+* numbers whose needed digits are all on the left (eg. -2.0001 in 4 characters)
+* or whose length is too long to add a decimal point (eg. 25.5 in 3 characters)
+* may/must be represented as integers
+	ELSEIF ( sig_left .GE. sig_needed .OR. nleft .GE. slen-1 ) THEN
+* ... check if nearest integer will alter formatting (e.g. 99.6-->100)
+
+	   aval = NINT(aval)
+	   l10      = LOG10(aval)
+           IF (aval .EQ. 0.) l10 = 0.
+	   IF ( l10 .GE. 0.0 ) THEN
+	      chk10 = INT(l10) + 1
+	   ELSE
+	      chk10 = INT( l10 * one_m_eps )  ! eps for machine round-off problems
+	   ENDIF
+	   IF ( chk10 .NE. chk10_save ) GOTO 10
+	   str_len = nleft - added_pow10
+	   iloop = 0
+ 9000	   IF (str_len .LE. 0) str_len = 1
+	   WRITE ( fmt, 3100 ) str_len
+ 3100	   FORMAT ( '(I',I2,')' )
+	   WRITE ( outstring, fmt ) NINT(val)
+	   IF (INDEX(outstring,'*') .EQ. 1) THEN
+	      str_len = str_len + 1
+	      iloop = iloop + 1
+	      IF (iloop .LT. 5) GOTO 9000
+	   ENDIF
+
+* If they asked for fewer digits than written, return that,
+* e.g. 55555 with 2 sig digs becomes 55000.
+
+	   IF (digits.GT.0 .AND. digits.LT.str_len) THEN
+	       str2 = outstring
+	       aval = NINT(val)
+	       aval = aval/ 10**(pow10 - digits)
+	       aval = 10**(pow10 - digits)* NINT(aval)
+	       WRITE ( outstring, fmt ) NINT(aval)
+	       IF (INDEX(outstring,'*') .EQ. 1) outstring = str2
+	    ENDIF
+
+* FIXED POINT STRING
+	ELSE
+	   sig_needed = sig_needed + need_adjust
+	   nright = MIN( sig_needed-pow10, slen-(nleft+1) )
+	   str_len = nleft + nright + 1
+	   WRITE ( fmt, 3200 ) str_len, nright
+ 3200	   FORMAT ( '(F',I2,'.',I2,')' )
+	   WRITE ( outstring, fmt ) val
+	   IF (slen .GE. 3) THEN 
+	       IF (outstring(1:3) .EQ. ' -.') THEN
+		  outstring(1:3) = '-0.'	! 8/96 for aix&hp
+	       ELSEIF (outstring(1:1) .EQ. ' ') THEN
+                  outstring(1:1) = '0'
+	       ENDIF	
+	   ENDIF
+* Precision in computation of value of FULL can cause an extra
+* digit at the end, and so trailing 0s may still exist. Remove them.
+           slen = TM_LENSTR1( outstring )
+           DO 3300 i = slen,1,-1
+              IF (outstring(i:i) .EQ. '0') THEN
+                 outstring(i:i) = ' '
+                 str_len = str_len - 1
+              ELSE
+                 GOTO 3400
+              ENDIF
+ 3300      CONTINUE
+ 3400      CONTINUE   
+
+	ENDIF
+	
+* Ticket 2323
+* the adjustment for handling large values does not always produce 
+* accurate results. Compare the result to the original value and if
+* needed use the formatting method used in ascii data listings.
+
+	READ (outstring,*) aval
+	IF (need_adjust.GT.0 .AND. ABS(val-aval).GT.0.01) THEN
+	   width = 4
+	   prec_digits = ABS(digits)
+	   IF (digits .GT. 0) prec_digits = digits
+	   CALL GET_SIG_DIGITS( val, prec_digits, nleft, nright )
+	   nleft = MAX( 1, nleft )  
+	   width = 4
+	   CALL VAR_DATA_FMT( nleft, nright, prec_digits, width,
+     .                         width, fmt, dummy_fmt )
+	   WRITE ( outstring, fmt ) val
+	ENDIF
+
+	str_len = TM_LENSTR1( outstring )
+	IF (INDEX(outstring, '0E') .GT. 0) THEN
+	   ind = INDEX(outstring, '0E')
+	   DO WHILE (ind .GT. 0)
+	      str2 = outstring(ind+1:str_len)
+	      outstring = outstring(1:ind-1)//str2
+	      ind = INDEX(outstring, '0E')
+	   ENDDO
+	ENDIF
+
+	str_len = TM_LENSTR1( outstring )
+	IF (INDEX(outstring, '0E') .GT. 0) THEN
+	   ind = INDEX(outstring, '0E')
+	   DO WHILE (ind .GT. 0)
+	      str2 = outstring(ind+1:str_len)
+	      outstring = outstring(1:ind-1)//str2
+	      ind = INDEX(outstring, '0E')
+	   ENDDO
+	ENDIF
+
+* Remove 00000 from the end of the fractional part of a fixed-point string
+
+	IF (INDEX(outstring, '.') .GT. 0 .AND. INDEX(outstring, 'E').EQ.0) THEN
+	   ind = INDEX(outstring, '.')
+	   is = str_len
+	   DO is = str_len, ind+1, -1
+	      IF (outstring(is:is) .NE. '0') EXIT
+	   ENDDO
+	   str_len = is
+	   IF (outstring(is:is) .EQ. '.') str_len = str_len - 1
+	ENDIF
+        
+	TM_FMT_USER = outstring(:str_len)
+	RETURN
+
+* return exact zero
+ 1000	TM_FMT_USER  = '0'
+	str_len = 1
+	RETURN
+
+      END
diff --git a/fmt/src/tm_get_like_dyn_line.F b/fmt/src/tm_get_like_dyn_line.F
index 923beb1..e388de2 100644
--- a/fmt/src/tm_get_like_dyn_line.F
+++ b/fmt/src/tm_get_like_dyn_line.F
@@ -53,6 +53,7 @@
 *		   else the stride and delta cannot be recovered 
 * V541 *sh* 2/02 - added support for parent modulo length less than axis length
 * V581*acm*  6/05 - For fix to bug 1271, add flag line_shift_origin
+* v694 1/15 *acm* (see ticket 2227) handle the line_dim_only flag
 
 * Arguments
 	INTEGER		idim, like, class, outline, status
@@ -110,6 +111,7 @@
 	line_class(inline) = class
 	line_modulo(inline)     = .FALSE.	! modulo subset doesn't cut it
 	line_modulo_len(inline) = 0.0D0
+	line_dim_only(inline)   = .FALSE.
 
 * set up the scratch line as per its class
 * Note: for computational efficiency axes with regularly-spaced points will
diff --git a/fmt/src/tm_get_linematch.F b/fmt/src/tm_get_linematch.F
index db8a3e8..e05e43c 100644
--- a/fmt/src/tm_get_linematch.F
+++ b/fmt/src/tm_get_linematch.F
@@ -46,6 +46,11 @@
 
 * V510 *sh* 4/00
 * V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
+* V6.95+ 11/15 *sh*  when dup_guts is found do not return immediately -- 
+*                    instead continue through the axes to see if there may
+*                    also be a dup_name. This for special needs of creating
+*		     an aggregated T axis by modifying the axis of the 1st file
+*                   
 
 * Include files
 #include "tmap_dset.parm"	
@@ -62,31 +67,25 @@
 
 * initialize
 	dup_name = .FALSE.
+	TM_GET_LINEMATCH = unspecified_int4
+
+* Note: the code logic appears to return the *last* dup_guts found, but
+*       logic in Ferret ensures that there can be at most one such match 
 
 * check the static axes
 	DO 100 i=1,max_lines
 	  CALL TM_GET_LINEMATCH_SUB(gvn_line, i, xact_name, dup_guts)
-	  IF (dup_guts) THEN
-	     TM_GET_LINEMATCH = i
-	     RETURN
-	  ELSEIF (xact_name) THEN
-	     dup_name = .TRUE.
-	  ENDIF
+	  IF (dup_guts) TM_GET_LINEMATCH = i
+	  IF (xact_name) dup_name = .TRUE.
  100	CONTINUE
  
 * check the dynamic grids
 	i = 0
  200	CALL TM_NEXT_DYN_LINE( i, *299)
 	  CALL TM_GET_LINEMATCH_SUB(gvn_line, i, xact_name, dup_guts)
-	  IF (dup_guts) THEN
-	     TM_GET_LINEMATCH = i
-	     RETURN
-	  ELSEIF (xact_name) THEN
-	     dup_name = .TRUE.
-	  ENDIF
+	  IF (dup_guts) TM_GET_LINEMATCH = i
+	  IF (xact_name) dup_name = .TRUE.
 	GOTO 200
 
-* not found
- 299	TM_GET_LINEMATCH = unspecified_int4
-	RETURN
+ 299	RETURN
 	END
diff --git a/fmt/src/tm_get_linematch_sub.F b/fmt/src/tm_get_linematch_sub.F
index e3ebc4b..00abf77 100644
--- a/fmt/src/tm_get_linematch_sub.F
+++ b/fmt/src/tm_get_linematch_sub.F
@@ -45,6 +45,8 @@
 
 * V510 *sh* 4/00
 * V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables, 
+* pre-defined axes and grids.
 
 * Include files
 #include "tmap_dset.parm"	
diff --git a/fmt/src/tm_get_strlen.c b/fmt/src/tm_get_strlen.c
index 45d664f..9b1593b 100644
--- a/fmt/src/tm_get_strlen.c
+++ b/fmt/src/tm_get_strlen.c
@@ -34,6 +34,7 @@
 *
 *  ywei:05/04 created to speed up get fortran string length rountine 
 */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <assert.h>
 #include <stdio.h>
diff --git a/fmt/src/tm_init_dset.F b/fmt/src/tm_init_dset.F
index e58f3bf..5e26384 100644
--- a/fmt/src/tm_init_dset.F
+++ b/fmt/src/tm_init_dset.F
@@ -1,4 +1,5 @@
-	SUBROUTINE TM_INIT_DSET(dset_name,perm,dset_num,tregular, use_strict,status)
+	SUBROUTINE TM_INIT_DSET(dset_name,ok_re_use_existing,
+     .				perm,dset_num,tregular, use_strict,status)
 
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -109,9 +110,12 @@
 * V686 1/27/14 *acm* further fix for 2129: make sure a search for a .nc or .cdf file is
 *                 done in path FER_DATA.
 * V693+ *sh* 12/14 added blank separator into error message 5600
+* V695+ *sh* 11/15 for DEF DATA/AGG/T added argument ok_re_use_existing
+*	           and check for existence of dataset from the get-go
 
 * arguments:
 *	dset_name	- filename of DESCRIPTOR file (input)
+*	ok_re_use_existing - if dataset already open, return it? (input)
 *	dset_num	- number assigned to this data set (output)
 *			  ( 1 <= dset_num <= maxdsets - see COMMON XDSET_INFO)
 *	dset_type	- coaching for data set type (GT,TS, or CDF)
@@ -120,8 +124,7 @@
 *
 
 * Argument definitions
-*	CHARACTER*(*)	dset_name, dset_type  removed 4/92 kob
-	LOGICAL		tregular, use_strict
+	LOGICAL		ok_re_use_existing, tregular, use_strict
 	INTEGER		perm(*), dset_num, status
 	CHARACTER*(*)	dset_name
 
@@ -161,7 +164,7 @@
 	INTEGER*4	set_cnt, lunit, cnt, aux_cnt, tcnt, dlen, dlen2,
      .			rcnt, parm_cnt, grd_cnt, equal_pos, istat
 	INTEGER*4	TM_LENSTR, TM_LENSTR1, STR_SAME, STR_UPCASE, ic
-	LOGICAL		TM_HAS_STRING, match,
+	LOGICAL		TM_HAS_STRING, match, ok_share_taxis,
      .			opened, got_lun, dods_url, nocache,
      .                  explicit_ext                 ! 7/97
 	DATA		known_type/'  GT','  TS','  MC','  MG','  MT'/
@@ -192,6 +195,29 @@
         got_lun = .FALSE.    ! controls error clean-up
         opened = .FALSE.     ! controls error clean-up
 	explicit_ext = .FALSE.  !controls missing file error reporting 7/97
+
+* (11/15) ok_re-use_existing as (as of today) used only for DEFINE DATA/AGG/T
+* ok_re_use_existing==FALSE indicates that we are initializing a T agg by
+* opening the first file in the list.  The time axis of this file will be
+* modified to become the time axis of the full aggregation.  So it is not ok
+* to share (and then modify) the time axis of some previously opened dataset
+	ok_share_taxis = ok_re_use_existing
+
+* (11/15) pre-check to see if the dset name that has been provided is an exact 
+* match to ds_des_name.  This allows user-defined names to be found (as in
+* DEFINE DATA/AG/T myname = file1, file, file3) and as a side benefit it
+* bypasses directory inquiries when the user gives the full, exact path on the
+* SET DATA command
+	IF (ok_re_use_existing) THEN
+	   DO set_cnt = 1, maxdsets
+	      IF ( ds_des_name(set_cnt) .EQ. dset_name ) THEN
+	         dset_num = set_cnt
+	         status = merr_no_action
+	         GOTO 9999
+	      ENDIF
+	   ENDDO
+	ENDIF
+
 * is this a network data request based on a DODS URL?
 	dods_url = INDEX(dset_name,'://') .GT. 0
 	IF ( dods_url ) THEN
@@ -308,21 +334,23 @@
 	IF (ds_dset_type .EQ. '  ') ds_dset_type = 'CDF'
 
 * check to see if this descriptor has already been initialized
-	DO 100 set_cnt = 1, maxdsets
-	   IF (nocache) THEN
+	IF (ok_re_use_existing) THEN
+	   DO 100 set_cnt = 1, maxdsets
+	      IF (nocache) THEN
 * ... imperfect logic: "abcd(no cache)" will match "abc"
-	      dlen2 = TM_LENSTR1(ds_des_name(set_cnt))
-	      match = dlen2 .EQ. dlen
-     .	        .AND. ds_des_name(set_cnt) .EQ. des_name(:dlen)
-	   ELSE
-	      match = ds_des_name(set_cnt) .EQ. des_name
-	   ENDIF
-	   IF ( match ) THEN
-	      dset_num = set_cnt
-	      status = merr_no_action
-	      GOTO 9999
-	    ENDIF
-  100	CONTINUE
+	         dlen2 = TM_LENSTR1(ds_des_name(set_cnt))
+	         match = dlen2 .EQ. dlen
+     .	           .AND. ds_des_name(set_cnt) .EQ. des_name(:dlen)
+	      ELSE
+	         match = ds_des_name(set_cnt) .EQ. des_name
+	      ENDIF
+	      IF ( match ) THEN
+	         dset_num = set_cnt
+	         status = merr_no_action
+	         GOTO 9999
+	       ENDIF
+  100	   CONTINUE
+	ENDIF
 
 * Assign data set number, exiting if maximum number of data sets are open
 	DO 110 set_cnt = 1,maxdsets
@@ -342,7 +370,8 @@
 * netCDF file ?
  120    IF ( ds_dset_type .EQ. 'CDF' ) THEN
            ds_dset_type = ' '     ! reset the coaching shared by outside world
-           CALL CD_INIT_DSET( dset_num, perm, tregular, use_strict, status )
+           CALL CD_INIT_DSET( dset_num, perm, tregular, use_strict,
+     .				ok_share_taxis, status )
            IF ( status .NE. merr_ok ) GOTO 9900
            RETURN
         ENDIF
diff --git a/ppl/tmapadds/its_gksm.c b/fmt/src/tm_its_index_axis.F
similarity index 81%
copy from ppl/tmapadds/its_gksm.c
copy to fmt/src/tm_its_index_axis.F
index 6f1b555..f48eba4 100644
--- a/ppl/tmapadds/its_gksm.c
+++ b/fmt/src/tm_its_index_axis.F
@@ -1,5 +1,5 @@
-/*
-*
+	LOGICAL FUNCTION TM_ITS_INDEX_AXIS ( line )
+
 *  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),
@@ -30,19 +30,29 @@
 *  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
 *  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.  
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*
+*
+*
+* Check to see if line is a simple 1, ... N index counter
 *
-*/
+* V698  *sh* 3/16 
 
+* Include files
+	include 'tmap_dims.parm'
+#include "tmap_dset.parm"
+#include "gt_lib.parm"
+	include 'xtm_grid.cmn_text'
+	external xgt_grid_data
 
 
-/* 
- * boolean function returns 1 or 0 to tell if the given
- * GKS workstation is a GKSM metafile workstation
- */
+* Argument definitions
+	INTEGER*4	line
 
-int its_gksm_(int *wkid)
-{
-    return 0;
-}
+	TM_ITS_INDEX_AXIS = 
+     .		line_regular(line)
+     .	  .AND. line_start(line).EQ.1.0D0
+     .	  .AND. line_delta(line).EQ.1.0D0
 
+	RETURN
+	END
diff --git a/fmt/src/tm_make_basic_axis.F b/fmt/src/tm_make_basic_axis.F
index 8cd186d..8f24ced 100644
--- a/fmt/src/tm_make_basic_axis.F
+++ b/fmt/src/tm_make_basic_axis.F
@@ -46,8 +46,9 @@
 * V550 *sh* 11/02 - initialize line_modulo_len (just for good house keeping)
 * V581 *acm* 6/05 - For fix to bug 1271, add flag line_shift_origin
 * V63  *acm* 9/09 - Fix bug 1686: set line_name_orig
-* v694 1/15 *acm* for ticket 2227: if a dimension from a nc file is not also a 
-*                 1-D coordinate var, don't write the axis Ferret creates
+* v694 1/15 *acm* for ticket 2227: Set the new line_dim_only flag. If a 
+*                 dimension from a nc file is not also a 1-D coordinate 
+*                 var, don't write the axis Ferret creates.
  
 
 * argument definitions:
diff --git a/fmt/src/tm_make_dyn_line.F b/fmt/src/tm_make_dyn_line.F
index cad847a..4adb6ce 100644
--- a/fmt/src/tm_make_dyn_line.F
+++ b/fmt/src/tm_make_dyn_line.F
@@ -54,6 +54,7 @@
 *                   than WE or SN
 * V600 *acm* 2/06 - Fix for bug 1394, send do_err flag to TM_DATE_REFORMAT
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
+* v694 1/15 *acm* (see ticket 2227) handle the line_dim_only flag
 
 * Arguments
 	LOGICAL		modulo
@@ -104,6 +105,7 @@
 	line_regular(inline)   = .TRUE.
 	line_class(inline)     =  pline_class_basic
 	line_direction(inline) = axis_orients(idim)
+	line_dim_only(inline)    = .FALSE.
 
 * set user-specified (boolean) modulo flag
 	line_modulo(inline)    = modulo		! "TRUE" untested 1/98 !!!
diff --git a/fmt/src/tm_match_capital_name.c b/fmt/src/tm_match_capital_name.c
index e7edc46..8fe4804 100644
--- a/fmt/src/tm_match_capital_name.c
+++ b/fmt/src/tm_match_capital_name.c
@@ -34,6 +34,7 @@
 *
 *  ywei: 05/04 created to speed up uppercase string matching
 */
+
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
 
diff --git a/fmt/src/tm_purge_tmp_grids.F b/fmt/src/tm_purge_tmp_grids.F
index e1b514b..dd83147 100644
--- a/fmt/src/tm_purge_tmp_grids.F
+++ b/fmt/src/tm_purge_tmp_grids.F
@@ -40,16 +40,35 @@
 * axes, including allocations (use count increments) of axes that came
 * from other data sets.
 
+* major re-write 2/2016:
+* As it was, this routine could accidentally attempt to remove tmp
+*    lines twice by making a call to deallo line and then a call to deallo
+*    one or more grids that used that line.
+* It became two difficult to keep track of the dependencies when error occured
+*    during the definition of aggregate Ferret datasets.
+* The new version of this routine simply clears out the tmp lines and axes.
+* If any of the tmp grid used axes from pre-existing datasets AND THE USE
+* COUNTS FOR THOSE AXES HAD ALREADY BEEN BUMBED BEFORE THIS ROUTINE WAS CALLED
+* then this routine could now result in a minor corruption (an axis that will
+* never get deleted.)
+* Possible corruption risk for legacy GT or MC datasets?
+* SHOW GRID/DYNAMIC diagnositcs should reveal the corruption.
+
+
 * Steve Hankin  NOAA/PMEL/TMAP
 
 * V510 *sh* 3/00
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
-
+* V697 12/15 *acm* Ticket 2332: deallo lines should not be in a 1:nferdims loop
+* V698 2/16 *sh*  major rewrite -- see discussion above
+ 
 * Include files
 	include 'tmap_dims.parm'
+	include 'tmap_errors.parm'
 #include "gt_lib.parm"
         include 'xtm_grid.cmn_text'
         include 'xio.cmn_text'
+#include "tmap_dset.parm"
 
 * Argument definitions
 	INTEGER status
@@ -57,45 +76,26 @@
 * Local variable declarations
 	INTEGER grid, line, idim
 
-
-* over temporary grids
+* remove temporary grids
  100	CONTINUE
 	   grid = 0	! to get start of list
 	   CALL TM_NEXT_TMP_GRID(grid, *300)
 
-* deallocate axes used by grid (NOTE: only dynamic axes are used by netCDF!)
-	   DO 200 idim = 1, nferdims
-	      IF ( grid_line(idim, grid) .GT. max_lines ) THEN
-	         CALL TM_DEALLO_DYN_LINE( grid_line(idim, grid) )
-	      ELSEIF (  grid_line(idim, grid) .NE. mpsnorm ) THEN
-	         CALL TM_NOTE('tm intern err: netCDF grid w/ static axis'
-     .			 ,lunit_errors)  ! should never happen
-	      ENDIF
- 200	   CONTINUE
-
-	   CALL TM_DEALLO_DYN_GRID( grid )
+	   CALL TM_RM_TMP_GRID(grid)
+
 	GOTO 100
 
-* remove any stray lines that were never incorporated into grids
+* remove temporary lines
  300	CONTINUE
 	   line = 0		! to get start of list
  	   CALL TM_NEXT_TMP_LINE(line, *1000)
 
-* deallocate axes used by grid (NOTE: only dynamic axes are used by netCDF!)
-	   DO 400 idim = 1, nferdims
-	      IF ( line .GT. max_lines ) THEN
-	         IF (line_use_cnt(line) .GT. 1) CALL TM_NOTE(
-     .			'tm intern err: line over alloc.',lunit_errors)
-	         CALL TM_DEALLO_DYN_LINE( line )
-	      ELSEIF (  line .NE. mpsnorm ) THEN
-	         CALL TM_NOTE('intern err: netCDF static axis'
-     .			 ,lunit_errors)  ! should never happen
-	      ENDIF
- 400	   CONTINUE
+	   CALL TM_RM_TMP_LINE(line)
 
 	GOTO 300
 
 * successful completion
- 1000	RETURN
+ 1000	status = merr_ok	! always as of 2/2016
+	RETURN
 
  	END
diff --git a/fmt/src/cd_ncclose.F b/fmt/src/tm_rm_tmp_grid.F
similarity index 70%
copy from fmt/src/cd_ncclose.F
copy to fmt/src/tm_rm_tmp_grid.F
index 230133b..8f74ae5 100644
--- a/fmt/src/cd_ncclose.F
+++ b/fmt/src/tm_rm_tmp_grid.F
@@ -1,4 +1,5 @@
-	SUBROUTINE CD_NCCLOSE ( dset, status )
+	SUBROUTINE TM_RM_TMP_GRID( grid )
+
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -34,26 +35,40 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* Just do an nc_close on the ncid for the dataset. We're going to 
-* re-open it with F-TDS variable definitions, so leave all the
-* dataset initialization information in place.
-*
-* programmer - Ansley Manke
-* NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
-* 2/2013  Ferret v6.85
-*
-* arguments:
-*	dset	- data set number 
+* Remove a grid from the tmp area (from the linked list of tmp_grid_hook)
 
+* *sh* 2/2106 -- using code from tm_deallo_dyn_line_sub
 
+* Include files
 	include 'tmap_dims.parm'
-	include 'xstep_files.cmn_text'
-	external xstep_files_data
+#include "tmap_dset.parm"
+#include "gt_lib.parm"
+	include 'tmap_errors.parm'
+	include 'xtm_grid.cmn_text'
+	external xgt_grid_data
+	include 'xio.cmn_text'
+
+* Argument definitions
+	INTEGER grid
 
-* Argument variable declarations
-	INTEGER   dset, status
+* internal declarations
+	INTEGER next_used_grid
 
-	CALL CD_CLOSE_SET( sf_lunit(dset), status )
-	
+* clear COMMON info
+	grid_use_cnt(grid) = 0
+	grid_name(grid)    = char_init16
+
+* take this grid from the "tmp" list and put it on the "free" list
+* ... hook onto free list
+	next_used_grid   = grid_flink(grid)
+	grid_flink(grid) = grid_free_ptr  
+	grid_free_ptr    = grid
+	   
+* ... unhook from tmp list
+	grid_flink(grid_blink(grid)) = next_used_grid
+	grid_blink(next_used_grid)   = grid_blink(grid)
+
+* successful completion
 	RETURN
+
 	END
diff --git a/fmt/src/cd_ncclose.F b/fmt/src/tm_rm_tmp_line.F
similarity index 70%
copy from fmt/src/cd_ncclose.F
copy to fmt/src/tm_rm_tmp_line.F
index 230133b..b73f57e 100644
--- a/fmt/src/cd_ncclose.F
+++ b/fmt/src/tm_rm_tmp_line.F
@@ -1,4 +1,5 @@
-	SUBROUTINE CD_NCCLOSE ( dset, status )
+	INTEGER FUNCTION TM_RM_TMP_LINE( line )
+
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -34,26 +35,42 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* Just do an nc_close on the ncid for the dataset. We're going to 
-* re-open it with F-TDS variable definitions, so leave all the
-* dataset initialization information in place.
-*
-* programmer - Ansley Manke
-* NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
-* 2/2013  Ferret v6.85
-*
-* arguments:
-*	dset	- data set number 
+* Remove a line from the tmp area (from the linked list of tmp_line_hook)
+
+* *sh* 2/2106 -- using code from tm_deallo_dyn_line_sub
+
 
+* Include files
 
 	include 'tmap_dims.parm'
-	include 'xstep_files.cmn_text'
-	external xstep_files_data
+#include "tmap_dset.parm"
+#include "gt_lib.parm"
+	include 'tmap_errors.parm'
+	include 'xtm_grid.cmn_text'
+	external xgt_grid_data
+	include 'xio.cmn_text'
 
-* Argument variable declarations
-	INTEGER   dset, status
+* Argument definitions
+	INTEGER line
 
-	CALL CD_CLOSE_SET( sf_lunit(dset), status )
-	
+* Internal variable declarations
+	INTEGER	next_used_line
+
+* clear COMMON
+	line_use_cnt(line) = 0
+	line_name(line)    = char_init16
+
+* take this line from the "tmp" list and put it on the "free" list
+* ... hook onto free list
+	next_used_line   = line_flink(line)
+	line_flink(line) = line_free_ptr  
+	line_free_ptr    = line
+	   
+* ... unhook from tmp list
+	line_flink(line_blink(line)) = next_used_line
+	line_blink(next_used_line)   = line_blink(line)
+
+* successful completion
 	RETURN
+
 	END
diff --git a/fmt/src/tm_set_free_event.c b/fmt/src/tm_set_free_event.c
index e0fb941..f2a084b 100644
--- a/fmt/src/tm_set_free_event.c
+++ b/fmt/src/tm_set_free_event.c
@@ -54,6 +54,8 @@
  *               now used to read user input with readline functionality
  */
 
+#include <Python.h> /* make sure Python.h is first */
+
 #ifdef NO_ENTRY_NAME_UNDERSCORES
 void tm_set_free_event(n)
 #else
diff --git a/fmt/src/tm_unix_versions.c b/fmt/src/tm_unix_versions.c
index e01b37d..6c90ee1 100644
--- a/fmt/src/tm_unix_versions.c
+++ b/fmt/src/tm_unix_versions.c
@@ -60,7 +60,6 @@
 /* had to add ifdef check for trailing underscore in routine name
    for aix port *kob* 10/94 */
 
-
 #include <Python.h> /* make sure Python.h is first */
 #include <sys/types.h>
 #include <dirent.h>
diff --git a/fmt/src/cd_get_calendar_name.F b/fmt/src/tm_warn_subspan.F
similarity index 60%
copy from fmt/src/cd_get_calendar_name.F
copy to fmt/src/tm_warn_subspan.F
index 6af224c..f57e9c4 100755
--- a/fmt/src/cd_get_calendar_name.F
+++ b/fmt/src/tm_warn_subspan.F
@@ -1,4 +1,4 @@
-	SUBROUTINE CD_GET_CALENDAR_NAME (calname, ok_cal)
+	SUBROUTINE TM_WARN_SUBSPAN (iaxis)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -32,55 +32,52 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* Given a string with a calendar name, match the first 3 characters 
-* with the list of allowed names or with the words STANDARD or 
-* PROLEPTIC_GREGORIAN and return the standard name.
+* 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 files
-        include 'calendar.decl'
-        include 'calendar.cmn'
-        include 'errmsg.parm'
+        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
 
-* Argument declarations
-	LOGICAL ok_cal
-	CHARACTER*(*) calname
 
-* Internal variables
-	INTEGER STR_UPCASE, TM_LENSTR1, i, istat, ncal, slen
-	CHARACTER*50 allcals
+* 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 tt  ! nice short name
 	EQUIVALENCE (tt,lunit_errors)
 
-	istat = STR_UPCASE (calname, calname)
-
-	IF (calname(1:3) .EQ. '360') calname = '360_DAY' 
-	IF (calname .EQ. 'STANDARD') calname = 'GREGORIAN' 
-	IF (calname .EQ. 'PROLEPTIC_GREGORIAN') calname = 'GREGORIAN' 
-	IF (calname(1:6) .EQ. 'COMMON') calname = 'NOLEAP' 
-	IF (calname(1:3) .EQ. '365') calname = 'NOLEAP' 
-	IF (calname(1:3) .EQ. '366') calname = 'ALL_LEAP' 
-
-	ok_cal = .FALSE.
-	ncal = 1
-	allcals = ' '
+	vlen = TM_LENSTR1(line_name(iaxis))
+        axwwlen = TM_WW_AXLEN(iaxis)
 
-	DO 100 i = 1, mxcals
-  111	   FORMAT (A9,' ')
-	   slen = TM_LENSTR1( allowed_calendars(i)(1:9) )
-	   write (allcals(ncal:ncal+9), 111) allowed_calendars(i)
-	   ncal = ncal + 10
+* get the nominal delta grid cell length for comparison
 
-	   IF (calname(1:3) .EQ. allowed_calendars(i)(1:3) ) THEN
-              ok_cal = .TRUE.
-              calname = allowed_calendars(i)
-	      GOTO 120
-	   ENDIF
-  100	CONTINUE
-	CALL TM_NOTE('Valid calendars are '//allcals, tt)
+	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
 
-  120	CONTINUE
+        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_world_recur.c b/fmt/src/tm_world_recur.c
index 1111977..c7d12f9 100644
--- a/fmt/src/tm_world_recur.c
+++ b/fmt/src/tm_world_recur.c
@@ -58,12 +58,15 @@
                     - fixed bug in strides on modulo parent axis
 
     V542: 10/02 *sh* - serious bug fixes in non-modulo subspan modulo
+    V698:  5/16 *acm*  ticket 513 - subspan modulo and strides
 
    compile this with
    cc -c -g tm_world_recur.c
    (and use -D_NO_PROTO for non-ANSI compilers)
 */ 
 
+#include <Python.h> /* make sure Python.h is first */
+
 /* local macro definitions */
 #define PLINE_CLASS_BASIC   0
 #define PLINE_CLASS_STRIDE  1
@@ -101,6 +104,7 @@ double FORTRAN(tm_world_recur)
   int isub, rmod;
   int axis = *iaxis;   /* these FORTRAN arrs start at 0 like C */
   int line_len = line_dim[axis];
+  int is_subspan;
 
 /*
    if this is a child (e.g. every Nth point) of an irregularly-spaced
@@ -146,6 +150,48 @@ double FORTRAN(tm_world_recur)
 	  }
 
 	  parent_len = line_dim[ line_parent[axis] ];
+
+/* Handle subspan modulo axes, checking that if we are getting worldcoordinate 
+   data from the cells at the defined axis edges the result doesn't stray into 
+   the modulo void cell. Adaphed from logic for is_subspan in axis_intervals.F*/
+
+	  is_subspan = ( FORTRAN(tm_its_subspan_modulo) (&line_parent[axis]) );
+	  if (line_modulo[ line_parent[axis] ] && is_subspan)
+	  {
+		  if (lo_ss == 0 || lo_ss == -1)
+		  { 
+			  new_where = BOX_LO_LIM;
+			  lo_ss = 1;
+			  tm_world = (
+			      FORTRAN(tm_world_recur)
+			      (&lo_ss,
+			       &(line_parent[axis]),
+			       &new_where,
+			       max_lines, line_mem, line_parent,
+			       line_class, line_dim,
+			       line_start, line_delta,
+			       line_subsc1, line_modulo, line_modulo_len,
+			       line_regular) );
+			  return(tm_world);
+		  }
+		  if (hi_ss == parent_len+1)
+		  {
+			  new_where = BOX_HI_LIM;
+			  hi_ss = parent_len;
+			  tm_world = (
+			      FORTRAN(tm_world_recur)
+			      (&hi_ss,
+			       &(line_parent[axis]),
+			       &new_where,
+			       max_lines, line_mem, line_parent,
+			       line_class, line_dim,
+			       line_start, line_delta,
+			       line_subsc1, line_modulo, line_modulo_len,
+			       line_regular) );
+			  return(tm_world);
+		  }
+	  } 
+
 	  if ( line_modulo[ line_parent[axis] ]   /* 2/02 bug fix */
 	       || (lo_ss>=1 && hi_ss<=parent_len) ) {  /* interpolate */
 	    new_where = BOX_MIDDLE;
diff --git a/fmt/src/xdset_info_data.F b/fmt/src/xdset_info_data.F
index 8f587bd..21b1a91 100644
--- a/fmt/src/xdset_info_data.F
+++ b/fmt/src/xdset_info_data.F
@@ -66,6 +66,7 @@
 * v552 *acm*  5/03 change ds_var_code length to 128
 * v604 *acm* 7/07 increase length of ds_name, ds_des_name
 * v695+ *sh* 5/15 initialize new ds_var_c_cache_ptr
+* v698 *sh* 12/15 declare larger dset arrays: maxdsets ==> pdsetalloc
 
 #include "tmap_dset.parm"		
 	include 'tmap_dims.parm'		! parameter definitions
@@ -73,49 +74,49 @@
 
 * local parameters
 	INTEGER		max6axes, maxnvars, maxdsets_aux, maxdsets_parm
-	PARAMETER	(max6axes = 6*maxdsets)
+	PARAMETER	(max6axes = 6*pdsetalloc)
 	PARAMETER	(maxnvars = nferdims*maxvars)
-	PARAMETER	(maxdsets_aux = maxdsets*num_aux)
-	PARAMETER	(maxdsets_parm = maxdsets*num_parm)
+	PARAMETER	(maxdsets_aux = pdsetalloc*num_aux)
+	PARAMETER	(maxdsets_parm = pdsetalloc*num_parm)
 
 * Initialize variables associated with data set
-	DATA	ds_type			/maxdsets*char_init04/
-	DATA	ds_format		/maxdsets*char_init04/
-	DATA	ds_source_class		/maxdsets*char_init16/
-	DATA	ds_source		/maxdsets*char_init16/
-	DATA	ds_subsource		/maxdsets*char_init16/
-	DATA	ds_prog_rev		/maxdsets*char_init04/
+	DATA	ds_type			/pdsetalloc*char_init04/
+	DATA	ds_format		/pdsetalloc*char_init04/
+	DATA	ds_source_class		/pdsetalloc*char_init16/
+	DATA	ds_source		/pdsetalloc*char_init16/
+	DATA	ds_subsource		/pdsetalloc*char_init16/
+	DATA	ds_prog_rev		/pdsetalloc*char_init04/
 ********************************************************************************
-	DATA	ds_expnum		/maxdsets*char_init04/
-	DATA	ds_modnum		/maxdsets*char_init04/
-	DATA	ds_title		/maxdsets*char_init80/
-	DATA	ds_mod_title		/maxdsets*char_init80/
-	DATA	ds_forcing_set		/maxdsets*char_init16/
-	DATA	ds_t0time		/maxdsets*char_init20/
-	DATA	ds_time_unit		/maxdsets*real4_init/
-	DATA	ds_time_modulo		/maxdsets*.FALSE./
-	DATA	ds_ntegrate_tstep	/maxdsets*real4_init/
-	DATA	ds_ntuple		/maxdsets*int4_init/
-	DATA	ds_time_run		/maxdsets*char_init20/
+	DATA	ds_expnum		/pdsetalloc*char_init04/
+	DATA	ds_modnum		/pdsetalloc*char_init04/
+	DATA	ds_title		/pdsetalloc*char_init80/
+	DATA	ds_mod_title		/pdsetalloc*char_init80/
+	DATA	ds_forcing_set		/pdsetalloc*char_init16/
+	DATA	ds_t0time		/pdsetalloc*char_init20/
+	DATA	ds_time_unit		/pdsetalloc*real4_init/
+	DATA	ds_time_modulo		/pdsetalloc*.FALSE./
+	DATA	ds_ntegrate_tstep	/pdsetalloc*real4_init/
+	DATA	ds_ntuple		/pdsetalloc*int4_init/
+	DATA	ds_time_run		/pdsetalloc*char_init20/
 	DATA	ds_aux_modnum		/maxdsets_aux*char_init04/
 	DATA	ds_parm_name		/maxdsets_parm*char_init20/
 	DATA	ds_parm_text		/maxdsets_parm*char_init80/
-	DATA	ds_cal_name		/maxdsets*'GREGORIAN'/
+	DATA	ds_cal_name		/pdsetalloc*'GREGORIAN'/
 ********************************************************************************
-	DATA	ds_alert_on_open	/maxdsets*.FALSE./
-	DATA	ds_alert_on_output	/maxdsets*.FALSE./
-	DATA	ds_message		/maxdsets*char_init80/
+	DATA	ds_alert_on_open	/pdsetalloc*.FALSE./
+	DATA	ds_alert_on_output	/pdsetalloc*.FALSE./
+	DATA	ds_message		/pdsetalloc*char_init80/
 ********************************************************************************
-	DATA	ds_des_name		/maxdsets*char_init1024/
-	DATA	ds_name			/maxdsets*char_init1024/
-	DATA	ds_1step		/maxdsets*real8_init/
-	DATA	ds_lastep		/maxdsets*real8_init/
-	DATA	ds_delstep		/maxdsets*real8_init/
-	DATA	ds_regsteps		/maxdsets*.TRUE./
-	DATA	ds_accepts_remote	/maxdsets*.FALSE./
-	DATA	ds_hide			/maxdsets*.FALSE./
+	DATA	ds_des_name		/pdsetalloc*char_init1024/
+	DATA	ds_name			/pdsetalloc*char_init1024/
+	DATA	ds_1step		/pdsetalloc*real8_init/
+	DATA	ds_lastep		/pdsetalloc*real8_init/
+	DATA	ds_delstep		/pdsetalloc*real8_init/
+	DATA	ds_regsteps		/pdsetalloc*.TRUE./
+	DATA	ds_accepts_remote	/pdsetalloc*.FALSE./
+	DATA	ds_hide			/pdsetalloc*.FALSE./
 	DATA	ds_basic_axes		/max6axes*int4_init/
-	DATA	ds_time_axis		/maxdsets*int4_init/
+	DATA	ds_time_axis		/pdsetalloc*int4_init/
 
 * Next clear variables associated with variable in that data set.
         DATA    ds_var_code_head        / 0 /
diff --git a/fmt/src/xerror_text_data.F b/fmt/src/xerror_text_data.F
index 86086db..830a10c 100644
--- a/fmt/src/xerror_text_data.F
+++ b/fmt/src/xerror_text_data.F
@@ -54,6 +54,8 @@
 * 11/99 *sh* - change "grid lines" to "axes" in error message
 * V600 6/05 *acm* new error merr_attalready; attribute already defined
 * V604 6/07 *acm* New merr_remote_open for errors opening remote datasets
+* V697 12/15*acm* New merr_axis_att reporting errors in axis attributes, 
+*                 e.g. calendars (For ticket 2332)
 
 	include 'tmap_errors.parm'		! parameter definitions
 	include 'xerror_text.cmn_text'	! common declaration
@@ -159,4 +161,6 @@
      .		/'error specifying chunk sizes                      '/
      .	msg_regular(merr_time_string-pregular)
      .		/'error creating time string                        '/
+     .	msg_regular(merr_axis_att-pregular)
+     .		/'error in axis attributes                        '/
 	END
diff --git a/fmt/src/xgt_grid_data.F b/fmt/src/xgt_grid_data.F
index d1f7ac0..a8705d4 100644
--- a/fmt/src/xgt_grid_data.F
+++ b/fmt/src/xgt_grid_data.F
@@ -35,8 +35,7 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* names and sizes of predefined grids for program GFDL
-* And climatological axes
+* names and sizes of predefined climatological axes
 
 * programmer - mark verschell (from a program by steve hankin)
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
@@ -68,6 +67,11 @@
 *      4/12 *acm* - 6D Ferret, formatted F axis is direction FI
 * V685 *acm* 3/13 - add climatological axes to the pre-defined axes.
 * v685 *acm* 4/13 - Let Ferret compute the modulo lengths for clim. axes
+* v697 *acm* 12/115 -Missed some initializations, 4D-->6D grids
+* V698  3/16 *acm* Removed Philander-Seigel code including diagnostic variables, 
+* pre-defined axes and grids.
+* V698  3/16 *acm* Fix the line_subsc1 values for irregular axes
+* V698  3/16 *acm* Define monthly climatology for Julian axis.
 
 	include 'tmap_dims.parm'
 	include 'implicit.parm'
@@ -80,12 +84,12 @@
      .			grid_lines_left, i, j,
      .			pline_mem_next, pline_mem_left, outtype
 
-	PARAMETER	(ngrd_def	= 5,
-     .			 nlne_def	= 13,
+	PARAMETER	(ngrd_def	= 0,
+     .			 nlne_def	= 8,
      .			 grids_left	= grid_ceiling-ngrd_def,
      .			 lines_left	= line_ceiling-nlne_def,
-     .			 grid_lines_left= 4*grids_left,
-     .                   pline_mem_next = 614,
+     .			 grid_lines_left= nferdims*grids_left,
+     .                   pline_mem_next = 127,
      .                   pline_mem_left = maxlinestore-pline_mem_next+1)
 
 	PARAMETER	(outtype	= 6)  ! netcdf type double, output axis type.
@@ -94,110 +98,12 @@
 	DATA	next_line_mem_pos  /pline_mem_next/
         DATA    pline_mem_init / pline_mem_next/
 
-* DEFINE LINES FIRST
-	DATA
-     .		line_name	(mpsxt)	/ 'PSXT'	/,
-     .		line_name_orig	(mpsxt)	/ 'PSXT'	/,
-     .		line_subsc1	(mpsxt) / unspecified_int4 /,
-     .		line_dim	(mpsxt)	/ 160		/,
-     .		line_units	(mpsxt)	/ 'LONGITUDE'	/,
-     .		line_unit_code  (mpsxt) / pun_degrees   /,
-     .		line_direction	(mpsxt)	/ 'WE'		/,
-     .		line_regular	(mpsxt)	/ .TRUE.	/,
-     .		line_modulo	(mpsxt) / .TRUE.        /,
-     .		line_modulo_len	(mpsxt) / 360.0D0       /,
-     .		line_start	(mpsxt)	/ 130.5		/,
-     .		line_delta	(mpsxt)	/ 1.0		/,
-     .		line_tunit	(mpsxt)	/ real4_init /,
-     .		line_t0		(mpsxt)	/ char_init20 /,
-     .		line_cal_name	(mpsxt)	/'GREGORIAN'/
-	DATA
-     .		line_name	(mpsxu)	/ 'PSXU'	/,
-     .		line_name_orig	(mpsxu)	/ 'PSXU'	/,
-     .		line_subsc1	(mpsxu) / unspecified_int4 /,
-     .		line_dim	(mpsxu)	/ 160		/,
-     .		line_units	(mpsxu)	/ 'LONGITUDE'	/,
-     .		line_unit_code  (mpsxu) / pun_degrees   /,
-     .		line_direction	(mpsxu)	/ 'WE'		/,
-     .		line_regular	(mpsxu)	/ .TRUE.	/,
-     .		line_modulo	(mpsxu) / .TRUE.        /,
-     .		line_modulo_len	(mpsxu) / 360.0D0       /,
-     .		line_start	(mpsxu)	/ 131.0		/,
-     .		line_delta	(mpsxu)	/ 1.0		/,
-     .		line_tunit	(mpsxu)	/ real4_init /,
-     .		line_t0		(mpsxu)	/ char_init20 /,
-     .		line_cal_name	(mpsxu)	/'GREGORIAN'/
-	DATA
-     .		line_name	(mpsyt)	/ 'PSYT'	/,
-     .		line_name_orig	(mpsyt)	/ 'PSYT'	/,
-     .		line_subsc1	(mpsyt) / 2		/,
-     .		line_dim	(mpsyt)	/ 100		/,
-     .		line_units	(mpsyt)	/ 'LATITUDE'	/,
-     .		line_unit_code  (mpsyt) / pun_degrees   /,
-     .		line_direction	(mpsyt)	/ 'SN'		/,
-     .		line_regular	(mpsyt)	/ .FALSE.	/,
-     .		line_modulo	(mpsyt) / .FALSE.       /,
-     .		line_modulo_len	(mpsyt) / 0.0D0         /,
-     .		line_start	(mpsyt)	/ unspecified_val8 /,
-     .		line_delta	(mpsyt)	/ unspecified_val8 /,
-     .		line_tunit	(mpsyt)	/ real4_init /,
-     .		line_t0		(mpsyt)	/ char_init20 /,
-     .		line_cal_name	(mpsyt)	/'GREGORIAN'/
-	DATA
-     .		line_name	(mpsyu)	/ 'PSYU'	/,
-     .		line_name_orig	(mpsyu)	/ 'PSYU'	/,
-     .		line_subsc1	(mpsyu) / 203		/,
-     .		line_dim	(mpsyu)	/ 100		/,
-     .		line_units	(mpsyu)	/ 'LATITUDE'	/,
-     .		line_unit_code  (mpsyu) / pun_degrees   /,
-     .		line_direction	(mpsyu)	/ 'SN'		/,
-     .		line_regular	(mpsyu)	/ .FALSE.	/,
-     .		line_modulo	(mpsyu) / .FALSE.       /,
-     .		line_modulo_len	(mpsyu) / 0.0D0         /,
-     .		line_start	(mpsyu)	/ unspecified_val8 /,
-     .		line_delta	(mpsyu)	/ unspecified_val8 /,
-     .		line_tunit	(mpsyu)	/ real4_init /,
-     .		line_t0		(mpsyu)	/ char_init20 /,
-     .		line_cal_name	(mpsyu)	/'GREGORIAN'/
-	DATA
-     .		line_name	(mpszt)	/ 'PSZT'	/,
-     .		line_name_orig	(mpszt)	/ 'PSZT'	/,
-     .		line_subsc1	(mpszt) / 404		/,
-     .		line_dim	(mpszt)	/ 27		/,
-     .		line_units	(mpszt)	/ 'METERS'	/,
-     .		line_unit_code  (mpszt) / pun_meters   /,
-     .		line_direction	(mpszt)	/ 'UD'		/,
-     .		line_regular	(mpszt)	/ .FALSE.	/,
-     .		line_modulo	(mpszt) / .FALSE.       /,
-     .		line_modulo_len	(mpszt) / 0.0D0         /,
-     .		line_start	(mpszt)	/ unspecified_val8 /,
-     .		line_delta	(mpszt)	/ unspecified_val8 /,
-     .		line_tunit	(mpszt)	/ real4_init /,
-     .		line_t0		(mpszt)	/ char_init20 /,
-     .		line_cal_name	(mpszt)	/'GREGORIAN'/
-
-	DATA
-     .		line_name	(mpszw)	/ 'PSZW'	/,
-     .		line_name_orig	(mpszw)	/ 'PSZW'	/,
-     .		line_subsc1	(mpszw) / 459		/,
-     .		line_dim	(mpszw)	/ 27		/,
-     .		line_units	(mpszw)	/ 'METERS'	/,
-     .		line_unit_code  (mpszw) / pun_meters   /,
-     .		line_direction	(mpszw)	/ 'UD'		/,
-     .		line_regular	(mpszw)	/ .FALSE.	/,
-     .		line_modulo	(mpszw) / .FALSE.       /,
-     .		line_modulo_len	(mpszw) / 0.0D0         /,
-     .		line_start	(mpszw)	/ unspecified_val8 /,
-     .		line_delta	(mpszw)	/ unspecified_val8 /
-     .		line_tunit	(mpszw)	/ real4_init /,
-     .		line_t0		(mpszw)	/ char_init20 /,
-     .		line_cal_name	(mpszw)	/'GREGORIAN'/
-
+* DEFINE LINES
 
 	DATA
      .		line_name	(clmirr)	/ 'MONTH_IRREG'	/,
      .		line_name_orig	(clmirr)	/ 'MONTH_IRREG'	/,
-     .		line_subsc1	(clmirr)	/ 514		/,
+     .		line_subsc1	(clmirr)	/ 2		/,
      .		line_dim	(clmirr)	/ 12		/,
      .		line_units	(clmirr)	/ 'DAYS'	/,
      .		line_unit_code  (clmirr)	/ -4   /,
@@ -246,7 +152,7 @@
 	DATA
      .		line_name	(clmgrg)	/ 'MONTH_GREGORIAN' /,
      .		line_name_orig	(clmgrg)	/ 'MONTH_GREGORIAN' /,
-     .		line_subsc1	(clmgrg)	/ 539		/,
+     .		line_subsc1	(clmgrg)	/ 27		/,
      .		line_dim	(clmgrg)	/ 12		/,
      .		line_units	(clmgrg)	/ 'days'	/,
      .		line_unit_code  (clmgrg)	/ -4   /,
@@ -262,7 +168,7 @@
 	DATA
      .		line_name	(clmnol)	/ 'MONTH_NOLEAP' /,
      .		line_name_orig	(clmnol)	/ 'MONTH_NOLEAP' /,
-     .		line_subsc1	(clmnol)	/ 564		/,
+     .		line_subsc1	(clmnol)	/ 52		/,
      .		line_dim	(clmnol)	/ 12		/,
      .		line_units	(clmnol)	/ 'days'	/,
      .		line_unit_code  (clmnol)	/ -4   /,
@@ -294,7 +200,7 @@
 	DATA
      .		line_name	(clmall)	/ 'MONTH_ALL_LEAP' /,
      .		line_name_orig	(clmall)	/ 'MONTH_ALL_LEAP' /,
-     .		line_subsc1	(clmall)	/ 589	/,
+     .		line_subsc1	(clmall)	/ 77	/,
      .		line_dim	(clmall)	/ 12		/,
      .		line_units	(clmall)	/ 'days'	/,
      .		line_unit_code  (clmall)	/ -4   /,
@@ -307,72 +213,28 @@
      .		line_t0		(clmall)	/'01-JAN-0000 00:00:00'/,
      .		line_cal_name	(clmall)	/'ALL_LEAP'/
 
+	DATA
+     .		line_name	(clmjul)	/ 'MONTH_JULIAN' /,
+     .		line_name_orig	(clmjul)	/ 'MONTH_JULIAN' /,
+     .		line_subsc1	(clmjul)	/ 102	/,
+     .		line_dim	(clmjul)	/ 12		/,
+     .		line_units	(clmjul)	/ 'days'	/,
+     .		line_unit_code  (clmjul)	/ -4   /,
+     .		line_direction	(clmjul)	/ 'TI'		/,
+     .		line_regular	(clmjul)	/ .FALSE.	/,
+     .		line_modulo	(clmjul)	/ .TRUE.       /,
+     .		line_start	(clmjul)	/ unspecified_val8 /,
+     .		line_delta	(clmjul)	/ unspecified_val8 /,
+     .		line_tunit	(clmjul)	/ 86400 /,
+     .		line_t0		(clmjul)	/'01-JAN-0000 00:00:00'/,
+     .		line_cal_name	(clmjul)	/'JULIAN'/
+
 
 * 7/99 *kob* add in initialization for line_name and mpsnorm.  
 *            needed for v3.4 of netcdf use
 	DATA    line_name       (mpsnorm) /' '/
 	DATA    line_name_orig  (mpsnorm) /' '/
 
-* DEFINE GRIDS NEXT
-* 2 dimensional defining grid for wind stress magnitude
-	DATA	grid_name  (mps2dt)    / 'PS2DT'	/,
-     .		grid_rotation (mps2dt) / 0.0		/,
-     .		grid_line  (1, mps2dt) / mpsxt	/,
-     .		grid_line  (2, mps2dt) / mpsyt	/,
-     .		grid_line  (3, mps2dt) / mpsnorm	/,
-     .		grid_line  (4, mps2dt) / mpsunkn	/,
-     .		grid_out_prod (1, mps2dt) / .TRUE.   /,
-     .		grid_out_prod (2, mps2dt) / .TRUE.   /,
-     .		grid_out_prod (3, mps2dt) / .TRUE.   /,
-     .		grid_out_prod (4, mps2dt) / .TRUE.   /
-
-* 2 dimensional defining grid for taux and tauy
-	DATA	grid_name  (mps2du)    / 'PS2DU'	/,
-     .		grid_rotation (mps2du) / 0.0		/,
-     .		grid_line  (1, mps2du) / mpsxu	/,
-     .		grid_line  (2, mps2du) / mpsyu	/,
-     .		grid_line  (3, mps2du) / mpsnorm	/,
-     .		grid_line  (4, mps2du) / mpsunkn	/,
-     .		grid_out_prod (1, mps2du) / .TRUE.   /,
-     .		grid_out_prod (2, mps2du) / .TRUE.   /,
-     .		grid_out_prod (3, mps2du) / .TRUE.   /,
-     .		grid_out_prod (4, mps2du) / .TRUE.   /
-
-* 3 dimensional defining grid for temp and salt
-	DATA	grid_name  (mps3dt)    / 'PS3DT'	/,
-     .		grid_rotation (mps3dt) / 0.0		/,
-     .		grid_line  (1, mps3dt) / mpsxt	/,
-     .		grid_line  (2, mps3dt) / mpsyt	/,
-     .		grid_line  (3, mps3dt) / mpszt	/,
-     .		grid_line  (4, mps3dt) / mpsunkn	/,
-     .		grid_out_prod (1, mps3dt) / .TRUE.   /,
-     .		grid_out_prod (2, mps3dt) / .TRUE.   /,
-     .		grid_out_prod (3, mps3dt) / .TRUE.   /,
-     .		grid_out_prod (4, mps3dt) / .TRUE.   /
-
-* 3 dimensional defining grid for u and v
-	DATA	grid_name  (mps3du)    / 'PS3DU'	/,
-     .		grid_rotation (mps3du) / 0.0		/,
-     .		grid_line  (1, mps3du) / mpsxu	/,
-     .		grid_line  (2, mps3du) / mpsyu	/,
-     .		grid_line  (3, mps3du) / mpszt	/,
-     .		grid_line  (4, mps3du) / mpsunkn	/,
-     .		grid_out_prod (1, mps3du) / .TRUE.   /,
-     .		grid_out_prod (2, mps3du) / .TRUE.   /,
-     .		grid_out_prod (3, mps3du) / .TRUE.   /,
-     .		grid_out_prod (4, mps3du) / .TRUE.   /
-
-* 3 dimensional defining grid for w
-	DATA	grid_name  (mps3dw)    / 'PS3DW'	/,
-     .		grid_rotation (mps3dw) / 0.0		/,
-     .		grid_line  (1, mps3dw) / mpsxt	/,
-     .		grid_line  (2, mps3dw) / mpsyt	/,
-     .		grid_line  (3, mps3dw) / mpszw	/,
-     .		grid_line  (4, mps3dw) / mpsunkn	/,
-     .		grid_out_prod (1, mps3dw) / .TRUE.   /,
-     .		grid_out_prod (2, mps3dw) / .TRUE.   /,
-     .		grid_out_prod (3, mps3dw) / .TRUE.   /,
-     .		grid_out_prod (4, mps3dw) / .TRUE.   /
 
 * initialize the unused grid common locations
 	DATA	grid_filename	/maxgridfiles*char_init128/
@@ -441,205 +303,26 @@ c     .			/pline_mem_left*real8_init/
 	DATA	(grid_name(i),i=ngrd_def+1,grid_ceiling)
      .			/grids_left*char_init16/
 
-	DATA	((grid_line(i,j),i=1,4),j=ngrd_def+1,grid_ceiling)
+	DATA	((grid_line(i,j),i=1,nferdims),j=ngrd_def+1,grid_ceiling)
      .			/grid_lines_left*int4_init/
 
 	DATA	(grid_rotation(i),i=ngrd_def+1,grid_ceiling)
      .			/grids_left*real4_init/
 
-	DATA	((grid_out_prod(i,j),i=1,4),j=ngrd_def+1,grid_ceiling)
+	DATA	((grid_out_prod(i,j),i=1,nferdims),j=ngrd_def+1,grid_ceiling)
      .			/grid_lines_left*.FALSE./
 
 * DEFINE LINE AND BOX COORDS NEXT TO LAST
-*  COORDS FOR PSYT
-	DATA	(line_mem(i),i=2,101)
-     .	/-28.83607292175293, -26.52994918823242, -24.28807449340820, 
-     .	 -22.15015602111816, -20.15135765075684, -18.32076263427734,
-     .	 -16.68010330200195, -15.24281406402588, -14.01343536376953,
-     .	 -12.98742485046387, -12.15135097503662, -11.48348140716553,
-     .	 -10.95473194122314, -10.52993869781494, -10.16939353942871,
-     .	  -9.83332061767578,  -9.49998760223388,  -9.16665363311767,
-     .    -8.83331966400146,  -8.49998569488525,  -8.16665267944335,
-     .	  -7.83331871032714,  -7.49998474121093,  -7.16665124893188,
-     .	  -6.83331823348999,  -6.49998521804809,  -6.16665172576904,
-     .	  -5.83331823348999,  -5.49998521804809,  -5.16665172576904,
-     .	  -4.83331871032714,  -4.49998521804809,  -4.16665172576904,
-     .	  -3.83331871032714,  -3.49998521804809,  -3.16665172576904,
-     .	  -2.83331847190856,  -2.49998521804809,  -2.16665196418762,
-     .	  -1.83331859111785,  -1.49998521804809,  -1.16665184497833,
-     .	  -0.83331835269927,  -0.49998494982719,  -0.16665154695510,
-     .	   0.16668185591697,   0.50001525878906,   0.83334869146347,
-     .	   1.16668212413787,   1.50001549720764,   1.83334898948669,
-     .	   2.16668248176574,   2.50001597404480,   2.83334946632385,
-     .	   3.16668295860290,   3.50001621246337,   3.83334970474243,
-     .	   4.16668319702148,   4.50001621246337,   4.83334970474243,
-     .	   5.16668319702148,   5.50001621246337,   5.83334970474243,
-     .	   6.16668272018432,   6.50001621246337,   6.83334970474243,
-     .	   7.16668272018432,   7.50001668930053,   7.83335018157959,
-     .	   8.16668415069580,   8.50001811981201,   8.83335113525390,
-     .	   9.16668510437011,   9.50001907348632,   9.83335304260253,
-     .	  10.16793632507324,  10.51373767852783,  10.88928699493408,
-     .	  11.31389617919922,  11.80609893798828,  12.38336753845215,
-     .	  13.06183147430420,  13.85602283477783,  14.77865123748779,
-     .	  15.84039688110352,  17.04974937438965,  18.41287040710449,
-     .	  19.93349456787109,  21.61287307739258,  23.44975662231445,
-     .	  25.44040679931641,  27.57866477966309,  29.85604095458984,
-     .	  32.26185226440430,  34.78339004516602,  37.40612411499023,
-     .	  40.11392593383789,  42.88932037353516,  45.71377182006836,
-     .	  48.56797027587891/
-
-*  BOX BOUNDARIES FOR PSYT
-*   note: Box boundaries on the YT axis DO NOT lie midway between grid points
-*	  They are constructed to be consistent with the variables
-*	  PSIT and DYT of the Phil/Seigel model
-	DATA	(line_mem(i),i=102,202)/
-     .	 -30.00000059604645, -27.67214524745941, -25.38775503635406,
-     .	 -23.18839609622955, -21.11191737651825, -19.19079816341400,
-     .	 -17.45072722434997, -15.90948104858398, -14.57614636421204,
-     .	 -13.45072317123413, -12.52412497997284, -11.77857542037964,
-     .	 -11.18838566541672, -10.72107663750648, -10.33879896998405,
-     .	  -9.99998718500137,  -9.66665378212929,  -9.33332037925720,
-     .	  -8.99998697638512,  -8.66665357351303,  -8.33332017064095,
-     .	  -7.99998676776886,  -7.66665336489677,  -7.33331996202469,
-     .	  -6.99998655915260,  -6.66665315628052,  -6.33331975340843,
-     .	  -5.99998635053635,  -5.66665294766426,  -5.33331954479218,
-     .	  -4.99998614192009,  -4.66665273904800,  -4.33331933617592,
-     .	  -3.99998593330383,  -3.66665253043175,  -3.33331912755966,
-     .	  -2.99998572468758,  -2.66665232181549,  -2.33331891894340,
-     .	  -1.99998551607132,  -1.66665211319923,  -1.33331871032715,
-     .	  -0.99998530745506,  -0.66665190458298,  -0.33331850171089,
-     .	   0.00001490116119,   0.33334830403328,   0.66668170690537,
-     .	   1.00001510977745,   1.33334851264954,   1.66668191552162,
-     .	   2.00001531839371,   2.33334872126579,   2.66668212413788,
-     .	   3.00001552700996,   3.33334892988205,   3.66668233275414,
-     .	   4.00001573562622,   4.33334913849831,   4.66668254137039,
-     .	   5.00001594424248,   5.33334934711456,   5.66668274998665,
-     .	   6.00001615285874,   6.33334955573082,   6.66668295860291,
-     .	   7.00001636147499,   7.33334976434708,   7.66668316721916,
-     .	   8.00001657009125,   8.33334997296333,   8.66668337583542,
-     .	   9.00001677870751,   9.33335018157959,   9.66668358445168,
-     .	  10.00001698732376,  10.33585005998612,  10.69162029027939,
-     .	  11.08694973587990,  11.54083672165871,  12.07135620713234,
-     .	  12.69537439942360,  13.42828330397606,  14.28375723958016,
-     .	  15.27353766560555,  16.40724852681160,  17.69224312901497,
-     .	  19.13348940014839,  20.73349097371102,  22.49224796891213,
-     .	  24.40725651383400,  26.47354879975319,  28.68377104401588,
-     .	  31.02829995751381,  33.49539366364479,  36.07137742638588,
-     .	  38.74085965752602,  41.48697438836098,  44.29164591431618,
-     .	  47.13587656617165,  50.00004377961159/
-
-*  COORDS FOR PSYU
-	DATA	(line_mem(i),i=203,302)
-     .	/-27.67214393615723, -25.38775444030762, -23.18839454650879,
-     .	 -21.11191749572754, -19.19079780578613, -17.45072746276855,
-     .	 -15.90948104858398, -14.57614612579346, -13.45072364807129,
-     .	 -12.52412509918213, -11.77857589721680, -11.18838596343994,
-     .	 -10.72107696533203, -10.33879947662354,  -9.99998760223388,
-     .	  -9.66665458679199,  -9.33332061767578,  -8.99998664855957,
-     .	  -8.66665267944335,  -8.33331966400146,  -7.99998569488525,
-     .	  -7.66665172576904,  -7.33331823348999,  -6.99998474121093,
-     .	  -6.66665124893188,  -6.33331823348999,  -5.99998474121093,
-     .	  -5.66665172576904,  -5.33331823348999,  -4.99998474121093,
-     .	  -4.66665172576904,  -4.33331823348999,  -3.99998497962951,
-     .	  -3.66665172576904,  -3.33331847190856,  -2.99998521804809,
-     .	  -2.66665196418762,  -2.33331847190856,  -1.99998533725738,
-     .	  -1.66665184497833,  -1.33331847190856,  -0.99998503923416,
-     .	  -0.66665166616439,  -0.33331826329231,   0.00001515448275,
-     .	   0.33334857225418,   0.66668194532394,   1.00001537799835,
-     .	   1.33334875106811,   1.66668212413787,   2.00001549720764,
-     .	   2.33334898948669,   2.66668272018432,   3.00001621246337,
-     .	   3.33334970474243,   3.66668295860290,   4.00001621246337,
-     .	   4.33334970474243,   4.66668272018432,   5.00001621246337,
-     .	   5.33334922790527,   5.66668272018432,   6.00001621246337,
-     .	   6.33334922790527,   6.66668272018432,   7.00001573562622,
-     .	   7.33334970474243,   7.66668319702148,   8.00001716613769,
-     .	   8.33335113525390,   8.66668415069580,   9.00001811981201,
-     .	   9.33335208892822,   9.66668605804443,  10.00001907348633,
-     .	  10.33585262298584,  10.69162178039551,  11.08695220947266,
-     .	  11.54083919525146,  12.07135868072510,  12.69537734985352,
-     .	  13.42828655242920,  14.28376007080078,  15.27354145050049,
-     .	  16.40725135803223,  17.69224548339844,  19.13349342346191,
-     .	  20.73349571228027,  22.49225234985352,  24.40726089477539,
-     .	  26.47355461120605,  28.68377685546875,  31.02830314636230,
-     .	  33.49539947509766,  36.07138442993164,  38.74086761474609,
-     .	  41.48698425292969,  44.29165267944336,  47.13588333129883,
-     .	  50.00005340576172/
-
-*  BOX BOUNDARIES FOR PSYU
-*   note: Box boundaries on the YU axis DO lie midway between grid points
-	DATA	(line_mem(i),i=303,403)/
-     .	 -28.83607161045075, -26.52994883060456, -24.28807413578034,
-     .	 -22.15015542507172, -20.15135645866394, -18.32076144218445,
-     .	 -16.68010282516480, -15.24281239509583, -14.01343345642090,
-     .	 -12.98742270469666, -12.15134876966477, -11.48347908258438,
-     .	 -10.95472967624665, -10.52993631362915, -10.16939160227776,
-     .	  -9.83331900835038,  -9.49998560547829,  -9.16665220260620,
-     .	  -8.83331879973412,  -8.49998539686203,  -8.16665199398995,
-     .	  -7.83331859111786,  -7.49998518824578,  -7.16665178537369,
-     .	  -6.83331838250161,  -6.49998497962952,  -6.16665157675743,
-     .	  -5.83331817388535,  -5.49998477101326,  -5.16665136814118,
-     .	  -4.83331796526909,  -4.49998456239701,  -4.16665115952492,
-     .	  -3.83331775665284,  -3.49998435378075,  -3.16665095090866,
-     .	  -2.83331754803658,  -2.49998414516449,  -2.16665074229241,
-     .	  -1.83331733942032,  -1.49998393654824,  -1.16665053367615,
-     .	  -0.83331713080407,  -0.49998372793198,  -0.16665032505989,
-     .	   0.16668307781219,   0.50001648068428,   0.83334988355636,
-     .	   1.16668328642845,   1.50001668930053,   1.83335009217262,
-     .	   2.16668349504470,   2.50001689791679,   2.83335030078888,
-     .	   3.16668370366096,   3.50001710653305,   3.83335050940513,
-     .	   4.16668391227722,   4.50001731514930,   4.83335071802139,
-     .	   5.16668412089348,   5.50001752376556,   5.83335092663765,
-     .	   6.16668432950973,   6.50001773238182,   6.83335113525390,
-     .	   7.16668453812599,   7.50001794099807,   7.83335134387016,
-     .	   8.16668474674225,   8.50001814961433,   8.83335155248642,
-     .	   9.16668495535850,   9.50001835823059,   9.83335176110267,
-     .	  10.16793498396873,  10.51373663544655,  10.88928645849228,
-     .	  11.31389468908310,  11.80609792470932,  12.38336676359176,
-     .	  13.06183034181595,  13.85602176189422,  14.77864891290664,
-     .	  15.84039455652237,  17.04974728822708,  18.41286772489547,
-     .	  19.93349176645279,  21.61287111043930,  23.44975394010544,
-     .	  25.44040447473526,  27.57866197824478,  29.85603767633438,
-     .	  32.26184898614883,  34.78338772058487,  37.40612083673477,
-     .	  40.11391931772232,  42.88931232690811,  45.71376329660415,
-     .	  48.56796222925186,  51.43212944269180/
-
-*  COORDS FOR PSZT
-	DATA	(line_mem(i),i=404,430)
-     .	/    5.00,   15.00,   25.00,   35.00,   45.00,   55.00,   65.00,
-     .	    75.00,   85.00,   95.00,  106.25,  120.00,  136.25,  155.00,
-     .	   177.50,  205.00,  240.00,  288.50,  362.50,  483.50,  680.00,
-     .	   979.50, 1395.50, 1916.00, 2524.00, 3174.00, 3824.00/
-
-*  BOX BOUNDARIES FOR PSZT
-	DATA	(line_mem(i),i=431,458)
-     .	/    0.00,   10.00,   20.00,   30.00,   40.00,   50.00,   60.00,
-     .	    70.00,   80.00,   90.00,  100.00,  112.50,  127.50,  145.00,
-     .	   165.00,  190.00,  220.00,  260.00,  317.00,  408.00,  559.00,
-     .	   801.00, 1158.00, 1633.00, 2199.00, 2849.00, 3499.00, 4149.00/
-
-*  COORDS FOR PSZW
-	DATA	(line_mem(i),i=459,485)
-     .	/   10.00,   20.00,   30.00,   40.00,   50.00,   60.00,   70.00,
-     .	    80.00,   90.00,  100.00,  112.50,  127.50,  145.00,  165.00,
-     .	   190.00,  220.00,  260.00,  317.00,  408.00,  559.00,  801.00,
-     .	  1158.00, 1633.00, 2199.00, 2849.00, 3499.00, 4149.00/
-
-*  BOX BOUNDARIES FOR PSZW
-	DATA	(line_mem(i),i=486,513)
-     .	/    5.00,   15.00,   25.00,   35.00,   45.00,   55.00,   65.00,
-     .	    75.00,   85.00,   95.00,  106.25,  120.00,  136.25,  155.00,
-     .	   177.50,  205.00,  240.00,  288.50,  362.50,  483.50,  680.00,
-     .	   979.50, 1395.50, 1916.00, 2524.00, 3174.00, 3824.00, 4149.00/
 
 * MONTH_IRREG
 
 *  COORDS FOR MONTH_IRREG
-	DATA	(line_mem(i),i=514,525)
+	DATA	(line_mem(i),i=2,13)
      .	/     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=526,538)
+	DATA	(line_mem(i),i=14,26)
      .	/     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/
@@ -647,12 +330,12 @@ c     .			/pline_mem_left*real8_init/
 * MONTH_GREGORIAN
      
 *  COORDS FOR MONTH_GREGORIAN
-	DATA	(line_mem(i),i=539,550)
+	DATA	(line_mem(i),i=27,38)
      .	/     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=551,563)
+	DATA	(line_mem(i),i=39,51)
      .	/     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/
@@ -660,27 +343,41 @@ c     .			/pline_mem_left*real8_init/
 * MONTH_NOLEAP
      
 *  COORDS FOR MONTH_NOLEAP
-	DATA	(line_mem(i),i=564,575)
+	DATA	(line_mem(i),i=52,63)
      .	/     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=576,588)
+	DATA	(line_mem(i),i=64,76)
      .	/     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=589,600)
+	DATA	(line_mem(i),i=77,88)
      .	/     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=601,613)
+	DATA	(line_mem(i),i=89,101)
      .	/     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)
+     .	/         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)
+     .	/     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/
+
 * Miscellaneous (axis orientations)
 
 	DATA 	axis_orients(  1 )	/ 'WE' /,   ! west to east
diff --git a/jnls/contrib/def_monthaxis_days.jnl b/jnls/contrib/def_monthaxis_days.jnl
index 6edc36b..dd66d43 100644
--- a/jnls/contrib/def_monthaxis_days.jnl
+++ b/jnls/contrib/def_monthaxis_days.jnl
@@ -39,9 +39,6 @@
 !
 ! Author: Patrick Brockmann
 ! Contact: Patrick.Brockmann at cea.fr
-! $Date: $
-! $Name: $
-! $Revision: $
 ! History:
 ! Modification:
 !   1/8/2014 Ansley Manke added Julian calendar 
diff --git a/jnls/contrib/ratio_set.jnl b/jnls/contrib/ratio_set.jnl
index 2bfabf3..40410fe 100644
--- a/jnls/contrib/ratio_set.jnl
+++ b/jnls/contrib/ratio_set.jnl
@@ -18,9 +18,6 @@
 !
 ! Author: Patrick Brockmann 
 ! Contact: Patrick.Brockmann at ipsl.jussieu.fr
-! $Date: 2005-01-07 10:54:00 -0800 (Fri, 07 Jan 2005) $ 
-! $Name$
-! $Revision: 8905 $
 ! History:
 ! Modification:
 !  * put ratio as optionnal
diff --git a/jnls/contrib/taylor_agraticule.jnl b/jnls/contrib/taylor_agraticule.jnl
index 177acfd..103e939 100644
--- a/jnls/contrib/taylor_agraticule.jnl
+++ b/jnls/contrib/taylor_agraticule.jnl
@@ -23,9 +23,6 @@
 !
 ! Author: Patrick Brockmann
 ! Contact: Patrick.Brockmann at ipsl.jussieu.fr
-! $Date: 2012-06-06 17:15:29 -0700 (Wed, 06 Jun 2012) $
-! $Name: FAST_672_1_0 $
-! $Revision: 14123 $
 ! History:
 ! Modification:
 !
diff --git a/jnls/contrib/taylor_example1.jnl b/jnls/contrib/taylor_example1.jnl
index cf837c6..f7a6f35 100644
--- a/jnls/contrib/taylor_example1.jnl
+++ b/jnls/contrib/taylor_example1.jnl
@@ -1,9 +1,6 @@
 !**************************************************************
 ! Author: Patrick Brockmann
 ! Contact: Patrick.Brockmann at ipsl.jussieu.fr
-! $Date: 2012-06-06 17:15:29 -0700 (Wed, 06 Jun 2012) $
-! $Name: FAST_608_1_3 $
-! $Revision: 14123 $
 ! History:
 ! Modification:
 !
diff --git a/jnls/contrib/taylor_frame.jnl b/jnls/contrib/taylor_frame.jnl
index 963fa41..d169696 100644
--- a/jnls/contrib/taylor_frame.jnl
+++ b/jnls/contrib/taylor_frame.jnl
@@ -29,9 +29,6 @@
 !
 ! Author: Patrick Brockmann
 ! Contact: Patrick.Brockmann at ipsl.jussieu.fr
-! $Date: 2012-06-06 17:15:29 -0700 (Wed, 06 Jun 2012) $
-! $Name: $
-! $Revision: 14123 $
 ! History:
 ! Modification:
 ! Original implentation: James.Orr at cea.fr 
diff --git a/jnls/contrib/taylor_frame_accurate.jnl b/jnls/contrib/taylor_frame_accurate.jnl
index 684664d..1a948b1 100644
--- a/jnls/contrib/taylor_frame_accurate.jnl
+++ b/jnls/contrib/taylor_frame_accurate.jnl
@@ -28,9 +28,6 @@
 !
 ! Author: Patrick Brockmann
 ! Contact: Patrick.Brockmann at ipsl.jussieu.fr
-! $Date: 2009/05/14 15:04:00 $
-! $Name: FAST_608_1_3 $
-! $Revision: 1.1.1.3 $
 ! History:
 ! Modification:
 !
diff --git a/jnls/contrib/taylor_label.jnl b/jnls/contrib/taylor_label.jnl
index f685448..362cbd5 100644
--- a/jnls/contrib/taylor_label.jnl
+++ b/jnls/contrib/taylor_label.jnl
@@ -14,9 +14,6 @@
 !
 ! Author: Patrick Brockmann
 ! Contact: Patrick.Brockmann at ipsl.jussieu.fr
-! $Date: 2012-06-06 17:15:29 -0700 (Wed, 06 Jun 2012) $
-! $Name: FAST_608_1_3 $
-! $Revision: 14123 $
 ! History:
 ! Modification:
 !
diff --git a/jnls/contrib/taylor_plot.jnl b/jnls/contrib/taylor_plot.jnl
index 9c88a1d..d38f049 100644
--- a/jnls/contrib/taylor_plot.jnl
+++ b/jnls/contrib/taylor_plot.jnl
@@ -13,9 +13,6 @@
 !
 ! Author: Patrick Brockmann
 ! Contact: Patrick.Brockmann at ipsl.jussieu.fr
-! $Date: 2012-06-06 17:15:29 -0700 (Wed, 06 Jun 2012) $
-! $Name: FAST_608_1_3 $
-! $Revision: 14123 $
 ! History:
 ! Modification:
 !
diff --git a/jnls/contrib/taylor_polymark.jnl b/jnls/contrib/taylor_polymark.jnl
index b2f8052..01d0fe4 100644
--- a/jnls/contrib/taylor_polymark.jnl
+++ b/jnls/contrib/taylor_polymark.jnl
@@ -13,9 +13,6 @@
 !
 ! Author: Patrick Brockmann
 ! Contact: Patrick.Brockmann at ipsl.jussieu.fr
-! $Date: 2012-06-06 17:15:29 -0700 (Wed, 06 Jun 2012) $
-! $Name: FAST_608_1_3 $
-! $Revision: 14123 $
 ! History:
 ! Modification:
 !
diff --git a/jnls/contrib/taylor_rgraticule.jnl b/jnls/contrib/taylor_rgraticule.jnl
index 4b2b852..725822b 100644
--- a/jnls/contrib/taylor_rgraticule.jnl
+++ b/jnls/contrib/taylor_rgraticule.jnl
@@ -27,9 +27,6 @@
 !
 ! Author: Patrick Brockmann
 ! Contact: Patrick.Brockmann at ipsl.jussieu.fr
-! $Date: 2012-06-06 17:15:29 -0700 (Wed, 06 Jun 2012) $
-! $Name: $
-! $Revision: 14123 $
 ! History:
 ! Modification:
 !
diff --git a/jnls/contrib/taylor_rmscircles.jnl b/jnls/contrib/taylor_rmscircles.jnl
index 62375b7..1b022e9 100644
--- a/jnls/contrib/taylor_rmscircles.jnl
+++ b/jnls/contrib/taylor_rmscircles.jnl
@@ -31,9 +31,6 @@
 !
 ! Author: James Orr
 ! Contact: James.Orr at lsce.ipsl.fr
-! $Date: $
-! $Name: $
-! $Revision: $
 ! History:  Modified from taylor_rgraticule.jnl (by Patrick Brockmann)
 ! Modification:
 !
diff --git a/jnls/contrib/taylor_wtarea.jnl b/jnls/contrib/taylor_wtarea.jnl
index 1081bf7..ae0befd 100644
--- a/jnls/contrib/taylor_wtarea.jnl
+++ b/jnls/contrib/taylor_wtarea.jnl
@@ -28,9 +28,6 @@
 !
 ! Author: James Orr 
 ! Contact: James.Orr at cea.fr
-! $Date: 2012-05-01 17:39:32 -0700 (Tue, 01 May 2012) $ 
-! $Name$
-! $Revision: 13851 $
 ! History:
 ! Modification:
 ! 
diff --git a/jnls/examples/annotate_demo.jnl b/jnls/examples/annotate_demo.jnl
new file mode 100644
index 0000000..f2e5401
--- /dev/null
+++ b/jnls/examples/annotate_demo.jnl
@@ -0,0 +1,88 @@
+! annotate_examples.jnl
+! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
+! locates user-defined labels on a plot.
+!   /USER and /NOUSER behave as the LABEL command does
+!   /NORM locates labels relative to the plot axis, treating them as a unit "square".
+!   /VALIGN moves the label up or down relative to the direction of the label
+!   /HALIGN is -1, 1, or 0 as always, or larger values to move the label horizontally
+!         relative to the direction of the label. Allows us to move, say, one character in
+!         or out from the axis corner.
+
+can mode logo
+
+if ($program_name"0|pyferret>1|*>0") THEN
+   set text/font=arial
+   set text/font=arial/color=blue/italic moveable
+endif
+
+! ANNOTATE /USER acts like LABEL/USER, locating labels using user-units such 
+! as longitude, latitude
+pause
+
+define symbol makemap = go basemap   " "  " "   " "    gray_light
+
+($makemap)
+annotate/user/xpos=180/ypos=0/halign=0/valign=0/siz=0.12 "Center of Pacific"
+annotate/user/xpos=279.8/ypos=25.8 /halign=-1/valign=0/siz=0.12  "Miami"
+
+
+! ANNOTATE /NORM locates labels relative to the plot axes, as if they form a unit square 
+pause
+
+($makemap)
+annotate/norm/xpos=.5/ypos=1.1/halign=0/angle=0/size=0.14 "FLOATING TITLE"
+
+annotate/norm/xpos=.5/ypos=-.2/halign=0/angle=0/size=0.14 "SUBMERGED TITLE"
+
+annotate/norm/xpos=.5/ypos=.5/halign=0/valign=0/angle=0/size=0.14 "DEAD CENTER"
+pause
+
+annotate/norm/xpos=0/ypos=1/halign=-1/angle=0/size=0.14 "LEFT/TOP"
+
+annotate/norm/xpos=.5/ypos=1/halign=0/angle=0/size=0.14 "CTR/TOP"
+
+annotate/norm/xpos=1/ypos=1/halign=1/angle=0/size=0.14 "RIGHT/TOP"
+
+annotate/norm/xpos=1/ypos=.5/halign=0/angle=-90/size=0.14 "RIGHT EDGE"
+
+annotate/norm/xpos=0/ypos=.5/halign=0/angle=90/size=0.14 "LEFT EDGE"
+
+annotate/norm/xpos=.5/ypos=0/halign=0/valign=1/angle=0/size=0.14 "HANGING FROM BOTTOM"
+pause
+
+annotate/norm/xpos=0/ypos=0/halign=-2/valign=-2/angle=0/siz=0.1 "BOTTOM LEFT INSET"
+
+annotate/norm/xpos=0/ypos=1/halign=-2/valign=2/angle=0/siz=0.1 "TOP LEFT INSET"
+
+annotate/norm/xpos=1/ypos=0/halign=2/valign=-2/angle=0/siz=0.1 "BOTTOM RIGHT INSET"
+
+annotate/norm/xpos=1/ypos=1/halign=2/valign=2/angle=0/siz=0.1 "TOP RIGHT INSET"
+pause
+
+! ANNOTATE /NOUSER locates labels like LABEL/NOUSER, using plot "inch" units relative tothe plot origin.
+pause
+
+ ($makemap)
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=($ppl$ylen)/halign=0/valign=-8/siz=.25 "ANNOTATE/NOUSER labels"
+
+annotate/nouser/xpos=0/ypos=0/halign=-1/angle=0/size=0.15 "At Origin"
+annotate/nouser/xpos=0/ypos=0/halign=-3/valign=-4/angle=0/size=0.15 "With/HALIGN=-3/VALIGN=-4"
+
+annotate/nouser/xpos=($ppl$xlen)/ypos=($ppl$ylen)/halign=1/valign=-1/angle=0/siz=0.15 "Right-align at upper right corner"
+annotate/nouser/xpos=($ppl$xlen)/ypos=($ppl$ylen)/halign=4/valign=3/angle=0/siz=0.15 "With/HALIGN=3/VALIGN=4"
+
+pause
+
+annotate/nouser/xpos=`($ppl$xlen)/2`/ypos=`($ppl$ylen)/2`/halign=0/valign=0/angle=0/siz=0.15 \
+"Arguments locate the first<nl>line of multi-line labels "
+pause
+
+! ANNOTATE/NORM with angles.  /HALIGN is used to determine the start of the label relative to the location
+pause
+($makemap)
+annotate/norm/xpos=.5/ypos=.5/halign=-2/valign=0/angle=45/size=0.14 "angle 45, halign=-2"
+annotate/norm/xpos=.5/ypos=.5/halign=2/valign=0/angle=45/size=0.14 "angle 45, halign=2"
+annotate/norm/xpos=.5/ypos=.5/halign=-2/valign=0/angle=-45/size=0.14 "angle -45, halign=-2"
+annotate/norm/xpos=.5/ypos=.5/halign=2/valign=0/angle=-45/size=0.14 "angle -45, halign=2"
+
+
diff --git a/jnls/examples/ccbar_demo.jnl b/jnls/examples/ccbar_demo.jnl
index 6aa1445..9c0e919 100644
--- a/jnls/examples/ccbar_demo.jnl
+++ b/jnls/examples/ccbar_demo.jnl
@@ -2,6 +2,14 @@
 
 ! Description: demonstrate continuous colorbar on plots that use 
 ! color fill and shade.
+cancel mode verify
+SAY **************************
+SAY *****  NOTE: 
+SAY *****  Modern Ferret verions have /KEY=CONTINUOUS option.
+SAY *****  The ccbar.jnl script is obsolete.
+SAY **************************
+pause
+set mode verify
 
 ! EXAMPLE 1:
 ! Define a variable ranging from 0 to 6 and plot it in fine
diff --git a/jnls/examples/constant_array_demo.jnl b/jnls/examples/constant_array_demo.jnl
index 704ade6..40f932e 100644
--- a/jnls/examples/constant_array_demo.jnl
+++ b/jnls/examples/constant_array_demo.jnl
@@ -29,10 +29,6 @@ pause
 pause
 
 ! EXAMPLES
-! Below are several examples illustrating uses of constant arrays
-! 1) plots a triangle
-! 2) plots a series of triangles at data points
-! 3) Samples a variable at a list of subscripts
 
 ! Ex 1) plot a triangle
 
@@ -50,13 +46,3 @@ pause
   LET values = 10* j[j=1:20]		! value at each (x,y) point
   POLYGON xpts+xtriangle, ypts+ytriangle, values
 
-pause
-
-! Ex 3) Sample Jan, June, and December from sst in coads_climatology
-
-  USE  coads_climatology
-  LET  my_sst_winter = SAMPLEL(sst[Y=0:90N], {1,2,12})
-  LET  my_sst_summer = SAMPLEL(sst[Y=0:90N], {6,7,8})
-  STAT/BRIEF my_sst_winter
-  STAT/BRIEF my_sst_summer
-
diff --git a/jnls/examples/dods_demo.jnl b/jnls/examples/dods_demo.jnl
index 04270b0..e4aaf35 100644
--- a/jnls/examples/dods_demo.jnl
+++ b/jnls/examples/dods_demo.jnl
@@ -3,20 +3,22 @@
 ! set initial demo state
 cancel data/all
 cancel region
+cancel mode logo
 
 ! dods_demo.jnl  *kob* 5/99
 ! customized for IPRC presentation 9/99 *sh*
 !
-! Description: Demo: how to use Ferret and DODS to access remote Datasets
+! Description: Demo: how to use Ferret and OPeNDAP to access remote Datasets
+!              OPeNDAP was formerly known as DODS: (Distributed Oceanographic Data Systems)
 !
 
 set mode verify
-
+IF ($program_name"0|PyFerret>1|*>0") THEN SET TEXT/Font=arial
 
 
 
 !      *********************************************************
-!        DEMO: Using Ferret and DODS to access remote data sets
+!        DEMO: Using Ferret and OPeNDAP to access remote data sets
 !      *********************************************************
 
 ! First we will examine the COADS climatology dataset from the Pacific
@@ -32,7 +34,7 @@ PAUSE
 
 
 
-set data "http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+set data "http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
 show data
 
 
@@ -79,7 +81,7 @@ fill/x=140e:180e/l=1:24 sst[y=5s:5n at ave]
 PAUSE
 !      *********************************************************
 
-use "http://www.esrl.noaa.gov/psd/thredds/dodsC/Datasets/aggro/OISSThires.nc"
+use "http://www.esrl.noaa.gov/psd/thredds/dodsC/Aggregations/OISSThires/sst.mean.nc"
 show data 2
 
 ! This data set contains weekly mean global SST grids prepared by
@@ -93,7 +95,7 @@ PAUSE
 fill/t="15-JUN-1989" sst[d=2]
 go fland
 
-! Now, let's see where the June 15, 1998 Reynolds field (served from Boulder)
+! Now, let's see where the June 15, 1989 Reynolds field (served from Boulder)
 ! exceeds the June climatological data (served from Seattle)
 
 ! This requires regridding the 2x2 degree COADS data to the 0.25x0.25 degree
@@ -104,19 +106,33 @@ PAUSE
 
 let coads_on_reynolds = sst[d=1,g=sst[d=2]]
 let warmer = IF sst[d=2] GT coads_on_reynolds THEN 1
+
+IF ($program_name"0|Ferret>1|*>0") THEN \ 
 shade/x=80w:20e/y=0:80N/pal=black/levels/pattern=weave/t="15-jun-1989"/over warmer
 
+! PyFerret does not have pattern palettes.
+IF ($program_name"0|PyFerret>1|*>0") THEN \ 
+shade/x=80w:20e/y=0:80N/pal=black/levels/palette=cyan_light/t="15-jun-1989"/over warmer
+
+! Urls change, and some of these may no longer be available. Even if these
+! commands yield errors, read the comments for techniquesto handle large datasets, 
+! and ones that have grids with orientations different than what is expected. 
+! The commands are illustrated in the on-line version of this demo:
+! http://ferret.pmel.noaa.gov/documentation/how-to-use-ferret-and-opendap-to-access-and-analyze-remote-data-1
+
+SET MODE ignore
+PAUSE
 
 ! Next let's look at a dataset from NASA's Earth Observing system (EOS) HDF-EOS group. 
 ! This data set is in HDF format. It contains surface data - wind stress, heat flux,
 ! humidity, precipitable water.
 
-!   Note that DODS gives Ferret format-independence -- the ability to read
+!   Note that OPeNDAP gives Ferret format-independence -- the ability to read
 !        an HDF file
 
 PAUSE
 !      *********************************************************
-use "http://eosdap.hdfgroup.uiuc.edu:8080/opendap/data/NASAFILES/hdf5/GSSTF.2b.2008.01.01.he5"
+use "http://eosdap.hdfgroup.org:8080/opendap/data/NASAFILES/hdf5/GSSTF.2b.2008.01.01.he5"
 show data/att 3
 
 
@@ -133,12 +149,13 @@ go fland
 ! of Rhode Island, Graduate School of Oceanography (GSO). This
 ! data is in the form of 1024x1024 pixel images (1 megabyte per image)
 
-! We will use this to illustrate the ability of Ferret and DODS to
+! We will use this to illustrate the ability of Ferret and OPeNDAP to
 ! subsample -- making the data transfer much faster.
 
 PAUSE
 !      *********************************************************
 
+
 use "http://satdat1.gso.uri.edu/opendap/Pathfinder/Northwest_Atlantic/6km/raw/1995/1/f95018175608.hdf"
 
 ! Performance greatly enhanced through use of strides
@@ -158,3 +175,4 @@ define axis/y=`..dsp_nav_earth_botlat`:`..dsp_nav_earth_toplat`/npoints=1024/uni
 shade/levels=v dsp_band_1[i=1:1024:4, j=1:1024:4]
 go fland 05
 
+set mode/last ignore
diff --git a/jnls/examples/ef_fft_demo.jnl b/jnls/examples/ef_fft_demo.jnl
index 6c9362b..c09e318 100644
--- a/jnls/examples/ef_fft_demo.jnl
+++ b/jnls/examples/ef_fft_demo.jnl
@@ -24,13 +24,13 @@ SHOW DATA
 ! Plot the amplitude spectrum vs frequency.
 
 LET FFT_uwndtim = uwnd[x=150e:130w at ave,y=20n:40n at ave]
-LET FFT_uwndfft = FFTA(FFT_uwndtim[l=1:132])
+LET FFT_uwndfft = FFTA(FFT_uwndtim)
 SET VARIABLE/TITLE="Amplitude Spectrum" FFT_uwndfft
 
 SET WINDOW/SIZ=0.4
 
 SET VIEW ul
-PLOT FFT_uwndfft
+PLOT/THICK/COLOR=blue FFT_uwndfft
 
 !  For easier interpretation, invert the frequency axis and plot the 
 !  spectrum vs period: months/cycle
@@ -53,7 +53,7 @@ LET per = 1./a
 !  The PPL ccommands clean up the plot appearance.
 
 SET VIEW ur
-PLOT/VS/LINE/HLIMITS=0:24:2/TITLE="Amplitude Spectrum"/SET_UP per[l=1:`FFT_nf`], FFT_uwndfft
+PLOT/THICK/COLOR=blue/VS/LINE/HLIMITS=0:24:2/TITLE="Amplitude Spectrum"/SET_UP per[l=1:`FFT_nf`], FFT_uwndfft
 PPL XFOR (I2)
 PPL XLAB Period, months/cycle
 PPL YLAB 
@@ -67,13 +67,13 @@ LET FFT_uwndfftp = FFTP(FFT_uwndtim[l=1:132])
 SET VARIABLE/TITLE="FFT Phase"/UNITS="deg" FFT_uwndfftp
 
 SET VIEW ll
-PLOT FFT_uwndfftp
+PLOT/THICK/COLOR=blue FFT_uwndfftp
 
 !  And the phase in months/cycle
 PAUSE
 
 SET VIEW lr
-PLOT/VS/LINE/HLIMITS=0:24:2/TITLE="FFT Phase"/SET_UP per[l=1:`FFT_nf`],FFT_uwndfftp
+PLOT/THICK/COLOR=blue/VS/LINE/HLIMITS=0:24:2/TITLE="FFT Phase"/SET_UP per[l=1:`FFT_nf`],FFT_uwndfftp
 PPL XFOR (I2)
 PPL XLAB Period, months/cycle
 PPL YLAB Deg
@@ -102,7 +102,7 @@ LET tpts = t
 
 SET WINDOW/SIZ=0.4
 SET VIEW upper
-PLOT/TITLE="Original SAMPLE_FUNCTION" sample_function
+PLOT/THICK/COLOR=blue/TITLE="Original SAMPLE_FUNCTION" sample_function
 
 ! Compute the equivalent of FFTA(sample_function)
 pause
@@ -114,13 +114,13 @@ LET amp_fft = (sample_re* sample_re + sample_im* sample_im)^0.5
 ! Compare with the computation in fcn FFTA
 
 SET VIEW upper
-PLOT FFTA(sample_function)
+PLOT/THICK/COLOR=blue FFTA(sample_function)
 SET VIEW lower
-PLOT amp_fft
+PLOT/THICK/COLOR=blue amp_fft
 
 ! Now overlay amplitude spectrum computed by FFTA
 PAUSE
-PLOT/OVER FFTA(sample_function)
+PLOT/COLOR=red/OVER FFTA(sample_function)
 
 ! next compare the phase function
 PAUSE
@@ -136,27 +136,27 @@ LET phas =  rad* ATAN2(-1.*sample_im, sample_re)     ! the computation done in F
 
 SET WINDOW/SIZ=0.4
 SET VIEW upper
-PLOT FFTP(sample_function)
+PLOT/THICK/COLOR=blue FFTP(sample_function)
 SET VIEW lower
-PLOT phas
+PLOT/THICK/COLOR=blue phas
 
 ! Overlay FFT phase computed by fftp
 PAUSE
-PLOT/OVER FFTP(sample_function)
+PLOT/COLOR=red/OVER FFTP(sample_function)
 
 ! Next invert the FFT and compare with original time series
 PAUSE
 
 LET invert_ts = FFT_INVERSE(sample_re, sample_im)
 SET VIEW upper
-PLOT/TITLE="Original SAMPLE_FUNCTION" sample_function
+PLOT/THICK/COLOR=blue/TITLE="Original SAMPLE_FUNCTION" sample_function
 
 SET VIEW lower
-PLOT invert_ts
+PLOT/THICK/COLOR=blue invert_ts
  
 ! Overlay the original time series function
 PAUSE
-PLOT/OVER sample_function
+PLOT/COLOR=red/OVER sample_function
 
 ! clean up
 ! restore plot state 
diff --git a/jnls/examples/ef_sort_demo.jnl b/jnls/examples/ef_sort_demo.jnl
index 3e3f1f9..83cb209 100644
--- a/jnls/examples/ef_sort_demo.jnl
+++ b/jnls/examples/ef_sort_demo.jnl
@@ -57,8 +57,8 @@ SET DATA coads_climatology
 !         Sort the westerly winds, lowest to highest. "sorted_indices3" 
 !         is the indices 3 months after.
 
-LET westerly_wind = uwnd[x=160e:180 at ave,y=5s:5n at ave]
-LET sst_e = sst[x=180:80w at ave,y=5s:5n at ave]
+LET westerly_wind = uwnd[x=160e:180 at ave,y=35n:45n at ave]
+LET sst_e = sst[x=180:80w at ave,y=35n:45n at ave]
 
 LET sorted_indices = sortl(westerly_wind)
 LET sorted_indices3 = MOD((sorted_indices + 2), 12) + 1
@@ -78,16 +78,14 @@ LET leng = wwe_by_wwe[l=@NGD]
 ! ******************************************************************** 
 MESSAGE
 
-!          Make scatter plots: sampled winds vs SST, and mark the
-!          highest winds with a symbol.  The computation takes a moment.
+! Make a scatter plots: sampled winds vs SST, using the 
+! PLOT/VS/RIBBON style to color the symbols by the magnitude of the winds
 
-PLOT/VS/TITLE="SST 3 months after High Westerly Winds"/SET_UP/l=1:`leng` wwe_by_wwe, sst_by_wwe
-ppl xaxis -3.3, -1.9, 0.1
-ppl yaxis, 25.4, 27.4, 0.2
-ppl xlab "Sorted Westerly Winds from 160E to 180"
-ppl ylab "SST from 180 to 80W 3 months after Westerly winds"
-ppl plot
+SET VAR/TITLE="Sorted Westerly Winds from 160E to 180" wwe_by_wwe
+SET VAR/TITLE="SST from 180 to 80W 3 months after Westerly winds" sst_by_wwe
+
+PLOT/VS/RIBBON/THICK/SYM=18/TITLE="SST 3 months after High Westerly Winds, colored by Wind"\
+/pal=blue_purple_orange/hlim=0:5.5/l=1:`leng` wwe_by_wwe, sst_by_wwe, wwe_by_wwe
 
-PLOT/VS/OVER/SYMBOL=18/NOLABELS/l=`leng-3`:`leng` wwe_by_wwe, sst_by_wwe
 
 !         done  
diff --git a/jnls/examples/graticules_demo.jnl b/jnls/examples/graticules_demo.jnl
index 5f6a1d8..5955ae0 100644
--- a/jnls/examples/graticules_demo.jnl
+++ b/jnls/examples/graticules_demo.jnl
@@ -12,24 +12,25 @@ yes? set mode verify
 ! /GRATICULE sets the horizontal and vertical tic marks to be
 ! the same style.  The lines may take on the same characteristics 
 ! as lines that we plot with the Ferret PLOT command:  dashed or
-! solid; colors Black,Red,Green,Blue,LightBlue,Purple, and White
+! solid; colors Black,Red,Green,Blue,LightBlue,Purple, and White 
+! (White in Ferret only)
 ! and THICK=1,2, or 3 where 1 is thin and 3 is the thickest.
 
-yes? PLOT/GRAT=dash/i=1:40 sin(i/6)
+yes? PLOT/COLOR=blue/THICK/GRAT=dash/i=1:40 sin(i/6)
 
 ! We can give multiple arguments to the /GRATICULE qualifier within parentheses
 PAUSE
 
 yes? USE coads_climatology
-yes? SET REGION/X=130E:70W/y=30S:50N/L=1
-yes? CONTOUR/COLOR=blue/GRAT=(line,COLOR=red) sst
+yes? CONTOUR/COLOR=blue/THICk/GRAT=(line,COLOR=red) sst[X=130E:70W,y=30S:50N,L=1]
 yes? GO land thick
+yes? GO fland
 
 ! Here is another example of a simple /GRAT qualifier
 PAUSE
 
 yes? USE etopo20
-yes? SHADE/PAL=dark_land_sea/GRAT=(COLOR=white) rose
+yes? SHADE/PAL=dark_land_sea/GRAT=(COLOR=green) rose
 yes? CANCEL REGION
 yes? CANCEL DATA/all
 
@@ -70,8 +71,8 @@ PAUSE
 
 yes? PPL AXNMTC 2,2
 yes? USE monthly_navy_winds
-yes? SET REGION/X=180/Y=0/T=1-may-1988:1-may-1992
-yes? plot/thick/VGRAT="LARGE(COLOR=blue),SMALL(COLOR=lightblue)" uwnd
+yes? plot/thick/VGRAT="LARGE(COLOR=blue),SMALL(dash,COLOR=lightblue)" uwnd[X=180,Y=0,T=1-may-1989:1-may-1992]
+
 
 ! Here we set the axis tics with PPL commands and do a shade plot
 PAUSE
@@ -81,17 +82,8 @@ yes? USE etopo05
 yes? SET REGION/X=130E:160E/y=30S:0S
 yes? SHADE/SET/HGRAT="LARGE=(THICK),SMALL"/VGRAT="LARGE=(THICK),SMALL"\
 yes? /PALETTE=topo/LEV=(-9000,-1000,1000)(-1000,-100,100)(-100,0,10) rose
-yes? SET REGION/X=130E:160e/y=30S:0s
 yes? PPL XAXIS 130,160,8
 yes? PPL YAXIS -30,0,10
 yes? PPL SHADE
 yes? GO fland 5
 
-! Note that the land fill overplots the graticule lines. We can restore 
-! them by overlaying an empty plot with the original graticule qualifiers.
-PAUSE
-
-yes? LET baddat = `rose,RETURN=bad` + 0*rose
-yes? SHADE/OVER/NOLAB/HGRAT="LARGE=(THICK),SMALL"/VGRAT="LARGE=(THICK),SMALL" baddat
-
-
diff --git a/jnls/examples/land_detail_demo.jnl b/jnls/examples/land_detail_demo.jnl
index 7091bcb..47c0918 100644
--- a/jnls/examples/land_detail_demo.jnl
+++ b/jnls/examples/land_detail_demo.jnl
@@ -17,11 +17,11 @@ go land_detail black overlay 8 9 blue lightblue
 pause
 
 ! Showing national boundaries and rivers. Access the detailed
-! topography/bathymetry data from Smith and Sandwell via DODS
+! topography/bathymetry data from Smith and Sandwell via OPeNDAP
 
-use "http://www.ferret.noaa.gov/cgi-bin/nph-dods/data/PMEL/smith_sandwell_topo_v8_2.nc"
-fill/lev=(0,10000,10000)/pal=tan/x=0:24/y=30:46 rose
-fill/over/lev=(-5000,-1000,500)(-1000,0,50)/pal=topo/x=0:24/y=30:46 rose
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/smith_sandwell_topo_v8_2.nc"
+fill/lev=(0,10000,10000)/pal=tan/nokey/x=0:24/y=30:46 rose
+fill/over/nolab/lev=(-5000,-1000,500)(-1000,0,50)/key/pal=topo/x=0:24/y=30:46 rose
 go land_detail black overlay red green blue blue
 ! frame/file=land_detail_2.gif
 
diff --git a/jnls/examples/objective_analysis_demo.jnl b/jnls/examples/objective_analysis_demo.jnl
index 2e79c35..0946956 100644
--- a/jnls/examples/objective_analysis_demo.jnl
+++ b/jnls/examples/objective_analysis_demo.jnl
@@ -10,12 +10,15 @@
 
 set grid/save
 
-! Set viewports
-DEFINE VIEW/ylim=.6,1/text=.5 vupper
-DEFINE VIEW/xlim=0.,.5/ylim=.3,.55/text=.2 vul
-DEFINE VIEW/xlim=.5,1./ylim=.3,.55/text=.2 vur
-DEFINE VIEW/xlim=0.,.5/ylim=0.05,.3/text=.2 vll
-DEFINE VIEW/xlim=.5,1./ylim=0.05,.3/text=.2 vlr
+if ($program_name"0|PyFerret>1|*>0") THEN set text/font=arial
+
+
+! Define viewports
+DEFINE VIEW/ylim=.5,1/text=.5 vupper
+DEFINE VIEW/xlim=0.,.5/ylim=.3,.63/text=.2 vul
+DEFINE VIEW/xlim=.5,1./ylim=.3,.63/text=.2 vur
+DEFINE VIEW/xlim=0.,.5/ylim=0.0,.33/text=.2 vll
+DEFINE VIEW/xlim=.5,1./ylim=0.0,.33/text=.2 vlr
 
 ! Define a 2-dimensional function and sample it
 DEFINE AXIS/x=0:10:0.05 x10
@@ -56,17 +59,24 @@ set mode verify
 ! To display "reality" we will first let our sample points (xpts,ypts) be
 ! simply the X and y points of a grid.  Then we will change (xpts,ypts) to
 ! be 200 sampling locations and mark them with symbols on the plot.
-! We will draw this output in the "upper" viewport.  The script draw_it
-! simplifies plotting the functions in a viewport and with a title.
+! We will draw this output in the "upper" viewport. 
 
 ! Shaded plot of the points on the (X,Y) grid
 LET/QUIET xpts = x; LET/QUIET ypts = y
-GO draw_it "fcn1+wave" "A field with 200 sample points marked" "SHADE" upper
+set view vupper
+fill/nolab/lev=20 fcn1+wave
+annotate/norm/xpos=0.5/ypos=1.2/halign=0  "A field with 200 sample points marked"
+
+
+! Store the color-levels used here; use the same levels in all the 
+! plots of gridded fields below.
+define symbol same_levels = /lev=(($lev_min),($lev_max),($lev_del))
 
 ! points randomly sampled in (X,Y)
 LET/QUIET xpts = 10*randu(i); LET/QUIET ypts = 10*randu(i+2)
 set region/i=1:200
 plot/vs/over/symbols xpts,ypts
+cancel region
 MESSAGE
 
 ! **********************************************************
@@ -80,8 +90,15 @@ MESSAGE
 DEFINE AXIS/x=1:10:.5 xax5
 DEFINE AXIS/y=1:10:.5 yax5
 LET/QUIET sgrid = scat2gridlaplace_xy (xpts, ypts, sample_function, x[gx=xax5], y[gy=yax5], 5., 5)
-GO draw_it sgrid "Laplace gridding to 20x20 grid" "SHADE" upper_left
-GO draw_it sgrid "20x20 grid, fill contoured" "FILL" lower_left
+
+set v vul
+shade($same_levels)/nolab sgrid
+annotate/norm/xpos=0.5/ypos=-0.3/halign=0 "Laplace gridding to 20x20 grid"
+
+set v vll
+fill($same_levels)/nolab sgrid
+annotate/norm/xpos=0.5/ypos=-0.3/halign=0 "20x20 grid, fill contoured"
+
 MESSAGE
 
 ! **********************************************************
@@ -93,40 +110,63 @@ MESSAGE
 DEFINE AXIS/x=1:10:.2 xax2
 DEFINE AXIS/y=1:10:.2 yax2
 LET/QUIET sgrid = scat2gridlaplace_xy (xpts, ypts, sample_function, x[gx=xax2], y[gy=yax2], 5., 5)
-GO draw_it sgrid "Laplace gridding to 50x50 grid" "SHADE" upper_right
-GO draw_it sgrid "50x50 grid, fill contoured" "fill" lower_right
+set v vur
+shade($same_levels)/nolab sgrid
+annotate/norm/xpos=0.5/ypos=-0.3/halign=0 "Laplace gridding to 50x50 grid"
+
+set v vlr
+fill($same_levels)/nolab sgrid
+annotate/norm/xpos=0.5/ypos=-0.3/halign=0 "50x50 grid, fill contoured"
+
 MESSAGE
 
 ! Now do the same plots with the Gaussian gridding function 
 ! scat2gridgauss_xy which uses a different technique to interpolate the 
-! scattered points to the grid.  This results in a somewhat smoother plot.  
+! scattered points to the grid. This results in a somewhat smoother plot. 
+! however with these parameters, the result does not capture the extreme 
+! values. Using the same color scale on all plots makes this clear. 
 ! The interpolation parameters are  XSCALE, YSCALE, XCUTOFF, YCUTOFF;
 ! where the algorithm uses scattered points which are within 
 !         cutoff* the scale width from the gridbox center.  We use 
 ! XSCALE = YSCALE = XCUTOFF = YCUTOFF = 2.
 
-
 set window/new
+! Shaded plot of the points on the (X,Y) grid
 LET/QUIET xpts = x; LET/QUIET ypts = y
-GO draw_it "fcn1+wave" "A field with 200 sample points marked" "SHADE" upper
+set view vupper
+fill/nolab/lev=20 fcn1+wave
+annotate/norm/xpos=0.5/ypos=1.2/halign=0  "A field with 200 sample points marked"
 
+! points randomly sampled in (X,Y)
 LET/QUIET xpts = 10*randu(i); LET/QUIET ypts = 10*randu(i+2)
 set region/i=1:200
 plot/vs/over/symbols xpts,ypts
-
+cancel region
 
 DEFINE AXIS/x=1:10:.5 xax5
 DEFINE AXIS/y=1:10:.5 yax5
 LET/QUIET sgrid = scat2gridgauss_xy (xpts, ypts, sample_function, x[gx=xax5], y[gy=yax5], 2.,2.,2.,2)
-GO draw_it sgrid "Gauss gridding to 20x20 grid" "SHADE" upper_left
-GO draw_it sgrid "20x20 grid, fill contoured" "FILL" lower_left
 
+set v vul
+shade($same_levels)/nolab sgrid
+annotate/norm/xpos=0.5/ypos=-0.3/halign=0 "Gauss gridding to 20x20 grid"
+
+set v vll
+fill($same_levels)/nolab sgrid
+annotate/norm/xpos=0.5/ypos=-0.3/halign=0 "20x20 grid, fill contoured"
 
+! Finer grid
 DEFINE AXIS/x=1:10:.2 xax2
 DEFINE AXIS/y=1:10:.2 yax2
-LET/QUIET sgrid = scat2gridgauss_xy (xpts, ypts, sample_function, x[gx=xax2], y[gy=yax2], 2.,2.,2.,2)
-GO draw_it sgrid "Gauss gridding to 50x50 grid" "SHADE" upper_right
-GO draw_it sgrid "50x50 grid, fill contoured" "fill" lower_right
+LET/QUIET sgrid = scat2gridgauss_xy (xpts, ypts, sample_function, x[gx=xax2], y[gy=yax2], 1.,1.,2.,2)
+set view vur
+shade($same_levels)/nolab sgrid
+annotate/norm/xpos=0.5/ypos=-0.3/halign=0 "Gauss gridding to 50x50 grid"
+set view vlr
+fill($same_levels)/nolab sgrid
+annotate/norm/xpos=0.5/ypos=-0.3/halign=0 "50x50 grid, fill contoured"
+
+
 MESSAGE
 set grid/restore
 exit
diff --git a/jnls/examples/opendap_demo.jnl b/jnls/examples/opendap_demo.jnl
new file mode 100644
index 0000000..82467ac
--- /dev/null
+++ b/jnls/examples/opendap_demo.jnl
@@ -0,0 +1,9 @@
+\cancel mode verify
+
+! opendap_demo.jnl * 6/2016
+
+! Description: Demo: how to use Ferret and OPeNDAP to access remote Datasets
+!              OPeNDAP was formerly known as DODS: (Distributed Oceanographic Data Systems)
+!
+
+Go dods_demo
diff --git a/jnls/examples/palette_demo.jnl b/jnls/examples/palette_demo.jnl
index 3b293ad..b743344 100644
--- a/jnls/examples/palette_demo.jnl
+++ b/jnls/examples/palette_demo.jnl
@@ -3,13 +3,14 @@
 
 ! Description: demonstration of V5.0 palette capabilities
 
+can mode logo
 ! set up for demo
 \set data levitus_climatology
 \set reg/@t
-\SET WINDOW/ASPECT=1.2:axis
-\DEFINE VIEWPORT/y=0:.33 low
-\DEFINE VIEWPORT/y=.33:.67 mid
-\DEFINE VIEWPORT/y=.67:1 up
+\SET WINDOW/ASPECT=1.2:axisi/siz=0.5
+\DEFINE VIEWPORT/x=0.02:0.98/y=0:.33 low
+\DEFINE VIEWPORT/x=0.02:0.98/y=.33:.67 mid
+\DEFINE VIEWPORT/x=0.02:0.98/y=.67:1 up
 
 ! * * * *  PALETTES  * * * *
 ! As of Ferret version 5 there are 3 types of palettes:
diff --git a/jnls/examples/topo_palette_demo.jnl b/jnls/examples/topo_palette_demo.jnl
index 2a10db4..017f8db 100644
--- a/jnls/examples/topo_palette_demo.jnl
+++ b/jnls/examples/topo_palette_demo.jnl
@@ -6,7 +6,7 @@
 ! Good levels for US elevation (in meters):
 ! (-6000,-1000,1000)(-1000,-100,100)(-100,100,10)(100,1000,100)(1000,6000,1000)
 
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/smith_sandwell_topo_v8_2.nc"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/smith_sandwell_topo_v8_2.nc"
 SET VAR/TITLE="Topography and Bathymetry" rose
 SET REGION/X=130E:160E/y=30S:0S
 shade/pal=topo/lev=(-9000,-1000,1000)(-1000,-100,100)(-100,100,10)(100,1000,100)(1000,4000,1000) rose
diff --git a/jnls/examples/trackplot_demo.jnl b/jnls/examples/trackplot_demo.jnl
index d06e7d0..e6ce7cc 100644
--- a/jnls/examples/trackplot_demo.jnl
+++ b/jnls/examples/trackplot_demo.jnl
@@ -6,6 +6,10 @@
 
 set mode verify
 
+
+if ($program_name"0|PyFerret>1|*>0") THEN set text/font=arial
+
+
 ! Define a 3-leg plot track with discontinuities
 LET/QUIET     X0 = 240
 LET/QUIET     Y0 = 10
@@ -39,6 +43,7 @@ plot/vs/line/over/title="Ship track" xtrack, ytrack
 go trackplot plot/vs/over/line/color=red/title="Variable MY_VAR" xtrack ytrack my_var
 go trackplot plot/vs/over/line/color=blue/title="Variable OTHER_VAR" xtrack ytrack other_var
 label/nouser `($ppl$xlen)/2` -1 0 0 .18 "@CRSynthetic track and 2 variables"
+frame/file=trackplot_demo_1.png
 \PAUSE
 
 ! Try again, but scale the data smaller and shift baseline of other_var 
@@ -47,6 +52,7 @@ go basemap x=120:260 Y=25s:65n 20
 plot/vs/line/over/title="Ship track" xtrack, ytrack
 go trackplot plot/vs/over/line/color=red/title="Variable MY_VAR" xtrack ytrack my_var 12
 go trackplot plot/vs/over/line/color=blue/title="Variable OTHER_VAR" xtrack ytrack other_var 12 1
+frame/file=trackplot_demo_2.png
 \PAUSE
 
 ! In this demo we will mark every 10th point on the ship track
@@ -54,9 +60,15 @@ go trackplot plot/vs/over/line/color=blue/title="Variable OTHER_VAR" xtrack ytra
 go basemap x=120:260 Y=25s:65n 20
 plot/vs/line/over/title="Ship track" xtrack, ytrack
 plot/vs/over/NOLABEL/SYMBOL=88 xtrack[L=1:120:10], ytrack[L=1:120:10]
-label 220,-10,-1,0,.1 "@PM88 at CR - every 10^t^h point"
+if ($program_name"0|PyFerret>1|*>0") THEN 
+  label 220,-10,-1,0,.1 "Star every 10<sup>th</sup> point"
+else
+  label 220,-10,-1,0,.1 "@PM88 at CR - every 10^t^h point"
+endif
+label 220,-10,-1,0,.1 "Star every 10<sup>th</sup> point"
 go trackplot plot/vs/over/line/color=red/title="Variable MY_VAR" xtrack ytrack my_var 4
 go scalemark 1 -1 2    ! position outside of plot rectangle using inches
 go trackplot plot/vs/over/line/color=blue/title="Variable OTHER_VAR" xtrack ytrack other_var " " 1
 go scalemark 180 0 2 user "2 units"
 label/user 180 -3 0 0 .08 "random values plus 1"
+frame/file=trackplot_demo_3.png
diff --git a/jnls/go/define_12_colors.jnl b/jnls/go/define_12_colors.jnl
new file mode 100644
index 0000000..1679cda
--- /dev/null
+++ b/jnls/go/define_12_colors.jnl
@@ -0,0 +1,20 @@
+
+\cancel mode verify
+! define_12_colors.jnl
+! Define additional line colors
+
+say Defining 12 line colors: requries setting a new window
+
+set mode linec:12
+cancel window/all
+set win/new
+
+ppl color,7,100,65,51   ! orange
+ppl color,8,0,55,0      ! dark green
+ppl color,9,60,0,100    ! purple
+ppl color,10,100,70,100 ! magenta
+ppl color,11,80,70,60   ! tan
+ppl color,12,100,88,0   ! yellow
+sho mode linecolors
+
+set mode/last verify
diff --git a/palettes/QC_V3_by_level.spk b/palettes/QC_V3_by_level.spk
index 6d7197c..1db685b 100644
--- a/palettes/QC_V3_by_level.spk
+++ b/palettes/QC_V3_by_level.spk
@@ -6,8 +6,8 @@ RGB_Mapping By_Level
    2     0   60   30  ! green		B
    3   100   90    0  ! yellow		C
    4   100    0    0  ! bright red	D
-   5    77   68   52  ! tan             E  Experimental
-   6    70    0  100  ! purple		F
+   5    70    0  100  ! purple		E  Experimental
+   6    77   68   52  ! tan             F
    7    80   90   10  ! light green     N New 
    8    100  70  100  ! pink		Q Conflicting
    9     0  100  100  ! cyan		U Updated
diff --git a/palettes/blue_gold.spk b/palettes/blue_gold.spk
old mode 100755
new mode 100644
diff --git a/palettes/mpl_PSU_inferno.spk b/palettes/mpl_PSU_inferno.spk
new file mode 100644
index 0000000..70564e6
--- /dev/null
+++ b/palettes/mpl_PSU_inferno.spk
@@ -0,0 +1,104 @@
+! contributed by Patrick Brockmann
+! 12/2015 See http://matplotlib.org/examples/color/colormaps_reference.html
+
+0.000000 0.146200 0.046600 1.386600
+1.000000 0.329900 0.224900 2.423900
+2.000000 0.767600 0.613600 4.683600
+3.000000 1.166300 0.941700 6.346000
+4.000000 1.937300 1.513300 8.876700
+5.000000 2.579300 1.933100 10.593000
+6.000000 3.766800 2.592100 13.223200
+7.000000 4.691500 3.032400 15.016400
+8.000000 6.134000 3.659000 17.764200
+9.000000 7.663700 4.190500 20.579900
+10.000000 8.741100 4.455600 22.481300
+11.000000 10.455100 4.700800 25.343000
+12.000000 11.665600 4.757400 27.232100
+13.000000 13.577800 4.685600 29.977600
+14.000000 14.907300 4.546800 31.708500
+15.000000 16.957500 4.248900 34.087400
+16.000000 18.342900 4.032900 35.497100
+17.000000 20.420900 3.763200 37.323800
+18.000000 22.476300 3.640500 38.812900
+19.000000 23.827300 3.662100 39.635300
+20.000000 25.823400 3.857100 40.648500
+21.000000 27.134700 4.092200 41.197600
+22.000000 29.076300 4.564400 41.863700
+23.000000 30.356800 4.939600 42.218200
+24.000000 32.261000 5.563400 42.637700
+25.000000 34.150000 6.232500 42.942500
+26.000000 35.403200 6.692500 43.090600
+27.000000 37.276800 7.391500 43.240000
+28.000000 38.522800 7.859100 43.295500
+29.000000 40.389400 8.558000 43.317900
+30.000000 41.633100 9.020300 43.294300
+31.000000 43.498700 9.706900 43.203900
+32.000000 44.742800 10.159700 43.108000
+33.000000 46.610000 10.832200 42.912500
+34.000000 48.478900 11.497400 42.654800
+35.000000 49.725700 11.937900 42.448800
+36.000000 51.596700 12.596000 42.088700
+37.000000 52.844400 13.034100 41.814200
+38.000000 54.715700 13.692900 41.351100
+39.000000 55.962400 14.134600 41.007800
+40.000000 57.830400 14.803900 40.441100
+41.000000 59.073400 15.256300 40.029000
+42.000000 60.933000 15.947400 39.358900
+43.000000 62.784700 16.657500 38.627600
+44.000000 64.013500 17.143800 38.106500
+45.000000 65.846300 17.896200 37.274800
+46.000000 67.059900 18.415300 36.687900
+47.000000 68.865300 19.223900 35.760300
+48.000000 70.057600 19.785100 35.111300
+49.000000 71.826400 20.663600 34.093100
+50.000000 73.568300 21.590600 33.024500
+51.000000 74.712700 22.237800 32.285600
+52.000000 76.401000 23.255400 31.139900
+53.000000 77.505900 23.966700 30.352600
+54.000000 79.129300 25.085600 29.139000
+55.000000 80.187100 25.867400 28.309900
+56.000000 81.734100 27.095400 27.039000
+57.000000 82.737200 27.951700 26.175000
+58.000000 84.196900 29.293300 24.856400
+59.000000 85.599200 30.703800 23.513300
+60.000000 86.500600 31.682200 22.605500
+61.000000 87.800100 33.206000 21.226800
+62.000000 88.630200 34.258600 20.296800
+63.000000 89.819200 35.891100 18.886000
+64.000000 90.573500 37.014000 17.935000
+65.000000 91.646200 38.748100 16.492400
+66.000000 92.321500 39.935900 15.519300
+67.000000 93.273700 41.762700 14.041700
+68.000000 94.152100 43.640500 12.540900
+69.000000 94.696500 44.919100 11.527200
+70.000000 95.450600 46.874400 9.987400
+71.000000 95.911400 48.201400 8.949900
+72.000000 96.539700 50.224900 7.385900
+73.000000 96.916300 51.594600 6.348800
+74.000000 97.417600 53.678000 4.839200
+75.000000 97.842200 55.793700 3.493100
+76.000000 98.082400 57.220900 2.850800
+77.000000 98.377900 59.384900 2.377000
+78.000000 98.531500 60.842200 2.420200
+79.000000 98.696400 63.048500 3.090800
+80.000000 98.762200 64.532000 3.988600
+81.000000 98.794500 66.774800 5.832900
+82.000000 98.771400 68.280700 7.248900
+83.000000 98.669400 70.554000 9.569400
+84.000000 98.486500 72.842700 12.078500
+85.000000 98.319600 74.375800 13.845300
+86.000000 98.003200 76.683700 16.635300
+87.000000 97.749700 78.225800 18.592300
+88.000000 97.308800 80.540900 21.687700
+89.000000 96.978300 82.082500 23.868600
+90.000000 96.439400 84.384800 27.339100
+91.000000 96.062600 85.906900 29.801000
+92.000000 95.499700 88.156900 33.747500
+93.000000 95.001800 90.340900 38.027100
+94.000000 94.759400 91.739900 41.066500
+95.000000 94.640300 93.715900 45.859200
+96.000000 94.793700 94.931800 49.142600
+97.000000 95.452900 96.589600 54.036100
+98.000000 96.181200 97.592400 57.192500
+99.000000 97.651100 98.975300 61.676000
+100.000000 98.836200 99.836400 64.492400
diff --git a/palettes/mpl_PSU_magma.spk b/palettes/mpl_PSU_magma.spk
new file mode 100644
index 0000000..738544c
--- /dev/null
+++ b/palettes/mpl_PSU_magma.spk
@@ -0,0 +1,104 @@
+! contributed by Patrick Brockmann
+! 12/2015 See http://matplotlib.org/examples/color/colormaps_reference.html
+
+0.000000 0.146200 0.046600 1.386600
+1.000000 0.327900 0.230500 2.370800
+2.000000 0.758800 0.635600 4.497300
+3.000000 1.146500 0.982800 6.075000
+4.000000 1.881500 1.602600 8.458400
+5.000000 2.479200 2.071500 10.067600
+6.000000 3.552000 2.839700 12.520900
+7.000000 4.383000 3.383000 14.188600
+8.000000 5.661500 4.216000 16.744600
+9.000000 6.976400 4.972600 19.373500
+10.000000 7.881500 5.418400 21.166700
+11.000000 9.294900 5.990400 23.916400
+12.000000 10.281500 6.301000 25.785400
+13.000000 11.840500 6.647900 28.632100
+14.000000 12.938000 6.793500 30.544300
+15.000000 14.678500 6.873800 33.401100
+16.000000 15.901800 6.835400 35.268800
+17.000000 17.821200 6.657600 37.949700
+18.000000 19.817700 6.386200 40.400900
+19.000000 21.171800 6.199200 41.864700
+20.000000 23.207700 5.988900 43.769500
+21.000000 24.554300 5.935200 44.843600
+22.000000 26.544700 6.023700 46.184000
+23.000000 27.849300 6.197800 46.919000
+24.000000 29.774000 6.611700 47.824300
+25.000000 31.665400 7.169000 48.538000
+26.000000 32.911400 7.597200 48.928700
+27.000000 34.763600 8.294600 49.412100
+28.000000 35.989800 8.783100 49.677800
+29.000000 37.821100 9.533200 50.006700
+30.000000 39.038400 10.037900 50.186400
+31.000000 40.862900 10.793000 50.405200
+32.000000 42.079100 11.292000 50.521500
+33.000000 43.906200 12.029800 50.655500
+34.000000 45.738600 12.752200 50.744800
+35.000000 46.964000 13.224500 50.780900
+36.000000 48.808800 13.918600 50.801100
+37.000000 50.043800 14.371900 50.792000
+38.000000 51.904500 15.038300 50.744300
+39.000000 53.150700 15.473900 50.689500
+40.000000 55.028700 16.115800 50.571900
+41.000000 56.286600 16.536800 50.469200
+42.000000 58.181900 17.159600 50.277700
+43.000000 60.086800 17.774300 50.039400
+44.000000 61.361700 18.181100 49.853600
+45.000000 63.280500 18.789300 49.533200
+46.000000 64.563300 19.195200 49.291000
+47.000000 66.491500 19.807500 48.883600
+48.000000 67.778600 20.220300 48.581900
+49.000000 69.709800 20.850100 48.083500
+50.000000 71.638700 21.498200 47.529000
+51.000000 72.921600 21.943700 47.127900
+52.000000 74.837800 22.637700 46.479400
+53.000000 76.107700 23.121400 46.016200
+54.000000 77.996800 23.885100 45.276500
+55.000000 79.242700 24.424200 44.754300
+56.000000 81.085500 25.286100 43.930500
+57.000000 82.292600 25.901600 43.357300
+58.000000 84.063600 26.895300 42.466600
+59.000000 85.776300 27.985700 41.549600
+60.000000 86.879300 28.772800 40.930300
+61.000000 88.465100 30.053000 40.004700
+62.000000 89.470000 30.977300 39.399500
+63.000000 90.888400 32.475500 38.530800
+64.000000 91.768900 33.550000 37.991500
+65.000000 92.984500 35.273400 37.267700
+66.000000 93.722100 36.492900 36.856700
+67.000000 94.718000 38.417800 36.370100
+68.000000 95.584900 40.440000 36.061900
+69.000000 96.094900 41.832300 35.963000
+70.000000 96.767100 43.970300 35.981000
+71.000000 97.158200 45.421000 36.103000
+72.000000 97.669000 47.622600 36.446600
+73.000000 97.964500 49.101400 36.778300
+74.000000 98.348500 51.328000 37.419800
+75.000000 98.670000 53.558200 38.221000
+76.000000 98.853300 55.044600 38.836500
+77.000000 99.087100 57.270600 39.871400
+78.000000 99.219600 58.750200 40.629900
+79.000000 99.383400 60.964400 41.861300
+80.000000 99.473800 62.435000 42.739700
+81.000000 99.581000 64.634400 44.136100
+82.000000 99.634100 66.096900 45.116000
+83.000000 99.692500 68.282800 46.652600
+84.000000 99.725400 70.461100 48.263500
+85.000000 99.735100 71.908900 49.375500
+86.000000 99.728500 74.077200 51.098300
+87.000000 99.713800 75.519000 52.280600
+88.000000 99.672700 77.679500 54.103900
+89.000000 99.636900 79.116700 55.349900
+90.000000 99.568000 81.270600 57.264500
+91.000000 99.513100 82.705200 58.570100
+92.000000 99.422200 84.854000 60.569600
+93.000000 99.317000 87.002400 62.618900
+94.000000 99.244000 88.433000 64.009900
+95.000000 99.133200 90.576300 66.130900
+96.000000 99.057000 92.004900 67.567500
+97.000000 98.943400 94.147000 69.751900
+98.000000 98.871700 95.574200 71.224200
+99.000000 98.769100 97.715400 73.453600
+100.000000 98.705300 99.143800 74.950400
diff --git a/palettes/mpl_PSU_plasma.spk b/palettes/mpl_PSU_plasma.spk
new file mode 100644
index 0000000..51c1480
--- /dev/null
+++ b/palettes/mpl_PSU_plasma.spk
@@ -0,0 +1,104 @@
+! contributed by Patrick Brockmann
+! 12/2015 See http://matplotlib.org/examples/color/colormaps_reference.html
+
+0.000000 5.038300 2.980300 52.797500
+1.000000 7.535300 2.720600 53.800700
+2.000000 10.598000 2.430900 55.136800
+3.000000 12.390300 2.287800 55.942300
+4.000000 14.860700 2.115400 57.056200
+5.000000 16.407000 2.017100 57.747800
+6.000000 18.621300 1.880300 58.722800
+7.000000 20.044500 1.790200 59.336400
+8.000000 22.119700 1.649700 60.208300
+9.000000 24.139600 1.497900 61.025900
+10.000000 25.462700 1.388200 61.541900
+11.000000 27.419100 1.210900 62.272200
+12.000000 28.707600 1.085500 62.729500
+13.000000 30.621000 0.890200 63.369400
+14.000000 31.885600 0.757600 63.764000
+15.000000 33.768300 0.561800 64.304900
+16.000000 35.015000 0.438200 64.629800
+17.000000 36.873300 0.272400 65.060100
+18.000000 38.718300 0.143400 65.417700
+19.000000 39.941100 0.085900 65.613300
+20.000000 41.764200 0.056400 65.839000
+21.000000 42.971900 0.083100 65.942500
+22.000000 44.771400 0.208000 66.024000
+23.000000 45.962300 0.357400 66.027700
+24.000000 47.734400 0.698000 65.954900
+25.000000 49.487700 1.199000 65.786500
+26.000000 50.645400 1.633300 65.620200
+27.000000 52.363300 2.453200 65.290100
+28.000000 53.495200 3.121700 65.016500
+29.000000 55.171500 4.313600 64.527700
+30.000000 56.273800 5.154500 64.150900
+31.000000 57.902900 6.429600 63.512600
+32.000000 58.971900 7.287800 63.040800
+33.000000 60.548500 8.585400 62.268600
+34.000000 62.091900 9.893400 61.425700
+35.000000 63.101700 10.769900 60.828700
+36.000000 64.587200 12.089800 59.886700
+37.000000 65.558000 12.972500 59.231700
+38.000000 66.984500 14.299200 58.215400
+39.000000 67.916000 15.184800 57.518900
+40.000000 69.284000 16.514100 56.452200
+41.000000 70.176900 17.400500 55.729600
+42.000000 71.488300 18.729900 54.633800
+43.000000 72.767000 20.058600 53.529300
+44.000000 73.601900 20.943900 52.790800
+45.000000 74.828900 22.271100 51.683400
+46.000000 75.630400 23.155500 50.946800
+47.000000 76.809000 24.481700 49.846500
+48.000000 77.579600 25.365800 49.117100
+49.000000 78.713300 26.692200 48.030700
+50.000000 79.821600 28.019700 46.953800
+51.000000 80.546700 28.905700 46.241500
+52.000000 81.614400 30.236800 45.181600
+53.000000 82.313200 31.126100 44.480600
+54.000000 83.342200 32.463500 43.436600
+55.000000 84.015500 33.358000 42.745500
+56.000000 85.006600 34.704800 41.715300
+57.000000 85.654700 35.606600 41.032200
+58.000000 86.607800 36.966000 40.012600
+59.000000 87.537600 38.334700 38.997600
+60.000000 88.144300 39.252900 38.322900
+61.000000 89.034000 40.639800 37.313000
+62.000000 89.613100 41.571200 36.640700
+63.000000 90.460100 42.979700 35.632900
+64.000000 91.009800 43.926800 34.961000
+65.000000 91.810900 45.360300 33.952900
+66.000000 92.328700 46.325100 33.280100
+67.000000 93.079800 47.786700 32.269700
+68.000000 93.799000 49.266700 31.257500
+69.000000 94.259800 50.263900 30.581600
+70.000000 94.921700 51.776300 29.566200
+71.000000 95.342800 52.796000 28.888300
+72.000000 95.942400 54.343100 27.870100
+73.000000 96.320300 55.386500 27.190900
+74.000000 96.852600 56.970000 26.172100
+75.000000 97.341600 58.576100 25.154000
+76.000000 97.642800 59.659500 24.476700
+77.000000 98.055600 61.303900 23.464600
+78.000000 98.304100 62.413100 22.793700
+79.000000 98.634500 64.096900 21.794800
+80.000000 98.826000 65.232500 21.136400
+81.000000 99.068100 66.955800 20.164200
+82.000000 99.198500 68.117900 19.529500
+83.000000 99.345600 69.881000 18.604100
+84.000000 99.432400 71.668100 17.720800
+85.000000 99.455300 72.872800 17.162200
+86.000000 99.435500 74.699500 16.382100
+87.000000 99.385100 75.930400 15.909200
+88.000000 99.250500 77.796700 15.285500
+89.000000 99.120900 79.053700 14.937700
+90.000000 98.864800 80.957900 14.535700
+91.000000 98.650900 82.240100 14.355700
+92.000000 98.265300 84.181200 14.230300
+93.000000 97.799500 86.143200 14.280800
+94.000000 97.444300 87.462200 14.406100
+95.000000 96.844300 89.456400 14.701400
+96.000000 96.402100 90.795000 14.937000
+97.000000 95.680800 92.815200 15.240900
+98.000000 95.172600 94.167100 15.292500
+99.000000 94.415200 96.191600 14.686100
+100.000000 94.001500 97.515800 13.132600
diff --git a/palettes/mpl_PSU_viridis.spk b/palettes/mpl_PSU_viridis.spk
new file mode 100644
index 0000000..e0090c8
--- /dev/null
+++ b/palettes/mpl_PSU_viridis.spk
@@ -0,0 +1,105 @@
+! contributed by Patrick Brockmann
+! 12/2015 See http://matplotlib.org/examples/color/colormaps_reference.html
+
+
+0.000000 26.700400 0.487400 32.941500
+1.000000 26.994400 1.462500 34.137900
+2.000000 27.380900 3.149700 35.885300
+3.000000 27.602200 4.416700 37.016400
+4.000000 27.879100 6.214500 38.659200
+5.000000 28.026700 7.341700 39.716300
+6.000000 28.192400 8.966600 41.241500
+7.000000 28.265600 10.019600 42.216000
+8.000000 28.319700 11.568000 43.611500
+9.000000 28.307200 13.089500 44.924100
+10.000000 28.262300 14.092600 45.751700
+11.000000 28.141200 15.583400 46.920100
+12.000000 28.025500 16.569300 47.649800
+13.000000 27.801200 18.036700 48.669700
+14.000000 27.619400 19.007400 49.300100
+15.000000 27.300600 20.452000 50.172100
+16.000000 27.059500 21.406900 50.705200
+17.000000 26.658000 22.826200 51.434900
+18.000000 26.213800 24.228600 52.083700
+19.000000 25.896500 25.153700 52.473600
+20.000000 25.393500 26.525400 52.998300
+21.000000 25.042500 27.429000 53.310300
+22.000000 24.497200 28.767500 53.726000
+23.000000 24.123700 29.648500 53.970900
+24.000000 23.552600 30.952700 54.294400
+25.000000 22.973900 32.236100 54.570600
+26.000000 22.586300 33.080500 54.731400
+27.000000 22.005700 34.330700 54.941300
+28.000000 21.621000 35.153500 55.062700
+29.000000 21.050300 36.372700 55.220600
+30.000000 20.675600 37.175800 55.311700
+31.000000 20.123900 38.367000 55.429400
+32.000000 19.763600 39.152800 55.496900
+33.000000 19.235700 40.319900 55.583600
+34.000000 18.723100 41.474600 55.654700
+35.000000 18.389800 42.238300 55.694400
+36.000000 17.901900 43.375600 55.743000
+37.000000 17.584100 44.129000 55.768500
+38.000000 17.117600 45.253000 55.796500
+39.000000 16.812600 45.998800 55.808200
+40.000000 16.362500 47.113300 55.814800
+41.000000 16.066500 47.854000 55.811500
+42.000000 15.627000 48.962400 55.793600
+43.000000 15.191800 50.068500 55.758700
+44.000000 14.903900 50.805100 55.725000
+45.000000 14.475900 51.909300 55.657200
+46.000000 14.193500 52.645300 55.599100
+47.000000 13.777000 53.749200 55.490600
+48.000000 13.506600 54.485300 55.402900
+49.000000 13.117200 55.589900 55.245900
+50.000000 12.756800 56.694900 55.055600
+51.000000 12.539400 57.431800 54.908600
+52.000000 12.260600 58.537100 54.655700
+53.000000 12.114800 59.273900 54.464100
+54.000000 11.973800 60.378500 54.140000
+55.000000 11.942300 61.114100 53.898200
+56.000000 12.008100 62.216100 53.494600
+57.000000 12.138000 62.949200 53.197300
+58.000000 12.478000 64.046100 52.706800
+59.000000 13.006700 65.138400 52.160800
+60.000000 13.469200 65.863600 51.764900
+61.000000 14.330300 66.945900 51.121500
+62.000000 15.014800 67.663100 50.658900
+63.000000 16.201600 68.731600 49.912900
+64.000000 17.094800 69.438400 49.380300
+65.000000 18.578300 70.489100 48.527300
+66.000000 19.657100 71.182700 47.922100
+67.000000 21.400000 72.211400 46.958800
+68.000000 23.281500 73.224700 45.927700
+69.000000 24.607000 73.891000 45.202400
+70.000000 26.694100 74.875100 44.057300
+71.000000 28.147700 75.520300 43.255200
+72.000000 30.414800 76.470400 41.994300
+73.000000 31.980900 77.091400 41.115200
+74.000000 34.407400 78.002900 39.738100
+75.000000 36.921400 78.888800 38.291400
+76.000000 38.643300 79.464400 37.288600
+77.000000 41.291300 80.304100 35.726900
+78.000000 43.098300 80.847300 34.647600
+79.000000 45.867400 81.636300 32.972700
+80.000000 47.750400 82.144400 31.819500
+81.000000 50.627100 82.878600 30.036200
+82.000000 52.577600 83.349100 28.812700
+83.000000 55.548400 84.025400 26.928100
+84.000000 58.567800 84.666100 24.989700
+85.000000 60.604500 85.073300 23.671200
+86.000000 63.690200 85.654200 21.662000
+87.000000 65.764200 86.021900 20.308200
+88.000000 68.894400 86.544800 18.272500
+89.000000 70.989800 86.875100 16.925700
+90.000000 74.138800 87.344900 14.956100
+91.000000 76.237300 87.642400 13.706400
+92.000000 79.376000 88.067800 12.000500
+93.000000 82.494000 88.472000 10.621700
+94.000000 84.556100 88.732200 9.970200
+95.000000 87.616800 89.112500 9.525000
+96.000000 89.632000 89.361600 9.633500
+97.000000 92.610600 89.733000 10.407100
+98.000000 94.563600 89.981500 11.283800
+99.000000 97.441700 90.359000 13.021500
+100.000000 99.324800 90.615700 14.393600
diff --git a/palettes/parula.spk b/palettes/parula.spk
new file mode 100644
index 0000000..7a5c1a9
--- /dev/null
+++ b/palettes/parula.spk
@@ -0,0 +1,67 @@
+! Parula (matlab default color bar)
+! Using rgb values from http://tex.stackexchange.com/questions/232690/color-coded-plots-with-colorbar-in-pgfplots
+! Contributed by Paul Young, 31-MAY-2016
+      0.00000      20.8100      16.6300      52.9200
+      1.58730      21.1600      18.9800      57.7700
+      3.17460      21.2300      21.3800      62.7000
+      4.76190      20.8100      23.8600      67.7100
+      6.34921      19.5900      26.4500      72.7900
+      7.93651      17.0700      29.1900      77.9200
+      9.52381      12.5300      32.4200      83.0300
+      11.1111      5.91000      35.9800      86.8300
+      12.6984      1.17000      38.7500      88.2000
+      14.2857     0.600000      40.8600      88.2800
+      15.8730      1.65000      42.6600      87.8600
+      17.4603      3.29000      44.3000      87.2000
+      19.0476      4.98000      45.8600      86.4100
+      20.6349      6.29000      47.3700      85.5400
+      22.2222      7.23000      48.8700      84.6700
+      23.8095      7.79000      50.4000      83.8400
+      25.3968      7.93000      52.0000      83.1200
+      26.9841      7.49000      53.7500      82.6300
+      28.5714      6.41000      55.7000      82.4000
+      30.1587      4.88000      57.7200      82.2800
+      31.7460      3.43000      59.6600      81.9900
+      33.3333      2.65000      61.3700      81.3500
+      34.9206      2.39000      62.8700      80.3800
+      36.5079      2.31000      64.1800      79.1300
+      38.0952      2.28000      65.3500      77.6800
+      39.6825      2.67000      66.4200      76.0700
+      41.2698      3.84000      67.4300      74.3600
+      42.8571      5.90000      68.3800      72.5400
+      44.4444      8.43000      69.2800      70.6200
+      46.0317      11.3300      70.1500      68.5900
+      47.6190      14.5300      70.9800      66.4600
+      49.2063      18.0100      71.7700      64.2400
+      50.7937      21.7800      72.5000      61.9300
+      52.3810      25.8600      73.1700      59.5400
+      53.9683      30.2200      73.7600      57.1200
+      55.5556      34.8200      74.2400      54.7300
+      57.1429      39.5300      74.5900      52.4400
+      58.7302      44.2000      74.8100      50.3300
+      60.3175      48.7100      74.9100      48.4000
+      61.9048      53.0000      74.9100      46.6100
+      63.4921      57.0900      74.8500      44.9400
+      65.0794      60.9900      74.7300      43.3700
+      66.6667      64.7300      74.5600      41.8800
+      68.2540      68.3400      74.3500      40.4400
+      69.8413      71.8400      74.1100      39.0500
+      71.4286      75.2500      73.8400      37.6800
+      73.0159      78.5800      73.5600      36.3300
+      74.6032      81.8500      73.2700      34.9800
+      76.1905      85.0700      72.9900      33.6000
+      77.7778      88.2400      72.7400      32.1700
+      79.3651      91.3900      72.5800      30.6300
+      80.9524      94.5000      72.6100      28.8600
+      82.5397      97.3900      73.1400      26.6600
+      84.1270      99.3800      74.5500      24.0300
+      85.7143      99.9000      76.5300      21.6400
+      87.3016      99.5500      78.6100      19.6700
+      88.8889      98.8000      80.6600      17.9400
+      90.4762      97.8900      82.7100      16.3300
+      92.0635      96.9700      84.8100      14.7500
+      93.6508      96.2600      87.0500      13.0900
+      95.2381      95.8900      89.4900      11.3200
+      96.8254      95.9800      92.1800      9.48000
+      98.4127      96.6100      95.1400      7.55000
+      100.000      97.6300      98.3100      5.38000
\ No newline at end of file
diff --git a/palettes/rainbow3.spk b/palettes/rainbow3.spk
new file mode 100644
index 0000000..4a67184
--- /dev/null
+++ b/palettes/rainbow3.spk
@@ -0,0 +1,8 @@
+! contributed by Marco Van Hulten
+    
+    0.0   90.0   70.0  100.0
+   10.0   35.0   35.0  100.0
+   33.3    0.0   60.0   30.0
+   66.7  100.0  100.0    0.0
+   90.0  100.0    0.0    0.0
+  100.0   35.0    0.0    0.0
diff --git a/platform_specific.mk.i386-apple-darwin b/platform_specific.mk.i386-apple-darwin
deleted file mode 100644
index 95a8510..0000000
--- a/platform_specific.mk.i386-apple-darwin
+++ /dev/null
@@ -1,171 +0,0 @@
-#
-# platform_specific_includes.mk.i386-apple-darwin
-#
-# This file is included in other Makefiles and defines
-# platform specific macros
-
-	GKS_INCLUDES	= -I../../ppl/include/xgks \
-			  -I../../xgks/src/lib \
-			  -Ipplinc/xgks \
-			  -I../../xgks/port 
-
-	INCLUDES        = -I. \
-			  -I../fmt/cmn/ \
-			  -I$(NETCDF4_DIR)/include \
-			  -I$(READLINE_DIR)/include \
-			  -I../common \
-			  -I../../fmt/cmn \
-			  -I../../ppl/include \
-			  -I../../fer/common \
-			  $(GKS_INCLUDES) \
-			  -I/usr/local/include
-
-	FINCLUDES	= -I../../ppl/tmap_inc \
-			  -I../include \
-			  -I../../fmt/cmn \
-			  -I../common \
-			  -I../../ppl/include \
-			  -I../../fer/common
-
-	PLATFORM = $(shell uname -s -r) 
-
-	CC              = gcc
-	CXX		= c++
-	FC		= gfortran
-	F77		= gfortran
-
-	RANLIB          = /usr/bin/ranlib
-
-	CPP		= /usr/bin/cpp
-
-	CPP_FLAGS       = $(INCLUDES) \
-			  -fPIC \
-			  -Dunix \
-			  -Dgfortran \
-			  -DNO_OPEN_SHARED \
-			  -DNO_OPEN_RECORDTYPE \
-			  -DNO_SNGL \
-			  -DX_REFRESH \
-			  -Dreclen_in_bytes \
-			  -DNO_OPEN_READONLY \
-			  -DMANDATORY_FORMAT_WIDTHS \
-			  -DNO_OPEN_CARRIAGECONTROL \
-			  -Dxgks \
-			  -DSTAR_1_SUPPORTED \
-			  -DFULL_GUI_VERSION \
-			  -DX_REFRESH \
-			  -DXT_CODE \
-			  -DDARWIN  \
-			  -DMAC_SSIZE \
-			  -DLINUX \
-			  -DNO_PASSED_CONCAT \
-			  -Dcrptd_cat_argument \
-			  -DG77_SIGNAL \
-			  -DG77 \
-			  -DNEED_IAND \
-			  -DNO_PREPEND_STRING \
-			  -DNO_DOUBLE_ESCAPE_SLASH \
-			  -Ddouble_p/
-
-# -DusingDODSf2cUnderscore needed if using netcdf library...
-# also consider -ffloat-store.
-	CFLAGS	= \
-			  $(CPP_FLAGS) \
-			  -Dlint \
-			  -D_SSIZE_T \
-			  -DVOID_SIGHANDLER \
-			  -D_POSIX_VERSION \
-			  -DLINUX \
-			  -DFULL_GUI_VERSION \
-			  -DX_REFRESH \
-			  -DXT_CODE \
-			  -Dsun4 
-
-	FFLAGS = $(CPP_FLAGS) \
-			  -fno-automatic \
-			  -fno-second-underscore \
-			  -fdollar-ok \
-			  -ffixed-line-length-132 \
-			  -ffpe-trap=overflow $(FINCLUDES) \
-			  -fdefault-real-8 \
-			  -fdefault-double-8
-
-	PPLUS_FFLAGS = \
-			  $(CPP_FLAGS) \
-			  -fno-automatic \
-			  -fno-second-underscore \
-			  -fdollar-ok \
-			  -ffixed-line-length-132 \
-			  $(FINCLUDES)
-
-
-	# Below this line are macro definitions used only for the final linking of the executable
-	# specify gfortran library. With gfortran 4.4, ssee notews in the i386-linux platform
-	# flags file.
-
-	LD		= gcc
-	LDFLAGS		= \
-			  -v \
-			  --verbose \
-			  -fPIC
-
-	SYSLIB		= \
-			  -L/usr/X11R6/lib -lX11 \
-			  /usr/local/gfortran/lib/libgfortran.a \
-			  -lcurl \
-			  -ldl \
-			  -L$(LIBZ_DIR)/lib -lz \
-			  -lm
-
-# -static-libgfortran can be used with gfortran 4.4 but not 4.1
-# /usr/lib/gcc/x86_64-redhat-linux/4.1.2/libgfortran.a
-
-	TMLIB		= ../lib/tmap_lib.a
-
-	GKSLIB		= ../xgks/src/lib/libxgks.a
-
-# For netCDF4 using new hdf5 and new zlib
-
-	CDFLIB		= \
-			  $(NETCDF4_DIR)/lib/libnetcdff.a \
-			  $(NETCDF4_DIR)/lib/libnetcdf.a \
-			  $(HDF5_DIR)/lib/libhdf5_hl.a \
-			  $(HDF5_DIR)/lib/libhdf5.a \
-			  -L$(LIBZ_DIR)/lib/ -lz
-
-	LINUX_OBJS	= \
-			  special/linux_routines.o \
-			  dat/*.o \
-			  ../fmt/src/x*.o \
-			  ../ppl/plot/ppldata.o
-
-# Use the home-built libncurses.so to build so
-# libtinfo.so is not a requirement from RHEL6
-# builds.
-# (But use the system ncurses.so.5 for running.)
-
-	TERMCAPLIB	= -L/usr/lib -lncurses
-
-	READLINELIB	= -L$(READLINE_DIR)/lib -lreadline 
-#			  $(READLINE_DIR)/lib/libhistory.a
-
-# cancel the default rule for .f -> .o to prevent objects from being built
-# from .f files that are out-of-date with respect to their corresponding .F file
-# %.o : %__.f
-
-# use cpp to preprocess the .F files to .f files and then compile the .f files
-# rename to __.f because removing .f also removes .F
-#%.o : %.F
-#	rm -f $*__.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*__.f
-#	$(F77) $(FFLAGS) -c $*__.f; mv $*__.o $*.o	 
-
-# Directly compile the .F source files to the .o object files
-# since gfortran can handle the C compiler directives in Fortran coe
-%.o : %.F
-	$(FC) $(FFLAGS) -c $*.F -o $*.o
-
-
-#
-# End of platform_specific_includes.mk.i386-apple-darwin
-#
diff --git a/platform_specific.mk.i386-linux b/platform_specific.mk.i386-linux
index ebfa267..69e80df 100644
--- a/platform_specific.mk.i386-linux
+++ b/platform_specific.mk.i386-linux
@@ -15,7 +15,7 @@
 #
 ifeq ($(strip $(CAIRO_DIR)),)
 	CAIRO_LIBDIR	=
-#	This is only for code in Pango that did use the proper cairo extension
+#	This include is only for code in Pango that did use the proper cairo include
 	CAIRO_INCLUDE	= -I/usr/include/cairo
 else
 	CAIRO_LIBDIR	= $(CAIRO_DIR)/lib
@@ -83,35 +83,20 @@ endif
 			  -DX_REFRESH \
 			  -DXT_CODE
 
-	CPP		= $(shell which cpp)
 	CC		= $(shell which gcc)
 	FC		= $(shell which gfortran)
 	F77		= $(shell which gfortran)
+	AR		= $(shell which ar)
+	ARFLAGS		= -cr
 	RANLIB		= $(shell which ranlib)
 
-	CPP_FLAGS	= $(MYINCLUDES) $(MYDEFINES) -m32 -fPIC -Dlint -D_SSIZE_T -D_POSIX_VERSION -Dsun4
-	CFLAGS		= $(MYINCLUDES) $(MYDEFINES) -m32 -fPIC -Dlint -D_SSIZE_T -D_POSIX_VERSION -Dsun4
+	CFLAGS		= $(MYINCLUDES) $(MYDEFINES) -m32 -fPIC
 	FFLAGS		= $(MYINCLUDES) $(MYDEFINES) -m32 -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash \
 			  -fimplicit-none -fdefault-real-8 -fdefault-double-8
 	PPLUS_FFLAGS	= $(MYINCLUDES) $(MYDEFINES) -m32 -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash
 
-# LD and LD_DYN_FLAGS only used for generating ferret_ef_mem_subsc.so
-	LD		= $(shell which gfortran)
-	LD_DYN_FLAGS	= -m32 -fPIC -shared -rdynamic -Xlinker --no-undefined \
-			  -L$(DIR_PREFIX)/pyferret_install/lib/$(PYTHON_EXE)/site-packages/pyferret
-
-## cancel the default rule for .f -> .o to prevent objects from being built
-## from .f files that are out-of-date with respect to their corresponding .F file
-#%.o : %.f
-#
-## use cpp to preprocess the .F files to .f files and then compile the .f files
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(FFLAGS) -c $*.f
-
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/platform_specific.mk.i386-linux-gnu b/platform_specific.mk.i386-linux-gnu
index 97bd2b4..f4aab27 100644
--- a/platform_specific.mk.i386-linux-gnu
+++ b/platform_specific.mk.i386-linux-gnu
@@ -1,5 +1,5 @@
 #
-# platform_specific.mk.i386-linux
+# platform_specific.mk.i386-linux-gnu
 #
 # This file is included in Makefiles under the
 # fer, fmt, and ppl directories and defines platform specific macros
@@ -15,7 +15,7 @@
 #
 ifeq ($(strip $(CAIRO_DIR)),)
 	CAIRO_LIBDIR	=
-#	This is only for code in Pango that did use the proper cairo extension
+#	This include is only for code in Pango that did use the proper cairo include
 	CAIRO_INCLUDE	= -I/usr/include/cairo
 else
 	CAIRO_LIBDIR	= $(CAIRO_DIR)/lib
@@ -83,35 +83,20 @@ endif
 			  -DX_REFRESH \
 			  -DXT_CODE
 
-	CPP		= $(shell which cpp)
 	CC		= $(shell which gcc)
 	FC		= $(shell which gfortran)
 	F77		= $(shell which gfortran)
+	AR		= $(shell which ar)
+	ARFLAGS		= -cr
 	RANLIB		= $(shell which ranlib)
 
-	CPP_FLAGS	= $(MYINCLUDES) $(MYDEFINES) -m32 -fPIC -Dlint -D_SSIZE_T -D_POSIX_VERSION -Dsun4
-	CFLAGS		= $(MYINCLUDES) $(MYDEFINES) -m32 -fPIC -Dlint -D_SSIZE_T -D_POSIX_VERSION -Dsun4
+	CFLAGS		= $(MYINCLUDES) $(MYDEFINES) -m32 -fPIC
 	FFLAGS		= $(MYINCLUDES) $(MYDEFINES) -m32 -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash \
 			  -fimplicit-none -fdefault-real-8 -fdefault-double-8
 	PPLUS_FFLAGS	= $(MYINCLUDES) $(MYDEFINES) -m32 -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash
 
-# LD and LD_DYN_FLAGS only used for generating ferret_ef_mem_subsc.so
-	LD		= $(shell which gfortran)
-	LD_DYN_FLAGS	= -m32 -fPIC -shared -rdynamic -Xlinker --no-undefined \
-			  -L$(DIR_PREFIX)/pyferret_install/lib/$(PYTHON_EXE)/site-packages/pyferret
-
-## cancel the default rule for .f -> .o to prevent objects from being built
-## from .f files that are out-of-date with respect to their corresponding .F file
-#%.o : %.f
-#
-## use cpp to preprocess the .F files to .f files and then compile the .f files
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(FFLAGS) -c $*.f
-
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/platform_specific.mk.intel-mac b/platform_specific.mk.intel-mac
index e1682e9..dd8c400 100644
--- a/platform_specific.mk.intel-mac
+++ b/platform_specific.mk.intel-mac
@@ -10,9 +10,33 @@
 # which should have been included prior to this include.
 #
 
-	CAIRO_LIBDIR =
-	PIXMAN_LIBDIR =
+#
+# Directories for the libraries.  
+#
+ifeq ($(strip $(CAIRO_DIR)),)
+	CAIRO_LIBDIR	=
+#	This include is only for code in Pango that did use the proper cairo include
+	CAIRO_INCLUDE	= -I/usr/include/cairo
+else
+	CAIRO_LIBDIR	= $(CAIRO_DIR)/lib
+#	The second include is only for code in Pango that did use the proper cairo include
+	CAIRO_INCLUDE	= -I$(CAIRO_DIR)/include -I$(CAIRO_DIR)/include/cairo
+endif
+
+ifeq ($(strip $(PIXMAN_DIR)),)
+	PIXMAN_LIBDIR	=
+	PIXMAN_INCLUDE	= 
+else
+	PIXMAN_LIBDIR	= $(PIXMAN_DIR)/lib
+	PIXMAN_INCLUDE	= -I$(PIXMAN_DIR)/include
+endif
+
+ifeq ($(strip $(HDF5_DIR)),)
 	HDF5_LIBDIR	=
+else
+	HDF5_LIBDIR	= $(HDF5_DIR)/lib
+endif
+
 	NETCDF4_LIBDIR	= $(NETCDF4_DIR)/lib
 
 #
@@ -22,12 +46,14 @@
 			  -I$(DIR_PREFIX)/fer/common \
 			  -I$(DIR_PREFIX)/fer/grdel \
 			  -I$(DIR_PREFIX)/fer/cferbind \
+			  -I$(DIR_PREFIX)/fer/ccr \
 			  -I$(DIR_PREFIX)/fmt/cmn \
 			  -I$(DIR_PREFIX)/ppl/include \
 			  -I$(DIR_PREFIX)/ppl/tmap_inc \
 			  -I$(DIR_PREFIX)/pyfermod \
 			  -I$(DIR_PREFIX)/external_functions/ef_utility \
-			  -I/usr/local/include/cairo \
+			  $(CAIRO_INCLUDE) \
+			  $(PIXMAN_INCLUDE) \
 			  -I/usr/local/include/pango-1.0 \
 			  -I/usr/local/include/glib-2.0 \
 			  -I/usr/local/lib/glib-2.0/include \
@@ -57,34 +83,20 @@
 			  -DX_REFRESH \
 			  -DXT_CODE
 
-	CPP		= $(shell which cpp)
-	CC		= $(shell which gcc)
-	FC		= $(shell which gfortran)
-	F77		= $(shell which gfortran)
+	CC		= $(shell which gcc-6)
+	FC		= $(shell which gfortran-6)
+	F77		= $(shell which gfortran-6)
+	AR		= $(shell which ar)
+	ARFLAGS		= -cr
 	RANLIB		= $(shell which ranlib)
 
-	CPP_FLAGS	= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC
-	CFLAGS		= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC
-	FFLAGS		= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC -fno-automatic -fdollar-ok \
+	CFLAGS		= $(MYINCLUDES) $(MYDEFINES) -fPIC
+	FFLAGS		= $(MYINCLUDES) $(MYDEFINES) -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash \
 			  -fimplicit-none -fdefault-real-8 -fdefault-double-8
-	PPLUS_FFLAGS	= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC -fno-automatic -fdollar-ok \
+	PPLUS_FFLAGS	= $(MYINCLUDES) $(MYDEFINES) -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash
 
-# LD and LD_DYN_FLAGS only used for generating ferret_ef_mem_subsc.so
-	LD		= echo
-	LD_DYN_FLAGS	= 
-
-## cancel the default rule for .f -> .o to prevent objects from being built
-## from .f files that are out-of-date with respect to their corresponding .F file
-#%.o : %.f
-#
-## use cpp to preprocess the .F files to .f files and then compile the .f files
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(FFLAGS) -c $*.f
-
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/platform_specific.mk.x86_64-linux b/platform_specific.mk.x86_64-linux
index d1ddca9..d2b638d 100644
--- a/platform_specific.mk.x86_64-linux
+++ b/platform_specific.mk.x86_64-linux
@@ -16,7 +16,7 @@
 #
 ifeq ($(strip $(CAIRO_DIR)),)
 	CAIRO_LIBDIR	=
-#	This is only for code in Pango that did use the proper cairo extension
+#	This include is only for code in Pango that did use the proper cairo include
 	CAIRO_INCLUDE	= -I/usr/include/cairo
 else
 #	CAIRO_LIBDIR	= $(CAIRO_DIR)/lib
@@ -88,36 +88,20 @@ endif
 			  -DX_REFRESH \
 			  -DXT_CODE
 
-	CPP		= $(shell which cpp)
 	CC		= $(shell which gcc)
 	FC		= $(shell which gfortran)
 	F77		= $(shell which gfortran)
+	AR		= $(shell which ar)
+	ARFLAGS		= -cr
 	RANLIB		= $(shell which ranlib)
 
-	CPP_FLAGS	= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC -Dlint -D_SSIZE_T -D_POSIX_VERSION -Dsun4
-	CFLAGS		= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC -Dlint -D_SSIZE_T -D_POSIX_VERSION -Dsun4
+	CFLAGS		= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC
 	FFLAGS		= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash \
 			  -fimplicit-none -fdefault-real-8 -fdefault-double-8
 	PPLUS_FFLAGS	= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash
 
-# LD and LD_DYN_FLAGS only used for generating ferret_ef_mem_subsc.so
-	LD		= $(shell which gfortran)
-	LD_DYN_FLAGS	= -m64 -fPIC -shared -rdynamic -Xlinker --no-undefined \
-			  -L$(DIR_PREFIX)/pyferret_install/lib64/$(PYTHON_EXE)/site-packages/pyferret \
-			  -L$(DIR_PREFIX)/pyferret_install/lib/$(PYTHON_EXE)/site-packages/pyferret
-
-## cancel the default rule for .f -> .o to prevent objects from being built
-## from .f files that are out-of-date with respect to their corresponding .F file
-#%.o : %.f
-#
-## use cpp to preprocess the .F files to .f files and then compile the .f files
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(FFLAGS) -c $*.f
-
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/platform_specific.mk.x86_64-linux-gnu b/platform_specific.mk.x86_64-linux-gnu
index c4a3e7f..db2c720 100644
--- a/platform_specific.mk.x86_64-linux-gnu
+++ b/platform_specific.mk.x86_64-linux-gnu
@@ -1,5 +1,5 @@
 #
-# platform_specific.mk.x86_64-linux
+# platform_specific.mk.x86_64-linux-gnu
 #
 # This file is included in Makefiles under the
 # fer, fmt, and ppl directories and defines platform specific macros
@@ -11,12 +11,12 @@
 #
 
 #
-# Directories for the libraries.  Convention has the 64-bit libraries
-# in a .../lib64 directory, but they may be in a .../lib directory.
+# Directories for the libraries.  Some of the 64-bit libraries may be
+# in a .../lib64 directory instead of a .../lib directory.
 #
 ifeq ($(strip $(CAIRO_DIR)),)
 	CAIRO_LIBDIR	=
-#	This is only for code in Pango that did use the proper cairo extension
+#	This include is only for code in Pango that did use the proper cairo include
 	CAIRO_INCLUDE	= -I/usr/include/cairo
 else
 	CAIRO_LIBDIR	= $(CAIRO_DIR)/lib
@@ -88,41 +88,25 @@ endif
 			  -DX_REFRESH \
 			  -DXT_CODE
 
-	CPP		= $(shell which cpp)
 	CC		= $(shell which gcc)
 	FC		= $(shell which gfortran)
 	F77		= $(shell which gfortran)
+	AR		= $(shell which ar)
+	ARFLAGS		= -cr
 	RANLIB		= $(shell which ranlib)
 
-	CPP_FLAGS	= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC -Dlint -D_SSIZE_T -D_POSIX_VERSION -Dsun4
-	CFLAGS		= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC -Dlint -D_SSIZE_T -D_POSIX_VERSION -Dsun4
+	CFLAGS		= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC
 	FFLAGS		= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash \
 			  -fimplicit-none -fdefault-real-8 -fdefault-double-8
 	PPLUS_FFLAGS	= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash
 
-# LD and LD_DYN_FLAGS only used for generating ferret_ef_mem_subsc.so
-	LD		= $(shell which gfortran)
-	LD_DYN_FLAGS	= -m64 -fPIC -shared -rdynamic -Xlinker --no-undefined \
-			  -L$(DIR_PREFIX)/pyferret_install/lib64/$(PYTHON_EXE)/site-packages/pyferret \
-			  -L$(DIR_PREFIX)/pyferret_install/lib/$(PYTHON_EXE)/site-packages/pyferret
-
-## cancel the default rule for .f -> .o to prevent objects from being built
-## from .f files that are out-of-date with respect to their corresponding .F file
-#%.o : %.f
-#
-## use cpp to preprocess the .F files to .f files and then compile the .f files
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(FFLAGS) -c $*.f
-
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
 	$(FC) $(FFLAGS) -c $*.F -o $*.o
 
 #
-# End of platform_specific.mk.x86_64-linux
+# End of platform_specific.mk.x86_64-linux-gnu
 #
diff --git a/ppl/Makefile b/ppl/Makefile
index 04f5a3f..634de60 100644
--- a/ppl/Makefile
+++ b/ppl/Makefile
@@ -10,12 +10,6 @@ DIRS	= tmapadds complot ourlib plot \
 	  plotlib pplepic pplusr symlib
 
 # change the standard rules for .F -> .o builds so $(PPLUS_FFLAGS) is used
-
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(PPLUS_FFLAGS) -c $*.f	 
-
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/ppl/complot/Makefile b/ppl/complot/Makefile
index 5817849..b961bf7 100644
--- a/ppl/complot/Makefile
+++ b/ppl/complot/Makefile
@@ -19,12 +19,6 @@ include ./LIB_NAME
 OBJS = $(SRCS_C:.c=.o) $(SRCS_F:.F=.o)
 
 # change the standard rules for .F -> .o builds so $(PPLUS_FFLAGS) is used
-
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(PPLUS_FFLAGS) -c $*.f	 
-
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/ppl/include/AXIS.INC b/ppl/include/AXIS.INC
index b4f75e5..fb9d5f2 100644
--- a/ppl/include/AXIS.INC
+++ b/ppl/include/AXIS.INC
@@ -17,6 +17,9 @@ c V600 *acm* 2/06 add PPL XFOR('DMS') or 'DM' sets axis format deg/min/sec or de
 c                 add xvaloff, yvaloff (see comments below)
 C      *kms* 7/10 changed name of common block from AXIS to AXISCMN 
 C                 to remove clash with AXIS function
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 c
 	COMMON/AXISCMN/ XLO,XHI,XTIC,XLEN,XCSIZE, 
      *	IAUTOX,ITYPEX,NMTCX,LINTX,LABELX,NSIGX,NTICX,XORG,XVALOFF,
@@ -24,7 +27,7 @@ c
      *	IAUTOY,ITYPEY,NMTCY,LINTY,LABELY,NSIGY,NTICY,YORG,YVALOFF,
      *	IAXON(4),IAXSET, HGRAT(4,2), VGRAT(4,2), HLINE, VLINE, 
      *	SHRINKY, MOD_VS_X, MOD_VS_Y, HCOLOR(2), 
-     *  VCOLOR(2),XDMS,YDMS
+     *  VCOLOR(2),XDMS,YDMS,XDSPAC,YDSPAC
 c
 c**	x axis variables
 c
@@ -92,5 +95,7 @@ c       MOD_VS_Y        have units of longitude.
 c       XDMS           = 0 for degrees in decimal deg.frac
 c                      = 1 for Degrees and minutes 
 c       YDMS           same as xdms, for vertical axis
+c       XDSPAC	        if 1, add a space between
+c       YDSPAC           the degree sign and EW or NS on longitude/latitude axes
 c
 c*******************************************************************
diff --git a/ppl/include/CONT.INC b/ppl/include/CONT.INC
index 371fc41..bd1b540 100644
--- a/ppl/include/CONT.INC
+++ b/ppl/include/CONT.INC
@@ -21,7 +21,7 @@ C**
 
 	COMMON/CONT/ZLEV(ICNLEV),LDIG(ICNLEV),LWGT(ICNLEV),LCLR(ICNLEV),
      *	NLEV,NLEV_DFLT,HGT,LEV_STD,LEV_MEAN,LEV_MIN,LEV_MAX,LEV_HIST,
-     *  NARC,IAUTOC,NLEV2,NSIGC,CANGLE,IVCOMP,
+     *  NARC,IAUTOC,NLEV2,NSIGC,INISIG,NEWSIG,CANGLE,IVCOMP,
      *  CONTOUR_FEWER,CENTERED,SET_DELTA,DELTA,NEGINF,POSINF,CONT_KEY,
      *  OPENLEV,SET_STD,SET_MEAN,SET_MIN,SET_MAX,NEED_DATA_SCAN,USE_HIST,
      *  LEV_STR,INTLEV
@@ -43,6 +43,8 @@ c	iautoc	=0  use supplied levels
 c		=1  compute levels from input data and nlev
 c	nlev2	actual number of levels to use 
 c	nsigc	number of significant digits for labels if iautoc=1
+c	inisig	default number of significant digits for contour labels
+c	newsig	flag that the number of sig digs is changed with CONSET
 c	cangle	angle to rotate the contour plot about its center.
 c	ivcomp	vector component to contour or surf
 c
diff --git a/ppl/include/LINES.INC b/ppl/include/LINES.INC
index 535d083..01b64b1 100644
--- a/ppl/include/LINES.INC
+++ b/ppl/include/LINES.INC
@@ -17,13 +17,14 @@ c
 * V696 *acm*  6/15 Move ribbon_fast setting here.
 * v696 *acm*	gap_var to define seperate line segments on PLOT/VS plots
 *                  (LAS ticket 1597 and others)
+* V698  4/16 *acm* New PLOT/NTH=
 
 
 
 	COMMON/LINES/ IMARK(NLINES),HMARK(NLINES),ITYPE(NLINES),
      *	XOFF(0:NLINES),YOFF(0:NLINES),XFCT(0:NLINES),YFCT(0:NLINES),
      *	DN1(NLINES),UP1(NLINES),DN2(NLINES),UP2(NLINES),
-     *	LLENG(NPOLYGON),LNUM,IWIND,gap_var,ribbon_fast
+     *	LLENG(NPOLYGON),LNUM,IWIND,gap_var,nskpsym(NLINES),ribbon_fast
 c
 c	xoff(0), yoff(0), etc are the offsets for the contour and view
 c	plots.
diff --git a/ppl/include/TAXIS.INC b/ppl/include/TAXIS.INC
index 151ded4..a7be22f 100644
--- a/ppl/include/TAXIS.INC
+++ b/ppl/include/TAXIS.INC
@@ -13,8 +13,10 @@ C**
 C**
 * V694  *acm*  1/15 Changes to allow two time axes on plot (F-T)
 * V695  *acm*  9/15 Changes for hour:min labeling on time axes
-c
-	COMMON/TXSCOM/ TLO,DT,TCSIZE,ITYPET, 
+* V697  *acm*  1/16 Ticket 2344: if there was a time-plot underlay, use 
+*                   its delta-t for time overlay plots, and clear in disp_init
+
+	COMMON/TXSCOM/ TLO,DT,DT_SAVE,TCSIZE,ITYPET, 
      *	NMTCT,LABELT,IFDB,ISDB,ITFLG,VANG,IVFLG,IAUTOT,
      *	ITXTPE,ITXLBP,TLOb,DTb,TCSIZEb,ITYPETb, 
      *	NMTCTb,LABELTb,IFDBb,ISDBb,ITFLGb,VANGb,IVFLGb,IAUTOTb,
@@ -22,6 +24,7 @@ c
 c
 c	tlo	x value corresponding to the start time (index number)
 c	dt	sampling rate in minutes (minutes)
+c	dt_save	sampling rate in minutes (minutes) from the current underlay plot
 c	tcsize	character height for time axis labels (inches)
 c	itypet	=0 use taxis0  hours/days
 c		=1 use taxis1  days/months
diff --git a/ppl/ourlib/Makefile b/ppl/ourlib/Makefile
index 11a1564..ac0a2b2 100644
--- a/ppl/ourlib/Makefile
+++ b/ppl/ourlib/Makefile
@@ -19,12 +19,6 @@ include ./LIB_NAME
 OBJS = $(SRCS_C:.c=.o) $(SRCS_F:.F=.o)
 
 # change the standard rules for .F -> .o builds so $(PPLUS_FFLAGS) is used
-
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(PPLUS_FFLAGS) -c $*.f	 
-
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/ppl/plot/Makefile b/ppl/plot/Makefile
index 5817849..b961bf7 100644
--- a/ppl/plot/Makefile
+++ b/ppl/plot/Makefile
@@ -19,12 +19,6 @@ include ./LIB_NAME
 OBJS = $(SRCS_C:.c=.o) $(SRCS_F:.F=.o)
 
 # change the standard rules for .F -> .o builds so $(PPLUS_FFLAGS) is used
-
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(PPLUS_FFLAGS) -c $*.f	 
-
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/ppl/plot/daxis.F b/ppl/plot/daxis.F
index 2102de7..fa42d8f 100644
--- a/ppl/plot/daxis.F
+++ b/ppl/plot/daxis.F
@@ -66,6 +66,9 @@ C              finished. For polygon plots only, draw the main label twice.
 * V695 *acm*   4/15 (PyFerret) labels along axes will be drawn with the 
 *              tic-mark text style
 * V695 *acm*   5/15 Ticket 2279: Draw axis lines, tics and labels only once.
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 
 
 C**
@@ -150,7 +153,7 @@ C
             hline = .FALSE.
 	  ELSE IF(ITYPEY.EQ.1)THEN
 	   CALL YAXIS1(XLO,XF,YLO,YHI,YTIC,NMY,LINTY,1.,LYL,IFY,YF,
-     *	    YCSIZE,XHI,YDMS,HGRAT, HCOLOR, HLINE, YVALOFF, NOYLAB, 
+     *	    YCSIZE,XHI,YDMS,YDSPAC,HGRAT, HCOLOR, HLINE, YVALOFF, NOYLAB, 
      *	    SHRINKY, IPEN(0))
             hline = .FALSE.
 	  ELSE
@@ -170,7 +173,7 @@ C
            hline = .FALSE.
 	ELSE IF(ITYPEY.EQ.1)THEN
 	    CALL YAXIS1(XHI,XF,YLO,YHI,YTIC,NMY,LINTY,1.,LYR,IFY,YF,
-     *     YCSIZE,XLO,YDMS,HGRAT, HCOLOR, HLINE, YVALOFF, NOYLAB,
+     *     YCSIZE,XLO,YDMS,YDSPAC,HGRAT, HCOLOR, HLINE, YVALOFF, NOYLAB,
      *	    SHRINKY, IPEN(0))
            hline = .FALSE.
 	ELSE
@@ -198,7 +201,7 @@ C
               vline = .FALSE.
           ELSE IF (ITYPEX.EQ.1)THEN
 	      CALL XAXIS1(XLO,XHI,XTIC,NMX,LINTX,1.,LXT,IFX,XF,YHI,YF,
-     *	       XCSIZE,YLO,XDMS,VGRAT, VCOLOR, VLINE, XVALOFF, IPEN(0))
+     *	       XCSIZE,YLO,XDMS,XDSPAC,VGRAT,VCOLOR,VLINE,XVALOFF,IPEN(0))
               vline = .FALSE.
           ELSE
 	      CALL XAXIS2(XLO,XHI,0.,LXT,IFX,1,XF,YHI,YF,XCSIZE,
@@ -215,7 +218,7 @@ C
               vline = .FALSE.
           ELSE IF (ITYPEX.EQ.1) THEN
 	      CALL XAXIS1(XLO,XHI,XTIC,NMX,LINTX,1.,LXB,IFX,XF,YLO,YF,
-     *	      XCSIZE,YHI,XDMS,VGRAT, VCOLOR, VLINE, XVALOFF, IPEN(0))
+     *	      XCSIZE,YHI,XDMS,XDSPAC,VGRAT, VCOLOR, VLINE, XVALOFF, IPEN(0))
               vline = .FALSE.
           ELSE
 	      CALL XAXIS2(XLO,XHI,0.,LXB,IFX,1,XF,YLO,YF,XCSIZE,
diff --git a/ppl/plot/labdrw.F b/ppl/plot/labdrw.F
index 8d07b67..d667961 100644
--- a/ppl/plot/labdrw.F
+++ b/ppl/plot/labdrw.F
@@ -50,6 +50,9 @@ C *acm* v552 3/03 Longer strings and changes for multi-line labels.
 * V69+  5/14 *acm* Fix for ascii font in multi-line labels, ticket 2176
 * V694  *acm*  1/15 Changes to allow two time axes on plot (F-T)
 C V695  *acm*  5/15 Simplify: do not go through the motions of plotting blank labels
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 
 	INCLUDE 'PARAMPL5.DAT'
 	INCLUDE 'AXIS.INC'
@@ -89,9 +92,12 @@ C  Y label. center each line
 	IF (pyfont .AND. pyf_set(ivlab)) igroup = ivlab
         CALL tm_break_lines (ylab, lnbeg, lnend, numlines)
 
+* Adjust x position for multi-line label or when making
+* extra space between the degree-sign and N/S or E/W
         IF(LABELY.LT.0.)THEN 
-        XL=XLO-(YWID+HYLAB)/XF
+           XL=XLO-(YWID+HYLAB)/XF
            xl = xl - (numlines-1)*hylab/xf
+	   IF (ydspac .GT. 0) xl = xl - 0.5*ydspac*hylab/xf
         ELSE
            XL=XHI+(YWID+2.*HYLAB)/XF
         ENDIF
diff --git a/ppl/plot/lev.F b/ppl/plot/lev.F
index d9e627a..194fa1d 100644
--- a/ppl/plot/lev.F
+++ b/ppl/plot/lev.F
@@ -76,7 +76,7 @@ C**
 * v686 *acm* 2/14 Fix ticket 2124: Do the above fix only in the subroutine KEY.
 * v692 *acm* 7/14 For centered key labels add a level to corresp to the upper bound
 *                 of the top color on thecolorbar, excluding the inf triangle.
-
+* V697 *acm* 12/15 Fix ticket 2326: single level plus (inf) and/or (-inf)
 
 	parameter	(epsilon = 1e-6)
 
@@ -85,6 +85,15 @@ C**
         INTEGER ntop
         LOGICAL   TM_FPEQ_SNGL
 
+C Initialize
+
+	DO i = 1, ICNLEV
+	   ZLEV(i) = 0
+	   LDIG(i) = 0
+	   LWGT(i) = 0
+	   LCLR(i) = 0
+	ENDDO
+
 	IF(LABEL.EQ.' ')THEN
 	    NLEV=NLEV_DFLT
 	    IAUTOC=1
diff --git a/ppl/plot/plotxy.F b/ppl/plot/plotxy.F
index c00373a..f2642d5 100644
--- a/ppl/plot/plotxy.F
+++ b/ppl/plot/plotxy.F
@@ -65,6 +65,7 @@ C
 * v696 *acm*   6/15 PLOT/VS/GAPLOC to define seperate line segments on	
 *                   PLOT/VS plots (LAS ticket 1597 and others)
 * v696 *acm*   6/15 Reverting. Implement /GAPLOC only for ribbon plots.	
+* V698  4/16 *acm* New PLOT/SKIP=
 
         include         'xinterrupt.cmn' ! 1/89 *sh*
         include         'ppl_in_ferret.cmn'
@@ -100,8 +101,9 @@ C
 
         REAL	xadd, xaddlast, datx, daty
 
+	LOGICAL md
 	INTEGER xpolybase, ypolybase, zpolybase, polysizemax, nl,
-     .		nvertex, fill_ndx
+     .		nvertex, fill_ndx, nskp, idec
 
 	INTEGER klast, mdot
 	REAL	xtlast, ytlast
@@ -170,6 +172,9 @@ C
 	  CALL MARKH(HMARK(I))
 	  CALL COLOR(IPEN(I))
 
+C set decimation for symbols
+	  nskp = MAX(1,nskpsym(i))
+
 C     SET PLOT MODE
 	  IF(IPV.EQ.1)THEN
 C     DRAW VECTORS
@@ -265,12 +270,13 @@ C     CHECK POINTS FOR OUT OF RANGE   (CM)
 
 	        CALL TRANS(I,datx,daty,XT,YT)
 	        CALL PLOT(XT,YT,0,0)
-	        IF(ITYPE(I).NE.0.AND.ITYPE(I).NE.4)CALL MARK(IMARK(I))
- 	        IM=0
-	        IF(ITYPE(I).EQ.1.OR.ITYPE(I).EQ.3)IM=IMARK(I)
+	        IF(ITYPE(I).NE.0.AND.ITYPE(I).NE.4) CALL MARK(IMARK(I))
+		IM=0
+	        IF(ITYPE(I).EQ.1.OR.ITYPE(I).EQ.3) IM=IMARK(I)
 	        GOTO 71
 70	      CONTINUE
 71	      IDN=1
+	      idec = 0
 * ... plot remaining points
 	      DO 72 K=J+1,IBASE+LLENG(I)
 		IF((XLE.AND.X(K).LE.CMXLE).OR.
@@ -326,7 +332,9 @@ C     CHECK POINTS FOR OUT OF RANGE   (CM)
 		  CALL PLOT(XT,YT,IDN,0)
 
 		  if (interrupted) goto 51 ! *jd* 8.3.92
-	          CALL MARK(IM)
+	          idec = idec + 1
+	          md = MOD(idec,nskp) .EQ. 0
+	          IF (md) CALL MARK(IM)
 	          IF(IDN.EQ.0)THEN
 		    xtlast = xt
 		    ytlast = yt
diff --git a/ppl/plot/plotxy_ribbon.F b/ppl/plot/plotxy_ribbon.F
index b23b268..a5780a3 100644
--- a/ppl/plot/plotxy_ribbon.F
+++ b/ppl/plot/plotxy_ribbon.F
@@ -69,7 +69,7 @@ C
 * V6.94+ *acm* 3/15 Ticket 2247: singleton points in line plots marked with a dot
 * v696 *acm*   6/15 PLOT/VS/RIBBON/GAPLOC to define seperate line segments on
 *                   color PLOT/VS plots (LAS ticket 1597 and others)
-
+* V698  4/16 *acm* New PLOT/NTH=
 
         include         'xinterrupt.cmn' ! 1/89 *sh*
         include         'ppl_in_ferret.cmn'
@@ -109,10 +109,10 @@ C
 	REAL datum, xlast, ylast, frac, dx, dy, xi, yi, xhalf, yhalf
 	INTEGER xpolybase, ypolybase, zpolybase, polysizemax, nl,
      .		nvertex, low_index, colr_ndx, last_colr_ndx, ncolors, 
-     .		line_ndx, thick_offset, nseg, iseg, indx, inc
+     .		line_ndx, thick_offset, nseg, iseg, indx, inc, nskp, idec
 	INTEGER GET_NDX, ibase, iline2, ilineg
 
-	logical	isbad, last_bad, bad_blank, new_branch
+	logical	isbad, last_bad, bad_blank, new_branch, md
 
         real            xadd, xaddlast, datx, daty, datxlast,datylast
         integer         ndx,type
@@ -175,6 +175,9 @@ C  Set the contour/color levels
         ILINEG=IBASE+2*LLENG(I)
         igap = 0
 
+C set decimation for symbols
+        nskp = MAX(1,nskpsym(i))
+
         CALL MARKH(HMARK(I))
 
 * IPEN contains the thickness setting.
@@ -264,6 +267,7 @@ C     CHECK POINTS FOR OUT OF RANGE   (CM)
 	        GOTO 71
 70	      CONTINUE
 71	      IDN=1
+	      idec =  0
 	      IF (last_bad .AND. bad_blank) IDN = 0
 * ... plot remaining points
 	      DO 72 K=J+1,IBASE+LLENG(I)
@@ -411,10 +415,12 @@ C     CHECK POINTS FOR OUT OF RANGE   (CM)
 		  datylast = daty
 
 		  if (interrupted) goto 51 ! *jd* 8.3.92
+		  idec = idec + 1
+		  md = MOD(idec,nskp) .EQ. 0
 		  IF (bad_blank .AND. colr_ndx.EQ.bad_ribbon_ndx) THEN
 		     nothing = 0
 		  ELSE
-	             CALL MARK(IM)
+	             IF (md) CALL MARK(IM)
 	          ENDIF
 		  CALL PLOT(XT,YT,IDN,0) 
 
diff --git a/ppl/plot/plotz.F b/ppl/plot/plotz.F
index b4a0522..a335c90 100644
--- a/ppl/plot/plotz.F
+++ b/ppl/plot/plotz.F
@@ -94,7 +94,8 @@ C
 * v68  *acm* 4/08 Allow shade, vector plots of degenerate regions - world region 
 *              within a grid cell
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
-* V6.95 *acm* 3/15 Changes for PyFerret fonts - text group settings for labels along contour lines
+* V695 *acm* 3/15 Changes for PyFerret fonts - text group settings for labels along contour lines
+* V698 *acm* 3/16  Ticket 2375: outline color key in black even on an overlay.
 
 	INCLUDE 'PARAMPL5.DAT'
 	INCLUDE 'ZGRIDD.INC'
@@ -126,8 +127,7 @@ C
         REAL      XFF, XOF, YFF, YOF, DMIN, DMAX, DZMAX
         LOGICAL   TM_FPEQ_SNGL
 
-	logical		valid
-	
+        LOGICAL valid, tmpsetcolor
 	INTEGER ier
 
 C*       *jd* Linux port 12.96 add EXTERNAL calls below
@@ -273,10 +273,15 @@ C
 
        IF (pyfont) THEN
           igroup = icont
-          IF (.NOT. pyf_set(icont)) 
-     .        CALL FGD_GQCR(IWIND, IPEN(1), ier, pyf_red(igroup), 
-     .        pyf_grn(igroup), pyf_blu(igroup), opaqfrac)
-	ENDIF
+          IF (.NOT. pyf_set(icont)) THEN
+             CALL FGD_GQPEN(IWIND, IPEN(1), ier, pyf_red(igroup), 
+     .                pyf_grn(igroup), pyf_blu(igroup), opaqfrac)
+             pyf_set(icont) = .TRUE.
+             tmpsetcolor = .TRUE.
+          ELSE
+             tmpsetcolor = .FALSE.
+          ENDIF
+       ENDIF
 
 C       Calculate the following quantities:
 C       ~FF - multiplication factors to go from axis to page coords?
@@ -355,7 +360,11 @@ c       this bombed aix compiler, though it seems to work on others
      2	 NARC,CANGLE,status)
              IF (status .NE. ferr_ok) GOTO 5002
 
+* Ticket 2375: A color fill plot needs IPEN(0), so that if there is a
+* color key it is labeled and outlined in black even on an overlay.
 	 else if (makep.eq.'FILL') then
+	    
+	    CALL COLOR(IPEN(0))
             nlev1 = nlev
             nlev = nlev2
 	    call arfill(z,xx(izlen+1),yy(izlen+1),nx,ny)
@@ -373,12 +382,13 @@ C	END VAX/VMS
 C
 	CALL COLOR(IPEN(0))
 	
-	IF (pyfont) THEN 
-	   
-*  Restore settings in pyfont common
-
-	IF (pyfont) igroup = 0
-	ENDIF
+        IF (pyfont) THEN 
+*          Restore settings in pyfont common
+           igroup = 0
+           IF ( tmpsetcolor ) THEN
+              pyf_set(icont) = .FALSE.
+           ENDIF
+        ENDIF
 
 	CALL SCALE(XF,YF,XORG,YORG,XLO,YLO)
 
@@ -392,8 +402,16 @@ C  Arrays LWGT, LDIG, and ZLEV are length ICNLEV=500
         buff2 = TM_FMT_SNGL (REAL(NLEV2), 20, 20, slen2)
         err_msg = '# of contour levels > '// buff1(1:slen1) //
      .          '  (' // buff2(1:slen2) // ')'
-        CALL errmsg (ferr_out_of_range, status, err_msg, *5002)
-
- 5002   return
+        CALL errmsg (ferr_out_of_range, status, err_msg, *5001)
+ 5001   RETURN
+
+ 5002   IF (pyfont) THEN 
+*          Restore settings in pyfont common
+           igroup = 0
+           IF ( tmpsetcolor ) THEN
+              pyf_set(icont) = .FALSE.
+           ENDIF
+        ENDIF
+        RETURN
 
 	END
diff --git a/ppl/plot/pltit.F b/ppl/plot/pltit.F
index 23d60a2..89de0ab 100644
--- a/ppl/plot/pltit.F
+++ b/ppl/plot/pltit.F
@@ -107,6 +107,9 @@
 *                   routine but does not make drawing calls.
 * V695  *acm*  6/15 Ticket 2297, scaling on overlay plots
 * V695  *acm*  9/15 Changes for hour:min labeling on time axes
+* V697 *acm*  12/15 Ticket 2334: For time roundoff on overlays, changing 
+*                   things only for the short-time-axis case.
+* V 7 *acm*   6/16 Ticket 2435: moveable labels in PyFerret when using PyFerret fonts
 
 *****************************************************
 
@@ -239,12 +242,8 @@ C	SETUP AXIS FOR ALL PLOT TYPES.
 	ELSE
 	    IF(ITFLG.NE.0)THEN
 	        ! Handle time as in setax for short-time axes
-
-	        IF (is_hours_axis .GT. 0) THEN ! Round off to the nearest minute
-		   CALL FIXTIM (ITMIN,ITMAX,IT1,IT2,4)
-		ELSE
-		   CALL FIXTIM (ITMIN,ITMAX,IT1,IT2,ITYPET) ! to the hour
-		ENDIF
+		! Round off to the nearest minute 
+	        IF (is_hours_axis .GT. 0) CALL FIXTIM (ITMIN,ITMAX,IT1,IT2,4)
 		TLO = 1. - DIFF(IT1,ITSTRT)/DT
 	        THI=TLO+DIFF(IT1,IT2)/DT
 	    ENDIF
@@ -455,12 +454,14 @@ C
 C
 C Put movable labels on
 	IF ( .NOT.interrupted ) CALL DAXIS2(XF,YF,NMX,NMY) ! 1/89 - *sh*
-	IF(ITFLG.EQ.1 .OR. ITFLG.EQ.2)THEN
-	    XHI=XTI
-	    XLO=XTL
-	ELSE IF(ITFLG.EQ.-1 .OR. ITFLG.EQ.2)THEN
-	    YHI=XTI
-	    YLO=XTL
+	IF (SOVER) THEN 
+	   IF(ITFLG.EQ.1 .OR. ITFLG.EQ.2)THEN
+	       XHI=XTI
+	       XLO=XTL
+	   ELSE IF(ITFLG.EQ.-1 .OR. ITFLG.EQ.2)THEN
+	       YHI=XTI
+	       YLO=XTL
+	   ENDIF
 	ENDIF
 *************************************
 * TMAP addition: close segment and possibly write "** INTERRUPTED **" on plot
diff --git a/ppl/plot/pplcmd_f.F b/ppl/plot/pplcmd_f.F
index bc27eb2..02ee6be 100644
--- a/ppl/plot/pplcmd_f.F
+++ b/ppl/plot/pplcmd_f.F
@@ -134,6 +134,12 @@ C              do not make small tics by default.
 *                  (LAS ticket 1597 and others)
 * V695  *acm*  9/15 Changes for hour:min labeling on time axes
 * v695 9/15 *acm* write values to PPL* symbols using 6 digits not 4
+* V697  *acm*  1/16 Ticket 2344: if there was a time-plot underlay, use its
+*                   delta-t for time overlay plots. TAXUND restores the default.
+* V698  4/16 *acm* New PLOT/NTH=
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 
 c	fromi	command file or device (/dev/tty or TT: for terminal)
 c	linei	input line for parameters
@@ -271,7 +277,9 @@ CCCCCCC data	        tmapdebug/.false./
 	LOGICAL IFLG1,IFLG2,LABON,VALOFF,TBOTH
 	DIMENSION X1(5),Y1(5),Y2(4),X3(2),IX3(5)
 	DIMENSION X4(4)
-	CHARACTER COMM(124)*7
+	INTEGER	  num_comm
+	PARAMETER(num_comm = 125)
+	CHARACTER COMM(num_comm)*7
 	EQUIVALENCE (DT,X3(1)),(ITYPET,IX3(1)),(TSMX,X4(1))
 	EQUIVALENCE (XLO,X1(1)),(YLO,Y1(1)),
      *		(HLAB1,Y2(1))
@@ -291,7 +299,7 @@ CCCCCCC data	        tmapdebug/.false./
      *  'C','BOX','RLABS','AXSET',' ','LLABS','LEV','DATPT','PLTNME',
      *  'HLABS','CONPRE','CONPST','TRANSXY','MARKH','LINFIT','DFLTFNT',
      *  'GRID','TEKNME','ECHO','VELVCT','TIME','TXTYPE','TXLSZE',
-     *  'TXLINT','TXNMTC','TXLABP','AUTOLAB','EVAR','DEBUG','RESET',
+     *  'TXLINT','TXNMTC','TXLABP','TAXUND','AUTOLAB','EVAR','DEBUG','RESET',
      *  'TITLE','VPOINT','CLSPLT','VECTOR','VECSET','VECKEY','USR',
      *  'SHADE','SHAKEY','SHASET','PIXMAP','ALINE','TMDEBUG','COLOR',
      *  'SQFILL','FILL', 'PLOTPOL', 'FILLPOL', 'PATSET','CALENDA',
@@ -407,7 +415,7 @@ C
 
 C       Changed ICOM to CHAR*7 comparison for CALENDAR command. *jd* 10.99
 	ICOM7(1:7)=ICOM(1:7)
-	DO 20 I=1,124
+	DO 20 I=1,num_comm
 	    IF(ICOM7.EQ.COMM(I))GOTO 21
 20	CONTINUE
 	IF(ICOM(1:1).EQ.'%')THEN
@@ -438,7 +446,7 @@ C       Mod below for brain dead version *JD* 8.2.91
      *	5300,5400,5500,5700,5800,5900,6000,6100,6200,6300,6400,
      *	6500,6600,6700,6800,6900,7000,7100,7200,7300,7400,7500,
      *	7600,7700,7800,7900,8000,8100,8200,8300,8400,8500,8600,
-     *	8700,8800,8900,9000,9100,9200,9300,9400,9500,9600,9700,
+     *	8700,8800,8900,9000,9100,9200,9300,9400,9500,9600,9700,9750,
      *	9800,9900,9910,9920,9930,9940,9950,9110,9120,9130,9140,
      *	9150,9160,9170,9180,9190,98,9191,9380,9171,9172,9173,
      *  9174,9175,9390,9165,9166,9183,4401,4501,9192,9960,9970,
@@ -451,7 +459,7 @@ C       Mod below for brain dead version *JD* 8.2.91
      *	5300,5400,5500,5700,5800,5900,6000,6100,6200,6300,6400,
      *	6500,6600,6700,6800,6900,7000,7100,7200,7300,7400,7500,
      *	7600,7700,7800,7900,8000,8100,8200,8300,8400,8500,8600,
-     *	8700,8800,8900,9000,9100,9200,9300,9400,9500,9600,9700,
+     *	8700,8800,8900,9000,9100,9200,9300,9400,9500,9600,9700,9750,
      *	9800,9900,9910,9920,9930,9940,9950,9110,9120,9130,9140,
      *	9150,9160,9170,9180,9190,98,9191,9380,9171,9172,9173,
      *  9174,9175,9390,9165,9166,9183,4401,4501,9192,9960,9970,
@@ -637,7 +645,11 @@ C     CLINE
 	GOTO 10
 C     CONSET
 2800	IF(IFLG1)HGT=P(1)
-	IF(IFLG2)NSIGC=IFIX(P(2))
+	NEWSIG = 0  ! set this flag only if a PPL CONSET is changing the nsig value
+	IF(IFLG2)THEN
+	   IF (IFIX(P(2)) .NE. INISIG) NEWSIG = 1
+	   NSIGC=IFIX(P(2))
+	ENDIF
 	IF(M.GE.3.AND.IFLG(3).NE.0)NARC=IFIX(P(3))
 	IF(M.GE.4.AND.IFLG(4).NE.0)DASHLN=P(4)
 	IF(M.GE.5.AND.IFLG(5).NE.0)SPACLN=P(5)
@@ -744,18 +756,25 @@ C     XFOR
       i = TM_LENSTR1(LABEL) - 1
       IF (TMPCHR(2:2) .EQ. 'D') THEN  ! degrees/mintues/seconds ?
            IF (TMPCHR(2:3) .EQ. 'DM') THEN
-              xdms = 1
+              xdms = 0
+              IF (TMPCHR(2:3) .EQ. 'DM') xdms = 1 
               IF (TMPCHR(2:4) .EQ. 'DMS') xdms = 2 
-              CALL RANGE_DM(XLO,XHI,XTIC,xmn,xmx,dd)
-c              xlo = xmn
-c              xhi = xmx
-              xtic = dd
+              IF (xdms .GT. 0) THEN
+	         CALL RANGE_DM(XLO,XHI,XTIC,xmn,xmx,dd)
+                 xtic = dd
+	      ENDIF
            ELSE ! 'DD' resets to decimal degrees
               xdms = 0
            ENDIF
            GOTO 10
         ENDIF
-        xdms = 0
+
+        IF (TMPCHR(2:4) .EQ. 'SPC') THEN  ! Space between degree-sign and EW or NS
+           xdspac = 0
+           IF (TMPCHR(5:5) .NE. ')') READ (TMPCHR(5:5), *) xdspac
+           GOTO 10
+        ENDIF
+
         IFRX=LABEL
         slen = TM_LENSTR(LABEL)
         IF (slen .GT. 1) THEN
@@ -764,6 +783,9 @@ c              xhi = xmx
            ELSE
               WRITE(err_msg,label,ERR=1999) 0.0
            ENDIF
+        ELSE
+	   xdspac = 0
+	   xdms = 0
         ENDIF
 	GOTO 10
 C     YFOR
@@ -772,18 +794,26 @@ C     YFOR
       i = TM_LENSTR1(LABEL) - 1
       IF (TMPCHR(2:2) .EQ. 'D') THEN  ! degrees/mintues/seconds ?
            IF (TMPCHR(2:3) .EQ. 'DM') THEN
-              ydms = 1
+              ydms = 0
+              IF (TMPCHR(2:3) .EQ. 'DM') ydms = 1 
               IF (TMPCHR(2:4) .EQ. 'DMS') ydms = 2 
-              CALL RANGE_DM(YLO,YHI,YTIC,ymn,ymx,dd)
-c              ylo = ymn
-c              yhi = ymx
-              ytic = dd
+              IF (ydms .GT. 0) THEN
+	         CALL RANGE_DM(YLO,YHI,YTIC,ymn,ymx,dd)
+                 ytic = dd
+	      ENDIF
+
            ELSE ! 'DD' resets to decimal degrees
               ydms = 0
            ENDIF
            GOTO 10
         ENDIF
-        ydms = 0
+
+        IF (TMPCHR(2:4) .EQ. 'SPC') THEN  ! Space between degree-sign and EW or NS
+           ydspac = 0
+           IF (TMPCHR(5:5) .NE. ')') READ (TMPCHR(5:5), *) ydspac
+           GOTO 10
+        ENDIF
+
         IFRY=LABEL
         slen = TM_LENSTR(LABEL)
         IF (slen .GT. 1) THEN
@@ -792,6 +822,9 @@ c              yhi = ymx
            ELSE
               WRITE(err_msg,label,ERR=1999) 0.0
            ENDIF
+        ELSE
+	   ydspac = 0
+	   ydms = 0
         ENDIF
 	GOTO 10
         
@@ -1112,6 +1145,7 @@ C	MARKH
 8500	    I=IFIX(P(1))
 	    IF(IFLG2)HMARK(I)=P(2)
 	    IF(M.EQ.1)HMARK(I)=0.08
+	    IF(M.GE.3)nskpsym(I) = p(3)
 	    GOTO 10
 C	LINFIT
 8600	    I=IFIX(P(1))
@@ -1394,7 +1428,9 @@ C
 	    ENDIF
 	    MONYRLAB = .FALSE.  ! Option for MON and DAY types. 
 	    IF (INDEX(LABEL,'DMY').NE.0) MONYRLAB = .TRUE.
-            IF (LABEL.EQ.'HR' .OR. LABEL.EQ.'PDAY') MONYRLAB = .TRUE.
+
+c Do not automatically turn on Day-Month-Year lables for shorter time axes
+c            IF (LABEL.EQ.'HR' .OR. LABEL.EQ.'DAY') MONYRLAB = .TRUE.
 	    LABELT=ITXTPE*ITXLBP
 	    GOTO 10
 
@@ -1517,6 +1553,11 @@ C	TXLABP
 	       ENDIF
 	    ENDIF
 	    GOTO 10
+C restore delta-T for underlay plots
+C	TAXUND
+9750	    CONTINUE
+	    DT_SAVE = P(1)
+	    GOTO 10
 C	AUTOLAB
 9800	    IGTLAB=0
 	    IF(LABON)IGTLAB=1
diff --git a/ppl/plot/ppldata.F b/ppl/plot/ppldata.F
index 21e0598..9f344e6 100644
--- a/ppl/plot/ppldata.F
+++ b/ppl/plot/ppldata.F
@@ -64,6 +64,7 @@ C     for compatibility with Ferret use of symbols.
 * V694  *acm*  1/15 Changes to allow two time axes on plot (F-T)
 * v696 *acm*	gap_var to define seperate line segments on PLOT/VS plots
 *                  (LAS ticket 1597 and others)
+* V697 *acm*   Fix CONSET for setting # of digits on contour plots. When did this ever work?
 
 	INCLUDE 'PARAMPL5.DAT'
 	include 'axis_inc.decl'
@@ -135,7 +136,7 @@ C
 c*	DATA ZLEV,LDIG,LWGT,LCLR,NLEV,HGT/500*0.0,1500*0,40,.08/
 c*	DATA ZLEV,LDIG,LWGT,LCLR,NLEV,HGT/500*0.0,1500*0,10,.08/
 	DATA ZLEV,LDIG,LWGT,LCLR,NLEV,HGT/500*0.0,1500*0,30,.08/
-	DATA NARC,IAUTOC,NLEV2,NSIGC,CANGLE,IVCOMP/1,1,0,2,0.0,1/
+	DATA NARC,IAUTOC,NLEV2,NSIGC,INISIG,NEWSIG,CANGLE,IVCOMP/1,1,0,2,2,0,0.0,1/
 C
 	DATA DASHLN,SPACLN,DSLAB/.04,.04,5.0/
 C
diff --git a/ppl/plot/pplldx.F b/ppl/plot/pplldx.F
index e8c4a5b..9d40361 100644
--- a/ppl/plot/pplldx.F
+++ b/ppl/plot/pplldx.F
@@ -120,6 +120,7 @@ c
 *      *kms* 5/12 Always use generic REAL instead of specific SNGL 
 *                 (SNGL must have a double-precision or complex argument)
 * V695  *acm*  9/15 Changes for hour:min labeling on time axes
+* V697  *acm*  1/16 Ticket 2344: if there was a time-plot underlay, use its time scaling
 
 * FERRET 9-21-88: replaced include files to make all declarations explicit
 ! original:
@@ -208,6 +209,12 @@ c	time axis is on.
 c ** acm mod 9/01  Compare tref(1:1) rather than just tref. After
 c **               passing thru c routine, a blank tref is somehow different??
 
+c    ticket 2344: if there was a time-plot underlay, use its delta-t
+	    IF (dt_save .NE. 0) THEN
+	       dtd = dt_save
+	       dt = dt_save
+	    ENDIF
+
 	    if(linen.eq.1)then
 		iform='LDX'
 		if(iautot.eq.1 .AND. tref(1:1).NE.' ') itstrt=tref(1:14) 
diff --git a/ppl/plot/prmtiv.F b/ppl/plot/prmtiv.F
index ddfa188..5cd6eee 100644
--- a/ppl/plot/prmtiv.F
+++ b/ppl/plot/prmtiv.F
@@ -57,6 +57,10 @@ C              after applying an offset.)
 * V69+  5/14 *acm* Fix for ascii font in multi-line labels, ticket 2176
 C V695 *acm*  5/15 Change in arguments to YAXIS1 and XAXIS1
 * v695 9/15 *acm* write values to PPL* symbols using 6 digits not 4
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
+
 C**
 C**
 C***********************************************************************
@@ -298,7 +302,7 @@ C
 	    CALL SCALE(XFF,YFF,XOR,YOR,XLOW,YLOW)
 	    call color(ipen(0))
 	    CALL XAXIS1(XLOW,XHIGH,XTICC,NSMTCS,LINTT,XUNIT,
-     *		IPOS,FRMTX,XFF,Y,YFF,CHSIZE,across,dms,vgrat,
+     *		IPOS,FRMTX,XFF,Y,YFF,CHSIZE,across,xdms,xdspac,vgrat,
      *		vcolor,vline,xvaloff,IPEN(0))
 
             CALL tm_break_lines (xlab, lnbeg, lnend, numlines)
@@ -430,7 +434,7 @@ c	    ENDIF
 	    CALL SCALE(XFF,YFF,XOR,YOR,XLOW,YLOW)
 	    call color(ipen(0))
 	    CALL YAXIS1(XX,XFF,YLOW,YHIGH,YTICC,NSMTCS,LINTT,YUNIT,
-     *		IPOS,FRMTX,YFF,CHSIZE,across,dms,hgrat,hcolor,hline,
+     *		IPOS,FRMTX,YFF,CHSIZE,across,ydms,ydspac,hgrat,hcolor,hline,
      *          yvaloff,.FALSE.,SHRINKY,IPEN(0))
 
             CALL tm_break_lines (ylab, lnbeg, lnend, numlines)
diff --git a/ppl/plot/setax.F b/ppl/plot/setax.F
index 6fd11d4..2c95ff1 100644
--- a/ppl/plot/setax.F
+++ b/ppl/plot/setax.F
@@ -52,6 +52,8 @@
 * V694  *acm*  5/15 Ticket 2283. Handling axis scaling for ribbon plots. Do auto-scale 
 *                   using just the first line. The second is the color-by variable
 * V695  *acm*  9/15 Changes for hour:min labeling on time axes
+* V697  *acm*  1/16 Ticket 2344: if there was a time-plot underlay, will use the underlay's 
+*                   time scaling for time overlay plots.
 
 	REAL*8		DIFF, dtd
         real            x,rxax,rxmon,rxchr,thi,xti,xtl
@@ -111,6 +113,7 @@ C	KTYPE = 0 -XY  1 -Z  2-VECTOR
 	CHARACTER IT1TMP*14,IT2TMP*14
 
 	dtd = dt
+	dt_save = dt
 
 C	SETUP AXIS FOR ALL PLOT TYPES.
 c	CONTR=MAKEP.EQ.'CONTOUR'.OR.MAKEP.EQ.'VIEW'.or.makep.eq.'SHADE'
diff --git a/ppl/plot/vecfld.F b/ppl/plot/vecfld.F
index d38fa91..d2d2f36 100644
--- a/ppl/plot/vecfld.F
+++ b/ppl/plot/vecfld.F
@@ -76,6 +76,7 @@ C**
 * V687 *acm* 3/14 tickets 2151 and 2147: allow missing coordinate data in 3-arg 
 *                 and 4-arg plot commands. 
 * Patrick's example with vector drawn across branch cut.
+* V697 *acm* 2/16 Set the symbol PPL_VECLEN even if the plot is not labeled.  
 
 C	ARRAY X HOLD 2 GRIDS, U(X) IN THE FIRST
 C	NX BY NY GRID AND V(Y) IN THE SECOND
@@ -437,6 +438,16 @@ c           IF (.NOT. units_degrees) xrange = wwxmax - wwxmin
 
 
         IPT = 0
+
+C put the vector-length scale into a PPL symbol
+	
+C   Save the value in a symbol PPL_VECLEN
+	WRITE (VECLAB,VFRMT) VLEN/VFACT
+	symbuff = 'PPL_VECLEN'
+	CALL GETSYM( symbuff, buff, i2, i1 )
+	IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
+	slen = TM_LENSTR1(veclab)
+	CALL PUTSYM( symbuff, veclab, slen, i2)
 C
 C	DRAW SCALE  MAKE SCALE .5 INCH LONG AT XT,YT
 C
@@ -476,7 +487,6 @@ C
 	CALL PLOT(XX2,YY2,1,0)
 C
 	CALL PLOT(XX1,YY1,1,0)
-       
 C
 C	DRAW LABEL
 C
@@ -488,12 +498,5 @@ C
 	CALL SYMBEL(XL,YL,0.,HLABS,ILN,VECLAB)
 3333	IF(IWIND.GT.0)CALL WINDOW(XLO,YLO,XHI,YHI)
 
-C   Save the value in a symbol PPL_VECLEN
-	symbuff = 'PPL_VECLEN'
-	CALL GETSYM( symbuff, buff, i2, i1 )
-	IF ( i1 .EQ. 0 ) CALL DELSYM(symbuff,i1)
-	slen = TM_LENSTR1(veclab)
-	CALL PUTSYM( symbuff, veclab, slen, i2)
-
 	RETURN
 	END
diff --git a/ppl/plotlib/Makefile b/ppl/plotlib/Makefile
index 5817849..b961bf7 100644
--- a/ppl/plotlib/Makefile
+++ b/ppl/plotlib/Makefile
@@ -19,12 +19,6 @@ include ./LIB_NAME
 OBJS = $(SRCS_C:.c=.o) $(SRCS_F:.F=.o)
 
 # change the standard rules for .F -> .o builds so $(PPLUS_FFLAGS) is used
-
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(PPLUS_FFLAGS) -c $*.f	 
-
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/ppl/plotlib/SOURCE_FILES b/ppl/plotlib/SOURCE_FILES
index 2a1130c..3530969 100644
--- a/ppl/plotlib/SOURCE_FILES
+++ b/ppl/plotlib/SOURCE_FILES
@@ -36,10 +36,12 @@ taxis.F\
 taxis0.F\
 taxis1.F\
 taxis3.F\
+taxis4.F\
 tayis.F\
 tayis0.F\
 tayis1.F\
 tayis3.F\
+tayis4.F\
 time1.F\
 time2.F\
 time3.F\
diff --git a/ppl/plotlib/contur.F b/ppl/plotlib/contur.F
index 5ba1a01..77673a0 100644
--- a/ppl/plotlib/contur.F
+++ b/ppl/plotlib/contur.F
@@ -69,6 +69,7 @@ C  v67  2/2011 *acm* Fix ticket 1799; do contouring in larger sections.
 * V687 *acm* 3/14 tickets 2151 and 2147: allow missing coordinate data in 3-arg 
 *                 and 4-arg plot commands. 
 * V6.95 *acm* 3/15 Changes for PyFerret fonts. 
+* V6.96 *acm*12/15 Fix ticket 2328 - contour labels spilling outside plot axes 
 
 ****************************************************************************
 C**
@@ -176,6 +177,7 @@ c
 12	pi=3.1415926
 
 
+	igroup = fnt_all
         IF (pyfont .AND. pyf_set(icont)) igroup = icont
 
 c
@@ -842,13 +844,27 @@ c
 !860	call symbel(xlab,ylab,angle,hgt,nchar,str)	! original code (860)
 
 * PyFerret Fonts locate the label by user units
+* check if the start and end of the label will be inside the 
+* plot box.
 
         IF (pyfont) THEN
+
+          symcos = COS(angle *1.7453292E-2) 
+          symsin = SIN(angle *1.7453292E-2) 
+	  widx = symcos*width
+	  widy = symsin*width
+
+          xlabend = (xlab+widx - xoff)/ xf
+          ylabend = (ylab+widy - yoff)/ yf
+
           xlab = (xlab - xoff)/ xf
 	  ylab = (ylab - yoff)/ yf
+
 	  skiplab = 0
 	  if (ylab.LT.ylo .OR. ylab.GT.yhi) skiplab = 1
 	  if (xlab.LT.xlo .OR. xlab.GT.xhi) skiplab = 1
+	  if (ylabend.LT.ylo .OR. ylabend.GT.yhi) skiplab = 1
+	  if (xlabend.LT.xlo .OR. xlabend.GT.xhi) skiplab = 1
 	ENDIF
 
 	iF (skiplab.EQ.0) call symbel(xlab,ylab,angle,hgt,nchar,str)
diff --git a/ppl/plotlib/numcde.F b/ppl/plotlib/numcde.F
index 6c1efaf..7e74cbf 100644
--- a/ppl/plotlib/numcde.F
+++ b/ppl/plotlib/numcde.F
@@ -1,4 +1,4 @@
-	SUBROUTINE NUMCDE(XZ,STR,NC,FRMTZ,DMS)
+	SUBROUTINE NUMCDE(XZ,STR,LETTER,NC,FRMTZ,DMS)
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -47,6 +47,10 @@
 * V600: *acm* 11/05 add xdms,ydms for deg/min labels
 * V600: *acm* 5/06 Allow seconds in DMS axis labelling; had removed this.
 * V63  *acm* 10/09 Changes for gfortran build
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
+
 
 C**
 C**    @(#)numcde.f	1.1    3/10/88
@@ -71,6 +75,7 @@ c  NNS, Jun 85.
 c
 	CHARACTER*(*) FRMTZ
 	CHARACTER*20 FRMT,STR,TEMP,STR_DMS
+	CHARACTER*1  LETTER
         INTEGER TM_LENSTR1, dms, imin, isec, dot, deg
         REAL val, frac, minutes, seconds
 C
@@ -80,28 +85,30 @@ C
 	X=XZ
 	ILAT = INDEX (TEMP, ',''LAT'')')
 	IF (ILAT .NE. 0) THEN
+	  FRMT (ILAT+1:) = '''#'')'
 	  IF (X .LT. 0) THEN
 	    X=-X
-	    FRMT (ILAT+1:) = '''#S'')'
+	    LETTER = 'S'
 	  ELSE IF (X .EQ. 0.) THEN
-	    FRMT (ILAT+1:) = '''#'')'
+	    LETTER = ' '
 	  ELSE
-	    FRMT (ILAT+1:) = '''#N'')'
+	    LETTER = 'N'
 	  ENDIF
 	ELSE
 	  ILON = INDEX (TEMP, ',''LON'')') + INDEX (TEMP, ',''LONW'')')
 	  ILONE = INDEX (TEMP, ',''LONE'')')
 	  IF (ILON .NE. 0) THEN
+	    FRMT (ILON+1:) = '''#'')'
 	    IF (X .GT. 180.) THEN
 	      X=360.-X
-	      FRMT (ILON+1:) = '''#E'')'
+	      LETTER = 'E'
 	    ELSE IF (X .EQ. 180.) THEN
-	      FRMT (ILON+1:) = '''#'')'
+	      LETTER = ' '
 	    ELSE IF (X .LT. 0.) THEN
-	      FRMT (ILON+1:) = '''#E'')'
+	      LETTER = 'E'
 	      X = -X
 	    ELSE
-	      FRMT (ILON+1:) = '''#W'')'
+	      LETTER = 'W'
 	    ENDIF
 	  ELSE IF (ILONE .NE. 0)THEN
 * TMAP insert 2/13/89
@@ -109,22 +116,23 @@ C
 
 	    X = MOD( X, 360. )
 * ... end of TMAP insert
+	    FRMT (ILONE+1:) = '''#'')'
 	    IF (X .GT.180.) THEN
 	      X=360.-X
-	      FRMT (ILONE+1:) = '''#W'')'
+	      LETTER = 'W'
 	    ELSE IF (ABS(X) .EQ. 180.) THEN
-	      FRMT (ILONE+1:) = '''#'')'
+	      LETTER = ' '
 	      X = ABS(X)
 	    ELSE IF (X .LT. -180.) THEN
-	      FRMT (ILONE+1:) = '''#E'')'
+	      LETTER = 'E'
 	      X = 360.+X
 	    ELSE IF (X .LT. 0.) THEN
-	      FRMT (ILONE+1:) = '''#W'')'
+	      LETTER = 'W'
 	      X = -X
 	    ELSE IF (X .NE. 0.) THEN
-	      FRMT (ILONE+1:) = '''#E'')'
+	      LETTER = 'E'
             ELSE
-	      FRMT (ILONE+1:) = '''#'')'
+	      LETTER = ' '
 	    ENDIF
 	  ENDIF
 	ENDIF
@@ -194,25 +202,21 @@ C     ADD LEADING ZERO
 
            IF (dms .EQ. 2) THEN  ! write as deg,min,sec
               IF (ideg .LT. 100) THEN
-                 WRITE (STR_DMS, 1100) ideg, imin, isec,
-     .               str(deg+1:deg+1)
+                 WRITE (STR_DMS, 1100) ideg, imin, isec
               ELSE
-                 WRITE (STR_DMS, 1101) ideg, imin, isec, 
-     .               str(deg+1:deg+1)
+                 WRITE (STR_DMS, 1101) ideg, imin, isec
               ENDIF
-1100          FORMAT (I2.2, '#', I2.2, '''', I2.2, '''', '''', A1)
-1101          FORMAT (I3.3, '#', I2.2, '''', I2.2, '''', '''', A1)
+1100          FORMAT (I2.2, '#', I2.2, '''', I2.2, '''', '''')
+1101          FORMAT (I3.3, '#', I2.2, '''', I2.2, '''', '''')
 
            ELSE IF (dms .EQ. 1) THEN  ! break into deg,min
               IF (ideg .LT. 100) THEN
-                 WRITE (STR_DMS, 1200) ideg, imin, 
-     .               str(deg+1:deg+1)
+                 WRITE (STR_DMS, 1200) ideg, imin
               ELSE
-                 WRITE (STR_DMS, 1201) ideg, imin, 
-     .               str(deg+1:deg+1)
+                 WRITE (STR_DMS, 1201) ideg, imin
               ENDIF
-1200          FORMAT (I2.2, '#', I2.2, '''', A1)
-1201          FORMAT (I3.3, '#', I2.2, '''', A1)
+1200          FORMAT (I2.2, '#', I2.2, '''')
+1201          FORMAT (I3.3, '#', I2.2, '''')
 
            ELSE IF (dms .EQ. 3) THEN  ! write as deg,min.frac
 
@@ -226,35 +230,29 @@ C     ADD LEADING ZERO
               IF (digits .EQ. 0) THEN   ! degrees, minutes only
                  imin = INT(minutes+0.5)
                  IF (ideg .LT. 100) THEN
-                    WRITE (STR_DMS, 1300) ideg, imin,
-     .               str(deg+1:deg+1)
+                    WRITE (STR_DMS, 1300) ideg, imin
                  ELSE
-                    WRITE (STR_DMS, 1301) ideg, imin, 
-     .               str(deg+1:deg+1)
+                    WRITE (STR_DMS, 1301) ideg, imin
                  ENDIF
-1300             FORMAT (I2.2, '#', I2.2, '''', A1)
-1301             FORMAT (I3.3, '#', I2.2, '''', A1)
+1300             FORMAT (I2.2, '#', I2.2, '''')
+1301             FORMAT (I3.3, '#', I2.2, '''')
               ELSE IF (digits .EQ. 1) THEN  ! degrees,min.f
 
                  IF (ideg .LT. 100) THEN
-                    WRITE (STR_DMS, 1400) ideg, minutes, 
-     .               str(deg+1:deg+1)
+                    WRITE (STR_DMS, 1400) ideg, minutes
                  ELSE
-                    WRITE (STR_DMS, 1401) ideg, minutes, 
-     .               str(deg+1:deg+1)
+                    WRITE (STR_DMS, 1401) ideg, minutes
                  ENDIF
-1400             FORMAT (I2.2, '#', F4.1, '''', A1)
-1401             FORMAT (I3.3, '#', F4.1, '''', A1)
+1400             FORMAT (I2.2, '#', F4.1, '''')
+1401             FORMAT (I3.3, '#', F4.1, '''')
               ELSE                          ! degrees,min.ff
                  IF (ideg .LT. 100) THEN
-                    WRITE (STR_DMS, 1500) ideg, minutes, 
-     .               str(deg+1:deg+1)
+                    WRITE (STR_DMS, 1500) ideg, minutes
                  ELSE
-                    WRITE (STR_DMS, 1501) ideg, minutes, 
-     .               str(deg+1:deg+1)
+                    WRITE (STR_DMS, 1501) ideg, minutes
                  ENDIF
-1500             FORMAT (I2.2, '#', F5.2, '''', A1)
-1501             FORMAT (I3.3, '#', F5.2, '''', A1)
+1500             FORMAT (I2.2, '#', F5.2, '''')
+1501             FORMAT (I3.3, '#', F5.2, '''')
               ENDIF
 
            ELSE 
diff --git a/ppl/plotlib/numcde_off.F b/ppl/plotlib/numcde_off.F
index 725f552..7482bfd 100644
--- a/ppl/plotlib/numcde_off.F
+++ b/ppl/plotlib/numcde_off.F
@@ -1,4 +1,4 @@
-	SUBROUTINE NUMCDE_OFF(XZ,STR,NC,FRMTZ,DMS,OFF)
+	SUBROUTINE NUMCDE_OFF(XZ,STR,LETTER,NC,FRMTZ,DMS,OFF)
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -43,7 +43,10 @@ C**    from numcde.f
 C 1/2006 acm Add an offset to the value before formatting it 
 C V600: *acm* 5/06 Allow seconds in DMS axis labelling; had removed this.
 * V63  *acm* 10/09 Changes for gfortran build
-C**
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
+
 C**
 C***********************************************************************
 C**
@@ -56,6 +59,7 @@ C**
 c
 	CHARACTER*(*) FRMTZ
 	CHARACTER*20 FRMT,STR,TEMP,STR_DMS
+	CHARACTER*1  LETTER
         INTEGER TM_LENSTR1, dms, imin, isec, dot, deg
         REAL frac, minutes, seconds, off
         REAL*8 val, x
@@ -67,50 +71,53 @@ C
 
 	ILAT = INDEX (TEMP, ',''LAT'')')
 	IF (ILAT .NE. 0) THEN
+	  FRMT (ILAT+1:) = '''#'')'
 	  IF (X .LT. 0) THEN
 	    X=-X
-	    FRMT (ILAT+1:) = '''#S'')'
+	    LETTER = 'S'
 	  ELSE IF (X .EQ. 0.) THEN
-	    FRMT (ILAT+1:) = '''#'')'
+	    LETTER = ' '
 	  ELSE
-	    FRMT (ILAT+1:) = '''#N'')'
+	    LETTER = 'N'
 	  ENDIF
 	ELSE
 	  ILON = INDEX (TEMP, ',''LON'')') + INDEX (TEMP, ',''LONW'')')
 	  ILONE = INDEX (TEMP, ',''LONE'')')
 	  IF (ILON .NE. 0) THEN
+	    FRMT (ILON+1:) = '''#'')'
 	    IF (X .GT. 180.) THEN
 	      X=360.-X
-	      FRMT (ILON+1:) = '''#E'')'
+	      LETTER = 'E'
 	    ELSE IF (X .EQ. 180.) THEN
-	      FRMT (ILON+1:) = '''#'')'
+	      LETTER = ' '
 	    ELSE IF (X .LT. 0.) THEN
-	      FRMT (ILON+1:) = '''#E'')'
+	      LETTER = 'E'
 	      X = -X
 	    ELSE
-	      FRMT (ILON+1:) = '''#W'')'
+	      LETTER = 'W'
 	    ENDIF
 	  ELSE IF (ILONE .NE. 0)THEN
 * TMAP insert 2/13/89
 * Further fixes for X LE -180  1/18/2013
 	    X = MOD( X, 360. )
 * ... end of TMAP insert
+	    FRMT (ILONE+1:) = '''#'')'
 	    IF (X .GT.180.) THEN
 	      X=360.-X
-	      FRMT (ILONE+1:) = '''#W'')'
+	      LETTER = 'W'
 	    ELSE IF (ABS(X) .EQ. 180.) THEN
-	      FRMT (ILONE+1:) = '''#'')'
+	      LETTER = ' '
 	      X = ABS(X)
 	    ELSE IF (X .LT. -180.) THEN
-	      FRMT (ILONE+1:) = '''#E'')'
+	      LETTER = 'E'
 	      X = 360.+X
 	    ELSE IF (X .LT. 0.) THEN
-	      FRMT (ILONE+1:) = '''#W'')'
+	      LETTER = 'W'
 	      X = -X
 	    ELSE IF (X .NE. 0.) THEN
-	      FRMT (ILONE+1:) = '''#E'')'
+	      LETTER = 'E'
             ELSE
-	      FRMT (ILONE+1:) = '''#'')'
+	      LETTER = ' '
 	    ENDIF
 	  ENDIF
 	ENDIF
@@ -181,25 +188,21 @@ C     ADD LEADING ZERO
 
            IF (dms .EQ. 2) THEN  ! write as deg,min,sec
               IF (ideg .LT. 100) THEN
-                 WRITE (STR_DMS, 1100) ideg, imin, isec,
-     .               str(deg+1:deg+1)
+                 WRITE (STR_DMS, 1100) ideg, imin, isec
               ELSE
-                 WRITE (STR_DMS, 1101) ideg, imin, isec, 
-     .               str(deg+1:deg+1)
+                 WRITE (STR_DMS, 1101) ideg, imin, isec
               ENDIF
-1100          FORMAT (I2.2, '#', I2.2, '''', I2.2, '''', '''', A1)
-1101          FORMAT (I3.3, '#', I2.2, '''', I2.2, '''', '''', A1)
+1100          FORMAT (I2.2, '#', I2.2, '''', I2.2, '''', '''')
+1101          FORMAT (I3.3, '#', I2.2, '''', I2.2, '''', '''')
 
            ELSE IF (dms .EQ. 1) THEN  ! break into deg,min
               IF (ideg .LT. 100) THEN
-                 WRITE (STR_DMS, 1200) ideg, imin, 
-     .               str(deg+1:deg+1)
+                 WRITE (STR_DMS, 1200) ideg, imin
               ELSE
-                 WRITE (STR_DMS, 1201) ideg, imin, 
-     .               str(deg+1:deg+1)
+                 WRITE (STR_DMS, 1201) ideg, imin
               ENDIF
-1200          FORMAT (I2.2, '#', I2.2, '''', A1)
-1201          FORMAT (I3.3, '#', I2.2, '''', A1)
+1200          FORMAT (I2.2, '#', I2.2, '''')
+1201          FORMAT (I3.3, '#', I2.2, '''')
 
            ELSE IF (dms .EQ. 3) THEN  ! write as deg,min.frac
 
@@ -213,35 +216,29 @@ C     ADD LEADING ZERO
               IF (digits .EQ. 0) THEN   ! degrees, minutes only
                  imin = INT(minutes+0.5)
                  IF (ideg .LT. 100) THEN
-                    WRITE (STR_DMS, 1300) ideg, imin,
-     .               str(deg+1:deg+1)
+                    WRITE (STR_DMS, 1300) ideg, imin
                  ELSE
-                    WRITE (STR_DMS, 1301) ideg, imin, 
-     .               str(deg+1:deg+1)
+                    WRITE (STR_DMS, 1301) ideg, imin
                  ENDIF
-1300             FORMAT (I2.2, '#', I2.2, '''', A1)
-1301             FORMAT (I3.3, '#', I2.2, '''', A1)
+1300             FORMAT (I2.2, '#', I2.2, '''')
+1301             FORMAT (I3.3, '#', I2.2, '''')
               ELSE IF (digits .EQ. 1) THEN  ! degrees,min.f
 
                  IF (ideg .LT. 100) THEN
-                    WRITE (STR_DMS, 1400) ideg, minutes, 
-     .               str(deg+1:deg+1)
+                    WRITE (STR_DMS, 1400) ideg, minutes
                  ELSE
-                    WRITE (STR_DMS, 1401) ideg, minutes, 
-     .               str(deg+1:deg+1)
+                    WRITE (STR_DMS, 1401) ideg, minutes
                  ENDIF
-1400             FORMAT (I2.2, '#', F4.1, '''', A1)
-1401             FORMAT (I3.3, '#', F4.1, '''', A1)
+1400             FORMAT (I2.2, '#', F4.1, '''')
+1401             FORMAT (I3.3, '#', F4.1, '''')
               ELSE                          ! degrees,min.ff
                  IF (ideg .LT. 100) THEN
-                    WRITE (STR_DMS, 1500) ideg, minutes, 
-     .               str(deg+1:deg+1)
+                    WRITE (STR_DMS, 1500) ideg, minutes
                  ELSE
-                    WRITE (STR_DMS, 1501) ideg, minutes, 
-     .               str(deg+1:deg+1)
+                    WRITE (STR_DMS, 1501) ideg, minutes
                  ENDIF
-1500             FORMAT (I2.2, '#', F5.2, '''', A1)
-1501             FORMAT (I3.3, '#', F5.2, '''', A1)
+1500             FORMAT (I2.2, '#', F5.2, '''')
+1501             FORMAT (I3.3, '#', F5.2, '''')
               ENDIF
 
            ELSE 
diff --git a/ppl/plotlib/taxis.F b/ppl/plotlib/taxis.F
index e8c88f6..2b36cf4 100644
--- a/ppl/plotlib/taxis.F
+++ b/ppl/plotlib/taxis.F
@@ -48,12 +48,14 @@ C**
 C *kob* 04/07/96 passed in character strings had to be declared 
 C                with "*(*)" for the linux port 
 C *acm* 03/04  new arguments for plotting graticule lines across plot. 
+C              If graticule lines are to be drawn across the plot at the tics
+C              then only do them for one horizontal and one vertical axis.  
+C              The dash lines interfere with each other if drawn from both 
+C              sides. HLINE and VLINE control this. 
 C V695  *acm*  9/15 Changes for hour:min labeling on time axes
+C V697  *acm* 12/15 For short-time plots do the time axis in a separate
+C                   routine taxis4
 
-C If graticule lines are to be drawn across the plot at the tics
-C then only do them for one horizontal and one vertical axis.  
-C The dash lines interfere with each other if drawn from both 
-C sides. HLINE and VLINE control this. 
 
 	CHARACTER*(*) IT1,IT2
         
@@ -64,8 +66,13 @@ C sides. HLINE and VLINE control this.
         LOGICAL vline          ! If true, do the lines across.
 
 	GOTO (10,20,20,30)IT+1
-10	CALL TAXIS0(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,XF,YHI,YF,TCSIZE,
+10	IF (is_hours_axis .EQ. 0) THEN 
+	   CALL TAXIS0(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,XF,YHI,YF,TCSIZE,
+     .              yacross,vgrat,vcolor,vline,color0)
+	ELSE
+	   CALL TAXIS4(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,XF,YHI,YF,TCSIZE,
      .              yacross,vgrat,vcolor,vline,color0,is_hours_axis)
+	ENDIF
 	RETURN
 20	CALL TAXIS1(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,XF,YHI,YF,TCSIZE,
      .              yacross,vgrat,vcolor,vline,color0)
diff --git a/ppl/plotlib/taxis0.F b/ppl/plotlib/taxis0.F
index c9c4fc5..64eee9e 100644
--- a/ppl/plotlib/taxis0.F
+++ b/ppl/plotlib/taxis0.F
@@ -1,5 +1,5 @@
       SUBROUTINE TAXIS0(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IHDB,IDDB,
-     1    TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline,color0,is_hours_axis)
+     1    TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline,color0)
 
 *
 *
@@ -56,7 +56,7 @@ C                 ITIME to ITIME2 at loop 10
 C *acm* 03/04  new arguments and code for plotting graticule lines across plot. 
 C V65  *acm*  1/10 New time-axis style for DAY and MONTH, DMY: adds the
 C                  year to DAY,MONTH or to MONTH.
-C V695  *acm*  9/15 Changes for hour:min labeling on time axes
+C V695 *acm*  5/15 Restore color after a graticule using defined color 0
 
 C**
 C**    @(#)taxis0.f	1.1    3/10/88
@@ -95,8 +95,8 @@ C         IDDB = PRINT LABELS OF DAYS DIVISIBLE BY THIS NUMBER ONLY.
 C                IF(IDDB = 0) PRINT NO MONTH LABELS.
 C                THIS VARIBLE ONLY APPLYS WHEN IABS(LABEL) = 1
 C         TFACT = (LENGTH OF T AXIS IN INCHES)/(LENGTH OF T AXIS IN USER
-C         Y = Y COORDINATE OF TIME AXIS. 
-C         YFACT = (LENGTH OF Y AXIS IN INCHES)/(LENGTH OF Y AXIS IN USER 
+C         Y = Y COORDINATE OF TIME AXIS.
+C         YFACT = (LENGTH OF Y AXIS IN INCHES)/(LENGTH OF Y AXIS IN USER
 C         CSIZE = SIZE TO DRAW HOUR LABELS.
 C                 DAY LABELS WILL BE 1.5 TIMES AS LARGE.
 C
@@ -104,16 +104,10 @@ C
 C     THIS ROUTINE WAS FIRST WRITTEN BY DAVID MANDEL IN JULY 1980.
 C
 	CHARACTER ITIME3*14,DATE*6,BUFF*14,YEAR*4
-	CHARACTER ITIME*14,ITIME1*14,ITIME2*14,SYM*21
+	CHARACTER ITIME*14,ITIME1*(*),ITIME2*(*),SYM*21
 	COMMON/TICS/TSMX,TLX,TSMY,TLY,IX,IY
 	COMMON/AXLWID/XWID,YWID
 
-	REAL*8  DIFF, difft
-	REAL*8  td, ytemp1, tfact_d, yfact_d
-	REAL    delt, rem, angl
-	INTEGER color0, is_hours_axis, labint, ticint
-	LOGICAL hvytic
-
 * Parameters for drawing tics across plot
 
         REAL yacross
@@ -121,6 +115,7 @@ C
         REAL dash2_1, dash2_2, dash2_3, dash2_4
         REAL vgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
         INTEGER vcolor(*)      ! pen number 
+        INTEGER color0	       ! pen number for axis
         LOGICAL vline          ! If true, do the lines across.
         LOGICAL solid1, solid2   ! solid lines across at tics
         LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -130,53 +125,14 @@ C
 	include 'xinterrupt.cmn'
         include 'century.cmn'  ! with MONYRLAB flag
 
-	
-  80	FORMAT(I2.2)
-  82	FORMAT(I2.2,':00')
-  84	FORMAT(I2.2,':',I2.2)
-
-	difft = DIFF(ITIME1,ITIME2)
-	angl = 0.
-
 C     CHECK THE PARAMETERS PASSED TO THE SUBROUTINE.
 
-	IF (is_hours_axis .EQ. 0) THEN
-	   IF(ITIME1(9:10).NE.'00')STOP ',1'  ! MINUTE,SECOND ARE 0
-	   IF(ITIME2(9:10).NE.'00')STOP ',2'
-	ENDIF
-
+	IF(ITIME1(9:10).NE.'00')STOP ',1'
+	IF(ITIME2(9:10).NE.'00')STOP ',2'
+     
         IF(ITIME1(13:14)//ITIME1(1:12).GE.
      .	   ITIME2(13:14)//ITIME2(1:12)) STOP',3'
 
-C     SET PARAMETERS.
-        TIC = 60./DT  
-        TICd = 60./DT  
-        NTIC = NSMTIC + 1
-        delt = 60.
-        labint = 120
-	ticint = labint
-      
-! On short-time interval axes, tic and label interval
-	IF (is_hours_axis.EQ.1) THEN
-           labint = 30
-           delt = 1.
-	   ticint = 5
-        ENDIF
-        IF (is_hours_axis.EQ.2) THEN
-           labint = 10
-           delt = 1
-	   ticint = 1
-           IF (difft .LE. 30) labint = 5
-           IF (difft .LE. 20) labint = 4
-           IF (difft .LE. 10) labint = 1
-           IF (difft .GE. 60) ticint = 2
-           IF (difft .GE. 120) ticint = 4
-           IF (difft .GE. 240) ticint = 4
-        ENDIF
-
-        tic = delt/dt
-        ticd = delt/dt
-
 C set up for plotting graticules across at tic marks
         
         solid1 = (vgrat(1,1).LT.0 .AND. vgrat(2,1).LT.0 .AND.  
@@ -204,7 +160,9 @@ C set up for plotting graticules across at tic marks
            dash2_4 = vgrat(4,2)
         ENDIF
 C
-
+C     SET PARAMETERS.
+      TIC = 60./DT
+      NTIC = NSMTIC + 1
 	IF(NSMTIC.LT.0)THEN
 		IHVY=-8
 		INML=-7
@@ -223,50 +181,32 @@ C
 	ELSE
 	FIHDB=-1.4
 	ENDIF
-	YTEMP1=Y+DBLE(LABEL*(0.9*CSIZE+YTEMP)/YFACT)
+	YTEMP1=Y+LABEL*(0.9*CSIZE+YTEMP)/YFACT
       IF(LABEL.LT.0) THEN
       YTEMP2=Y-((4.0+FIHDB)*CSIZE+YTEMP)/YFACT
       ELSE
       YTEMP2=Y+((2.5+FIHDB)*CSIZE+YTEMP)/YFACT
       ENDIF
 	IF(LABEL.NE.0)XWID=(4.0+FIHDB)*CSIZE+YTEMP
-      T=TLO  ! Time in hours, plot units
-      td = tlo
+      T=TLO
       ITIME=ITIME1
       CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
       TDAY=T
 
-      tfact_d = tfact
-      yfact_d = yfact
-	
       CALL PLOT(TLO,Y,0,0)
-      IF(IHR.EQ.0 .AND.is_hours_axis.EQ.0 )THEN
-         CALL PLOTT7(TLO,Y,TFACT,YFACT,1,IHVY)  ! draw to the location and make a mark
-      ELSE
-         IF (MOD(imin,labint) .EQ. 0) THEN
-            CALL PLOTT7(TLO,Y,TFACT,YFACT,1,IHVY)
-         ELSE
-	    CALL PLOTT7(TLO,Y,TFACT,YFACT,1,INML)
-         ENDIF
-      ENDIF
-	
-      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)  ! next time stepping from 1 (arg 1) to 2 (arg 2) -- return ITIME3
+	IF(IHR.EQ.0)THEN
+	CALL PLOTT7(TLO,Y,TFACT,YFACT,1,IHVY)
+	ELSE
+	CALL PLOTT7(TLO,Y,TFACT,YFACT,1,INML)
+	ENDIF
+      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
       ITIME = ITIME3
-
-c Check whether to make an hour label at the start of the axis
-c ihdb is hour-label frequency
-      IF(IABS(LABEL).EQ.1) THEN
-         IF (IHR.EQ.IHDB*(IHR/IHDB) .AND. is_hours_axis.EQ.0) THEN 
-            WRITE(SYM,80) IHR
-	    CALL scinot_d(Td,YTEMP1,angl,CSIZE,2,SYM,0,wid,tfact_d, yfact_d)
-	 ENDIF
-	   IF (is_hours_axis .GT. 0) THEN
-	    IF (IMIN .EQ. 0) THEN
-               WRITE(SYM,82) IHR
-	       CALL scinot_d(Td,YTEMP1,angl,CSIZE,5,SYM,0,wid,tfact_d, yfact_d)
-	    ENDIF
-	 ENDIF
-      ENDIF
+      IF(IABS(LABEL).NE.1.OR.IHR.NE.IHDB*(IHR/IHDB)) GO TO 11
+C      ELSE:
+          WRITE(SYM,80) IHR
+80	FORMAT(I2.2)
+	CALL SCINOT(T,YTEMP1,0.,CSIZE,2,SYM,0,WID,TFACT,YFACT)
+  11  CONTINUE    
 
 c ----  count number of large tics. If no large tics will be drawn
 c ----  then will want to draw graticule lines at the small ones.
@@ -275,7 +215,7 @@ c Set itime1, itime3 as above
 
       ITIME=ITIME1
       CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
-      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt) 
+      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
       ITIME = ITIME3
 
 C      LOOP:
@@ -283,19 +223,12 @@ C      LOOP:
   110  CONTINUE
 
 	CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
-  	CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
+	CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
 	ITIME=ITIME3
 
 	IF(ITIME(13:14)//ITIME(1:12) .LE.
      .       ITIME2(13:14)//ITIME2(1:12)) THEN
            IF(IHR.EQ.0) ltic = ltic + 1
-	   IF (is_hours_axis .GT. 0) THEN
-	      IF (difft.LE.12 .AND. sec.EQ.0.) THEN 
-	         ltic = ltic+1
-              ELSE
-	         IF (imin.EQ.0. .AND. ihr.NE.0) ltic = ltic+1
-              ENDIF
-	   ENDIF
            GO TO 110
         ENDIF
      
@@ -315,14 +248,13 @@ C      LOOP:
               dash2_4 = dash1_4
               color2 = color1
            ENDIF
-
         ENDIF
 
 ! Restore the state of ITIME, ITIME3
       ITIME=ITIME1
       CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
 
-      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
+      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
       ITIME = ITIME3
 
 c ----
@@ -332,7 +264,7 @@ C      LOOP:
 	  IF ( interrupted ) RETURN		! TMAP interrupt
           DO 20 I=1,NSMTIC
               CALL PLOTT7(T+FLOAT(I)*TDIST,Y,TFACT,YFACT,1,-7)
-
+     
                  IF ((solid2.OR.dashed2) .AND. vline) THEN ! make line across
                     CALL COLOR(color2)
                     IF (dashed2) THEN
@@ -342,16 +274,13 @@ C      LOOP:
                     CALL PLOT(T+FLOAT(I)*TDIST,y,0,0) 
                     CALL PLOT(T+FLOAT(I)*TDIST,yacross,1,0)
                     CALL PLOT(T+FLOAT(I)*TDIST,Y,0,0) 
-                     CALL COLOR(color0)
+                    CALL COLOR(color0)
                     CALL VECTRS
                  ENDIF
 
    20         CONTINUE
           CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
-	  
-	hvytic = ((is_hours_axis.EQ.0 .AND. IHR.EQ.0) .OR. 
-     .            (is_hours_axis.GT.0 .AND. MOD(imin,labint).EQ.0))
-	IF(hvytic)THEN
+	IF(IHR.EQ.0)THEN
 	CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,IHVY)
               IF ((solid1.OR.dashed1) .AND. vline) THEN ! make line across
                  CALL COLOR(color1)
@@ -362,21 +291,13 @@ C      LOOP:
                  CALL PLOT(t+tic,y,0,0) 
                  CALL PLOT(t+tic,yacross,1,0)
                  CALL PLOT(t+tic,Y,0,0) 
-                  CALL COLOR(color0)
+                 CALL COLOR(color0)
                  CALL VECTRS
               ENDIF
       
 	ELSE
-              IF (is_hours_axis.GT.0) THEN
-	         IF (MOD(imin,ticint).EQ.0) THEN
-                    CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
-		 ELSE 
-                    CALL PLOT(T+TIC,Y,1,0)
-		 ENDIF
-              ELSE
-	         CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
-              ENDIF
-	      
+	       CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
+     
                IF ((solid1.OR.dashed1) .AND. vline) THEN ! make line across
                   CALL COLOR(color1)
                   IF (dashed1) THEN
@@ -386,33 +307,18 @@ C      LOOP:
                   CALL PLOT(t+tic,y,0,0) 
                   CALL PLOT(t+tic,yacross,1,0)
                   CALL PLOT(t+tic,Y,0,0) 
-                   CALL COLOR(color0)
+                  CALL COLOR(color0)
                   CALL VECTRS
                ENDIF
 
 	ENDIF
 C         THE LABELS
-
-	  IF (IABS(LABEL).EQ.1) THEN
-             IF (is_hours_axis .GT. 0) THEN
-	        IF (imin .EQ. 0) THEN
-	           WRITE(SYM,82) IHR
-	           CALL scinot_d(Td+TICd,YTEMP1,angl,CSIZE,5,SYM,0,wid,tfact_d, yfact_d)
-		ELSE
-                   IF (MOD(imin,labint) .EQ. 0) THEN
-		      WRITE(SYM,84) ihr, imin
-	              CALL scinot_d(Td+TICd,YTEMP1,angl,CSIZE,5,SYM,0,wid,tfact_d, yfact_d)
-		   ENDIF
-		ENDIF
-             ELSE
-	        IF(IHR.EQ.IHDB*(IHR/IHDB)) THEN
-	           WRITE(SYM,80) IHR
-	           CALL scinot_d(Td+TICd,YTEMP1,angl,CSIZE,2,SYM,0,wid,tfact_d, yfact_d)
-	        ENDIF
-             ENDIF
-	  ENDIF
-
-          CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
+          IF(IHDB.EQ.0.OR.IABS(LABEL).NE.1) GO TO 50
+          IF(IHR.NE.IHDB*(IHR/IHDB)) GO TO 50
+	WRITE(SYM,80) IHR
+	CALL SCINOT(T+TIC,YTEMP1,0.,CSIZE,2,SYM,0,WID,TFACT,YFACT)
+   50     CONTINUE
+          CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
           IF(IDDB.EQ.0.OR.IABS(LABEL).NE.1) GO TO 70
               CALL TIME3(ITIME3,IYR3,IMON3,IDAY3,IHR3,IMIN3,ISEC3,ICEN3)
               IF(IDAY.EQ.IDAY3) GO TO 70
@@ -426,7 +332,7 @@ C             ELSE:
            IF (MONYRLAB) THEN
 	      WRITE (BUFF, 65) DATE, YEAR
               TSYM=TDAY+(T+TIC-TDAY-SYMWID(CSIZE,14,BUFF)/TFACT)*.5
-              CALL SYMBEL(TSYM,YTEMP2,angl,CSIZE,14,BUFF)
+              CALL SYMBEL(TSYM,YTEMP2,0.,CSIZE,14,BUFF)
 	   ELSE
               TSYM=TDAY+(T+TIC-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
 	      CALL SYMBEL(TSYM,YTEMP2,0.,1.5*CSIZE,6,DATE)
@@ -436,36 +342,32 @@ C             ELSE:
    70     CONTINUE
           ITIME=ITIME3
           T=T+TIC
-	  td = td + ticd
-	  t=td
 c          IF(ITIME.LE.ITIME2) GO TO 10
 
           IF(ITIME(13:14)//ITIME(1:12) .LE.
      .       ITIME2(13:14)//ITIME2(1:12)) GO TO 10
-
+     
       IF(IDDB.EQ.0) RETURN
+	IF(IABS(LABEL).EQ.1.AND.IDAY.EQ.IDDB*(IDAY/IDDB)
+     .	.AND.IHR3.GE.4)THEN
+      CALL TIME2(ITIME,SYM)
+	READ(SYM,55) DATE
+* TMAP mod 9/17/89 *sh*                                 
+! original:  ("mon" --> "date")                           
+!      TSYM=TDAY+(T-TDAY-SYMWID(1.5*CSIZE,6,MON)/TFACT)*.5
+!      CALL SYMBEL(TSYM,YTEMP2,0.,1.5*CSIZE,6,MON)
+
+        IF (MONYRLAB) THEN
+	   WRITE (BUFF, 65) DATE, YEAR
+           TSYM=TDAY+(T-TDAY-SYMWID(CSIZE,14,BUFF)/TFACT)*.5
+           CALL SYMBEL(TSYM,YTEMP2,0.,CSIZE,14,BUFF)
+	ELSE
+           TSYM=TDAY+(T-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
+	   CALL SYMBEL(TSYM,YTEMP2,0.,1.5*CSIZE,6,DATE)
+	ENDIF
 
-      IF(IABS(LABEL).EQ.1.AND.IDAY.EQ.IDDB*(IDAY/IDDB) ) THEN
-         IF (is_hours_axis.GT.0 .OR. IHR3.GE.4) THEN
-           CALL TIME2(ITIME,SYM)
-	   READ(SYM,55) DATE, YEAR
-	   IF (MONYRLAB) THEN
-	      WRITE (BUFF, 65) DATE, YEAR
-              TSYM=TDAY+(T-TDAY-SYMWID(CSIZE,14,BUFF)/TFACT)*.5
-              CALL SYMBEL(TSYM,YTEMP2,angl,CSIZE,14,BUFF)
-           ELSE
-              TSYM=TDAY+(T-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
-	      CALL SYMBEL(TSYM,YTEMP2,0.,1.5*CSIZE,6,DATE)
-           ENDIF
-
-         ENDIF
+* end of 9/17/89 TMAP mod
       ENDIF
-
-
-c Finish out the line
-      CALL PLOT (t,y,0,0)
-      t = TLO + DIFF(ITIME1, ITIME2)/dt
-      CALL PLOT (t,y,1,0)
-
       RETURN
       END
+
diff --git a/ppl/plotlib/taxis0.F b/ppl/plotlib/taxis4.F
similarity index 91%
copy from ppl/plotlib/taxis0.F
copy to ppl/plotlib/taxis4.F
index c9c4fc5..296ddef 100644
--- a/ppl/plotlib/taxis0.F
+++ b/ppl/plotlib/taxis4.F
@@ -1,4 +1,4 @@
-      SUBROUTINE TAXIS0(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IHDB,IDDB,
+      SUBROUTINE TAXIS4(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IHDB,IDDB,
      1    TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline,color0,is_hours_axis)
 
 *
@@ -34,32 +34,11 @@
 *  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*                                                  
+* From taxis0: separate routijne for hour:min labeling on time axes
 *
-*
-* revised for TMAP
-* from PPLUS :
-*	Directory PMEL:[PLOT5.PPLV11.PLOTLIB]TAXIS0.FOR
-
-* search for "TMAP" to find all revisions
-* *sh*  - 1/23/89 added interrupt detection
-*		  ... no explicit declarations (too much trouble !) so it must
-*		      be compiled with /WARNINGS=NODECLARATIONS
-* *sh*  - 4/19/89 FERRET 1.21  (repeat of correction made earlier)
-*       - changed "mon" to "date" in calls to SYMWID and SYMBEL.
-*         "mon" is the wrong data type                          
-                                                                
-* *jd* Mod for 4 digit years 11.27.95
-C *kob* 04/07/96 passed in character strings had to be declared 
-C                with "*(*)" for the linux port 
-C *acm* 24/01/00 Y2k Bug -- Put century at start when comparing 
-C                 ITIME to ITIME2 at loop 10
-C *acm* 03/04  new arguments and code for plotting graticule lines across plot. 
-C V65  *acm*  1/10 New time-axis style for DAY and MONTH, DMY: adds the
-C                  year to DAY,MONTH or to MONTH.
-C V695  *acm*  9/15 Changes for hour:min labeling on time axes
-
 C**
-C**    @(#)taxis0.f	1.1    3/10/88
+C**    @(#)taxis4.f     1.1   12/09/15
 C**
 C**
 C***********************************************************************
@@ -111,7 +90,7 @@ C
 	REAL*8  DIFF, difft
 	REAL*8  td, ytemp1, tfact_d, yfact_d
 	REAL    delt, rem, angl
-	INTEGER color0, is_hours_axis, labint, ticint
+	INTEGER color0, is_hours_axis, labint, ticint, hrint
 	LOGICAL hvytic
 
 * Parameters for drawing tics across plot
@@ -155,12 +134,24 @@ C     SET PARAMETERS.
         delt = 60.
         labint = 120
 	ticint = labint
+	hrint = 1
       
 ! On short-time interval axes, tic and label interval
+! for hours axis (is_hours_axis eq 1) if difft > 60,
+! then labint, ticint should be on the hour or half hour, so
+! multiples of 30.
+! for more than 12 hours, label on a multiple of even hours, 
+! up to a max of 36 hours labeled hh:mm (set in taxis_style)
+
 	IF (is_hours_axis.EQ.1) THEN
            labint = 30
            delt = 1.
 	   ticint = 5
+           IF (difft .GE.  300) labint = 60
+           IF (difft .GE.  600) labint = 120
+	   IF (difft .GE.  300) ticint = 30
+           IF (difft .GE. 1200) hrint = 2
+           IF (difft .GE. 1800) hrint = 4
         ENDIF
         IF (is_hours_axis.EQ.2) THEN
            labint = 10
@@ -395,11 +386,11 @@ C         THE LABELS
 
 	  IF (IABS(LABEL).EQ.1) THEN
              IF (is_hours_axis .GT. 0) THEN
-	        IF (imin .EQ. 0) THEN
+	        IF (imin .EQ. 0 .AND. MOD(ihr,hrint).EQ.0) THEN
 	           WRITE(SYM,82) IHR
 	           CALL scinot_d(Td+TICd,YTEMP1,angl,CSIZE,5,SYM,0,wid,tfact_d, yfact_d)
 		ELSE
-                   IF (MOD(imin,labint) .EQ. 0) THEN
+                   IF (MOD(imin,labint) .EQ. 0 .AND. hrint.LE.1) THEN
 		      WRITE(SYM,84) ihr, imin
 	              CALL scinot_d(Td+TICd,YTEMP1,angl,CSIZE,5,SYM,0,wid,tfact_d, yfact_d)
 		   ENDIF
diff --git a/ppl/plotlib/tayis.F b/ppl/plotlib/tayis.F
index 3b102d0..8de0616 100644
--- a/ppl/plotlib/tayis.F
+++ b/ppl/plotlib/tayis.F
@@ -52,11 +52,15 @@ C**
 C *kob* 04/07/96 passed in character strings had to be declared 
 C                with "*(*)" for the linux port 
 C *acm* 03/04  new arguments for plotting graticule lines across plot. 
-C If graticule lines are to be drawn across the plot at the tics
-C then only do them for one horizontal and one vertical axis.  
-C The dash lines interfere with each other if drawn from both 
-C sides. HLINE and VLINE control this.
-C V695 *acm*  5/15 Restore color after a graticule using defined color 0
+C              If graticule lines are to be drawn across the plot at the tics
+C              then only do them for one horizontal and one vertical axis.  
+C              The dash lines interfere with each other if drawn from both 
+C              sides. HLINE and VLINE control this.
+C V695  *acm*  5/15 Restore color after a graticule using defined color 0
+C V695  *acm*  9/15 Changes for hour:min labeling on time axes
+C V697  *acm* 12/15 For short-time plots do the time axis in a separate
+C                   routine tayis4
+
 
 	INTEGER is_hours_axis
         REAL xacross           ! to draw tic line across plot
@@ -68,8 +72,13 @@ C V695 *acm*  5/15 Restore color after a graticule using defined color 0
 	CHARACTER*(*) IT1,IT2
 
 	GOTO (10,20,20,30)IT+1
-10	CALL TAYIS0(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,YF,XHI,XF,TCSIZE,
+10	IF (is_hours_axis .EQ. 0) THEN
+	   CALL TAYIS0(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,YF,XHI,XF,TCSIZE,
+     .              xacross,hgrat,hcolor,hline,color0)
+	ELSE
+	   CALL TAYIS4(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,YF,XHI,XF,TCSIZE,
      .              xacross,hgrat,hcolor,hline,color0,is_hours_axis)
+	ENDIF
 	RETURN
 20	CALL TAYIS1(TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,YF,XHI,XF,TCSIZE,
      .              xacross,hgrat,hcolor,hline,color0)
diff --git a/ppl/plotlib/tayis0.F b/ppl/plotlib/tayis0.F
index 3cdef71..3e9f2f8 100644
--- a/ppl/plotlib/tayis0.F
+++ b/ppl/plotlib/tayis0.F
@@ -1,5 +1,5 @@
 	SUBROUTINE TAYIS0(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IHDB,IDDB,
-     *	TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline,color0,is_hours_axis)
+     *	TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline,color0)
 
 *
 *
@@ -36,28 +36,7 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* revised for TMAP
-* from PPLUS :
-*	Directory PMEL:[PLOT5.PPLV11.PLOTLIB]TAYIS0.FOR
-
-* search for "TMAP" to find all revisions
-* *sh*  - 1/23/89 added interrupt detection
-*		  ... no explicit declarations (too much trouble !) so it must
-*		      be compiled with /WARNINGS=NODECLARATIONS
-* *sh*  - 8/11/89 FERRET 2.00 (modelled after TAXIS0 correction)
-*       - changed "mon" to "date" in calls to SYMWID and SYMBEL.
-*         "mon" is the wrong data type                          
-
-* *jd* Mod for 4 digit years 11.27.95
-C *kob* 04/07/96 passed in character strings had to be declared 
-C                with "*(*)" for the linux port 
-C *acm* 24/01/00 Y2k Bug --Put century at start when comparing 
-C                 ITIME to ITIME2 at loop 10
-C *acm* 03/04  new arguments and code for plotting graticule lines across plot. 
-C V65  *acm*  1/10 New time-axis style for DAY and MONTH, DMY: adds the
-C                  year to DAY,MONTH or to MONTH.
-C V695 *acm*  5/15 Restore color after a graticule using defined color 0
-C V695 *acm*  9/15 Changes for hour:min labeling on time axes
+* From taxis0: separate routine for hour:min labeling on time axes
 
 C**
 C**    @(#)tayis0.f	1.1    3/10/88
@@ -96,8 +75,8 @@ C         IDDB = PRINT LABELS OF DAYS DIVISIBLE BY THIS NUMBER ONLY.
 C                IF(IDDB = 0) PRINT NO MONTH LABELS.
 C                THIS VARIBLE ONLY APPLYS WHEN IABS(LABEL) = 1
 C         TFACT = (LENGTH OF T AXIS IN INCHES)/(LENGTH OF T AXIS IN USER
-C         X = X COORDINATE OF TIME AXIS.
-C         XFACT = (LENGTH OF X AXIS IN INCHES)/(LENGTH OF X AXIS IN USER
+C         Y = Y COORDINATE OF TIME AXIS.
+C         YFACT = (LENGTH OF Y AXIS IN INCHES)/(LENGTH OF Y AXIS IN USER
 C         CSIZE = SIZE TO DRAW HOUR LABELS.
 C                 DAY LABELS WILL BE 1.5 TIMES AS LARGE.
 C
@@ -105,16 +84,10 @@ C
 C     THIS ROUTINE WAS FIRST WRITTEN BY DAVID MANDEL IN JULY 1980.
 C
 	CHARACTER ITIME3*14,DATE*6,BUFF*14,YEAR*4
-	CHARACTER ITIME*14,ITIME1*14,ITIME2*14,SYM*21
+	CHARACTER ITIME*14,ITIME1*(*),ITIME2*(*),SYM*21
 	COMMON/TICS/TSMX,TLX,TSMY,TLY,IX,IY
 	COMMON/AXLWID/XWID,YWID
 
-	REAL*8  DIFF, difft
-	REAL*8  td, xtemp1, tfact_d, xfact_d
-	REAL    delt, rem
-	INTEGER is_hours_axis, labint, ticint
-	LOGICAL hvytic
-
 * Parameters for drawing tics across plot
 
         REAL xacross
@@ -132,52 +105,13 @@ C
 
 	include 'xinterrupt.cmn'
         include 'century.cmn'  ! with MONYRLAB flag
-	
-  80	FORMAT(I2.2)
-  82	FORMAT(I2.2,':00')
-  84	FORMAT(I2.2,':',I2.2)
-
-	difft = DIFF(ITIME1,ITIME2)
 
 C     CHECK THE PARAMETERS PASSED TO THE SUBROUTINE.
-
-	IF (is_hours_axis .EQ. 0) THEN
-	   IF(ITIME1(9:10).NE.'00')STOP ',1'  ! MINUTE,SECOND ARE 0
-	   IF(ITIME2(9:10).NE.'00')STOP ',2'
-	ENDIF
-
+	IF(ITIME1(9:10).NE.'00')STOP ',1'
+	IF(ITIME2(9:10).NE.'00')STOP ',2'
         IF(ITIME1(13:14)//ITIME1(1:12).GE.
      .	   ITIME2(13:14)//ITIME2(1:12)) STOP',3'
-
-C     SET PARAMETERS.
-        TIC = 60./DT  
-        TICd = 60./DT  
-        NTIC = NSMTIC + 1
-        delt = 60.
-        labint = 120
-	ticint = labint
-      
-! On short-time interval axes, tic and label interval
-	IF (is_hours_axis.EQ.1) THEN
-           labint = 30
-           delt = 1.
-	   ticint = 5
-        ENDIF
-        IF (is_hours_axis.EQ.2) THEN
-           labint = 10
-           delt = 1
-	   ticint = 1
-           IF (difft .LE. 30) labint = 5
-           IF (difft .LE. 20) labint = 4
-           IF (difft .LE. 10) labint = 1
-           IF (difft .GE. 60) ticint = 2
-           IF (difft .GE. 120) ticint = 4
-           IF (difft .GE. 240) ticint = 4
-        ENDIF
-
-        tic = delt/dt
-        ticd = delt/dt
-
+        
         solid1 = (hgrat(1,1).LT.0 .AND. hgrat(2,1).LT.0 .AND.  
      .            hgrat(3,1).LT.0 .AND.  hgrat(4,1).LT.0 )
         solid2 = (hgrat(1,2).LT.0 .AND. hgrat(2,2).LT.0 .AND.  
@@ -203,6 +137,9 @@ C     SET PARAMETERS.
            dash2_4 = hgrat(4,2)
         ENDIF
 C
+C     SET PARAMETERS.
+	TIC = 60./DT
+	NTIC = NSMTIC + 1
 	IF(NSMTIC.LT.0)THEN
 	    IHVY=-6
 	    INML=-5
@@ -221,53 +158,31 @@ C
 	ELSE
 	    FIHDB=-1.4
 	ENDIF
-	XTEMP1=X+DBLE(LABEL*(0.9*CSIZE+XTEMP)/XFACT)
-	IF (is_hours_axis.GT.0 .AND. LABEL.LT.0) XTEMP1=XTEMP1-1.5*CSIZE/XFACT
+	XTEMP1=X+LABEL*(0.9*CSIZE+XTEMP)/XFACT
 	IF(LABEL.LT.0) THEN
 	    XTEMP2=X-((4.0+FIHDB)*CSIZE+XTEMP)/XFACT
-	    IF (is_hours_axis.GT.0) XTEMP2=XTEMP2-1.5*CSIZE/XFACT
 	ELSE
 	    XTEMP2=X+((2.5+FIHDB)*CSIZE+XTEMP)/XFACT
-	   IF (is_hours_axis.GT.0) XTEMP2=X+3*CSIZE/XFACT
 	ENDIF
 	IF(LABEL.NE.0)YWID=(4.0+FIHDB)*CSIZE+XTEMP
-        T=TLO  ! Time in hours, plot units
-	td=tlo
+	T=TLO
 	ITIME=ITIME1
 	CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
 	TDAY=T
-
-	tfact_d = tfact
-	xfact_d = xfact
-	
-        CALL PLOT(X,TLO,0,0)
-	IF(IHR.EQ.0 .AND.is_hours_axis.EQ.0 )THEN
-           CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
+	CALL PLOT(X,TLO,0,0)
+	IF(IHR.EQ.0)THEN
+	    CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
 	ELSE
-           IF (MOD(imin,labint) .EQ. 0) THEN
-              CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
-           ELSE
-	      CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
-           ENDIF
+	    CALL PLOTT7(X,TLO,XFACT,TFACT,1,INML)
 	ENDIF
-
-	CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)  ! next time stepping from 1 (arg 1) to 2 (arg 2) -- return ITIME3
+	CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
 	ITIME = ITIME3
-
-c Check whether to make an hour label at the start of the axis
-c ihdb is hour-label frequency
-      IF(IABS(LABEL).EQ.1) THEN
-         IF (IHR.EQ.IHDB*(IHR/IHDB) .AND. is_hours_axis.EQ.0) THEN 
-            WRITE(SYM,80) IHR
-	    CALL scinot_d(XTEMP1,td,0.,CSIZE,2,SYM,0,wid,xfact_d, tfact_d)
-	 ENDIF
-         IF (is_hours_axis .GT. 0) THEN
-	    IF (IMIN .EQ. 0) THEN
-               WRITE(SYM,82) IHR
-	       CALL scinot_d(XTEMP1,td,0.,CSIZE,5,SYM,0,wid,xfact_d, tfact_d)
-	    ENDIF
-	 ENDIF
-      ENDIF
+	IF(IABS(LABEL).NE.1.OR.IHR.NE.IHDB*(IHR/IHDB)) GO TO 11
+C      ELSE:
+	WRITE(SYM,80) IHR
+80	FORMAT(I2.2)
+	CALL SCINOT(XTEMP1,T,90.,CSIZE,2,SYM,0,WID,XFACT,TFACT)    
+ 11     CONTINUE
 
 c ----  count number of large tics. If no large tics will be drawn
 c ----  then will want to draw graticule lines at the small ones.
@@ -276,7 +191,7 @@ c Set itime1, itime3 as above
 
       ITIME=ITIME1
       CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
-      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
+      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
       ITIME = ITIME3
 
 C      LOOP:
@@ -290,15 +205,7 @@ C      LOOP:
 	IF(ITIME(13:14)//ITIME(1:12) .LE.
      .       ITIME2(13:14)//ITIME2(1:12)) THEN
            IF(IHR.EQ.0) ltic = ltic + 1
-	   IF (is_hours_axis .GT. 0) THEN
-	      IF (difft.LE.12 .AND. sec.EQ.0.) THEN
-	         ltic = ltic+1
-	      ELSE
- 	         IF (imin.EQ.0. .AND. ihr.NE.0) ltic = ltic+1
-	      ENDIF
-	   ENDIF
-
-	   GO TO 110
+           GO TO 110
         ENDIF
      
 ! IF no large tics, and if graticules at just the large tics were
@@ -323,7 +230,7 @@ C      LOOP:
       ITIME=ITIME1
       CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
 
-      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
+      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
       ITIME = ITIME3
 c ----
 
@@ -349,10 +256,7 @@ C      LOOP:
 
 20	CONTINUE
 	CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
-
-	hvytic = ((is_hours_axis.EQ.0 .AND. IHR.EQ.0) .OR.
-     .            (is_hours_axis.GT.0 .AND. MOD(imin,labint).EQ.0))
-	IF(hvytic)THEN
+	IF(IHR.EQ.0)THEN
 	    CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,IHVY)
             
               IF ((solid1.OR.dashed1) .AND. hline) THEN ! make line across
@@ -369,17 +273,8 @@ C      LOOP:
               ENDIF
 
 	ELSE
-
-              IF (is_hours_axis.GT.0) THEN
-                 IF (MOD(imin,ticint).EQ.0) THEN
-                    CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,INML)
-                 ELSE
-                    CALL PLOT(X,T+TIC,1,0)
-                 ENDIF
-              ELSE
-                 CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,INML)
-              ENDIF
-
+	    CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,INML)
+            
                  IF ((solid1.OR.dashed1) .AND. hline) THEN ! make line across
                     CALL COLOR(color1)
                     IF (dashed1) THEN
@@ -395,29 +290,12 @@ C      LOOP:
 
 	ENDIF
 C         THE LABELS
-
-	  IF (IABS(LABEL).EQ.1) THEN
-             IF (is_hours_axis .GT. 0) THEN
-	        IF (imin .EQ. 0) THEN
-	           WRITE(SYM,82) IHR
-	           CALL scinot_d(XTEMP1,Td+TICd,0.,CSIZE,5,SYM,0,wid,xfact_d, tfact_d)
-		ELSE
-                   IF (MOD(imin,labint) .EQ. 0) THEN
-		      WRITE(SYM,84) ihr, imin
-	              CALL scinot_d(XTEMP1,Td+TICd,0.,CSIZE,5,SYM,0,wid,xfact_d, tfact_d)
-		   ENDIF
-		ENDIF
-             ELSE
-	        IF(IHR.EQ.IHDB*(IHR/IHDB)) THEN
-	           WRITE(SYM,80) IHR
-	           CALL scinot_d(XTEMP1,Td+TICd,0.,CSIZE,2,SYM,0,wid,xfact_d, tfact_d)
-	        ENDIF
-             ENDIF
-
-	  ENDIF
-
-          CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
-
+	IF(IHDB.EQ.0.OR.IABS(LABEL).NE.1) GO TO 50
+	IF(IHR.NE.IHDB*(IHR/IHDB)) GO TO 50
+	WRITE(SYM,80) IHR
+	CALL SCINOT(XTEMP1,T+TIC,90.,CSIZE,2,SYM,0,WID,XFACT,TFACT)
+50	CONTINUE
+	CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
 	IF(IDDB.EQ.0.OR.IABS(LABEL).NE.1) GO TO 70
 	CALL TIME3(ITIME3,IYR3,IMON3,IDAY3,IHR3,IMIN3,ISEC3,ICEN3)
 	IF(IDAY.EQ.IDAY3) GO TO 70
@@ -443,29 +321,27 @@ C             ELSE:
 70	CONTINUE
 	ITIME=ITIME3
 	T=T+TIC
-	td = td + ticd
-	t=td
 c	IF(ITIME.LE.ITIME2) GO TO 10
         IF(ITIME(13:14)//ITIME(1:12) .LE.
      .       ITIME2(13:14)//ITIME2(1:12)) GO TO 10
-
 	IF(IDDB.EQ.0) RETURN
+	IF(IABS(LABEL).EQ.1.AND.IDAY.EQ.IDDB*(IDAY/IDDB)
+     .	.AND.IHR3.GE.4)THEN
+	    CALL TIME2(ITIME,SYM)
+	    READ(SYM,55) DATE, YEAR
+* TMAP mod 8/11/89 *sh*                                 
+! original:  ("mon" --> "date")                           
+!	    TSYM=TDAY+(T-TDAY-SYMWID(1.5*CSIZE,6,MON)/TFACT)*.5
+!	    CALL SYMBEL(XTEMP2,TSYM,90.,1.5*CSIZE,6,MON)
 
-      IF(IABS(LABEL).EQ.1 .AND. IDAY.EQ.IDDB*(IDAY/IDDB) ) THEN
-         IF (is_hours_axis.GT.0 .OR. IHR3.GE.4) THEN
-           CALL TIME2(ITIME,SYM)
-	   READ(SYM,55) DATE, YEAR
-	   IF (MONYRLAB) THEN
+           IF (MONYRLAB) THEN
 	      WRITE (BUFF, 65) DATE, YEAR
               TSYM=TDAY+(T-TDAY-SYMWID(CSIZE,14,BUFF)/TFACT)*.5
-              CALL SYMBEL(XTEMP2,TSYM,90.,CSIZE,14,BUFF)
-           ELSE
-              TSYM=TDAY+(T-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
-	      CALL SYMBEL(XTEMP2,TSYM,90.,90.,CSIZE,14,BUFF)
-           ENDIF
-
-         ENDIF
-      ENDIF
-
-      RETURN
-      END
+	      CALL SYMBEL(XTEMP2,TSYM,90.,CSIZE,14,BUFF)
+	   ELSE
+	      TSYM=TDAY+(T-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
+	      CALL SYMBEL(XTEMP2,TSYM,90.,1.5*CSIZE,6,DATE)
+	   ENDIF
+	ENDIF
+	RETURN
+	END
diff --git a/ppl/plotlib/tayis3.F b/ppl/plotlib/tayis3.F
index 064ab4a..8f778f0 100644
--- a/ppl/plotlib/tayis3.F
+++ b/ppl/plotlib/tayis3.F
@@ -59,7 +59,8 @@ C *acm* 03/04  new arguments and code for plotting graticule lines across plot.
 C *acm*  3/10  Bug 670 fixed: New flag MULTICENFLAG for multi-decade plots, 
 C              do not make small tics by default.
 C V695 *acm*  5/15 Restore color after a graticule using defined color 0
-
+C V695 *acm*  5/15 Restore color after a graticule using defined color 0
+C v7   *acm*  6/16 Fix ticket 2436: # characters used in time-axis labels 
 
 C**
 C**    @(#)tayis3.f	1.1    3/10/88
@@ -380,8 +381,8 @@ C         THE LABELS
 30	FORMAT(6X,A3,4X,A2,A2)
 	WRITE(SYM,40)MON,YR
 40	FORMAT(A3,' ',A2)
-        TSYM=T+(TIC-SYMWID(CSIZE,NC,SYM)/TFACT)*.5
-        CALL SYMBEL(XTEMP1,TSYM,90.,CSIZE,NC,SYM)
+        TSYM=T+(TIC-SYMWID(CSIZE,NC,SYM(:NC))/TFACT)*.5
+        CALL SYMBEL(XTEMP1,TSYM,90.,CSIZE,NC,SYM(:NC))
 50	CONTINUE
 	IF(IYDB.EQ.0.OR.NC.EQ.6) GO TO 70
 	IF(IYR.EQ.IYR3) GO TO 70
@@ -392,8 +393,8 @@ C             ELSE:
 	    READ(SYM,30)MON,CEN,YR
 	    WRITE(SYM,55)CEN,YR
 55	    FORMAT(A2,A2)
-	    TSYM=TYR+(T+TIC-TYR-SYMWID(1.4*CSIZE,4,SYM)/TFACT)*.5
-	    CALL SYMBEL(XTEMP2,TSYM,90.,1.4*CSIZE,4,SYM)
+	    TSYM=TYR+(T+TIC-TYR-SYMWID(1.4*CSIZE,4,SYM(:4))/TFACT)*.5
+	    CALL SYMBEL(XTEMP2,TSYM,90.,1.4*CSIZE,4,SYM(:4))
 	ENDIF
 60	TYR=T+TIC
 70	CONTINUE
@@ -417,8 +418,8 @@ C     ELSE:
 	    CALL TIME2(ITIME,SYM)
 	    READ(SYM,30)MON,CEN,YR
 	    WRITE(SYM,55)CEN,YR
-	    TSYM=TYR+(T-TYR-SYMWID(1.4*CSIZE,4,SYM)/TFACT)*.5
-	    CALL SYMBEL(XTEMP2,TSYM,90.,1.4*CSIZE,4,SYM)
+	    TSYM=TYR+(T-TYR-SYMWID(1.4*CSIZE,4,SYM(:4))/TFACT)*.5
+	    CALL SYMBEL(XTEMP2,TSYM,90.,1.4*CSIZE,4,SYM(:4))
 	ENDIF
 C
 C     THE SECTION OF CODE THAT PUTS ON THE SMALL TIC MARKS.
diff --git a/ppl/plotlib/tayis0.F b/ppl/plotlib/tayis4.F
similarity index 91%
copy from ppl/plotlib/tayis0.F
copy to ppl/plotlib/tayis4.F
index 3cdef71..c36f82f 100644
--- a/ppl/plotlib/tayis0.F
+++ b/ppl/plotlib/tayis4.F
@@ -1,4 +1,4 @@
-	SUBROUTINE TAYIS0(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IHDB,IDDB,
+	SUBROUTINE TAYIS4(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IHDB,IDDB,
      *	TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline,color0,is_hours_axis)
 
 *
@@ -34,33 +34,11 @@
 *  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*                                                 
+* From tayis0: separate routijne for hour:min labeling on time axes
 *
-*
-* revised for TMAP
-* from PPLUS :
-*	Directory PMEL:[PLOT5.PPLV11.PLOTLIB]TAYIS0.FOR
-
-* search for "TMAP" to find all revisions
-* *sh*  - 1/23/89 added interrupt detection
-*		  ... no explicit declarations (too much trouble !) so it must
-*		      be compiled with /WARNINGS=NODECLARATIONS
-* *sh*  - 8/11/89 FERRET 2.00 (modelled after TAXIS0 correction)
-*       - changed "mon" to "date" in calls to SYMWID and SYMBEL.
-*         "mon" is the wrong data type                          
-
-* *jd* Mod for 4 digit years 11.27.95
-C *kob* 04/07/96 passed in character strings had to be declared 
-C                with "*(*)" for the linux port 
-C *acm* 24/01/00 Y2k Bug --Put century at start when comparing 
-C                 ITIME to ITIME2 at loop 10
-C *acm* 03/04  new arguments and code for plotting graticule lines across plot. 
-C V65  *acm*  1/10 New time-axis style for DAY and MONTH, DMY: adds the
-C                  year to DAY,MONTH or to MONTH.
-C V695 *acm*  5/15 Restore color after a graticule using defined color 0
-C V695 *acm*  9/15 Changes for hour:min labeling on time axes
-
 C**
-C**    @(#)tayis0.f	1.1    3/10/88
+C**    @(#)tayis4.f     1.1   12/09/15
 C**
 C**
 C***********************************************************************
@@ -112,7 +90,7 @@ C
 	REAL*8  DIFF, difft
 	REAL*8  td, xtemp1, tfact_d, xfact_d
 	REAL    delt, rem
-	INTEGER is_hours_axis, labint, ticint
+	INTEGER is_hours_axis, labint, ticint, hrint
 	LOGICAL hvytic
 
 * Parameters for drawing tics across plot
@@ -156,12 +134,24 @@ C     SET PARAMETERS.
         delt = 60.
         labint = 120
 	ticint = labint
+	hrint = 1
       
 ! On short-time interval axes, tic and label interval
+! for hours axis (is_hours_axis eq 1) if difft > 60,
+! then labint, ticint should be on the hour or half hour, so
+! multiples of 30.
+! for more than 12 hours, label on a multiple of even hours, 
+! up to a max of 36 hours labeled hh:mm
+      
 	IF (is_hours_axis.EQ.1) THEN
            labint = 30
            delt = 1.
 	   ticint = 5
+           IF (difft .GE.  300) labint = 60
+           IF (difft .GE.  600) labint = 120
+	   IF (difft .GE.  300) ticint = 30
+           IF (difft .GE. 1200) hrint = 2
+           IF (difft .GE. 1800) hrint = 4
         ENDIF
         IF (is_hours_axis.EQ.2) THEN
            labint = 10
@@ -239,7 +229,7 @@ C
 
 	tfact_d = tfact
 	xfact_d = xfact
-	
+
         CALL PLOT(X,TLO,0,0)
 	IF(IHR.EQ.0 .AND.is_hours_axis.EQ.0 )THEN
            CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
@@ -396,13 +386,14 @@ C      LOOP:
 	ENDIF
 C         THE LABELS
 
+
 	  IF (IABS(LABEL).EQ.1) THEN
              IF (is_hours_axis .GT. 0) THEN
-	        IF (imin .EQ. 0) THEN
+	        IF (imin.EQ.0 .AND. MOD(ihr,hrint).EQ.0) THEN
 	           WRITE(SYM,82) IHR
 	           CALL scinot_d(XTEMP1,Td+TICd,0.,CSIZE,5,SYM,0,wid,xfact_d, tfact_d)
 		ELSE
-                   IF (MOD(imin,labint) .EQ. 0) THEN
+                   IF (MOD(imin,labint) .EQ. 0 .AND. hrint.LE.1) THEN
 		      WRITE(SYM,84) ihr, imin
 	              CALL scinot_d(XTEMP1,Td+TICd,0.,CSIZE,5,SYM,0,wid,xfact_d, tfact_d)
 		   ENDIF
diff --git a/ppl/plotlib/xaxis1.F b/ppl/plotlib/xaxis1.F
index 1fad8a5..a698f37 100644
--- a/ppl/plotlib/xaxis1.F
+++ b/ppl/plotlib/xaxis1.F
@@ -1,5 +1,5 @@
       SUBROUTINE XAXIS1(XLO,XHI,XTIC,NSMTCX,LINTX,XUNIT,LABEL,
-     *    IFORMT,XFACT,Y,YFACT,CSIZE,yacross,xdms,vgrat,vcolor,
+     *    IFORMT,XFACT,Y,YFACT,CSIZE,yacross,xdms,xdspac,vgrat,vcolor,
      *    vline, xvaloff, color0)
 
 *
@@ -54,6 +54,9 @@ C              (axis data was read as double precision and converted to single
 C              after applying an offset.)
 C V695 *acm*  5/15 Restore color after a graticule using defined color 0
 C V695 *acm*  5/15 for PyFerret draw lines and tics only once, avoiding overdrawing.
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 
 C**
 C**    @(#)xaxis1.f	1.1    3/10/88
@@ -66,8 +69,13 @@ C**
 C***********************************************************************
 C**
 C**
+C**
+
+        INTEGER xdms, xdspac
+	CHARACTER*1 LETTER
+	REAL SYMWID, spacwid
+	LOGICAL do_shift
 
-        INTEGER xdms
 * Parameters for drawing tics across plot
 
         REAL yacross, dash1, dash2,dash3,dash4, xvaloff
@@ -191,17 +199,43 @@ C
 		X=XT
 	ENDIF
 	ISTOP=INT((XHI-X)/(XTIC*LINTX)+0.000001)
+	LETTER = ' '
+
+	TEMP=SIGSZ*X/XUNIT
+	CALL NUMCDE(TEMP,XLAB,LETTER,NC,IFORMT,xdms)
+
+	spacwid = 0.
+	do_shift = INDEX(XLAB, '#')  ! longitude or latitude labels
+	IF (do_shift) spacwid = SYMWID(ABSSZ,1,'E')
 
 	x0 = x
 	DO 200 I=0,ISTOP
 	IF ( interrupted ) RETURN		! TMAP interrupt
         TEMP=SIGSZ*X/XUNIT
         IF (xvaloff .EQ. 0) THEN
-          CALL NUMCDE(TEMP,XLAB,NC,IFORMT,xdms)
+          CALL NUMCDE(TEMP,XLAB,LETTER,NC,IFORMT,xdms)
         ELSE
-          CALL NUMCDE_OFF (TEMP,XLAB,NC,IFORMT,xdms,xvaloff)
+          CALL NUMCDE_OFF (TEMP,XLAB,LETTER,NC,IFORMT,xdms,xvaloff)
         ENDIF
-        CALL SCINOT(X,YTEMP,0.,ABSSZ,NC,XLAB,0,WID,XFACT,YFACT)
+
+* Drawing the label without E/W or N/S, which is done separately.
+* Adjust X location to allow for that.
+
+	IF (do_shift) spacwid = SYMWID(ABSSZ,1,LETTER)
+
+	IF (xdspac .GT. 0) THEN
+	   XTEMP = X - (0.5*spacwid + 0.5*xdspac*spacwid)/XFACT 
+	ELSE
+	   XTEMP = X - 0.5*spacwid/XFACT 
+	ENDIF
+
+	CALL SCINOT(XTEMP,YTEMP,0.,ABSSZ,NC,XLAB,0,WID,XFACT,YFACT)
+        IF (LETTER .NE. ' ') THEN
+	   NL = 1
+	   XL = XTEMP + 0.5*(WID + 0.5*xdspac*spacwid)/XFACT  ! 0.5* for horiz. centering
+	   YL = YTEMP - 0.5*ABSSZ/YFACT                       ! SCINOT centers vertically
+	   CALL SYMBEL(XL,YL,0.,ABSSZ,NL,LETTER)
+	ENDIF
 
 CC	Original code
 CC	X=X+XTIC*LINTX
diff --git a/ppl/plotlib/yaxis1.F b/ppl/plotlib/yaxis1.F
index 1939f51..dcd8891 100644
--- a/ppl/plotlib/yaxis1.F
+++ b/ppl/plotlib/yaxis1.F
@@ -1,5 +1,5 @@
       SUBROUTINE YAXIS1(X,XFACT,YLO,YHI,YTIC,NSMTCY,LINTY,YUNIT,LABEL,
-     *    IFORMT,YFACT,CSIZE,xacross,ydms,hgrat,hcolor,hline,
+     *    IFORMT,YFACT,CSIZE,xacross,ydms,ydspac,hgrat,hcolor,hline,
      *    yvaloff, noylab, SHRINKY, color0)
 
 *
@@ -58,6 +58,10 @@ C              after applying an offset.)
 C V695 *acm*  5/15 Restore color after a graticule using defined color 0
 C V695 *acm*  5/15 for PyFerret draw lines and tics only once, avoiding overdrawing.
 C V695 *acm* 10/15 Fix ticket 2320 - missing minor tic marks
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
+
 C**
 C**    @(#)yaxis1.f	1.1    3/10/88
 C**
@@ -69,7 +73,11 @@ C**
 C***********************************************************************
 C**
 C**
-        INTEGER ydms
+        INTEGER ydms, ydspac
+	CHARACTER*1 letter
+	REAL SYMWID, spacwid
+	LOGICAL do_shift
+
 * Parameters for drawing tics across plot
 
         REAL xacross, dash1, dash2, dash3, dash4
@@ -188,31 +196,32 @@ C
 		XTEMP=0.
 	ELSE
 		XTEMP=TLY*0.5
-	ENDIF
+	ENDIF	
+	
+	LETTER = ' '
 	IF(LABEL.EQ.1)THEN
            IF (yvaloff .EQ. 0.) THEN
-	      CALL NUMCDE(SIGSZ*YLO/YUNIT,YLAB,NC,IFORMT,ydms)
+	      CALL NUMCDE(SIGSZ*YLO/YUNIT,YLAB,LETTER,NC,IFORMT,ydms)
            ELSE
-	      CALL NUMCDE_OFF(SIGSZ*YLO/YUNIT,YLAB,NC,IFORMT,ydms,
+	      CALL NUMCDE_OFF(SIGSZ*YLO/YUNIT,YLAB,LETTER,NC,IFORMT,ydms,
      .              yvaloff)
            ENDIF
 	   CALL SCINOT(0.,0.,0.,ABSSZ,NC,YLAB,3,WID,
      .             XFACT,YFACT)
 
            IF (yvaloff .EQ. 0.) THEN
-	      CALL NUMCDE(SIGSZ*YHI/YUNIT,YLAB,NC,IFORMT,ydms)
+	      CALL NUMCDE(SIGSZ*YHI/YUNIT,YLAB,LETTER,NC,IFORMT,ydms)
            ELSE
-	      CALL NUMCDE_OFF(SIGSZ*YHI/YUNIT,YLAB,NC,IFORMT,ydms,
-     .              yvaloff)
+	      CALL NUMCDE_OFF(SIGSZ*YHI/YUNIT,YLAB,LETTER,NC,IFORMT,ydms,yvaloff)
            ENDIF
 	   CALL SCINOT(0.,0.,0.,ABSSZ,NC,YLAB,3,WID1,
      .             XFACT,YFACT)
 
 	   IF(YLO.LT.0..AND.YHI.GT.0.)THEN
               IF (yvaloff .EQ. 0.) THEN
-                 CALL NUMCDE(0.,YLAB,NC,IFORMT,ydms)
+                 CALL NUMCDE(0.,YLAB,LETTER,NC,IFORMT,ydms)
               ELSE
-                 CALL NUMCDE_OFF(0.,YLAB,NC,IFORMT,ydms,yvaloff)
+                 CALL NUMCDE_OFF(0.,YLAB,LETTER,NC,IFORMT,ydms,yvaloff)
               ENDIF
 	      CALL SCINOT(0.,0.,0.,ABSSZ,NC,YLAB,3,WID2,
      *			XFACT,YFACT)
@@ -221,8 +230,10 @@ C
 	   ENDIF
 	   XTEMP=XTEMP+AMAX1(WID,WID1,WID2)
 	ENDIF
+	
 	YWID=0.75*ABSSZ+XTEMP
-	XTEMP=X+LABEL*YWID/XFACT
+	XTEMP=X+LABEL*YWID/XFACT  
+
 	IF(DIR*YLO.LE.0.AND.DIR*YHI.GE.0)THEN
 		Y=INT(YLO/(YTIC*LINTY)-0.000001)*YTIC*LINTY
 	ELSE
@@ -242,12 +253,12 @@ C (ITYPE=3 arg to SCINOT)
 	IF ( interrupted ) RETURN		! TMAP interrupt
         TEMP=SIGSZ*Y/YUNIT
         IF (yvaloff .EQ. 0) THEN
-           CALL NUMCDE(TEMP,YLAB,NC,IFORMT,YDMS)
+           CALL NUMCDE(TEMP,YLAB,LETTER,NC,IFORMT,ydms)
         ELSE
-           CALL NUMCDE_OFF(TEMP,YLAB,NC,IFORMT,YDMS,yvaloff)
+           CALL NUMCDE_OFF(TEMP,YLAB,LETTER,NC,IFORMT,ydms,yvaloff)
         ENDIF
         CALL SCINOT(XTEMP,Y,0.,ABSSZ,NC,YLAB,3,WID,XFACT,YFACT)
-
+	
 	Y=y0+YTIC*LINTY*(i+1)
 	if (abs(y) .lt. epsilon*abs(y0)) y = 0.0
 
@@ -265,18 +276,46 @@ C (ITYPE=3 arg to SCINOT)
 
 	YWIDT=0.
 	Y = YSAVE
+	LETTER = ' '
 
-* Now make the labels.
+        TEMP=SIGSZ*Y/YUNIT
+	CALL NUMCDE(TEMP,YLAB,LETTER,NC,IFORMT,ydms)
+	
+	spacwid = 0.
+	do_shift = INDEX(YLAB, '#')  ! longitude or latitude labels
+	IF (do_shift) spacwid = SYMWID(ABSSZ,1,'N')
 
+* Now make the labels. 
 	DO 200 I=0,ISTOP
 	IF ( interrupted ) RETURN		! TMAP interrupt
         TEMP=SIGSZ*Y/YUNIT
         IF (yvaloff .EQ. 0) THEN
-           CALL NUMCDE(TEMP,YLAB,NC,IFORMT,YDMS)
+           CALL NUMCDE(TEMP,YLAB,LETTER,NC,IFORMT,ydms)
         ELSE
-           CALL NUMCDE_OFF(TEMP,YLAB,NC,IFORMT,YDMS,yvaloff)
+           CALL NUMCDE_OFF(TEMP,YLAB,LETTER,NC,IFORMT,ydms,yvaloff)
         ENDIF
-        CALL SCINOT(XTEMP,Y,0.,ABSSZ,NC,YLAB,1,WID,XFACT,YFACT)
+
+* Letter E/W or N/S is added separatly.  Need a space for that plus
+* any extra requested space.
+
+	IF (do_shift) spacwid = SYMWID(ABSSZ,1,LETTER)
+
+	XL = XTEMP
+	IF (label .EQ. -1) THEN
+	   IF (ydspac .GT. 0) THEN
+	      XL = XTEMP - (0.5*spacwid + 0.5*ydspac*spacwid)/XFACT 
+	   ELSE
+	      XL = XTEMP - spacwid/XFACT 
+	   ENDIF
+	ENDIF
+
+        CALL SCINOT(XL,Y,0.,ABSSZ,NC,YLAB,1,WID,XFACT,YFACT)
+        IF (letter .NE. ' ') THEN
+	   NL = 1
+	   XL = XL + 0.5*(0.5*ydspac*spacwid)/XFACT  ! SCINOT called with right-justify
+	   YL = Y - 0.5*ABSSZ/YFACT             ! SCINOT centers vertically
+	   CALL SYMBEL(XL,YL,0.,ABSSZ,NC,LETTER)
+	ENDIF
 
 CC	Original code
 CC	Y=Y+YTIC*LINTY
@@ -284,13 +323,14 @@ CC	Y=Y+YTIC*LINTY
 	Y=y0+YTIC*LINTY*(i+1)
 	if (abs(y) .lt. epsilon*abs(y0)) y = 0.0
 
-	IF(WID.GT.YWIDT)YWIDT=WID
+	IF(WID.GT.YWIDT) YWIDT=WID 
 200	CONTINUE
 	IF(LABEL.LT.0)THEN 
            IF (YDMS .GE. 2) ywidt = ywidt - symwid(abssz,1,'''')
            YWID=YWID+YWIDT
         ENDIF
-
+	
+	YWID = YWID + spacwid + 0.5*ydspac*spacwid
 	RETURN
 	END
 
diff --git a/ppl/pplepic/Makefile b/ppl/pplepic/Makefile
index 5817849..b961bf7 100644
--- a/ppl/pplepic/Makefile
+++ b/ppl/pplepic/Makefile
@@ -19,12 +19,6 @@ include ./LIB_NAME
 OBJS = $(SRCS_C:.c=.o) $(SRCS_F:.F=.o)
 
 # change the standard rules for .F -> .o builds so $(PPLUS_FFLAGS) is used
-
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(PPLUS_FFLAGS) -c $*.f	 
-
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/ppl/pplusr/Makefile b/ppl/pplusr/Makefile
index 5817849..b961bf7 100644
--- a/ppl/pplusr/Makefile
+++ b/ppl/pplusr/Makefile
@@ -19,12 +19,6 @@ include ./LIB_NAME
 OBJS = $(SRCS_C:.c=.o) $(SRCS_F:.F=.o)
 
 # change the standard rules for .F -> .o builds so $(PPLUS_FFLAGS) is used
-
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(PPLUS_FFLAGS) -c $*.f	 
-
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/ppl/symlib/Makefile b/ppl/symlib/Makefile
index 5817849..b961bf7 100644
--- a/ppl/symlib/Makefile
+++ b/ppl/symlib/Makefile
@@ -19,12 +19,6 @@ include ./LIB_NAME
 OBJS = $(SRCS_C:.c=.o) $(SRCS_F:.F=.o)
 
 # change the standard rules for .F -> .o builds so $(PPLUS_FFLAGS) is used
-
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(PPLUS_FFLAGS) -c $*.f	 
-
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/ppl/tmap_inc/axis_inc.decl b/ppl/tmap_inc/axis_inc.decl
index 04bb9b4..ef8e22e 100644
--- a/ppl/tmap_inc/axis_inc.decl
+++ b/ppl/tmap_inc/axis_inc.decl
@@ -10,6 +10,12 @@
 *               as single-precision
 * V683 *acm*  9/12 MOD_VS_X and MOD_VS_Y. For PLOT/VS plots, data are treated as 
 *               modulo, if they have units of longitude.
+* V7    *acm* 6/16 Ticket 2434: MODE LONG_LABEL and LATIT_LABEL w/ arguments 
+*                  for Deg-Min-Sec and for spacing between the number and 
+*                  the EW or NS label
+* V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
+*                  DEGMINSEC=1 for Deg-Min axis labels, =2 for Deg-Min-Sec. Default = 1
+*                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 
 	REAL*4	XLO
 	REAL*4	XHI
@@ -50,6 +56,8 @@
 	LOGICAL MOD_VS_Y
         INTEGER XDMS
         INTEGER YDMS
+        INTEGER XDSPAC
+        INTEGER YDSPAC
         REAL*4    XVALOFF
         REAL*4    YVALOFF
 c
diff --git a/ppl/tmap_inc/cont_inc.decl b/ppl/tmap_inc/cont_inc.decl
index a79199d..7727dfb 100644
--- a/ppl/tmap_inc/cont_inc.decl
+++ b/ppl/tmap_inc/cont_inc.decl
@@ -23,6 +23,8 @@ c  v581 *acm* 3/05 add flags for use of open levels (-INF) (INF)
 	INTEGER	IAUTOC
 	INTEGER	NLEV2
 	INTEGER	NSIGC
+	INTEGER	INISIG
+	INTEGER	NEWSIG
 	INTEGER CONTOUR_FEWER
 	INTEGER intlev
 	
diff --git a/ppl/tmap_inc/lines_inc.decl b/ppl/tmap_inc/lines_inc.decl
index af6f79f..0c80406 100644
--- a/ppl/tmap_inc/lines_inc.decl
+++ b/ppl/tmap_inc/lines_inc.decl
@@ -7,6 +7,7 @@
 * v695 *acm*	Move ribbon-fast control here
 * v696 *acm*	gap_var to define seperate line segments on PLOT/VS plots
 *                  (LAS ticket 1597 and others)
+* V698  4/16 *acm* New PLOT/NTH=
 
 	INTEGER	IMARK
 	REAL*4	HMARK
@@ -23,6 +24,7 @@
 	INTEGER	LNUM
 	INTEGER	IWIND
 	INTEGER gap_var
+	INTEGER nskpsym
 * For ribbon-plots: line plots colored-by a variable
 	LOGICAL RIBBON_FAST
 * requires: INCLUDE 'PPLV11INC:LINES.INC'                                   
diff --git a/ppl/tmap_inc/taxis_inc.decl b/ppl/tmap_inc/taxis_inc.decl
index 1f70f68..f07e500 100644
--- a/ppl/tmap_inc/taxis_inc.decl
+++ b/ppl/tmap_inc/taxis_inc.decl
@@ -3,9 +3,13 @@
 * created for TMAP usage by Steve Hankin 7/88
 * *acm*  1/15 V694   Changes to allow two time axes on plot (F-T)
 * V695  *acm*  9/15 Changes for hour:min labeling on time axes
+* V697  *acm*  1/16 Ticket 2344: if there was a time-plot underlay, use 
+*                   its delta-t for time overlay plots, and clear in disp_init
 
+*                  
 	REAL	TLO
 	REAL	DT
+	REAL	DT_SAVE
 	REAL	TCSIZE
 	INTEGER	ITYPET
 	INTEGER	NMTCT
diff --git a/ppl/tmapadds/Makefile b/ppl/tmapadds/Makefile
index 5817849..b961bf7 100644
--- a/ppl/tmapadds/Makefile
+++ b/ppl/tmapadds/Makefile
@@ -19,12 +19,6 @@ include ./LIB_NAME
 OBJS = $(SRCS_C:.c=.o) $(SRCS_F:.F=.o)
 
 # change the standard rules for .F -> .o builds so $(PPLUS_FFLAGS) is used
-
-#%.o : %.F
-#	rm -f $*.f
-#	$(CPP) -P -traditional $(CPP_FLAGS) $(<F) | sed -e 's/de    /de /g' | sed -e 's/de         /de /g' > $*.f
-#	$(F77) $(PPLUS_FFLAGS) -c $*.f	 
-
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/ppl/tmapadds/SOURCE_FILES b/ppl/tmapadds/SOURCE_FILES
index 436e773..61bd85b 100644
--- a/ppl/tmapadds/SOURCE_FILES
+++ b/ppl/tmapadds/SOURCE_FILES
@@ -60,6 +60,7 @@ set_override_opacity.F\
 set_pat_size.F\
 set_regular_plot.F\
 set_ribbon_ndx.F\
+set_t1_date.F\
 set_window_size.F\
 setax_syms.F\
 setfont.F\
diff --git a/ppl/tmapadds/compute_mnstd.F b/ppl/tmapadds/compute_mnstd.F
index 177630f..65dad9c 100644
--- a/ppl/tmapadds/compute_mnstd.F
+++ b/ppl/tmapadds/compute_mnstd.F
@@ -47,6 +47,8 @@ C**
 * v695 *acm* 9/15 ticket 2311: variance-based levels for constant variable. Also
 *                 improve accuracy of computation using real*4 bad-value sent in from
 *                 the Ferret side.
+* V698 *acm* 2/16 Re-fix 2186. The fix for 2311 broke the fix for 2186, so the test 
+*                 for data outside 3*std correction wasn't made.
 
         IMPLICIT NONE
 	include 'parampl5_dat.decl'
@@ -103,11 +105,11 @@ c If so take those into account
 	zmax_test = .FALSE.
 	zmin_test = .FALSE.
 
-	IF (lev_max .NE. rbad) THEN
+	IF (.NOT. TM_FPEQ_SNGL(lev_max, rbad)) THEN
 	   zmax_test = .TRUE.
 	   z_max_tol = DBLE(lev_max)
 	ENDIF
-	IF (lev_min .NE. rbad) THEN
+	IF (.NOT. TM_FPEQ_SNGL(lev_min, rbad)) THEN
 	   zmin_test = .TRUE.
 	   z_min_tol = DBLE(lev_min)
 	ENDIF
@@ -123,7 +125,7 @@ c Compute data mean.
 	      IF (zmax_test .AND. x.GE.z_max_tol) ok = .FALSE.
 	      IF (zmin_test .AND. x.LE.z_min_tol) ok = .FALSE.
 	      IF (ok) THEN
-  	         sum = sum + z(i)
+  	         sum = sum + x
                  n = n + 1
 	      ENDIF
 	   ENDIF
@@ -168,7 +170,9 @@ c Compute data mean.
            
 	   tol_lo = zmean - 3.*zstd
 	   tol_hi = zmean + 3.*zstd
-	   
+	   IF (zmin_test) tol_hi = MIN(tol_hi, z_max_tol)
+	   IF (zmax_test) tol_lo = MAX(tol_lo, z_min_tol)
+
 c Recompute data mean.
  
 	   sum = 0.0
@@ -177,10 +181,10 @@ c Recompute data mean.
               x = z(i)
 	      IF ( x .NE. badz) THEN
 	         ok = .TRUE.
-	         IF (zmax_test .AND. x.GE.z_max_tol) ok = .FALSE.
-	         IF (zmin_test .AND. x.LE.z_min_tol) ok = .FALSE.
+	         IF ( x .GE. tol_hi) ok = .FALSE.
+	         IF ( x. LE. tol_lo) ok = .FALSE.
 	         IF (ok) THEN
-                    sum = sum + z(i)
+                    sum = sum + x
                     n2 = n2 + 1
                  ENDIF
               ENDIF
@@ -202,8 +206,8 @@ c Recompute data mean.
 	      x = z(i)
 	      IF ( x .NE. badz) THEN
 	         ok = .TRUE.
-	         IF (zmax_test .AND. x.GE.z_max_tol) ok = .FALSE.
-	         IF (zmin_test .AND. x.LE.z_min_tol) ok = .FALSE.
+	         IF ( x .GE. tol_hi) ok = .FALSE.
+	         IF ( x. LE. tol_lo) ok = .FALSE.
 	         IF (ok) THEN
                     n2 = n2 + 1
 		    x = x - zmean2
@@ -223,6 +227,8 @@ c Recompute data mean.
 c Once more.
            tol_lo = zmean - 3.*zstd
            tol_hi = zmean + 3.*zstd
+	   IF (zmin_test) tol_hi = MIN(tol_hi, z_max_tol)
+	   IF (zmax_test) tol_lo = MAX(tol_lo, z_min_tol)
  
            sum = 0.0
            n2 = 0
@@ -230,10 +236,10 @@ c Once more.
               x = z(i)
 	      IF ( x .NE. badz) THEN
 	         ok = .TRUE.
-	         IF (zmax_test .AND. x.GE.z_max_tol) ok = .FALSE.
-	         IF (zmin_test .AND. x.LE.z_min_tol) ok = .FALSE.
+	         IF ( x .GE. tol_hi) ok = .FALSE.
+	         IF ( x. LE. tol_lo) ok = .FALSE.
 	         IF (ok) THEN
-                    sum = sum + z(i)
+                    sum = sum + x
                     n2 = n2 + 1
                  ENDIF
 	      ENDIF
@@ -252,8 +258,8 @@ c Once more.
 	      x = z(i)
 	      IF ( x .NE. badz) THEN
 	         ok = .TRUE.
-	         IF (zmax_test .AND. x.GE.z_max_tol) ok = .FALSE.
-	         IF (zmin_test .AND. x.LE.z_min_tol) ok = .FALSE.
+	         IF ( x .GE. tol_hi) ok = .FALSE.
+	         IF ( x. LE. tol_lo) ok = .FALSE.
 	         IF (ok) THEN
 		    n2 = n2 + 1
 		    x = x - zmean2
diff --git a/ppl/tmapadds/fillpoly.F b/ppl/tmapadds/fillpoly.F
index 3ed68da..8b61e3b 100644
--- a/ppl/tmapadds/fillpoly.F
+++ b/ppl/tmapadds/fillpoly.F
@@ -82,13 +82,15 @@ C
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
 * V687 *acm* 3/14 tickets 2151 and 2147: allow missing coordinate data in 3-arg 
 *                 and 4-arg plot commands. 
+* V698 *acm* 3/16 Ticket 2374: missing color when FILL extends over entire 
+*                 modulo region
 
 #ifdef double_p
       real*8 x(128),y(128), xplus
 #else
       real x(128),y(128), xplus
 #endif
-      real xt(128),yt(128),xc(128),yc(128),xtrns,ytrns
+      real xt(128),yt(128),xc(128),yc(128),xtrns,ytrns, temp_hi
       integer i,nout,fill_ndx
       real xadd, lmin, lmax
 
@@ -174,8 +176,6 @@ C
 c
 c scale and transform the vertices
 
-*jd* begin -- temporary -- no projections permitted
-
       do 5 i=1,npts
 
 	    if (itypex .gt. 1) then
@@ -218,66 +218,50 @@ c clip polygon
 c
       call clippoly(xt,yt,npts,xc,yc,nout)
 c
-      if(nout.eq.0) return
-c
+c ticket 2374
+c If the rectangle extends beyond the acmin,acmax,bcmin,bcmax rectangle on 
+c both ends, it may be because of moduloing, where the rectangle we are
+c coloring extends the entire length or height of the plot. Split the
+c rectangle into two, to fill it in.
+
+      if(nout.eq.0) THEN
+
+c This will happen only in the horizontal direction; rectangles are gathered up 
+c only in the horiz.
+         if (xt(1).LT.acmin .AND. xt(2).GT.acmax) THEN
+	    temp_hi = xt(2)
+	    xt(2) = (acmin+acmax)/2.
+	    xt(3) =  xt(2)
+	    call clippoly(xt,yt,npts,xc,yc,nout)
+	    if (nout .ne. 0) then
+	       fill_ndx = index + 2
+	       call set_fill_ndx (fill_ndx) 
+	       call FGD_GFA(nout,xc,yc)
+
+	       xt(1) = xt(2)
+	       xt(4) = xt(2)
+	       xt(2) = temp_hi
+	       xt(3) = temp_hi
+	    
+	       call clippoly(xt,yt,npts,xc,yc,nout)
+	       if (nout .ne. 0) then
+	          fill_ndx = index + 2
+	          call set_fill_ndx (fill_ndx) 
+	          call FGD_GFA(nout,xc,yc)
+
+	       endif
+	    endif
+	    nout = 0  ! all done
 
-*jd begin
-	fill_ndx = index + 2
-
-	call set_fill_ndx (fill_ndx) 
-	call FGD_GFA(nout,xc,yc)
-
-*      goto (10,50,30,10,10,20,20),ptype+3
-*c
-*c tekterminal
-*c
-* 10   goto 100
-*c
-*c window device X11
-*c
-*#ifdef X11
-* 20   if(havex)then
-*         if(.not.gksopn)then
-*            call xwinit
-*         endif
-*         call fillpolyx(xc,yc,nout,index)
-*      endif
-*#else
-* 20   continue
-*#endif
-*c
-*c check for other devices
-*c
-*100   goto (50,50,50,50,30,50,30),ptype+3
-*c
-*c meta file
-*c
-* 30   if(wrtclr)then
-*c
-*c write color map
-*c
-*         wrtclr=.false.
-*         call binbuf(float(numclr),-2.)
-*         do 31 i=1,numclr,2
-*            call binbuf(float(rdclr(i)),float(rdclr(i+1)))
-* 31      continue
-*         do 32 i=1,numclr,2
-*            call binbuf(float(grnclr(i)),float(grnclr(i+1)))
-* 32      continue
-*         do 33 i=1,numclr,2
-*            call binbuf(float(blclr(i)),float(blclr(i+1)))
-* 33      continue
-*      endif
-*c
-*c write poly
-*c
-*      call binbuf(float(index),-3.)
-*      call binbuf(float(nout),-3.)
-*      do 34 i=1,nout
-*         call binbuf(xc(i),yc(i))
-* 34   continue
-*c
-*jd end
+         endif
+
+      endif
+      if (nout .eq. 0) return
+
+      fill_ndx = index + 2
+
+      call set_fill_ndx (fill_ndx) 
+      call FGD_GFA(nout,xc,yc)
 
  50   return
 *     FATAL ERROR
diff --git a/ppl/tmapadds/get_ndx.F b/ppl/tmapadds/get_ndx.F
index 4c64db4..2a00832 100644
--- a/ppl/tmapadds/get_ndx.F
+++ b/ppl/tmapadds/get_ndx.F
@@ -56,6 +56,7 @@
 *  V62+ *acm* 6/09 fix bug 1671: data level exactly matching top of upper level 
 *                  wasnt plotted on SHADE and POLY plots
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
+* V697 *acm* 12/15 Fix ticket 2326: single level plus (inf) and/or (-inf)
 
         IMPLICIT NONE
 	include		'parampl5_dat.decl'
@@ -84,7 +85,7 @@
               lev1 = 1
               levn = nlev2
               IF (neginf) lev1 = 2
-              IF (posinf) levn = nlev2 - 1
+              IF (posinf) levn = MAX(2,nlev2-1)
 
 	      if(
      .		 (zle.and.datum.le.cmzle) 	.or.
diff --git a/ppl/tmapadds/its_gksm.c b/ppl/tmapadds/its_gksm.c
index 6f1b555..45a4c6b 100644
--- a/ppl/tmapadds/its_gksm.c
+++ b/ppl/tmapadds/its_gksm.c
@@ -41,6 +41,8 @@
  * GKS workstation is a GKSM metafile workstation
  */
 
+#include <Python.h> /* make sure Python.h is first */
+
 int its_gksm_(int *wkid)
 {
     return 0;
diff --git a/ppl/tmapadds/key.F b/ppl/tmapadds/key.F
index 91e23b9..65d0aa6 100644
--- a/ppl/tmapadds/key.F
+++ b/ppl/tmapadds/key.F
@@ -115,6 +115,8 @@
 *                  For centered labels add a level to corresp to the upper bound of 
 *                  the top color on thecolorbar, excluding any upper inf triangle.
 * V6.95 *acm* 3/15 Changes for PyFerret fonts. Scoot the vertical color key over to the left.
+* V697 *acm* 12/15 Fix ticket 2326: single level plus (inf) and/or (-inf)
+* V7.0 *acm*  6/17 Fix ticket 2440: alignment of colorbar labels, vertical colorbars.
 
         IMPLICIT NONE
 
@@ -142,13 +144,14 @@
 	include        'gkspar.inc'
 	include        'pyfonts.cmn'
 	
-	integer ndx,str_len,max_len,incr,lab_digits, nhi, ncount,
+	integer TM_LENSTR1, ndx,str_len,max_len,incr,lab_digits, nhi, ncount,
      .          lab_add, nlab, i, kount, lev1, levn, nspace, shd_lev_hi,
-     .		ITYPEX_save, ITYPEY_save
+     .		ITYPEX_save, ITYPEY_save, ic
 
+	real		SYMWID
 	real		x_inc,y_inc,px(4),py(4),rem,kpx(5),kpy(5),flaty(5),flatx(5)
 	real		xmaxx,ymaxx,vwidth,vheight,karht, ksiz_test
-	real		xx,yy,xxx,yyy, xx1, xxn, xxlen
+	real		xx,yy,xxx,yyy, xx1, xxn, xxlen, wid, xpos
         real            kx_lo_def, kx_hi_def, ky_lo_def, ky_hi_def,
      .                  val, del, x_inc_inf, y_inc_inf, frac, fixx, inc_min, 
      .                  center_add, ht_ann
@@ -181,7 +184,11 @@
 	ITYPEY = 1	
 
 * pyferret font settings
-	IF (pyfont .AND. pyf_set(icbar)) igroup = icbar
+
+	IF (pyfont) THEN
+	   igroup = fnt_all
+	   IF (pyf_set(icbar)) igroup = icbar
+	ENDIF
 
 	cont_key_keep = cont_key
 	center_add = 0.
@@ -202,6 +209,7 @@
 	IF (levn.EQ.1) ZLEV(2) = zlev(1)
         IF (neginf) lev1 = 2
         IF (posinf) levn = nlev2 - 1
+        IF (neginf.AND.posinf .AND.shd_levels.EQ.1) levn = nlev2
 
 	nofill = (levn .EQ. 1 .AND. zlev(1) .GE. 1.e33)
 	IF (nofill) GOTO 2000
@@ -329,6 +337,10 @@
               x_inc = (1.-2.*frac)*(kx_hi - kx_lo)/ REAL(shd_levels-2)
               kx_lo = kx_lo + (x_inc_inf-x_inc)
            ENDIF
+           IF (shd_levels .EQ. 1) THEN
+              x_inc = x_inc/2.
+              x_inc_inf = x_inc
+           ENDIF
         ELSEIF (neginf .OR. posinf) THEN
            IF (shd_levels .GT. ncount) THEN 
               x_inc_inf = frac* (kx_hi - kx_lo)
@@ -439,6 +451,13 @@ c	IF ( no_lines ) cont_key = .TRUE.
            IF (neginf .AND. (ndx .EQ. 2) ) THEN
               CALL key_lo_inf_horz (kpx, kpy, ndx, x_inc_inf, 
      .          annotate_key, lab_digits, ht_ann)
+              IF (posinf .AND. shd_levels.EQ.1) THEN
+                 DO i = 1,4
+                 px(i) = px(i) + x_inc
+                 ENDDO
+                 CALL key_hi_inf_horz (kpx, kpy, ndx, x_inc_inf, 
+     .             annotate_key, lab_digits, karht)
+              ENDIF
 
            ELSE IF (posinf .AND. (ndx .EQ. nhi) ) THEN
               CALL key_hi_inf_horz (kpx, kpy, ndx, x_inc_inf, 
@@ -479,7 +498,7 @@ c	IF ( no_lines ) cont_key = .TRUE.
 	     text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
 
              IF (ndx .EQ. 1 .AND. neginf) text = " "
-             IF (ndx .EQ. shd_levels+1 .AND. posinf) text = " "
+             IF (ndx .EQ. levn+1 .AND. posinf) text = " "
 
 	   xx = (kx_lo + x_inc*(center_add+real(ndx-1)))/1000.0
      .		 - karht*real(str_len)/2.0 - xorg
@@ -588,6 +607,10 @@ c	IF ( no_lines ) cont_key = .TRUE.
               y_inc = (1.-2.*frac)*(ky_hi - ky_lo)/ REAL(shd_levels-2)
               ky_lo = ky_lo + (y_inc_inf-y_inc)
            ENDIF
+           IF (shd_levels .EQ. 1) THEN
+              y_inc = y_inc/2.
+              y_inc_inf = y_inc
+           ENDIF
         ELSE IF (neginf .OR. posinf) THEN
            IF (shd_levels .GT. ncount) THEN 
               y_inc_inf = frac* (ky_hi - ky_lo)
@@ -672,6 +695,13 @@ c	IF ( no_lines ) cont_key = .TRUE.
            IF (neginf .AND. (ndx .EQ. 2) ) THEN
               CALL key_lo_inf_vert (kpx, kpy, ndx, y_inc_inf, 
      .          annotate_key, lab_digits, ht_ann)
+              IF (posinf .AND. shd_levels.EQ.1) THEN
+                 DO i = 1, 4
+                 py(i) = py(i) + y_inc
+                 ENDDO
+                 CALL key_hi_inf_vert (kpx, kpy, ndx, y_inc_inf, 
+     .             annotate_key, lab_digits, karht)
+              ENDIF
      
            ELSE IF (posinf .AND. (ndx .EQ. nhi) ) THEN
               CALL key_hi_inf_vert (kpx, kpy, ndx, y_inc_inf, 
@@ -692,8 +722,11 @@ c	IF ( no_lines ) cont_key = .TRUE.
            IF (ndx .GE. lev1 .AND. ndx .LE. levn) THEN
               val = zlev(ndx)
               IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
-	      text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
-	      if (max_len .lt. str_len) max_len = str_len
+              text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
+              if (max_len .lt. str_len) THEN
+	         max_len = str_len
+	         buff = text
+              endif
            ENDIF
 1010	continue
 
@@ -703,39 +736,81 @@ c	IF ( no_lines ) cont_key = .TRUE.
 	IF (center_key_labels) shd_lev_hi = shd_levels
 	IF (center_key_labels .AND. posinf) shd_lev_hi = shd_lev_hi-1
 
-        do 1020 ndx = lev1,shd_lev_hi,incr
-*	   WRITE OUT CORRESPONDING VALUE
-             val = zlev(ndx)
-             IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
-	     text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
-             IF (ndx .EQ. 1 .AND. neginf) text = " "
-             IF (ndx .EQ. levn+1 .AND. posinf) text = " "
+* Recompute max_len as formatted for these labels.
 
-	   xx = (kx_lo + 5.0*x_inc)/1000.0 - xorg 
-	   xx = (kx_lo + 4.5*x_inc)/1000.0 - xorg 
-	   xx = (kpx(2) + 500*karht)/1000.0 - xorg 
-	   IF (val .LT. 0. )xx = (kpx(2) + 100*karht)/1000.0 - xorg 
+	max_len = 0
+	DO ndx = lev1+1, shd_levels
+           val = zlev(ndx)
+           IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
+	   buff = 
+     .          TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
+           IF (max_len .lt. str_len) THEN
+	      max_len = str_len
+	      txt_out = buff
+	   ENDIF
+	ENDDO
+	buff = txt_out
+
+! Use SYMWID to right-justify
+! Set xpos = position of end of string, right-justify from there.
+! The hershey font needs some tweaking.
+
+        xpos = kpx(2)/ 1000.0 - xorg
 
-           IF (kuser_loc(1) .OR. kuser_loc(2)) 
-     .              xx = (kx_hi+2.*x_inc)/1000 - xorg
+        IF ((kuser_loc(1) .OR. kuser_loc(2))) xpos = (kx_hi + x_inc)/ 1000. - xorg
+	   
+        max_len = TM_LENSTR1(buff)
+        txt_out = buff(:max_len)//'X'   ! extra space between key and label
+        max_len = TM_LENSTR1(txt_out)
+
+        wid = SYMWID(karht,max_len,txt_out(:max_len))
+        xpos = xpos + wid
 
 * If klab_size negative put the key labels on the left rather than 
 * the right of the key
 
-           IF (klab_size .LT. 0) THEN
-	      xx = (kx_lo)/1000.0 - xorg -(REAL(str_len)+1.)* karht
-              txt_out = text
+        IF (klab_size .LT. 0) THEN
+           wid = SYMWID(karht,1,'X')
+           xpos = kx_lo/1000.0 - xorg - wid
+        ENDIF
 
-* If the key labels are to the right, right-justify them.
+* If the user set the label size, leave it.  Otherwise make labels smaller
+* to try to fit them on the page.
 
-           ELSE
-              nspace = max_len - str_len
-              txt_out = text
-              IF (nspace .GT. 0 .AND. del.GT.1)THEN 
-                 txt_out = blanks(1:nspace)//text(1:str_len)
-                 str_len = max_len
+        IF (klab_size .NE. 0) THEN
+	      IF (xpos+xorg .GT. vwidth) xpos = vwidth - xorg - 0.1*karht
+        ELSE
+
+           ic = 0
+           DO WHILE (xpos+xorg .GT. vwidth .AND. ic.LT.5)
+
+              xpos = kpx(2)/ 1000.0 - xorg
+              IF ((kuser_loc(1) .OR. kuser_loc(2))) xpos = (kx_hi + x_inc)/ 1000. - xorg
+              karht = 0.9* karht
+	      
+              wid = SYMWID(karht,max_len,buff(:max_len))
+              xpos = xpos + wid
+              ic = ic + 1
+              IF (karht .LT. 0.06) THEN 
+		    xpos = vwidth - xorg - 0.1*karht
+		    EXIT ! from loop
               ENDIF
-           ENDIF
+           ENDDO
+        ENDIF
+
+        do 1020 ndx = lev1,shd_lev_hi,incr
+*	   WRITE OUT CORRESPONDING VALUE
+	   val = zlev(ndx)
+	   IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
+	   text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
+	   IF (ndx .EQ. 1 .AND. neginf) text = " "
+	   IF (ndx .EQ. levn+1 .AND. posinf) text = " "
+
+* Right-justify them.
+
+	   txt_out = text
+	   wid = SYMWID(karht,str_len,txt_out)
+	   xx = xpos - WID
 
 	   yy = ( ky_lo + y_inc* (center_add+ real(ndx-1)) )/1000.0 - 
      .        yorg - 0.5*karht
diff --git a/ppl/tmapadds/reallo_envelope.c b/ppl/tmapadds/reallo_envelope.c
index 808c0e9..c7574e7 100644
--- a/ppl/tmapadds/reallo_envelope.c
+++ b/ppl/tmapadds/reallo_envelope.c
@@ -43,6 +43,7 @@
 */
 
 /*******************/
+
 #include <Python.h> /* make sure Python.h is first */
 #include <unistd.h>
 #include <stdio.h>
diff --git a/ppl/tmapadds/set_levels_shade_fill.F b/ppl/tmapadds/set_levels_shade_fill.F
index 381e3b3..227e673 100644
--- a/ppl/tmapadds/set_levels_shade_fill.F
+++ b/ppl/tmapadds/set_levels_shade_fill.F
@@ -39,6 +39,8 @@
 * V631  *acm*10/09 Fix bug 1704: LEVELS=xD was incorrect.
 * V663  *acm* 5/10 Fix bug 1744: hang if /LEVELS=v and all missing data.
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
+* V697 *acm* 12/15 Fix ticket 2326: single level plus (inf) and/or (-inf)
+* V698 *acm*  2/16 Send info that the levels are from a histogram to setlab_syms
 
         IMPLICIT NONE
 	include		'parampl5_dat.decl'
@@ -62,12 +64,16 @@
 * local declarations
 	REAL		dmin, dmax, dz, fm, znp, zmp, dzmax, del, zz
 	INTEGER		i, m, jj, il
-        LOGICAL		TM_FPEQ_SNGL
+        LOGICAL		TM_FPEQ_SNGL, isinf, redo
 
         EXTERNAL range
 
 	status = ferr_ok
 	lev_str = 'none'
+	IF (USE_HIST) lev_str = 'histogram'
+
+	znp = 0.
+	zmp = 0.
 C       
 C       IAUTOC = 1 means: compute levels from input data and number
 C                         of levels
@@ -142,7 +148,7 @@ C
 		 if (dz.lt.1) then
 		     dz = 1
 		     i = 1
-		     do il = znp,zmp+1
+		     do il = FLOOR(znp),FLOOR(zmp)+1
 		        zlev(i) = FLOAT(il)
 			i = i+1
 		     enddo
@@ -259,7 +265,11 @@ C	FIND MIN AND MAX as in lev.F from the Z levels.
               IF (DZ .GT. DZMAX) DZMAX = DZ
 110        CONTINUE
 
-	   IF (DMIN.EQ.DMAX) THEN
+	   znp = dmin
+	   zmp = dmax
+
+	   isinf = (neginf .OR. posinf)
+	   IF (.NOT.isinf .AND. (DMIN.EQ.DMAX)) THEN
 c	      NLEV2=0
 	      NLEV2=1
 	   ELSE
@@ -288,6 +298,11 @@ c	      NLEV2=0
 
               IF (posinf) zlev(nlev) = MAX (zlev(nlev), zmax+1. )
 
+	      IF (posinf .AND. neginf .AND. NLEV.EQ.3) THEN
+	         nlev = 2
+		 nlev2 = 2
+	      ENDIF
+
 C Compute the digits in the contour levels, and line characteristics
 C these will not have been set before on, say a previous SHADE plot
 C 8/07 ACM. Do this computation only for auto-level setting. If the user
@@ -330,6 +345,24 @@ C      has set levels, this is already done (and the values are different).
         ENDIF  ! openlev
 	END IF
 
+! Set ldig: If this is a contour plot, there may have been a 
+! PPL CONSET which needs to be applied.
+
+	If (NEWSIG.GT.0) then
+	IF (ZMP-ZNP .EQ. 0) THEN
+	   JJ=NSIGC
+	ELSE
+	   JJ=NSIGC-IFIX(ALOG10(ABS(ZMP-ZNP))+.5)
+	ENDIF
+	IF (JJ.LE.0) JJ=-1
+
+	DO 107 I=1,NLEV2
+	   LDIG(I)=-1
+	   IF ( TM_FPEQ_SNGL( ABS(ZLEV(I)) ,0.) ) GOTO 107
+	   LDIG(I)=JJ
+ 107	CONTINUE
+	endif
+
 * Now that the levels are set, create the LEVELS symbols
 
         CALL setlab_syms (ZLEV, MAX(NLEV2,1) )
diff --git a/ppl/tmapadds/its_gksm.c b/ppl/tmapadds/set_t1_date.F
similarity index 84%
copy from ppl/tmapadds/its_gksm.c
copy to ppl/tmapadds/set_t1_date.F
index 6f1b555..2aa6940 100644
--- a/ppl/tmapadds/its_gksm.c
+++ b/ppl/tmapadds/set_t1_date.F
@@ -1,4 +1,6 @@
-/*
+	SUBROUTINE SET_T1_DATE (t1_date, dt_min)
+
+*
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -30,19 +32,23 @@
 *  INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
 *  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.  
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*/
-
+*
+*  Pass the start time and delta-t to pplus for an overlay on 
+*  a 2-D time plot
 
+*****************************************************
+	include 'axisl_inc.decl'
+	include 'AXISL.INC'
+	include 'taxis_inc.decl'
+	include 'TAXIS.INC'
 
-/* 
- * boolean function returns 1 or 0 to tell if the given
- * GKS workstation is a GKSM metafile workstation
- */
+	CHARACTER*(*) t1_date
+	REAL*4 dt_min
 
-int its_gksm_(int *wkid)
-{
-    return 0;
-}
+	itstrt = t1_date
+	dt = dt_min
 
+	RETURN
+	END
diff --git a/ppl/tmapadds/setlab_syms.F b/ppl/tmapadds/setlab_syms.F
index 3ed6922..d5872e4 100644
--- a/ppl/tmapadds/setlab_syms.F
+++ b/ppl/tmapadds/setlab_syms.F
@@ -42,6 +42,9 @@
 * the /LEV command needed to duplicate the levels
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
+* V698 *acm*  2/16 Fix the LEV_DEL computation which was wrong for irregular levels.
+*                  Clear out-of-date symbols, for variance-based or histogram
+*                  levels on previous plots
 
 *    LEV_MIN  - lowest level used on last CONTOUR, SHADE, or FILL call.
 *    LEV_MAX -  highest level used last
@@ -64,7 +67,7 @@
 
 * Internal arguments
 
-      REAL zmax, zmin, dz, diff, diff_dz
+      REAL zmax, zmin, dz, diff
 
       CHARACTER ppl_buff*2048, TM_FMT_SNGL*10, buff*10, symbuff*120
       INTEGER TM_LENSTR1, STR_SAME, i, ier, ilen, slen, ist
@@ -121,10 +124,10 @@
             reglevs = .TRUE.
             DO 100 i=3,nlevels
                diff = ABS( zlevels(i)-zlevels(i-1) )
-               diff_dz = ABS(diff - dz)
-               IF(TM_FPEQ_SNGL(diff_dz, dz)) reglevs=.FALSE.
+               reglevs = TM_FPEQ_SNGL(diff, dz)
+	       IF (.NOT.reglevs) GOTO 110
   100       CONTINUE
-            IF (reglevs) THEN
+  110       IF (reglevs) THEN
                buff = TM_FMT_SNGL(dz, -2, 10, slen)
             ELSE
                buff = 'irregular'
@@ -145,14 +148,14 @@
       symbuff = 'LEV_OPNLEVS'
       CALL GETSYM( symbuff, ppl_buff, ist, ier )
       IF ( ier .EQ. 0 ) THEN
-         IF (STR_SAME(lev_str, 'none') .EQ. 0 ) THEN 
-	    lev_str = ppl_buff
-	 ELSE
+         IF (STR_SAME(lev_str, 'none').EQ.0 .OR. 
+     .       STR_SAME(lev_str, 'histogram').EQ.0) THEN 
             CALL DELSYM(symbuff,ier)
 	 ENDIF
       ENDIF
 
-      IF (STR_SAME(lev_str, 'none') .NE. 0 ) THEN
+      IF (STR_SAME(lev_str, 'none').NE.0 .AND. 
+     .    STR_SAME(lev_str, 'histogram').NE.0) THEN
          ilen = TM_LENSTR1(lev_str)
          ppl_buff = 'LEV_OPNLEVS '//lev_str
          ilen = TM_LENSTR1(ppl_buff)
@@ -161,6 +164,13 @@
          CALL SETSYM (ppl_buff, ilen, ier, ist)
       ENDIF
 
+* Delete any LEV_HISTO_LEVELS symbol that may be left over from a previous plot
+
+      IF (.NOT. USE_HIST) THEN
+         symbuff = 'LEV_HISTO_LEVELS'
+         CALL GETSYM( symbuff, ppl_buff, ist, ier )
+         IF (ier .EQ. 0) CALL DELSYM(symbuff,ier)
+      ENDIF
 
       RETURN
       END
diff --git a/pviewmod/cmndhelperpq.py b/pviewmod/cmndhelperpq.py
index 889ed6e..da92a3f 100644
--- a/pviewmod/cmndhelperpq.py
+++ b/pviewmod/cmndhelperpq.py
@@ -317,7 +317,7 @@ class CmndHelperPQ(object):
         # new symbol - create a SymbolPath for it
         if symbol == '.':
             path = QPainterPath()
-            path.addEllipse(-20.0, -20.0, 40.0, 40.0)
+            path.addEllipse(-10.0, -10.0, 20.0, 20.0)
             sympath = SymbolPath(path, True)
         elif symbol == 'o':
             path = QPainterPath()
diff --git a/pyfermod/__init__.py b/pyfermod/__init__.py
index c7fca67..b6e17b4 100644
--- a/pyfermod/__init__.py
+++ b/pyfermod/__init__.py
@@ -1,18 +1,10 @@
 """
-A Python module for running Ferret.
-
-A Python extension module that interfaces with Ferret functionality
-and provides methods for Ferret external functions written in Python.
-
-In this module:
+A Python module for running Ferret.  
+For running the Ferret engine that is part of this module:
     init or start must first be called to initialize Ferret
     resize can be used to resize Ferret's allocated memory block
     run is used to submit individual Ferret commands or enter
             into Ferret's command prompting mode
-    get and getdata are used to retrieve (a copy of) a Ferret
-            numeric data array
-    put and putdata is used to add (a copy of) a numeric data
-            array into Ferret
     stop can be used to shutdown Ferret and free the allocated
             memory.
 
@@ -20,19 +12,22 @@ The FERR_* values are the possible values of err_int in the return
 values from the run command.  The err_int return value FERR_OK
 indicates no errors.
 
+To transfer data and metadata between the Ferret engine and Python,
+see the help message for pyferret.datamethods, whose methods are
+imported into the pyferret module.
+
 For writing Ferret external functions in Python, see the help message
-printed by ferret_pyfunc().  Methods available to these external
-functions provided by this module are:
-    get_axis_coordinates returns the "world" coordinates for an axis
-            of an argument to the external function.
-    get_axis_box_sizes returns the "box sizes", in "world" coordinate
-            units, for an axis of an argument to the external function.
-    get_axis_box_limits returns the "box limits", in "world" coordinate
-            units, for an axis of an argument to the external function.
-    get_axis_info returns a dictionary of information about the axis
-            of an argument to the external function.
-    get_arg_one_val returns the value of an argument that is the type
-            FLOAT_ONEVAL or STRING_ONEVAL.
+for pyferret.pyefmethods, whose methods are imported into the pyferret
+module.
+
+The FerRegion, FerAxis, FerGrid, FerVar, FerPyVar, and FerDSet objects 
+assist in working with the Ferret engine in a Python environment, 
+reducing the need to know the Ferret language and syntax.
+
+The convenience methods for executing common Ferret commands are found
+under pyferret.fermethods and are imported into the pyferret module.
+These methods also help reduce the need to know the Ferret language 
+and syntax.
 """
 
 import sys
@@ -43,25 +38,45 @@ try:
 except ImportError:
     pass
 import readline
-import numpy
-import numpy.ma
-import StringIO
 
-# import everything from libpyferret so constants
-# in that module are seen as part of this module
+import libpyferret
+# also import everything (not starting with an underscore) from libpyferret 
+# so constants in that module are seen as part of this module
 from libpyferret import *
 
-# also define some calendar type string constants
-CALTYPE_360DAY = 'CALTYPE_360DAY'
-CALTYPE_NOLEAP = 'CALTYPE_NOLEAP'
-CALTYPE_GREGORIAN = 'CALTYPE_GREGORIAN'
-CALTYPE_JULIAN = 'CALTYPE_JULIAN'
-CALTYPE_ALLLEAP = 'CALTYPE_ALLLEAP'
-CALTYPE_NONE = 'CALTYPE_NONE'
-
-# register the libpyferret._quit function with atexit to ensure
-# open viewer windows do not hang a Python shutdown
-atexit.register(libpyferret._quit)
+# methods for transferring data between the Ferret engine and Python
+import datamethods
+# also import the methods given in datamethods into pyferret
+from datamethods import *
+
+# methods to assist in writing Ferret external functions written in Python
+import pyefmethods
+# also import the methods given in pyefmethods into pyferret
+from pyefmethods import *
+
+# the FerRegion, FerAxis, FerGrid, FerVar, FerPyVar, and FerDSet objects 
+# for working with Ferret from Python
+import ferregion
+from ferregion import *
+import feraxis
+from feraxis import *
+import fergrid
+from fergrid import *
+import fervar
+from fervar import *
+import ferpyvar
+from ferpyvar import *
+import ferdset
+from ferdset import *
+import feraggdset
+from feraggdset import *
+
+# Create "the" anonymous dataset
+anondset = FerDSet(qual=ferdset._anonymous_dataset_qualifier)
+
+# convenience methods for executing common Ferret commands
+import fermethods
+from fermethods import *
 
 # bindings for the PyQt-based graphics engines
 import pipedviewer.pyferretbindings
@@ -71,11 +86,6 @@ import filenamecompleter
 import graphbind
 import regrid
 
-from ferrvar import FerrVar
-from ferrdatavar import FerrDataVar
-from ferrdataset import FerrDataSet
-
-
 def init(arglist=None, enterferret=True):
     """
     Interprets the traditional Ferret options given in arglist and
@@ -100,11 +110,11 @@ def init(arglist=None, enterferret=True):
     """
 
     Usage:  pyferret  [-memsize <N>]  [-nodisplay]  [-nojnl]  [-noverify]
-                      [-secure]  [-server]  [-python]  [-version]  [-help]
-                      [-quiet]  [-batch [<filename>]]  [-transparent]
-                      [-script <scriptname> [ <scriptarg> ... ]]
+                      [-secure]  [-server]  [-python]  [-version]  [-help] 
+                      [-quiet]  [-linebuffer]  [-batch [<filename>]]  
+                      [-transparent]  [-script <scriptname> [ <scriptarg> ... ]]
 
-       -memsize:     initialize the memory cache size to <N> (default 25.6)
+       -memsize:     initialize the memory cache size to <N> (default 25)
                      mega (10^6) floats (where 1 float = 8 bytes)
 
        -nodisplay    do not display to the console; a drawing can be saved
@@ -134,6 +144,14 @@ def init(arglist=None, enterferret=True):
 
        -quiet        do not display the startup header
 
+       -linebuffer   print each line of output or error messages as soon as 
+                     a full line is written.  Useful when redirecting these
+                     messages to a file.
+                     Note: 
+                       the enviroment variable GFORTRAN_UNBUFFERED_PRECONNECTED 
+                       needs to be set to 1 in order to unbuffer the Fortran 
+                       units for output and error messages
+
        -batch:       draw to <filename> (default "ferret.png") instead of
                      displaying to the console.  The file format will be
                      guessed from the filename extension.  When using this
@@ -157,12 +175,13 @@ def init(arglist=None, enterferret=True):
     my_metaname = None
     my_transparent = False
     my_unmapped = False
-    my_memsize = 25.6
+    my_memsize = 25
     my_journal = True
     my_verify = True
     my_restrict = False
     my_server = False
     my_quiet = False
+    my_linebuffer = False
     my_enterferret = enterferret
     script = None
     # To be compatible with traditional Ferret command-line options
@@ -212,6 +231,8 @@ def init(arglist=None, enterferret=True):
                     my_server = True
                 elif opt == "-quiet":
                     my_quiet = True
+                elif opt == "-linebuffer":
+                    my_linebuffer = True
                 elif opt == "-python":
                     my_enterferret = False
                 elif opt == "-version":
@@ -251,16 +272,6 @@ def init(arglist=None, enterferret=True):
             # should not get here
             raise SystemExit
 
-    # Use tab completion for readline (for Ferret) by default
-    readline.parse_and_bind('tab: complete');
-
-    # Execute the $PYTHONSTARTUP file, if it exists and -secure not given
-    if not my_restrict:
-        try:
-            execfile(os.getenv('PYTHONSTARTUP', ''));
-        except IOError:
-            pass;
-
     # Create the list of standard ferret PyEFs to create
     std_pyefs = [ ]
     # stats_* functions that do not need scipy
@@ -466,7 +477,8 @@ def init(arglist=None, enterferret=True):
     # start ferret without journaling
     start(memsize=my_memsize, journal=False, verify=my_verify,
           restrict=my_restrict, server=my_server, metaname=my_metaname,
-          transparent=my_transparent, unmapped=my_unmapped, quiet=my_quiet)
+          transparent=my_transparent, unmapped=my_unmapped, 
+          quiet=my_quiet, linebuffer=my_linebuffer)
 
     # define all the Ferret standard Python external functions
     for fname in std_pyefs:
@@ -512,9 +524,9 @@ def init(arglist=None, enterferret=True):
     return result
 
 
-def start(memsize=25.6, journal=True, verify=True, restrict=False,
+def start(memsize=25, journal=True, verify=False, restrict=False,
           server=False, metaname=None, transparent=False,
-          unmapped=False, quiet=False):
+          unmapped=False, quiet=False, linebuffer=False):
     """
     Initializes Ferret.  This allocates the initial amount of memory
     for Ferret (from Python-managed memory), opens the journal file,
@@ -526,6 +538,8 @@ def start(memsize=25.6, journal=True, verify=True, restrict=False,
     output of graphics, and the graphics viewer will not be displayed.
     If unmapped is True, the graphics viewer will not be displayed.
     If quiet is True, the Ferret start-up header is not displayed.
+    If linebuffer is True, stdout and stderr are set user line 
+    buffering.  This cannot be reset once set.
     This routine does NOT run any user initialization scripts.
 
     Arguments:
@@ -540,6 +554,13 @@ def start(memsize=25.6, journal=True, verify=True, restrict=False,
                      transparent background?
         unmapped:    hide the graphics viewer?
         quiet:       do not display the Ferret start-up header?
+        linebuffer:  print each line of output or error messages as soon as 
+                     a full line is written?  Useful when redirecting these
+                     messages to a file.
+                     Note: 
+                       the enviroment variable GFORTRAN_UNBUFFERED_PRECONNECTED 
+                       needs to be set to 1 in order to unbuffer the Fortran 
+                       units for output and error messages
     Returns:
         True is successful
         False if Ferret has already been started
@@ -564,6 +585,7 @@ def start(memsize=25.6, journal=True, verify=True, restrict=False,
         str_metaname = ""
     else:
         str_metaname = metaname
+
     # Get the known viewer bindings
     knownengines = graphbind.knownPyFerretEngines()
     # Add PViewerPQPyFerretBindings, as "PipedViewerPQ" to the known bindings
@@ -574,10 +596,28 @@ def start(memsize=25.6, journal=True, verify=True, restrict=False,
     if not ("PipedImagerPQ" in knownengines):
         graphbind.addPyFerretBindings("PipedImagerPQ",
                   pipedviewer.pyferretbindings.PImagerPQPyFerretBindings)
+
     # the actual call to ferret's start
-    return libpyferret._start(flt_memsize, bool(journal), bool(verify),
-                              bool(restrict), bool(server), str_metaname,
-                              bool(transparent), bool(unmapped), bool(quiet))
+    success = libpyferret._start(flt_memsize, bool(journal), bool(verify),
+                                 bool(restrict), bool(server), str_metaname,
+                                 bool(transparent), bool(unmapped), 
+                                 bool(quiet), bool(linebuffer))
+    if success:
+        # register the libpyferret._quit function with atexit to ensure
+        # open viewer windows do not hang a Python shutdown
+        atexit.register(libpyferret._quit)
+
+        # Use tab completion for readline (for Ferret) by default
+        readline.parse_and_bind('tab: complete');
+
+        # Execute the $PYTHONSTARTUP file, if it exists and -secure not given
+        if not restrict:
+            try:
+                execfile(os.getenv('PYTHONSTARTUP', ''));
+            except IOError:
+                pass;
+
+    return success
 
 
 def resize(memsize):
@@ -650,892 +690,6 @@ def run(command=None):
     return retval
 
 
-def metastr(datadict):
-    """
-    Creates a string representation of the metadata in a data dictionary.
-    Print this string to show a nicely formatted display of the metadata.
-
-    Arguments:
-        datadict: a data dictionary, as returned by the getdata method.
-    Returns:
-        the string representation of the metadata in datadict.
-    Raises:
-        TypeError if datadict is not a dictionary
-    """
-    uc_month = { 1: "JAN", 2:"FEB", 3:"MAR", 4:"APR", 5:"MAY", 6:"JUN",
-                 7:"JUL", 8:"AUG", 9:"SEP", 10:"OCT", 11:"NOV", 12:"DEC" }
-    if not isinstance(datadict, dict):
-        raise TypeError("datadict is not a dictionary")
-    # specify an order of output for standard keys, leaving out "data"
-    keylist = [ "name", "title", "dset", "data_unit", "missing_value",
-                "axis_names", "axis_types", "axis_units", "axis_coords" ]
-    # append non-standard keys in alphabetical order
-    for key in sorted(datadict.keys()):
-        if (key != "data") and (key not in keylist):
-            keylist.append(key)
-    # create the metadata string using StringIO
-    strbuf = StringIO.StringIO()
-    for key in keylist:
-        try:
-            # make sure the key:value pair exists
-            val = datadict[key]
-            # just in case the key is not a string (for printing)
-            keystr = str(key)
-            if keystr == "axis_coords":
-                print >>strbuf, keystr + ":"
-                for (idx, item) in enumerate(val):
-                    # add the axis name (which will be present if coordinates
-                    # are given) as a label for the axis coordinates
-                    itemlabel = "   '" + datadict["axis_names"][idx] + "': "
-                    if datadict["axis_types"][idx] == libpyferret.AXISTYPE_TIME:
-                        # add a translation of each of the time 6-tuples
-                        strlist = [ ]
-                        for subitem in item:
-                            strlist.append(" %s = %02d-%3s-%04d %02d:%02d:%02d" % \
-                                           (str(subitem),
-                                                subitem[libpyferret.TIMEARRAY_DAYINDEX],
-                                       uc_month[subitem[libpyferret.TIMEARRAY_MONTHINDEX]],
-                                                subitem[libpyferret.TIMEARRAY_YEARINDEX],
-                                                subitem[libpyferret.TIMEARRAY_HOURINDEX],
-                                                subitem[libpyferret.TIMEARRAY_MINUTEINDEX],
-                                                subitem[libpyferret.TIMEARRAY_SECONDINDEX],) )
-                        if len(strlist) == 0:
-                           strlist.append("[]")
-                        else:
-                           strlist[0] = "[" + strlist[0][1:]
-                           strlist[-1] = strlist[-1] + "]"
-                    else:
-                        # just print the values of non-time axis coordinates
-                        strlist = str(item).split('\n')
-                    # adjust the subsequent-line-indent if multiple lines
-                    itemstr = itemlabel + strlist[0]
-                    indent = " " * len(itemlabel)
-                    for addstr in strlist[1:]:
-                        itemstr += "\n" + indent + addstr
-                    print >>strbuf, itemstr
-            elif keystr == "axis_types":
-                # add a translation of the axis type number
-                valstr = "("
-                for (idx, item) in enumerate(val):
-                    if idx > 0:
-                        valstr += ", "
-                    valstr += str(item)
-                    if item == libpyferret.AXISTYPE_LONGITUDE:
-                        valstr += "=longitude"
-                    elif item == libpyferret.AXISTYPE_LATITUDE:
-                        valstr += "=latitude"
-                    elif item == libpyferret.AXISTYPE_LEVEL:
-                        valstr += "=level"
-                    elif item == libpyferret.AXISTYPE_TIME:
-                        valstr += "=time"
-                    elif item == libpyferret.AXISTYPE_CUSTOM:
-                        valstr += "=custom"
-                    elif item == libpyferret.AXISTYPE_ABSTRACT:
-                        valstr += "=abstract"
-                    elif item == libpyferret.AXISTYPE_NORMAL:
-                        valstr += "=unused"
-                valstr += ")"
-                print >>strbuf, keystr + ": " + valstr
-            elif keystr == "missing_value":
-                # print the one value in the missing value array
-                print >>strbuf, keystr + ": " + str(val[0])
-            else:
-                # just print as "key: value", except
-                # adjust the subsequent-line-indent if multiple lines
-                strlist = str(val).split('\n')
-                valstr = strlist[0]
-                indent = " " * (len(keystr) + 2)
-                for addstr in strlist[1:]:
-                    valstr += "\n" + indent + addstr
-                print >>strbuf, keystr + ": " + valstr
-        except KeyError:
-            # known key not present - ignore
-            pass
-    strval = strbuf.getvalue()
-    strbuf.close()
-    return strval
-
-
-def getdata(name, create_mask=True):
-    """
-    Returns the numeric array and axes information for the data variable
-    described in name as a dictionary.
-
-    Arguments:
-        name: the name of the numeric data to retrieve
-        create_mask: return the numeric data array as a MaskedArray object?
-    Returns:
-        A dictionary contains the numeric data array and axes information.
-        Note that 'name' is not assigned, which is required for the putdata
-        method.  The dictionary contains the following key/value pairs:
-            'title' : the string passed in the name argument
-            'data': the numeric data array.  If create_mask is True, this
-                    will be a NumPy float64 MaskedArray object with the
-                    masked array properly assigned.  If create_mask is False,
-                    this will just be a NumPy float64 ndarray.
-            'missing_value': the missing data value.  This will be a NumPy
-                    float64 ndarray containing a single value.
-            'data_unit': a string describing the unit of the data.
-            'axis_types': a list of integer values describing the type of
-                    each axis.  Possible values are the following constants
-                    defined by the pyferret module:
-                        AXISTYPE_LONGITUDE
-                        AXISTYPE_LATITUDE
-                        AXISTYPE_LEVEL
-                        AXISTYPE_TIME
-                        AXISTYPE_CUSTOM   (axis units not recognized by Ferret)
-                        AXISTYPE_ABSTRACT (axis is unit-less integer values)
-                        AXISTYPE_NORMAL   (axis is normal to the data)
-            'axis_names': a list of strings giving the name of each axis
-            'axis_units': a list of strings giving the unit of each axis.
-                    If the axis type is AXISTYPE_TIME, this names the calendar
-                    used for the timestamps, as one of the following strings
-                    defined by the pyferret module:
-                        CALTYPE_360DAY
-                        CALTYPE_NOLEAP
-                        CALTYPE_GREGORIAN
-                        CALTYPE_JULIAN
-                        CALTYPE_ALLLEAP
-                        CALTYPE_NONE    (calendar not specified)
-            'axis_coords': a list of NumPy ndarrays giving the coordinate values
-                    for each axis.  If the axis type is neither AXISTYPE_TIME
-                    nor AXISTYPE_NORMAL, a NumPy float64 ndarray is given.  If
-                    the axis is type AXISTYPE_TIME, a NumPy integer ndarray of
-                    shape (N,6) where N is the number of time points.  The six
-                    integer values per time point are the day, month, year, hour,
-                    minute, and second of the associate calendar for this time
-                    axis.  The following constants defined by the pyferret module
-                    give the values of these six indices:
-                        TIMEARRAY_DAYINDEX
-                        TIMEARRAY_MONTHINDEX
-                        TIMEARRAY_YEARINDEX
-                        TIMEARRAY_HOURINDEX
-                        TIMEARRAY_MINUTEINDEX
-                        TIMEARRAY_SECONDINDEX
-                    (Thus, axis_coords[t, pyferret.TIMEARRAY_YEARINDEX]
-                     gives the year of time point t.)
-        Note: a relative time axis will be of type AXISTYPE_CUSTOM, with a unit
-              indicating the starting point, such as 'days since 01-JAN-2000'
-    Raises:
-        ValueError if the data name is invalid
-        MemoryError if Ferret has not been started or has been stopped
-    See also:
-        get
-    """
-    # lists of units (in uppercase) for checking if a custom axis is actual a longitude axis
-    UC_LONGITUDE_UNITS = [ "DEG E", "DEG_E", "DEG EAST", "DEG_EAST",
-                           "DEGREES E", "DEGREES_E", "DEGREES EAST", "DEGREES_EAST",
-                           "DEG W", "DEG_W", "DEG WEST", "DEG_WEST",
-                           "DEGREES W", "DEGREES_W", "DEGREES WEST", "DEGREES_WEST" ]
-    # lists of units (in uppercase) for checking if a custom axis is actual a latitude axis
-    UC_LATITUDE_UNITS  = [ "DEG N", "DEG_N", "DEG NORTH", "DEG_NORTH",
-                           "DEGREES N", "DEGREES_N", "DEGREES NORTH", "DEGREES_NORTH",
-                           "DEG S", "DEG_S", "DEG SOUTH", "DEG_SOUTH",
-                           "DEGREES S", "DEGREES_S", "DEGREES SOUTH", "DEGREES_SOUTH" ]
-    # check name
-    if not isinstance(name, str):
-        raise ValueError("name must be a string")
-    elif name.isspace():
-        raise ValueError("name cannot be an empty string")
-    # get the data and related information from Ferret
-    vals = libpyferret._get(name)
-    # break apart the tuple to simplify (returning a dictionary would have been better)
-    data = vals[0]
-    bdfs = vals[1]
-    data_unit = vals[2]
-    axis_types = vals[3]
-    axis_names = vals[4]
-    axis_units = vals[5]
-    axis_coords = vals[6]
-    # A custom axis could be standard axis that is not in Ferret's expected order,
-    # so check the units
-    for k in xrange(libpyferret.MAX_FERRET_NDIM):
-        if axis_types[k] == libpyferret.AXISTYPE_CUSTOM:
-            uc_units = axis_units[k].upper()
-            if uc_units in UC_LONGITUDE_UNITS:
-                axis_types[k] = libpyferret.AXISTYPE_LONGITUDE
-            elif uc_units in UC_LATITUDE_UNITS:
-                axis_types[k] = libpyferret.AXISTYPE_LATITUDE
-    # libpyferret._get returns a copy of the data, so no need to force a copy
-    if create_mask:
-        if numpy.isnan(bdfs[0]):
-            # NaN comparisons always return False, even to another NaN
-            datavar = numpy.ma.array(data, fill_value=bdfs[0], mask=numpy.isnan(data))
-        else:
-            # since values in data and bdfs[0] are all float64 values assigned by Ferret,
-            # using equality should work correctly
-            datavar = numpy.ma.array(data, fill_value=bdfs[0], mask=( data == bdfs[0] ))
-    else:
-        datavar = data
-    return { "title": name, "data":datavar, "missing_value":bdfs, "data_unit":data_unit,
-             "axis_types":axis_types, "axis_names":axis_names, "axis_units":axis_units,
-             "axis_coords":axis_coords }
-
-
-def get(name, create_mask=True):
-    """
-    Returns the numeric data array described in name as a TransientVariable object.
-
-    Arguments:
-        name: the name of the numeric data array to retrieve
-        create_mask: create the mask for the TransientVariable object?
-    Returns:
-        A cdms2 TransientVariable object (cdms2.tvariable) containing the
-        numeric data.  The data, axes, and missing value will be assigned.
-        If create_mask is True (or not given), the mask attribute will be
-        assigned using the missing value.
-    Raises:
-        ImportError: if the cdms2 or cdtime modules cannot be found (use getdata instead)
-        ValueError:  if the data name is invalid
-        MemoryError: if Ferret has not been started or has been stopped
-    See also:
-        getdata (does not need cdms2 or cdtime)
-    """
-    # Check (again) if able to import cdms2/cdtime.
-    # If the imports were successful before, these imports do nothing
-    try:
-        import cdms2
-        import cdtime
-    except ImportError:
-        raise ImportError("cdms2 or cdtime not found; pyferret.get not available.\n" \
-                          "             Use pyferret.getdata instead.")
-
-    # lists of units (in lowercase) for checking if a custom axis can be represented by a cdtime.reltime
-    # the unit must be followed by "since" and something else
-    LC_TIME_UNITS = [ "s", "sec", "secs", "second", "seconds",
-                      "mn", "min", "mins", "minute", "minutes",
-                      "hr", "hour", "hours",
-                      "dy", "day", "days",
-                      "mo", "month", "months",
-                      "season", "seasons",
-                      "yr", "year", "years" ]
-    lc_month_nums = { "jan":1, "feb":2, "mar":3, "apr":4, "may":5, "jun":6,
-                      "jul":7, "aug":8, "sep":9, "oct":10, "nov":11, "dec":12 }
-    # get the data and related information from Ferret,
-    # building on what was done in getdata
-    data_dict = getdata(name, create_mask)
-    data = data_dict["data"]
-    bdfs = data_dict["missing_value"]
-    data_unit = data_dict["data_unit"]
-    axis_types = data_dict["axis_types"]
-    axis_names = data_dict["axis_names"]
-    axis_units = data_dict["axis_units"]
-    axis_coords = data_dict["axis_coords"]
-    # create the axis list for this variable
-    var_axes = [ ]
-    for k in xrange(libpyferret.MAX_FERRET_NDIM):
-        if axis_types[k] == libpyferret.AXISTYPE_LONGITUDE:
-            newaxis = cdms2.createAxis(axis_coords[k], id=axis_names[k])
-            newaxis.units = axis_units[k]
-            newaxis.designateLongitude()
-            var_axes.append(newaxis)
-        elif axis_types[k] == libpyferret.AXISTYPE_LATITUDE:
-            newaxis = cdms2.createAxis(axis_coords[k], id=axis_names[k])
-            newaxis.units = axis_units[k]
-            newaxis.designateLatitude()
-            var_axes.append(newaxis)
-        elif axis_types[k] == libpyferret.AXISTYPE_LEVEL:
-            newaxis = cdms2.createAxis(axis_coords[k], id=axis_names[k])
-            newaxis.units = axis_units[k]
-            newaxis.designateLevel()
-            var_axes.append(newaxis)
-        elif axis_types[k] == libpyferret.AXISTYPE_TIME:
-            # create the time axis from cdtime.comptime (component time) objects
-            time_coords = axis_coords[k]
-            timevals = [ ]
-            for t in xrange(time_coords.shape[0]):
-                day = time_coords[t, libpyferret.TIMEARRAY_DAYINDEX]
-                month = time_coords[t, libpyferret.TIMEARRAY_MONTHINDEX]
-                year = time_coords[t, libpyferret.TIMEARRAY_YEARINDEX]
-                hour = time_coords[t, libpyferret.TIMEARRAY_HOURINDEX]
-                minute = time_coords[t, libpyferret.TIMEARRAY_MINUTEINDEX]
-                second = time_coords[t, libpyferret.TIMEARRAY_SECONDINDEX]
-                timevals.append( cdtime.comptime(year,month,day,hour,minute,second) )
-            newaxis = cdms2.createAxis(timevals, id=axis_names[k])
-            # designate the calendar
-            if axis_units[k] == CALTYPE_360DAY:
-                calendar_type = cdtime.Calendar360
-            elif axis_units[k] == CALTYPE_NOLEAP:
-                calendar_type = cdtime.NoLeapCalendar
-            elif axis_units[k] == CALTYPE_GREGORIAN:
-                calendar_type = cdtime.GregorianCalendar
-            elif axis_units[k] == CALTYPE_JULIAN:
-                calendar_type = cdtime.JulianCalendar
-            else:
-                if axis_units[k] == CALTYPE_ALLLEAP:
-                    raise ValueError("The all-leap calendar not support by cdms2")
-                if axis_units[k] == CALTYPE_NONE:
-                    raise ValueError("Undesignated calendar not support by cdms2")
-                raise RuntimeError("Unexpected calendar type of %s" % axis_units[k])
-            newaxis.designateTime(calendar=calendar_type)
-            # and finally append it to the axis list
-            var_axes.append(newaxis)
-        elif axis_types[k] == libpyferret.AXISTYPE_CUSTOM:
-            # Check a custom axis for relative time units.  Note that getdata has
-            # already dealt with longitude or latitude not in Ferret's standard position.
-            lc_vals = axis_units[k].lower().split()
-            if (len(lc_vals) > 2) and (lc_vals[1] == "since") and (lc_vals[0] in LC_TIME_UNITS):
-                # (unit) since (start_date)
-                datevals = lc_vals[2].split("-")
-                try:
-                    # try to convert dd-mon-yyyy Ferret-style start_date to yyyy-mm-dd
-                    day_num = int(datevals[0])
-                    mon_num = lc_month_nums[datevals[1]]
-                    year_num = int(datevals[2])
-                    lc_vals[2] = "%04d-%02d-%02d" % (year_num, mon_num, day_num)
-                    relunit = " ".join(lc_vals)
-                except (IndexError, KeyError, ValueError):
-                    # use the relative time unit as given
-                    relunit = " ".join(lc_vals)
-                timevals = [ ]
-                for t in xrange(axis_coords[k].shape[0]):
-                    dtval = cdtime.reltime(axis_coords[k][t], relunit)
-                    timevals.append(dtval)
-                newaxis = cdms2.createAxis(timevals, id=axis_names[k])
-                newaxis.designateTime()
-            else:
-                newaxis = cdms2.createAxis(axis_coords[k], id=axis_names[k])
-                newaxis.units = axis_units[k]
-            var_axes.append(newaxis)
-        elif axis_types[k] == libpyferret.AXISTYPE_ABSTRACT:
-            newaxis = cdms2.createAxis(axis_coords[k], id=axis_names[k])
-            var_axes.append(newaxis)
-        elif axis_types[k] == libpyferret.AXISTYPE_NORMAL:
-            var_axes.append(None)
-        else:
-            raise RuntimeError("Unexpected axis type of %d" % axis_types[k])
-    # getdata returns a copy of the data, thus createVariable does not
-    # need to force a copy.  The mask, if request, was created by getdata.
-    datavar = cdms2.createVariable(data, fill_value=bdfs[0], axes=var_axes,
-                                   attributes={"name":name, "units":data_unit})
-    return datavar
-
-
-def put(datavar, axis_pos=None):
-    """
-    Creates a Ferret data variable with a copy of the data given in the
-    AbstractVariable object datavar.
-
-    Arguments:
-
-        datavar:  a cdms2 AbstractVariable describing the data variable
-                  to be created in Ferret.  Any masked values in the data
-                  of datavar will be set to the missing value for datavar
-                  before extracting the data as 64-bit floating-point
-                  values for Ferret.  In addition to the data and axes
-                  described in datavar, the following attributes are used:
-                      id: the code name for the variable in Ferret (eg,
-                          'SST').  This name must be present and, ideally,
-                          should not contain spaces, quotes, or algebraic
-                          symbols.
-                      name: the title name of the variable in Ferret (eg,
-                          'Sea Surface Temperature').  If not present, the
-                          value of the id attribute is used.
-                      units: the unit name for the data.  If not present,
-                          no units are associated with the data.
-                      dset: Ferret dataset name or number to be associated
-                          with this new variable.  If not given or blank,
-                          the variable is associated with the current dataset.
-                          If None or 'None', the variable is not associated
-                          with any dataset.
-
-        axis_pos: a six-tuple giving the Ferret positions for each axis in
-                  datavar.  If the axes in datavar are in (forecast, ensemble,
-                  time, level, lat., long.) order, the tuple (F_AXIS, E_AXIS,
-                  T_AXIS, Z_AXIS, Y_AXIS, X_AXIS) should be used for proper
-                  axis handling in Ferret.  If not given (or None), the first
-                  longitude axis will be made the X_AXIS, the first latitude
-                  axis will be made the Y_AXIS, the first level axis will be
-                  made the Z_AXIS, the first time axis will be made the T_AXIS,
-                  the second time axis will be made the F_AXIS, and any remaining
-                  axes are then filled into the remaining unassigned positions.
-
-    Returns:
-        None
-
-    Raises:
-        ImportError:    if the cdms2 or cdtime modules cannot be found (use putdata instead)
-        AttributeError: if datavar is missing a required method or attribute
-        MemoryError:    if Ferret has not been started or has been stopped
-        ValueError:     if there is a problem with the contents of the arguments
-
-    See also:
-        putdata (does not require cdms2 or cdtime)
-    """
-    # Check (again) if able to import cdms2/cdtime.
-    # If the imports were successful before, these imports do nothing
-    try:
-        import cdms2
-        import cdtime
-    except ImportError:
-        raise ImportError("cdms2 or cdtime not found; pyferret.put not available.\n" \
-                          "             Use pyferret.putdata instead.")
-
-
-    #
-    # code name for the Ferret variable
-    codename = datavar.id.strip()
-    if codename == "":
-        raise ValueError("The id attribute must be a non-blank string")
-    #
-    # title name for the Ferret variable
-    try:
-        titlename = datavar.name.strip()
-    except AttributeError:
-        titlename = codename
-    #
-    # units for the data
-    try:
-        data_unit = datavar.units.strip()
-    except AttributeError:
-        data_unit = ""
-    #
-    # missing data value
-    missingval = datavar.getMissing()
-    #
-    # Ferret dataset for the variable; None / 'None' is different from blank / empty
-    try:
-        dset_str = str(datavar.dset).strip()
-    except AttributeError:
-        dset_str = ""
-    #
-    # get the list of axes and initialize the axis information lists
-    axis_list = datavar.getAxisList()
-    if len(axis_list) > libpyferret.MAX_FERRET_NDIM:
-        raise ValueError("More than %d axes is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
-    axis_types = [ libpyferret.AXISTYPE_NORMAL ] * libpyferret.MAX_FERRET_NDIM
-    axis_names = [ "" ] * libpyferret.MAX_FERRET_NDIM
-    axis_units = [ "" ] * libpyferret.MAX_FERRET_NDIM
-    axis_coords = [ None ] * libpyferret.MAX_FERRET_NDIM
-    for k in xrange(len(axis_list)):
-        #
-        # get the information for this axis
-        axis = axis_list[k]
-        axis_names[k] = axis.id.strip()
-        try:
-            axis_units[k] = axis.units.strip()
-        except AttributeError:
-            axis_units[k] = ""
-        axis_data = axis.getData()
-        #
-        # assign the axis information
-        if axis.isLongitude():
-            axis_types[k] = libpyferret.AXISTYPE_LONGITUDE
-            axis_coords[k] = axis_data
-        elif axis.isLatitude():
-            axis_types[k] = libpyferret.AXISTYPE_LATITUDE
-            axis_coords[k] = axis_data
-        elif axis.isLevel():
-            axis_types[k] = libpyferret.AXISTYPE_LEVEL
-            axis_coords[k] = axis_data
-        elif axis.isTime():
-            #
-            # try to create a time axis reading the values as cdtime comptime objects
-            try:
-                time_coords = numpy.empty((len(axis_data),6), dtype=numpy.int32, order="C")
-                for t in xrange(len(axis_data)):
-                    tval = axis_data[t]
-                    time_coords[t, libpyferret.TIMEARRAY_DAYINDEX] = tval.day
-                    time_coords[t, libpyferret.TIMEARRAY_MONTHINDEX] = tval.month
-                    time_coords[t, libpyferret.TIMEARRAY_YEARINDEX] = tval.year
-                    time_coords[t, libpyferret.TIMEARRAY_HOURINDEX] = tval.hour
-                    time_coords[t, libpyferret.TIMEARRAY_MINUTEINDEX] = tval.minute
-                    time_coords[t, libpyferret.TIMEARRAY_SECONDINDEX] = int(tval.second)
-                axis_types[k] = libpyferret.AXISTYPE_TIME
-                axis_coords[k] = time_coords
-                # assign the axis_units value to the CALTYPE_ calendar type string
-                calendar_type = axis.getCalendar()
-                if calendar_type == cdtime.Calendar360:
-                    axis_units[k] = CALTYPE_360DAY
-                elif calendar_type == cdtime.NoLeapCalendar:
-                    axis_units[k] = CALTYPE_NOLEAP
-                elif calendar_type == cdtime.GregorianCalendar:
-                    axis_units[k] = CALTYPE_GREGORIAN
-                elif calendar_type == cdtime.JulianCalendar:
-                    axis_units[k] = CALTYPE_JULIAN
-                else:
-                    if calendar_type == cdtime.MixedCalendar:
-                        raise ValueError("The cdtime.MixedCalendar not support by pyferret")
-                    raise ValueError("Unknown cdtime calendar %s" % str(calendar_type))
-            except AttributeError:
-                axis_types[k] = libpyferret.AXISTYPE_CUSTOM
-            #
-            # if not comptime objects, assume reltime objects - create as a custom axis
-            if axis_types[k] == libpyferret.AXISTYPE_CUSTOM:
-                time_coords = numpy.empty((len(axis_data),), dtype=numpy.float64)
-                for t in xrange(len(axis_data)):
-                    time_coords[t] = axis_data[t].value
-                axis_coords[k] = timecoords
-                # assign axis_units as the reltime units - makes sure all are the same
-                axis_units[k] = axis_data[0].units
-                for t in xrange(1, len(axis_data)):
-                    if axis_data[t].units != axis_units[k]:
-                        raise ValueError("Relative time axis does not have a consistent start point")
-        #
-        # cdms2 will create an axis if None (normal axis) was given, so create a
-        # custom or abstract axis only if it does not look like a cdms2-created axis
-        elif not ( (axis_units[k] == "") and (len(axis_data) == 1) and (axis_data[0] == 0.0) and \
-                   (axis_data.dtype == numpy.dtype('float64')) and \
-                   axis_names[k].startswith("axis_") and axis_names[k][5:].isdigit() ):
-            axis_types[k] = libpyferret.AXISTYPE_CUSTOM
-            axis_coords[k] = axis_data
-            # if a unitless integer value axis, it is abstract instead of custom
-            if axis_units[k] == "":
-                axis_int_vals = numpy.array(axis_data, dtype=int)
-                if numpy.allclose(axis_data, axis_int_vals):
-                    axis_types[k] = libpyferret.AXISTYPE_ABSTRACT
-    #
-    # datavar is an embelished masked array
-    datavar_dict = { 'name': codename, 'title': titlename, 'dset': dset_str, 'data': datavar,
-                     'missing_vaue': missingval, 'data_unit': data_unit, 'axis_types': axis_types,
-                     'axis_names': axis_names, 'axis_units': axis_units, 'axis_coords': axis_coords }
-    #
-    # use putdata to set defaults, rearrange axes, and add copies
-    # of data in the appropriate format to Ferret
-    putdata(datavar_dict, axis_pos)
-    return None
-
-
-def putdata(datavar_dict, axis_pos=None):
-    """
-    Creates a Ferret data variable with a copy of the data given in the dictionary
-    datavar_dict, reordering the data and axes according to tuple axis_pos.
-
-    Arguments:
-
-        datavar_dict: a dictionary with the following keys and associated values:
-            'name': the code name for the variable in Ferret (eg, 'SST').
-                    Must be given.
-            'title': the title name for the variable in Ferret (eg, 'Sea Surface
-                    Temperature').  If not given, the value of 'name' is used.
-            'dset' : the Ferret dataset name or number to associate with this new data
-                    variable.  If blank or not given, the current dataset is used.  If
-                    None or 'None', no dataset will be associated with the new variable.
-            'data': a NumPy numeric ndarray or masked array.  The data will be saved
-                    in Ferret as a 64-bit floating-point values.  Must be given.
-            'missing_value': the missing data value.  This will be saved in Ferret as
-                    a 64-bit floating-point value.  If not given, Ferret's default
-                    missing value (-1.0E34) will be used.
-            'data_unit': a string describing the unit of the data.  If not given, no
-                    unit will be assigned.
-            'axis_types': a list of integer values describing the type of each axis.
-                    Possible values are the following constants defined by the pyferret
-                    module:
-                        AXISTYPE_LONGITUDE
-                        AXISTYPE_LATITUDE
-                        AXISTYPE_LEVEL
-                        AXISTYPE_TIME
-                        AXISTYPE_CUSTOM   (axis units not interpreted by Ferret)
-                        AXISTYPE_ABSTRACT (axis is unit-less integer values)
-                        AXISTYPE_NORMAL   (axis is normal to the data)
-                    If not given, AXISTYPE_ABSTRACT will be used if the data array
-                    has data for that axis (shape element greater than one); otherwise,
-                    AXISTYPE_NORMAL will be used.
-            'axis_names': a list of strings giving the name of each axis.  If not given,
-                    Ferret will generate names if needed.
-            'axis_units': a list of strings giving the unit of each axis.
-                    If the axis type is AXISTYPE_TIME, this names the calendar
-                    used for the timestamps, as one of the following strings
-                    defined by the pyferret module:
-                        CALTYPE_360DAY
-                        CALTYPE_NOLEAP
-                        CALTYPE_GREGORIAN
-                        CALTYPE_JULIAN
-                        CALTYPE_ALLLEAP
-                        CALTYPE_NONE    (calendar not specified)
-                    If not given, 'DEGREES_E' will be used for AXISTYPE_LONGITUDE,
-                    'DEGREES_N' for AXISTYPE_LATITUDE, CALTYPE_GREGORIAN for
-                    AXISTYPE_TIME, and no units will be given for other axis types.
-            'axis_coords': a list of arrays of coordinates for each axis.
-                    If the axis type is neither AXISTYPE_TIME nor AXISTYPE_NORMAL,
-                    a one-dimensional numeric list or ndarray should be given (the
-                    values will be stored as floating-point values).
-                    If the axis is type AXISTYPE_TIME, a two-dimension list or ndarray
-                    with shape (N,6), where N is the number of time points, should be
-                    given.  The six integer values per time point are the day, month,
-                    year, hour, minute, and second of the associate calendar for this
-                    time axis.  The following constants defined by the pyferret module
-                    give the values of these six indices:
-                        TIMEARRAY_DAYINDEX
-                        TIMEARRAY_MONTHINDEX
-                        TIMEARRAY_YEARINDEX
-                        TIMEARRAY_HOURINDEX
-                        TIMEARRAY_MINUTEINDEX
-                        TIMEARRAY_SECONDINDEX
-                    (Thus, axis_coords[t, pyferret.TIMEARRAY_YEARINDEX] gives the year of
-                     time point t.)
-                    An array of coordinates must be given if the axis does not have a type
-                    of AXISTYPE_NORMAL or AXISTYPE_ABSTRACT (or if axis types are not given).
-            Note: a relative time axis should be given as type AXISTYPE_CUSTOM, with a
-                  unit indicating the starting point, such as 'days since 01-JAN-2000'
-
-        axis_pos: a six-tuple giving the Ferret positions for each axis in datavar.
-            If the axes in datavar are in (forecast, ensemble, time, level, lat., long.)
-            order, the tuple (F_AXIS, E_AXIS, T_AXIS, Z_AXIS, Y_AXIS, X_AXIS) should be
-            used for proper axis handling in Ferret.  If not given (or None), the first
-            longitude axis will be made the X_AXIS, the first latitude axis will be made
-            the Y_AXIS, the first level axis will be made the Z_AXIS, the first time axis
-            will be made the T_AXIS, the second time axis will be made the F_AXIS, and any
-            remaining axes are then filled into the remaining unassigned positions.
-
-    Returns:
-        None
-
-    Raises:
-        KeyError: if datavar_dict is missing a required key
-        MemoryError: if Ferret has not been started or has been stopped
-        ValueError:  if there is a problem with the value of a key
-
-    See also:
-        put
-    """
-    #
-    # code name for the variable
-    codename = datavar_dict.get('name', '')
-    if codename != None:
-        codename = str(codename).strip()
-    if not codename:
-        raise ValueError("The value of 'name' must be a non-blank string")
-    #
-    # title for the variable
-    titlename = str(datavar_dict.get('title', codename)).strip()
-    #
-    # Ferret dataset for the variable; None gets turned into the string 'None'
-    dset_str = str(datavar_dict.get('dset', '')).strip()
-    #
-    # value for missing data
-    missingval = float(datavar_dict.get('missing_value', -1.0E34))
-    #
-    # data units
-    data_unit = str(datavar_dict.get('data_unit', '')).strip()
-    #
-    # axis types
-    axis_types = [ libpyferret.AXISTYPE_NORMAL ] * libpyferret.MAX_FERRET_NDIM
-    given_axis_types = datavar_dict.get('axis_types', None)
-    if given_axis_types:
-        if len(given_axis_types) > libpyferret.MAX_FERRET_NDIM:
-            raise ValueError("More than %d axes (in the types) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
-        for k in xrange(len(given_axis_types)):
-            axis_types[k] = given_axis_types[k]
-    #
-    # axis names
-    axis_names = [ "" ] * libpyferret.MAX_FERRET_NDIM
-    given_axis_names = datavar_dict.get('axis_names', None)
-    if given_axis_names:
-        if len(given_axis_names) > libpyferret.MAX_FERRET_NDIM:
-            raise ValueError("More than %d axes (in the names) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
-        for k in xrange(len(given_axis_names)):
-            axis_names[k] = given_axis_names[k]
-    #
-    # axis units
-    axis_units = [ "" ] * libpyferret.MAX_FERRET_NDIM
-    given_axis_units = datavar_dict.get('axis_units', None)
-    if given_axis_units:
-        if len(given_axis_units) > libpyferret.MAX_FERRET_NDIM:
-            raise ValueError("More than %d axes (in the units) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
-        for k in xrange(len(given_axis_units)):
-            axis_units[k] = given_axis_units[k]
-    # axis coordinates
-    axis_coords = [ None ] * libpyferret.MAX_FERRET_NDIM
-    given_axis_coords = datavar_dict.get('axis_coords', None)
-    if given_axis_coords:
-        if len(given_axis_coords) > libpyferret.MAX_FERRET_NDIM:
-            raise ValueError("More than %d axes (in the coordinates) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
-        for k in xrange(len(given_axis_coords)):
-            axis_coords[k] = given_axis_coords[k]
-    #
-    # data array
-    datavar = datavar_dict['data']
-    #
-    # For any axis with data (shape > 1), if AXISTYPE_NORMAL (presumably from not being specified),
-    # change to AXISTYPE_ABSTRACT.  Note that a shape == 1 could either be normal or a singleton axis.
-    try:
-        shape = datavar.shape
-        if len(shape) > libpyferret.MAX_FERRET_NDIM:
-            raise ValueError("More than %d axes (in the data) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
-        for k in xrange(len(shape)):
-            if (shape[k] > 1) and (axis_types[k] == libpyferret.AXISTYPE_NORMAL):
-                axis_types[k] = libpyferret.AXISTYPE_ABSTRACT
-    except AttributeError:
-        raise ValueError("The value of 'data' must be a NumPy ndarray (or derived from an ndarray)")
-    #
-    # assign any defaults on the axis information not given,
-    # and make a copy of the axis coordinates (to ensure they are well-behaved)
-    for k in xrange(libpyferret.MAX_FERRET_NDIM):
-        if axis_types[k] == libpyferret.AXISTYPE_LONGITUDE:
-            if not axis_units[k]:
-                axis_units[k] = "DEGREES_E"
-            axis_coords[k] = numpy.array(axis_coords[k], dtype=numpy.float64, copy=1)
-            if axis_coords[k].shape[0] != shape[k]:
-                raise ValueError("number of coordinates for axis %d does not match the number of data points" % (k+1))
-        elif axis_types[k] == libpyferret.AXISTYPE_LATITUDE:
-            if not axis_units[k]:
-                axis_units[k] = "DEGREES_N"
-            axis_coords[k] = numpy.array(axis_coords[k], dtype=numpy.float64, copy=1)
-            if axis_coords[k].shape[0] != shape[k]:
-                raise ValueError("number of coordinates for axis %d does not match the number of data points" % (k+1))
-        elif axis_types[k] == libpyferret.AXISTYPE_LEVEL:
-            axis_coords[k] = numpy.array(axis_coords[k], dtype=numpy.float64, copy=1)
-            if axis_coords[k].shape[0] != shape[k]:
-                raise ValueError("number of coordinates for axis %d does not match the number of data points" % (k+1))
-        elif axis_types[k] == libpyferret.AXISTYPE_TIME:
-            if not axis_units[k]:
-                axis_units[k] = CALTYPE_GREGORIAN
-            axis_coords[k] = numpy.array(axis_coords[k], dtype=numpy.int32, order='C', copy=1)
-            if axis_coords[k].shape[0] != shape[k]:
-                raise ValueError("number of coordinates for axis %d does not match the number of data points" % (k+1))
-            if axis_coords[k].shape[1] != 6:
-                raise ValueError("number of components (second index) for time axis %d is not 6" % (k+1))
-        elif axis_types[k] == libpyferret.AXISTYPE_CUSTOM:
-            axis_coords[k] = numpy.array(axis_coords[k], dtype=numpy.float64, copy=1)
-            if axis_coords[k].shape[0] != shape[k]:
-                raise ValueError("number of coordinates for axis %d does not match the number of data points" % (k+1))
-        elif axis_types[k] == libpyferret.AXISTYPE_ABSTRACT:
-            if axis_coords[k] != None:
-                axis_coords[k] = numpy.array(axis_coords[k], dtype=numpy.float64, copy=1)
-                if axis_coords[k].shape[0] != shape[k]:
-                    raise ValueError("number of coordinates for axis %d does not match the number of data points" % (k+1))
-            else:
-                # axis needed but not specified
-                axis_coords[k] = numpy.arange(1.0, float(shape[k]) + 0.5, 1.0, dtype=numpy.float64)
-        elif axis_types[k] == libpyferret.AXISTYPE_NORMAL:
-            axis_coords[k] = None
-        else:
-            raise RuntimeError("Unexpected axis_type of %d" % axis_types[k])
-    #
-    # figure out the desired axis order
-    if axis_pos != None:
-        # start with the positions provided by the user
-        ferr_axis = list(axis_pos)
-        if len(ferr_axis) < len(shape):
-            raise ValueError("axis_pos, if given, must provide a position for each axis in the data")
-        # append undefined axes positions, which were initialized to AXISTYPE_NORMAL
-        if not libpyferret.X_AXIS in ferr_axis:
-            ferr_axis.append(libpyferret.X_AXIS)
-        if not libpyferret.Y_AXIS in ferr_axis:
-            ferr_axis.append(libpyferret.Y_AXIS)
-        if not libpyferret.Z_AXIS in ferr_axis:
-            ferr_axis.append(libpyferret.Z_AXIS)
-        if not libpyferret.T_AXIS in ferr_axis:
-            ferr_axis.append(libpyferret.T_AXIS)
-        if not libpyferret.E_AXIS in ferr_axis:
-            ferr_axis.append(libpyferret.E_AXIS)
-        if not libpyferret.F_AXIS in ferr_axis:
-            ferr_axis.append(libpyferret.F_AXIS)
-        # intentionally left as 6 (instead of MAX_FERRET_NDIM) since new axes will need to be appended
-        if len(ferr_axis) != 6:
-            raise ValueError("axis_pos can contain at most one of each of the pyferret integer values X_AXIS, Y_AXIS, Z_AXIS, or T_AXIS")
-    else:
-        ferr_axis = [ -1 ] * libpyferret.MAX_FERRET_NDIM
-        # assign positions of longitude/latitude/level/time
-        for k in xrange(len(axis_types)):
-            if axis_types[k] == libpyferret.AXISTYPE_LONGITUDE:
-                if not libpyferret.X_AXIS in ferr_axis:
-                    ferr_axis[k] = libpyferret.X_AXIS
-            elif axis_types[k] == libpyferret.AXISTYPE_LATITUDE:
-                if not libpyferret.Y_AXIS in ferr_axis:
-                    ferr_axis[k] = libpyferret.Y_AXIS
-            elif axis_types[k] == libpyferret.AXISTYPE_LEVEL:
-                if not libpyferret.Z_AXIS in ferr_axis:
-                    ferr_axis[k] = libpyferret.Z_AXIS
-            elif axis_types[k] == libpyferret.AXISTYPE_TIME:
-                if not libpyferret.T_AXIS in ferr_axis:
-                    ferr_axis[k] = libpyferret.T_AXIS
-                elif not libpyferret.F_AXIS in ferr_axis:
-                    ferr_axis[k] = libpyferret.F_AXIS
-        # fill in other axes types in unused positions
-        if not libpyferret.X_AXIS in ferr_axis:
-            ferr_axis[ferr_axis.index(-1)] = libpyferret.X_AXIS
-        if not libpyferret.Y_AXIS in ferr_axis:
-            ferr_axis[ferr_axis.index(-1)] = libpyferret.Y_AXIS
-        if not libpyferret.Z_AXIS in ferr_axis:
-            ferr_axis[ferr_axis.index(-1)] = libpyferret.Z_AXIS
-        if not libpyferret.T_AXIS in ferr_axis:
-            ferr_axis[ferr_axis.index(-1)] = libpyferret.T_AXIS
-        if not libpyferret.E_AXIS in ferr_axis:
-            ferr_axis[ferr_axis.index(-1)] = libpyferret.E_AXIS
-        if not libpyferret.F_AXIS in ferr_axis:
-            ferr_axis[ferr_axis.index(-1)] = libpyferret.F_AXIS
-        try:
-            ferr_axis.index(-1)
-            raise RuntimeError("Unexpected undefined axis position (MAX_FERRET_NDIM increased?) in ferr_axis " + str(ferr_axis))
-        except ValueError:
-            # expected result
-            pass
-    #
-    # get the missing data value as a 64-bit float
-    bdfval = numpy.array(missingval, dtype=numpy.float64)
-    #
-    # if a masked array, make sure the masked values are set
-    # to the missing value, and get the ndarray underneath
-    try:
-        if numpy.any(datavar.mask):
-            datavar.data[datavar.mask] = bdfval
-        data = datavar.data
-    except AttributeError:
-        data = datavar
-    #
-    # get the data as an ndarray of MAX_FERRET_NDIM dimensions
-    # adding new axes still reference the original data array - just creates new shape and stride objects
-    for k in xrange(len(shape), libpyferret.MAX_FERRET_NDIM):
-        data = data[..., numpy.newaxis]
-    #
-    # swap data axes and axis information to give (X_AXIS, Y_AXIS, Z_AXIS, T_AXIS, E_AXIS, F_AXIS) axes
-    # swapping axes still reference the original data array - just creates new shape and stride objects
-    k = ferr_axis.index(libpyferret.X_AXIS)
-    if k != 0:
-        data = data.swapaxes(0, k)
-        ferr_axis[0], ferr_axis[k] = ferr_axis[k], ferr_axis[0]
-        axis_types[0], axis_types[k] = axis_types[k], axis_types[0]
-        axis_names[0], axis_names[k] = axis_names[k], axis_names[0]
-        axis_units[0], axis_units[k] = axis_units[k], axis_units[0]
-        axis_coords[0], axis_coords[k] = axis_coords[k], axis_coords[0]
-    k = ferr_axis.index(libpyferret.Y_AXIS)
-    if k != 1:
-        data = data.swapaxes(1, k)
-        ferr_axis[1], ferr_axis[k] = ferr_axis[k], ferr_axis[1]
-        axis_types[1], axis_types[k] = axis_types[k], axis_types[1]
-        axis_names[1], axis_names[k] = axis_names[k], axis_names[1]
-        axis_units[1], axis_units[k] = axis_units[k], axis_units[1]
-        axis_coords[1], axis_coords[k] = axis_coords[k], axis_coords[1]
-    k = ferr_axis.index(libpyferret.Z_AXIS)
-    if k != 2:
-        data = data.swapaxes(2, k)
-        ferr_axis[2], ferr_axis[k] = ferr_axis[k], ferr_axis[2]
-        axis_types[2], axis_types[k] = axis_types[k], axis_types[2]
-        axis_names[2], axis_names[k] = axis_names[k], axis_names[2]
-        axis_units[2], axis_units[k] = axis_units[k], axis_units[2]
-        axis_coords[2], axis_coords[k] = axis_coords[k], axis_coords[2]
-    k = ferr_axis.index(libpyferret.T_AXIS)
-    if k != 3:
-        data = data.swapaxes(3, k)
-        ferr_axis[3], ferr_axis[k] = ferr_axis[k], ferr_axis[3]
-        axis_types[3], axis_types[k] = axis_types[k], axis_types[3]
-        axis_names[3], axis_names[k] = axis_names[k], axis_names[3]
-        axis_units[3], axis_units[k] = axis_units[k], axis_units[3]
-        axis_coords[3], axis_coords[k] = axis_coords[k], axis_coords[3]
-    k = ferr_axis.index(libpyferret.E_AXIS)
-    if k != 4:
-        data = data.swapaxes(4, k)
-        ferr_axis[4], ferr_axis[k] = ferr_axis[k], ferr_axis[4]
-        axis_types[4], axis_types[k] = axis_types[k], axis_types[4]
-        axis_names[4], axis_names[k] = axis_names[k], axis_names[4]
-        axis_units[4], axis_units[k] = axis_units[k], axis_units[4]
-        axis_coords[4], axis_coords[k] = axis_coords[k], axis_coords[4]
-    # F_AXIS must now be ferr_axis[5]
-    # assumes MAX_FERRET_NDIM == 6; extend the logic if axes are added
-    # would rather not assume X_AXIS == 0, Y_AXIS == 1, Z_AXIS == 2,
-    #                         T_AXIS == 3, E_AXIS == 4, F_AXIS == 5
-    #
-    # now make a copy of the data as (contiguous) 64-bit floats in Fortran order
-    fdata = numpy.array(data, dtype=numpy.float64, order='F', copy=1)
-    #
-    # libpyferret._put will throw an Exception if there is a problem
-    libpyferret._put(codename, titlename, fdata, bdfval, data_unit, dset_str,
-                  axis_types, axis_names, axis_units, axis_coords)
-    return None
-
-
 def stop():
     """
     Runs a series of Ferret commands to return Ferret to
@@ -1553,6 +707,10 @@ def stop():
         regrid.ESMPControl().stopESMP(True)
     except Exception:
         pass
+
+    # clear "the" anonymous dataset
+    pyferret.anondset.close()
+
     # Continue with Ferret shutdown
     return libpyferret._stop()
 
@@ -1581,343 +739,3 @@ def _readline(myprompt):
 
     return myline
 
-
-def ferret_pyfunc():
-    """
-    A dummy function (which just returns this help message) used to document the
-    requirements of python modules used as Ferret external functions (using the
-    Ferret command: DEFINE PYFUNC [/NAME=<alias>] <module.name>).  Two methods,
-    ferret_init and ferret_compute, must be provided by such a module:
-
-
-    ferret_init(efid)
-        Arguments:
-            efid - Ferret's integer ID of this external function
-
-        Returns a dictionary defining the following keys:
-            "numargs":      number of input arguments [1 - 9; required]
-            "descript":     string description of the function [required]
-            "restype":      one of FLOAT_ARRAY or STRING_ARRAY, indicating whether
-                            the result is an array of floating-point values or strings
-                            [optional, default FLOAT_ARRAY]
-            "resstrlen":    if the result type is an array of strings, this specifies
-                            the (maximum) length of the strings in the array
-                            [optional, default: 128]
-            "axes":         6-tuple (X,Y,Z,T,E,F) of result grid axis defining values,
-                            which are:
-                                    AXIS_ABSTRACT:        indexed, ferret_result_limits
-                                                          called to define the axis,
-                                    AXIS_CUSTOM:          ferret_custom_axes called to
-                                                          define the axis,
-                                    AXIS_DOES_NOT_EXIST:  does not exist in (normal to)
-                                                          the results grid,
-                                    AXIS_IMPLIED_BY_ARGS: same as the corresponding axis
-                                                          in one or more arguments,
-                                    AXIS_REDUCED:         reduced to a single point
-                            [optional; default: AXIS_IMPLIED_BY_ARGS for each axis]
-            "piecemeal":    6-tuple (X,Y,Z,T,E,F) of True or False indicating if it is
-                            acceptable to break up the calculation, if needed, along the
-                            corresponding axis [optional; default: False for each axis]
-            "argnames":     N-tuple of names for the input arguments
-                            [optional; default: (A, B, ...)]
-            "argdescripts": N-tuple of descriptions for the input arguments
-                            [optional; default: no descriptions]
-            "argtypes":     N-tuple of FLOAT_ARRAY, FLOAT_ONEVAL, STRING_ARRAY, or
-                            STRING_ONEVAL, indicating whether the input argument is
-                            an array of floating-point values, a single floating point
-                            value, an array of strings, or a single string value.
-                            [optional; default: FLOAT_ARRAY for every argument]
-            "influences":   N-tuple of 6-tuples of booleans indicating whether the
-                            corresponding input argument's (X,Y,Z,T,E,F) axis influences
-                            the result grid's (X,Y,Z,T,E,F) axis.  [optional; default,
-                            and when None is given for a 6-tuple: True for every axis]
-                      NOTE: If the "influences" value for an axis is True (which is the
-                            default), the "axes" value for this axis must be either
-                            AXIS_IMPLIED_BY_ARGS (the default) or AXIS_REDUCED.
-            "extends":      N-tuple of 6-tuples of pairs of integers.  The n-th tuple,
-                            if not None, gives the (X,Y,Z,T,E,F) extension pairs for the
-                            n-th argument.  An extension pair, if not None, is the
-                            number of points extended in the (low,high) indices for
-                            that axis of that argument beyond the implied axis of the
-                            result grid.  Thus,
-                                    (None, (None, None, None, (-1,1)), None, None, None)
-                            means the T axis of the second argument is extended by two
-                            points (low dimension lowered by 1, high dimension raised
-                            by 1) beyond the implied axis of the result.
-                            [optional; default: no extensions assigned]
-                      NOTE: If an "extends" pair is given for an axis, the "axes"
-                            value for this axis must be AXIS_IMPLIED_BY_ARGS
-                            (the default).  The "extends" pair more precisely means
-                            the axis in the argument, exactly as provided in the
-                            Ferret command, is larger by the indicated amount from
-                            the implied result grid axis.
-
-        If an exception is raised, Ferret is notified that an error occurred using
-        the message of the exception.
-
-
-    ferret_compute(efid, result_array, result_bdf, input_arrays, input_bdfs)
-        Arguments:
-            efid         - Ferret's integer ID of this external function
-            result_array - a writeable NumPy float64 ndarray of six dimensions (X,Y,Z,T,E,F)
-                           to contain the results of this computation.  The shape and
-                           strides of this array has been configured so that only (and
-                           all) the data points that should be assigned are accessible.
-            result_bdf   - a NumPy ndarray of one dimension containing the bad-data-flag
-                           value for the result array.
-            input_arrays - tuple of read-only NumPy float64 ndarrays of six dimensions
-                           (X,Y,Z,T,E,F) containing the given input data.  The shape and
-                           strides of these array have been configured so that only (and
-                           all) the data points that should be accessible are accessible.
-            input_bdfs   - a NumPy ndarray of one dimension containing
-                           the bad-data-flag values for each of the input arrays.
-
-        Any return value is ignored.
-
-        If an exception is raised, Ferret is notified that an error occurred using
-        the message of the exception.
-
-
-    If the dictionary returned from ferret_init assigned a result axis as AXIS_ABSTRACT,
-    then the ferret_result_limits method must also be defined:
-
-
-    ferret_result_limits(efid)
-        Arguments:
-            efid - Ferret's integer ID of this external function
-
-        Returns a (X,Y,Z,T,E,F) 6-tuple of either None or (low, high) pairs of integers.
-        If an axis was not designated as AXIS_ABSTRACT, None should be given for that axis.
-        If an axis was designated as AXIS_ABSTRACT, a (low, high) pair of integers should
-        be given, and are used as the low and high Ferret indices for that axis.
-        [The indices of the NumPy ndarray to be assigned will be from 0 until (high-low)].
-
-        If an exception is raised, Ferret is notified that an error occurred using
-        the message of the exception.
-
-
-    If the dictionary returned from ferret_init assigned a result axis as AXIS_CUSTOM,
-    then the ferret_custom_axes method must also be defined:
-
-
-    ferret_custom_axes(efid)
-        Arguments:
-            efid - Ferret's integer ID of this external function
-
-        Returns a (X,Y,Z,T,E,F) 6-tuple of either None or a (low, high, delta, unit_name,
-        is_modulo) tuple.  If an axis was not designated as AXIS_CUSTOM, None should be
-        given for that axis.  If an axis was designated as AXIS_CUSTOM, a (low, high,
-        delta, unit_name, is_modulo) tuple should be given where low and high are the
-        "world" coordinates (floating point) limits for the axis, delta is the step
-        increments in "world" coordinates, unit_name is a string used in describing the
-        "world" coordinates, and is_modulo is either True or False, indicating if this
-        is a modulo ("periodic" or "wrapping") coordinate system.
-
-        If an exception is raised, Ferret is notified that an error occurred using
-        the message of the exception.
-
-    """
-    return ferret_pyfunc.__doc__
-
-
-def get_axis_coordinates(efid, arg, axis):
-    """
-    Returns the "world" coordinates for an axis of an argument to an external function
-
-    Arguments:
-        efid: the Ferret id of the external function
-        arg: the index (zero based) of the argument (can use ARG1, ARG2, ..., ARG9)
-        axis: the index (zero based) of the axis (can use X_AXIS, Y_AXIS, Z_AXIS,
-                                                          T_AXIS, E_AXIS, F_AXIS)
-    Returns:
-        a NumPy float64 ndarray containing the "world" coordinates,
-        or None if the values cannot be determined at the time this was called
-    Raises:
-        ValueError if efid, arg, or axis is invalid
-    """
-    # check the efid
-    try:
-        int_id = int(efid)
-        if int_id < 0:
-            raise ValueError
-    except:
-        raise ValueError("efid must be a positive integer value")
-    # check the arg index
-    try:
-        int_arg = int(arg)
-        if (int_arg < libpyferret.ARG1) or (int_arg > libpyferret.ARG9):
-            raise ValueError
-    except:
-        raise ValueError("arg must be an integer value in [%d,%d]" % (libpyferret.ARG1,libpyferret.ARG9))
-    # check the axis index
-    try:
-        int_axis = int(axis)
-        if (int_axis < libpyferret.X_AXIS) or (int_axis > libpyferret.F_AXIS):
-            raise ValueError
-    except:
-        raise ValueError("axis must be an integer value in [%d,%d]" % (libpyferret.X_AXIS,libpyferret.F_AXIS))
-    # make the actual call
-    return libpyferret._get_axis_coordinates(int_id, int_arg, int_axis)
-
-
-def get_axis_box_sizes(efid, arg, axis):
-    """
-    Returns the "box sizes", in "world" coordinate units,
-    for an axis of an argument to an external function
-
-    Arguments:
-        efid: the Ferret id of the external function
-        arg: the index (zero based) of the argument (can use ARG1, ARG2, ..., ARG9)
-        axis: the index (zero based) of the axis (can use X_AXIS, Y_AXIS, Z_AXIS,
-                                                          T_AXIS, E_AXIS, F_AXIS)
-    Returns:
-        a NumPy float64 ndarray containing the "box sizes",
-        or None if the values cannot be determined at the time this was called
-    Raises:
-        ValueError if efid, arg, or axis is invalid
-    """
-    # check the efid
-    try:
-        int_id = int(efid)
-        if int_id < 0:
-            raise ValueError
-    except:
-        raise ValueError("efid must be a positive integer value")
-    # check the arg index
-    try:
-        int_arg = int(arg)
-        if (int_arg < libpyferret.ARG1) or (int_arg > libpyferret.ARG9):
-            raise ValueError
-    except:
-        raise ValueError("arg must be an integer value in [%d,%d]" % (libpyferret.ARG1,libpyferret.ARG9))
-    # check the axis index
-    try:
-        int_axis = int(axis)
-        if (int_axis < libpyferret.X_AXIS) or (int_axis > libpyferret.F_AXIS):
-            raise ValueError
-    except:
-        raise ValueError("axis must be an integer value in [%d,%d]" % (libpyferret.X_AXIS,libpyferret.F_AXIS))
-    # make the actual call
-    return libpyferret._get_axis_box_sizes(int_id, int_arg, int_axis)
-
-
-def get_axis_box_limits(efid, arg, axis):
-    """
-    Returns the "box limits", in "world" coordinate units,
-    for an axis of an argument to an external function
-
-    Arguments:
-        efid: the Ferret id of the external function
-        arg: the index (zero based) of the argument (can use ARG1, ARG2, ..., ARG9)
-        axis: the index (zero based) of the axis (can use X_AXIS, Y_AXIS, Z_AXIS,
-                                                          T_AXIS, E_AXIS, F_AXIS)
-    Returns:
-        a tuple of two NumPy float64 ndarrays containing the low and high "box limits",
-        or None if the values cannot be determined at the time this was called
-    Raises:
-        ValueError if efid, arg, or axis is invalid
-    """
-    # check the efid
-    try:
-        int_id = int(efid)
-        if int_id < 0:
-            raise ValueError
-    except:
-        raise ValueError("efid must be a positive integer value")
-    # check the arg index
-    try:
-        int_arg = int(arg)
-        if (int_arg < libpyferret.ARG1) or (int_arg > libpyferret.ARG9):
-            raise ValueError
-    except:
-        raise ValueError("arg must be an integer value in [%d,%d]" % (libpyferret.ARG1,libpyferret.ARG9))
-    # check the axis index
-    try:
-        int_axis = int(axis)
-        if (int_axis < libpyferret.X_AXIS) or (int_axis > libpyferret.F_AXIS):
-            raise ValueError
-    except:
-        raise ValueError("axis must be an integer value in [%d,%d]" % (libpyferret.X_AXIS,libpyferret.F_AXIS))
-    # make the actual call
-    return libpyferret._get_axis_box_limits(int_id, int_arg, int_axis)
-
-
-def get_axis_info(efid, arg, axis):
-    """
-    Returns information about the axis of an argument to an external function
-
-    Arguments:
-        efid: the Ferret id of the external function
-        arg: the index (zero based) of the argument (can use ARG1, ARG2, ..., ARG9)
-        axis: the index (zero based) of the axis (can use X_AXIS, Y_AXIS, Z_AXIS,
-                                                          T_AXIS, E_AXIS, F_AXIS)
-    Returns:
-        a dictionary defining the following keys:
-            "name": name string for the axis coordinate
-            "unit": name string for the axis unit
-            "backwards": boolean - reversed axis?
-            "modulo": float - modulo length of axis, or 0.0 if not modulo
-            "regular": boolean - evenly spaced axis?
-            "size": number of coordinates on this axis, or -1 if the value
-                    cannot be determined at the time this was called
-    Raises:
-        ValueError if efid, arg, or axis is invalid
-    """
-    # check the efid
-    try:
-        int_id = int(efid)
-        if int_id < 0:
-            raise ValueError
-    except:
-        raise ValueError("efid must be a positive integer value")
-    # check the arg index
-    try:
-        int_arg = int(arg)
-        if (int_arg < libpyferret.ARG1) or (int_arg > libpyferret.ARG9):
-            raise ValueError
-    except:
-        raise ValueError("arg must be an integer value in [%d,%d]" % (libpyferret.ARG1,libpyferret.ARG9))
-    # check the axis index
-    try:
-        int_axis = int(axis)
-        if (int_axis < libpyferret.X_AXIS) or (int_axis > libpyferret.F_AXIS):
-            raise ValueError
-    except:
-        raise ValueError("axis must be an integer value in [%d,%d]" % (libpyferret.X_AXIS,libpyferret.F_AXIS))
-    # make the actual call
-    return libpyferret._get_axis_info(int_id, int_arg, int_axis)
-
-
-def get_arg_one_val(efid, arg):
-    """
-    Returns the value of the indicated FLOAT_ONEVAL or STRING_ONEVAL argument.
-    Can be called from the ferret_result_limits or ferret_custom_axes method
-    of an external function.
-
-    Arguments:
-        efid: the Ferret id of the external function
-        arg: the index (zero based) of the argument (can use ARG1, ARG2, ..., ARG9)
-    Returns:
-        the value of the argument, either as a float (if a FLOAT_ONEVAL)
-        or a string (if STRING_ONEVAL)
-    Raises:
-        ValueError if efid or arg is invalid, or if the argument type is not
-        FLOAT_ONEVAL or STRING_ONEVAL
-    """
-    # check the efid
-    try:
-        int_id = int(efid)
-        if int_id < 0:
-            raise ValueError
-    except:
-        raise ValueError("efid must be a positive integer value")
-    # check the arg index
-    try:
-        int_arg = int(arg)
-        if (int_arg < libpyferret.ARG1) or (int_arg > libpyferret.ARG9):
-            raise ValueError
-    except:
-        raise ValueError("arg must be an integer value in [%d,%d]" % (libpyferret.ARG1,libpyferret.ARG9))
-    # make the actual call
-    return libpyferret._get_arg_one_val(int_id, int_arg)
-
diff --git a/pyfermod/datamethods.py b/pyfermod/datamethods.py
new file mode 100644
index 0000000..e0f2359
--- /dev/null
+++ b/pyfermod/datamethods.py
@@ -0,0 +1,990 @@
+"""
+Methods in pyferret for transferring data between the Ferret engine 
+and Python.
+"""
+
+import numpy
+import numpy.ma
+import StringIO
+
+import libpyferret
+
+# set of units (in uppercase) for checking if a custom axis is actual a longitude axis
+_UC_LONGITUDE_UNITS = frozenset( ("DEG E", "DEG_E", "DEG EAST", "DEG_EAST",
+                                 "DEGREES E", "DEGREES_E", "DEGREES EAST", "DEGREES_EAST",
+                                 "DEG W", "DEG_W", "DEG WEST", "DEG_WEST",
+                                 "DEGREES W", "DEGREES_W", "DEGREES WEST", "DEGREES_WEST") )
+# set of units (in uppercase) for checking if a custom axis is actual a latitude axis
+_UC_LATITUDE_UNITS  = frozenset( ("DEG N", "DEG_N", "DEG NORTH", "DEG_NORTH",
+                                  "DEGREES N", "DEGREES_N", "DEGREES NORTH", "DEGREES_NORTH",
+                                  "DEG S", "DEG_S", "DEG SOUTH", "DEG_SOUTH",
+                                  "DEGREES S", "DEGREES_S", "DEGREES SOUTH", "DEGREES_SOUTH") )
+
+# set of units (in lowercase) for checking if a custom axis can be represented by a cdtime.reltime
+# the unit must be followed by "since" and something else
+_LC_TIME_UNITS = frozenset( ("s", "sec", "secs", "second", "seconds",
+                             "mn", "min", "mins", "minute", "minutes",
+                             "hr", "hour", "hours",
+                             "dy", "day", "days",
+                             "mo", "month", "months",
+                             "season", "seasons",
+                             "yr", "year", "years") )
+
+_LC_MONTH_NUMS = { "jan":1, "feb":2, "mar":3, "apr":4, "may":5, "jun":6,
+                   "jul":7, "aug":8, "sep":9, "oct":10, "nov":11, "dec":12 }
+_UC_MONTH_NAMES = { 1: "JAN", 2:"FEB", 3:"MAR", 4:"APR", 5:"MAY", 6:"JUN",
+                    7:"JUL", 8:"AUG", 9:"SEP", 10:"OCT", 11:"NOV", 12:"DEC" }
+
+def metastr(datadict):
+    """
+    Creates a string representation of the metadata in a data dictionary.
+    Print this string to show a nicely formatted display of the metadata.
+
+    Arguments:
+        datadict: a data dictionary, as returned by the getdata method.
+    Returns:
+        the string representation of the metadata in datadict.
+    Raises:
+        TypeError if datadict is not a dictionary
+    """
+    if not isinstance(datadict, dict):
+        raise TypeError("datadict is not a dictionary")
+    # specify an order of output for standard keys, leaving out "data"
+    keylist = [ "name", "title", "dset", "data_unit", "missing_value",
+                "axis_names", "axis_types", "axis_units", "axis_coords" ]
+    # append non-standard keys in alphabetical order
+    for key in sorted(datadict.keys()):
+        if (key != "data") and (key not in keylist):
+            keylist.append(key)
+    # create the metadata string using StringIO
+    strbuf = StringIO.StringIO()
+    for key in keylist:
+        try:
+            # make sure the key:value pair exists
+            val = datadict[key]
+            # just in case the key is not a string (for printing)
+            keystr = str(key)
+            if keystr == "axis_coords":
+                print >>strbuf, keystr + ":"
+                for (idx, item) in enumerate(val):
+                    # add the axis name (which will be present if coordinates
+                    # are given) as a label for the axis coordinates
+                    itemlabel = "   '" + datadict["axis_names"][idx] + "': "
+                    if datadict["axis_types"][idx] == libpyferret.AXISTYPE_TIME:
+                        # add a translation of each of the time 6-tuples
+                        strlist = [ ]
+                        for subitem in item:
+                            strlist.append(" %s = %02d-%3s-%04d %02d:%02d:%02d" % \
+                                           (str(subitem),
+                                                subitem[libpyferret.TIMEARRAY_DAYINDEX],
+                                _UC_MONTH_NAMES[subitem[libpyferret.TIMEARRAY_MONTHINDEX]],
+                                                subitem[libpyferret.TIMEARRAY_YEARINDEX],
+                                                subitem[libpyferret.TIMEARRAY_HOURINDEX],
+                                                subitem[libpyferret.TIMEARRAY_MINUTEINDEX],
+                                                subitem[libpyferret.TIMEARRAY_SECONDINDEX],) )
+                        if len(strlist) == 0:
+                           strlist.append("[]")
+                        else:
+                           strlist[0] = "[" + strlist[0][1:]
+                           strlist[-1] = strlist[-1] + "]"
+                    else:
+                        # just print the values of non-time axis coordinates
+                        strlist = str(item).split('\n')
+                    # adjust the subsequent-line-indent if multiple lines
+                    itemstr = itemlabel + strlist[0]
+                    indent = " " * len(itemlabel)
+                    for addstr in strlist[1:]:
+                        itemstr += "\n" + indent + addstr
+                    print >>strbuf, itemstr
+            elif keystr == "axis_types":
+                # add a translation of the axis type number
+                valstr = "("
+                for (idx, item) in enumerate(val):
+                    if idx > 0:
+                        valstr += ", "
+                    valstr += str(item)
+                    if item == libpyferret.AXISTYPE_LONGITUDE:
+                        valstr += "=longitude"
+                    elif item == libpyferret.AXISTYPE_LATITUDE:
+                        valstr += "=latitude"
+                    elif item == libpyferret.AXISTYPE_LEVEL:
+                        valstr += "=level"
+                    elif item == libpyferret.AXISTYPE_TIME:
+                        valstr += "=time"
+                    elif item == libpyferret.AXISTYPE_CUSTOM:
+                        valstr += "=custom"
+                    elif item == libpyferret.AXISTYPE_ABSTRACT:
+                        valstr += "=abstract"
+                    elif item == libpyferret.AXISTYPE_NORMAL:
+                        valstr += "=unused"
+                valstr += ")"
+                print >>strbuf, keystr + ": " + valstr
+            elif keystr == "missing_value":
+                # print the one value in the missing value array
+                print >>strbuf, keystr + ": " + str(val[0])
+            else:
+                # just print as "key: value", except
+                # adjust the subsequent-line-indent if multiple lines
+                strlist = str(val).split('\n')
+                valstr = strlist[0]
+                indent = " " * (len(keystr) + 2)
+                for addstr in strlist[1:]:
+                    valstr += "\n" + indent + addstr
+                print >>strbuf, keystr + ": " + valstr
+        except KeyError:
+            # known key not present - ignore
+            pass
+    strval = strbuf.getvalue()
+    strbuf.close()
+    return strval
+
+
+def getstrdata(name):
+    """
+    Returns the string array and axes information for the data variable
+    described in name as a dictionary.
+
+    Arguments:
+        name: the name of the string data array to retrieve
+    Returns:
+        A dictionary contains the string data array and axes information.
+        The dictionary contains the following key/value pairs:
+            'title' : the string passed in the name argument
+            'data': the string data array.  This will be a NumPy String 
+                    ndarray with a string length one more than the longest
+                    string in the array.
+            'missing_value': the missing data value.  This will be a NumPy
+                    String ndarray (with the same string length as for data)
+                    containing a single String value.
+            'axis_types': a list of integer values describing the type of
+                    each axis.  Possible values are the following constants
+                    defined by the pyferret module:
+                        AXISTYPE_LONGITUDE
+                        AXISTYPE_LATITUDE
+                        AXISTYPE_LEVEL
+                        AXISTYPE_TIME
+                        AXISTYPE_CUSTOM   (axis units not recognized by Ferret)
+                        AXISTYPE_ABSTRACT (axis is unit-less integer values)
+                        AXISTYPE_NORMAL   (axis is normal to the data)
+            'axis_names': a list of strings giving the name of each axis
+            'axis_units': a list of strings giving the unit of each axis.
+                    If the axis type is AXISTYPE_TIME, this names the calendar
+                    used for the timestamps, as one of the following strings
+                    defined by the pyferret module:
+                        CALTYPE_360DAY
+                        CALTYPE_NOLEAP
+                        CALTYPE_GREGORIAN
+                        CALTYPE_JULIAN
+                        CALTYPE_ALLLEAP
+                        CALTYPE_NONE    (calendar not specified)
+            'axis_coords': a list of NumPy ndarrays giving the coordinate values
+                    for each axis.  If the axis type is neither AXISTYPE_TIME
+                    nor AXISTYPE_NORMAL, a NumPy float64 ndarray is given.  If
+                    the axis is type AXISTYPE_TIME, a NumPy integer ndarray of
+                    shape (N,6) where N is the number of time points.  The six
+                    integer values per time point are the day, month, year, hour,
+                    minute, and second of the associate calendar for this time
+                    axis.  The following constants defined by the pyferret module
+                    give the values of these six indices:
+                        TIMEARRAY_DAYINDEX
+                        TIMEARRAY_MONTHINDEX
+                        TIMEARRAY_YEARINDEX
+                        TIMEARRAY_HOURINDEX
+                        TIMEARRAY_MINUTEINDEX
+                        TIMEARRAY_SECONDINDEX
+                    (Thus, axis_coords[t, pyferret.TIMEARRAY_YEARINDEX]
+                     gives the year of time point t.)
+        Note: a relative time axis will be of type AXISTYPE_CUSTOM, with a unit
+              indicating the starting point, such as 'days since 01-JAN-2000'
+    Raises:
+        ValueError if the data name is invalid
+        MemoryError if Ferret has not been started or has been stopped
+    See also:
+        get
+    """
+    # check name
+    if not isinstance(name, str):
+        raise ValueError("name must be a string")
+    elif name.isspace():
+        raise ValueError("name cannot be an empty string")
+    # get the data and related information from Ferret
+    vals = libpyferret._getstrdata(name)
+    # break apart the tuple to simplify (returning a dictionary would have been better)
+    data = vals[0]
+    bdfs = vals[1]
+    axis_types = vals[2]
+    axis_names = vals[3]
+    axis_units = vals[4]
+    axis_coords = vals[5]
+    # A custom axis could be standard axis that is not in Ferret's expected order,
+    # so check the units
+    for k in xrange(libpyferret.MAX_FERRET_NDIM):
+        if axis_types[k] == libpyferret.AXISTYPE_CUSTOM:
+            uc_units = axis_units[k].upper()
+            if uc_units in _UC_LONGITUDE_UNITS:
+                axis_types[k] = libpyferret.AXISTYPE_LONGITUDE
+            elif uc_units in _UC_LATITUDE_UNITS:
+                axis_types[k] = libpyferret.AXISTYPE_LATITUDE
+    # libpyferret._get returns a copy of the data, so no need to force a copy
+    return { "title": name, "data":data, "missing_value":bdfs, "axis_types":axis_types, 
+             "axis_names":axis_names, "axis_units":axis_units, "axis_coords":axis_coords }
+
+
+def getdata(name, create_mask=True):
+    """
+    Returns the numeric array and axes information for the data variable
+    described in name as a dictionary.
+
+    Arguments:
+        name: the name of the numeric data to retrieve
+        create_mask: return the numeric data array as a MaskedArray object?
+    Returns:
+        A dictionary contains the numeric data array and axes information.
+        Note that 'name' is not assigned, which is required for the putdata
+        method.  The dictionary contains the following key/value pairs:
+            'title' : the string passed in the name argument
+            'data': the numeric data array.  If create_mask is True, this
+                    will be a NumPy float64 MaskedArray object with the
+                    masked array properly assigned.  If create_mask is False,
+                    this will just be a NumPy float64 ndarray.
+            'missing_value': the missing data value.  This will be a NumPy
+                    float64 ndarray containing a single value.
+            'data_unit': a string describing the unit of the data.
+            'axis_types': a list of integer values describing the type of
+                    each axis.  Possible values are the following constants
+                    defined by the pyferret module:
+                        AXISTYPE_LONGITUDE
+                        AXISTYPE_LATITUDE
+                        AXISTYPE_LEVEL
+                        AXISTYPE_TIME
+                        AXISTYPE_CUSTOM   (axis units not recognized by Ferret)
+                        AXISTYPE_ABSTRACT (axis is unit-less integer values)
+                        AXISTYPE_NORMAL   (axis is normal to the data)
+            'axis_names': a list of strings giving the name of each axis
+            'axis_units': a list of strings giving the unit of each axis.
+                    If the axis type is AXISTYPE_TIME, this names the calendar
+                    used for the timestamps, as one of the following strings
+                    defined by the pyferret module:
+                        CALTYPE_360DAY
+                        CALTYPE_NOLEAP
+                        CALTYPE_GREGORIAN
+                        CALTYPE_JULIAN
+                        CALTYPE_ALLLEAP
+                        CALTYPE_NONE    (calendar not specified)
+            'axis_coords': a list of NumPy ndarrays giving the coordinate values
+                    for each axis.  If the axis type is neither AXISTYPE_TIME
+                    nor AXISTYPE_NORMAL, a NumPy float64 ndarray is given.  If
+                    the axis is type AXISTYPE_TIME, a NumPy integer ndarray of
+                    shape (N,6) where N is the number of time points.  The six
+                    integer values per time point are the day, month, year, hour,
+                    minute, and second of the associate calendar for this time
+                    axis.  The following constants defined by the pyferret module
+                    give the values of these six indices:
+                        TIMEARRAY_DAYINDEX
+                        TIMEARRAY_MONTHINDEX
+                        TIMEARRAY_YEARINDEX
+                        TIMEARRAY_HOURINDEX
+                        TIMEARRAY_MINUTEINDEX
+                        TIMEARRAY_SECONDINDEX
+                    (Thus, axis_coords[t, pyferret.TIMEARRAY_YEARINDEX]
+                     gives the year of time point t.)
+        Note: a relative time axis will be of type AXISTYPE_CUSTOM, with a unit
+              indicating the starting point, such as 'days since 01-JAN-2000'
+    Raises:
+        ValueError if the data name is invalid
+        MemoryError if Ferret has not been started or has been stopped
+    See also:
+        get
+    """
+    # check name
+    if not isinstance(name, str):
+        raise ValueError("name must be a string")
+    elif name.isspace():
+        raise ValueError("name cannot be an empty string")
+    # get the data and related information from Ferret
+    vals = libpyferret._get(name)
+    # break apart the tuple to simplify (returning a dictionary would have been better)
+    data = vals[0]
+    bdfs = vals[1]
+    data_unit = vals[2]
+    axis_types = vals[3]
+    axis_names = vals[4]
+    axis_units = vals[5]
+    axis_coords = vals[6]
+    # A custom axis could be standard axis that is not in Ferret's expected order,
+    # so check the units
+    for k in xrange(libpyferret.MAX_FERRET_NDIM):
+        if axis_types[k] == libpyferret.AXISTYPE_CUSTOM:
+            uc_units = axis_units[k].upper()
+            if uc_units in _UC_LONGITUDE_UNITS:
+                axis_types[k] = libpyferret.AXISTYPE_LONGITUDE
+            elif uc_units in _UC_LATITUDE_UNITS:
+                axis_types[k] = libpyferret.AXISTYPE_LATITUDE
+    # libpyferret._get returns a copy of the data, so no need to force a copy
+    if create_mask:
+        if numpy.isnan(bdfs[0]):
+            # NaN comparisons always return False, even to another NaN
+            datavar = numpy.ma.array(data, fill_value=bdfs[0], mask=numpy.isnan(data))
+        else:
+            # since values in data and bdfs[0] are all float64 values assigned by Ferret,
+            # using equality should work correctly
+            datavar = numpy.ma.array(data, fill_value=bdfs[0], mask=( data == bdfs[0] ))
+    else:
+        datavar = data
+    return { "title": name, "data":datavar, "missing_value":bdfs, "data_unit":data_unit,
+             "axis_types":axis_types, "axis_names":axis_names, "axis_units":axis_units,
+             "axis_coords":axis_coords }
+
+
+def putdata(datavar_dict, axis_pos=None):
+    """
+    Creates a Ferret data variable with a copy of the data given in the dictionary
+    datavar_dict, reordering the data and axes according to tuple axis_pos.
+
+    Arguments:
+
+        datavar_dict: a dictionary with the following keys and associated values:
+            'name': the code name for the variable in Ferret (eg, 'SST').
+                    Must be given.
+            'title': the title name for the variable in Ferret (eg, 'Sea Surface
+                    Temperature').  If not given, the value of 'name' is used.
+            'dset' : the Ferret dataset name or number to associate with this new data
+                    variable.  If blank or not given, the current dataset is used.  If
+                    None or 'None', no dataset will be associated with the new variable.
+            'data': a NumPy numeric ndarray or masked array.  The data will be saved
+                    in Ferret as a 64-bit floating-point values.  Must be given.
+            'missing_value': the missing data value.  This will be saved in Ferret as
+                    a 64-bit floating-point value.  If not given, Ferret's default
+                    missing value (-1.0E34) will be used.
+            'data_unit': a string describing the unit of the data.  If not given, no
+                    unit will be assigned.
+            'axis_types': a list of integer values describing the type of each axis.
+                    Possible values are the following constants defined by the pyferret
+                    module:
+                        AXISTYPE_LONGITUDE
+                        AXISTYPE_LATITUDE
+                        AXISTYPE_LEVEL
+                        AXISTYPE_TIME
+                        AXISTYPE_CUSTOM   (axis units not interpreted by Ferret)
+                        AXISTYPE_ABSTRACT (axis is unit-less integer values)
+                        AXISTYPE_NORMAL   (axis is normal to the data)
+                    If not given, AXISTYPE_ABSTRACT will be used if the data array
+                    has data for that axis (shape element greater than one); otherwise,
+                    AXISTYPE_NORMAL will be used.
+            'axis_names': a list of strings giving the name of each axis.  If not given,
+                    Ferret will generate names if needed.
+            'axis_units': a list of strings giving the unit of each axis.
+                    If the axis type is AXISTYPE_TIME, this names the calendar
+                    used for the timestamps, as one of the following strings
+                    defined by the pyferret module:
+                        CALTYPE_360DAY
+                        CALTYPE_NOLEAP
+                        CALTYPE_GREGORIAN
+                        CALTYPE_JULIAN
+                        CALTYPE_ALLLEAP
+                        CALTYPE_NONE    (calendar not specified)
+                    If not given, 'DEGREES_E' will be used for AXISTYPE_LONGITUDE,
+                    'DEGREES_N' for AXISTYPE_LATITUDE, CALTYPE_GREGORIAN for
+                    AXISTYPE_TIME, and no units will be given for other axis types.
+            'axis_coords': a list of arrays of coordinates for each axis.
+                    If the axis type is neither AXISTYPE_TIME nor AXISTYPE_NORMAL,
+                    a one-dimensional numeric list or ndarray should be given (the
+                    values will be stored as floating-point values).
+                    If the axis is type AXISTYPE_TIME, a two-dimension list or ndarray
+                    with shape (N,6), where N is the number of time points, should be
+                    given.  The six integer values per time point are the day, month,
+                    year, hour, minute, and second of the associate calendar for this
+                    time axis.  The following constants defined by the pyferret module
+                    give the values of these six indices:
+                        TIMEARRAY_DAYINDEX
+                        TIMEARRAY_MONTHINDEX
+                        TIMEARRAY_YEARINDEX
+                        TIMEARRAY_HOURINDEX
+                        TIMEARRAY_MINUTEINDEX
+                        TIMEARRAY_SECONDINDEX
+                    (Thus, axis_coords[t, pyferret.TIMEARRAY_YEARINDEX] gives the year of
+                     time point t.)
+                    An array of coordinates must be given if the axis does not have a type
+                    of AXISTYPE_NORMAL or AXISTYPE_ABSTRACT (or if axis types are not given).
+            Note: a relative time axis should be given as type AXISTYPE_CUSTOM, with a
+                  unit indicating the starting point, such as 'days since 01-JAN-2000'
+
+        axis_pos: a six-tuple giving the Ferret positions for each axis in datavar.
+            If the axes in datavar are in (forecast, ensemble, time, level, lat., long.)
+            order, the tuple (F_AXIS, E_AXIS, T_AXIS, Z_AXIS, Y_AXIS, X_AXIS) should be
+            used for proper axis handling in Ferret.  If not given (or None), the first
+            longitude axis will be made the X_AXIS, the first latitude axis will be made
+            the Y_AXIS, the first level axis will be made the Z_AXIS, the first time axis
+            will be made the T_AXIS, the second time axis will be made the F_AXIS, and any
+            remaining axes are then filled into the remaining unassigned positions.
+
+    Returns:
+        None
+
+    Raises:
+        KeyError: if datavar_dict is missing a required key
+        MemoryError: if Ferret has not been started or has been stopped
+        ValueError:  if there is a problem with the value of a key
+
+    See also:
+        put
+    """
+    #
+    # code name for the variable
+    codename = datavar_dict.get('name', '')
+    if codename != None:
+        codename = str(codename).strip()
+    if not codename:
+        raise ValueError("The value of 'name' must be a non-blank string")
+    #
+    # title for the variable
+    titlename = str(datavar_dict.get('title', codename)).strip()
+    #
+    # Ferret dataset for the variable; None gets turned into the string 'None'
+    dset_str = str(datavar_dict.get('dset', '')).strip()
+    #
+    # value for missing data
+    missingval = float(datavar_dict.get('missing_value', -1.0E34))
+    #
+    # data units
+    data_unit = str(datavar_dict.get('data_unit', '')).strip()
+    #
+    # axis types
+    axis_types = [ libpyferret.AXISTYPE_NORMAL ] * libpyferret.MAX_FERRET_NDIM
+    given_axis_types = datavar_dict.get('axis_types', None)
+    if given_axis_types:
+        if len(given_axis_types) > libpyferret.MAX_FERRET_NDIM:
+            raise ValueError("More than %d axes (in the types) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
+        for k in xrange(len(given_axis_types)):
+            axis_types[k] = given_axis_types[k]
+    #
+    # axis names
+    axis_names = [ "" ] * libpyferret.MAX_FERRET_NDIM
+    given_axis_names = datavar_dict.get('axis_names', None)
+    if given_axis_names:
+        if len(given_axis_names) > libpyferret.MAX_FERRET_NDIM:
+            raise ValueError("More than %d axes (in the names) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
+        for k in xrange(len(given_axis_names)):
+            axis_names[k] = given_axis_names[k]
+    #
+    # axis units
+    axis_units = [ "" ] * libpyferret.MAX_FERRET_NDIM
+    given_axis_units = datavar_dict.get('axis_units', None)
+    if given_axis_units:
+        if len(given_axis_units) > libpyferret.MAX_FERRET_NDIM:
+            raise ValueError("More than %d axes (in the units) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
+        for k in xrange(len(given_axis_units)):
+            axis_units[k] = given_axis_units[k]
+    # axis coordinates
+    axis_coords = [ None ] * libpyferret.MAX_FERRET_NDIM
+    given_axis_coords = datavar_dict.get('axis_coords', None)
+    if given_axis_coords:
+        if len(given_axis_coords) > libpyferret.MAX_FERRET_NDIM:
+            raise ValueError("More than %d axes (in the coordinates) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
+        for k in xrange(len(given_axis_coords)):
+            axis_coords[k] = given_axis_coords[k]
+    #
+    # data array
+    datavar = datavar_dict['data']
+    #
+    # For any axis with data (shape > 1), if AXISTYPE_NORMAL (presumably from not being specified),
+    # change to AXISTYPE_ABSTRACT.  Note that a shape == 1 could either be normal or a singleton axis.
+    try:
+        shape = datavar.shape
+        if len(shape) > libpyferret.MAX_FERRET_NDIM:
+            raise ValueError("More than %d axes (in the data) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
+        for k in xrange(len(shape)):
+            if (shape[k] > 1) and (axis_types[k] == libpyferret.AXISTYPE_NORMAL):
+                axis_types[k] = libpyferret.AXISTYPE_ABSTRACT
+    except AttributeError:
+        raise ValueError("The value of 'data' must be a NumPy ndarray (or derived from an ndarray)")
+    #
+    # assign any defaults on the axis information not given,
+    # and make a copy of the axis coordinates (to ensure they are well-behaved)
+    for k in xrange(libpyferret.MAX_FERRET_NDIM):
+        if axis_types[k] == libpyferret.AXISTYPE_LONGITUDE:
+            if not axis_units[k]:
+                axis_units[k] = "DEGREES_E"
+            axis_coords[k] = numpy.array(axis_coords[k], dtype=numpy.float64, copy=1)
+            if axis_coords[k].shape[0] != shape[k]:
+                raise ValueError("number of coordinates for axis %d does not match the number of data points" % (k+1))
+        elif axis_types[k] == libpyferret.AXISTYPE_LATITUDE:
+            if not axis_units[k]:
+                axis_units[k] = "DEGREES_N"
+            axis_coords[k] = numpy.array(axis_coords[k], dtype=numpy.float64, copy=1)
+            if axis_coords[k].shape[0] != shape[k]:
+                raise ValueError("number of coordinates for axis %d does not match the number of data points" % (k+1))
+        elif axis_types[k] == libpyferret.AXISTYPE_LEVEL:
+            axis_coords[k] = numpy.array(axis_coords[k], dtype=numpy.float64, copy=1)
+            if axis_coords[k].shape[0] != shape[k]:
+                raise ValueError("number of coordinates for axis %d does not match the number of data points" % (k+1))
+        elif axis_types[k] == libpyferret.AXISTYPE_TIME:
+            if not axis_units[k]:
+                axis_units[k] = CALTYPE_GREGORIAN
+            axis_coords[k] = numpy.array(axis_coords[k], dtype=numpy.int32, order='C', copy=1)
+            if axis_coords[k].shape[0] != shape[k]:
+                raise ValueError("number of coordinates for axis %d does not match the number of data points" % (k+1))
+            if axis_coords[k].shape[1] != 6:
+                raise ValueError("number of components (second index) for time axis %d is not 6" % (k+1))
+        elif axis_types[k] == libpyferret.AXISTYPE_CUSTOM:
+            axis_coords[k] = numpy.array(axis_coords[k], dtype=numpy.float64, copy=1)
+            if axis_coords[k].shape[0] != shape[k]:
+                raise ValueError("number of coordinates for axis %d does not match the number of data points" % (k+1))
+        elif axis_types[k] == libpyferret.AXISTYPE_ABSTRACT:
+            if axis_coords[k] != None:
+                axis_coords[k] = numpy.array(axis_coords[k], dtype=numpy.float64, copy=1)
+                if axis_coords[k].shape[0] != shape[k]:
+                    raise ValueError("number of coordinates for axis %d does not match the number of data points" % (k+1))
+            else:
+                # axis needed but not specified
+                axis_coords[k] = numpy.arange(1.0, float(shape[k]) + 0.5, 1.0, dtype=numpy.float64)
+        elif axis_types[k] == libpyferret.AXISTYPE_NORMAL:
+            axis_coords[k] = None
+        else:
+            raise RuntimeError("Unexpected axis_type of %d" % axis_types[k])
+    #
+    # figure out the desired axis order
+    if axis_pos != None:
+        # start with the positions provided by the user
+        ferr_axis = list(axis_pos)
+        if len(ferr_axis) < len(shape):
+            raise ValueError("axis_pos, if given, must provide a position for each axis in the data")
+        # append undefined axes positions, which were initialized to AXISTYPE_NORMAL
+        if not libpyferret.X_AXIS in ferr_axis:
+            ferr_axis.append(libpyferret.X_AXIS)
+        if not libpyferret.Y_AXIS in ferr_axis:
+            ferr_axis.append(libpyferret.Y_AXIS)
+        if not libpyferret.Z_AXIS in ferr_axis:
+            ferr_axis.append(libpyferret.Z_AXIS)
+        if not libpyferret.T_AXIS in ferr_axis:
+            ferr_axis.append(libpyferret.T_AXIS)
+        if not libpyferret.E_AXIS in ferr_axis:
+            ferr_axis.append(libpyferret.E_AXIS)
+        if not libpyferret.F_AXIS in ferr_axis:
+            ferr_axis.append(libpyferret.F_AXIS)
+        # intentionally left as 6 (instead of MAX_FERRET_NDIM) since new axes will need to be appended
+        if len(ferr_axis) != 6:
+            raise ValueError("axis_pos can contain at most one of each of the pyferret integer values X_AXIS, Y_AXIS, Z_AXIS, or T_AXIS")
+    else:
+        ferr_axis = [ -1 ] * libpyferret.MAX_FERRET_NDIM
+        # assign positions of longitude/latitude/level/time
+        for k in xrange(len(axis_types)):
+            if axis_types[k] == libpyferret.AXISTYPE_LONGITUDE:
+                if not libpyferret.X_AXIS in ferr_axis:
+                    ferr_axis[k] = libpyferret.X_AXIS
+            elif axis_types[k] == libpyferret.AXISTYPE_LATITUDE:
+                if not libpyferret.Y_AXIS in ferr_axis:
+                    ferr_axis[k] = libpyferret.Y_AXIS
+            elif axis_types[k] == libpyferret.AXISTYPE_LEVEL:
+                if not libpyferret.Z_AXIS in ferr_axis:
+                    ferr_axis[k] = libpyferret.Z_AXIS
+            elif axis_types[k] == libpyferret.AXISTYPE_TIME:
+                if not libpyferret.T_AXIS in ferr_axis:
+                    ferr_axis[k] = libpyferret.T_AXIS
+                elif not libpyferret.F_AXIS in ferr_axis:
+                    ferr_axis[k] = libpyferret.F_AXIS
+        # fill in other axes types in unused positions
+        if not libpyferret.X_AXIS in ferr_axis:
+            ferr_axis[ferr_axis.index(-1)] = libpyferret.X_AXIS
+        if not libpyferret.Y_AXIS in ferr_axis:
+            ferr_axis[ferr_axis.index(-1)] = libpyferret.Y_AXIS
+        if not libpyferret.Z_AXIS in ferr_axis:
+            ferr_axis[ferr_axis.index(-1)] = libpyferret.Z_AXIS
+        if not libpyferret.T_AXIS in ferr_axis:
+            ferr_axis[ferr_axis.index(-1)] = libpyferret.T_AXIS
+        if not libpyferret.E_AXIS in ferr_axis:
+            ferr_axis[ferr_axis.index(-1)] = libpyferret.E_AXIS
+        if not libpyferret.F_AXIS in ferr_axis:
+            ferr_axis[ferr_axis.index(-1)] = libpyferret.F_AXIS
+        try:
+            ferr_axis.index(-1)
+            raise RuntimeError("Unexpected undefined axis position (MAX_FERRET_NDIM increased?) in ferr_axis " + str(ferr_axis))
+        except ValueError:
+            # expected result
+            pass
+    #
+    # get the missing data value as a 64-bit float
+    bdfval = numpy.array(missingval, dtype=numpy.float64)
+    #
+    # if a masked array, make sure the masked values are set
+    # to the missing value, and get the ndarray underneath
+    try:
+        if numpy.any(datavar.mask):
+            datavar.data[datavar.mask] = bdfval
+        data = datavar.data
+    except AttributeError:
+        data = datavar
+    #
+    # get the data as an ndarray of MAX_FERRET_NDIM dimensions
+    # adding new axes still reference the original data array - just creates new shape and stride objects
+    for k in xrange(len(shape), libpyferret.MAX_FERRET_NDIM):
+        data = data[..., numpy.newaxis]
+    #
+    # swap data axes and axis information to give (X_AXIS, Y_AXIS, Z_AXIS, T_AXIS, E_AXIS, F_AXIS) axes
+    # swapping axes still reference the original data array - just creates new shape and stride objects
+    k = ferr_axis.index(libpyferret.X_AXIS)
+    if k != 0:
+        data = data.swapaxes(0, k)
+        ferr_axis[0], ferr_axis[k] = ferr_axis[k], ferr_axis[0]
+        axis_types[0], axis_types[k] = axis_types[k], axis_types[0]
+        axis_names[0], axis_names[k] = axis_names[k], axis_names[0]
+        axis_units[0], axis_units[k] = axis_units[k], axis_units[0]
+        axis_coords[0], axis_coords[k] = axis_coords[k], axis_coords[0]
+    k = ferr_axis.index(libpyferret.Y_AXIS)
+    if k != 1:
+        data = data.swapaxes(1, k)
+        ferr_axis[1], ferr_axis[k] = ferr_axis[k], ferr_axis[1]
+        axis_types[1], axis_types[k] = axis_types[k], axis_types[1]
+        axis_names[1], axis_names[k] = axis_names[k], axis_names[1]
+        axis_units[1], axis_units[k] = axis_units[k], axis_units[1]
+        axis_coords[1], axis_coords[k] = axis_coords[k], axis_coords[1]
+    k = ferr_axis.index(libpyferret.Z_AXIS)
+    if k != 2:
+        data = data.swapaxes(2, k)
+        ferr_axis[2], ferr_axis[k] = ferr_axis[k], ferr_axis[2]
+        axis_types[2], axis_types[k] = axis_types[k], axis_types[2]
+        axis_names[2], axis_names[k] = axis_names[k], axis_names[2]
+        axis_units[2], axis_units[k] = axis_units[k], axis_units[2]
+        axis_coords[2], axis_coords[k] = axis_coords[k], axis_coords[2]
+    k = ferr_axis.index(libpyferret.T_AXIS)
+    if k != 3:
+        data = data.swapaxes(3, k)
+        ferr_axis[3], ferr_axis[k] = ferr_axis[k], ferr_axis[3]
+        axis_types[3], axis_types[k] = axis_types[k], axis_types[3]
+        axis_names[3], axis_names[k] = axis_names[k], axis_names[3]
+        axis_units[3], axis_units[k] = axis_units[k], axis_units[3]
+        axis_coords[3], axis_coords[k] = axis_coords[k], axis_coords[3]
+    k = ferr_axis.index(libpyferret.E_AXIS)
+    if k != 4:
+        data = data.swapaxes(4, k)
+        ferr_axis[4], ferr_axis[k] = ferr_axis[k], ferr_axis[4]
+        axis_types[4], axis_types[k] = axis_types[k], axis_types[4]
+        axis_names[4], axis_names[k] = axis_names[k], axis_names[4]
+        axis_units[4], axis_units[k] = axis_units[k], axis_units[4]
+        axis_coords[4], axis_coords[k] = axis_coords[k], axis_coords[4]
+    # F_AXIS must now be ferr_axis[5]
+    # assumes MAX_FERRET_NDIM == 6; extend the logic if axes are added
+    # would rather not assume X_AXIS == 0, Y_AXIS == 1, Z_AXIS == 2,
+    #                         T_AXIS == 3, E_AXIS == 4, F_AXIS == 5
+    #
+    # now make a copy of the data as (contiguous) 64-bit floats in Fortran order
+    fdata = numpy.array(data, dtype=numpy.float64, order='F', copy=1)
+    #
+    # libpyferret._put will raise an Exception if there is a problem
+    libpyferret._put(codename, titlename, fdata, bdfval, data_unit, dset_str,
+                  axis_types, axis_names, axis_units, axis_coords)
+    return None
+
+
+def get(name, create_mask=True):
+    """
+    Returns the numeric data array described in name as a TransientVariable object.
+
+    Arguments:
+        name: the name of the numeric data array to retrieve
+        create_mask: create the mask for the TransientVariable object?
+    Returns:
+        A cdms2 TransientVariable object (cdms2.tvariable) containing the
+        numeric data.  The data, axes, and missing value will be assigned.
+        If create_mask is True (or not given), the mask attribute will be
+        assigned using the missing value.
+    Raises:
+        ImportError: if the cdms2 or cdtime modules cannot be found (use getdata instead)
+        ValueError:  if the data name is invalid
+        MemoryError: if Ferret has not been started or has been stopped
+    See also:
+        getdata (does not need cdms2 or cdtime)
+    """
+    # Check (again) if able to import cdms2/cdtime.
+    # If the imports were successful before, these imports do nothing
+    try:
+        import cdms2
+        import cdtime
+    except ImportError:
+        raise ImportError("cdms2 or cdtime not found; pyferret.get not available.\n" \
+                          "             Use pyferret.getdata instead.")
+
+    # get the data and related information from Ferret,
+    # building on what was done in getdata
+    data_dict = getdata(name, create_mask)
+    data = data_dict["data"]
+    bdfs = data_dict["missing_value"]
+    data_unit = data_dict["data_unit"]
+    axis_types = data_dict["axis_types"]
+    axis_names = data_dict["axis_names"]
+    axis_units = data_dict["axis_units"]
+    axis_coords = data_dict["axis_coords"]
+    # create the axis list for this variable
+    var_axes = [ ]
+    for k in xrange(libpyferret.MAX_FERRET_NDIM):
+        if axis_types[k] == libpyferret.AXISTYPE_LONGITUDE:
+            newaxis = cdms2.createAxis(axis_coords[k], id=axis_names[k])
+            newaxis.units = axis_units[k]
+            newaxis.designateLongitude()
+            var_axes.append(newaxis)
+        elif axis_types[k] == libpyferret.AXISTYPE_LATITUDE:
+            newaxis = cdms2.createAxis(axis_coords[k], id=axis_names[k])
+            newaxis.units = axis_units[k]
+            newaxis.designateLatitude()
+            var_axes.append(newaxis)
+        elif axis_types[k] == libpyferret.AXISTYPE_LEVEL:
+            newaxis = cdms2.createAxis(axis_coords[k], id=axis_names[k])
+            newaxis.units = axis_units[k]
+            newaxis.designateLevel()
+            var_axes.append(newaxis)
+        elif axis_types[k] == libpyferret.AXISTYPE_TIME:
+            # create the time axis from cdtime.comptime (component time) objects
+            time_coords = axis_coords[k]
+            timevals = [ ]
+            for t in xrange(time_coords.shape[0]):
+                day = time_coords[t, libpyferret.TIMEARRAY_DAYINDEX]
+                month = time_coords[t, libpyferret.TIMEARRAY_MONTHINDEX]
+                year = time_coords[t, libpyferret.TIMEARRAY_YEARINDEX]
+                hour = time_coords[t, libpyferret.TIMEARRAY_HOURINDEX]
+                minute = time_coords[t, libpyferret.TIMEARRAY_MINUTEINDEX]
+                second = time_coords[t, libpyferret.TIMEARRAY_SECONDINDEX]
+                timevals.append( cdtime.comptime(year,month,day,hour,minute,second) )
+            newaxis = cdms2.createAxis(timevals, id=axis_names[k])
+            # designate the calendar
+            if axis_units[k] == CALTYPE_360DAY:
+                calendar_type = cdtime.Calendar360
+            elif axis_units[k] == CALTYPE_NOLEAP:
+                calendar_type = cdtime.NoLeapCalendar
+            elif axis_units[k] == CALTYPE_GREGORIAN:
+                calendar_type = cdtime.GregorianCalendar
+            elif axis_units[k] == CALTYPE_JULIAN:
+                calendar_type = cdtime.JulianCalendar
+            else:
+                if axis_units[k] == CALTYPE_ALLLEAP:
+                    raise ValueError("The all-leap calendar not support by cdms2")
+                if axis_units[k] == CALTYPE_NONE:
+                    raise ValueError("Undesignated calendar not support by cdms2")
+                raise RuntimeError("Unexpected calendar type of %s" % axis_units[k])
+            newaxis.designateTime(calendar=calendar_type)
+            # and finally append it to the axis list
+            var_axes.append(newaxis)
+        elif axis_types[k] == libpyferret.AXISTYPE_CUSTOM:
+            # Check a custom axis for relative time units.  Note that getdata has
+            # already dealt with longitude or latitude not in Ferret's standard position.
+            lc_vals = axis_units[k].lower().split()
+            if (len(lc_vals) > 2) and (lc_vals[1] == "since") and (lc_vals[0] in _LC_TIME_UNITS):
+                # (unit) since (start_date)
+                datevals = lc_vals[2].split("-")
+                try:
+                    # try to convert dd-mon-yyyy Ferret-style start_date to yyyy-mm-dd
+                    day_num = int(datevals[0])
+                    mon_num = _LC_MONTH_NUMS[datevals[1]]
+                    year_num = int(datevals[2])
+                    lc_vals[2] = "%04d-%02d-%02d" % (year_num, mon_num, day_num)
+                    relunit = " ".join(lc_vals)
+                except (IndexError, KeyError, ValueError):
+                    # use the relative time unit as given
+                    relunit = " ".join(lc_vals)
+                timevals = [ ]
+                for t in xrange(axis_coords[k].shape[0]):
+                    dtval = cdtime.reltime(axis_coords[k][t], relunit)
+                    timevals.append(dtval)
+                newaxis = cdms2.createAxis(timevals, id=axis_names[k])
+                newaxis.designateTime()
+            else:
+                newaxis = cdms2.createAxis(axis_coords[k], id=axis_names[k])
+                newaxis.units = axis_units[k]
+            var_axes.append(newaxis)
+        elif axis_types[k] == libpyferret.AXISTYPE_ABSTRACT:
+            newaxis = cdms2.createAxis(axis_coords[k], id=axis_names[k])
+            var_axes.append(newaxis)
+        elif axis_types[k] == libpyferret.AXISTYPE_NORMAL:
+            var_axes.append(None)
+        else:
+            raise RuntimeError("Unexpected axis type of %d" % axis_types[k])
+    # getdata returns a copy of the data, thus createVariable does not
+    # need to force a copy.  The mask, if request, was created by getdata.
+    datavar = cdms2.createVariable(data, fill_value=bdfs[0], axes=var_axes,
+                                   attributes={"name":name, "units":data_unit})
+    return datavar
+
+
+def put(datavar, axis_pos=None):
+    """
+    Creates a Ferret data variable with a copy of the data given in the
+    AbstractVariable object datavar.
+
+    Arguments:
+
+        datavar:  a cdms2 AbstractVariable describing the data variable
+                  to be created in Ferret.  Any masked values in the data
+                  of datavar will be set to the missing value for datavar
+                  before extracting the data as 64-bit floating-point
+                  values for Ferret.  In addition to the data and axes
+                  described in datavar, the following attributes are used:
+                      id: the code name for the variable in Ferret (eg,
+                          'SST').  This name must be present and, ideally,
+                          should not contain spaces, quotes, or algebraic
+                          symbols.
+                      name: the title name of the variable in Ferret (eg,
+                          'Sea Surface Temperature').  If not present, the
+                          value of the id attribute is used.
+                      units: the unit name for the data.  If not present,
+                          no units are associated with the data.
+                      dset: Ferret dataset name or number to be associated
+                          with this new variable.  If not given or blank,
+                          the variable is associated with the current dataset.
+                          If None or 'None', the variable is not associated
+                          with any dataset.
+
+        axis_pos: a six-tuple giving the Ferret positions for each axis in
+                  datavar.  If the axes in datavar are in (forecast, ensemble,
+                  time, level, lat., long.) order, the tuple (F_AXIS, E_AXIS,
+                  T_AXIS, Z_AXIS, Y_AXIS, X_AXIS) should be used for proper
+                  axis handling in Ferret.  If not given (or None), the first
+                  longitude axis will be made the X_AXIS, the first latitude
+                  axis will be made the Y_AXIS, the first level axis will be
+                  made the Z_AXIS, the first time axis will be made the T_AXIS,
+                  the second time axis will be made the F_AXIS, and any remaining
+                  axes are then filled into the remaining unassigned positions.
+
+    Returns:
+        None
+
+    Raises:
+        ImportError:    if the cdms2 or cdtime modules cannot be found (use putdata instead)
+        AttributeError: if datavar is missing a required method or attribute
+        MemoryError:    if Ferret has not been started or has been stopped
+        ValueError:     if there is a problem with the contents of the arguments
+
+    See also:
+        putdata (does not require cdms2 or cdtime)
+    """
+    # Check (again) if able to import cdms2/cdtime.
+    # If the imports were successful before, these imports do nothing
+    try:
+        import cdms2
+        import cdtime
+    except ImportError:
+        raise ImportError("cdms2 or cdtime not found; pyferret.put not available.\n" \
+                          "             Use pyferret.putdata instead.")
+
+
+    #
+    # code name for the Ferret variable
+    codename = datavar.id.strip()
+    if codename == "":
+        raise ValueError("The id attribute must be a non-blank string")
+    #
+    # title name for the Ferret variable
+    try:
+        titlename = datavar.name.strip()
+    except AttributeError:
+        titlename = codename
+    #
+    # units for the data
+    try:
+        data_unit = datavar.units.strip()
+    except AttributeError:
+        data_unit = ""
+    #
+    # missing data value
+    missingval = datavar.getMissing()
+    #
+    # Ferret dataset for the variable; None / 'None' is different from blank / empty
+    try:
+        dset_str = str(datavar.dset).strip()
+    except AttributeError:
+        dset_str = ""
+    #
+    # get the list of axes and initialize the axis information lists
+    axis_list = datavar.getAxisList()
+    if len(axis_list) > libpyferret.MAX_FERRET_NDIM:
+        raise ValueError("More than %d axes is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
+    axis_types = [ libpyferret.AXISTYPE_NORMAL ] * libpyferret.MAX_FERRET_NDIM
+    axis_names = [ "" ] * libpyferret.MAX_FERRET_NDIM
+    axis_units = [ "" ] * libpyferret.MAX_FERRET_NDIM
+    axis_coords = [ None ] * libpyferret.MAX_FERRET_NDIM
+    for k in xrange(len(axis_list)):
+        #
+        # get the information for this axis
+        axis = axis_list[k]
+        axis_names[k] = axis.id.strip()
+        try:
+            axis_units[k] = axis.units.strip()
+        except AttributeError:
+            axis_units[k] = ""
+        axis_data = axis.getData()
+        #
+        # assign the axis information
+        if axis.isLongitude():
+            axis_types[k] = libpyferret.AXISTYPE_LONGITUDE
+            axis_coords[k] = axis_data
+        elif axis.isLatitude():
+            axis_types[k] = libpyferret.AXISTYPE_LATITUDE
+            axis_coords[k] = axis_data
+        elif axis.isLevel():
+            axis_types[k] = libpyferret.AXISTYPE_LEVEL
+            axis_coords[k] = axis_data
+        elif axis.isTime():
+            #
+            # try to create a time axis reading the values as cdtime comptime objects
+            try:
+                time_coords = numpy.empty((len(axis_data),6), dtype=numpy.int32, order="C")
+                for t in xrange(len(axis_data)):
+                    tval = axis_data[t]
+                    time_coords[t, libpyferret.TIMEARRAY_DAYINDEX] = tval.day
+                    time_coords[t, libpyferret.TIMEARRAY_MONTHINDEX] = tval.month
+                    time_coords[t, libpyferret.TIMEARRAY_YEARINDEX] = tval.year
+                    time_coords[t, libpyferret.TIMEARRAY_HOURINDEX] = tval.hour
+                    time_coords[t, libpyferret.TIMEARRAY_MINUTEINDEX] = tval.minute
+                    time_coords[t, libpyferret.TIMEARRAY_SECONDINDEX] = int(tval.second)
+                axis_types[k] = libpyferret.AXISTYPE_TIME
+                axis_coords[k] = time_coords
+                # assign the axis_units value to the CALTYPE_ calendar type string
+                calendar_type = axis.getCalendar()
+                if calendar_type == cdtime.Calendar360:
+                    axis_units[k] = CALTYPE_360DAY
+                elif calendar_type == cdtime.NoLeapCalendar:
+                    axis_units[k] = CALTYPE_NOLEAP
+                elif calendar_type == cdtime.GregorianCalendar:
+                    axis_units[k] = CALTYPE_GREGORIAN
+                elif calendar_type == cdtime.JulianCalendar:
+                    axis_units[k] = CALTYPE_JULIAN
+                else:
+                    if calendar_type == cdtime.MixedCalendar:
+                        raise ValueError("The cdtime.MixedCalendar not support by pyferret")
+                    raise ValueError("Unknown cdtime calendar %s" % str(calendar_type))
+            except AttributeError:
+                axis_types[k] = libpyferret.AXISTYPE_CUSTOM
+            #
+            # if not comptime objects, assume reltime objects - create as a custom axis
+            if axis_types[k] == libpyferret.AXISTYPE_CUSTOM:
+                time_coords = numpy.empty((len(axis_data),), dtype=numpy.float64)
+                for t in xrange(len(axis_data)):
+                    time_coords[t] = axis_data[t].value
+                axis_coords[k] = timecoords
+                # assign axis_units as the reltime units - makes sure all are the same
+                axis_units[k] = axis_data[0].units
+                for t in xrange(1, len(axis_data)):
+                    if axis_data[t].units != axis_units[k]:
+                        raise ValueError("Relative time axis does not have a consistent start point")
+        #
+        # cdms2 will create an axis if None (normal axis) was given, so create a
+        # custom or abstract axis only if it does not look like a cdms2-created axis
+        elif not ( (axis_units[k] == "") and (len(axis_data) == 1) and (axis_data[0] == 0.0) and \
+                   (axis_data.dtype == numpy.dtype('float64')) and \
+                   axis_names[k].startswith("axis_") and axis_names[k][5:].isdigit() ):
+            axis_types[k] = libpyferret.AXISTYPE_CUSTOM
+            axis_coords[k] = axis_data
+            # if a unitless integer value axis, it is abstract instead of custom
+            if axis_units[k] == "":
+                axis_int_vals = numpy.array(axis_data, dtype=int)
+                if numpy.allclose(axis_data, axis_int_vals):
+                    axis_types[k] = libpyferret.AXISTYPE_ABSTRACT
+    #
+    # datavar is an embelished masked array
+    datavar_dict = { 'name': codename, 'title': titlename, 'dset': dset_str, 'data': datavar,
+                     'missing_vaue': missingval, 'data_unit': data_unit, 'axis_types': axis_types,
+                     'axis_names': axis_names, 'axis_units': axis_units, 'axis_coords': axis_coords }
+    #
+    # use putdata to set defaults, rearrange axes, and add copies
+    # of data in the appropriate format to Ferret
+    putdata(datavar_dict, axis_pos)
+    return None
+
diff --git a/pyfermod/feraggdset.py b/pyfermod/feraggdset.py
new file mode 100644
index 0000000..fd55499
--- /dev/null
+++ b/pyfermod/feraggdset.py
@@ -0,0 +1,162 @@
+'''
+Represents an aggregation of data sets
+'''
+
+import pyferret
+from pyferret.ferdset import _anonymous_dataset_qualifier
+
+class FerAggDSet(pyferret.FerDSet):
+    '''
+    An aggregation of data sets and the variables they have in common
+    '''
+
+    def __init__(self, name, dsets, along='T', title='', warn=True, hide=False):
+        '''
+        Aggregates the given list of datasets along the given axis using the 
+        Ferret "DEFINE DATA /AGGREGATE" command.  Creates a FerVar for each data 
+        variable in common among these datasets, and assigns it as an attribute 
+        of this class instance using the variable name.  
+            name (string): Ferret name for this aggregated dataset
+            dsets (sequence of strings and/or FerDSets): datasets to aggregate.
+                A string will be interpreted as a filename for creating a FerDSet.
+            along ('T', 'E', 'F'): axis along which to aggregate the datasets
+            title (string): title for the dataset for plots and listing;
+                if not given, the Ferret name for the dataset will be used
+            warn (bool): issue warning messages about variables not in common among
+                all member datasets (either not present or not using the same grid)
+            hide (bool): hide the member datasets in standard Ferret listings 
+                such as with pyferret.showdata()
+        '''
+        # Create an empty dataset with the given Ferret name
+        super(FerAggDSet, self).__init__(qual=_anonymous_dataset_qualifier)
+        if not isinstance(name, str):
+            raise ValueError('Ferret name for the aggregate dataset must be astring')
+        aggname = name.strip()
+        if not aggname:
+            raise ValueError('Ferret name for the aggregate dataset is blank')
+        self._filename = aggname
+        self._dsetname = aggname
+        # Need to keep the given order of component datasets
+        self._compdsetnames = [ ]
+        # But still use a dictionary with uppercase names for keys
+        self._compdsets = { }
+        # Create the DEFINE DATA /AGGREGATE Ferret command, creating
+        # and saving component FerDSets as needed
+        if along not in ('T', 'E', 'F'):
+            raise ValueError("along must be one of 'T', 'E', or 'F'")
+        cmdstr = 'DEFINE DATA/AGGREGATE/' + along
+        if title:
+            cmdstr += '/TITLE="' + str(title) + '"'
+        if not warn:
+            cmdstr += '/QUIET'
+        if hide:
+            cmdstr += '/HIDE'
+        cmdstr += ' ' + aggname + ' = '
+        firstone = True
+        if not ( isinstance(dsets, tuple) or isinstance(dsets, list) ):
+            raise ValueError('dsets must be a tuple or list of strings and/or FerDSets')
+        for myitem in dsets:
+            if isinstance(myitem, str):
+                mydset = pyferret.FerDSet(myitem)
+            elif isinstance(myitem, pyferret.FerDSet):
+                mydset = myitem
+            else:
+                raise ValueError('dsets must be a tuple or list of strings and/or FerDSets')
+            if mydset._dsetname.upper() in self._compdsets:
+                raise ValueError('duplicate dataset name ' + mydset._dsetname)
+            if not firstone:
+                cmdstr += ', '
+            else:
+                firstone = False
+            cmdstr += mydset._dsetname
+            self._compdsetnames.append(mydset._dsetname)
+            self._compdsets[mydset._dsetname.upper()] = mydset
+        (errval, errmsg) = pyferret.run(cmdstr)
+        if errval != pyferret.FERR_OK:
+            raise ValueError(errmsg)
+
+        # create a FerVar for each variable in this dataset
+        namesdict = pyferret.getstrdata('..varnames')
+        for varname in namesdict['data'].flatten():
+            # create a FerVar representing this existing Ferret aggregated file variable
+            filevar = pyferret.FerVar()
+            filevar._markasknownvar(varname, self._dsetname, True)
+            # assign this FerVar - uppercase the variable name keys to make case-insensitive
+            self._fervars[varname.upper()] = filevar
+            # keep a original-case version of the name
+            self._fervarnames.add(varname)
+
+
+    def __repr__(self):
+        '''
+        Representation to of this FerAggDSet.
+        Includes the variable names as variables can be added after creation.
+        '''
+        infostr = "FerAggDSet(name='%s', dsets=%s) with variables %s" % \
+                  (self._dsetname, str(self._compdsetnames), str(self.fernames(sort=True)))
+        return infostr
+
+
+    def __eq__(self, other):
+        '''
+        Two FerAddDSets are equal if their Ferret names, lists of aggregated 
+        dataset names, and dictionary of FerVar variables are all equal.
+        All string values are compared case-insensitive.
+        '''
+        if not isinstance(other, pyferret.FerDSet):
+            return NotImplemented
+        if not isinstance(other, FerAggDSet):
+            return False
+        if not super(FerAggDSet, self).__eq__(other):
+            return False
+        if len(self._compdsetnames) != len(other._compdsetnames):
+            return False
+        for k in xrange(len(self._compdsetnames)):
+            if self._compdsetnames[k].upper() != other._compdsetnames[k].upper():
+                return False
+        return True
+
+
+    def __ne__(self, other):
+        '''
+        Two FerDSets are not equal if their Ferret names, lists of aggregated
+        dataset names, or dictionary of FerVar variables are not equal.
+        All string values are compared case-insensitive.
+        '''
+        if not isinstance(other, pyferret.FerDSet):
+            return NotImplemented
+        return not self.__eq__(other)
+
+
+    def getdsetnames(self):
+        '''
+        Returns a copy of the list of component dataset names (original-case)
+        in the order of their aggregation.
+        '''
+        return list(self._compdsetnames)
+
+
+    def getdsets(self):
+        '''
+        Returns a list of component FerDSet datasets 
+        in the order of their aggregation.
+        '''
+        return [ self._compdsets[name.upper()] for name in self._compdsetnames ]
+
+
+    def close(self):
+        '''
+        Removes (cancels) all the variables in Ferret associated with this dataset,
+        then closes (cancels) this dataset in Ferret.  If the aggregated dataset was 
+        created with hide=True, this will close (cancel) all the component datasets 
+        as well.  Raises a ValueError if there is a problem.
+        '''
+        # if the dataset is already closed, ignore this command
+        if not self._dsetname:
+            return
+        # run the Ferret CANCEL commands in FerDSet.close
+        super(FerAggDSet, self).close()
+        # clear the list of dataset names and dictionary of datasets
+        self._compdsets.clear()
+        self._compdsetnames = [ ]
+
diff --git a/pyfermod/feraxis.py b/pyfermod/feraxis.py
new file mode 100644
index 0000000..566e248
--- /dev/null
+++ b/pyfermod/feraxis.py
@@ -0,0 +1,486 @@
+'''
+Represents Ferret axes in Python.
+'''
+
+import numbers
+import time
+import numpy
+import pyferret
+
+# set of valid axis types
+_VALID_AXIS_TYPES = frozenset( (pyferret.AXISTYPE_LONGITUDE, 
+                                pyferret.AXISTYPE_LATITUDE, 
+                                pyferret.AXISTYPE_LEVEL, 
+                                pyferret.AXISTYPE_TIME, 
+                                pyferret.AXISTYPE_CUSTOM, 
+                                pyferret.AXISTYPE_ABSTRACT, 
+                                pyferret.AXISTYPE_NORMAL) )
+
+# Supported formats for time.strptime
+_TIME_PARSE_FORMATS = ( 
+    '%d-%b-%Y %H:%M:%S',
+    '%d-%b-%Y %H:%M',
+    '%d-%b-%Y',
+    '%Y-%m-%dT%H:%M:%S',
+    '%Y-%m-%dT%H:%M',
+    '%Y-%m-%d %H:%M:%S',
+    '%Y-%m-%d %H:%M',
+    '%Y-%m-%d', 
+)
+_TIME_NOYEAR_PARSE_FORMATS = (
+    '%d-%b %H:%M:%S',
+    '%d-%b',
+)
+
+
+class FerAxis(object):
+    '''
+    Ferret axis object
+    '''
+
+    def __init__(self, coords=None, axtype=None, unit=None, name=None):
+        '''
+        Describe a Ferret axis using the given information about the axis.
+            axtype (int): type of the axis; valid values are
+                    pyferret.AXISTYPE_LONGITUDE
+                    pyferret.AXISTYPE_LATITUDE
+                    pyferret.AXISTYPE_LEVEL
+                    pyferret.AXISTYPE_TIME
+                    pyferret.AXISTYPE_CUSTOM   (axis unit not recognized by Ferret)
+                    pyferret.AXISTYPE_ABSTRACT (axis is unit-less integer values)
+                    pyferret.AXISTYPE_NORMAL   (axis is normal to the data)
+                if not given but coords is given, AXISTYPE_CUSTOM is used,
+                if not given and coords is not given, AXISTYPE_NORMAL is used.
+            coords (sequence of numeric): coordinate values of the axis; 
+                for an axis that is neither a time axis, an abstract axis, nor normal 
+                to the data, a 1-D array of numeric values; 
+                for a time axis, an (n,6) 2D array of integers where each time step is 
+                formed from the six integers for the day, month, year, hour, minute, 
+                and second in the index given by
+                    pyferret.TIMEARRAY_DAYINDEX
+                    pyferret.TIMEARRAY_MONTHINDEX
+                    pyferret.TIMEARRAY_YEARINDEX
+                    pyferret.TIMEARRAY_HOURINDEX
+                    pyferret.TIMEARRAY_MINUTEINDEX
+                    pyferret.TIMEARRAY_SECONDINDEX
+                (Thus, coords[t, TIMEARRAY_YEARINDEX] gives the year of time t.)
+                Note: a relative time axis will be of type AXISTYPE_CUSTOM, with a unit
+                      indicating the starting point, such as 'days since 01-JAN-2000'
+                For an abstact axis or an axis normal to the data, this argument is ignored.
+            unit (string): unit of the axis; for a time axis, this gives the calendar 
+                    as one of
+                    pyferret.CALTYPE_360DAY
+                    pyferret.CALTYPE_NOLEAP
+                    pyferret.CALTYPE_GREGORIAN
+                    pyferret.CALTYPE_JULIAN
+                    pyferret.CALTYPE_ALLLEAP
+                    pyferret.CALTYPE_NONE    (calendar not specified)
+                For abstact axes, or axes normal to the data, this argument is ignored.
+            name (string): Ferret name for the axis
+                For an axis normal to the data, this argument is ignored.
+        '''
+        # axis type
+        if axtype:
+            if not axtype in _VALID_AXIS_TYPES:
+                raise ValueError('axis type %s is not valid' % str(axtype))
+            self._axtype = axtype
+        elif coords is not None:
+            self._axtype = pyferret.AXISTYPE_CUSTOM
+        else:
+            self._axtype = pyferret.AXISTYPE_NORMAL
+        # axis name
+        if name and (self._axtype != pyferret.AXISTYPE_NORMAL):
+            if not isinstance(name, str): 
+                raise ValueError('axis name %s is not valid' % str(name))
+            self._name = name.strip()
+        else:
+            self._name = ''
+        # axis unit
+        if unit and (self._axtype != pyferret.AXISTYPE_NORMAL) \
+                    and (self._axtype != pyferret.AXISTYPE_ABSTRACT):
+            if not isinstance(unit, str): 
+                raise ValueError('axis unit %s is not valid' % str(unit))
+            self._unit = unit.strip()
+        else:
+            self._unit = ''
+        # axis coordinates
+        if (coords is not None) and (self._axtype != pyferret.AXISTYPE_NORMAL) \
+                                and (self._axtype != pyferret.AXISTYPE_ABSTRACT):
+            if self._axtype == pyferret.AXISTYPE_TIME:
+                try:
+                    self._coords = numpy.array(coords, dtype=numpy.int32, copy=True)
+                except ValueError:
+                    raise ValueError('coordinates for a time axis is not an integer array')
+                if self._coords.ndim != 2:
+                    raise ValueError('coordinates for a time axis is not a 2-D array')
+                if self._coords.shape[1] != 6:
+                    raise ValueError('second dimenstion of coordinates for a time axis is not 6')
+            else:
+                try:
+                    self._coords = numpy.array(coords, dtype=numpy.float64, copy=True)
+                except ValueError:
+                    raise ValueError('coordinates for an axis is not a numeric array')
+                if self._coords.ndim != 1:
+                    raise ValueError('coordinates for a lon/lat/level/custom axis is not a 1-D array' % k)
+        else:
+            self._coords = None
+
+
+    def __repr__(self):
+        '''
+        Representation to recreate this FerAxis
+        '''
+        # Not elegant, but will do
+        infostr = "FerAxis(coords=" + repr(self._coords) + \
+                  ", axtype=" + repr(self._axtype) + \
+                  ", unit='" + self._unit + \
+                  "', name='" + self._name + "')"
+        return infostr
+
+
+    def __eq__(self, other):
+        '''
+        Two FerAxis objects are equal is all their contents are the same.  
+        All string values are compared case-insensitive.
+        '''
+        if not isinstance(other, FerAxis):
+            return NotImplemented
+        # _axtype is an integer
+        if self._axtype != other._axtype:
+            return False
+        # _name is a string
+        if self._name.upper() != other._name.upper():
+            return False
+        # _unit is a string
+        if self._unit.upper() != other._unit.upper():
+            return False
+        # _coords is an ndarray or None
+        if (self._coords is None) and (other._coords is None):
+            return True
+        if (self._coords is None) or (other._coords is None):
+            return False
+        if not numpy.allclose(self._coords, other._coords):
+            return False
+        return True
+
+
+    def __ne__(self, other):
+        '''
+        Two FerAxis obect are not equal is any of their contents are not 
+        the same.  All string values are compared case-insensitive.
+        '''
+        if not isinstance(other, FerAxis):
+            return NotImplemented
+        return not self.__eq__(other)
+
+
+    def __getitem__(self, name):
+        '''
+        Return the axis type (if name='axtype'), unit (if name='unit'), 
+        name (if name='name'), or a copy of the coordinates (if name='coords')
+        '''
+        if name == 'axtype':
+            return self.getaxtype()
+        if name == 'unit':
+            return self.getunit()
+        if name == 'name':
+            return self.getname()
+        if name == 'coords':
+            return self.getcoords()
+        raise KeyError("unknown key '%s'" % str(name))
+
+
+    def __getattr__(self, name):
+        '''
+        Return the axis type (if name='axtype'), unit (if name='unit'), 
+        name (if name='name'), or a copy of the coordinates (if name='coords')
+        Note that this method is only called when the parent object 
+        does not have an attribute with this name.
+        '''
+        try:
+            return self.__getitem__(name)
+        except KeyError:
+            raise AttributeError("unknown attribute '%s'" % name)
+
+
+    def __dir__(self):
+        '''
+        Returns a list of known attributes, including those added 
+        by the __getattr__ method.
+        '''
+        mydir = [ 'axtype', 'coords', 'name', 'unit' ]
+        mydir.extend( dir(super(FerAxis, self)) )
+        return mydir
+
+
+    def copy(self):
+        '''
+        Returns a copy of this FerAxis object.  The FerAxis object returned
+        does not share any mutable values (namely, the coordinates array)
+        with this FerAxis object.
+        '''
+        # __init__ forces a copy of the coordinates array
+        duplicate = FerAxis(axtype=self._axtype, coords=self._coords,
+                            unit=self._unit, name=self._name)
+        return duplicate
+
+
+    def getaxtype(self):
+        '''
+        Returns the type of this axis as one of the integer constants
+            pyferret.AXISTYPE_LONGITUDE
+            pyferret.AXISTYPE_LATITUDE
+            pyferret.AXISTYPE_LEVEL
+            pyferret.AXISTYPE_TIME
+            pyferret.AXISTYPE_CUSTOM   (axis unit not recognized by Ferret)
+            pyferret.AXISTYPE_ABSTRACT (axis is unit-less integer values)
+            pyferret.AXISTYPE_NORMAL   (axis is normal to the data)
+        '''
+        return self._axtype
+
+
+    def getcoords(self):
+        '''
+        Returns a copy of the coordinates ndarray for this axis, 
+        or None if there is no coordinates array for this axis.
+        '''
+        if self._coords is not None:
+            coords = self._coords.copy('A')
+        else:
+            coords = None
+        return coords
+
+
+    def getunit(self):
+        '''
+        Returns the unit string for this axis.  May be an empty string.
+        '''
+        return self._unit
+
+
+    def getname(self):
+        '''
+        Returns the name string for this axis.  May be an empty string.
+        '''
+        return self._name
+
+
+    @staticmethod
+    def _parsegeoslice(geoslice):
+        '''
+        Parses the contents of the slice attributes, interpreting any geo- or time-references
+        and returns a tuple with the resulting interpreted axis type, start, stop, and step values.
+
+           geoslice (slice): slice that can contain georeferences or time references
+
+           returns (axtype, start, stop, step) where:
+              axtype is one of:
+                  pyferret.AXISTYPE_LONGITUDE  (longitude units detected)
+                  pyferret.AXISTYPE_LATITUDE   (latitude units detected)
+                  pyferret.AXISTYPE_LEVEL      (level units detected)
+                  pyferret.AXISTYPE_TIME       (time units detected)
+                  pyferret.AXISTYPE_ABSTRACT   (no units)
+              start, stop, and step are:
+                  None if the correspond geoslice attribute is not given; otherwise,
+                  a list of six numbers if axtype is pyferret.AXISTYPE_TIME, or
+                  a number if axtype is not pyferret.AXISTYPE_TIME
+
+        The list of six numbers for time values are ordered according to the indices:
+            pyferret.TIMEARRAY_DAYINDEX
+            pyferret.TIMEARRAY_MONTHINDEX
+            pyferret.TIMEARRAY_YEARINDEX
+            pyferret.TIMEARRAY_HOURINDEX
+            pyferret.TIMEARRAY_MINUTEINDEX
+            pyferret.TIMEARRAY_SECONDINDEX
+        For non-time values, the start, stop, and step values are int objects 
+            if only if corresponding slice objects were int objects.  Thus, int 
+            objects should be interpreted as axis indices and float objects 
+            should be interpreted as axis values.
+        Raises a ValueError if start and stop indicate different axes; i.e., 
+            "10E":"20N" or 10:"20N" or 10:"20-JAN-2000", or if the value contain 
+            unrecognized units.  If not a time slice, it is acceptable for step to 
+            have no units even when start and stop do.  If a time slice, the step 
+            must have a unit of y, d, h, m, or s, which corresponds to year, day, 
+            hour, minute, or second; there is no month time step unit.
+        Raises a TypeError if geoslice is not a slice or None, or if the values 
+            in the slice are not None and cannot be interpreted.
+        '''
+        if geoslice is None:
+            return (pyferret.AXISTYPE_ABSTRACT, None, None, None)
+        if not isinstance(geoslice, slice):
+            raise TypeError('not a slice object: %s' % repr(geoslice))
+        (starttype, start) = FerAxis._parsegeoval(geoslice.start)
+        (stoptype, stop) = FerAxis._parsegeoval(geoslice.stop)
+        # start and stop types must match (so 10:"25E" also fails)
+        if starttype != stoptype:
+            raise ValueError('mismatch of units: %s and %s' % (geoslice.start, geoslice.stop))
+        axtype = starttype
+        if axtype == pyferret.AXISTYPE_TIME:
+            (steptype, step) = FerAxis._parsegeoval(geoslice.step, istimestep=True)
+            if (step is not None) and (steptype != pyferret.AXISTYPE_TIME):
+               raise ValueError('a time unit y, d, h, m, or s must be given with time slice steps')
+        else:
+            (steptype, step) = FerAxis._parsegeoval(geoslice.step)
+            if (steptype != pyferret.AXISTYPE_ABSTRACT) and (steptype != axtype):
+               raise ValueError('mismatch of units: %s, %s' % (geoslice.start, geoslice.step))
+        return (axtype, start, stop, step)
+
+
+    @staticmethod
+    def _parsegeoval(val, istimestep=False):
+        '''
+        Parses the value as either a longitude, latitude, level, time, or abstract number.
+        If val is a numeric value, the tuple (pyferret.AXISTYPE_ABSTRACT, val) is returned.
+        If val is None, the tuple (pyferret.AXISTYPE_ABSTRACT, None) is returned.
+        If val is a longitude string (unit E or W when istimestep is false), 
+            (pyferret.AXISTYPE_LONGITUDE, fval) is returned where fval 
+            is the floating point longitude value.
+        If val is a latitude string (unit N or S when istimestep is false), 
+            (pyferret.AXISTYPE_LATITUDE, fval) is returned where fval 
+            is the floating point latitude value.
+        If val is a level string (unit m when istimestep is False), 
+            (pyferret.AXISTYPE_LEVEL, fval) is returned where fval 
+            is the floating point level value.
+        If val is a date and, optionally, time string matching one of the formats given
+            in _TIME_PARSE_FORMATS or _TIME_NOYEAR_PARSE_FORMATS, 
+            (pyferret.AXISTYPE_TIME, tval) is returned where
+            tval is a list of six numbers ordered by the indices:
+                pyferret.TIMEARRAY_DAYINDEX
+                pyferret.TIMEARRAY_MONTHINDEX
+                pyferret.TIMEARRAY_YEARINDEX
+                pyferret.TIMEARRAY_HOURINDEX
+                pyferret.TIMEARRAY_MINUTEINDEX
+                pyferret.TIMEARRAY_SECONDINDEX
+        If istimestep is true and val is a time step string (unit y, d, h, m, or s),
+            (pyferret.AXISTYPE_TIME, tval) is returned where tval is a list of six values 
+            ordered by the above TIMEARRAY indices.  
+            Note that m is minutes; there is no month timestep.
+        If val is a string of a unitless number, (pyferret.AXISTYPE_ABSTACT, fval) is 
+            returned where fval is the floating point value specified by val.
+        If val is not numeric or a string, a TypeError is raised.
+        If val is a string that cannot be parsed, a ValueError is raised.
+        '''
+        # if just a number, return it with abstract axis type
+        if isinstance(val, numbers.Real):
+            return (pyferret.AXISTYPE_ABSTRACT, val)
+        # if None or empty, return None with abstract axis type
+        if not val:
+            return (pyferret.AXISTYPE_ABSTRACT, None)
+        if not isinstance(val, str):
+            raise TypeError('not a string: %s' % repr(val))
+        if not istimestep:
+            # not a time *step* - first try parsing as a date/time string using the accepted formats
+            for fmt in _TIME_PARSE_FORMATS:
+                try:
+                    tval = time.strptime(val, fmt)
+                    tlist = [ 0, 0, 0, 0, 0, 0 ]
+                    tlist[pyferret.TIMEARRAY_DAYINDEX] = tval.tm_mday
+                    tlist[pyferret.TIMEARRAY_MONTHINDEX] = tval.tm_mon
+                    tlist[pyferret.TIMEARRAY_YEARINDEX] = tval.tm_year
+                    tlist[pyferret.TIMEARRAY_HOURINDEX] = tval.tm_hour
+                    tlist[pyferret.TIMEARRAY_MINUTEINDEX] = tval.tm_min
+                    tlist[pyferret.TIMEARRAY_SECONDINDEX] = tval.tm_sec
+                    return (pyferret.AXISTYPE_TIME, tlist)
+                except ValueError:
+                    pass
+            for fmt in _TIME_NOYEAR_PARSE_FORMATS:
+                try:
+                    tval = time.strptime(val, fmt)
+                    tlist = [ 0, 0, 0, 0, 0, 0 ]
+                    tlist[pyferret.TIMEARRAY_DAYINDEX] = tval.tm_mday
+                    tlist[pyferret.TIMEARRAY_MONTHINDEX] = tval.tm_mon
+                    # leave the year as zero - time.strptime assigns 1900
+                    tlist[pyferret.TIMEARRAY_HOURINDEX] = tval.tm_hour
+                    tlist[pyferret.TIMEARRAY_MINUTEINDEX] = tval.tm_min
+                    tlist[pyferret.TIMEARRAY_SECONDINDEX] = tval.tm_sec
+                    return (pyferret.AXISTYPE_TIME, tlist)
+                except ValueError:
+                    pass
+        # not a date/time, so parse as a number with possibly a final letter for the unit
+        try:
+            lastchar = val[-1].upper()
+            if (not istimestep) and (lastchar == 'E'): # degrees E
+                # make sure the rest is just numeric
+                fval = float(val[:-1])
+                return(pyferret.AXISTYPE_LONGITUDE, val.upper())
+            elif (not istimestep) and (lastchar == 'W'): # degrees W
+                # make sure the rest is just numeric
+                fval = float(val[:-1])
+                return(pyferret.AXISTYPE_LONGITUDE, val.upper())
+            elif (not istimestep) and (lastchar == 'N'): # degrees N
+                # make sure the rest is just numeric
+                fval = float(val[:-1])
+                return(pyferret.AXISTYPE_LATITUDE, val.upper())
+            elif (not istimestep) and (lastchar == 'S'): # degrees S
+                # make sure the rest is just numeric
+                fval = float(val[:-1])
+                return(pyferret.AXISTYPE_LATITUDE, val.upper())
+            elif (not istimestep) and (lastchar == 'M'): # meters (or kilometers, etc.)
+                return(pyferret.AXISTYPE_LEVEL, val.upper())
+            elif istimestep and (lastchar == 'Y'): # years
+                fval = float(val[:-1])
+                tlist = [ 0, 0, 0, 0, 0, 0 ]
+                tlist[pyferret.TIMEARRAY_YEARINDEX] = fval
+                return (pyferret.AXISTYPE_TIME, tlist)
+            elif istimestep and (lastchar == 'D'): # days
+                fval = float(val[:-1])
+                tlist = [ 0, 0, 0, 0, 0, 0 ]
+                tlist[pyferret.TIMEARRAY_DAYINDEX] = fval
+                return (pyferret.AXISTYPE_TIME, tlist)
+            elif istimestep and (lastchar == 'H'): # hours
+                fval = float(val[:-1])
+                tlist = [ 0, 0, 0, 0, 0, 0 ]
+                tlist[pyferret.TIMEARRAY_HOURINDEX] = fval
+                return (pyferret.AXISTYPE_TIME, tlist)
+            elif istimestep and (lastchar == 'M'): # minutes
+                fval = float(val[:-1])
+                tlist = [ 0, 0, 0, 0, 0, 0 ]
+                tlist[pyferret.TIMEARRAY_MINUTEINDEX] = fval
+                return (pyferret.AXISTYPE_TIME, tlist)
+            elif istimestep and (lastchar == 'S'): # seconds
+                fval = float(val[:-1])
+                tlist = [ 0, 0, 0, 0, 0, 0 ]
+                tlist[pyferret.TIMEARRAY_SECONDINDEX] = fval
+                return (pyferret.AXISTYPE_TIME, tlist)
+            else:
+                # maybe just numeric string; if not, will raise an exception
+                fval = float(val)
+                return(pyferret.AXISTYPE_ABSTRACT, fval)
+        except Exception:
+            raise ValueError('unable to parse: %s' % val)
+
+
+    @staticmethod
+    def _makedatestring(timearray):
+        '''
+        Creates a date and time string for the format DD-MON-YYYY HH:MM:SS 
+        corresponding the values in the given time array.  If the year is 
+        zero, -YYYY is omitted.  If the seconds is zero, :SS is omitted; 
+        if hours, minutes, and seconds are all zero, HH:MM:SS is omitted.
+            timearray: tuple of six int with time values given by the indices
+                pyferret.TIMEARRAY_DAYINDEX
+                pyferret.TIMEARRAY_MONTHINDEX
+                pyferret.TIMEARRAY_YEARINDEX
+                pyferret.TIMEARRAY_HOURINDEX
+                pyferret.TIMEARRAY_MINUTEINDEX
+                pyferret.TIMEARRAY_SECONDINDEX
+        '''
+        day = timearray[pyferret.TIMEARRAY_DAYINDEX]
+        monthstr = pyferret.datamethods._UC_MONTH_NAMES[timearray[pyferret.TIMEARRAY_MONTHINDEX]]
+        year = timearray[pyferret.TIMEARRAY_YEARINDEX]
+        hour = timearray[pyferret.TIMEARRAY_HOURINDEX]
+        minute = timearray[pyferret.TIMEARRAY_MINUTEINDEX]
+        second = timearray[pyferret.TIMEARRAY_SECONDINDEX]
+        if year > 0:
+            datestr = '%02d-%3s-%04d' % (day, monthstr, year)
+        else:
+            datestr = '%02d-%3s' % (day, monthstr)
+        if second > 0:
+            timestr = ' %02d:%02d:%02d' % (hour, minute, second)
+        elif (minute > 0) or (hour > 0):
+            timestr = ' %02d:%02d' % (hour, minute)
+        else:
+            timestr = ''
+        return datestr + timestr
+ 
+
diff --git a/pyfermod/ferdset.py b/pyfermod/ferdset.py
new file mode 100644
index 0000000..418c678
--- /dev/null
+++ b/pyfermod/ferdset.py
@@ -0,0 +1,348 @@
+'''
+Represents a data set (file) and the data variables it contains.
+'''
+
+import pyferret
+
+_anonymous_dataset_qualifier = '__new_anonymous_dataset__'
+
+class FerDSet(object):
+    '''
+    A data set and the data variables it contains
+    '''
+
+    def __init__(self, filename='', title='', qual=''):
+        '''
+        "Opens" the given NetCDF dataset file in Ferret using the Ferret "USE" command.
+        Creates a FerVar for each data variable in this data file and 
+        assigns it as an attribute of this class using the variable name.
+            filename (string): name of the dataset filename or http address
+            title (string): title for the dataset for plots and listing;
+                if not given, the Ferret name for the dataset will be used
+            qual (string): Ferret qualifiers to be used with the "USE" command
+        If filename is None or empty, an anonymous dataset is returned.
+        '''
+        self._filename = ''
+        self._dsetname = ''
+        self._fervars = { }
+        self._fervarnames = set()
+        if not filename:
+            if qual == _anonymous_dataset_qualifier:
+                # initialize an new anonymous dataset that will either be 
+                # pyferret.anondset or will be modified by a subclass (FerAggDSet)
+                return
+            else:
+                raise ValueError('pyferret.anondset should be used for the anonymous dataset')
+
+        # tell Ferret to open/use this dataset
+        cmdstr = 'USE'
+        if title:
+            cmdstr += '/TITLE="' + str(title) + '"'
+        if qual:
+            cmdstr += str(qual)
+        cmdstr += ' "' + str(filename) + '"'
+        (errval, errmsg) = pyferret.run(cmdstr)
+        if errval != pyferret.FERR_OK:
+            raise ValueError(errmsg)
+
+        # record the filename and Ferret dataset name 
+        self._filename = filename
+        slashidx = filename.rfind('/') + 1
+        self._dsetname = filename[slashidx:]
+        if not self._dsetname:
+            raise ValueError('invalid dataset name derived from the filename')
+        # create a FerVar for each variable in this dataset
+        namesdict = pyferret.getstrdata('..varnames')
+        for varname in namesdict['data'].flatten():
+            # create a FerVar representing this existing Ferret file variable
+            filevar = pyferret.FerVar()
+            filevar._markasknownvar(varname, self._dsetname, True)
+            # assign this FerVar - uppercase the variable name keys to make case-insensitive
+            self._fervars[varname.upper()] = filevar
+            # keep a original-case version of the name
+            self._fervarnames.add(varname)
+
+
+    def __del__(self):
+        '''
+        Removes this dataset from Ferret.
+        '''
+        try:
+            self.close()
+            # ignore any errors (Ferret or any other)
+        except Exception:
+            pass
+
+
+    def __repr__(self):
+        '''
+        Representation to recreate this FerDataSet.
+        Also includes the variable names as variables can be added after creation.
+        '''
+        infostr = "FerDSet('%s') using dataset name '%s' and variables %s" % \
+                  (self._filename, self._dsetname, str(self.fernames(sort=True)))
+        return infostr
+
+
+    def __eq__(self, other):
+        '''
+        Two FerDSets are equal if their filenames, datasetnames, and 
+        dictionary of FerVar variables are all equal.  All string values 
+        are compared case-insensitive.
+        '''
+        if not isinstance(other, FerDSet):
+            return NotImplemented
+        if self._filename.upper() != other._filename.upper():
+            return False
+        if self._dsetname.upper() != other._dsetname.upper():
+            return False
+        if self._fervars != other._fervars:
+            return False
+        return True
+
+
+    def __ne__(self, other):
+        '''
+        Two FerDSets are not equal if their filenames, datasetnames, or
+        dictionary of FerVar variables are not equal.  All string values 
+        are compared case-insensitive.
+        '''
+        if not isinstance(other, FerDSet):
+            return NotImplemented
+        return not self.__eq__(other)
+
+
+    def __len__(self):
+        '''
+        Returns the number of Ferret variables associated with this dataset
+        '''
+        return len(self._fervars)
+
+
+    def __getitem__(self, name):
+        '''
+        Return the Ferret variable (FerVar) with the given name.
+        '''
+        if not isinstance(name, str):
+            raise TypeError('name key is not a string')
+        return self._fervars[name.upper()]
+
+
+    def __setitem__(self, name, value):
+        '''
+        Creates a copy of value (FerVar), assigns it to Ferret identified by 
+        name (string), and adds this copy to this dataset, identified by name.
+        '''
+        if not isinstance(name, str):
+            raise TypeError('name key is not a string')
+        if not isinstance(value, pyferret.FerVar):
+            raise TypeError('value to be assigned is not a FerVar')
+        if self._filename and not self._dsetname:
+            raise TypeError('this dataset has been closed')
+        # if this name is already assigned to a FerVar, first remove the 
+        # Ferret definition that is going to be overwritten; otherwise, 
+        # Python's delete of the item in garbage collection will wipe out 
+        # the (possibly new) definition as some unknown time.
+        try:
+            self.__delitem__(name)
+        except Exception:
+            pass
+        # make an anonymous copy of the FerVar (or subclass - the copy 
+        # method preserves the class type) and assign it in Ferret.
+        newvar = value.copy()
+        try:
+            newvar._assigninferret(name, self._dsetname)
+        except ValueError as ex:
+            raise TypeError(str(ex))
+        # add this FerVar to this dataset using the uppercase name 
+        # to make names case-insenstive 
+        self._fervars[name.upper()] = newvar
+        # keep a original-case version of the name
+        self._fervarnames.add(name)
+
+
+    def __delitem__(self, name):
+        '''
+        Removes (cancels) the Ferret variable identified by name (string)
+        and removes the FerVar from this dataset.
+        '''
+        if not isinstance(name, str):
+            raise TypeError('name key is not a string')
+        uppername = name.upper()
+        # let the following throw a KeyError if not found
+        value = self._fervars[uppername]
+        try:
+            value._removefromferret()
+        except ValueError as ex:
+            raise TypeError(str(ex))
+        del self._fervars[uppername]
+        origname = None
+        for myname in self._fervarnames:
+            if myname.upper() == uppername:
+                origname = myname
+                break
+        # should always be found at this point
+        if origname is None:
+            raise KeyError('unexpected unknown variable name ' + name)
+        self._fervarnames.remove(origname)
+
+
+    def __contains__(self, name):
+        '''
+        Returns whether the Ferret variable name (case insensitive) is in this dataset
+        '''
+        if not isinstance(name, str):
+            return False
+        return ( name.upper() in self._fervars )
+
+
+    def __iter__(self):
+        '''
+        Returns an iterator over the Ferret variable names (in their original case).
+        '''
+        return iter(self._fervarnames)
+
+
+    def __getattr__(self, name):
+        '''
+        Returns the Ferret variable (FerVar) with the given name (case insensitive).
+        Note that this method is only called when the parent object 
+        does not have an attribute with this name.
+        '''
+        try:
+            return self.__getitem__(name)
+        except KeyError:
+            raise AttributeError('no attribute or FerVar with name %s' % name)
+
+
+    def __setattr__(self, name, value):
+        '''
+        If value is a FerVar, then creates a copy of this Ferret variable, assigns it 
+        to Ferret identified by name (string), and adds it to this dataset identified 
+        by name.  If value is not a FerVar, passes this call onto the parent object.
+        '''
+        if isinstance(value, pyferret.FerVar):
+            try:
+                self.__setitem__(name, value)
+            except TypeError as ex:
+                raise AttributeError(str(ex))
+        else:
+            super(FerDSet, self).__setattr__(name, value)
+ 
+
+    def __delattr__(self, name):
+        '''
+        If name is associated with a FerVar, removes (cancels) the Ferret variable 
+        identified by name (string) and removes the FerVar from this dataset.
+        If name is not associated with FerVar, passes this call onto the parent object.
+        '''
+        try:
+            self.__delitem__(name)
+        except TypeError as ex:
+            raise AttributeError(str(ex))
+        except KeyError:
+            try :
+                super(FerDSet, self).__delattr__(name)
+            except AttributeError:
+                raise AttributeError('no attribute or FerVar with name %s' % name)
+
+
+    def __dir__(self):
+        '''
+        Returns a list of attributes, include FerVar names, of this object.
+        Adds original-case, uppercase, and lowercase FerVar names.
+        '''
+        mydir = set( dir(super(FerDSet, self)) )
+        for name in self.fernames(sort=False):
+            mydir.add( name.upper() )
+            mydir.add( name.lower() )
+        return list(mydir)
+
+
+    def fernames(self, sort=False):
+        '''
+        Returns a list of the names (in their original case) of the current 
+        Ferret variables associated with this dataset.
+            sort (boolean): sort the list of names?
+        '''
+        namelist = list(self._fervarnames)
+        if sort:
+            namelist.sort()
+        return namelist
+
+
+    def fervars(self, sort=False):
+        '''
+        Returns a list of the current Ferret variables associated with this dataset.
+            sort (boolean): sort the list of FerVars?
+        '''
+        varlist = list( self._fervars.values() )
+        if sort:
+            varlist.sort()
+        return varlist
+
+
+    def close(self):
+        '''
+        Removes (cancels) all the (non-file) variables in Ferret associated with this dataset,
+        then closes (cancels) this dataset in Ferret (which removes the file variables as well).
+        Raises a ValueError if there is a problem.
+        '''
+        # if the dataset is already closed, ignore this command
+        if self._filename and not self._dsetname:
+            return
+        # remove all the Ferret variables associated with this dataset, 
+        # ignoring errors from trying to remove file variables.
+        for name in self._fervars:
+            try:
+                # remove this variable from Ferret 
+                self._fervars[name]._removefromferret()
+            except NotImplementedError:
+                pass
+        # remove all the FerVar's from _fervars
+        self._fervars.clear()
+        self._fervarnames = [ ]
+        # nothing else to do if an anonymous dataset
+        if not self._dsetname:
+            return
+        # now remove the dataset
+        cmdstr = 'CANCEL DATA %s' % self._dsetname
+        (errval, errmsg) = pyferret.run(cmdstr)
+        if errval != pyferret.FERR_OK:
+            raise ValueError('unable to remove dataset %s in Ferret: %s' % self._dsetname)
+        # mark this dataset as closed
+        self._dsetname = ''
+
+
+    def show(self, brief=True, qual=''):
+        '''
+        Show the Ferret information about this dataset.  This uses the Ferret
+        SHOW DATA command to create and display the information.
+            brief (boolean): if True (default), a brief report is shown;
+                otherwise a full report is shown.
+            qual (string): Ferret qualifiers to add to the SHOW DATA command
+        If this is the anonymous dataset (no dataset name), the Ferret 
+        SHOW VAR/USER command is used instead to show all variables
+        created by this anonymous dataset.
+        '''
+        # if the dataset is closed, ignore this command
+        if self._filename and not self._dsetname:
+            return
+        if not isinstance(qual, str):
+            raise ValueError('qual (Ferret qualifiers) must be a string')
+        if not self._dsetname:
+            cmdstr = 'SHOW VAR/USER'
+            if qual:
+                cmdstr += qual
+        else:
+            cmdstr = 'SHOW DATA'
+            if not brief:
+                cmdstr += '/FULL'
+            if qual:
+                cmdstr += qual
+            cmdstr += ' '
+            cmdstr += self._dsetname
+        (errval, errmsg) = pyferret.run(cmdstr)
+        if errval != pyferret.FERR_OK:
+            raise ValueError('Ferret command "%s" failed: %s' % (cmdstr, errmsg))
+
diff --git a/pyfermod/fergrid.py b/pyfermod/fergrid.py
new file mode 100644
index 0000000..ae3a0db
--- /dev/null
+++ b/pyfermod/fergrid.py
@@ -0,0 +1,197 @@
+'''
+Represents Ferret grids in Python.
+'''
+
+import numbers
+import time
+import numpy
+import pyferret
+
+_VALID_AXIS_NUMS = frozenset( (pyferret.X_AXIS,
+                               pyferret.Y_AXIS,
+                               pyferret.Z_AXIS,
+                               pyferret.T_AXIS,
+                               pyferret.E_AXIS,
+                               pyferret.F_AXIS) )
+
+class FerGrid(object):
+    '''
+    Ferret grid object
+    '''
+
+    def __init__(self, axes=None, name=None):
+        '''
+        Describe a Ferret grid from the given axes
+            axes (sequence of FerAxis): axes of this grid
+            name (string): Ferret name for the grid or the variable using this grid
+        '''
+        if name:
+            if not isinstance(name, str): 
+                raise TypeError('grid name is not a string')
+            self._gridname = name.strip()
+        else:
+            self._gridname = ''
+        # axes of this grid
+        self._axes = [ None ] * pyferret.MAX_FERRET_NDIM
+        if axes:
+            try:
+                for k in xrange(len(axes)):
+                    ax = axes[k]
+                    if ax:
+                        if not isinstance(ax, pyferret.FerAxis):
+                            raise ValueError('axes[%d] is not a FerAxis' % k)
+                        self._axes[k] = ax.copy()
+            except TypeError:
+                raise TypeError('axes is not a sequence type')
+            except IndexError:
+                raise ValueError('more than %d axes specified' % pyferret.MAX_FERRET_NDIM)
+        for k in xrange(len(self._axes)):
+            if self._axes[k] is None:
+                self._axes[k] = pyferret.FerAxis(axtype=pyferret.AXISTYPE_NORMAL)
+
+
+    def __repr__(self):
+        '''
+        Representation to recreate this FerGrid
+        '''
+        # Not elegant, but will do
+        infostr = "FerGrid(axes=[\n"
+        for k in xrange(len(self._axes)):
+            infostr += "    " + repr(self._axes[k]) + ",\n"
+        infostr += "    name='" + self._gridname + "'])"
+        return infostr
+
+
+    def __eq__(self, other):
+        '''
+        Two FerGrids are equal is all their contents are the same.  
+        All string values are compared case-insensitive.
+        '''
+        if not isinstance(other, FerGrid):
+            return NotImplemented
+        if self._gridname.upper() != other._gridname.upper():
+            return False
+        if self._axes != other._axes:
+            return False
+        return True
+
+
+    def __ne__(self, other):
+        '''
+        Two FerGrids are not equal is any of their contents are not the same.  
+        All string values are compared case-insensitive.
+        '''
+        if not isinstance(other, FerGrid):
+            return NotImplemented
+        return not self.__eq__(other)
+
+
+    def __getitem__(self, name):
+        '''
+        Return the grid name (if name='name') or copy of 
+        the list of axes (if name='axes') for this grid.
+        '''
+        if name == 'name':
+            return self.getname()
+        if name == 'axes':
+            return self.getaxes()
+        raise KeyError("unknown key '%s'" % str(name))
+
+
+    def __getattr__(self, name):
+        '''
+        Return the grid name (if name='name') or copy of 
+        the list of axes (if name='axes') for this grid.
+        Note that this method is only called when the parent 
+        object does not have an attribute with this name.
+        '''
+        try:
+            return self.__getitem__(name)
+        except KeyError:
+            raise AttributeError("unknown attribute '%s'" % name)
+
+
+    def __dir__(self):
+        '''
+        Returns a list of known attributes, including those added 
+        by the __getattr__ method.
+        '''
+        mydir = [ 'axes', 'name' ]
+        mydir.extend( dir(super(FerGrid, self)) )
+        return mydir
+
+
+    def copy(self, name=None, ax=None, newax=None):
+        '''
+        Returns a copy of this FerGrid object, possibly with one axis replaced.
+        The FerGrid object returned does not share any mutable values (namely, 
+        the axes) with this FerGrid object.
+
+        name (string): new name for the copied grid.
+            If name is given, this will be the name of the new grid.
+            If name is not given, then
+                if ax, and newax are not given, the name of the grid is also copied;
+                otherwise, the name of the new grid is not assigned.
+
+        ax (int): index of the axis to modify; one of 
+                pyferret.X_AXIS (0)
+                pyferret.Y_AXIS (1)
+                pyferret.Z_AXIS (2)
+                pyferret.T_AXIS (3)
+                pyferret.E_AXIS (4)
+                pyferret.F_AXIS (5)
+            If ax is not given but newax is given, an attempt is made to replace
+            an axis of the same type (longitude, latitude, level, time, custom, abstract).
+
+        newax (FerAxis): new axis to use in the copied grid.
+            If newax is not given but ax is given, the indicated axis will be replaced
+            by an axis normal to the data (pyferret.AXISTYPE_NORMAL).
+        '''
+        # figure out the new grid name
+        if name:
+            newgridname = name
+        elif (newax is not None) or (ax is not None):
+            newgridname = None
+        else:
+            newgridname = self._gridname
+        # check the index of the axis to replace: 0 - 6, or None
+        if ax is not None:
+            if not ax in _VALID_AXIS_NUMS:
+                raise ValueError('ax (%s) is not valid' % str(ax))
+        newaxidx = ax
+        # check the replacement axis
+        if newax is not None:
+            if not isinstance(newax, pyferret.FerAxis):
+                raise ValueError('newax is not valid (not a FerAxis)')
+            if (newaxidx is None) and (newax.getaxtype() != pyferret.AXISTYPE_NORMAL):
+                for k in xrange(len(self._axes)):
+                    if self._axes[k].getaxtype() == newax.getaxtype():
+                        newaxidx = k
+                        break
+            if newaxidx is None:
+                raise ValueError('Unable to determine new axis index from axis type')
+        elif newaxidx is not None:
+            newax = pyferret.FerAxis(axtype=pyferret.AXISTYPE_NORMAL)
+        # Create and return the new grid
+        newaxes = self._axes[:]
+        if newax:
+            newaxes[newaxidx] = newax
+        newgrid = FerGrid(name=newgridname, axes=newaxes)
+        return newgrid
+
+
+    def getname(self):
+        '''
+        Returns a name of this grid.
+        '''
+        return self._gridname
+
+
+    def getaxes(self):
+        '''
+        Returns a copy of the list of axes for this grid.
+        (The FerAxis objects in the list are those used by this grid.)
+        '''
+        return self._axes[:]
+
+
diff --git a/pyfermod/fermethods.py b/pyfermod/fermethods.py
new file mode 100644
index 0000000..f9f3491
--- /dev/null
+++ b/pyfermod/fermethods.py
@@ -0,0 +1,569 @@
+"""
+Convenience methods for executing common Ferret commands.
+These method generate appropriate Ferret command strings and then
+execute them using the pyferret.run method.
+"""
+
+import numbers
+import pyferret
+
+
+def setwindow(num=1, plotasp=None, axisasp=None, color=None, thick=None, logo=None):
+    """
+    Assigns the plot window to use for subsequent plotting commands.
+    Also provides assignment of common window plots.  
+    Note that plotasp and axisasp cannot both be given.
+        num (int): window number 1-8 to use for plots.
+        plotasp (float): aspect ratio (Y/X) for the plot window.
+            If not given, the current ratio is unchanged.
+            The default ratio on start-up is 0.86
+        axisasp (float): aspect ratio (Y/X) for the plot axes.
+            If not given, the current ratio is unchanged.
+            The default ratio on start-up is 0.75
+        color (string, tuple of int): background color for the plot;
+            can be one of the color names 'black', 'blue', 'green', 
+            'lightblue', 'purple', or 'red', or a tuple
+            of int values in [0,100] giving RGB or RGBA values.
+            If not given, the current value is unchanged.
+            The default background color on start-up is opaque white.
+        thick (float): line thickness scaling factor for the plot.
+            If not given, the current scaling factor is unchanged.
+            The default line thickness scaling factor on start-up is 1.0
+        logo (boolean): include the Ferret logo in the plot?
+            If not given, the current value is unchanged.
+            The default on start-up is to include the logo.
+    Raises a ValueError if a problem occurs.
+    """
+    # create and execute the SET WINDOW command
+    cmdstr = 'SET WINDOW'
+    if (plotasp is not None) and (axisasp is not None):
+        raise ValueError('only one of plotasp and axisasp can be given')
+    if plotasp is not None:
+        if (not isinstance(plotasp, numbers.Real)) or (plotasp <= 0):
+            raise ValueError('plotasp, if given, must be a positive number')
+        cmdstr += '/ASPECT=' + str(plotasp)
+    if axisasp is not None:
+        if (not isinstance(axisasp, numbers.Real)) or (axisasp <= 0):
+            raise ValueError('axisasp, if given, must be a positive number')
+        cmdstr += '/ASPECT=' + str(axisasp) + ':AXIS'
+    if thick is not None:
+        if (not isinstance(thick, numbers.Real)) or (thick <= 0):
+            raise ValueError('thick, if given, must be a positive number')
+        cmdstr += '/THICK=' + str(thick)
+    if color is not None:
+        if isinstance(color, str):
+            cmdstr += '/COLOR=' + color
+        elif isinstance(color, tuple):
+            if (len(color) < 3) or (len(color) > 4):
+                raise ValueError('a color tuple must have three or four integer values')
+            cmdstr += '/COLOR=' + str(color)
+        else:
+            raise ValueError('given color %s is not a string or tuple' % str(color))
+    if (not isinstance(num, numbers.Integral)) or (num <= 0) or (num > 8):
+        raise ValueError('window number %s is not a integer in [1,8]' % str(num))
+    cmdstr += ' ' + str(num)
+    (errval, errmsg) = pyferret.run(cmdstr)
+    if errval != pyferret.FERR_OK:
+        raise ValueError('Problems executing Ferret command %s: %s' % (cmdstr, errmsg))
+    # create and execute the mode logo command if logo is given
+    if logo is not None:
+        if logo:
+            cmdstr = 'SET MODE LOGO'
+        else:
+            cmdstr = 'CANCEL MODE LOGO'
+        (errval, errmsg) = pyferret.run(cmdstr)
+        if errval != pyferret.FERR_OK:
+            raise ValueError('Problems executing Ferret command %s: %s' % (cmdstr, errmsg))
+
+
+def settextstyle(font='', color='', bold = False, italic=False):
+    """
+    Sets the text style for any text in plots generated after this command
+    using the Ferret SET TEXT command.
+        font (string): name of the font to use; if empty, 'Arial' is used.
+        color (string): color name, RGB tuple, or RGBA tuple describing the 
+            color of the text.  The R,G,B, and A components are integer
+            percentages; thus values in [0,100]
+        bold (bool): use bold font?
+        italic (bool): use italic font?
+    """
+    # First run CANCEL TEXT to clear any /BOLD and /ITALIC
+    (errval, errmsg) = pyferret.run('CANCEL TEXT/ALL')
+    if errval != pyferret.FERR_OK:
+        raise ValueError('problems resetting text style to default: %s' % errmsg)
+    # Now run SET TEXT with the appropriate qualifiers
+    cmdstr = 'SET TEXT'
+    if font:
+        cmdstr += '/FONT='
+        cmdstr += font
+    else:
+        cmdstr += '/FONT=Arial'
+    if color:
+        cmdstr += '/COLOR=' + str(color)
+    if bold:
+        cmdstr += '/BOLD'
+    if italic:
+        cmdstr += '/ITALIC'
+    (errval, errmsg) = pyferret.run(cmdstr)
+    if errval != pyferret.FERR_OK:
+        raise ValueError('problems setting text style (%s): %s' % (cmdstr, errmsg))
+
+
+def showdata(brief=True, qual=''):
+    """
+    Show the Ferret information about all datasets currently open in Ferret.  
+    This uses the Ferret SHOW DATA command to create and display the information.
+        brief (boolean): if True (default), a brief report is shown;
+            otherwise a full report is shown.
+        qual (string): Ferret qualifiers to add to the SHOW DATA command
+    """
+    if not isinstance(qual, str):
+        raise ValueError('qual (Ferret qualifiers) must be a string')
+    cmdstr = 'SHOW DATA'
+    if not brief:
+        cmdstr += '/FULL'
+    if qual:
+        cmdstr += qual
+    (errval, errmsg) = pyferret.run(cmdstr)
+    if errval != pyferret.FERR_OK:
+        raise ValueError('Ferret command "%s" failed: %s' % (cmdstr, errmsg))
+
+
+def contourplot(fvar, region=None, over=False, qual=''):
+    """
+    Create a contour plot of the specified Ferret variable using the Ferret CONTOUR command.
+    Using the fill method to generated a color-filled contour plot.
+    The variable needs to be 2D (or qualifiers need to be added to specify a 2D slice).
+        fvar (string or FerVar): Ferret variable to plot
+        region (FerRegion): space-time region to plot; 
+                if None, the full extents of the data will be used
+        over (bool): overlay on an existing plot?
+        qual (string): qualifiers to add to the Ferret SHADE command
+    """
+    if not isinstance(qual, str):
+        raise ValueError('qual (Ferret qualifiers) must be a string')
+    if isinstance(fvar, str):
+        plotvar = fvar
+    elif isinstance(fvar, pyferret.FerVar):
+        plotvar = fvar._definition
+    else:
+        raise ValueError('fvar (Ferret variable to plot) must be a string or FerVar')
+    cmdstr = 'CONTOUR'
+    if over:
+        cmdstr += '/OVER'
+    if region is not None:
+        if not isinstance(region, pyferret.FerRegion):
+            raise ValueError('region, if given, must be a FerRegion')
+        cmdstr += region._ferretqualifierstr();
+    if qual:
+        cmdstr += qual
+    cmdstr += ' '
+    cmdstr += plotvar
+    (errval, errmsg) = pyferret.run(cmdstr)
+    if errval != pyferret.FERR_OK:
+        raise ValueError('Ferret shade command (%s) failed: %s' % (cmdstr, errmsg))
+
+
+def fillplot(fvar, line=False, region=None, over=False, qual=''):
+    """
+    Create a color-filled contour plot of the specified Ferret variable using the Ferret 
+    FILL command.  Drawing of the contour lines themselves is optional.
+    The variable needs to be 2D (or qualifiers need to be added to specify a 2D slice).
+        fvar (string or FerVar): Ferret variable to plot
+        line (bool): draw the contour lines?
+        region (FerRegion): space-time region to plot; 
+                if None, the full extents of the data will be used
+        over (bool): overlay on an existing plot?
+        qual (string): qualifiers to add to the Ferret SHADE command
+    """
+    if not isinstance(qual, str):
+        raise ValueError('qual (Ferret qualifiers) must be a string')
+    if isinstance(fvar, str):
+        plotvar = fvar
+    elif isinstance(fvar, pyferret.FerVar):
+        plotvar = fvar._definition
+    else:
+        raise ValueError('fvar (Ferret variable to plot) must be a string or FerVar')
+    cmdstr = 'FILL'
+    if line:
+        cmdstr += '/LINE'
+    if over:
+        cmdstr += '/OVER'
+    if region is not None:
+        if not isinstance(region, pyferret.FerRegion):
+            raise ValueError('region, if given, must be a FerRegion')
+        cmdstr += region._ferretqualifierstr();
+    if qual:
+        cmdstr += qual
+    cmdstr += ' '
+    cmdstr += plotvar
+    (errval, errmsg) = pyferret.run(cmdstr)
+    if errval != pyferret.FERR_OK:
+        raise ValueError('Ferret shade command (%s) failed: %s' % (cmdstr, errmsg))
+
+
+def shadeplot(fvar, region=None, over=False, qual=''):
+    """
+    Create a colored plot of the specified Ferret variable using the Ferret SHADE command.
+    (Plot coloring grid cells based on the variable value in that cell.)
+    The variable needs to be 2D (or qualifiers need to be added to specify a 2D slice).
+        fvar (string or FerVar): Ferret variable to plot
+        region (FerRegion): space-time region to plot; 
+                if None, the full extents of the data will be used
+        over (bool): overlay on an existing plot?
+        qual (string): qualifiers to add to the Ferret SHADE command
+    """
+    if not isinstance(qual, str):
+        raise ValueError('qual (Ferret qualifiers) must be a string')
+    if isinstance(fvar, str):
+        plotvar = fvar
+    elif isinstance(fvar, pyferret.FerVar):
+        plotvar = fvar._definition
+    else:
+        raise ValueError('fvar (Ferret variable to plot) must be a string or FerVar')
+    cmdstr = 'SHADE'
+    if over:
+        cmdstr += '/OVER'
+    if region is not None:
+        if not isinstance(region, pyferret.FerRegion):
+            raise ValueError('region, if given, must be a FerRegion')
+        cmdstr += region._ferretqualifierstr();
+    if qual:
+        cmdstr += qual
+    cmdstr += ' '
+    cmdstr += plotvar
+    (errval, errmsg) = pyferret.run(cmdstr)
+    if errval != pyferret.FERR_OK:
+        raise ValueError('Ferret shade command (%s) failed: %s' % (cmdstr, errmsg))
+
+
+def shadeland(res=20, color='gray', over=True, solid=True, X=None, Y=None):
+    """
+    Shades land masses for the current longitude-latitude plot or the specified X-Y region.
+        res (int): ETOPO dataset resolution (in minutes of a degree) to use; 
+            the corresponding ETOPO dataset (eg, etopo20.cdf for 20) must be available.
+            Typically 5, 10, 20, 40, 60, 120 are available from Ferret's standard datasets.
+        color (str): name of the color or color palette to used for land.
+        over (bool): if true, overlay onto the current longitude-latitude plot;
+            if False, create a new plot of the given region
+        solid (bool): if True, shade the land in a single solid color;
+            if False, shade different elevations using the given color palette
+        X (str): longitude limits for the region as low:high
+            If not given and over is False, '0E:360E' is used.
+            if not given and over is True, the full range of the given plot is used.
+        Y (str): latitude limits for the region as low:high
+            If not given and over is False, '90S:90N' is used.
+            If not given and over is True, the full range of the given plot is used.
+    """
+    cmdstr = 'GO fland'
+    cmdstr += ' ' + str(res)
+    cmdstr += ' ' + str(color)
+    if over:
+        cmdstr += ' OVERLAY'
+    else:
+        cmdstr += ' BASEMAP'
+    if solid:
+        cmdstr += ' SOLID'
+    else:
+        cmdstr += ' DETAILED'
+    if X is not None:
+        cmdstr += ' X=' + str(X)
+    elif not over:
+        # assign the default here even though this matches the script
+        cmdstr += ' X=0E:360E'
+    elif Y is not None:
+        # if Y is given, then have to have an X argument;
+        # needs to be a double wrap for a complete overlay
+        cmdstr += ' X=0E:720E'
+    if Y is not None:
+        cmdstr += ' Y=' + str(Y)
+    elif not over:
+        # assign the default here even though this matches the script
+        cmdstr += ' Y=90S:90N'
+    (errval, errmsg) = pyferret.run(cmdstr)
+    if errval != pyferret.FERR_OK:
+        raise ValueError('Ferret script command (%s) failed: %s' % (cmdstr, errmsg))
+
+
+def shadewater(res=20, color='gray', over=True, solid=True, X=None, Y=None):
+    """
+    Shades water masses for the current longitude-latitude plot or the specified region.
+        res (int): ETOPO dataset resolution (in minutes of a degree) to use; 
+            the corresponding ETOPO dataset (eg, etopo20.cdf for 20) must be available.
+            Typically 5, 10, 20, 40, 60, 120 are available from Ferret's standard datasets.
+        color (str): name of the color or color palette to used for water masses
+        over (bool): if true, overlay onto the current longitude-latitude plot;
+            if False, create a new plot of the given region
+        solid (bool): if True, shade the water masses in a single solid color;
+            if False, shade different depths using the given color palette
+        X (str): longitude limits for the region as low:high; 
+            if not given and over is False, '0E:360E' is used
+        Y (str): latitude limits for the region as low:high; 
+            if not given and over is False, '90S:90N'
+    """
+    cmdstr = 'GO focean'
+    cmdstr += ' ' + str(res)
+    cmdstr += ' ' + str(color)
+    if over:
+        cmdstr += ' OVERLAY'
+    else:
+        cmdstr += ' BASEMAP'
+    if solid:
+        cmdstr += ' SOLID'
+    else:
+        cmdstr += ' DETAILED'
+    if X is not None:
+        cmdstr += ' X=' + str(X)
+    elif not over:
+        # assign the default here even though this matches the script
+        cmdstr += ' X=0E:360E'
+    elif Y is not None:
+        # if Y is given, then have to have an X argument;
+        # needs to be a double wrap for a complete overlay
+        cmdstr += ' X=0E:720E'
+    if Y is not None:
+        cmdstr += ' Y=' + str(Y)
+    elif not over:
+        # assign the default here even though this matches the script
+        cmdstr += ' Y=90S:90N'
+    (errval, errmsg) = pyferret.run(cmdstr)
+    if errval != pyferret.FERR_OK:
+        raise ValueError('Ferret script command (%s) failed: %s' % (cmdstr, errmsg))
+
+
+def pointplot(fvar, vs=None, color=None, sym=None, symsize=None, thick=None,
+             line=False, title=None, region=None, over=False, label=True, qual=''):
+    """
+    Create a point plot of the given value, or the given value versus another value (if vs is given),
+    possibly colored by another value (if color is a FerVar).
+    To create a line plot with symbols, use the pointplot command with the line option set to True.
+        fvar (string or FerVar): Ferret variable to plot
+        vs  (string or FerVar): if given, plot the above variable versus this variables
+        color: line color or variable used to determine line color; if
+            None: Ferret default color used,
+            color name (string): name of color to use,
+            color tuple (3 or 4-tupe of [0,100] int values): RGB or RGBA of color to use,
+            FerVar or variable name string: color according to the value of this variable
+                Note: color name strings are limited to (case insensitive) 
+                      'black', 'red', 'green', 'blue', 'lightblue', 'purple'
+                      other strings are assumed to be variable names
+        sym (int): Ferret symbol number of the symbol to draw for the points.
+                If not given, Ferret selects an appropriate symbol.
+        symsize (float): size of the symbol in inches.
+                If not given, Ferret select an appropriate size.
+        thick (float): line thickness scaling factor when drawing symbols and lines
+        line (bool): if True, draw a line between symbols/points
+        title (string): title for the plot; if not given,  Ferret's default title is used
+        region (FerRegion): space-time region to plot; 
+                if None, the full extents of the data will be used
+        over (bool): overlay onto an existing plot
+        label (bool): if False, suppress all plot labels
+        qual (string): qualifiers to add to the Ferret PLOT/LINE command
+    """
+    if not isinstance(qual, str):
+        raise ValueError('qual (Ferret qualifiers) must be a string')
+    if isinstance(fvar, str):
+        plotvar = fvar
+    elif isinstance(fvar, pyferret.FerVar):
+        plotvar = fvar._definition
+    else:
+        raise ValueError('fvar (Ferret variable to plot) must be a string or FerVar')
+    cmdstr = 'PLOT'
+    if vs is not None:
+        cmdstr += '/VS'
+        plotvar += ','
+        if isinstance(vs, str):
+            plotvar += vs
+        elif isinstance(vs, pyferret.FerVar):
+            plotvar += vs._definition
+        else:
+            raise ValueError('vs (second Ferret variable to plot) must be a string or FerVar')
+    if color is not None:
+        if isinstance(color, tuple):
+           cmdstr += '/COLOR=' + str(color)
+        elif isinstance(color, pyferret.FerVar):
+           cmdstr += '/RIBBON'
+           plotvar += ',' + color._definition
+        elif isinstance(color, str):
+            if color.upper() in ('BLACK','RED','GREEN','BLUE','LIGHTBLUE','PURPLE'):
+               cmdstr += '/COLOR=' + color
+            else:
+               cmdstr += '/RIBBON'
+               plotvar += ',' + color
+        else:
+            raise ValueError('color must be a tuple, string, or FerVar')
+    # always draw the symbols
+    cmdstr += '/SYMBOL'
+    if sym is not None:
+        if (not isinstance(sym, numbers.Integral)) or (sym < 0) or (sym > 88):
+            raise ValueError('sym is not a valid Ferret symbol number')
+        if sym == 0:
+            cmdstr += '=DOT'
+        else:
+            cmdstr += '=' + str(sym)
+    if symsize is not None:
+        if (not isinstance(symsize, numbers.Real)) or (symsize <= 0):
+            raise ValueError('symsize must be a positive number')
+        cmdstr += '/SIZE=' + str(symsize)
+    if thick is not None:
+        if (not isinstance(thick, numbers.Real)) or (thick <= 0):
+            raise ValueError('thick must be a positive number')
+        cmdstr += '/THICK=' + str(thick)
+    if line:
+        cmdstr += '/LINE'
+    if title is not None:
+       if not isinstance(title, str):
+           raise ValueError('title must be a string')
+       cmdstr += '/TITLE="' + title + '"'
+    if over:
+        cmdstr += '/OVER'
+    if region is not None:
+        if not isinstance(region, pyferret.FerRegion):
+            raise ValueError('region, if given, must be a FerRegion')
+        cmdstr += region._ferretqualifierstr();
+    if not label:
+        cmdstr += '/NOLABEL'
+    if qual:
+        cmdstr += qual
+    cmdstr += ' '
+    cmdstr += plotvar
+    (errval, errmsg) = pyferret.run(cmdstr)
+    if errval != pyferret.FERR_OK:
+        raise ValueError('Ferret plot command (%s) failed: %s' % (cmdstr, errmsg))
+
+
+def lineplot(fvar, vs=None, color=None, thick=None, dash=None, title=None, 
+             region=None, over=False, label=True, qual=''):
+    """
+    Create a line plot of the given value, or the given value versus another value (if vs is given),
+    possibly colored by another value (if color is a FerVar).
+    To create a line plot with symbols, use the pointplot command with the line option set to True.
+        fvar (string or FerVar): Ferret variable to plot
+        vs  (string or FerVar): if given, plot the above variable versus this variables
+        color: line color or variable used to determine line color; if
+            None: Ferret default color used,
+            color name (string): name of color to use,
+            color tuple (3 or 4-tupe of [0,100] int values): RGB or RGBA of color to use,
+            FerVar or variable name string: color according to the value of this variable
+                Note: color name strings are limited to (case insensitive) 
+                      'black', 'red', 'green', 'blue', 'lightblue', 'purple'
+                      other strings are assumed to be variable names
+        thick (float): line thickness scaling factor
+        dash (4-tuple of float): draws the line as a dashed line where the four values 
+             are the first drawn stroke length, first undrawn stroke length,
+             second drawn stroke length, second undrawn stroke length of two dashes
+        title (string): title for the plot; if not given,  Ferret's default title is used
+        region (FerRegion): space-time region to plot; 
+                if None, the full extents of the data will be used
+        over (bool): overlay onto an existing plot
+        label (bool): if False, suppress all plot labels
+        qual (string): qualifiers to add to the Ferret PLOT/LINE command
+    """
+    if not isinstance(qual, str):
+        raise ValueError('qual (Ferret qualifiers) must be a string')
+    if isinstance(fvar, str):
+        plotvar = fvar
+    elif isinstance(fvar, pyferret.FerVar):
+        plotvar = fvar._definition
+    else:
+        raise ValueError('fvar (Ferret variable to plot) must be a string or FerVar')
+    cmdstr = 'PLOT/LINE'
+    if vs is not None:
+        cmdstr += '/VS'
+        plotvar += ','
+        if isinstance(vs, str):
+            plotvar += vs
+        elif isinstance(vs, pyferret.FerVar):
+            plotvar += vs._definition
+        else:
+            raise ValueError('vs (second Ferret variable to plot) must be a string or FerVar')
+    if color is not None:
+        if isinstance(color, tuple):
+           cmdstr += '/COLOR=' + str(color)
+        elif isinstance(color, pyferret.FerVar):
+           cmdstr += '/RIBBON'
+           plotvar += ',' + color._definition
+        elif isinstance(color, str):
+            if color.upper() in ('BLACK','RED','GREEN','BLUE','LIGHTBLUE','PURPLE'):
+               cmdstr += '/COLOR=' + color
+            else:
+               cmdstr += '/RIBBON'
+               plotvar += ',' + color
+        else:
+            raise ValueError('color must be a tuple, string, or FerVar')
+    if thick is not None:
+        if (not isinstance(thick, numbers.Real)) or (thick <= 0):
+            raise ValueError('thick must be a positive number')
+        cmdstr += '/THICK=' + str(thick)
+    if dash is not None:
+        if (not isinstance(dash, tuple)) or (len(dash) != 4):
+            raise ValueError('dash must be a tuple of four floats');
+        cmdstr += '/DASH=' + str(dash)
+    if title is not None:
+       if not isinstance(title, str):
+           raise ValueError('title must be a string')
+       cmdstr += '/TITLE="' + title + '"'
+    if over:
+        cmdstr += '/OVER'
+    if region is not None:
+        if not isinstance(region, pyferret.FerRegion):
+            raise ValueError('region, if given, must be a FerRegion')
+        cmdstr += region._ferretqualifierstr();
+    if not label:
+        cmdstr += '/NOLABEL'
+    if qual:
+        cmdstr += qual
+    cmdstr += ' '
+    cmdstr += plotvar
+    (errval, errmsg) = pyferret.run(cmdstr)
+    if errval != pyferret.FERR_OK:
+        raise ValueError('Ferret plot command (%s) failed: %s' % (cmdstr, errmsg))
+
+
+def saveplot(name, fmt='', xpix=None, ypix=None, xinch=None, yinch=None, qual=''):
+    """
+    Save the current plot.  If format is not given,
+    the format is guessed from the filename extension.
+        name (string): name of the file to contain the plot
+        fmt (string): format of the plot file
+        xpix (int): number of pixels in width of the saved raster (eg, PNG) plot
+        ypix (int): number of pixels in the height of the saved raster (eg, PNG) plot
+        xinch (float): inch width of the saved vector (eg, PDF) plot
+        yinch (float): inch height of the save vector (eg, PDF) plot
+        qual (string): qualifiers to add to the Ferret FRAME command
+    """
+    if not isinstance(name, str):
+        raise ValueError('name (plot file name) must be a string')
+    cmdstr = 'FRAME/FILE="%s"' % name
+    if not isinstance(fmt, str):
+        raise ValueError('fmt (plot file format) must be a string')
+    if fmt:
+        cmdstr += '/FORMAT=%s' % fmt
+    if xpix is not None:
+        if (not isinstance(xpix, int)) or (xpix <= 0):
+            raise ValueError('xpix must be a positive integer')
+        cmdstr += '/XPIX=' + str(xpix)
+    if ypix is not None:
+        if (not isinstance(ypix, int)) or (ypix <= 0):
+            raise ValueError('ypix must be a positive integer')
+        cmdstr += '/YPIX=' + str(ypix)
+    if (xpix is not None) and (ypix is not None):
+        raise ValueError('xpix and ypix cannot both be given')
+    if xinch is not None:
+        if (not isinstance(xinch, numbers.Real)) or (xinch <= 0.0):
+            raise ValueError('xinch must be a positive number')
+        cmdstr += '/XINCH=' + str(xinch)
+    if yinch is not None:
+        if (not isinstance(yinch, numbers.Real)) or (yinch <= 0.0):
+            raise ValueError('yinch must be a positive number')
+        cmdstr += '/YINCH=' + str(yinch)
+    if (xinch is not None) and (yinch is not None):
+        raise ValueError('xinch and yinch cannot both be given')
+    if not isinstance(qual, str):
+        raise ValueError('qual (Ferret qualifiers) must be a string')
+    if qual:
+        cmdstr += qual
+    (errval, errmsg) = pyferret.run(cmdstr)
+    if errval != pyferret.FERR_OK:
+        raise ValueError('Ferret frame command (%s) failed: %s' % (cmdstr, errmsg))
+
diff --git a/pyfermod/ferpyvar.py b/pyfermod/ferpyvar.py
new file mode 100644
index 0000000..a8567b0
--- /dev/null
+++ b/pyfermod/ferpyvar.py
@@ -0,0 +1,173 @@
+'''
+Subclass of FerVar whose data is from an array in Python.
+'''
+
+import numbers
+import numpy
+import pyferret
+
+class FerPyVar(pyferret.FerVar):
+    '''
+    FerVar whose data is from an array in Python.
+    '''
+
+    def __init__(self, data, grid, missval=numpy.nan, unit=None, title=None):
+        '''
+        Create as an anonymous FerPyVar.  The PyVar representing this data
+        will not be assigned in Ferret until this FerPyVar is assigned a
+        name in a dataset.
+            data (up to 6D array/array-like of float): data for the PyVar
+            grid (FerGrid): grid for the PyVar
+            missval (float or single-element array of float): value used to indicate missing data
+            unit (string): unit for the data
+            title (string): title (descriptive long name) for the PyVar in Ferret
+        '''
+        # initialize the FerVar this object is derived from
+        super(FerPyVar,self).__init__(title=title)
+        # assign a copy of the grid
+        if not isinstance(grid, pyferret.FerGrid):
+            raise ValueError('grid is not a FerGrid')
+        try:
+            self._datagrid = grid.copy()
+        except (ValueError, TypeError) as ex:
+            raise ValueError('grid is invalid: %s' % str(ex))
+        # assign a copy of the data
+        try:
+            self._dataarray = numpy.array(data, dtype=numpy.float64, order='F', copy=True)
+        except ValueError:
+            raise ValueError('data is not an array or array-like of numbers')
+        if self._dataarray.ndim > pyferret.MAX_FERRET_NDIM:
+            raise ValueError('data has more than %d dimensions' % pyferret.MAX_FERRET_NDIM)
+        # assign the missing value
+        try:
+            if isinstance(missval, numbers.Real):
+                self._missingvalue = numpy.array( (missval,), dtype=numpy.float64)
+            else:
+                self._missingvalue = numpy.array(missval, dtype=numpy.float64, copy=True)
+        except ValueError:
+            raise ValueError('missval is not a number or number array')
+        if (self._missingvalue.ndim != 1) or (self._missingvalue.shape[0] != 1):
+            raise ValueError('missval array has more than one element')
+        # assign the data unit
+        if unit and not isinstance(unit, str):
+            raise ValueError('unit, if given, must be a string')
+        if unit:
+            self._dataunit = unit
+        else:
+            self._dataunit = ''
+
+
+    def copy(self):
+        '''
+        (overrides FerVar.copy)
+        Returns an anonymous copy (_varname and _dsetname are not copied) 
+        of this FerPyVar.
+        '''
+        return FerPyVar(data=self._dataarray, 
+                        grid=self._datagrid, 
+                        missval=self._missingvalue, 
+                        unit=self._dataunit,
+                        title=self._title)
+
+
+    def __repr__(self):
+        '''
+        (overrides FerVar.__repr__)
+        Representation of this FerPyVar
+        '''
+        infostr = "FerPyVar(data=%s, \n" + \
+                  "         grid=%s, \n" + \
+                  "         missval=%s, \n" + \
+                  "         unit='%s', \n" + \
+                  "         title='%s')" % (
+                  repr(self._dataarray),
+                  repr(self._datagrid), 
+                  str(self._missingvalue),
+                  self._dataunit,
+		  self._title )
+        return infostr
+
+
+    def __dir__(self):
+        '''
+        Returns a list of known attributes, including those added 
+        by the __getattr__ method.
+        '''
+        mydir = list(_ADDED_ATTRIBUTES)
+        mydir.extend( dir(super(FerPyVar, self)) )
+        return mydir
+
+
+    def _assigninferret(self, varname, dsetname):
+        '''
+        (overrides FerVar._assigninferret)
+        Assign the data in this FerPyVar as a PyVar in Ferret.
+            varname (string): name for the PyVar in Ferret
+            dsetname (string): associated the PyVar with this dataset in Ferret
+        Raises a ValueError is a problem occurs.
+        Note: Ferret will rearrange axes, if necessary, so that any longitude
+            axis is the first axis, any latitude axis is the second axis, any
+            level axis is the third axis, any time axis is the fourth axis or 
+            the sixth axis for a second time axis.  The data will, of course,
+            also be appropriately structured to remain consistent with the axes.
+        '''
+        if not isinstance(varname, str):
+            raise ValueError('varname must be a string')
+        if not varname:
+            raise ValueError('varname is empty')
+        if not isinstance(dsetname, str):
+            raise ValueError('dsetname must be a string')
+        # TODO: fix libpyferret so PyVar's can be created without a dataset
+        #       (uses Ferret's dataset '0')
+        if not dsetname:
+            raise ValueError('a FerPyVar cannot be associated with an anonymous dataset at this time')
+        axtypes = []
+        axcoords = []
+        axunits = []
+        axnames = []
+        for axis in self._datagrid.getaxes():
+            axtypes.append(axis.getaxtype())
+            axcoords.append(axis.getcoords())
+            axunits.append(axis.getunit())
+            axnames.append(axis.getname())
+        datadict = { 
+            'name': varname,
+            'dset': dsetname,
+            'data': self._dataarray,
+            'missing_value': self._missingvalue,
+            'data_unit': self._dataunit,
+            'axis_types': axtypes,
+            'axis_coords': axcoords,
+            'axis_units': axunits,
+            'axis_names': axnames,
+        }
+        if self._title:
+            datadict['title'] = self._title
+        try:
+            pyferret.putdata(datadict)
+        except Exception as ex:
+            raise ValueError(str(ex))
+        self._varname = varname
+        self._dsetname = dsetname
+        self._definition = self.fername()
+        # at this point, the data is copied into Ferret, 
+        # so calling clean will not cause any problems
+
+
+    def _removefromferret(self):
+        '''
+        Removes (cancels) this PyVar in Ferret, then erases _varname.  
+        Raises a ValueError if there is a Ferret problem.  
+        This normally is not called by the user; instead delete the 
+        FerPyVar from the dataset.
+        '''
+        # ignore if this Ferrer PyVar has already been removed from Ferret
+        if not self._varname:
+            return
+        fername = self.fername()
+        cmdstr = 'CANCEL PYVAR %s' % fername
+        (errval, errmsg) = pyferret.run(cmdstr)
+        if errval != pyferret.FERR_OK:
+            raise ValueError('unable to remove PyVar %s from Ferret: %s' % (fername, errmsg))
+        self._varname = ''
+
diff --git a/pyfermod/ferrdataset.py b/pyfermod/ferrdataset.py
deleted file mode 100644
index 0f42b18..0000000
--- a/pyfermod/ferrdataset.py
+++ /dev/null
@@ -1,24 +0,0 @@
-'''
-Represents a data file and the data variables it contains.
-
- at author: Karl Smith
-'''
-
-import pyferret
-from ferrdatavar import FerrDataVar
-
-class FerrDataSet(object):
-    '''
-    A data file and the data variables it contains
-    '''
-
-    def __init__(self, filename):
-        '''
-        Opens the given netCDF file in Ferret using the Ferret "USE" command.
-        Creates a FerDataVar for each data variable in this data file and 
-        assigns it as an attribute of this class whose name is the variable name.
-        Assigns the list of all variables to the __datavars attribute.
-        '''
-        self.filename = filename
-        (errval, errmsg) = pyferret.run('USE "' + self.filename + '"')
-        
diff --git a/pyfermod/ferrdatavar.py b/pyfermod/ferrdatavar.py
deleted file mode 100644
index 19e2d87..0000000
--- a/pyfermod/ferrdatavar.py
+++ /dev/null
@@ -1,22 +0,0 @@
-'''
-Represents Ferret data variables whose data comes directly from an associated data file.
-
- at author: Karl Smith
-'''
-from ferrvar import FerrVar
-
-class FerrDataVar(FerrVar):
-    '''
-    A Ferret data variable whose data comes directly from a given data file. 
-    '''
-
-
-    def __init__(self, name, dataset):
-        '''
-        Represents a Ferret data variable with the given name 
-        associated with the given dataset.  No data is read 
-        for this data variable.
-        '''
-        self.name = name
-        self.dataset = dataset
-        self.definition = self.name + "[dset=" + self.dataset + "]"
diff --git a/pyfermod/ferregion.py b/pyfermod/ferregion.py
new file mode 100644
index 0000000..d8692e6
--- /dev/null
+++ b/pyfermod/ferregion.py
@@ -0,0 +1,247 @@
+'''
+Representation of a space-time region of interest
+'''
+
+import numbers
+import pyferret
+
+class FerRegion(object):
+    '''
+    A logically rectagular region specified using axis limit qualifiers.
+    Also used as a superclass to provide a bounding box for more elaborate 
+    regions.
+    '''
+
+    def __init__(self, X=None, Y=None, Z=None, T=None, E=None, F=None,
+                       I=None, J=None, K=None, L=None, M=None, N=None, qual=''):
+        '''
+        A logically rectagular regions specified using axis limit qualifiers;
+        eg; X="90W:20E",Y="20N:60N"
+
+        The X, Y, Z, T, E, and F arguments refer to an axis coordinate value 
+        or range of axis coordinate values.  Coordinate values are interpreted 
+        according to Ferret syntax rules (ranges can include the endpoint).
+            X (float, str, or slice of float or str): 
+                X (longitude) axis coordinate position or range
+            Y (float, str, or slice of float or str): 
+                Y (latitude) axis coordinate position or range
+            Z (float, str, or slice of float or str): 
+                Z (level) axis coordinate position or range
+            T (float, str, or slice of float or str): 
+                T (time) axis coordinate position or range
+            E (float, str, or slice of float or str): 
+                E (ensemble) axis coordinate position or range
+            F (float, str, or slice of float or str): 
+                F (forecast) axis coordinate position or range
+
+        The I, J, K, L, M, and N arguments refer to an axis coordinate index 
+        or range of indices.  Integer values are interpreted as python indices 
+        (starts with zero, excludes endpoint in ranges).  String values are 
+        used as-is and thus are interpreted according to Ferret syntax rules 
+        (starts at one, includes endpoint in ranges).
+            I (int, str, or slice of int or str): 
+                X (longitude) axis index or range of indices
+            J (int, str, or slice of int or str): 
+                Y (latitude) axis index or range of indices
+            K (int, str, or slice of int or str): 
+                Z (level) axis index or range of indices
+            L (int, str, or slice of int or str): 
+                T (time) axis index or range of indices
+            M (int, str, or slice of int or str): 
+                E (ensemble) axis index or range of indices
+            N (int, str, or slice of int or str): 
+                F (forecast) axis index or range of indices
+
+        For any axis, either a coordinate or an index specification can be
+        given, but not both.
+
+        The qual argument is a string giving any additional Ferret-syntax qualifiers.
+        '''
+        # coordinate qualifiers
+        self._xaxisqual = self._interpcoord('X', X)
+        self._yaxisqual = self._interpcoord('Y', Y)
+        self._zaxisqual = self._interpcoord('Z', Z)
+        self._taxisqual = self._interpcoord('T', T)
+        self._eaxisqual = self._interpcoord('E', E)
+        self._faxisqual = self._interpcoord('F', F)
+        # index qualifiers
+        idxqual = self._interpindex('I', I)
+        if idxqual:
+            if self._xaxisqual:
+                raise ValueError('X and I cannot both be given')
+            self._xaxisqual = idxqual
+        idxqual = self._interpindex('J', J)
+        if idxqual:
+            if self._yaxisqual:
+                raise ValueError('Y and J cannot both be given')
+            self._yaxisqual = idxqual
+        idxqual = self._interpindex('K', K)
+        if idxqual:
+            if self._zaxisqual:
+                raise ValueError('Z and K cannot both be given')
+            self._zaxisqual = idxqual
+        idxqual = self._interpindex('L', L)
+        if idxqual:
+            if self._taxisqual:
+                raise ValueError('T and L cannot both be given')
+            self._taxisqual = idxqual
+        idxqual = self._interpindex('M', M)
+        if idxqual:
+            if self._eaxisqual:
+                raise ValueError('E and M cannot both be given')
+            self._eaxisqual = idxqual
+        idxqual = self._interpindex('N', N)
+        if idxqual:
+            if self._faxisqual:
+                raise ValueError('F and N cannot both be given')
+            self._faxisqual = idxqual
+        # additional qualifiers
+        if not isinstance(qual, str):
+            raise ValueError('qual must be a string')
+        self._addnlqual = qual.strip()
+        # masking variable for more complex regions (for superclasses)
+        self._maskvar = None
+
+
+    def __repr__(self):
+        '''
+        Representation of this FerRegion.  Arguments are always given in the
+        string representation (thus, Ferret syntax for indices and ranges).
+        '''
+        repstr = 'FerRegion('
+        if self._xaxisqual.startswith('/X='):
+            repstr += "X='" + self._xaxisqual[3:] + "',"
+        elif self._xaxisqual.startswith('/I='):
+            repstr += "I='" + self._xaxisqual[3:] + "',"
+        if self._yaxisqual.startswith('/Y='):
+            repstr += "Y='" + self._yaxisqual[3:] + "',"
+        elif self._yaxisqual.startswith('/J='):
+            repstr += "J='" + self._yaxisqual[3:] + "',"
+        if self._zaxisqual.startswith('/Z='):
+            repstr += "Z='" + self._zaxisqual[3:] + "',"
+        elif self._zaxisqual.startswith('/K='):
+            repstr += "K='" + self._zaxisqual[3:] + "',"
+        if self._taxisqual.startswith('/T='):
+            repstr += "T='" + self._taxisqual[3:] + "',"
+        elif self._taxisqual.startswith('/L='):
+            repstr += "L='" + self._taxisqual[3:] + "',"
+        if self._eaxisqual.startswith('/E='):
+            repstr += "E='" + self._eaxisqual[3:] + "',"
+        elif self._eaxisqual.startswith('/M='):
+            repstr += "M='" + self._eaxisqual[3:] + "',"
+        if self._faxisqual.startswith('/F='):
+            repstr += "F='" + self._faxisqual[3:] + "',"
+        elif self._faxisqual.startswith('/N='):
+            repstr += "N='" + self._faxisqual[3:] + "',"
+        if self._addnlqual:
+            repstr += "qual='" + self._addnlqual + "'"
+        if repstr.endswith(","):
+            repstr = repstr[:-1]
+        repstr += ")"
+        return repstr
+
+
+    def _ferretqualifierstr(self):
+        '''
+        Returns the Ferret syntax axis qualifier string describing this region;
+        eg, '/X=90W:20E/Y=20N:60N'
+        If no axis qualifiers are given, an empty string is returned.
+        '''
+        qualstr  = self._xaxisqual
+        qualstr += self._yaxisqual
+        qualstr += self._zaxisqual
+        qualstr += self._taxisqual
+        qualstr += self._eaxisqual
+        qualstr += self._faxisqual
+        qualstr += self._addnlqual
+        return qualstr
+
+
+    @staticmethod
+    def _interpcoord(name, value):
+        '''
+        Converts a coordinate value or range specification to a Ferret coordinate qualifier
+            name ('X','Y','Z','T','E','F'): name of the value for the qualifier
+            value (number, str, number slice, or str slice): value to interpret
+        Returns (str): Ferret coordinate qualifier ('/X=165')
+        If value is None, name is ignored and an empty string is returned.
+        Raises ValueError if unable to interpret value.
+        '''
+        if value is None:
+            return ''
+        if not name in ('X','Y','Z','T','E','F'):
+            raise ValueError('Invalid variable name "' + str(name) + '"')
+        qual = '/' + name + '='
+        if isinstance(value, numbers.Real):
+            return qual + str(value)
+        elif isinstance(value, str):
+            val = value.strip()
+            if val:
+                return qual + val
+        elif isinstance(value, slice):
+            start = value.start
+            stop = value.stop
+            step = value.step
+            if isinstance(start, numbers.Real) and isinstance(stop, numbers.Real) and (step is None):
+                return qual + str(start) + ':' + str(stop)
+            elif isinstance(start, numbers.Real) and isinstance(stop, numbers.Real) and isinstance(step, numbers.Real):
+                return qual + str(start) + ':' + str(stop) + ':' + str(step)
+            elif isinstance(start, str) and isinstance(stop, str) and (step is None):
+                start = start.strip()
+                stop = stop.strip()
+                if start and stop:
+                    return qual + start + ':' + stop
+            elif isinstance(start, str) and isinstance(stop, str) and isinstance(step, str):
+                start = start.strip()
+                stop = stop.strip()
+                step = step.strip()
+                if start and stop and step:
+                    return qual + start + ':' + stop + ':' + step
+        raise ValueError('definition for ' + name + ' is invalid')
+
+
+    @staticmethod
+    def _interpindex(name, value):
+        '''
+        Converts a coordinate index or range specification to a Ferret coordinate qualifier
+        Int values and slices are interpreted as Python syntax (start at zero, ranges exclude
+        the endpoint).  String values and slices are interpreted as Ferret syntax (start at
+        one, ranges include endpoint).
+            name ('I','J','K','L','M','N'): name of the value for the qualifier
+            value (int, str, int slice, or str slice): value to interpret
+        Returns (str): Ferret coordinate qualifier ('/I=1:10')
+        Raises ValueError if unable to interpret value.
+        '''
+        if value is None:
+            return ''
+        if not name in ('I','J','K','L','M','N'):
+            raise ValueError('Invalid variable name "' + str(name) + '"')
+        qual = '/' + name + '='
+        if isinstance(value, numbers.Integral):
+            return qual + str(value + 1)
+        elif isinstance(value, str):
+            val = value.strip()
+            if val:
+                return qual + val
+        elif isinstance(value, slice):
+            start = value.start
+            stop = value.stop
+            step = value.step
+            if isinstance(start, numbers.Integral) and isinstance(stop, numbers.Integral) and (step is None):
+                return qual + str(start + 1) + ':' + str(stop)
+            elif isinstance(start, numbers.Integral) and isinstance(stop, numbers.Integral) and isinstance(step, numbers.Integral):
+                return qual + str(start + 1) + ':' + str(stop) + ':' + str(step)
+            elif isinstance(start, str) and isinstance(stop, str) and (step is None):
+                start = start.strip()
+                stop = stop.strip()
+                if start and stop:
+                    return qual + start + ':' + stop
+            elif isinstance(start, str) and isinstance(stop, str) and isinstance(step, str):
+                start = start.strip()
+                stop = stop.strip()
+                step = step.strip()
+                if start and stop and step:
+                    return qual + start + ':' + stop + ':' + step
+        raise ValueError('definition for ' + name + ' is invalid')
+
+
diff --git a/pyfermod/ferrvar.py b/pyfermod/ferrvar.py
deleted file mode 100644
index ff21121..0000000
--- a/pyfermod/ferrvar.py
+++ /dev/null
@@ -1,22 +0,0 @@
-import numpy
-
-'''
-Represents Ferret variables in Python.
- at author: Karl Smith
-'''
-
-class FerrVar(object):
-    '''
-    Ferret variable object
-    '''
-
-
-    def __init__(self):
-        '''
-        Creates a Ferret variable without reading or computing any data values.
-        '''
-        self.name = None
-        self.dataset = None
-        self.definition = None
-        self.data = None
-
diff --git a/pyfermod/fervar.py b/pyfermod/fervar.py
new file mode 100644
index 0000000..0bc4a37
--- /dev/null
+++ b/pyfermod/fervar.py
@@ -0,0 +1,1038 @@
+'''
+Represents Ferret variables in Python.
+'''
+
+import numbers
+import pyferret
+
+# common regridding methods
+REGRID_LINEAR = "@LIN"
+REGRID_AVERAGE = "@AVE"
+REGRID_ASSOCIATE = "@ASN"
+REGRID_MEAN = "@BIN"
+REGRID_NEAREST = "@NRST"
+REGRID_MIN = "@MIN"
+REGRID_MAX = "@MAX"
+REGRID_EXACT = "@XACT"
+
+_ADDED_ATTRIBUTES = ('data', 'grid', 'missval', 'unit')
+
+class FerVar(object):
+    '''
+    Ferret variable object
+    '''
+
+    def __init__(self, defn=None, title=None):
+        '''
+        Creates a Ferret variable with (optionally) a title and a Ferret-syntax definition 
+            defn (string): Ferret-syntax definition of the variable
+            title (string): title (descriptive long name) for this variable
+        '''
+        # Record or generate the definition, or set to an empty string
+        if defn:
+            if not isinstance(defn, str):
+                raise ValueError("defn is not a string")
+            self._definition = defn
+        else:
+            self._definition = ''
+        # Name of the variable in the dataset
+        self._varname = ''
+        # Name of the dataset
+        self._dsetname = ''
+        # Record the title for this variable, or am empty string if not given
+        self.settitle(title)
+        # Is this a file variable?
+        self._isfilevar = False
+        # The list of uppercase _varname's that are know to be used
+        # in the definition.  This list is not guaranteed to be complete 
+        # and is not used in comparisons.
+        self._requires = set()
+        # Call the unload method to create and set the defaults for 
+        # _datagrid, _dataarray, _dataunit, and _missingvalue.
+        #     _datagrid is a FerGrid describing the Ferret grid for the variable.
+        #     _dataarray is a NumPy ndarray contains the Ferret data for the variable.
+        #     _dataunit is a string given the unit of the data
+        #     _missingvalue is the missing value used for the data
+        self.unload()
+
+
+    def copy(self):
+        '''
+        Return an anonymous copy (only the definition is copied) of this FerVar.
+        '''
+        newvar = FerVar(defn=self._definition)
+        newvar._requires.update(self._requires)
+        return newvar
+
+
+    def settitle(self, title):
+        '''
+        Assigns the title (long descriptive name) for this FerVar.  If this
+        variable is defined in Ferret, the title for the Ferret variable is
+        also updated.
+            title (string): title to assign
+        Raises ValueError if title is not a string or if there is a problem 
+            updating the title in Ferret
+        '''
+        if title:
+            if not isinstance(title, str):
+                raise ValueError("title is not a string")
+            self._title = title
+        else:
+            self._title = ''
+        if self._varname:
+            cmdstr = 'SET VAR/TITLE="%s" %s' % (self._title, self.fername())
+            (errval, errmsg) = pyferret.run(cmdstr)
+            if errval != pyferret.FERR_OK:
+                raise ValueError('problems updating the variable title in Ferret for ' + \
+                                 '%s to "%s": %s' % (self.fername(), self._title, errmsg))
+ 
+
+    def fername(self):
+        ''' 
+        Returns the Ferret name for this variable; namely,
+            <_varname>[d=<_dsetname>]
+        if _dsetname is given; otherwise, just
+            <_varname>
+        Raises ValueError if _varname is not defined
+        '''
+        if not self._varname:
+            raise ValueError('this FerVar does not contain a Ferret variable name')
+        if self._dsetname:
+            fername = '%s[d=%s]' % (self._varname, self._dsetname)
+        else:
+            fername = '%s' % self._varname
+        return fername
+
+
+    def __repr__(self):
+        '''
+        Representation of this FerVar
+        '''
+        infostr = "FerVar(varname='%s', dsetname='%s', title = '%s', defn='%s')" \
+                  % (self._varname, self._dsetname, self._title, self._definition)
+        return infostr
+
+
+    def __del__(self):
+        '''
+        Removes this variable, if possible, from Ferret.
+        Any error are ignored.
+        '''
+        # Try to remove from Ferret but ignore errors
+        try:
+            self._removefromferret()
+        except Exception:
+            pass
+
+
+    def __cmp__(self, other):
+        '''
+        FerVars are ordered alphabetically, case-insensitive, first by 
+        the Ferret variable name, then by the dataset name, title, and 
+        finally by the definition.  (Used by the "rich comparison" methods.)
+        '''
+        if not isinstance(other, FerVar):
+            raise NotImplementedError('other is not a FerVar')
+        supper = self._varname.upper()
+        oupper = other._varname.upper()
+        if supper < oupper:
+            return -1
+        if supper > oupper:
+            return 1
+        supper = self._dsetname.upper()
+        oupper = other._dsetname.upper()
+        if supper < oupper:
+            return -1
+        if supper > oupper:
+            return 1
+        supper = self._title.upper()
+        oupper = other._title.upper()
+        if supper < oupper:
+            return -1
+        if supper > oupper:
+            return 1
+        supper = self._definition.upper()
+        oupper = other._definition.upper()
+        if supper < oupper:
+            return -1
+        if supper > oupper:
+            return 1
+        return 0
+
+
+    def __eq__(self, other):
+        '''
+        Two FerVars are equal if all of the following are True:
+            they have the same Ferret variable name,
+            they have the same dataset name, 
+            they have the same title, and
+            they have the same defintion.
+        All these comparisons are case-insensitive.
+        '''
+        try:
+            return ( self.__cmp__(other) == 0 )
+        except NotImplementedError:
+            return NotImplemented
+
+
+    def __ne__(self, other):
+        '''
+        Two FerVars are not equal if any of the following are True:
+            they have different Ferret variable name,
+            they have different dataset name,
+            they have different title, or
+            they have different defintion.
+        All these comparisons are case-insensitive.
+        '''
+        try:
+            return ( self.__cmp__(other) != 0 )
+        except NotImplementedError:
+            return NotImplemented
+
+
+    def __lt__(self, other):
+        '''
+        FerVars are ordered alphabetically, case-insensitive, first by 
+        the Ferret variable name, then by the dataset name, title, and 
+        finally by the definition.
+        '''
+        try:
+            return ( self.__cmp__(other) < 0 )
+        except NotImplementedError:
+            return NotImplemented
+
+
+    def __le__(self, other):
+        '''
+        FerVars are ordered alphabetically, case-insensitive, first by 
+        the Ferret variable name, then by the dataset name, title, and 
+        finally by the definition.
+        '''
+        try:
+            return ( self.__cmp__(other) <= 0 )
+        except NotImplementedError:
+            return NotImplemented
+
+
+    def __gt__(self, other):
+        '''
+        FerVars are ordered alphabetically, case-insensitive, first by 
+        the Ferret variable name, then by the dataset name, title, and 
+        finally by the definition.
+        '''
+        try:
+            return ( self.__cmp__(other) > 0 )
+        except NotImplementedError:
+            return NotImplemented
+
+
+    def __ge__(self, other):
+        '''
+        FerVars are ordered alphabetically, case-insensitive, first by 
+        the Ferret variable name, then by the dataset name, title, and 
+        finally by the definition.
+        '''
+        try:
+            return ( self.__cmp__(other) >= 0 )
+        except NotImplementedError:
+            return NotImplemented
+
+
+    def __nonzero__(self):
+        '''
+        Returns False if the Ferret variable name, dataset name, title, 
+        and definition are all empty.  (For Python2.x)
+        '''
+        if self._varname:
+            return True
+        if self._dsetname:
+            return True
+        if self._title:
+            return True
+        if self._definition:
+            return True
+        return False
+
+
+    def __bool__(self):
+        '''
+        Returns False if the Ferret variable name, dataset name, title 
+        and definition are all empty.  (For Python3.x)
+        '''
+        return self.__nonzero__()
+
+
+    def __add__(self, other):
+        '''
+        If other is a FerVar, returns an anonymous FerVar whose definition 
+        is the sum of the FerVar definitions.
+        If other is Real, returns an anonymous FerVar whose definition 
+        is the sum of the FerVar definition with the number.
+        If other is not a FerVar or Real, returns NotImplemented
+        '''
+        if isinstance(other, FerVar):
+            newdef = '(%s) + (%s)' % (self._definition, other._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            newvar._requires.update(other._requires)
+            return newvar
+        if isinstance(other, numbers.Real):
+            newdef = '(%s) + %s' % (self._definition, str(other))
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            return newvar
+        return NotImplemented
+
+
+    def __radd__(self, other):
+        '''
+        If other is a FerVar, returns an anonymous FerVar whose definition 
+        is the sum of the FerVar definitions.
+        If other is Real, returns an anonymous FerVar whose definition 
+        is the sum of the FerVar definition with the number.
+        If other is not a FerVar or Real, returns NotImplemented
+        '''
+        if isinstance(other, FerVar):
+            newdef = '(%s) + (%s)' % (other._definition, self._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            newvar._requires.update(other._requires)
+            return newvar
+        if isinstance(other, numbers.Real):
+            newdef = '%s + (%s)' % (str(other), self._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            return newvar
+        return NotImplemented
+
+
+    def __sub__(self, other):
+        '''
+        If other is a FerVar, returns an anonymous FerVar whose definition 
+        is the difference (self - other) of the FerVar definitions.
+        If other is Real, returns an anonymous FerVar whose definition 
+        is the difference (self - other) of the FerVar definition with the number.
+        If other is not a FerVar or Real, returns NotImplemented
+        '''
+        if isinstance(other, FerVar):
+            newdef = '(%s) - (%s)' % (self._definition, other._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            newvar._requires.update(other._requires)
+            return newvar
+        if isinstance(other, numbers.Real):
+            newdef = '(%s) - %s' % (self._definition, str(other))
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            return newvar
+        return NotImplemented
+
+
+    def __rsub__(self, other):
+        '''
+        If other is a FerVar, returns an anonymous FerVar whose definition 
+        is the difference (other - self) of the FerVar definitions.
+        If other is Real, returns an anonymous FerVar whose definition 
+        is the difference (other - self) of the FerVar definition with the number.
+        If other is not a FerVar or Real, returns NotImplemented
+        '''
+        if isinstance(other, FerVar):
+            newdef = '(%s) - (%s)' % (other._definition, self._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            newvar._requires.update(other._requires)
+            return newvar
+        if isinstance(other, numbers.Real):
+            newdef = '%s - (%s)' % (str(other), self._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            return newvar
+        return NotImplemented
+
+
+    def __mul__(self, other):
+        '''
+        If other is a FerVar, returns an anonymous FerVar whose definition 
+        is the product of the FerVar definitions.
+        If other is Real, returns an anonymous FerVar whose definition 
+        is the product of the FerVar definition with the number.
+        If other is not a FerVar or Real, returns NotImplemented
+        '''
+        if isinstance(other, FerVar):
+            newdef = '(%s) * (%s)' % (self._definition, other._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            newvar._requires.update(other._requires)
+            return newvar
+        if isinstance(other, numbers.Real):
+            newdef = '(%s) * %s' % (self._definition, str(other))
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            return newvar
+        return NotImplemented
+
+
+    def __rmul__(self, other):
+        '''
+        If other is a FerVar, returns an anonymous FerVar whose definition 
+        is the product of the FerVar definitions.
+        If other is Real, returns an anonymous FerVar whose definition 
+        is the product of the FerVar definition with the number.
+        If other is not a FerVar or Real, returns NotImplemented
+        '''
+        if isinstance(other, FerVar):
+            newdef = '(%s) * (%s)' % (other._definition, self._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            newvar._requires.update(other._requires)
+            return newvar
+        if isinstance(other, numbers.Real):
+            newdef = '%s * (%s)' % (str(other), self._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            return newvar
+        return NotImplemented
+
+
+    def __truediv__(self, other):
+        '''
+        If other is a FerVar, returns an anonymous FerVar whose definition 
+        is the quotient (self / other) of the FerVar definitions.
+        If other is Real, returns an anonymous FerVar whose definition 
+        is the quotient (self / other) of the FerVar definition with the number.
+        If other is not a FerVar or Real, returns NotImplemented
+        (For Python3.x)
+        '''
+        if isinstance(other, FerVar):
+            newdef = '(%s) / (%s)' % (self._definition, other._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            newvar._requires.update(other._requires)
+            return newvar
+        if isinstance(other, numbers.Real):
+            newdef = '(%s) / %s' % (self._definition, str(other))
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            return newvar
+        return NotImplemented
+
+
+    def __rtruediv__(self, other):
+        '''
+        If other is a FerVar, returns an anonymous FerVar whose definition 
+        is the quotient (other / self) of the FerVar definitions.
+        If other is Real, returns an anonymous FerVar whose definition 
+        is the quotient (other / self) of the FerVar definition with the number.
+        If other is not a FerVar or Real, returns NotImplemented
+        (For Python3.x)
+        '''
+        if isinstance(other, FerVar):
+            newdef = '(%s) / (%s)' % (other._definition, self._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            newvar._requires.update(other._requires)
+            return newvar
+        if isinstance(other, numbers.Real):
+            newdef = '%s / (%s)' % (str(other), self._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            return newvar
+        return NotImplemented
+
+
+    def __div__(self, other):
+        '''
+        If other is a FerVar, returns an anonymous FerVar whose definition 
+        is the quotient (self / other) of the FerVar definitions.
+        If other is Real, returns an anonymous FerVar whose definition 
+        is the quotient (self / other) of the FerVar definition with the number.
+        If other is not a FerVar or Real, returns NotImplemented
+        (For Python2.x)
+        '''
+        return self.__truediv__(other)
+
+
+    def __rdiv__(self, other):
+        '''
+        If other is a FerVar, returns an anonymous FerVar whose definition 
+        is the quotient (other / self) of the FerVar definitions.
+        If other is Real, returns an anonymous FerVar whose definition 
+        is the quotient (other / self) of the FerVar definition with the number.
+        If other is not a FerVar or Real, returns NotImplemented
+        (For Python2.x)
+        '''
+        return self.__rtruediv__(other)
+
+
+    def __pow__(self, other):
+        '''
+        If other is a FerVar, returns an anonymous FerVar whose definition 
+        is the exponentiation (self ^ other) of the FerVar definitions.
+        If other is Real, returns an anonymous FerVar whose definition 
+        is the exponentiation (self ^ other) of the FerVar definition with the number.
+        If other is not a FerVar or Real, returns NotImplemented
+        '''
+        if isinstance(other, FerVar):
+            newdef = '(%s) ^ (%s)' % (self._definition, other._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            newvar._requires.update(other._requires)
+            return newvar
+        if isinstance(other, numbers.Real):
+            newdef = '(%s) ^ %s' % (self._definition, str(other))
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            return newvar
+        return NotImplemented
+
+
+    def __rpow__(self, other):
+        '''
+        If other is a FerVar, returns an anonymous FerVar whose definition 
+        is the exponentiation (other ^ self) of the FerVar definitions.
+        If other is Real, returns an anonymous FerVar whose definition 
+        is the exponentiation (other ^ self) of the FerVar definition with the number.
+        If other is not a FerVar or Real, returns NotImplemented
+        '''
+        if isinstance(other, FerVar):
+            newdef = '(%s) ^ (%s)' % (other._definition, self._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            newvar._requires.update(other._requires)
+            return newvar
+        if isinstance(other, numbers.Real):
+            newdef = '%s ^ (%s)' % (str(other), self._definition)
+            newvar = FerVar(defn=newdef)
+            newvar._requires.update(self._requires)
+            return newvar
+        return NotImplemented
+
+
+    def __neg__(self):
+        '''
+        Returns an anonymous FerVar whose definition is 
+        the product of -1.0 and this FerVar definition.
+        '''
+        newdef = '-1.0 * (%s)' % self._definition
+        newvar = FerVar(defn=newdef)
+        newvar._requires.update(self._requires)
+        return newvar
+
+
+    def __pos__(self):
+        '''
+        Returns an anonymous FerVar whose definition is 
+        the same as this FerVar definition.
+        '''
+        newvar = FerVar(defn=self._definition)
+        newvar._requires.update(self._requires)
+        return newvar
+
+
+    def __abs__(self):
+        '''
+        Returns an anonymous FerVar whose definition is 
+        the absolute value of this FerVar definition.
+        '''
+        newdef = 'abs(%s)' % self._definition
+        newvar = FerVar(defn=newdef)
+        newvar._requires.update(self._requires)
+        return newvar
+
+
+    def __getitem__(self, key):
+        '''
+        This FerVar must be assigned in Ferret.
+
+        If key is 'data', returns the data array for this FerVar,
+        loading it if necessary.
+        If key is 'grid', returns the data grid for this FerVar,
+        loading it if necessary.
+        If key is 'missval', returns the value for missing data 
+        for this FerVar.
+        If key is 'unit', returns the data unit for this FerVar.
+
+        Otherwise, assumes key is a slice or subset specification, 
+        and returns an anonymous FerVar whose definition is a 
+        subset of this FerVar.  
+            key is an int, float, string, int slice, float slice, 
+                string slice, or a tuple of these values.
+                 - int are interpreted as index/indices
+                 - floats are interpreted as axis values
+                 - strings are interpreted as axis values possibly with units
+        Units in a string designate an axis; otherwise the index
+        within the given tuple (or zero if not a tuple) specifies the axis.
+        For example ['20N':'50N'] will always be a latitude subset.
+
+        TODO: handle step values
+        '''
+        if key is None:
+            raise KeyError('None is not a valid key')
+        if not self._varname:
+            raise NotImplementedError('variable not assigned in Ferret')
+        if key == 'data':
+           return self.getdata()
+        if key == 'grid':
+           return self.getgrid()
+        if key == 'missval':
+           return self.getmissval()
+        if key == 'unit':
+           return self.getunit()
+
+        coordlimits = [ None ] * pyferret.MAX_FERRET_NDIM
+        indexlimits = [ None ] * pyferret.MAX_FERRET_NDIM
+        changed = False
+        # TODO: handle step values, try to condense code
+        if isinstance(key, tuple):
+            for k in xrange(len(key)):
+                piece = key[k]
+                if piece is None:
+                    continue
+                if isinstance(piece, slice):
+                    try:
+                        (axtype, start, stop, step) = pyferret.FerAxis._parsegeoslice(piece)
+                    except Exception as ex:
+                        raise KeyError('%s is not valid: %s' % (str(piece), str(ex)))
+                    if step is not None:
+                        raise KeyError('step values in slices are not supported at this time')
+                    if axtype == pyferret.AXISTYPE_LONGITUDE:
+                        if coordlimits[pyferret.X_AXIS] or indexlimits[pyferret.X_AXIS]:
+                            raise KeyError('two longitude slices given')
+                        coordlimits[pyferret.X_AXIS] = '%s:%s' % (str(start), str(stop))
+                        changed = True
+                    elif axtype == pyferret.AXISTYPE_LATITUDE:
+                        if coordlimits[pyferret.Y_AXIS] or indexlimits[pyferret.Y_AXIS]:
+                            raise KeyError('two latitude slices given')
+                        coordlimits[pyferret.Y_AXIS] = '%s:%s' % (str(start), str(stop))
+                        changed = True
+                    elif axtype == pyferret.AXISTYPE_LEVEL:
+                        if coordlimits[pyferret.Z_AXIS] or indexlimits[pyferret.Z_AXIS]:
+                            raise KeyError('two level slices given')
+                        coordlimits[pyferret.Z_AXIS] = '%s:%s' % (str(start), str(stop))
+                        changed = True
+                    elif axtype == pyferret.AXISTYPE_TIME:
+                        if coordlimits[pyferret.T_AXIS] or indexlimits[pyferret.T_AXIS]:
+                            raise KeyError('two time slices given')
+                        starttime = pyferret.FerAxis._makedatestring(start)
+                        stoptime = pyferret.FerAxis._makedatestring(stop)
+                        coordlimits[pyferret.T_AXIS] = '%s:%s' % (starttime, stoptime)
+                        changed = True
+                    elif isinstance(start,int) and isinstance(stop,int):
+                        if coordlimits[k] or indexlimits[k]:
+                            raise KeyError('two slices for axis index %d given' % k)
+                        # do not know the axis length at this time
+                        if (start < 0) or (stop < 0):
+                            raise KeyError('negative indices not supported at this time')
+                        # Ferret indices start at 1
+                        start += 1
+                        stop += 1
+                        indexlimits[k] = '%d:%d' % (start, stop)
+                        changed = True
+                    elif isinstance(start,numbers.Real) and isinstance(stop,numbers.Real):
+                        if coordlimits[k] or indexlimits[k]:
+                            raise KeyError('two slices for axis index %d given' % k)
+                        coordlimits[k] = '%s:%s' % (str(start), str(stop))
+                        changed = True
+                    elif (start is None) and (stop is None):
+                        # full range on this axis 
+                        if coordlimits[k] or indexlimits[k]:
+                            raise KeyError('two slices for axis index %d given' % k)
+                        continue
+                    else:
+                        raise KeyError('%s in not valid' % str(piece))
+                else:
+                    try:
+                        (axtype, val) = pyferret.FerAxis._parsegeoval(piece)
+                    except Exception as ex:
+                        raise KeyError('%s is not valid: %s' % (str(piece), str(ex)))
+                    if axtype == pyferret.AXISTYPE_LONGITUDE:
+                        if coordlimits[pyferret.X_AXIS] or indexlimits[pyferret.X_AXIS]:
+                            raise KeyError('two longitude slices given')
+                        coordlimits[pyferret.X_AXIS] = '%s' % str(val)
+                        changed = True
+                    elif axtype == pyferret.AXISTYPE_LATITUDE:
+                        if coordlimits[pyferret.Y_AXIS] or indexlimits[pyferret.Y_AXIS]:
+                            raise KeyError('two latitude slices given')
+                        coordlimits[pyferret.Y_AXIS] = '%s' % str(val)
+                        changed = True
+                    elif axtype == pyferret.AXISTYPE_LEVEL:
+                        if coordlimits[pyferret.Z_AXIS] or indexlimits[pyferret.Z_AXIS]:
+                            raise KeyError('two level slices given')
+                        coordlimits[pyferret.Z_AXIS] = '%s' % str(val)
+                        changed = True
+                    elif axtype == pyferret.AXISTYPE_TIME:
+                        if coordlimits[pyferret.T_AXIS] or indexlimits[pyferret.T_AXIS]:
+                            raise KeyError('two time slices given')
+                        coordlimits[pyferret.T_AXIS] = pyferret.FerAxis._makedatestring(val)
+                        changed = True
+                    elif isinstance(val,int):
+                        if coordlimits[k] or indexlimits[k]:
+                            raise KeyError('two slices for axis index %d given' % k)
+                        # do not know the axis length at this time
+                        if val < 0: 
+                            raise KeyError('negative indices not supported at this time')
+                        # Ferret indices start at 1
+                        val += 1
+                        indexlimits[k] = '%d' % val
+                        changed = True
+                    elif isinstance(start,float):
+                        if coordlimits[k] or indexlimits[k]:
+                            raise KeyError('two slices for axis index %d given' % k)
+                        coordlimits[k] = '%s' % str(val)
+                        changed = True
+                    else:
+                        raise KeyError('%s in not valid' % str(piece))
+        elif isinstance(key, slice):
+            try:
+                (axtype, start, stop, step) = pyferret.FerAxis._parsegeoslice(key)
+            except Exception as ex:
+                raise KeyError('%s is not valid: %s' % (str(key), str(ex)))
+            if step is not None:
+                raise KeyError('step values in slices are not supported at this time')
+            if axtype == pyferret.AXISTYPE_LONGITUDE:
+                coordlimits[pyferret.X_AXIS] = '%s:%s' % (str(start), str(stop))
+                changed = True
+            elif axtype == pyferret.AXISTYPE_LATITUDE:
+                coordlimits[pyferret.Y_AXIS] = '%s:%s' % (str(start), str(stop))
+                changed = True
+            elif axtype == pyferret.AXISTYPE_LEVEL:
+                coordlimits[pyferret.Z_AXIS] = '%s:%s' % (str(start), str(stop))
+                changed = True
+            elif axtype == pyferret.AXISTYPE_TIME:
+                starttime = pyferret.FerAxis._makedatestring(start)
+                stoptime = pyferret.FerAxis._makedatestring(stop)
+                coordlimits[pyferret.T_AXIS] = '%s:%s' % (starttime, stoptime)
+                changed = True
+            elif isinstance(start,int) and isinstance(stop,int):
+                # do not know the axis length at this time
+                if (start < 0) or (stop < 0):
+                    raise KeyError('negative indices not supported at this time')
+                # Ferret indices start at 1
+                start += 1
+                stop += 1
+                indexlimits[0] = '%d:%d' % (start, stop)
+                changed = True
+            elif isinstance(start,numbers.Real) and isinstance(stop,numbers.Real):
+                coordlimits[0] = '%s:%s' % (str(start), str(stop))
+                changed = True
+            elif (start is None) and (stop is None):
+                # full range - standard way of generating a duplicate
+                pass
+            else:
+                raise KeyError('%s in not valid' % str(key))
+        else:
+            try:
+                (axtype, val) = pyferret.FerAxis._parsegeoval(key)
+            except Exception as ex:
+                raise KeyError('%s is not valid: %s' % (str(key), str(ex)))
+            if axtype == pyferret.AXISTYPE_LONGITUDE:
+                coordlimits[pyferret.X_AXIS] = '%s' % str(val)
+                changed = True
+            elif axtype == pyferret.AXISTYPE_LATITUDE:
+                coordlimits[pyferret.Y_AXIS] = '%s' % str(val)
+                changed = True
+            elif axtype == pyferret.AXISTYPE_LEVEL:
+                coordlimits[pyferret.Z_AXIS] = '%s' % str(val)
+                changed = True
+            elif axtype == pyferret.AXISTYPE_TIME:
+                coordlimits[pyferret.T_AXIS] = pyferret.FerAxis._makedatestring(val)
+                changed = True
+            elif isinstance(val,int):
+                # do not know the axis length at this time
+                if val < 0: 
+                    raise KeyError('negative indices not supported at this time')
+                # Ferret indices start at 1
+                val += 1
+                indexlimits[k] = '%d' % val
+                changed = True
+            elif isinstance(start,float):
+                coordlimits[k] = '%s' % str(val)
+                changed = True
+            else:
+                raise KeyError('%s in not valid' % str(key))
+        if not changed:
+            # the whole thing - definition is just this variable
+            newvar = FerVar(defn=self.fername())
+            newvar._requires.update(self._requires)
+            return newvar
+        # create the subset definition in Ferret
+        if self._dsetname:
+            newdef = '%s[d=%s,' % (self._varname, self._dsetname)
+        else:
+            newdef = '%s[' % self._varname
+        if coordlimits[pyferret.X_AXIS]:
+            newdef += 'X=%s,' % coordlimits[pyferret.X_AXIS]
+        if indexlimits[pyferret.X_AXIS]:
+            newdef += 'I=%s,' % indexlimits[pyferret.X_AXIS]
+        if coordlimits[pyferret.Y_AXIS]:
+            newdef += 'Y=%s,' % coordlimits[pyferret.Y_AXIS]
+        if indexlimits[pyferret.Y_AXIS]:
+            newdef += 'J=%s,' % indexlimits[pyferret.Y_AXIS]
+        if coordlimits[pyferret.Z_AXIS]:
+            newdef += 'Z=%s,' % coordlimits[pyferret.Z_AXIS]
+        if indexlimits[pyferret.Z_AXIS]:
+            newdef += 'K=%s,' % indexlimits[pyferret.Z_AXIS]
+        if coordlimits[pyferret.T_AXIS]:
+            newdef += 'T=%s,' % coordlimits[pyferret.T_AXIS]
+        if indexlimits[pyferret.T_AXIS]:
+            newdef += 'L=%s,' % indexlimits[pyferret.T_AXIS]
+        if coordlimits[pyferret.E_AXIS]:
+            newdef += 'E=%s,' % coordlimits[pyferret.E_AXIS]
+        if indexlimits[pyferret.E_AXIS]:
+            newdef += 'M=%s,' % indexlimits[pyferret.E_AXIS]
+        if coordlimits[pyferret.F_AXIS]:
+            newdef += 'F=%s,' % coordlimits[pyferret.F_AXIS]
+        if indexlimits[pyferret.F_AXIS]:
+            newdef += 'N=%s,' % indexlimits[pyferret.F_AXIS]
+        # replace the final , with ]
+        newdef = newdef[:-1] + ']'
+        newvar = FerVar(defn=newdef)
+        newvar._requires.update(self._requires)
+        return newvar
+
+
+    def __getattr__(self, name):
+        '''
+        Return the data array (if name='data'), data grid (if name='grid'), 
+        name (if name='name'), or a copy of the coordinates (if name='coords')
+        Note that this method is only called when the parent object 
+        does not have an attribute with this name.
+        '''
+        try:
+            if name in _ADDED_ATTRIBUTES:
+                return self.__getitem__(name)
+        except KeyError:
+            pass
+        raise AttributeError("unknown attribute '%s'" % name)
+
+
+    def __dir__(self):
+        '''
+        Returns a list of known attributes, including those added 
+        by the __getattr__ method.
+        '''
+        mydir = list(_ADDED_ATTRIBUTES)
+        mydir.extend( dir(super(FerVar, self)) )
+        return mydir
+
+
+    def _markasknownvar(self, varname, dsetname, isfilevar):
+        '''
+        Marks this variable as a variable already defined in Ferret.
+        '''
+        if not varname:
+            raise ValueError('varname is not given')
+        if not isinstance(varname, str):
+            raise ValueError('varname is not a string')
+        if dsetname and not isinstance(varname, str):
+            raise ValueError('dsetname name is not a string')
+        self._varname = varname
+        if dsetname:
+            self._dsetname = dsetname
+        else:
+            self._dsetname = ''
+        self._isfilevar = bool(isfilevar)
+        self._definition = self.fername()
+        self._requires.add(varname.upper())
+        self.unload()
+
+
+    def _assigninferret(self, varname, dsetname):
+        '''
+        Defines this FerVar in Ferret using the given variable name 
+        associated with the given dataset name.
+            varname (string): name for the variable in Ferret
+            dsetname (string): name of the dataset to contain the variable
+        Raises a ValueError if there is a problem.
+        '''
+        if not self._definition:
+            raise ValueError('this FerVar does not contain a definition')
+        if not varname:
+            raise ValueError('variable name to be assigned is not given')
+        if varname.upper() in self._requires:
+            raise ValueError('recursive definitions cannot be implemented in Ferret')
+        # Assign the variable in Ferret
+        cmdstr = 'DEFINE VAR'
+        if dsetname:
+            cmdstr += '/D=%s' % dsetname
+        if self._title:
+            cmdstr += '/TITLE="%s"' % self._title
+        cmdstr += ' %s = %s' % (varname, self._definition)
+        (errval, errmsg) = pyferret.run(cmdstr)
+        if errval != pyferret.FERR_OK:
+            raise ValueError('problems defining %s (%s) in Ferret: %s' % (varname, cmdstr, errmsg))
+        # Revise the fields in this FerVar to reflect this assignment
+        self._markasknownvar(varname, dsetname, False)
+
+
+    def _removefromferret(self):
+        '''
+        Removes (cancels) this variable in Ferret, then unloads this FerVar 
+        and erases _varname.  Raises a NotImplementedError is this is a file 
+        variable.  Raises a ValueError if there is a Ferret problem.  This 
+        normally is not called by the user; instead delete the FerVar from 
+        the dataset.
+        '''
+        # ignore if this Ferrer variable has already been removed from Ferret
+        if not self._varname:
+            return
+        fername = self.fername()
+        if self._isfilevar:
+            raise NotImplementedError('%s is a file variable; close the dataset to remove' % fername)
+        cmdstr = 'CANCEL VAR %s' % fername
+        (errval, errmsg) = pyferret.run(cmdstr)
+        if errval != pyferret.FERR_OK:
+            raise ValueError('unable to remove variable %s from Ferret: %s' % (fername, errmsg))
+        self._varname = ''
+        self.unload()
+
+
+    def unload(self):
+        '''
+        Clears the grid and data stored in this FerVar.  After this call, any 
+        request for the grid or data will automatically load the latest values 
+        from Ferret.  This method should be called anytime there is a change 
+        in the definition of this variable, or a variable this variable uses.
+        '''
+        self._datagrid = None
+        self._dataarray = None
+        self._dataunit = ''
+        self._missingvalue = None
+
+
+    def load(self):
+        '''
+        Retrieves the grid and data for this Ferret variable from Ferret.
+        This method is automatically called before returning the grid or data 
+        for the first time for this variable.  This can be called to update
+        the grid or data in this FerVar after any change in the definition 
+        of the variable.  Alternatively, cleardata can be called to clear any
+        stored grid and data, delaying the update from Ferret until the grid
+        or data is requested.
+        Raises a ValueEror if problems occur.
+        '''
+        fername = self.fername()
+        datadict = pyferret.getdata(fername, False)
+        feraxes = [ ]
+        for (axistype,axcoords,axunit,axname) in zip(
+                datadict["axis_types"], datadict["axis_coords"], 
+                datadict["axis_units"], datadict["axis_names"]):
+            feraxes.append( pyferret.FerAxis(coords=axcoords, 
+                    axtype=axistype, unit=axunit, name=axname) )
+        self._datagrid = pyferret.FerGrid(axes=feraxes, name=fername)
+        self._dataarray = datadict["data"]
+        self._dataunit = datadict["data_unit"]
+        self._missingvalue = datadict["missing_value"]
+
+
+    def getdata(self):
+        '''
+        Returns a copy of the data array for this Ferret variable,
+        first loading this variable if necessary.
+        Raises a ValueError is a problem occurs.
+        '''
+        if (self._datagrid is None) or (self._dataarray is None):
+            self.load()
+        return self._dataarray.copy('A')
+
+
+    def getgrid(self):
+        '''
+        Returns a copy of the data grid for this Ferret variable,
+        first loading this variable if necessary.
+        Raises a ValueError is a problem occurs.
+        '''
+        if (self._datagrid is None) or (self._dataarray is None):
+            self.load()
+        return self._datagrid.copy()
+
+
+    def getmissval(self):
+        '''
+        Returns the value used for missing data for this Ferret 
+        variable, first loading this variable if necessary.  
+        Raises a ValueError is a problem occurs.
+        '''
+        if (self._datagrid is None) or (self._dataarray is None):
+            self.load()
+        # The missing value is a single-element ndarray
+        return self._missingvalue[0]
+
+
+    def getunit(self):
+        '''
+        Returns the unit string of the data for this Ferret
+        variable, first loading this variable if necessary.
+        Raises a ValueError is a problem occurs.
+        '''
+        if (self._datagrid is None) or (self._dataarray is None):
+            self.load()
+        return self._dataunit
+
+
+    def showgrid(self, qual=''):
+        '''
+        Show the Ferret grid information about this variable.  This uses 
+        the Ferret SHOW GRID command to create and display the information.
+            qual (string): Ferret qualifiers to add to the SHOW GRID command
+        '''
+        if not isinstance(qual, str):
+            raise ValueError('qual (Ferret qualifiers) must be a string')
+        cmdstr = 'SHOW GRID'
+        if qual:
+            cmdstr += qual
+        cmdstr += ' '
+        cmdstr += self.fername()
+        (errval, errmsg) = pyferret.run(cmdstr)
+        if errval != pyferret.FERR_OK:
+            raise ValueError('Ferret command "%s" failed: %s' % (cmdstr, errmsg))
+
+
+    def regrid(self, newgrid, method=REGRID_LINEAR):
+        '''
+        Returns an anonymous FerVar that is this variable regridded to the grid
+        implied by newgrid using the given method.
+            newgrid (FerVar |  string | FerGrid): regrid to this implied grid;
+                if a FerVar, the implied grid is the grid used by the Ferret variable,
+                if a string, the implied grid is the grid known to Ferret by this name
+                if a FerGrid, the implied grid is this grid (TODO: implement)
+            method (string): method to perform the regridding; typically one of
+                pyferret.REGRID_LINEAR (default)
+                    (multi-axis) linear interpolation of nearest source points around destination point
+                pyferret.REGRID_AVERAGE
+                    length-weighted averaging of source point cells overlapping destination point cell
+                pyferret.REGRID_ASSOCIATE
+                    blind association of source points to destination points by indices
+                pyferret.REGRID_MEAN
+                    unweighted mean of source points in destination point cell
+                pyferret.REGRID_NEAREST
+                    value of source point nearest the destination point
+                pyferret.REGRID_MIN
+                    minimum value of source points in destination point cell 
+                pyferret.REGRID_MAX
+                    maximum value of source points in destination point cell 
+                pyferret.REGRID_EXACT
+                    copy values where source and destination points coincide; 
+                    other destination points assigned missing value
+        '''
+        if not self._varname:
+            raise NotImplementedError('regridding can only be performed on variables assigned in Ferret')
+        if not ( isinstance(method, str) and (method[0] == '@') ):
+            raise ValueError('invalid regridding method %s' % str(method))
+        if isinstance(newgrid, FerVar):
+            if not newgrid._varname:
+                raise ValueError('FerVar used for the new grid is not assigned in Ferret')
+            gridname = newgrid.fername()
+        elif isinstance(newgrid, str):
+            gridname = newgrid
+        elif isinstance(newgrid, pyferret.FerGrid):
+            raise NotImplementedError('regrid using FerGrid not implemented at this time')
+        if self._dsetname:
+            newdef = '%s[d=%s,g=%s%s]' % (self._varname, self._dsetname, gridname, method)
+        else:
+            newdef = '%s[g=%s%s]' % (self._varname, gridname, method)
+        newvar = FerVar(defn=newdef)
+        newvar._requires.update(self._requires)
+        return newvar
+
diff --git a/pyfermod/libpyferret.c b/pyfermod/libpyferret.c
index c99d6ee..d11962d 100644
--- a/pyfermod/libpyferret.c
+++ b/pyfermod/libpyferret.c
@@ -123,6 +123,11 @@ static char pyferretStartDocstring[] =
     "    metaname = <string>: filename for Ferret graphics (default empty) \n"
     "    unmapped = <bool>: hide the graphics viewer? (default False) \n"
     "    quiet = <bool>: do not print the ferret header? (default False) \n"
+    "    linebuffer = <bool>: use line buffering for stdout and stderr? (default False) \n"
+    "            Note: \n"
+    "                the enviroment variable GFORTRAN_UNBUFFERED_PRECONNECTED \n"
+    "                needs to be set to 1 in order to unbuffer the Fortran \n"
+    "                units for output and error messages\n"
     "\n"
     "Returns: \n"
     "    True is successful \n"
@@ -135,7 +140,8 @@ static char pyferretStartDocstring[] =
 static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
 {
     static char *argNames[] = {"memsize", "journal", "verify", "restrict", "server",
-                               "metaname", "transparent", "unmapped", "quiet", NULL};
+                               "metaname", "transparent", "unmapped", "quiet", 
+                               "linebuffer", NULL};
     double mwMemSize = 25.6;
     PyObject *pyoJournal = NULL;
     PyObject *pyoVerify = NULL;
@@ -144,6 +150,7 @@ static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
     PyObject *pyoTransparent = NULL;
     PyObject *pyoUnmapped = NULL;
     PyObject *pyoQuiet = NULL;
+    PyObject *pyoLineBuffer = NULL;
     char *metaname = NULL;
     int journalFlag = 1;
     int verifyFlag = 1;
@@ -152,6 +159,7 @@ static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
     int transparentFlag = 0;
     int unmappedFlag = 0;
     int quietFlag = 0;
+    int lineBufferFlag = 0;
     int pplMemSize;
     size_t blksiz;
     int status;
@@ -169,12 +177,12 @@ static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
     import_array1(NULL);
 
     /* Parse the arguments, checking if an Exception was raised */
-    if ( ! PyArg_ParseTupleAndKeywords(args, kwds, "|dO!O!O!O!sO!O!O!",
+    if ( ! PyArg_ParseTupleAndKeywords(args, kwds, "|dO!O!O!O!sO!O!O!O!",
                  argNames, &mwMemSize, &PyBool_Type, &pyoJournal,
                  &PyBool_Type, &pyoVerify, &PyBool_Type, &pyoRestrict,
                  &PyBool_Type, &pyoServer, &metaname,
                  &PyBool_Type, &pyoTransparent, &PyBool_Type, &pyoUnmapped,
-                 &PyBool_Type, &pyoQuiet) )
+                 &PyBool_Type, &pyoQuiet, &PyBool_Type, &pyoLineBuffer) )
         return NULL;
 
     /* Interpret the booleans - Py_False and Py_True are singleton non-NULL objects, so just use == */
@@ -192,10 +200,18 @@ static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
         unmappedFlag = 1;
     if ( pyoQuiet == Py_True )
         quietFlag = 1;
+    if ( pyoLineBuffer == Py_True )
+        lineBufferFlag = 1;
 
     if ( metaname[0] == '\0' )
         metaname = NULL;
 
+    /* Deal with line buffering */
+    if ( lineBufferFlag != 0 ) {
+        /* Set line buffering on stdout and stderr; ignore failures */
+        setvbuf(stdout, NULL, _IOLBF, BUFSIZ);
+        setvbuf(stderr, NULL, _IOLBF, BUFSIZ);
+    }
     /* Deal with the restrict and server flags right away */
     if ( restrictFlag != 0 )
         set_secure();
@@ -538,7 +554,7 @@ static char pyferretGetDataDocstring[] =
     "Returns: \n"
     "    A tuple containing: \n"
     "        a NumPy float64 ndarray containing a copy of the numeric data requested, \n"
-    "        a NumPy float64 ndarray containing the bad-data-flag value(s) for the data, \n"
+    "        a NumPy float64 ndarray containing the bad-data-flag value for the data, \n"
     "        a string giving the units for the data \n"
     "        a tuple of six integers giving the AXISTYPE codes of the axes, \n"
     "        a tuple of six strings giving the names of the axes, \n"
@@ -643,7 +659,7 @@ static PyObject *pyferretGetData(PyObject *self, PyObject *args, PyObject *kwds)
      * Note: if MAX_FERRET_NDIM changes, this needs editing.
      */
     ferdata = ferMemory + arraystart;
-    npydata = PyArray_DATA(data_ndarray);
+    npydata = (double *)PyArray_DATA(data_ndarray);
     q = 0;
     for (n = 0; n < (int)(shape[5]); n++) {
       for (m = 0; m < (int)(shape[4]); m++) {
@@ -672,7 +688,7 @@ static PyObject *pyferretGetData(PyObject *self, PyObject *args, PyObject *kwds)
        Py_DECREF(data_ndarray);
        return NULL;
     }
-    npydata = PyArray_DATA(badval_ndarray);
+    npydata = (double *)PyArray_DATA(badval_ndarray);
     npydata[0] = badval;
 
     /* Create the axis coordinates array objects */
@@ -746,22 +762,22 @@ static PyObject *pyferretGetData(PyObject *self, PyObject *args, PyObject *kwds)
             /* set the axis units to the name of the calendar */
             switch( calendar_type ) {
             case CALTYPE_NONE:
-                strcpy(axis_units[k], "CALTYPE_NONE");
+                strcpy(axis_units[k], CALTYPE_NONE_STR);
                 break;
             case CALTYPE_360DAY:
-                strcpy(axis_units[k], "CALTYPE_360DAY");
+                strcpy(axis_units[k], CALTYPE_360DAY_STR);
                 break;
             case CALTYPE_NOLEAP:
-                strcpy(axis_units[k], "CALTYPE_NOLEAP");
+                strcpy(axis_units[k], CALTYPE_NOLEAP_STR);
                 break;
             case CALTYPE_GREGORIAN:
-                strcpy(axis_units[k], "CALTYPE_GREGORIAN");
+                strcpy(axis_units[k], CALTYPE_GREGORIAN_STR);
                 break;
             case CALTYPE_JULIAN:
-                strcpy(axis_units[k], "CALTYPE_JULIAN");
+                strcpy(axis_units[k], CALTYPE_JULIAN_STR);
                 break;
             case CALTYPE_ALLLEAP:
-                strcpy(axis_units[k], "CALTYPE_ALLLEAP");
+                strcpy(axis_units[k], CALTYPE_ALLLEAP_STR);
                 break;
             default:
                 sprintf(errmsg, "Unexpected calendar type of %d", calendar_type);
@@ -902,7 +918,7 @@ static PyObject *pyferretPutData(PyObject *self, PyObject *args, PyObject *kwds)
         return NULL;
     }
     /* Just get bdfval from the data in bdfval_ndarray */
-    bdfval = ((double *) PyArray_DATA(bdfval_ndarray))[0];
+    bdfval = ((double *)PyArray_DATA(bdfval_ndarray))[0];
 
     /* Get the axis types out of the tuple */
     axis_types_tuple = PySequence_Fast(axis_types_tuple, "axis_types is not a tuple or list");
@@ -1016,7 +1032,7 @@ static PyObject *pyferretPutData(PyObject *self, PyObject *args, PyObject *kwds)
                 Py_DECREF(axis_coords_tuple);
                 return NULL;
             }
-            axis_coords[k] = PyArray_DATA(seqitem);
+            axis_coords[k] = (int *)PyArray_DATA(seqitem);
             get_axis_num_(&(axis_nums[k]), &(axis_starts[k]), &(axis_ends[k]), axis_names[k],
                           axis_units[k], axis_coords[k], &(num_coords[k]), &(axis_types[k]),
                           errmsg, &len_errmsg, strlen(axis_names[k]), strlen(axis_units[k]), 2048);
@@ -1049,22 +1065,22 @@ static PyObject *pyferretPutData(PyObject *self, PyObject *args, PyObject *kwds)
                 return NULL;
             }
             num_coords[k] /= 6;
-            if ( strcmp(axis_units[k], "CALTYPE_NONE") == 0 ) {
+            if ( strcmp(axis_units[k], CALTYPE_NONE_STR) == 0 ) {
                 calendar_type = CALTYPE_NONE;
             }
-            else if ( strcmp(axis_units[k], "CALTYPE_360DAY") == 0 ) {
+            else if ( strcmp(axis_units[k], CALTYPE_360DAY_STR) == 0 ) {
                 calendar_type = CALTYPE_360DAY;
             }
-            else if ( strcmp(axis_units[k], "CALTYPE_NOLEAP") == 0 ) {
+            else if ( strcmp(axis_units[k], CALTYPE_NOLEAP_STR) == 0 ) {
                 calendar_type = CALTYPE_NOLEAP;
             }
-            else if ( strcmp(axis_units[k], "CALTYPE_GREGORIAN") == 0 ) {
+            else if ( strcmp(axis_units[k], CALTYPE_GREGORIAN_STR) == 0 ) {
                 calendar_type = CALTYPE_GREGORIAN;
             }
-            else if ( strcmp(axis_units[k], "CALTYPE_JULIAN") == 0 ) {
+            else if ( strcmp(axis_units[k], CALTYPE_JULIAN_STR) == 0 ) {
                 calendar_type = CALTYPE_JULIAN;
             }
-            else if ( strcmp(axis_units[k], "CALTYPE_ALLLEAP") == 0 ) {
+            else if ( strcmp(axis_units[k], CALTYPE_ALLLEAP_STR) == 0 ) {
                 calendar_type = CALTYPE_ALLLEAP;
             }
             else {
@@ -1072,7 +1088,7 @@ static PyObject *pyferretPutData(PyObject *self, PyObject *args, PyObject *kwds)
                 Py_DECREF(axis_coords_tuple);
                 return NULL;
             }
-            axis_coords[k] = PyArray_DATA(seqitem);
+            axis_coords[k] = (int *)PyArray_DATA(seqitem);
             get_time_axis_num_(&(axis_nums[k]), &(axis_starts[k]), &(axis_ends[k]),
                                axis_names[k], &calendar_type, axis_coords[k], &(num_coords[k]),
                                errmsg, &len_errmsg, strlen(axis_names[k]), 2048);
@@ -1124,6 +1140,332 @@ static PyObject *pyferretPutData(PyObject *self, PyObject *args, PyObject *kwds)
     return Py_None;
 }
 
+static char pyferretGetStrDataDocstring[] =
+    "Returns the String data array described in the argument. \n"
+    "\n"
+    "Required arguments: \n"
+    "    name = <string>: the name of the String data array to return \n"
+    "\n"
+    "Optional arguments: \n"
+    "    (none) \n"
+    "\n"
+    "Returns: \n"
+    "    A tuple containing: \n"
+    "        a NumPy String ndarray containing a copy of the numeric data requested, \n"
+    "        a NumPy String ndarray containing the bad-data-flag value for the data, \n"
+    "        a tuple of six integers giving the AXISTYPE codes of the axes, \n"
+    "        a tuple of six strings giving the names of the axes, \n"
+    "        a tuple of six strings giving the units of a non-calendar-time data axis, or \n"
+    "                                       the CALTYPE_ calendar name of a calendar-time axis, \n"
+    "        a tuple of six ndarrays giving the coordinates for the data axes \n"
+    "            (ndarray of N doubles for non-calendar-time, non-normal axes, \n"
+    "             ndarray of (N,6) integers for calendar-time axes, or \n"
+    "             None for normal axes) \n"
+    "\n"
+    "Raises: \n"
+    "    ValueError if the data name is invalid \n"
+    "    MemoryError if Ferret has not been started or has been stopped \n";
+
+static PyObject *pyferretGetStrData(PyObject *self, PyObject *args, PyObject *kwds)
+{
+    static char   *argNames[] = {"name", NULL};
+    char          *name;
+    int            lendataname;
+    char           dataname[1024];
+    int            arraystart;
+    int            memlo[MAX_FERRET_NDIM], memhi[MAX_FERRET_NDIM];
+    int            steplo[MAX_FERRET_NDIM], stephi[MAX_FERRET_NDIM], incr[MAX_FERRET_NDIM];
+    AXISTYPE       axis_types[MAX_FERRET_NDIM];
+    char           errmsg[2112];
+    int            lenerrmsg;
+    int            i, j, k, l, m, n, q;
+    npy_intp       shape[MAX_FERRET_NDIM];
+    npy_intp       new_shape[2];
+    int            strides[MAX_FERRET_NDIM];
+    PyObject      *data_ndarray;
+    void         **ferdata;
+    char          *strptr;
+    int            maxstrlen;
+    int            thisstrlen;
+    PyArray_Descr *strarraydescript;
+    char          *npydata;
+    PyObject      *badval_ndarray;
+    PyObject      *axis_coords[MAX_FERRET_NDIM];
+    char           axis_units[MAX_FERRET_NDIM][64];
+    char           axis_names[MAX_FERRET_NDIM][64];
+    CALTYPE        calendar_type;
+
+    /* If not initialized, raise a MemoryError */
+    if ( ! ferretInitialized ) {
+        PyErr_SetString(PyExc_MemoryError, "Ferret not started");
+        return NULL;
+    }
+
+    /* Parse the arguments, checking if an Exception was raised */
+    if ( ! PyArg_ParseTupleAndKeywords(args, kwds, "s", argNames, &name) )
+        return NULL;
+
+    /* Make a copy of dataname just to be sure it isn't altered */
+    lendataname = strlen(name);
+    if ( lendataname > 1020 ) {
+        PyErr_SetString(PyExc_ValueError, "name too long");
+        return NULL;
+    }
+    strcpy(dataname, name);
+
+    /*
+     * Retrieve the memory parameters describing the data array requested.
+     * Assumes Unix standard for passing strings to Fortran (appended array lengths).
+     */
+    get_str_data_array_params_(dataname, &lendataname, ferMemory, &arraystart, 
+                               memlo, memhi, steplo, stephi, incr, axis_types,
+                               errmsg, &lenerrmsg, 1024, 64, 2112);
+    if ( lenerrmsg > 0 ) {
+        errmsg[lenerrmsg] = '\0';
+        PyErr_SetString(PyExc_ValueError, errmsg);
+        return NULL;
+    }
+
+    /* Get the shape of the array */
+    for (k = 0; k < MAX_FERRET_NDIM; k++)
+        shape[k] = (npy_intp) ((stephi[k] - steplo[k] + incr[k]) / (incr[k]));
+
+    /* Get the strides through the memory (as a double *) */
+    strides[0] = 1;
+    for (k = 1; k < MAX_FERRET_NDIM; k++)
+        strides[k] = strides[k-1] * (memhi[k-1] - memlo[k-1] + 1);
+
+    /* Get the actual starting point in the array */
+    for (k = 0; k < MAX_FERRET_NDIM; k++)
+        arraystart += (strides[k]) * (steplo[k] - memlo[k]);
+
+    /* Convert to strides through places in memory to be read */
+    for (k = 0; k < MAX_FERRET_NDIM; k++)
+        strides[k] *= incr[k];
+
+    /* 
+     * Note: for string arrays, each "double" is a pointer 
+     * to allocated memory containing a null-terminated string;
+     * or null for missing strings.
+     */
+
+    /* Get the maximum string length of all the strings in this array */
+    ferdata = (void **) (ferMemory + arraystart);
+    /* Use STRING_MISSING_VALUE for missing strings */
+    maxstrlen = (int)(strlen(STRING_MISSING_VALUE) + 1);
+    for (n = 0; n < (int)(shape[5]); n++) {
+      for (m = 0; m < (int)(shape[4]); m++) {
+        for (l = 0; l < (int)(shape[3]); l++) {
+          for (k = 0; k < (int)(shape[2]); k++) {
+            for (j = 0; j < (int)(shape[1]); j++) {
+              for (i = 0; i < (int)(shape[0]); i++) {
+                strptr = (char *) ferdata[ i * strides[0] + 
+                                           j * strides[1] + 
+                                           k * strides[2] + 
+                                           l * strides[3] +
+                                           m * strides[4] +
+                                           n * strides[5] ];
+                if ( strptr != NULL ) {
+                  /* add one so always null-terminated */
+                  thisstrlen = (int)(strlen(strptr) + 1);
+                  if ( maxstrlen < thisstrlen ) {
+                    maxstrlen = thisstrlen;
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+
+    /* Create a new NumPy String ndarray (Fortran ordering) with the same shape */
+    strarraydescript = PyArray_DescrNewFromType(NPY_STRING);
+    strarraydescript->elsize = maxstrlen;
+    data_ndarray = PyArray_Empty(MAX_FERRET_NDIM, shape, strarraydescript, 1);
+    if ( data_ndarray == NULL ) {
+        return NULL;
+    }
+    /* PyArray_Empty steals the reference to strarraydescript so do not free or reuse */
+
+    /*
+     * Assign the data in the new ndarray.
+     * Note: if MAX_FERRET_NDIM changes, this needs editing.
+     */
+    npydata = (char *)PyArray_DATA(data_ndarray);
+    q = 0;
+    for (n = 0; n < (int)(shape[5]); n++) {
+      for (m = 0; m < (int)(shape[4]); m++) {
+        for (l = 0; l < (int)(shape[3]); l++) {
+          for (k = 0; k < (int)(shape[2]); k++) {
+            for (j = 0; j < (int)(shape[1]); j++) {
+              for (i = 0; i < (int)(shape[0]); i++) {
+                strptr = (char *) ferdata[ i * strides[0] + 
+                                           j * strides[1] + 
+                                           k * strides[2] + 
+                                           l * strides[3] +
+                                           m * strides[4] +
+                                           n * strides[5] ];
+                if ( strptr == NULL ) {
+                   strptr = STRING_MISSING_VALUE;
+                }
+                /* because of +1 to strlen, these will always be null-terminated */
+                strncpy(&(npydata[q]), strptr, maxstrlen);
+                q += maxstrlen;
+              }
+            }
+          }
+        }
+      }
+    }
+
+    /* Create a new NumPy String ndarray with the bad-data-flag value */
+    new_shape[0] = 1;
+    strarraydescript = PyArray_DescrNewFromType(NPY_STRING);
+    strarraydescript->elsize = maxstrlen;
+    badval_ndarray = PyArray_Empty(1, new_shape, strarraydescript, 0);
+    if ( badval_ndarray == NULL ) {
+       Py_DECREF(data_ndarray);
+       return NULL;
+    }
+    /* PyArray_Empty steals the reference to strarraydescript so do not free or reuse */
+    npydata = (char *)PyArray_DATA(badval_ndarray);
+    strncpy(npydata, STRING_MISSING_VALUE, maxstrlen);
+
+    /* Create the axis coordinates array objects */
+    for (k = 0; k < MAX_FERRET_NDIM; k++) {
+        switch( axis_types[k] ) {
+        case AXISTYPE_LONGITUDE:
+        case AXISTYPE_LATITUDE:
+        case AXISTYPE_LEVEL:
+        case AXISTYPE_CUSTOM:
+        case AXISTYPE_ABSTRACT:
+            /* array of doubles, possibly with a units string */
+            axis_coords[k] = PyArray_SimpleNew(1, &(shape[k]), NPY_DOUBLE);
+            if ( axis_coords[k] == NULL ) {
+                while ( k > 0 ) {
+                    k--;
+                    Py_DECREF(axis_coords[k]);
+                }
+                Py_DECREF(badval_ndarray);
+		Py_DECREF(data_ndarray);
+                return NULL;
+            }
+            /* get the coordinates and the units string */
+            q = k+1;
+            j = (int) shape[k];
+            get_data_array_coords_((double *)PyArray_DATA(axis_coords[k]), axis_units[k],
+                                   axis_names[k], &q, &j, errmsg, &lenerrmsg, 64, 64, 2112);
+            if ( lenerrmsg > 0 ) {
+                errmsg[lenerrmsg] = '\0';
+                PyErr_SetString(PyExc_ValueError, errmsg);
+                Py_DECREF(axis_coords[k]);
+                while ( k > 0 ) {
+                    k--;
+                    Py_DECREF(axis_coords[k]);
+                }
+                Py_DECREF(badval_ndarray);
+                Py_DECREF(data_ndarray);
+                return NULL;
+            }
+            break;
+        case AXISTYPE_TIME:
+            /* array of 6-tuples of integers in C order, so: [N][6] in C or (6,N) in Fortran */
+            new_shape[0] = shape[k];
+            new_shape[1] = 6;
+            axis_coords[k] = PyArray_SimpleNew(2, new_shape, NPY_INT);
+            if ( axis_coords[k] == NULL ) {
+                while ( k > 0 ) {
+                    k--;
+                    Py_DECREF(axis_coords[k]);
+                }
+                Py_DECREF(badval_ndarray);
+                Py_DECREF(data_ndarray);
+                return NULL;
+            }
+            /* get the time coordinate integers */
+            q = k+1;
+            j = (int) shape[k];
+            get_data_array_time_coords_((int (*)[6])PyArray_DATA(axis_coords[k]), &calendar_type, axis_names[k],
+                                        &q, &j, errmsg, &lenerrmsg, 64, 2112);
+            if ( lenerrmsg > 0 ) {
+                errmsg[lenerrmsg] = '\0';
+                PyErr_SetString(PyExc_ValueError, errmsg);
+                Py_DECREF(axis_coords[k]);
+                while ( k > 0 ) {
+                    k--;
+                    Py_DECREF(axis_coords[k]);
+                }
+                Py_DECREF(badval_ndarray);
+                Py_DECREF(data_ndarray);
+                return NULL;
+            }
+            /* set the axis units to the name of the calendar */
+            switch( calendar_type ) {
+            case CALTYPE_NONE:
+                strcpy(axis_units[k], CALTYPE_NONE_STR);
+                break;
+            case CALTYPE_360DAY:
+                strcpy(axis_units[k], CALTYPE_360DAY_STR);
+                break;
+            case CALTYPE_NOLEAP:
+                strcpy(axis_units[k], CALTYPE_NOLEAP_STR);
+                break;
+            case CALTYPE_GREGORIAN:
+                strcpy(axis_units[k], CALTYPE_GREGORIAN_STR);
+                break;
+            case CALTYPE_JULIAN:
+                strcpy(axis_units[k], CALTYPE_JULIAN_STR);
+                break;
+            case CALTYPE_ALLLEAP:
+                strcpy(axis_units[k], CALTYPE_ALLLEAP_STR);
+                break;
+            default:
+                sprintf(errmsg, "Unexpected calendar type of %d", calendar_type);
+                PyErr_SetString(PyExc_ValueError, errmsg);
+                Py_DECREF(axis_coords[k]);
+                while ( k > 0 ) {
+                    k--;
+                    Py_DECREF(axis_coords[k]);
+                }
+                Py_DECREF(badval_ndarray);
+                Py_DECREF(data_ndarray);
+                return NULL;
+            }
+            break;
+        case AXISTYPE_NORMAL:
+            /* axis normal to the results - no coordinates */
+            Py_INCREF(Py_None);
+            axis_coords[k] = Py_None;
+            axis_units[k][0] = '\0';
+            axis_names[k][0] = '\0';
+            break;
+        default:
+            sprintf(errmsg, "Unexpected axis type of %d", axis_types[k]);
+            PyErr_SetString(PyExc_RuntimeError, errmsg);
+            while ( k > 0 ) {
+                k--;
+                Py_DECREF(axis_coords[k]);
+            }
+            Py_DECREF(badval_ndarray);
+            Py_DECREF(data_ndarray);
+            return NULL;
+        }
+    }
+
+    /*
+     * Return a tuple (stealing references for PyObjects) of data_ndarray,
+     * axis_types, axis_names, axis_units, and axis_coords.
+     * Note: if MAX_FERRET_NDIM changes, this needs editing.
+     */
+    return Py_BuildValue("NN(iiiiii)(ssssss)(ssssss)(NNNNNN)", data_ndarray, badval_ndarray,
+              axis_types[0], axis_types[1], axis_types[2], axis_types[3], axis_types[4], axis_types[5],
+              axis_names[0], axis_names[1], axis_names[2], axis_names[3], axis_names[4], axis_names[5],
+              axis_units[0], axis_units[1], axis_units[2], axis_units[3], axis_units[4], axis_units[5],
+              axis_coords[0], axis_coords[1], axis_coords[2], axis_coords[3], axis_coords[4], axis_coords[5]);
+}
+
+
 static char pyferretStopDocstring[] =
     "Runs a series of Ferret commands to return Ferret to \n"
     "its default state, then shuts down and releases all \n"
@@ -1776,6 +2118,7 @@ static struct PyMethodDef pyferretMethods[] = {
     {"_start", (PyCFunction) pyferretStart, METH_VARARGS | METH_KEYWORDS, pyferretStartDocstring},
     {"_run", (PyCFunction) pyferretRunCommand, METH_VARARGS | METH_KEYWORDS, pyferretRunCommandDocstring},
     {"_get", (PyCFunction) pyferretGetData, METH_VARARGS | METH_KEYWORDS, pyferretGetDataDocstring},
+    {"_getstrdata", (PyCFunction) pyferretGetStrData, METH_VARARGS | METH_KEYWORDS, pyferretGetStrDataDocstring},
     {"_put", (PyCFunction) pyferretPutData, METH_VARARGS | METH_KEYWORDS, pyferretPutDataDocstring},
     {"_resize", (PyCFunction) pyferretResizeMemory, METH_VARARGS | METH_KEYWORDS, pyferretResizeMemoryDocstring},
     {"_stop", (PyCFunction) pyferretStop, METH_NOARGS, pyferretStopDocstring},
@@ -1846,9 +2189,20 @@ PyMODINIT_FUNC initlibpyferret(void)
     PyModule_AddIntConstant(mod, "TIMEARRAY_MINUTEINDEX", TIMEARRAY_MINUTEINDEX);
     PyModule_AddIntConstant(mod, "TIMEARRAY_SECONDINDEX", TIMEARRAY_SECONDINDEX);
 
+    /* Parameters for the calendar types */
+    PyModule_AddStringConstant(mod, "CALTYPE_360DAY", CALTYPE_360DAY_STR);
+    PyModule_AddStringConstant(mod, "CALTYPE_NOLEAP", CALTYPE_NOLEAP_STR);
+    PyModule_AddStringConstant(mod, "CALTYPE_GREGORIAN", CALTYPE_GREGORIAN_STR);
+    PyModule_AddStringConstant(mod, "CALTYPE_JULIAN", CALTYPE_JULIAN_STR);
+    PyModule_AddStringConstant(mod, "CALTYPE_ALLLEAP", CALTYPE_ALLLEAP_STR);
+    PyModule_AddStringConstant(mod, "CALTYPE_NONE", CALTYPE_NONE_STR);
+
     /* Parameter giving the maximum number of axis allowed in Ferret */
     PyModule_AddIntConstant(mod, "MAX_FERRET_NDIM", MAX_FERRET_NDIM);
 
+    /* Parameter giving the String used as the missing value for String arrays */
+    PyModule_AddStringConstant(mod, "STRING_MISSING_VALUE", STRING_MISSING_VALUE);
+
     /* Private parameter return value from libpyferret._run indicating the program should shut down */
     PyModule_AddIntConstant(mod, "_FERR_EXIT_PROGRAM", FERR_EXIT_PROGRAM);
 }
diff --git a/pyfermod/pyefmethods.py b/pyfermod/pyefmethods.py
new file mode 100644
index 0000000..3b6472d
--- /dev/null
+++ b/pyfermod/pyefmethods.py
@@ -0,0 +1,346 @@
+"""
+Methods in pyferret to assist in the writing of Ferret external functions 
+written in Python.
+"""
+
+import libpyferret
+
+def ferret_pyfunc():
+    """
+    A dummy function (which just returns this help message) used to document the
+    requirements of python modules used as Ferret external functions (using the
+    Ferret command: DEFINE PYFUNC [/NAME=<alias>] <module.name>).  Two methods,
+    ferret_init and ferret_compute, must be provided by such a module:
+
+
+    ferret_init(efid)
+        Arguments:
+            efid - Ferret's integer ID of this external function
+
+        Returns a dictionary defining the following keys:
+            "numargs":      number of input arguments [1 - 9; required]
+            "descript":     string description of the function [required]
+            "restype":      one of FLOAT_ARRAY or STRING_ARRAY, indicating whether
+                            the result is an array of floating-point values or strings
+                            [optional, default FLOAT_ARRAY]
+            "resstrlen":    if the result type is an array of strings, this specifies
+                            the (maximum) length of the strings in the array
+                            [optional, default: 128]
+            "axes":         6-tuple (X,Y,Z,T,E,F) of result grid axis defining values,
+                            which are:
+                                    AXIS_ABSTRACT:        indexed, ferret_result_limits
+                                                          called to define the axis,
+                                    AXIS_CUSTOM:          ferret_custom_axes called to
+                                                          define the axis,
+                                    AXIS_DOES_NOT_EXIST:  does not exist in (normal to)
+                                                          the results grid,
+                                    AXIS_IMPLIED_BY_ARGS: same as the corresponding axis
+                                                          in one or more arguments,
+                                    AXIS_REDUCED:         reduced to a single point
+                            [optional; default: AXIS_IMPLIED_BY_ARGS for each axis]
+            "piecemeal":    6-tuple (X,Y,Z,T,E,F) of True or False indicating if it is
+                            acceptable to break up the calculation, if needed, along the
+                            corresponding axis [optional; default: False for each axis]
+            "argnames":     N-tuple of names for the input arguments
+                            [optional; default: (A, B, ...)]
+            "argdescripts": N-tuple of descriptions for the input arguments
+                            [optional; default: no descriptions]
+            "argtypes":     N-tuple of FLOAT_ARRAY, FLOAT_ONEVAL, STRING_ARRAY, or
+                            STRING_ONEVAL, indicating whether the input argument is
+                            an array of floating-point values, a single floating point
+                            value, an array of strings, or a single string value.
+                            [optional; default: FLOAT_ARRAY for every argument]
+            "influences":   N-tuple of 6-tuples of booleans indicating whether the
+                            corresponding input argument's (X,Y,Z,T,E,F) axis influences
+                            the result grid's (X,Y,Z,T,E,F) axis.  [optional; default,
+                            and when None is given for a 6-tuple: True for every axis]
+                      NOTE: If the "influences" value for an axis is True (which is the
+                            default), the "axes" value for this axis must be either
+                            AXIS_IMPLIED_BY_ARGS (the default) or AXIS_REDUCED.
+            "extends":      N-tuple of 6-tuples of pairs of integers.  The n-th tuple,
+                            if not None, gives the (X,Y,Z,T,E,F) extension pairs for the
+                            n-th argument.  An extension pair, if not None, is the
+                            number of points extended in the (low,high) indices for
+                            that axis of that argument beyond the implied axis of the
+                            result grid.  Thus,
+                                    (None, (None, None, None, (-1,1)), None, None, None)
+                            means the T axis of the second argument is extended by two
+                            points (low dimension lowered by 1, high dimension raised
+                            by 1) beyond the implied axis of the result.
+                            [optional; default: no extensions assigned]
+                      NOTE: If an "extends" pair is given for an axis, the "axes"
+                            value for this axis must be AXIS_IMPLIED_BY_ARGS
+                            (the default).  The "extends" pair more precisely means
+                            the axis in the argument, exactly as provided in the
+                            Ferret command, is larger by the indicated amount from
+                            the implied result grid axis.
+
+        If an exception is raised, Ferret is notified that an error occurred using
+        the message of the exception.
+
+
+    ferret_compute(efid, result_array, result_bdf, input_arrays, input_bdfs)
+        Arguments:
+            efid         - Ferret's integer ID of this external function
+            result_array - a writeable NumPy float64 ndarray of six dimensions (X,Y,Z,T,E,F)
+                           to contain the results of this computation.  The shape and
+                           strides of this array has been configured so that only (and
+                           all) the data points that should be assigned are accessible.
+            result_bdf   - a NumPy ndarray of one dimension containing the bad-data-flag
+                           value for the result array.
+            input_arrays - tuple of read-only NumPy float64 ndarrays of six dimensions
+                           (X,Y,Z,T,E,F) containing the given input data.  The shape and
+                           strides of these array have been configured so that only (and
+                           all) the data points that should be accessible are accessible.
+            input_bdfs   - a NumPy ndarray of one dimension containing
+                           the bad-data-flag values for each of the input arrays.
+
+        Any return value is ignored.
+
+        If an exception is raised, Ferret is notified that an error occurred using
+        the message of the exception.
+
+
+    If the dictionary returned from ferret_init assigned a result axis as AXIS_ABSTRACT,
+    then the ferret_result_limits method must also be defined:
+
+
+    ferret_result_limits(efid)
+        Arguments:
+            efid - Ferret's integer ID of this external function
+
+        Returns a (X,Y,Z,T,E,F) 6-tuple of either None or (low, high) pairs of integers.
+        If an axis was not designated as AXIS_ABSTRACT, None should be given for that axis.
+        If an axis was designated as AXIS_ABSTRACT, a (low, high) pair of integers should
+        be given, and are used as the low and high Ferret indices for that axis.
+        [The indices of the NumPy ndarray to be assigned will be from 0 until (high-low)].
+
+        If an exception is raised, Ferret is notified that an error occurred using
+        the message of the exception.
+
+
+    If the dictionary returned from ferret_init assigned a result axis as AXIS_CUSTOM,
+    then the ferret_custom_axes method must also be defined:
+
+
+    ferret_custom_axes(efid)
+        Arguments:
+            efid - Ferret's integer ID of this external function
+
+        Returns a (X,Y,Z,T,E,F) 6-tuple of either None or a (low, high, delta, unit_name,
+        is_modulo) tuple.  If an axis was not designated as AXIS_CUSTOM, None should be
+        given for that axis.  If an axis was designated as AXIS_CUSTOM, a (low, high,
+        delta, unit_name, is_modulo) tuple should be given where low and high are the
+        "world" coordinates (floating point) limits for the axis, delta is the step
+        increments in "world" coordinates, unit_name is a string used in describing the
+        "world" coordinates, and is_modulo is either True or False, indicating if this
+        is a modulo ("periodic" or "wrapping") coordinate system.
+
+        If an exception is raised, Ferret is notified that an error occurred using
+        the message of the exception.
+
+    """
+    return ferret_pyfunc.__doc__
+
+
+def get_axis_coordinates(efid, arg, axis):
+    """
+    Returns the "world" coordinates for an axis of an argument to an external function
+
+    Arguments:
+        efid: the Ferret id of the external function
+        arg: the index (zero based) of the argument (can use ARG1, ARG2, ..., ARG9)
+        axis: the index (zero based) of the axis (can use X_AXIS, Y_AXIS, Z_AXIS,
+                                                          T_AXIS, E_AXIS, F_AXIS)
+    Returns:
+        a NumPy float64 ndarray containing the "world" coordinates,
+        or None if the values cannot be determined at the time this was called
+    Raises:
+        ValueError if efid, arg, or axis is invalid
+    """
+    # check the efid
+    try:
+        int_id = int(efid)
+        if int_id < 0:
+            raise ValueError
+    except:
+        raise ValueError("efid must be a positive integer value")
+    # check the arg index
+    try:
+        int_arg = int(arg)
+        if (int_arg < libpyferret.ARG1) or (int_arg > libpyferret.ARG9):
+            raise ValueError
+    except:
+        raise ValueError("arg must be an integer value in [%d,%d]" % (libpyferret.ARG1,libpyferret.ARG9))
+    # check the axis index
+    try:
+        int_axis = int(axis)
+        if (int_axis < libpyferret.X_AXIS) or (int_axis > libpyferret.F_AXIS):
+            raise ValueError
+    except:
+        raise ValueError("axis must be an integer value in [%d,%d]" % (libpyferret.X_AXIS,libpyferret.F_AXIS))
+    # make the actual call
+    return libpyferret._get_axis_coordinates(int_id, int_arg, int_axis)
+
+
+def get_axis_box_sizes(efid, arg, axis):
+    """
+    Returns the "box sizes", in "world" coordinate units,
+    for an axis of an argument to an external function
+
+    Arguments:
+        efid: the Ferret id of the external function
+        arg: the index (zero based) of the argument (can use ARG1, ARG2, ..., ARG9)
+        axis: the index (zero based) of the axis (can use X_AXIS, Y_AXIS, Z_AXIS,
+                                                          T_AXIS, E_AXIS, F_AXIS)
+    Returns:
+        a NumPy float64 ndarray containing the "box sizes",
+        or None if the values cannot be determined at the time this was called
+    Raises:
+        ValueError if efid, arg, or axis is invalid
+    """
+    # check the efid
+    try:
+        int_id = int(efid)
+        if int_id < 0:
+            raise ValueError
+    except:
+        raise ValueError("efid must be a positive integer value")
+    # check the arg index
+    try:
+        int_arg = int(arg)
+        if (int_arg < libpyferret.ARG1) or (int_arg > libpyferret.ARG9):
+            raise ValueError
+    except:
+        raise ValueError("arg must be an integer value in [%d,%d]" % (libpyferret.ARG1,libpyferret.ARG9))
+    # check the axis index
+    try:
+        int_axis = int(axis)
+        if (int_axis < libpyferret.X_AXIS) or (int_axis > libpyferret.F_AXIS):
+            raise ValueError
+    except:
+        raise ValueError("axis must be an integer value in [%d,%d]" % (libpyferret.X_AXIS,libpyferret.F_AXIS))
+    # make the actual call
+    return libpyferret._get_axis_box_sizes(int_id, int_arg, int_axis)
+
+
+def get_axis_box_limits(efid, arg, axis):
+    """
+    Returns the "box limits", in "world" coordinate units,
+    for an axis of an argument to an external function
+
+    Arguments:
+        efid: the Ferret id of the external function
+        arg: the index (zero based) of the argument (can use ARG1, ARG2, ..., ARG9)
+        axis: the index (zero based) of the axis (can use X_AXIS, Y_AXIS, Z_AXIS,
+                                                          T_AXIS, E_AXIS, F_AXIS)
+    Returns:
+        a tuple of two NumPy float64 ndarrays containing the low and high "box limits",
+        or None if the values cannot be determined at the time this was called
+    Raises:
+        ValueError if efid, arg, or axis is invalid
+    """
+    # check the efid
+    try:
+        int_id = int(efid)
+        if int_id < 0:
+            raise ValueError
+    except:
+        raise ValueError("efid must be a positive integer value")
+    # check the arg index
+    try:
+        int_arg = int(arg)
+        if (int_arg < libpyferret.ARG1) or (int_arg > libpyferret.ARG9):
+            raise ValueError
+    except:
+        raise ValueError("arg must be an integer value in [%d,%d]" % (libpyferret.ARG1,libpyferret.ARG9))
+    # check the axis index
+    try:
+        int_axis = int(axis)
+        if (int_axis < libpyferret.X_AXIS) or (int_axis > libpyferret.F_AXIS):
+            raise ValueError
+    except:
+        raise ValueError("axis must be an integer value in [%d,%d]" % (libpyferret.X_AXIS,libpyferret.F_AXIS))
+    # make the actual call
+    return libpyferret._get_axis_box_limits(int_id, int_arg, int_axis)
+
+
+def get_axis_info(efid, arg, axis):
+    """
+    Returns information about the axis of an argument to an external function
+
+    Arguments:
+        efid: the Ferret id of the external function
+        arg: the index (zero based) of the argument (can use ARG1, ARG2, ..., ARG9)
+        axis: the index (zero based) of the axis (can use X_AXIS, Y_AXIS, Z_AXIS,
+                                                          T_AXIS, E_AXIS, F_AXIS)
+    Returns:
+        a dictionary defining the following keys:
+            "name": name string for the axis coordinate
+            "unit": name string for the axis unit
+            "backwards": boolean - reversed axis?
+            "modulo": float - modulo length of axis, or 0.0 if not modulo
+            "regular": boolean - evenly spaced axis?
+            "size": number of coordinates on this axis, or -1 if the value
+                    cannot be determined at the time this was called
+    Raises:
+        ValueError if efid, arg, or axis is invalid
+    """
+    # check the efid
+    try:
+        int_id = int(efid)
+        if int_id < 0:
+            raise ValueError
+    except:
+        raise ValueError("efid must be a positive integer value")
+    # check the arg index
+    try:
+        int_arg = int(arg)
+        if (int_arg < libpyferret.ARG1) or (int_arg > libpyferret.ARG9):
+            raise ValueError
+    except:
+        raise ValueError("arg must be an integer value in [%d,%d]" % (libpyferret.ARG1,libpyferret.ARG9))
+    # check the axis index
+    try:
+        int_axis = int(axis)
+        if (int_axis < libpyferret.X_AXIS) or (int_axis > libpyferret.F_AXIS):
+            raise ValueError
+    except:
+        raise ValueError("axis must be an integer value in [%d,%d]" % (libpyferret.X_AXIS,libpyferret.F_AXIS))
+    # make the actual call
+    return libpyferret._get_axis_info(int_id, int_arg, int_axis)
+
+
+def get_arg_one_val(efid, arg):
+    """
+    Returns the value of the indicated FLOAT_ONEVAL or STRING_ONEVAL argument.
+    Can be called from the ferret_result_limits or ferret_custom_axes method
+    of an external function.
+
+    Arguments:
+        efid: the Ferret id of the external function
+        arg: the index (zero based) of the argument (can use ARG1, ARG2, ..., ARG9)
+    Returns:
+        the value of the argument, either as a float (if a FLOAT_ONEVAL)
+        or a string (if STRING_ONEVAL)
+    Raises:
+        ValueError if efid or arg is invalid, or if the argument type is not
+        FLOAT_ONEVAL or STRING_ONEVAL
+    """
+    # check the efid
+    try:
+        int_id = int(efid)
+        if int_id < 0:
+            raise ValueError
+    except:
+        raise ValueError("efid must be a positive integer value")
+    # check the arg index
+    try:
+        int_arg = int(arg)
+        if (int_arg < libpyferret.ARG1) or (int_arg > libpyferret.ARG9):
+            raise ValueError
+    except:
+        raise ValueError("arg must be an integer value in [%d,%d]" % (libpyferret.ARG1,libpyferret.ARG9))
+    # make the actual call
+    return libpyferret._get_arg_one_val(int_id, int_arg)
+
diff --git a/pyfermod/pyferret.h b/pyfermod/pyferret.h
index 770531c..2332e90 100644
--- a/pyfermod/pyferret.h
+++ b/pyfermod/pyferret.h
@@ -48,6 +48,13 @@ typedef enum CALTYPE_ {
     CALTYPE_ALLLEAP = 60000,
 } CALTYPE;
 
+#define CALTYPE_360DAY_STR "CALTYPE_360DAY"
+#define CALTYPE_NOLEAP_STR "CALTYPE_NOLEAP"
+#define CALTYPE_GREGORIAN_STR "CALTYPE_GREGORIAN"
+#define CALTYPE_JULIAN_STR "CALTYPE_JULIAN"
+#define CALTYPE_ALLLEAP_STR "CALTYPE_ALLLEAP"
+#define CALTYPE_NONE_STR "CALTYPE_NONE"
+
 /* Prototypes for library C functions */
 void set_fer_memory(double *mem, size_t mem_size);
 void set_ppl_memory(float *mem, int mem_size);
@@ -79,6 +86,11 @@ void get_data_array_params_(char dataname[], int *lendataname, double *memory, i
                             int incr[MAX_FERRET_NDIM], char dataunit[], int *lendataunit,
                             AXISTYPE axtypes[MAX_FERRET_NDIM], double *badval, char errmsg[],
                             int *lenerrmsg, int maxlen_dataname, int maxlen_dataunit, int maxlen_errmsg);
+void get_str_data_array_params_(char dataname[], int *lendataname, double *memory, int *arraystart,
+                            int memlo[MAX_FERRET_NDIM], int memhi[MAX_FERRET_NDIM],
+                            int steplo[MAX_FERRET_NDIM], int stephi[MAX_FERRET_NDIM],
+                            int incr[MAX_FERRET_NDIM], AXISTYPE axtypes[MAX_FERRET_NDIM], char errmsg[],
+                            int *lenerrmsg, int maxlen_dataname, int maxlen_dataunit, int maxlen_errmsg);
 void get_data_array_coords_(double axiscoords[], char axisunit[], char axisname[],
                             int *axisnum, int *numcoords, char errmsg[], int *lenerrmsg,
                             int maxlen_axisunit, int maxlen_axisname, int maxlen_errmsg);
@@ -97,6 +109,9 @@ void proclaim_c_(int *ttoutLun, char *leader, int *quiet);
 void set_one_cmnd_mode_(int *one_cmnd_mode_int);
 void turnoff_verify_(int *status);
 
+/* Missing value for string arrays in Python - must be null-terminated string */
+#define STRING_MISSING_VALUE "\004\000"
+
 /* Functions for Python-backed external functions */
 
 #define INIT_METHOD_NAME "ferret_init"
diff --git a/setup.py b/setup.py
index ea56443..4ad7525 100644
--- a/setup.py
+++ b/setup.py
@@ -3,6 +3,14 @@ import distutils.sysconfig
 import sys
 import os
 import os.path
+import re
+
+# Get BUILDTYPE for checking if this is intel-mac
+buildtype = os.getenv("BUILDTYPE")
+if buildtype:
+    buildtype = buildtype.strip()
+if not buildtype:
+    raise ValueError("Environment variable BUILDTYPE is not defined")
 
 # (Non-standard) Directories containing .h include files
 incdir_list = [ "pyfermod",
@@ -17,21 +25,25 @@ if netcdf4_libdir:
     netcdf4_libdir = netcdf4_libdir.strip()
 if not netcdf4_libdir:
     raise ValueError("Environment variable NETCDF4_LIBDIR is not defined")
+
 # HDF5_LIBDIR is only given if the HDF5 and NetCDF libraries are to be statically linked in
 hdf5_libdir = os.getenv("HDF5_LIBDIR")
 if hdf5_libdir:
     hdf5_libdir = hdf5_libdir.strip()
+
 # CAIRO_LIBDIR is only given if the cairo library is to be statically linked in
 cairo_libdir = os.getenv("CAIRO_LIBDIR")
 if cairo_libdir:
     cairo_libdir = cairo_libdir.strip()
+
 # PIXMAN_LIBDIR is only given if the pixman-1 library is to be statically linked in
 pixman_libdir = os.getenv("PIXMAN_LIBDIR")
 if pixman_libdir:
     pixman_libdir = pixman_libdir.strip()
+
 # The location of libpython2.x.so, in case it is not in a standard location
-python_libdir = os.path.split(
-                   distutils.sysconfig.get_python_lib(standard_lib=True))[0]
+python_libdir = os.path.split( distutils.sysconfig.get_python_lib(standard_lib=True) )[0]
+
 # The list of additional directories to examine for libraries
 libdir_list = [ "lib", netcdf4_libdir, ]
 if hdf5_libdir:
@@ -42,19 +54,25 @@ if pixman_libdir:
     libdir_list.append(pixman_libdir)
 libdir_list.append(python_libdir)
 
+# Non-standard library location on some systems for X11 (such as XQuartz on Mac OSX)
+if buildtype == "intel-mac":
+    libdir_list.append("/opt/X11/lib")
+
 # Get the list of ferret static libraries
 # Stripping off the "lib" prefix and the ".a" suffix
 fer_lib_list = [ ]
 for libname in os.listdir("lib"):
     if (libname[:3] == "lib") and (libname[-2:] == ".a"):
         fer_lib_list.append(libname[3:-2])
+
 # Create the list of libraries to link
-# fer_lib_list is included multiple times to resolve interdependencies
 lib_list = fer_lib_list[:]
-lib_list.extend(fer_lib_list)
-lib_list.extend(fer_lib_list)
-lib_list.extend(fer_lib_list)
-lib_list.extend(fer_lib_list)
+if buildtype != "intel-mac":
+    # fer_lib_list is included multiple times to resolve interdependencies
+    lib_list.extend(fer_lib_list)
+    lib_list.extend(fer_lib_list)
+    lib_list.extend(fer_lib_list)
+    lib_list.extend(fer_lib_list)
 # Add required system libraries to the list to link in
 lib_list.append("python%i.%i" % sys.version_info[:2])
 
@@ -65,17 +83,21 @@ lib_list.append("python%i.%i" % sys.version_info[:2])
 # lib_list.extend( ( "netcdff", "netcdf", "hdf5_hl", "hdf5",
 #                    "cairo", "gfortran", "curl", "z", "dl", "m", ) )
 
+addn_link_args = [ ]
 # Link to the appropriate netcdf libraries.
 # The hdf5 libraries are only used to resolve netcdf library function
 # calls when statically linking in the netcdf libraries.
 if hdf5_libdir:
     netcdff_lib = "-Wl," + os.path.join(netcdf4_libdir, "libnetcdff.a")
+    addn_link_args.append(netcdff_lib)
     netcdf_lib = "-Wl," + os.path.join(netcdf4_libdir, "libnetcdf.a")
+    addn_link_args.append(netcdf_lib)
     hdf5_hl_lib = "-Wl," + os.path.join(hdf5_libdir, "libhdf5_hl.a")
+    addn_link_args.append(hdf5_hl_lib)
     hdf5_lib = "-Wl," + os.path.join(hdf5_libdir, "libhdf5.a")
-    addn_link_args = [ netcdff_lib, netcdf_lib, hdf5_hl_lib, hdf5_lib, ]
+    addn_link_args.append(hdf5_lib)
 else:
-    addn_link_args = [ "-lnetcdff", "-lnetcdf", ]
+    addn_link_args.extend([ "-lnetcdff", "-lnetcdf" ])
 
 # The Pango text-rendering libraries
 addn_link_args.extend([ "-lpangocairo-1.0", "-lpango-1.0", "-lgobject-2.0" ])
@@ -89,7 +111,7 @@ if cairo_libdir:
     else:
         pixman_lib = "-lpixman-1"
     addn_link_args.append(pixman_lib);
-    addn_link_args.extend([ "-lfreetype", "-lfontconfig", "-lpng12", "-lXrender", "-lX11"])
+    addn_link_args.extend([ "-lfreetype", "-lfontconfig", "-lpng", "-lXrender", "-lX11"])
 else:
    addn_link_args.append("-lcairo")
 
@@ -104,7 +126,8 @@ addn_link_args.extend([ "-lgfortran", "-ldl", "-lm", "-fPIC", ])
 # Those in the object files (including those from pyfermod and 
 # fer/ef_utility) will still be visible.
 # addn_link_args.append("-Wl,-Bsymbolic-functions")
-addn_link_args.extend(["-Wl,-Bsymbolic", "-Wl,--exclude-libs -Wl,ALL"])
+if buildtype != "intel-mac":
+    addn_link_args.extend(["-Wl,-Bsymbolic", "-Wl,--exclude-libs -Wl,ALL"])
 
 # Get the list of C source files in pyfermod
 src_list = [ ]
@@ -125,10 +148,12 @@ for srcname in ( "fakes3.o", "ferret_dispatch.o", "ferret_query_f.o",
 for srcname in os.listdir(dirname):
     if (srcname[0] == 'x') and (srcname[-7:] == "_data.o"):
         addnobjs_list.append(os.path.join(dirname, srcname))
+
 # Duplicate objects in libraries to make them externally visible (for las external functions)
 dirname = os.path.join("fmt", "src")
 addnobjs_list.append(os.path.join(dirname, "tm_lenstr.o"));
 addnobjs_list.append(os.path.join(dirname, "tm_fmt.o"));
+addnobjs_list.append(os.path.join(dirname, "tm_lefint.o"));
 
 # Create the pyferret.libpyferret Extension
 ext_mods = [ Extension("pyferret.libpyferret", include_dirs = incdir_list,
@@ -138,9 +163,20 @@ ext_mods = [ Extension("pyferret.libpyferret", include_dirs = incdir_list,
                                                libraries = lib_list,
                                                extra_link_args = addn_link_args), ]
 
-pyferret_version = os.getenv("PYFERRET_VERSION")
-if pyferret_version == None:
-    raise ValueError("Environment variable PYFERRET_VERSION is not defined")
+pyferret_version = None
+xrev_name = os.path.join("fer", "dat", "xrevision_data.F")
+xrev_file = open(xrev_name)
+try:
+    pat = re.compile('\\s+DATA\\s+revision_level\\s*/\\s*(\\S+)\\s*/\\s*', flags=re.IGNORECASE)
+    for datlin in xrev_file:
+        mat = re.match(pat, datlin)
+        if mat:
+            pyferret_version = mat.group(1)
+            break
+finally:
+    xrev_file.close()
+if not pyferret_version:
+    raise ValueError('Unable to find the version number in ' + xrev_name)
 
 # Configure the setup
 setup(name = "pyferret",
@@ -158,7 +194,7 @@ setup(name = "pyferret",
       ext_modules = ext_mods)
 
 setup(name = "pipedviewer",
-      version = "1.3.0",
+      version = pyferret_version,
       description = "Graphics viewer controlled by a command pipe",
       long_description = "A graphics viewer application that receives its " \
                          "drawing and other commands primarily from another " \
@@ -176,7 +212,7 @@ setup(name = "pipedviewer",
       package_dir = { "pipedviewer":"pviewmod", })
 
 setup(name = "gcircle",
-      version = "0.0.1",
+      version = pyferret_version,
       description = "Module of functions involving great circles with " \
                     "points given in longitudes and latitudes (thus " \
                     "assuming a spheroid model of the earth).",
@@ -195,7 +231,7 @@ setup(name = "ferretmagic",
       description = "iPython notebook extension for PyFerret",
       long_description = "iPython notebook extension for PyFerret " \
                          "updated for this version of PyFerret.",
-      author = "Patrick Brockmann, Karl M. Smith",
+      author = "Patrick Brockmann",
       url = "https://github.com/PBrockmann/ipython-ferretmagic",
       license = "Public Domain",
       requires = [ "pyferret", ],
diff --git a/site_specific.mk b/site_specific.mk
index d00c2af..728ab77 100644
--- a/site_specific.mk
+++ b/site_specific.mk
@@ -3,20 +3,20 @@
 
 ## Full path name of the directory containing this file (the ferret root directory).
 ## Do not use $(shell pwd) since this is included in Makefiles in other directories.
-DIR_PREFIX = $(HOME)/pyferret-1.2.0-source
+DIR_PREFIX = $(HOME)/build/pyferret_dev
+# DIR_PREFIX = $(HOME)/pyferret_dev
 
 ## Machine type for which to build Ferret/PyFerret
 ##   x86_64-linux      for 64-bit RHEL
 ##   x86_64-linux-gnu  for 64-bit Ubuntu and many "free" Linux systems
 ##   i386-linux        for 32-bit RHEL
 ##   i386-linux-gnu    for 32-bit Ubuntu and many "free" Linux systems
-##   i386-apple-darwin for MacOS
+##   intel-mac         for Mac OSX
 BUILDTYPE = $(HOSTTYPE)
 # BUILDTYPE = x86_64-linux
 # BUILDTYPE = x86_64-linux-gnu
 # BUILDTYPE = i386-linux
 # BUILDTYPE = i386-linux-gnu
-# BUILDTYPE = i386-apple-darwin
 # BUILDTYPE = intel-mac
 
 ## Python 2.x executable to invoke for build and install.
@@ -28,7 +28,8 @@ PYTHONINCDIR := $(shell $(PYTHON_EXE) -c "import distutils.sysconfig; print dist
 ## Installation directory for built Ferret.  Using the "install"
 ## Makefile target circumvents the need to create the fer_*.tar.gz
 ## files just for creating a Ferret installation.
-INSTALL_FER_DIR = $(FER_DIR)
+INSTALL_FER_DIR = $(HOME)/ferret_distributions/rhel6_64
+# INSTALL_FER_DIR = $(FER_DIR)
 
 ## Installation directory for cairo v1.12 or later static library 
 ## (contains include and lib or lib64 subdirectories).  If blank,
@@ -36,6 +37,7 @@ INSTALL_FER_DIR = $(FER_DIR)
 ## of cairo (v1.8 or later) can be used, but raster images from 
 ## -nodisplay may look a little fuzzy unless -gif is specified.
 CAIRO_DIR = /usr/local/cairo-1.14.4
+# CAIRO_DIR = /usr/local
 # CAIRO_DIR =
 
 ## Installation directory for pixman-1 static library (contains 
@@ -43,38 +45,34 @@ CAIRO_DIR = /usr/local/cairo-1.14.4
 ## library.  If blank, or if CAIRO_DIR is blank, the system's 
 ## pixman-1 shared library will be used.
 PIXMAN_DIR = /usr/local/cairo-1.14.4
+# PIXMAN_DIR = /usr/local
 # PIXMAN_DIR =
 
 ## Installation directory for HDF5 static libraries (contains 
 ## include and lib or lib64 subdirectories).  Do not give a location 
 ## to link to NetCDF shared-object libraries.
-# HDF5_DIR = /usr
-# HDF5_DIR = /usr/local
 HDF5_DIR = /usr/local/hdf5-1.8.16
+# HDF5_DIR = /usr/local
 # HDF5_DIR = 
 
 ## Installation directory for NetCDF static or shared object libraries
 ## (contains include and lib or lib64 subdirectories).  If HDF5_DIR 
 ## (above) is blank, the netcdf shared-object (.so) libraries will be 
 ## used;  otherwise the netcdf static (.a) libraries will be used.
-# NETCDF4_DIR = /usr
+NETCDF4_DIR = /usr/local/netcdf-4.4.0
 # NETCDF4_DIR = /usr/local
-NETCDF4_DIR = /usr/local/netcdf-4.3.3.1
 
 ## Java home directory - this may be predefined
 ## from your shell environment.  If JAVA_HOME is defined,
 ## $(JAVA_HOME)/bin/javac and $(JAVA_HOME)/bin/jar is
-## called to build threddsBrowser.jar; otherwise, it just
-## uses javac and jar (from the path).
+## called to build threddsBrowser.jar; otherwise, 
+## threddsBrowser.jar is not built and the Ferret command
+## SET DATA /BROWSE (or the alias OPEN) will not work.
 # JAVA_HOME = /usr/java/default
 # JAVA_HOME = /usr/java/latest
 # JAVA_HOME = /usr/lib/jvm/default-java
 # JAVA_HOME = /usr/lib/jvm/java-oracle
-# JAVA_HOME = /usr/lib/jvm/java-sun
 JAVA_HOME = /usr/lib/jvm/java
-# JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.7.jdk/Contents/Home
-
-# PyFerret version number - do not change this
-PYFERRET_VERSION = 1.2
+# JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
 
 ##
diff --git a/threddsBrowser/.gitignore b/threddsBrowser/.gitignore
new file mode 100644
index 0000000..a4123c9
--- /dev/null
+++ b/threddsBrowser/.gitignore
@@ -0,0 +1,2 @@
+/bin/
+/threddsBrowser.jar
diff --git a/threddsBrowser/Makefile b/threddsBrowser/Makefile
index ff138eb..a964a2e 100644
--- a/threddsBrowser/Makefile
+++ b/threddsBrowser/Makefile
@@ -3,7 +3,7 @@
 #
 
 #
-# For the possible definition of JAVA_HOME
+# Include ../site_specific.mk for the possible definition of JAVA_HOME
 #
 include ../site_specific.mk
 
@@ -25,7 +25,6 @@ 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
-	javac -sourcepath src -classpath bin:$(TOOLSUI_JAR) -d bin $(JAVA_SOURCE_FILES)
-	jar cf threddsBrowser.jar -C bin gov/noaa/pmel/ferret/threddsBrowser
+	echo "JAVA_HOME not defined; building of threddsBrowser.jar skipped"
 endif
 

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



More information about the debian-science-commits mailing list